; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (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 i32, align 4
@c__0 = external hidden global i32, align 4
@c__2 = external hidden global i32, align 4

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

140:                                              ; preds = %14
  %141 = load i32, ptr %65, align 4, !tbaa !9
  %142 = icmp ne i32 %141, 0
  br i1 %142, label %149, label %143

143:                                              ; preds = %140
  %144 = load ptr, ptr %15, align 8, !tbaa !5
  %145 = call i32 @lsame_(ptr noundef %144, ptr noundef @.str.5)
  %146 = icmp ne i32 %145, 0
  br i1 %146, label %149, label %147

147:                                              ; preds = %143
  %148 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -1, ptr %148, align 4, !tbaa !9
  br label %264

149:                                              ; preds = %143, %140, %14
  %150 = load i32, ptr %59, align 4, !tbaa !9
  %151 = icmp ne i32 %150, 0
  br i1 %151, label %161, label %152

152:                                              ; preds = %149
  %153 = load i32, ptr %64, align 4, !tbaa !9
  %154 = icmp ne i32 %153, 0
  br i1 %154, label %161, label %155

155:                                              ; preds = %152
  %156 = load ptr, ptr %16, align 8, !tbaa !5
  %157 = call i32 @lsame_(ptr noundef %156, ptr noundef @.str.6)
  %158 = icmp ne i32 %157, 0
  br i1 %158, label %161, label %159

159:                                              ; preds = %155
  %160 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -2, ptr %160, align 4, !tbaa !9
  br label %263

161:                                              ; preds = %155, %152, %149
  %162 = load i32, ptr %63, align 4, !tbaa !9
  %163 = icmp ne i32 %162, 0
  br i1 %163, label %173, label %164

164:                                              ; preds = %161
  %165 = load i32, ptr %62, align 4, !tbaa !9
  %166 = icmp ne i32 %165, 0
  br i1 %166, label %173, label %167

167:                                              ; preds = %164
  %168 = load ptr, ptr %17, align 8, !tbaa !5
  %169 = call i32 @lsame_(ptr noundef %168, ptr noundef @.str.6)
  %170 = icmp ne i32 %169, 0
  br i1 %170, label %173, label %171

171:                                              ; preds = %167
  %172 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -3, ptr %172, align 4, !tbaa !9
  br label %262

173:                                              ; preds = %167, %164, %161
  %174 = load ptr, ptr %18, align 8, !tbaa !5
  %175 = load i32, ptr %174, align 4, !tbaa !9
  %176 = icmp slt i32 %175, 0
  br i1 %176, label %177, label %179

177:                                              ; preds = %173
  %178 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -4, ptr %178, align 4, !tbaa !9
  br label %261

179:                                              ; preds = %173
  %180 = load ptr, ptr %19, align 8, !tbaa !5
  %181 = load i32, ptr %180, align 4, !tbaa !9
  %182 = icmp slt i32 %181, 0
  br i1 %182, label %189, label %183

183:                                              ; preds = %179
  %184 = load ptr, ptr %19, align 8, !tbaa !5
  %185 = load i32, ptr %184, align 4, !tbaa !9
  %186 = load ptr, ptr %18, align 8, !tbaa !5
  %187 = load i32, ptr %186, align 4, !tbaa !9
  %188 = icmp sgt i32 %185, %187
  br i1 %188, label %189, label %191

189:                                              ; preds = %183, %179
  %190 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -5, ptr %190, align 4, !tbaa !9
  br label %260

191:                                              ; preds = %183
  %192 = load ptr, ptr %21, align 8, !tbaa !5
  %193 = load i32, ptr %192, align 4, !tbaa !9
  %194 = load ptr, ptr %18, align 8, !tbaa !5
  %195 = load i32, ptr %194, align 4, !tbaa !9
  %196 = icmp slt i32 %193, %195
  br i1 %196, label %197, label %199

197:                                              ; preds = %191
  %198 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -7, ptr %198, align 4, !tbaa !9
  br label %259

199:                                              ; preds = %191
  %200 = load ptr, ptr %23, align 8, !tbaa !5
  %201 = load i32, ptr %200, align 4, !tbaa !9
  %202 = icmp slt i32 %201, 0
  br i1 %202, label %203, label %205

203:                                              ; preds = %199
  %204 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -9, ptr %204, align 4, !tbaa !9
  br label %258

205:                                              ; preds = %199
  %206 = load i32, ptr %63, align 4, !tbaa !9
  %207 = icmp ne i32 %206, 0
  br i1 %207, label %208, label %214

208:                                              ; preds = %205
  %209 = load ptr, ptr %25, align 8, !tbaa !5
  %210 = load i32, ptr %209, align 4, !tbaa !9
  %211 = load ptr, ptr %19, align 8, !tbaa !5
  %212 = load i32, ptr %211, align 4, !tbaa !9
  %213 = icmp slt i32 %210, %212
  br i1 %213, label %223, label %214

214:                                              ; preds = %208, %205
  %215 = load i32, ptr %62, align 4, !tbaa !9
  %216 = icmp ne i32 %215, 0
  br i1 %216, label %217, label %225

217:                                              ; preds = %214
  %218 = load ptr, ptr %25, align 8, !tbaa !5
  %219 = load i32, ptr %218, align 4, !tbaa !9
  %220 = load ptr, ptr %23, align 8, !tbaa !5
  %221 = load i32, ptr %220, align 4, !tbaa !9
  %222 = icmp slt i32 %219, %221
  br i1 %222, label %223, label %225

223:                                              ; preds = %217, %208
  %224 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -11, ptr %224, align 4, !tbaa !9
  br label %257

225:                                              ; preds = %217, %214
  %226 = load i32, ptr %64, align 4, !tbaa !9
  %227 = icmp ne i32 %226, 0
  br i1 %227, label %228, label %235

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

233:                                              ; preds = %228
  %234 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -12, ptr %234, align 4, !tbaa !9
  br label %256

235:                                              ; preds = %228, %225
  %236 = load ptr, ptr %18, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !9
  %238 = load ptr, ptr %19, align 8, !tbaa !5
  %239 = load i32, ptr %238, align 4, !tbaa !9
  %240 = add nsw i32 %237, %239
  store i32 %240, ptr %33, align 4, !tbaa !9
  %241 = load ptr, ptr %27, align 8, !tbaa !5
  %242 = load i32, ptr %241, align 4, !tbaa !9
  %243 = load i32, ptr %33, align 4, !tbaa !9
  %244 = icmp sge i32 %243, 6
  br i1 %244, label %245, label %247

245:                                              ; preds = %235
  %246 = load i32, ptr %33, align 4, !tbaa !9
  br label %248

247:                                              ; preds = %235
  br label %248

248:                                              ; preds = %247, %245
  %249 = phi i32 [ %246, %245 ], [ 6, %247 ]
  %250 = icmp slt i32 %242, %249
  br i1 %250, label %251, label %253

251:                                              ; preds = %248
  %252 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -13, ptr %252, align 4, !tbaa !9
  br label %255

253:                                              ; preds = %248
  %254 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 0, ptr %254, align 4, !tbaa !9
  br label %255

255:                                              ; preds = %253, %251
  br label %256

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

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

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

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

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

261:                                              ; preds = %260, %177
  br label %262

262:                                              ; preds = %261, %171
  br label %263

263:                                              ; preds = %262, %159
  br label %264

264:                                              ; preds = %263, %147
  %265 = load ptr, ptr %28, align 8, !tbaa !5
  %266 = load i32, ptr %265, align 4, !tbaa !9
  %267 = icmp ne i32 %266, 0
  br i1 %267, label %268, label %273

268:                                              ; preds = %264
  %269 = load ptr, ptr %28, align 8, !tbaa !5
  %270 = load i32, ptr %269, align 4, !tbaa !9
  %271 = sub nsw i32 0, %270
  store i32 %271, ptr %33, align 4, !tbaa !9
  %272 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %33, i32 noundef 6)
  store i32 1, ptr %101, align 4
  br label %4980

273:                                              ; preds = %264
  %274 = load ptr, ptr %18, align 8, !tbaa !5
  %275 = load i32, ptr %274, align 4, !tbaa !9
  %276 = icmp eq i32 %275, 0
  br i1 %276, label %281, label %277

277:                                              ; preds = %273
  %278 = load ptr, ptr %19, align 8, !tbaa !5
  %279 = load i32, ptr %278, align 4, !tbaa !9
  %280 = icmp eq i32 %279, 0
  br i1 %280, label %281, label %282

281:                                              ; preds = %277, %273
  store i32 1, ptr %101, align 4
  br label %4980

282:                                              ; preds = %277
  %283 = load i32, ptr %64, align 4, !tbaa !9
  %284 = icmp ne i32 %283, 0
  br i1 %284, label %285, label %289

285:                                              ; preds = %282
  %286 = load ptr, ptr %26, align 8, !tbaa !5
  %287 = getelementptr inbounds double, ptr %286, i64 1
  %288 = load double, ptr %287, align 8, !tbaa !11
  store double %288, ptr %43, align 8, !tbaa !11
  br label %308

289:                                              ; preds = %282
  %290 = load i32, ptr %59, align 4, !tbaa !9
  %291 = icmp ne i32 %290, 0
  br i1 %291, label %298, label %292

292:                                              ; preds = %289
  %293 = load i32, ptr %63, align 4, !tbaa !9
  %294 = icmp ne i32 %293, 0
  br i1 %294, label %298, label %295

295:                                              ; preds = %292
  %296 = load i32, ptr %62, align 4, !tbaa !9
  %297 = icmp ne i32 %296, 0
  br i1 %297, label %298, label %303

298:                                              ; preds = %295, %292, %289
  %299 = load ptr, ptr %18, align 8, !tbaa !5
  %300 = load i32, ptr %299, align 4, !tbaa !9
  %301 = sitofp i32 %300 to double
  %302 = call double @sqrt(double noundef %301) #5
  store double %302, ptr %43, align 8, !tbaa !11
  br label %307

303:                                              ; preds = %295
  %304 = load ptr, ptr %18, align 8, !tbaa !5
  %305 = load i32, ptr %304, align 4, !tbaa !9
  %306 = sitofp i32 %305 to double
  store double %306, ptr %43, align 8, !tbaa !11
  br label %307

307:                                              ; preds = %303, %298
  br label %308

308:                                              ; preds = %307, %285
  %309 = call double @dlamch_(ptr noundef @.str.8)
  store double %309, ptr %61, align 8, !tbaa !11
  %310 = load double, ptr %61, align 8, !tbaa !11
  %311 = call double @sqrt(double noundef %310) #5
  store double %311, ptr %98, align 8, !tbaa !11
  %312 = call double @dlamch_(ptr noundef @.str.9)
  store double %312, ptr %58, align 8, !tbaa !11
  %313 = load double, ptr %58, align 8, !tbaa !11
  %314 = call double @sqrt(double noundef %313) #5
  store double %314, ptr %70, align 8, !tbaa !11
  %315 = load double, ptr %58, align 8, !tbaa !11
  %316 = load double, ptr %61, align 8, !tbaa !11
  %317 = fdiv double %315, %316
  store double %317, ptr %57, align 8, !tbaa !11
  %318 = call double @dlamch_(ptr noundef @.str.10)
  store double %318, ptr %85, align 8, !tbaa !11
  %319 = load double, ptr %70, align 8, !tbaa !11
  %320 = fdiv double 1.000000e+00, %319
  store double %320, ptr %97, align 8, !tbaa !11
  %321 = load double, ptr %85, align 8, !tbaa !11
  %322 = load ptr, ptr %18, align 8, !tbaa !5
  %323 = load i32, ptr %322, align 4, !tbaa !9
  %324 = load ptr, ptr %19, align 8, !tbaa !5
  %325 = load i32, ptr %324, align 4, !tbaa !9
  %326 = mul nsw i32 %323, %325
  %327 = sitofp i32 %326 to double
  %328 = call double @sqrt(double noundef %327) #5
  %329 = fdiv double %321, %328
  store double %329, ptr %53, align 8, !tbaa !11
  %330 = load double, ptr %98, align 8, !tbaa !11
  %331 = fdiv double 1.000000e+00, %330
  store double %331, ptr %45, align 8, !tbaa !11
  %332 = load double, ptr %43, align 8, !tbaa !11
  %333 = load double, ptr %61, align 8, !tbaa !11
  %334 = fmul double %332, %333
  store double %334, ptr %94, align 8, !tbaa !11
  %335 = load double, ptr %94, align 8, !tbaa !11
  %336 = call double @sqrt(double noundef %335) #5
  store double %336, ptr %100, align 8, !tbaa !11
  %337 = load ptr, ptr %18, align 8, !tbaa !5
  %338 = load i32, ptr %337, align 4, !tbaa !9
  %339 = sitofp i32 %338 to double
  %340 = load double, ptr %61, align 8, !tbaa !11
  %341 = fmul double %339, %340
  %342 = fcmp oge double %341, 1.000000e+00
  br i1 %342, label %343, label %349

343:                                              ; preds = %308
  %344 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -4, ptr %344, align 4, !tbaa !9
  %345 = load ptr, ptr %28, align 8, !tbaa !5
  %346 = load i32, ptr %345, align 4, !tbaa !9
  %347 = sub nsw i32 0, %346
  store i32 %347, ptr %33, align 4, !tbaa !9
  %348 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %33, i32 noundef 6)
  store i32 1, ptr %101, align 4
  br label %4980

349:                                              ; preds = %308
  %350 = load i32, ptr %63, align 4, !tbaa !9
  %351 = icmp ne i32 %350, 0
  br i1 %351, label %352, label %361

352:                                              ; preds = %349
  %353 = load ptr, ptr %19, align 8, !tbaa !5
  %354 = load i32, ptr %353, align 4, !tbaa !9
  store i32 %354, ptr %95, align 4, !tbaa !9
  %355 = load ptr, ptr %19, align 8, !tbaa !5
  %356 = load ptr, ptr %24, align 8, !tbaa !5
  %357 = load i32, ptr %32, align 4, !tbaa !9
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds double, ptr %356, i64 %358
  %360 = load ptr, ptr %25, align 8, !tbaa !5
  call void @dlaset_(ptr noundef @.str.3, ptr noundef %95, ptr noundef %355, ptr noundef @c_b17, ptr noundef @c_b18, ptr noundef %359, ptr noundef %360)
  br label %368

361:                                              ; preds = %349
  %362 = load i32, ptr %62, align 4, !tbaa !9
  %363 = icmp ne i32 %362, 0
  br i1 %363, label %364, label %367

364:                                              ; preds = %361
  %365 = load ptr, ptr %23, align 8, !tbaa !5
  %366 = load i32, ptr %365, align 4, !tbaa !9
  store i32 %366, ptr %95, align 4, !tbaa !9
  br label %367

367:                                              ; preds = %364, %361
  br label %368

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

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

374:                                              ; preds = %371, %368
  %375 = phi i1 [ true, %368 ], [ %373, %371 ]
  %376 = zext i1 %375 to i32
  store i32 %376, ptr %63, align 4, !tbaa !9
  %377 = load ptr, ptr %18, align 8, !tbaa !5
  %378 = load i32, ptr %377, align 4, !tbaa !9
  %379 = sitofp i32 %378 to double
  %380 = load ptr, ptr %19, align 8, !tbaa !5
  %381 = load i32, ptr %380, align 4, !tbaa !9
  %382 = sitofp i32 %381 to double
  %383 = fmul double %379, %382
  %384 = call double @sqrt(double noundef %383) #5
  %385 = fdiv double 1.000000e+00, %384
  store double %385, ptr %92, align 8, !tbaa !11
  store i32 1, ptr %96, align 4, !tbaa !9
  store i32 1, ptr %93, align 4, !tbaa !9
  %386 = load i32, ptr %65, align 4, !tbaa !9
  %387 = icmp ne i32 %386, 0
  br i1 %387, label %388, label %474

388:                                              ; preds = %374
  %389 = load ptr, ptr %19, align 8, !tbaa !5
  %390 = load i32, ptr %389, align 4, !tbaa !9
  store i32 %390, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %391

391:                                              ; preds = %470, %388
  %392 = load i32, ptr %50, align 4, !tbaa !9
  %393 = load i32, ptr %33, align 4, !tbaa !9
  %394 = icmp sle i32 %392, %393
  br i1 %394, label %395, label %473

395:                                              ; preds = %391
  store double 0.000000e+00, ptr %40, align 8, !tbaa !11
  store double 1.000000e+00, ptr %42, align 8, !tbaa !11
  %396 = load ptr, ptr %18, align 8, !tbaa !5
  %397 = load i32, ptr %396, align 4, !tbaa !9
  %398 = load i32, ptr %50, align 4, !tbaa !9
  %399 = sub nsw i32 %397, %398
  %400 = add nsw i32 %399, 1
  store i32 %400, ptr %34, align 4, !tbaa !9
  %401 = load ptr, ptr %20, align 8, !tbaa !5
  %402 = load i32, ptr %50, align 4, !tbaa !9
  %403 = load i32, ptr %50, align 4, !tbaa !9
  %404 = load i32, ptr %29, align 4, !tbaa !9
  %405 = mul nsw i32 %403, %404
  %406 = add nsw i32 %402, %405
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds double, ptr %401, i64 %407
  call void @dlassq_(ptr noundef %34, ptr noundef %408, ptr noundef @c__1, ptr noundef %40, ptr noundef %42)
  %409 = load double, ptr %40, align 8, !tbaa !11
  %410 = load double, ptr %85, align 8, !tbaa !11
  %411 = fcmp ogt double %409, %410
  br i1 %411, label %412, label %418

412:                                              ; preds = %395
  %413 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -6, ptr %413, align 4, !tbaa !9
  %414 = load ptr, ptr %28, align 8, !tbaa !5
  %415 = load i32, ptr %414, align 4, !tbaa !9
  %416 = sub nsw i32 0, %415
  store i32 %416, ptr %34, align 4, !tbaa !9
  %417 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %34, i32 noundef 6)
  store i32 1, ptr %101, align 4
  br label %4980

418:                                              ; preds = %395
  %419 = load double, ptr %42, align 8, !tbaa !11
  %420 = call double @sqrt(double noundef %419) #5
  store double %420, ptr %42, align 8, !tbaa !11
  %421 = load double, ptr %40, align 8, !tbaa !11
  %422 = load double, ptr %85, align 8, !tbaa !11
  %423 = load double, ptr %42, align 8, !tbaa !11
  %424 = fdiv double %422, %423
  %425 = fcmp olt double %421, %424
  br i1 %425, label %426, label %437

426:                                              ; preds = %418
  %427 = load i32, ptr %96, align 4, !tbaa !9
  %428 = icmp ne i32 %427, 0
  br i1 %428, label %429, label %437

429:                                              ; preds = %426
  %430 = load double, ptr %40, align 8, !tbaa !11
  %431 = load double, ptr %42, align 8, !tbaa !11
  %432 = fmul double %430, %431
  %433 = load ptr, ptr %22, align 8, !tbaa !5
  %434 = load i32, ptr %50, align 4, !tbaa !9
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds double, ptr %433, i64 %435
  store double %432, ptr %436, align 8, !tbaa !11
  br label %469

437:                                              ; preds = %426, %418
  store i32 0, ptr %96, align 4, !tbaa !9
  %438 = load double, ptr %40, align 8, !tbaa !11
  %439 = load double, ptr %42, align 8, !tbaa !11
  %440 = load double, ptr %92, align 8, !tbaa !11
  %441 = fmul double %439, %440
  %442 = fmul double %438, %441
  %443 = load ptr, ptr %22, align 8, !tbaa !5
  %444 = load i32, ptr %50, align 4, !tbaa !9
  %445 = sext i32 %444 to i64
  %446 = getelementptr inbounds double, ptr %443, i64 %445
  store double %442, ptr %446, align 8, !tbaa !11
  %447 = load i32, ptr %93, align 4, !tbaa !9
  %448 = icmp ne i32 %447, 0
  br i1 %448, label %449, label %468

449:                                              ; preds = %437
  store i32 0, ptr %93, align 4, !tbaa !9
  %450 = load i32, ptr %50, align 4, !tbaa !9
  %451 = sub nsw i32 %450, 1
  store i32 %451, ptr %34, align 4, !tbaa !9
  store i32 1, ptr %51, align 4, !tbaa !9
  br label %452

452:                                              ; preds = %464, %449
  %453 = load i32, ptr %51, align 4, !tbaa !9
  %454 = load i32, ptr %34, align 4, !tbaa !9
  %455 = icmp sle i32 %453, %454
  br i1 %455, label %456, label %467

456:                                              ; preds = %452
  %457 = load double, ptr %92, align 8, !tbaa !11
  %458 = load ptr, ptr %22, align 8, !tbaa !5
  %459 = load i32, ptr %51, align 4, !tbaa !9
  %460 = sext i32 %459 to i64
  %461 = getelementptr inbounds double, ptr %458, i64 %460
  %462 = load double, ptr %461, align 8, !tbaa !11
  %463 = fmul double %462, %457
  store double %463, ptr %461, align 8, !tbaa !11
  br label %464

464:                                              ; preds = %456
  %465 = load i32, ptr %51, align 4, !tbaa !9
  %466 = add nsw i32 %465, 1
  store i32 %466, ptr %51, align 4, !tbaa !9
  br label %452, !llvm.loop !13

467:                                              ; preds = %452
  br label %468

468:                                              ; preds = %467, %437
  br label %469

469:                                              ; preds = %468, %429
  br label %470

470:                                              ; preds = %469
  %471 = load i32, ptr %50, align 4, !tbaa !9
  %472 = add nsw i32 %471, 1
  store i32 %472, ptr %50, align 4, !tbaa !9
  br label %391, !llvm.loop !15

473:                                              ; preds = %391
  br label %639

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

477:                                              ; preds = %474
  %478 = load ptr, ptr %19, align 8, !tbaa !5
  %479 = load i32, ptr %478, align 4, !tbaa !9
  store i32 %479, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %480

480:                                              ; preds = %553, %477
  %481 = load i32, ptr %50, align 4, !tbaa !9
  %482 = load i32, ptr %33, align 4, !tbaa !9
  %483 = icmp sle i32 %481, %482
  br i1 %483, label %484, label %556

484:                                              ; preds = %480
  store double 0.000000e+00, ptr %40, align 8, !tbaa !11
  store double 1.000000e+00, ptr %42, align 8, !tbaa !11
  %485 = load ptr, ptr %20, align 8, !tbaa !5
  %486 = load i32, ptr %50, align 4, !tbaa !9
  %487 = load i32, ptr %29, align 4, !tbaa !9
  %488 = mul nsw i32 %486, %487
  %489 = add nsw i32 %488, 1
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds double, ptr %485, i64 %490
  call void @dlassq_(ptr noundef %50, ptr noundef %491, ptr noundef @c__1, ptr noundef %40, ptr noundef %42)
  %492 = load double, ptr %40, align 8, !tbaa !11
  %493 = load double, ptr %85, align 8, !tbaa !11
  %494 = fcmp ogt double %492, %493
  br i1 %494, label %495, label %501

495:                                              ; preds = %484
  %496 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -6, ptr %496, align 4, !tbaa !9
  %497 = load ptr, ptr %28, align 8, !tbaa !5
  %498 = load i32, ptr %497, align 4, !tbaa !9
  %499 = sub nsw i32 0, %498
  store i32 %499, ptr %34, align 4, !tbaa !9
  %500 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %34, i32 noundef 6)
  store i32 1, ptr %101, align 4
  br label %4980

501:                                              ; preds = %484
  %502 = load double, ptr %42, align 8, !tbaa !11
  %503 = call double @sqrt(double noundef %502) #5
  store double %503, ptr %42, align 8, !tbaa !11
  %504 = load double, ptr %40, align 8, !tbaa !11
  %505 = load double, ptr %85, align 8, !tbaa !11
  %506 = load double, ptr %42, align 8, !tbaa !11
  %507 = fdiv double %505, %506
  %508 = fcmp olt double %504, %507
  br i1 %508, label %509, label %520

509:                                              ; preds = %501
  %510 = load i32, ptr %96, align 4, !tbaa !9
  %511 = icmp ne i32 %510, 0
  br i1 %511, label %512, label %520

512:                                              ; preds = %509
  %513 = load double, ptr %40, align 8, !tbaa !11
  %514 = load double, ptr %42, align 8, !tbaa !11
  %515 = fmul double %513, %514
  %516 = load ptr, ptr %22, align 8, !tbaa !5
  %517 = load i32, ptr %50, align 4, !tbaa !9
  %518 = sext i32 %517 to i64
  %519 = getelementptr inbounds double, ptr %516, i64 %518
  store double %515, ptr %519, align 8, !tbaa !11
  br label %552

520:                                              ; preds = %509, %501
  store i32 0, ptr %96, align 4, !tbaa !9
  %521 = load double, ptr %40, align 8, !tbaa !11
  %522 = load double, ptr %42, align 8, !tbaa !11
  %523 = load double, ptr %92, align 8, !tbaa !11
  %524 = fmul double %522, %523
  %525 = fmul double %521, %524
  %526 = load ptr, ptr %22, align 8, !tbaa !5
  %527 = load i32, ptr %50, align 4, !tbaa !9
  %528 = sext i32 %527 to i64
  %529 = getelementptr inbounds double, ptr %526, i64 %528
  store double %525, ptr %529, align 8, !tbaa !11
  %530 = load i32, ptr %93, align 4, !tbaa !9
  %531 = icmp ne i32 %530, 0
  br i1 %531, label %532, label %551

532:                                              ; preds = %520
  store i32 0, ptr %93, align 4, !tbaa !9
  %533 = load i32, ptr %50, align 4, !tbaa !9
  %534 = sub nsw i32 %533, 1
  store i32 %534, ptr %34, align 4, !tbaa !9
  store i32 1, ptr %51, align 4, !tbaa !9
  br label %535

535:                                              ; preds = %547, %532
  %536 = load i32, ptr %51, align 4, !tbaa !9
  %537 = load i32, ptr %34, align 4, !tbaa !9
  %538 = icmp sle i32 %536, %537
  br i1 %538, label %539, label %550

539:                                              ; preds = %535
  %540 = load double, ptr %92, align 8, !tbaa !11
  %541 = load ptr, ptr %22, align 8, !tbaa !5
  %542 = load i32, ptr %51, align 4, !tbaa !9
  %543 = sext i32 %542 to i64
  %544 = getelementptr inbounds double, ptr %541, i64 %543
  %545 = load double, ptr %544, align 8, !tbaa !11
  %546 = fmul double %545, %540
  store double %546, ptr %544, align 8, !tbaa !11
  br label %547

547:                                              ; preds = %539
  %548 = load i32, ptr %51, align 4, !tbaa !9
  %549 = add nsw i32 %548, 1
  store i32 %549, ptr %51, align 4, !tbaa !9
  br label %535, !llvm.loop !16

550:                                              ; preds = %535
  br label %551

551:                                              ; preds = %550, %520
  br label %552

552:                                              ; preds = %551, %512
  br label %553

553:                                              ; preds = %552
  %554 = load i32, ptr %50, align 4, !tbaa !9
  %555 = add nsw i32 %554, 1
  store i32 %555, ptr %50, align 4, !tbaa !9
  br label %480, !llvm.loop !17

556:                                              ; preds = %480
  br label %638

557:                                              ; preds = %474
  %558 = load ptr, ptr %19, align 8, !tbaa !5
  %559 = load i32, ptr %558, align 4, !tbaa !9
  store i32 %559, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %560

560:                                              ; preds = %634, %557
  %561 = load i32, ptr %50, align 4, !tbaa !9
  %562 = load i32, ptr %33, align 4, !tbaa !9
  %563 = icmp sle i32 %561, %562
  br i1 %563, label %564, label %637

564:                                              ; preds = %560
  store double 0.000000e+00, ptr %40, align 8, !tbaa !11
  store double 1.000000e+00, ptr %42, align 8, !tbaa !11
  %565 = load ptr, ptr %18, align 8, !tbaa !5
  %566 = load ptr, ptr %20, align 8, !tbaa !5
  %567 = load i32, ptr %50, align 4, !tbaa !9
  %568 = load i32, ptr %29, align 4, !tbaa !9
  %569 = mul nsw i32 %567, %568
  %570 = add nsw i32 %569, 1
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds double, ptr %566, i64 %571
  call void @dlassq_(ptr noundef %565, ptr noundef %572, ptr noundef @c__1, ptr noundef %40, ptr noundef %42)
  %573 = load double, ptr %40, align 8, !tbaa !11
  %574 = load double, ptr %85, align 8, !tbaa !11
  %575 = fcmp ogt double %573, %574
  br i1 %575, label %576, label %582

576:                                              ; preds = %564
  %577 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -6, ptr %577, align 4, !tbaa !9
  %578 = load ptr, ptr %28, align 8, !tbaa !5
  %579 = load i32, ptr %578, align 4, !tbaa !9
  %580 = sub nsw i32 0, %579
  store i32 %580, ptr %34, align 4, !tbaa !9
  %581 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %34, i32 noundef 6)
  store i32 1, ptr %101, align 4
  br label %4980

582:                                              ; preds = %564
  %583 = load double, ptr %42, align 8, !tbaa !11
  %584 = call double @sqrt(double noundef %583) #5
  store double %584, ptr %42, align 8, !tbaa !11
  %585 = load double, ptr %40, align 8, !tbaa !11
  %586 = load double, ptr %85, align 8, !tbaa !11
  %587 = load double, ptr %42, align 8, !tbaa !11
  %588 = fdiv double %586, %587
  %589 = fcmp olt double %585, %588
  br i1 %589, label %590, label %601

590:                                              ; preds = %582
  %591 = load i32, ptr %96, align 4, !tbaa !9
  %592 = icmp ne i32 %591, 0
  br i1 %592, label %593, label %601

593:                                              ; preds = %590
  %594 = load double, ptr %40, align 8, !tbaa !11
  %595 = load double, ptr %42, align 8, !tbaa !11
  %596 = fmul double %594, %595
  %597 = load ptr, ptr %22, align 8, !tbaa !5
  %598 = load i32, ptr %50, align 4, !tbaa !9
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds double, ptr %597, i64 %599
  store double %596, ptr %600, align 8, !tbaa !11
  br label %633

601:                                              ; preds = %590, %582
  store i32 0, ptr %96, align 4, !tbaa !9
  %602 = load double, ptr %40, align 8, !tbaa !11
  %603 = load double, ptr %42, align 8, !tbaa !11
  %604 = load double, ptr %92, align 8, !tbaa !11
  %605 = fmul double %603, %604
  %606 = fmul double %602, %605
  %607 = load ptr, ptr %22, align 8, !tbaa !5
  %608 = load i32, ptr %50, align 4, !tbaa !9
  %609 = sext i32 %608 to i64
  %610 = getelementptr inbounds double, ptr %607, i64 %609
  store double %606, ptr %610, align 8, !tbaa !11
  %611 = load i32, ptr %93, align 4, !tbaa !9
  %612 = icmp ne i32 %611, 0
  br i1 %612, label %613, label %632

613:                                              ; preds = %601
  store i32 0, ptr %93, align 4, !tbaa !9
  %614 = load i32, ptr %50, align 4, !tbaa !9
  %615 = sub nsw i32 %614, 1
  store i32 %615, ptr %34, align 4, !tbaa !9
  store i32 1, ptr %51, align 4, !tbaa !9
  br label %616

616:                                              ; preds = %628, %613
  %617 = load i32, ptr %51, align 4, !tbaa !9
  %618 = load i32, ptr %34, align 4, !tbaa !9
  %619 = icmp sle i32 %617, %618
  br i1 %619, label %620, label %631

620:                                              ; preds = %616
  %621 = load double, ptr %92, align 8, !tbaa !11
  %622 = load ptr, ptr %22, align 8, !tbaa !5
  %623 = load i32, ptr %51, align 4, !tbaa !9
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds double, ptr %622, i64 %624
  %626 = load double, ptr %625, align 8, !tbaa !11
  %627 = fmul double %626, %621
  store double %627, ptr %625, align 8, !tbaa !11
  br label %628

628:                                              ; preds = %620
  %629 = load i32, ptr %51, align 4, !tbaa !9
  %630 = add nsw i32 %629, 1
  store i32 %630, ptr %51, align 4, !tbaa !9
  br label %616, !llvm.loop !18

631:                                              ; preds = %616
  br label %632

632:                                              ; preds = %631, %601
  br label %633

633:                                              ; preds = %632, %593
  br label %634

634:                                              ; preds = %633
  %635 = load i32, ptr %50, align 4, !tbaa !9
  %636 = add nsw i32 %635, 1
  store i32 %636, ptr %50, align 4, !tbaa !9
  br label %560, !llvm.loop !19

637:                                              ; preds = %560
  br label %638

638:                                              ; preds = %637, %556
  br label %639

639:                                              ; preds = %638, %473
  %640 = load i32, ptr %96, align 4, !tbaa !9
  %641 = icmp ne i32 %640, 0
  br i1 %641, label %642, label %643

642:                                              ; preds = %639
  store double 1.000000e+00, ptr %92, align 8, !tbaa !11
  br label %643

643:                                              ; preds = %642, %639
  store double 0.000000e+00, ptr %40, align 8, !tbaa !11
  %644 = load double, ptr %85, align 8, !tbaa !11
  store double %644, ptr %42, align 8, !tbaa !11
  %645 = load ptr, ptr %19, align 8, !tbaa !5
  %646 = load i32, ptr %645, align 4, !tbaa !9
  store i32 %646, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %647

647:                                              ; preds = %690, %643
  %648 = load i32, ptr %50, align 4, !tbaa !9
  %649 = load i32, ptr %33, align 4, !tbaa !9
  %650 = icmp sle i32 %648, %649
  br i1 %650, label %651, label %693

651:                                              ; preds = %647
  %652 = load ptr, ptr %22, align 8, !tbaa !5
  %653 = load i32, ptr %50, align 4, !tbaa !9
  %654 = sext i32 %653 to i64
  %655 = getelementptr inbounds double, ptr %652, i64 %654
  %656 = load double, ptr %655, align 8, !tbaa !11
  %657 = fcmp une double %656, 0.000000e+00
  br i1 %657, label %658, label %674

658:                                              ; preds = %651
  %659 = load double, ptr %42, align 8, !tbaa !11
  store double %659, ptr %38, align 8, !tbaa !11
  %660 = load ptr, ptr %22, align 8, !tbaa !5
  %661 = load i32, ptr %50, align 4, !tbaa !9
  %662 = sext i32 %661 to i64
  %663 = getelementptr inbounds double, ptr %660, i64 %662
  %664 = load double, ptr %663, align 8, !tbaa !11
  store double %664, ptr %39, align 8, !tbaa !11
  %665 = load double, ptr %38, align 8, !tbaa !11
  %666 = load double, ptr %39, align 8, !tbaa !11
  %667 = fcmp ole double %665, %666
  br i1 %667, label %668, label %670

668:                                              ; preds = %658
  %669 = load double, ptr %38, align 8, !tbaa !11
  br label %672

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

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

674:                                              ; preds = %672, %651
  %675 = load double, ptr %40, align 8, !tbaa !11
  store double %675, ptr %38, align 8, !tbaa !11
  %676 = load ptr, ptr %22, align 8, !tbaa !5
  %677 = load i32, ptr %50, align 4, !tbaa !9
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds double, ptr %676, i64 %678
  %680 = load double, ptr %679, align 8, !tbaa !11
  store double %680, ptr %39, align 8, !tbaa !11
  %681 = load double, ptr %38, align 8, !tbaa !11
  %682 = load double, ptr %39, align 8, !tbaa !11
  %683 = fcmp oge double %681, %682
  br i1 %683, label %684, label %686

684:                                              ; preds = %674
  %685 = load double, ptr %38, align 8, !tbaa !11
  br label %688

686:                                              ; preds = %674
  %687 = load double, ptr %39, align 8, !tbaa !11
  br label %688

688:                                              ; preds = %686, %684
  %689 = phi double [ %685, %684 ], [ %687, %686 ]
  store double %689, ptr %40, align 8, !tbaa !11
  br label %690

690:                                              ; preds = %688
  %691 = load i32, ptr %50, align 4, !tbaa !9
  %692 = add nsw i32 %691, 1
  store i32 %692, ptr %50, align 4, !tbaa !9
  br label %647, !llvm.loop !20

693:                                              ; preds = %647
  %694 = load double, ptr %40, align 8, !tbaa !11
  %695 = fcmp oeq double %694, 0.000000e+00
  br i1 %695, label %696, label %720

696:                                              ; preds = %693
  %697 = load i32, ptr %59, align 4, !tbaa !9
  %698 = icmp ne i32 %697, 0
  br i1 %698, label %699, label %707

699:                                              ; preds = %696
  %700 = load ptr, ptr %18, align 8, !tbaa !5
  %701 = load ptr, ptr %19, align 8, !tbaa !5
  %702 = load ptr, ptr %20, align 8, !tbaa !5
  %703 = load i32, ptr %30, align 4, !tbaa !9
  %704 = sext i32 %703 to i64
  %705 = getelementptr inbounds double, ptr %702, i64 %704
  %706 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlaset_(ptr noundef @.str.5, ptr noundef %700, ptr noundef %701, ptr noundef @c_b17, ptr noundef @c_b18, ptr noundef %705, ptr noundef %706)
  br label %707

707:                                              ; preds = %699, %696
  %708 = load ptr, ptr %26, align 8, !tbaa !5
  %709 = getelementptr inbounds double, ptr %708, i64 1
  store double 1.000000e+00, ptr %709, align 8, !tbaa !11
  %710 = load ptr, ptr %26, align 8, !tbaa !5
  %711 = getelementptr inbounds double, ptr %710, i64 2
  store double 0.000000e+00, ptr %711, align 8, !tbaa !11
  %712 = load ptr, ptr %26, align 8, !tbaa !5
  %713 = getelementptr inbounds double, ptr %712, i64 3
  store double 0.000000e+00, ptr %713, align 8, !tbaa !11
  %714 = load ptr, ptr %26, align 8, !tbaa !5
  %715 = getelementptr inbounds double, ptr %714, i64 4
  store double 0.000000e+00, ptr %715, align 8, !tbaa !11
  %716 = load ptr, ptr %26, align 8, !tbaa !5
  %717 = getelementptr inbounds double, ptr %716, i64 5
  store double 0.000000e+00, ptr %717, align 8, !tbaa !11
  %718 = load ptr, ptr %26, align 8, !tbaa !5
  %719 = getelementptr inbounds double, ptr %718, i64 6
  store double 0.000000e+00, ptr %719, align 8, !tbaa !11
  store i32 1, ptr %101, align 4
  br label %4980

720:                                              ; preds = %693
  %721 = load ptr, ptr %19, align 8, !tbaa !5
  %722 = load i32, ptr %721, align 4, !tbaa !9
  %723 = icmp eq i32 %722, 1
  br i1 %723, label %724, label %762

724:                                              ; preds = %720
  %725 = load i32, ptr %59, align 4, !tbaa !9
  %726 = icmp ne i32 %725, 0
  br i1 %726, label %727, label %737

727:                                              ; preds = %724
  %728 = load ptr, ptr %22, align 8, !tbaa !5
  %729 = getelementptr inbounds double, ptr %728, i64 1
  %730 = load ptr, ptr %18, align 8, !tbaa !5
  %731 = load ptr, ptr %20, align 8, !tbaa !5
  %732 = load i32, ptr %29, align 4, !tbaa !9
  %733 = add nsw i32 %732, 1
  %734 = sext i32 %733 to i64
  %735 = getelementptr inbounds double, ptr %731, i64 %734
  %736 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %729, ptr noundef %92, ptr noundef %730, ptr noundef @c__1, ptr noundef %735, ptr noundef %736, ptr noundef %44)
  br label %737

737:                                              ; preds = %727, %724
  %738 = load double, ptr %92, align 8, !tbaa !11
  %739 = fdiv double 1.000000e+00, %738
  %740 = load ptr, ptr %26, align 8, !tbaa !5
  %741 = getelementptr inbounds double, ptr %740, i64 1
  store double %739, ptr %741, align 8, !tbaa !11
  %742 = load ptr, ptr %22, align 8, !tbaa !5
  %743 = getelementptr inbounds double, ptr %742, i64 1
  %744 = load double, ptr %743, align 8, !tbaa !11
  %745 = load double, ptr %58, align 8, !tbaa !11
  %746 = fcmp oge double %744, %745
  br i1 %746, label %747, label %750

747:                                              ; preds = %737
  %748 = load ptr, ptr %26, align 8, !tbaa !5
  %749 = getelementptr inbounds double, ptr %748, i64 2
  store double 1.000000e+00, ptr %749, align 8, !tbaa !11
  br label %753

750:                                              ; preds = %737
  %751 = load ptr, ptr %26, align 8, !tbaa !5
  %752 = getelementptr inbounds double, ptr %751, i64 2
  store double 0.000000e+00, ptr %752, align 8, !tbaa !11
  br label %753

753:                                              ; preds = %750, %747
  %754 = load ptr, ptr %26, align 8, !tbaa !5
  %755 = getelementptr inbounds double, ptr %754, i64 3
  store double 0.000000e+00, ptr %755, align 8, !tbaa !11
  %756 = load ptr, ptr %26, align 8, !tbaa !5
  %757 = getelementptr inbounds double, ptr %756, i64 4
  store double 0.000000e+00, ptr %757, align 8, !tbaa !11
  %758 = load ptr, ptr %26, align 8, !tbaa !5
  %759 = getelementptr inbounds double, ptr %758, i64 5
  store double 0.000000e+00, ptr %759, align 8, !tbaa !11
  %760 = load ptr, ptr %26, align 8, !tbaa !5
  %761 = getelementptr inbounds double, ptr %760, i64 6
  store double 0.000000e+00, ptr %761, align 8, !tbaa !11
  store i32 1, ptr %101, align 4
  br label %4980

762:                                              ; preds = %720
  %763 = load double, ptr %58, align 8, !tbaa !11
  %764 = load double, ptr %61, align 8, !tbaa !11
  %765 = fdiv double %763, %764
  %766 = call double @sqrt(double noundef %765) #5
  store double %766, ptr %73, align 8, !tbaa !11
  %767 = load double, ptr %85, align 8, !tbaa !11
  %768 = load ptr, ptr %19, align 8, !tbaa !5
  %769 = load i32, ptr %768, align 4, !tbaa !9
  %770 = sitofp i32 %769 to double
  %771 = fdiv double %767, %770
  %772 = call double @sqrt(double noundef %771) #5
  store double %772, ptr %48, align 8, !tbaa !11
  %773 = load double, ptr %40, align 8, !tbaa !11
  %774 = load double, ptr %73, align 8, !tbaa !11
  %775 = fcmp ole double %773, %774
  br i1 %775, label %788, label %776

776:                                              ; preds = %762
  %777 = load double, ptr %42, align 8, !tbaa !11
  %778 = load double, ptr %48, align 8, !tbaa !11
  %779 = fcmp oge double %777, %778
  br i1 %779, label %788, label %780

780:                                              ; preds = %776
  %781 = load double, ptr %73, align 8, !tbaa !11
  %782 = load double, ptr %42, align 8, !tbaa !11
  %783 = fcmp ole double %781, %782
  br i1 %783, label %784, label %802

784:                                              ; preds = %780
  %785 = load double, ptr %40, align 8, !tbaa !11
  %786 = load double, ptr %48, align 8, !tbaa !11
  %787 = fcmp ole double %785, %786
  br i1 %787, label %788, label %802

788:                                              ; preds = %784, %776, %762
  %789 = load double, ptr %85, align 8, !tbaa !11
  store double %789, ptr %38, align 8, !tbaa !11
  %790 = load double, ptr %48, align 8, !tbaa !11
  %791 = load double, ptr %40, align 8, !tbaa !11
  %792 = fdiv double %790, %791
  store double %792, ptr %39, align 8, !tbaa !11
  %793 = load double, ptr %38, align 8, !tbaa !11
  %794 = load double, ptr %39, align 8, !tbaa !11
  %795 = fcmp ole double %793, %794
  br i1 %795, label %796, label %798

796:                                              ; preds = %788
  %797 = load double, ptr %38, align 8, !tbaa !11
  br label %800

798:                                              ; preds = %788
  %799 = load double, ptr %39, align 8, !tbaa !11
  br label %800

800:                                              ; preds = %798, %796
  %801 = phi double [ %797, %796 ], [ %799, %798 ]
  store double %801, ptr %48, align 8, !tbaa !11
  br label %888

802:                                              ; preds = %784, %780
  %803 = load double, ptr %42, align 8, !tbaa !11
  %804 = load double, ptr %73, align 8, !tbaa !11
  %805 = fcmp ole double %803, %804
  br i1 %805, label %806, label %831

806:                                              ; preds = %802
  %807 = load double, ptr %40, align 8, !tbaa !11
  %808 = load double, ptr %48, align 8, !tbaa !11
  %809 = fcmp ole double %807, %808
  br i1 %809, label %810, label %831

810:                                              ; preds = %806
  %811 = load double, ptr %73, align 8, !tbaa !11
  %812 = load double, ptr %42, align 8, !tbaa !11
  %813 = fdiv double %811, %812
  store double %813, ptr %38, align 8, !tbaa !11
  %814 = load double, ptr %85, align 8, !tbaa !11
  %815 = load double, ptr %40, align 8, !tbaa !11
  %816 = load ptr, ptr %19, align 8, !tbaa !5
  %817 = load i32, ptr %816, align 4, !tbaa !9
  %818 = sitofp i32 %817 to double
  %819 = call double @sqrt(double noundef %818) #5
  %820 = fmul double %815, %819
  %821 = fdiv double %814, %820
  store double %821, ptr %39, align 8, !tbaa !11
  %822 = load double, ptr %38, align 8, !tbaa !11
  %823 = load double, ptr %39, align 8, !tbaa !11
  %824 = fcmp ole double %822, %823
  br i1 %824, label %825, label %827

825:                                              ; preds = %810
  %826 = load double, ptr %38, align 8, !tbaa !11
  br label %829

827:                                              ; preds = %810
  %828 = load double, ptr %39, align 8, !tbaa !11
  br label %829

829:                                              ; preds = %827, %825
  %830 = phi double [ %826, %825 ], [ %828, %827 ]
  store double %830, ptr %48, align 8, !tbaa !11
  br label %887

831:                                              ; preds = %806, %802
  %832 = load double, ptr %42, align 8, !tbaa !11
  %833 = load double, ptr %73, align 8, !tbaa !11
  %834 = fcmp oge double %832, %833
  br i1 %834, label %835, label %855

835:                                              ; preds = %831
  %836 = load double, ptr %40, align 8, !tbaa !11
  %837 = load double, ptr %48, align 8, !tbaa !11
  %838 = fcmp oge double %836, %837
  br i1 %838, label %839, label %855

839:                                              ; preds = %835
  %840 = load double, ptr %73, align 8, !tbaa !11
  %841 = load double, ptr %42, align 8, !tbaa !11
  %842 = fdiv double %840, %841
  store double %842, ptr %38, align 8, !tbaa !11
  %843 = load double, ptr %48, align 8, !tbaa !11
  %844 = load double, ptr %40, align 8, !tbaa !11
  %845 = fdiv double %843, %844
  store double %845, ptr %39, align 8, !tbaa !11
  %846 = load double, ptr %38, align 8, !tbaa !11
  %847 = load double, ptr %39, align 8, !tbaa !11
  %848 = fcmp oge double %846, %847
  br i1 %848, label %849, label %851

849:                                              ; preds = %839
  %850 = load double, ptr %38, align 8, !tbaa !11
  br label %853

851:                                              ; preds = %839
  %852 = load double, ptr %39, align 8, !tbaa !11
  br label %853

853:                                              ; preds = %851, %849
  %854 = phi double [ %850, %849 ], [ %852, %851 ]
  store double %854, ptr %48, align 8, !tbaa !11
  br label %886

855:                                              ; preds = %835, %831
  %856 = load double, ptr %42, align 8, !tbaa !11
  %857 = load double, ptr %73, align 8, !tbaa !11
  %858 = fcmp ole double %856, %857
  br i1 %858, label %859, label %884

859:                                              ; preds = %855
  %860 = load double, ptr %40, align 8, !tbaa !11
  %861 = load double, ptr %48, align 8, !tbaa !11
  %862 = fcmp oge double %860, %861
  br i1 %862, label %863, label %884

863:                                              ; preds = %859
  %864 = load double, ptr %73, align 8, !tbaa !11
  %865 = load double, ptr %42, align 8, !tbaa !11
  %866 = fdiv double %864, %865
  store double %866, ptr %38, align 8, !tbaa !11
  %867 = load double, ptr %85, align 8, !tbaa !11
  %868 = load ptr, ptr %19, align 8, !tbaa !5
  %869 = load i32, ptr %868, align 4, !tbaa !9
  %870 = sitofp i32 %869 to double
  %871 = call double @sqrt(double noundef %870) #5
  %872 = load double, ptr %40, align 8, !tbaa !11
  %873 = fmul double %871, %872
  %874 = fdiv double %867, %873
  store double %874, ptr %39, align 8, !tbaa !11
  %875 = load double, ptr %38, align 8, !tbaa !11
  %876 = load double, ptr %39, align 8, !tbaa !11
  %877 = fcmp ole double %875, %876
  br i1 %877, label %878, label %880

878:                                              ; preds = %863
  %879 = load double, ptr %38, align 8, !tbaa !11
  br label %882

880:                                              ; preds = %863
  %881 = load double, ptr %39, align 8, !tbaa !11
  br label %882

882:                                              ; preds = %880, %878
  %883 = phi double [ %879, %878 ], [ %881, %880 ]
  store double %883, ptr %48, align 8, !tbaa !11
  br label %885

884:                                              ; preds = %859, %855
  store double 1.000000e+00, ptr %48, align 8, !tbaa !11
  br label %885

885:                                              ; preds = %884, %882
  br label %886

886:                                              ; preds = %885, %853
  br label %887

887:                                              ; preds = %886, %829
  br label %888

888:                                              ; preds = %887, %800
  %889 = load double, ptr %48, align 8, !tbaa !11
  %890 = fcmp une double %889, 1.000000e+00
  br i1 %890, label %891, label %896

891:                                              ; preds = %888
  %892 = load ptr, ptr %19, align 8, !tbaa !5
  %893 = load ptr, ptr %22, align 8, !tbaa !5
  %894 = getelementptr inbounds double, ptr %893, i64 1
  %895 = load ptr, ptr %19, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b18, ptr noundef %48, ptr noundef %892, ptr noundef @c__1, ptr noundef %894, ptr noundef %895, ptr noundef %44)
  br label %896

896:                                              ; preds = %891, %888
  %897 = load double, ptr %48, align 8, !tbaa !11
  %898 = load double, ptr %92, align 8, !tbaa !11
  %899 = fmul double %897, %898
  store double %899, ptr %92, align 8, !tbaa !11
  %900 = load double, ptr %92, align 8, !tbaa !11
  %901 = fcmp une double %900, 1.000000e+00
  br i1 %901, label %902, label %913

902:                                              ; preds = %896
  %903 = load ptr, ptr %15, align 8, !tbaa !5
  %904 = load ptr, ptr %18, align 8, !tbaa !5
  %905 = load ptr, ptr %19, align 8, !tbaa !5
  %906 = load ptr, ptr %20, align 8, !tbaa !5
  %907 = load i32, ptr %30, align 4, !tbaa !9
  %908 = sext i32 %907 to i64
  %909 = getelementptr inbounds double, ptr %906, i64 %908
  %910 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef %903, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b18, ptr noundef %92, ptr noundef %904, ptr noundef %905, ptr noundef %909, ptr noundef %910, ptr noundef %44)
  %911 = load double, ptr %92, align 8, !tbaa !11
  %912 = fdiv double 1.000000e+00, %911
  store double %912, ptr %92, align 8, !tbaa !11
  br label %913

913:                                              ; preds = %902, %896
  %914 = load ptr, ptr %19, align 8, !tbaa !5
  %915 = load i32, ptr %914, align 4, !tbaa !9
  %916 = load ptr, ptr %19, align 8, !tbaa !5
  %917 = load i32, ptr %916, align 4, !tbaa !9
  %918 = sub nsw i32 %917, 1
  %919 = mul nsw i32 %915, %918
  %920 = sdiv i32 %919, 2
  store i32 %920, ptr %81, align 4, !tbaa !9
  store i32 0, ptr %82, align 4, !tbaa !9
  %921 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 0
  store double 0.000000e+00, ptr %921, align 16, !tbaa !11
  %922 = load ptr, ptr %19, align 8, !tbaa !5
  %923 = load i32, ptr %922, align 4, !tbaa !9
  store i32 %923, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %51, align 4, !tbaa !9
  br label %924

924:                                              ; preds = %933, %913
  %925 = load i32, ptr %51, align 4, !tbaa !9
  %926 = load i32, ptr %33, align 4, !tbaa !9
  %927 = icmp sle i32 %925, %926
  br i1 %927, label %928, label %936

928:                                              ; preds = %924
  %929 = load ptr, ptr %26, align 8, !tbaa !5
  %930 = load i32, ptr %51, align 4, !tbaa !9
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds double, ptr %929, i64 %931
  store double 1.000000e+00, ptr %932, align 8, !tbaa !11
  br label %933

933:                                              ; preds = %928
  %934 = load i32, ptr %51, align 4, !tbaa !9
  %935 = add nsw i32 %934, 1
  store i32 %935, ptr %51, align 4, !tbaa !9
  br label %924, !llvm.loop !21

936:                                              ; preds = %924
  store i32 3, ptr %75, align 4, !tbaa !9
  %937 = load ptr, ptr %19, align 8, !tbaa !5
  %938 = load i32, ptr %937, align 4, !tbaa !9
  %939 = icmp sle i32 8, %938
  br i1 %939, label %940, label %941

940:                                              ; preds = %936
  br label %944

941:                                              ; preds = %936
  %942 = load ptr, ptr %19, align 8, !tbaa !5
  %943 = load i32, ptr %942, align 4, !tbaa !9
  br label %944

944:                                              ; preds = %941, %940
  %945 = phi i32 [ 8, %940 ], [ %943, %941 ]
  store i32 %945, ptr %86, align 4, !tbaa !9
  %946 = load ptr, ptr %19, align 8, !tbaa !5
  %947 = load i32, ptr %946, align 4, !tbaa !9
  %948 = load i32, ptr %86, align 4, !tbaa !9
  %949 = sdiv i32 %947, %948
  store i32 %949, ptr %91, align 4, !tbaa !9
  %950 = load i32, ptr %91, align 4, !tbaa !9
  %951 = load i32, ptr %86, align 4, !tbaa !9
  %952 = mul nsw i32 %950, %951
  %953 = load ptr, ptr %19, align 8, !tbaa !5
  %954 = load i32, ptr %953, align 4, !tbaa !9
  %955 = icmp ne i32 %952, %954
  br i1 %955, label %956, label %959

956:                                              ; preds = %944
  %957 = load i32, ptr %91, align 4, !tbaa !9
  %958 = add nsw i32 %957, 1
  store i32 %958, ptr %91, align 4, !tbaa !9
  br label %959

959:                                              ; preds = %956, %944
  %960 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %960, ptr %33, align 4, !tbaa !9
  %961 = load i32, ptr %33, align 4, !tbaa !9
  %962 = load i32, ptr %33, align 4, !tbaa !9
  %963 = mul nsw i32 %961, %962
  store i32 %963, ptr %76, align 4, !tbaa !9
  %964 = load i32, ptr %86, align 4, !tbaa !9
  %965 = icmp sle i32 5, %964
  br i1 %965, label %966, label %967

966:                                              ; preds = %959
  br label %969

967:                                              ; preds = %959
  %968 = load i32, ptr %86, align 4, !tbaa !9
  br label %969

969:                                              ; preds = %967, %966
  %970 = phi i32 [ 5, %966 ], [ %968, %967 ]
  store i32 %970, ptr %99, align 4, !tbaa !9
  store i32 1, ptr %87, align 4, !tbaa !9
  store i32 64, ptr %33, align 4, !tbaa !9
  %971 = load i32, ptr %86, align 4, !tbaa !9
  %972 = shl i32 %971, 2
  store i32 %972, ptr %34, align 4, !tbaa !9
  %973 = load i32, ptr %65, align 4, !tbaa !9
  %974 = icmp ne i32 %973, 0
  br i1 %974, label %978, label %975

975:                                              ; preds = %969
  %976 = load i32, ptr %66, align 4, !tbaa !9
  %977 = icmp ne i32 %976, 0
  br i1 %977, label %978, label %1425

978:                                              ; preds = %975, %969
  %979 = load ptr, ptr %19, align 8, !tbaa !5
  %980 = load i32, ptr %979, align 4, !tbaa !9
  %981 = load i32, ptr %33, align 4, !tbaa !9
  %982 = load i32, ptr %34, align 4, !tbaa !9
  %983 = icmp sge i32 %981, %982
  br i1 %983, label %984, label %986

984:                                              ; preds = %978
  %985 = load i32, ptr %33, align 4, !tbaa !9
  br label %988

986:                                              ; preds = %978
  %987 = load i32, ptr %34, align 4, !tbaa !9
  br label %988

988:                                              ; preds = %986, %984
  %989 = phi i32 [ %985, %984 ], [ %987, %986 ]
  %990 = icmp sgt i32 %980, %989
  br i1 %990, label %991, label %1425

991:                                              ; preds = %988
  %992 = load ptr, ptr %19, align 8, !tbaa !5
  %993 = load i32, ptr %992, align 4, !tbaa !9
  %994 = sdiv i32 %993, 4
  store i32 %994, ptr %69, align 4, !tbaa !9
  %995 = load ptr, ptr %19, align 8, !tbaa !5
  %996 = load i32, ptr %995, align 4, !tbaa !9
  %997 = sdiv i32 %996, 2
  store i32 %997, ptr %68, align 4, !tbaa !9
  %998 = load i32, ptr %69, align 4, !tbaa !9
  %999 = mul nsw i32 %998, 3
  store i32 %999, ptr %71, align 4, !tbaa !9
  %1000 = load i32, ptr %62, align 4, !tbaa !9
  %1001 = icmp ne i32 %1000, 0
  br i1 %1001, label %1002, label %1003

1002:                                             ; preds = %991
  store i32 0, ptr %51, align 4, !tbaa !9
  br label %1004

1003:                                             ; preds = %991
  store i32 1, ptr %51, align 4, !tbaa !9
  br label %1004

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

1007:                                             ; preds = %1004
  %1008 = load ptr, ptr %18, align 8, !tbaa !5
  %1009 = load i32, ptr %1008, align 4, !tbaa !9
  %1010 = load i32, ptr %71, align 4, !tbaa !9
  %1011 = sub nsw i32 %1009, %1010
  store i32 %1011, ptr %33, align 4, !tbaa !9
  %1012 = load ptr, ptr %19, align 8, !tbaa !5
  %1013 = load i32, ptr %1012, align 4, !tbaa !9
  %1014 = load i32, ptr %71, align 4, !tbaa !9
  %1015 = sub nsw i32 %1013, %1014
  store i32 %1015, ptr %34, align 4, !tbaa !9
  %1016 = load ptr, ptr %27, align 8, !tbaa !5
  %1017 = load i32, ptr %1016, align 4, !tbaa !9
  %1018 = load ptr, ptr %19, align 8, !tbaa !5
  %1019 = load i32, ptr %1018, align 4, !tbaa !9
  %1020 = sub nsw i32 %1017, %1019
  store i32 %1020, ptr %35, align 4, !tbaa !9
  %1021 = load ptr, ptr %17, align 8, !tbaa !5
  %1022 = load ptr, ptr %20, align 8, !tbaa !5
  %1023 = load i32, ptr %71, align 4, !tbaa !9
  %1024 = add nsw i32 %1023, 1
  %1025 = load i32, ptr %71, align 4, !tbaa !9
  %1026 = add nsw i32 %1025, 1
  %1027 = load i32, ptr %29, align 4, !tbaa !9
  %1028 = mul nsw i32 %1026, %1027
  %1029 = add nsw i32 %1024, %1028
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds double, ptr %1022, i64 %1030
  %1032 = load ptr, ptr %21, align 8, !tbaa !5
  %1033 = load ptr, ptr %26, align 8, !tbaa !5
  %1034 = load i32, ptr %71, align 4, !tbaa !9
  %1035 = add nsw i32 %1034, 1
  %1036 = sext i32 %1035 to i64
  %1037 = getelementptr inbounds double, ptr %1033, i64 %1036
  %1038 = load ptr, ptr %22, align 8, !tbaa !5
  %1039 = load i32, ptr %71, align 4, !tbaa !9
  %1040 = add nsw i32 %1039, 1
  %1041 = sext i32 %1040 to i64
  %1042 = getelementptr inbounds double, ptr %1038, i64 %1041
  %1043 = load ptr, ptr %24, align 8, !tbaa !5
  %1044 = load i32, ptr %71, align 4, !tbaa !9
  %1045 = load i32, ptr %51, align 4, !tbaa !9
  %1046 = mul nsw i32 %1044, %1045
  %1047 = add nsw i32 %1046, 1
  %1048 = load i32, ptr %71, align 4, !tbaa !9
  %1049 = add nsw i32 %1048, 1
  %1050 = load i32, ptr %31, align 4, !tbaa !9
  %1051 = mul nsw i32 %1049, %1050
  %1052 = add nsw i32 %1047, %1051
  %1053 = sext i32 %1052 to i64
  %1054 = getelementptr inbounds double, ptr %1043, i64 %1053
  %1055 = load ptr, ptr %25, align 8, !tbaa !5
  %1056 = load ptr, ptr %26, align 8, !tbaa !5
  %1057 = load ptr, ptr %19, align 8, !tbaa !5
  %1058 = load i32, ptr %1057, align 4, !tbaa !9
  %1059 = add nsw i32 %1058, 1
  %1060 = sext i32 %1059 to i64
  %1061 = getelementptr inbounds double, ptr %1056, i64 %1060
  call void @dgsvj0_(ptr noundef %1021, ptr noundef %33, ptr noundef %34, ptr noundef %1031, ptr noundef %1032, ptr noundef %1037, ptr noundef %1042, ptr noundef %95, ptr noundef %1054, ptr noundef %1055, ptr noundef %61, ptr noundef %58, ptr noundef %94, ptr noundef @c__2, ptr noundef %1061, ptr noundef %35, ptr noundef %44)
  %1062 = load ptr, ptr %18, align 8, !tbaa !5
  %1063 = load i32, ptr %1062, align 4, !tbaa !9
  %1064 = load i32, ptr %68, align 4, !tbaa !9
  %1065 = sub nsw i32 %1063, %1064
  store i32 %1065, ptr %33, align 4, !tbaa !9
  %1066 = load i32, ptr %71, align 4, !tbaa !9
  %1067 = load i32, ptr %68, align 4, !tbaa !9
  %1068 = sub nsw i32 %1066, %1067
  store i32 %1068, ptr %34, align 4, !tbaa !9
  %1069 = load ptr, ptr %27, align 8, !tbaa !5
  %1070 = load i32, ptr %1069, align 4, !tbaa !9
  %1071 = load ptr, ptr %19, align 8, !tbaa !5
  %1072 = load i32, ptr %1071, align 4, !tbaa !9
  %1073 = sub nsw i32 %1070, %1072
  store i32 %1073, ptr %35, align 4, !tbaa !9
  %1074 = load ptr, ptr %17, align 8, !tbaa !5
  %1075 = load ptr, ptr %20, align 8, !tbaa !5
  %1076 = load i32, ptr %68, align 4, !tbaa !9
  %1077 = add nsw i32 %1076, 1
  %1078 = load i32, ptr %68, align 4, !tbaa !9
  %1079 = add nsw i32 %1078, 1
  %1080 = load i32, ptr %29, align 4, !tbaa !9
  %1081 = mul nsw i32 %1079, %1080
  %1082 = add nsw i32 %1077, %1081
  %1083 = sext i32 %1082 to i64
  %1084 = getelementptr inbounds double, ptr %1075, i64 %1083
  %1085 = load ptr, ptr %21, align 8, !tbaa !5
  %1086 = load ptr, ptr %26, align 8, !tbaa !5
  %1087 = load i32, ptr %68, align 4, !tbaa !9
  %1088 = add nsw i32 %1087, 1
  %1089 = sext i32 %1088 to i64
  %1090 = getelementptr inbounds double, ptr %1086, i64 %1089
  %1091 = load ptr, ptr %22, align 8, !tbaa !5
  %1092 = load i32, ptr %68, align 4, !tbaa !9
  %1093 = add nsw i32 %1092, 1
  %1094 = sext i32 %1093 to i64
  %1095 = getelementptr inbounds double, ptr %1091, i64 %1094
  %1096 = load ptr, ptr %24, align 8, !tbaa !5
  %1097 = load i32, ptr %68, align 4, !tbaa !9
  %1098 = load i32, ptr %51, align 4, !tbaa !9
  %1099 = mul nsw i32 %1097, %1098
  %1100 = add nsw i32 %1099, 1
  %1101 = load i32, ptr %68, align 4, !tbaa !9
  %1102 = add nsw i32 %1101, 1
  %1103 = load i32, ptr %31, align 4, !tbaa !9
  %1104 = mul nsw i32 %1102, %1103
  %1105 = add nsw i32 %1100, %1104
  %1106 = sext i32 %1105 to i64
  %1107 = getelementptr inbounds double, ptr %1096, i64 %1106
  %1108 = load ptr, ptr %25, align 8, !tbaa !5
  %1109 = load ptr, ptr %26, align 8, !tbaa !5
  %1110 = load ptr, ptr %19, align 8, !tbaa !5
  %1111 = load i32, ptr %1110, align 4, !tbaa !9
  %1112 = add nsw i32 %1111, 1
  %1113 = sext i32 %1112 to i64
  %1114 = getelementptr inbounds double, ptr %1109, i64 %1113
  call void @dgsvj0_(ptr noundef %1074, ptr noundef %33, ptr noundef %34, ptr noundef %1084, ptr noundef %1085, ptr noundef %1090, ptr noundef %1095, ptr noundef %95, ptr noundef %1107, ptr noundef %1108, ptr noundef %61, ptr noundef %58, ptr noundef %94, ptr noundef @c__2, ptr noundef %1114, ptr noundef %35, ptr noundef %44)
  %1115 = load ptr, ptr %18, align 8, !tbaa !5
  %1116 = load i32, ptr %1115, align 4, !tbaa !9
  %1117 = load i32, ptr %68, align 4, !tbaa !9
  %1118 = sub nsw i32 %1116, %1117
  store i32 %1118, ptr %33, align 4, !tbaa !9
  %1119 = load ptr, ptr %19, align 8, !tbaa !5
  %1120 = load i32, ptr %1119, align 4, !tbaa !9
  %1121 = load i32, ptr %68, align 4, !tbaa !9
  %1122 = sub nsw i32 %1120, %1121
  store i32 %1122, ptr %34, align 4, !tbaa !9
  %1123 = load ptr, ptr %27, align 8, !tbaa !5
  %1124 = load i32, ptr %1123, align 4, !tbaa !9
  %1125 = load ptr, ptr %19, align 8, !tbaa !5
  %1126 = load i32, ptr %1125, align 4, !tbaa !9
  %1127 = sub nsw i32 %1124, %1126
  store i32 %1127, ptr %35, align 4, !tbaa !9
  %1128 = load ptr, ptr %17, align 8, !tbaa !5
  %1129 = load ptr, ptr %20, align 8, !tbaa !5
  %1130 = load i32, ptr %68, align 4, !tbaa !9
  %1131 = add nsw i32 %1130, 1
  %1132 = load i32, ptr %68, align 4, !tbaa !9
  %1133 = add nsw i32 %1132, 1
  %1134 = load i32, ptr %29, align 4, !tbaa !9
  %1135 = mul nsw i32 %1133, %1134
  %1136 = add nsw i32 %1131, %1135
  %1137 = sext i32 %1136 to i64
  %1138 = getelementptr inbounds double, ptr %1129, i64 %1137
  %1139 = load ptr, ptr %21, align 8, !tbaa !5
  %1140 = load ptr, ptr %26, align 8, !tbaa !5
  %1141 = load i32, ptr %68, align 4, !tbaa !9
  %1142 = add nsw i32 %1141, 1
  %1143 = sext i32 %1142 to i64
  %1144 = getelementptr inbounds double, ptr %1140, i64 %1143
  %1145 = load ptr, ptr %22, align 8, !tbaa !5
  %1146 = load i32, ptr %68, align 4, !tbaa !9
  %1147 = add nsw i32 %1146, 1
  %1148 = sext i32 %1147 to i64
  %1149 = getelementptr inbounds double, ptr %1145, i64 %1148
  %1150 = load ptr, ptr %24, align 8, !tbaa !5
  %1151 = load i32, ptr %68, align 4, !tbaa !9
  %1152 = load i32, ptr %51, align 4, !tbaa !9
  %1153 = mul nsw i32 %1151, %1152
  %1154 = add nsw i32 %1153, 1
  %1155 = load i32, ptr %68, align 4, !tbaa !9
  %1156 = add nsw i32 %1155, 1
  %1157 = load i32, ptr %31, align 4, !tbaa !9
  %1158 = mul nsw i32 %1156, %1157
  %1159 = add nsw i32 %1154, %1158
  %1160 = sext i32 %1159 to i64
  %1161 = getelementptr inbounds double, ptr %1150, i64 %1160
  %1162 = load ptr, ptr %25, align 8, !tbaa !5
  %1163 = load ptr, ptr %26, align 8, !tbaa !5
  %1164 = load ptr, ptr %19, align 8, !tbaa !5
  %1165 = load i32, ptr %1164, align 4, !tbaa !9
  %1166 = add nsw i32 %1165, 1
  %1167 = sext i32 %1166 to i64
  %1168 = getelementptr inbounds double, ptr %1163, i64 %1167
  call void @dgsvj1_(ptr noundef %1128, ptr noundef %33, ptr noundef %34, ptr noundef %69, ptr noundef %1138, ptr noundef %1139, ptr noundef %1144, ptr noundef %1149, ptr noundef %95, ptr noundef %1161, ptr noundef %1162, ptr noundef %61, ptr noundef %58, ptr noundef %94, ptr noundef @c__1, ptr noundef %1168, ptr noundef %35, ptr noundef %44)
  %1169 = load ptr, ptr %18, align 8, !tbaa !5
  %1170 = load i32, ptr %1169, align 4, !tbaa !9
  %1171 = load i32, ptr %69, align 4, !tbaa !9
  %1172 = sub nsw i32 %1170, %1171
  store i32 %1172, ptr %33, align 4, !tbaa !9
  %1173 = load i32, ptr %68, align 4, !tbaa !9
  %1174 = load i32, ptr %69, align 4, !tbaa !9
  %1175 = sub nsw i32 %1173, %1174
  store i32 %1175, ptr %34, align 4, !tbaa !9
  %1176 = load ptr, ptr %27, align 8, !tbaa !5
  %1177 = load i32, ptr %1176, align 4, !tbaa !9
  %1178 = load ptr, ptr %19, align 8, !tbaa !5
  %1179 = load i32, ptr %1178, align 4, !tbaa !9
  %1180 = sub nsw i32 %1177, %1179
  store i32 %1180, ptr %35, align 4, !tbaa !9
  %1181 = load ptr, ptr %17, align 8, !tbaa !5
  %1182 = load ptr, ptr %20, align 8, !tbaa !5
  %1183 = load i32, ptr %69, align 4, !tbaa !9
  %1184 = add nsw i32 %1183, 1
  %1185 = load i32, ptr %69, align 4, !tbaa !9
  %1186 = add nsw i32 %1185, 1
  %1187 = load i32, ptr %29, align 4, !tbaa !9
  %1188 = mul nsw i32 %1186, %1187
  %1189 = add nsw i32 %1184, %1188
  %1190 = sext i32 %1189 to i64
  %1191 = getelementptr inbounds double, ptr %1182, i64 %1190
  %1192 = load ptr, ptr %21, align 8, !tbaa !5
  %1193 = load ptr, ptr %26, align 8, !tbaa !5
  %1194 = load i32, ptr %69, align 4, !tbaa !9
  %1195 = add nsw i32 %1194, 1
  %1196 = sext i32 %1195 to i64
  %1197 = getelementptr inbounds double, ptr %1193, i64 %1196
  %1198 = load ptr, ptr %22, align 8, !tbaa !5
  %1199 = load i32, ptr %69, align 4, !tbaa !9
  %1200 = add nsw i32 %1199, 1
  %1201 = sext i32 %1200 to i64
  %1202 = getelementptr inbounds double, ptr %1198, i64 %1201
  %1203 = load ptr, ptr %24, align 8, !tbaa !5
  %1204 = load i32, ptr %69, align 4, !tbaa !9
  %1205 = load i32, ptr %51, align 4, !tbaa !9
  %1206 = mul nsw i32 %1204, %1205
  %1207 = add nsw i32 %1206, 1
  %1208 = load i32, ptr %69, align 4, !tbaa !9
  %1209 = add nsw i32 %1208, 1
  %1210 = load i32, ptr %31, align 4, !tbaa !9
  %1211 = mul nsw i32 %1209, %1210
  %1212 = add nsw i32 %1207, %1211
  %1213 = sext i32 %1212 to i64
  %1214 = getelementptr inbounds double, ptr %1203, i64 %1213
  %1215 = load ptr, ptr %25, align 8, !tbaa !5
  %1216 = load ptr, ptr %26, align 8, !tbaa !5
  %1217 = load ptr, ptr %19, align 8, !tbaa !5
  %1218 = load i32, ptr %1217, align 4, !tbaa !9
  %1219 = add nsw i32 %1218, 1
  %1220 = sext i32 %1219 to i64
  %1221 = getelementptr inbounds double, ptr %1216, i64 %1220
  call void @dgsvj0_(ptr noundef %1181, ptr noundef %33, ptr noundef %34, ptr noundef %1191, ptr noundef %1192, ptr noundef %1197, ptr noundef %1202, ptr noundef %95, ptr noundef %1214, ptr noundef %1215, ptr noundef %61, ptr noundef %58, ptr noundef %94, ptr noundef @c__1, ptr noundef %1221, ptr noundef %35, ptr noundef %44)
  %1222 = load ptr, ptr %27, align 8, !tbaa !5
  %1223 = load i32, ptr %1222, align 4, !tbaa !9
  %1224 = load ptr, ptr %19, align 8, !tbaa !5
  %1225 = load i32, ptr %1224, align 4, !tbaa !9
  %1226 = sub nsw i32 %1223, %1225
  store i32 %1226, ptr %33, align 4, !tbaa !9
  %1227 = load ptr, ptr %17, align 8, !tbaa !5
  %1228 = load ptr, ptr %18, align 8, !tbaa !5
  %1229 = load ptr, ptr %20, align 8, !tbaa !5
  %1230 = load i32, ptr %30, align 4, !tbaa !9
  %1231 = sext i32 %1230 to i64
  %1232 = getelementptr inbounds double, ptr %1229, i64 %1231
  %1233 = load ptr, ptr %21, align 8, !tbaa !5
  %1234 = load ptr, ptr %26, align 8, !tbaa !5
  %1235 = getelementptr inbounds double, ptr %1234, i64 1
  %1236 = load ptr, ptr %22, align 8, !tbaa !5
  %1237 = getelementptr inbounds double, ptr %1236, i64 1
  %1238 = load ptr, ptr %24, align 8, !tbaa !5
  %1239 = load i32, ptr %32, align 4, !tbaa !9
  %1240 = sext i32 %1239 to i64
  %1241 = getelementptr inbounds double, ptr %1238, i64 %1240
  %1242 = load ptr, ptr %25, align 8, !tbaa !5
  %1243 = load ptr, ptr %26, align 8, !tbaa !5
  %1244 = load ptr, ptr %19, align 8, !tbaa !5
  %1245 = load i32, ptr %1244, align 4, !tbaa !9
  %1246 = add nsw i32 %1245, 1
  %1247 = sext i32 %1246 to i64
  %1248 = getelementptr inbounds double, ptr %1243, i64 %1247
  call void @dgsvj0_(ptr noundef %1227, ptr noundef %1228, ptr noundef %69, ptr noundef %1232, ptr noundef %1233, ptr noundef %1235, ptr noundef %1237, ptr noundef %95, ptr noundef %1241, ptr noundef %1242, ptr noundef %61, ptr noundef %58, ptr noundef %94, ptr noundef @c__1, ptr noundef %1248, ptr noundef %33, ptr noundef %44)
  %1249 = load ptr, ptr %27, align 8, !tbaa !5
  %1250 = load i32, ptr %1249, align 4, !tbaa !9
  %1251 = load ptr, ptr %19, align 8, !tbaa !5
  %1252 = load i32, ptr %1251, align 4, !tbaa !9
  %1253 = sub nsw i32 %1250, %1252
  store i32 %1253, ptr %33, align 4, !tbaa !9
  %1254 = load ptr, ptr %17, align 8, !tbaa !5
  %1255 = load ptr, ptr %18, align 8, !tbaa !5
  %1256 = load ptr, ptr %20, align 8, !tbaa !5
  %1257 = load i32, ptr %30, align 4, !tbaa !9
  %1258 = sext i32 %1257 to i64
  %1259 = getelementptr inbounds double, ptr %1256, i64 %1258
  %1260 = load ptr, ptr %21, align 8, !tbaa !5
  %1261 = load ptr, ptr %26, align 8, !tbaa !5
  %1262 = getelementptr inbounds double, ptr %1261, i64 1
  %1263 = load ptr, ptr %22, align 8, !tbaa !5
  %1264 = getelementptr inbounds double, ptr %1263, i64 1
  %1265 = load ptr, ptr %24, align 8, !tbaa !5
  %1266 = load i32, ptr %32, align 4, !tbaa !9
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds double, ptr %1265, i64 %1267
  %1269 = load ptr, ptr %25, align 8, !tbaa !5
  %1270 = load ptr, ptr %26, align 8, !tbaa !5
  %1271 = load ptr, ptr %19, align 8, !tbaa !5
  %1272 = load i32, ptr %1271, align 4, !tbaa !9
  %1273 = add nsw i32 %1272, 1
  %1274 = sext i32 %1273 to i64
  %1275 = getelementptr inbounds double, ptr %1270, i64 %1274
  call void @dgsvj1_(ptr noundef %1254, ptr noundef %1255, ptr noundef %68, ptr noundef %69, ptr noundef %1259, ptr noundef %1260, ptr noundef %1262, ptr noundef %1264, ptr noundef %95, ptr noundef %1268, ptr noundef %1269, ptr noundef %61, ptr noundef %58, ptr noundef %94, ptr noundef @c__1, ptr noundef %1275, ptr noundef %33, ptr noundef %44)
  br label %1424

1276:                                             ; preds = %1004
  %1277 = load i32, ptr %66, align 4, !tbaa !9
  %1278 = icmp ne i32 %1277, 0
  br i1 %1278, label %1279, label %1423

1279:                                             ; preds = %1276
  %1280 = load ptr, ptr %27, align 8, !tbaa !5
  %1281 = load i32, ptr %1280, align 4, !tbaa !9
  %1282 = load ptr, ptr %19, align 8, !tbaa !5
  %1283 = load i32, ptr %1282, align 4, !tbaa !9
  %1284 = sub nsw i32 %1281, %1283
  store i32 %1284, ptr %33, align 4, !tbaa !9
  %1285 = load ptr, ptr %17, align 8, !tbaa !5
  %1286 = load ptr, ptr %20, align 8, !tbaa !5
  %1287 = load i32, ptr %30, align 4, !tbaa !9
  %1288 = sext i32 %1287 to i64
  %1289 = getelementptr inbounds double, ptr %1286, i64 %1288
  %1290 = load ptr, ptr %21, align 8, !tbaa !5
  %1291 = load ptr, ptr %26, align 8, !tbaa !5
  %1292 = getelementptr inbounds double, ptr %1291, i64 1
  %1293 = load ptr, ptr %22, align 8, !tbaa !5
  %1294 = getelementptr inbounds double, ptr %1293, i64 1
  %1295 = load ptr, ptr %24, align 8, !tbaa !5
  %1296 = load i32, ptr %32, align 4, !tbaa !9
  %1297 = sext i32 %1296 to i64
  %1298 = getelementptr inbounds double, ptr %1295, i64 %1297
  %1299 = load ptr, ptr %25, align 8, !tbaa !5
  %1300 = load ptr, ptr %26, align 8, !tbaa !5
  %1301 = load ptr, ptr %19, align 8, !tbaa !5
  %1302 = load i32, ptr %1301, align 4, !tbaa !9
  %1303 = add nsw i32 %1302, 1
  %1304 = sext i32 %1303 to i64
  %1305 = getelementptr inbounds double, ptr %1300, i64 %1304
  call void @dgsvj0_(ptr noundef %1285, ptr noundef %69, ptr noundef %69, ptr noundef %1289, ptr noundef %1290, ptr noundef %1292, ptr noundef %1294, ptr noundef %95, ptr noundef %1298, ptr noundef %1299, ptr noundef %61, ptr noundef %58, ptr noundef %94, ptr noundef @c__2, ptr noundef %1305, ptr noundef %33, ptr noundef %44)
  %1306 = load ptr, ptr %27, align 8, !tbaa !5
  %1307 = load i32, ptr %1306, align 4, !tbaa !9
  %1308 = load ptr, ptr %19, align 8, !tbaa !5
  %1309 = load i32, ptr %1308, align 4, !tbaa !9
  %1310 = sub nsw i32 %1307, %1309
  store i32 %1310, ptr %33, align 4, !tbaa !9
  %1311 = load ptr, ptr %17, align 8, !tbaa !5
  %1312 = load ptr, ptr %20, align 8, !tbaa !5
  %1313 = load i32, ptr %69, align 4, !tbaa !9
  %1314 = add nsw i32 %1313, 1
  %1315 = load i32, ptr %29, align 4, !tbaa !9
  %1316 = mul nsw i32 %1314, %1315
  %1317 = add nsw i32 %1316, 1
  %1318 = sext i32 %1317 to i64
  %1319 = getelementptr inbounds double, ptr %1312, i64 %1318
  %1320 = load ptr, ptr %21, align 8, !tbaa !5
  %1321 = load ptr, ptr %26, align 8, !tbaa !5
  %1322 = load i32, ptr %69, align 4, !tbaa !9
  %1323 = add nsw i32 %1322, 1
  %1324 = sext i32 %1323 to i64
  %1325 = getelementptr inbounds double, ptr %1321, i64 %1324
  %1326 = load ptr, ptr %22, align 8, !tbaa !5
  %1327 = load i32, ptr %69, align 4, !tbaa !9
  %1328 = add nsw i32 %1327, 1
  %1329 = sext i32 %1328 to i64
  %1330 = getelementptr inbounds double, ptr %1326, i64 %1329
  %1331 = load ptr, ptr %24, align 8, !tbaa !5
  %1332 = load i32, ptr %69, align 4, !tbaa !9
  %1333 = load i32, ptr %51, align 4, !tbaa !9
  %1334 = mul nsw i32 %1332, %1333
  %1335 = add nsw i32 %1334, 1
  %1336 = load i32, ptr %69, align 4, !tbaa !9
  %1337 = add nsw i32 %1336, 1
  %1338 = load i32, ptr %31, align 4, !tbaa !9
  %1339 = mul nsw i32 %1337, %1338
  %1340 = add nsw i32 %1335, %1339
  %1341 = sext i32 %1340 to i64
  %1342 = getelementptr inbounds double, ptr %1331, i64 %1341
  %1343 = load ptr, ptr %25, align 8, !tbaa !5
  %1344 = load ptr, ptr %26, align 8, !tbaa !5
  %1345 = load ptr, ptr %19, align 8, !tbaa !5
  %1346 = load i32, ptr %1345, align 4, !tbaa !9
  %1347 = add nsw i32 %1346, 1
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds double, ptr %1344, i64 %1348
  call void @dgsvj0_(ptr noundef %1311, ptr noundef %68, ptr noundef %69, ptr noundef %1319, ptr noundef %1320, ptr noundef %1325, ptr noundef %1330, ptr noundef %95, ptr noundef %1342, ptr noundef %1343, ptr noundef %61, ptr noundef %58, ptr noundef %94, ptr noundef @c__1, ptr noundef %1349, ptr noundef %33, ptr noundef %44)
  %1350 = load ptr, ptr %27, align 8, !tbaa !5
  %1351 = load i32, ptr %1350, align 4, !tbaa !9
  %1352 = load ptr, ptr %19, align 8, !tbaa !5
  %1353 = load i32, ptr %1352, align 4, !tbaa !9
  %1354 = sub nsw i32 %1351, %1353
  store i32 %1354, ptr %33, align 4, !tbaa !9
  %1355 = load ptr, ptr %17, align 8, !tbaa !5
  %1356 = load ptr, ptr %20, align 8, !tbaa !5
  %1357 = load i32, ptr %30, align 4, !tbaa !9
  %1358 = sext i32 %1357 to i64
  %1359 = getelementptr inbounds double, ptr %1356, i64 %1358
  %1360 = load ptr, ptr %21, align 8, !tbaa !5
  %1361 = load ptr, ptr %26, align 8, !tbaa !5
  %1362 = getelementptr inbounds double, ptr %1361, i64 1
  %1363 = load ptr, ptr %22, align 8, !tbaa !5
  %1364 = getelementptr inbounds double, ptr %1363, i64 1
  %1365 = load ptr, ptr %24, align 8, !tbaa !5
  %1366 = load i32, ptr %32, align 4, !tbaa !9
  %1367 = sext i32 %1366 to i64
  %1368 = getelementptr inbounds double, ptr %1365, i64 %1367
  %1369 = load ptr, ptr %25, align 8, !tbaa !5
  %1370 = load ptr, ptr %26, align 8, !tbaa !5
  %1371 = load ptr, ptr %19, align 8, !tbaa !5
  %1372 = load i32, ptr %1371, align 4, !tbaa !9
  %1373 = add nsw i32 %1372, 1
  %1374 = sext i32 %1373 to i64
  %1375 = getelementptr inbounds double, ptr %1370, i64 %1374
  call void @dgsvj1_(ptr noundef %1355, ptr noundef %68, ptr noundef %68, ptr noundef %69, ptr noundef %1359, ptr noundef %1360, ptr noundef %1362, ptr noundef %1364, ptr noundef %95, ptr noundef %1368, ptr noundef %1369, ptr noundef %61, ptr noundef %58, ptr noundef %94, ptr noundef @c__1, ptr noundef %1375, ptr noundef %33, ptr noundef %44)
  %1376 = load i32, ptr %68, align 4, !tbaa !9
  %1377 = load i32, ptr %69, align 4, !tbaa !9
  %1378 = add nsw i32 %1376, %1377
  store i32 %1378, ptr %33, align 4, !tbaa !9
  %1379 = load ptr, ptr %27, align 8, !tbaa !5
  %1380 = load i32, ptr %1379, align 4, !tbaa !9
  %1381 = load ptr, ptr %19, align 8, !tbaa !5
  %1382 = load i32, ptr %1381, align 4, !tbaa !9
  %1383 = sub nsw i32 %1380, %1382
  store i32 %1383, ptr %34, align 4, !tbaa !9
  %1384 = load ptr, ptr %17, align 8, !tbaa !5
  %1385 = load ptr, ptr %20, align 8, !tbaa !5
  %1386 = load i32, ptr %68, align 4, !tbaa !9
  %1387 = add nsw i32 %1386, 1
  %1388 = load i32, ptr %29, align 4, !tbaa !9
  %1389 = mul nsw i32 %1387, %1388
  %1390 = add nsw i32 %1389, 1
  %1391 = sext i32 %1390 to i64
  %1392 = getelementptr inbounds double, ptr %1385, i64 %1391
  %1393 = load ptr, ptr %21, align 8, !tbaa !5
  %1394 = load ptr, ptr %26, align 8, !tbaa !5
  %1395 = load i32, ptr %68, align 4, !tbaa !9
  %1396 = add nsw i32 %1395, 1
  %1397 = sext i32 %1396 to i64
  %1398 = getelementptr inbounds double, ptr %1394, i64 %1397
  %1399 = load ptr, ptr %22, align 8, !tbaa !5
  %1400 = load i32, ptr %68, align 4, !tbaa !9
  %1401 = add nsw i32 %1400, 1
  %1402 = sext i32 %1401 to i64
  %1403 = getelementptr inbounds double, ptr %1399, i64 %1402
  %1404 = load ptr, ptr %24, align 8, !tbaa !5
  %1405 = load i32, ptr %68, align 4, !tbaa !9
  %1406 = load i32, ptr %51, align 4, !tbaa !9
  %1407 = mul nsw i32 %1405, %1406
  %1408 = add nsw i32 %1407, 1
  %1409 = load i32, ptr %68, align 4, !tbaa !9
  %1410 = add nsw i32 %1409, 1
  %1411 = load i32, ptr %31, align 4, !tbaa !9
  %1412 = mul nsw i32 %1410, %1411
  %1413 = add nsw i32 %1408, %1412
  %1414 = sext i32 %1413 to i64
  %1415 = getelementptr inbounds double, ptr %1404, i64 %1414
  %1416 = load ptr, ptr %25, align 8, !tbaa !5
  %1417 = load ptr, ptr %26, align 8, !tbaa !5
  %1418 = load ptr, ptr %19, align 8, !tbaa !5
  %1419 = load i32, ptr %1418, align 4, !tbaa !9
  %1420 = add nsw i32 %1419, 1
  %1421 = sext i32 %1420 to i64
  %1422 = getelementptr inbounds double, ptr %1417, i64 %1421
  call void @dgsvj0_(ptr noundef %1384, ptr noundef %33, ptr noundef %69, ptr noundef %1392, ptr noundef %1393, ptr noundef %1398, ptr noundef %1403, ptr noundef %95, ptr noundef %1415, ptr noundef %1416, ptr noundef %61, ptr noundef %58, ptr noundef %94, ptr noundef @c__1, ptr noundef %1422, ptr noundef %34, ptr noundef %44)
  br label %1423

1423:                                             ; preds = %1279, %1276
  br label %1424

1424:                                             ; preds = %1423, %1007
  br label %1425

1425:                                             ; preds = %1424, %988, %975
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %1426

1426:                                             ; preds = %4655, %1425
  %1427 = load i32, ptr %49, align 4, !tbaa !9
  %1428 = icmp sle i32 %1427, 30
  br i1 %1428, label %1429, label %4658

1429:                                             ; preds = %1426
  store double 0.000000e+00, ptr %77, align 8, !tbaa !11
  store double 0.000000e+00, ptr %79, align 8, !tbaa !11
  store i32 0, ptr %83, align 4, !tbaa !9
  store i32 0, ptr %82, align 4, !tbaa !9
  store i32 0, ptr %46, align 4, !tbaa !9
  %1430 = load i32, ptr %91, align 4, !tbaa !9
  store i32 %1430, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %89, align 4, !tbaa !9
  br label %1431

1431:                                             ; preds = %4539, %1429
  %1432 = load i32, ptr %89, align 4, !tbaa !9
  %1433 = load i32, ptr %33, align 4, !tbaa !9
  %1434 = icmp sle i32 %1432, %1433
  br i1 %1434, label %1435, label %4542

1435:                                             ; preds = %1431
  %1436 = load i32, ptr %89, align 4, !tbaa !9
  %1437 = sub nsw i32 %1436, 1
  %1438 = load i32, ptr %86, align 4, !tbaa !9
  %1439 = mul nsw i32 %1437, %1438
  %1440 = add nsw i32 %1439, 1
  store i32 %1440, ptr %88, align 4, !tbaa !9
  %1441 = load i32, ptr %87, align 4, !tbaa !9
  store i32 %1441, ptr %35, align 4, !tbaa !9
  %1442 = load i32, ptr %91, align 4, !tbaa !9
  %1443 = load i32, ptr %89, align 4, !tbaa !9
  %1444 = sub nsw i32 %1442, %1443
  store i32 %1444, ptr %36, align 4, !tbaa !9
  %1445 = load i32, ptr %35, align 4, !tbaa !9
  %1446 = load i32, ptr %36, align 4, !tbaa !9
  %1447 = icmp sle i32 %1445, %1446
  br i1 %1447, label %1448, label %1450

1448:                                             ; preds = %1435
  %1449 = load i32, ptr %35, align 4, !tbaa !9
  br label %1452

1450:                                             ; preds = %1435
  %1451 = load i32, ptr %36, align 4, !tbaa !9
  br label %1452

1452:                                             ; preds = %1450, %1448
  %1453 = phi i32 [ %1449, %1448 ], [ %1451, %1450 ]
  store i32 %1453, ptr %34, align 4, !tbaa !9
  store i32 0, ptr %80, align 4, !tbaa !9
  br label %1454

1454:                                             ; preds = %2975, %1452
  %1455 = load i32, ptr %80, align 4, !tbaa !9
  %1456 = load i32, ptr %34, align 4, !tbaa !9
  %1457 = icmp sle i32 %1455, %1456
  br i1 %1457, label %1458, label %2978

1458:                                             ; preds = %1454
  %1459 = load i32, ptr %80, align 4, !tbaa !9
  %1460 = load i32, ptr %86, align 4, !tbaa !9
  %1461 = mul nsw i32 %1459, %1460
  %1462 = load i32, ptr %88, align 4, !tbaa !9
  %1463 = add nsw i32 %1462, %1461
  store i32 %1463, ptr %88, align 4, !tbaa !9
  %1464 = load i32, ptr %88, align 4, !tbaa !9
  %1465 = load i32, ptr %86, align 4, !tbaa !9
  %1466 = add nsw i32 %1464, %1465
  %1467 = sub nsw i32 %1466, 1
  store i32 %1467, ptr %36, align 4, !tbaa !9
  %1468 = load ptr, ptr %19, align 8, !tbaa !5
  %1469 = load i32, ptr %1468, align 4, !tbaa !9
  %1470 = sub nsw i32 %1469, 1
  store i32 %1470, ptr %37, align 4, !tbaa !9
  %1471 = load i32, ptr %36, align 4, !tbaa !9
  %1472 = load i32, ptr %37, align 4, !tbaa !9
  %1473 = icmp sle i32 %1471, %1472
  br i1 %1473, label %1474, label %1476

1474:                                             ; preds = %1458
  %1475 = load i32, ptr %36, align 4, !tbaa !9
  br label %1478

1476:                                             ; preds = %1458
  %1477 = load i32, ptr %37, align 4, !tbaa !9
  br label %1478

1478:                                             ; preds = %1476, %1474
  %1479 = phi i32 [ %1475, %1474 ], [ %1477, %1476 ]
  store i32 %1479, ptr %35, align 4, !tbaa !9
  %1480 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %1480, ptr %50, align 4, !tbaa !9
  br label %1481

1481:                                             ; preds = %2971, %1478
  %1482 = load i32, ptr %50, align 4, !tbaa !9
  %1483 = load i32, ptr %35, align 4, !tbaa !9
  %1484 = icmp sle i32 %1482, %1483
  br i1 %1484, label %1485, label %2974

1485:                                             ; preds = %1481
  %1486 = load ptr, ptr %19, align 8, !tbaa !5
  %1487 = load i32, ptr %1486, align 4, !tbaa !9
  %1488 = load i32, ptr %50, align 4, !tbaa !9
  %1489 = sub nsw i32 %1487, %1488
  %1490 = add nsw i32 %1489, 1
  store i32 %1490, ptr %36, align 4, !tbaa !9
  %1491 = load ptr, ptr %22, align 8, !tbaa !5
  %1492 = load i32, ptr %50, align 4, !tbaa !9
  %1493 = sext i32 %1492 to i64
  %1494 = getelementptr inbounds double, ptr %1491, i64 %1493
  %1495 = call i32 @idamax_(ptr noundef %36, ptr noundef %1494, ptr noundef @c__1)
  %1496 = load i32, ptr %50, align 4, !tbaa !9
  %1497 = add nsw i32 %1495, %1496
  %1498 = sub nsw i32 %1497, 1
  store i32 %1498, ptr %51, align 4, !tbaa !9
  %1499 = load i32, ptr %50, align 4, !tbaa !9
  %1500 = load i32, ptr %51, align 4, !tbaa !9
  %1501 = icmp ne i32 %1499, %1500
  br i1 %1501, label %1502, label %1574

1502:                                             ; preds = %1485
  %1503 = load ptr, ptr %18, align 8, !tbaa !5
  %1504 = load ptr, ptr %20, align 8, !tbaa !5
  %1505 = load i32, ptr %50, align 4, !tbaa !9
  %1506 = load i32, ptr %29, align 4, !tbaa !9
  %1507 = mul nsw i32 %1505, %1506
  %1508 = add nsw i32 %1507, 1
  %1509 = sext i32 %1508 to i64
  %1510 = getelementptr inbounds double, ptr %1504, i64 %1509
  %1511 = load ptr, ptr %20, align 8, !tbaa !5
  %1512 = load i32, ptr %51, align 4, !tbaa !9
  %1513 = load i32, ptr %29, align 4, !tbaa !9
  %1514 = mul nsw i32 %1512, %1513
  %1515 = add nsw i32 %1514, 1
  %1516 = sext i32 %1515 to i64
  %1517 = getelementptr inbounds double, ptr %1511, i64 %1516
  call void @dswap_(ptr noundef %1503, ptr noundef %1510, ptr noundef @c__1, ptr noundef %1517, ptr noundef @c__1)
  %1518 = load i32, ptr %63, align 4, !tbaa !9
  %1519 = icmp ne i32 %1518, 0
  br i1 %1519, label %1520, label %1535

1520:                                             ; preds = %1502
  %1521 = load ptr, ptr %24, align 8, !tbaa !5
  %1522 = load i32, ptr %50, align 4, !tbaa !9
  %1523 = load i32, ptr %31, align 4, !tbaa !9
  %1524 = mul nsw i32 %1522, %1523
  %1525 = add nsw i32 %1524, 1
  %1526 = sext i32 %1525 to i64
  %1527 = getelementptr inbounds double, ptr %1521, i64 %1526
  %1528 = load ptr, ptr %24, align 8, !tbaa !5
  %1529 = load i32, ptr %51, align 4, !tbaa !9
  %1530 = load i32, ptr %31, align 4, !tbaa !9
  %1531 = mul nsw i32 %1529, %1530
  %1532 = add nsw i32 %1531, 1
  %1533 = sext i32 %1532 to i64
  %1534 = getelementptr inbounds double, ptr %1528, i64 %1533
  call void @dswap_(ptr noundef %95, ptr noundef %1527, ptr noundef @c__1, ptr noundef %1534, ptr noundef @c__1)
  br label %1535

1535:                                             ; preds = %1520, %1502
  %1536 = load ptr, ptr %22, align 8, !tbaa !5
  %1537 = load i32, ptr %50, align 4, !tbaa !9
  %1538 = sext i32 %1537 to i64
  %1539 = getelementptr inbounds double, ptr %1536, i64 %1538
  %1540 = load double, ptr %1539, align 8, !tbaa !11
  store double %1540, ptr %48, align 8, !tbaa !11
  %1541 = load ptr, ptr %22, align 8, !tbaa !5
  %1542 = load i32, ptr %51, align 4, !tbaa !9
  %1543 = sext i32 %1542 to i64
  %1544 = getelementptr inbounds double, ptr %1541, i64 %1543
  %1545 = load double, ptr %1544, align 8, !tbaa !11
  %1546 = load ptr, ptr %22, align 8, !tbaa !5
  %1547 = load i32, ptr %50, align 4, !tbaa !9
  %1548 = sext i32 %1547 to i64
  %1549 = getelementptr inbounds double, ptr %1546, i64 %1548
  store double %1545, ptr %1549, align 8, !tbaa !11
  %1550 = load double, ptr %48, align 8, !tbaa !11
  %1551 = load ptr, ptr %22, align 8, !tbaa !5
  %1552 = load i32, ptr %51, align 4, !tbaa !9
  %1553 = sext i32 %1552 to i64
  %1554 = getelementptr inbounds double, ptr %1551, i64 %1553
  store double %1550, ptr %1554, align 8, !tbaa !11
  %1555 = load ptr, ptr %26, align 8, !tbaa !5
  %1556 = load i32, ptr %50, align 4, !tbaa !9
  %1557 = sext i32 %1556 to i64
  %1558 = getelementptr inbounds double, ptr %1555, i64 %1557
  %1559 = load double, ptr %1558, align 8, !tbaa !11
  store double %1559, ptr %48, align 8, !tbaa !11
  %1560 = load ptr, ptr %26, align 8, !tbaa !5
  %1561 = load i32, ptr %51, align 4, !tbaa !9
  %1562 = sext i32 %1561 to i64
  %1563 = getelementptr inbounds double, ptr %1560, i64 %1562
  %1564 = load double, ptr %1563, align 8, !tbaa !11
  %1565 = load ptr, ptr %26, align 8, !tbaa !5
  %1566 = load i32, ptr %50, align 4, !tbaa !9
  %1567 = sext i32 %1566 to i64
  %1568 = getelementptr inbounds double, ptr %1565, i64 %1567
  store double %1564, ptr %1568, align 8, !tbaa !11
  %1569 = load double, ptr %48, align 8, !tbaa !11
  %1570 = load ptr, ptr %26, align 8, !tbaa !5
  %1571 = load i32, ptr %51, align 4, !tbaa !9
  %1572 = sext i32 %1571 to i64
  %1573 = getelementptr inbounds double, ptr %1570, i64 %1572
  store double %1569, ptr %1573, align 8, !tbaa !11
  br label %1574

1574:                                             ; preds = %1535, %1485
  %1575 = load i32, ptr %80, align 4, !tbaa !9
  %1576 = icmp eq i32 %1575, 0
  br i1 %1576, label %1577, label %1642

1577:                                             ; preds = %1574
  %1578 = load ptr, ptr %22, align 8, !tbaa !5
  %1579 = load i32, ptr %50, align 4, !tbaa !9
  %1580 = sext i32 %1579 to i64
  %1581 = getelementptr inbounds double, ptr %1578, i64 %1580
  %1582 = load double, ptr %1581, align 8, !tbaa !11
  %1583 = load double, ptr %97, align 8, !tbaa !11
  %1584 = fcmp olt double %1582, %1583
  br i1 %1584, label %1585, label %1613

1585:                                             ; preds = %1577
  %1586 = load ptr, ptr %22, align 8, !tbaa !5
  %1587 = load i32, ptr %50, align 4, !tbaa !9
  %1588 = sext i32 %1587 to i64
  %1589 = getelementptr inbounds double, ptr %1586, i64 %1588
  %1590 = load double, ptr %1589, align 8, !tbaa !11
  %1591 = load double, ptr %70, align 8, !tbaa !11
  %1592 = fcmp ogt double %1590, %1591
  br i1 %1592, label %1593, label %1613

1593:                                             ; preds = %1585
  %1594 = load ptr, ptr %18, align 8, !tbaa !5
  %1595 = load ptr, ptr %20, align 8, !tbaa !5
  %1596 = load i32, ptr %50, align 4, !tbaa !9
  %1597 = load i32, ptr %29, align 4, !tbaa !9
  %1598 = mul nsw i32 %1596, %1597
  %1599 = add nsw i32 %1598, 1
  %1600 = sext i32 %1599 to i64
  %1601 = getelementptr inbounds double, ptr %1595, i64 %1600
  %1602 = call double @dnrm2_(ptr noundef %1594, ptr noundef %1601, ptr noundef @c__1)
  %1603 = load ptr, ptr %26, align 8, !tbaa !5
  %1604 = load i32, ptr %50, align 4, !tbaa !9
  %1605 = sext i32 %1604 to i64
  %1606 = getelementptr inbounds double, ptr %1603, i64 %1605
  %1607 = load double, ptr %1606, align 8, !tbaa !11
  %1608 = fmul double %1602, %1607
  %1609 = load ptr, ptr %22, align 8, !tbaa !5
  %1610 = load i32, ptr %50, align 4, !tbaa !9
  %1611 = sext i32 %1610 to i64
  %1612 = getelementptr inbounds double, ptr %1609, i64 %1611
  store double %1608, ptr %1612, align 8, !tbaa !11
  br label %1636

1613:                                             ; preds = %1585, %1577
  store double 0.000000e+00, ptr %48, align 8, !tbaa !11
  store double 1.000000e+00, ptr %40, align 8, !tbaa !11
  %1614 = load ptr, ptr %18, align 8, !tbaa !5
  %1615 = load ptr, ptr %20, align 8, !tbaa !5
  %1616 = load i32, ptr %50, align 4, !tbaa !9
  %1617 = load i32, ptr %29, align 4, !tbaa !9
  %1618 = mul nsw i32 %1616, %1617
  %1619 = add nsw i32 %1618, 1
  %1620 = sext i32 %1619 to i64
  %1621 = getelementptr inbounds double, ptr %1615, i64 %1620
  call void @dlassq_(ptr noundef %1614, ptr noundef %1621, ptr noundef @c__1, ptr noundef %48, ptr noundef %40)
  %1622 = load double, ptr %48, align 8, !tbaa !11
  %1623 = load double, ptr %40, align 8, !tbaa !11
  %1624 = call double @sqrt(double noundef %1623) #5
  %1625 = fmul double %1622, %1624
  %1626 = load ptr, ptr %26, align 8, !tbaa !5
  %1627 = load i32, ptr %50, align 4, !tbaa !9
  %1628 = sext i32 %1627 to i64
  %1629 = getelementptr inbounds double, ptr %1626, i64 %1628
  %1630 = load double, ptr %1629, align 8, !tbaa !11
  %1631 = fmul double %1625, %1630
  %1632 = load ptr, ptr %22, align 8, !tbaa !5
  %1633 = load i32, ptr %50, align 4, !tbaa !9
  %1634 = sext i32 %1633 to i64
  %1635 = getelementptr inbounds double, ptr %1632, i64 %1634
  store double %1631, ptr %1635, align 8, !tbaa !11
  br label %1636

1636:                                             ; preds = %1613, %1593
  %1637 = load ptr, ptr %22, align 8, !tbaa !5
  %1638 = load i32, ptr %50, align 4, !tbaa !9
  %1639 = sext i32 %1638 to i64
  %1640 = getelementptr inbounds double, ptr %1637, i64 %1639
  %1641 = load double, ptr %1640, align 8, !tbaa !11
  store double %1641, ptr %40, align 8, !tbaa !11
  br label %1648

1642:                                             ; preds = %1574
  %1643 = load ptr, ptr %22, align 8, !tbaa !5
  %1644 = load i32, ptr %50, align 4, !tbaa !9
  %1645 = sext i32 %1644 to i64
  %1646 = getelementptr inbounds double, ptr %1643, i64 %1645
  %1647 = load double, ptr %1646, align 8, !tbaa !11
  store double %1647, ptr %40, align 8, !tbaa !11
  br label %1648

1648:                                             ; preds = %1642, %1636
  %1649 = load double, ptr %40, align 8, !tbaa !11
  %1650 = fcmp ogt double %1649, 0.000000e+00
  br i1 %1650, label %1651, label %2938

1651:                                             ; preds = %1648
  store i32 0, ptr %46, align 4, !tbaa !9
  %1652 = load i32, ptr %88, align 4, !tbaa !9
  %1653 = load i32, ptr %86, align 4, !tbaa !9
  %1654 = add nsw i32 %1652, %1653
  %1655 = sub nsw i32 %1654, 1
  store i32 %1655, ptr %37, align 4, !tbaa !9
  %1656 = load i32, ptr %37, align 4, !tbaa !9
  %1657 = load ptr, ptr %19, align 8, !tbaa !5
  %1658 = load i32, ptr %1657, align 4, !tbaa !9
  %1659 = icmp sle i32 %1656, %1658
  br i1 %1659, label %1660, label %1662

1660:                                             ; preds = %1651
  %1661 = load i32, ptr %37, align 4, !tbaa !9
  br label %1665

1662:                                             ; preds = %1651
  %1663 = load ptr, ptr %19, align 8, !tbaa !5
  %1664 = load i32, ptr %1663, align 4, !tbaa !9
  br label %1665

1665:                                             ; preds = %1662, %1660
  %1666 = phi i32 [ %1661, %1660 ], [ %1664, %1662 ]
  store i32 %1666, ptr %36, align 4, !tbaa !9
  %1667 = load i32, ptr %50, align 4, !tbaa !9
  %1668 = add nsw i32 %1667, 1
  store i32 %1668, ptr %51, align 4, !tbaa !9
  br label %1669

1669:                                             ; preds = %2928, %1665
  %1670 = load i32, ptr %51, align 4, !tbaa !9
  %1671 = load i32, ptr %36, align 4, !tbaa !9
  %1672 = icmp sle i32 %1670, %1671
  br i1 %1672, label %1673, label %2931

1673:                                             ; preds = %1669
  %1674 = load ptr, ptr %22, align 8, !tbaa !5
  %1675 = load i32, ptr %51, align 4, !tbaa !9
  %1676 = sext i32 %1675 to i64
  %1677 = getelementptr inbounds double, ptr %1674, i64 %1676
  %1678 = load double, ptr %1677, align 8, !tbaa !11
  store double %1678, ptr %42, align 8, !tbaa !11
  %1679 = load double, ptr %42, align 8, !tbaa !11
  %1680 = fcmp ogt double %1679, 0.000000e+00
  br i1 %1680, label %1681, label %2903

1681:                                             ; preds = %1673
  %1682 = load double, ptr %40, align 8, !tbaa !11
  store double %1682, ptr %47, align 8, !tbaa !11
  %1683 = load double, ptr %42, align 8, !tbaa !11
  %1684 = fcmp oge double %1683, 1.000000e+00
  br i1 %1684, label %1685, label %1781

1685:                                             ; preds = %1681
  %1686 = load double, ptr %57, align 8, !tbaa !11
  %1687 = load double, ptr %40, align 8, !tbaa !11
  %1688 = fmul double %1686, %1687
  %1689 = load double, ptr %42, align 8, !tbaa !11
  %1690 = fcmp ole double %1688, %1689
  %1691 = zext i1 %1690 to i32
  store i32 %1691, ptr %67, align 4, !tbaa !9
  %1692 = load double, ptr %40, align 8, !tbaa !11
  %1693 = load double, ptr %85, align 8, !tbaa !11
  %1694 = load double, ptr %42, align 8, !tbaa !11
  %1695 = fdiv double %1693, %1694
  %1696 = fcmp olt double %1692, %1695
  br i1 %1696, label %1697, label %1730

1697:                                             ; preds = %1685
  %1698 = load ptr, ptr %18, align 8, !tbaa !5
  %1699 = load ptr, ptr %20, align 8, !tbaa !5
  %1700 = load i32, ptr %50, align 4, !tbaa !9
  %1701 = load i32, ptr %29, align 4, !tbaa !9
  %1702 = mul nsw i32 %1700, %1701
  %1703 = add nsw i32 %1702, 1
  %1704 = sext i32 %1703 to i64
  %1705 = getelementptr inbounds double, ptr %1699, i64 %1704
  %1706 = load ptr, ptr %20, align 8, !tbaa !5
  %1707 = load i32, ptr %51, align 4, !tbaa !9
  %1708 = load i32, ptr %29, align 4, !tbaa !9
  %1709 = mul nsw i32 %1707, %1708
  %1710 = add nsw i32 %1709, 1
  %1711 = sext i32 %1710 to i64
  %1712 = getelementptr inbounds double, ptr %1706, i64 %1711
  %1713 = call double @ddot_(ptr noundef %1698, ptr noundef %1705, ptr noundef @c__1, ptr noundef %1712, ptr noundef @c__1)
  %1714 = load ptr, ptr %26, align 8, !tbaa !5
  %1715 = load i32, ptr %50, align 4, !tbaa !9
  %1716 = sext i32 %1715 to i64
  %1717 = getelementptr inbounds double, ptr %1714, i64 %1716
  %1718 = load double, ptr %1717, align 8, !tbaa !11
  %1719 = fmul double %1713, %1718
  %1720 = load ptr, ptr %26, align 8, !tbaa !5
  %1721 = load i32, ptr %51, align 4, !tbaa !9
  %1722 = sext i32 %1721 to i64
  %1723 = getelementptr inbounds double, ptr %1720, i64 %1722
  %1724 = load double, ptr %1723, align 8, !tbaa !11
  %1725 = fmul double %1719, %1724
  %1726 = load double, ptr %42, align 8, !tbaa !11
  %1727 = fdiv double %1725, %1726
  %1728 = load double, ptr %40, align 8, !tbaa !11
  %1729 = fdiv double %1727, %1728
  store double %1729, ptr %41, align 8, !tbaa !11
  br label %1780

1730:                                             ; preds = %1685
  %1731 = load ptr, ptr %18, align 8, !tbaa !5
  %1732 = load ptr, ptr %20, align 8, !tbaa !5
  %1733 = load i32, ptr %50, align 4, !tbaa !9
  %1734 = load i32, ptr %29, align 4, !tbaa !9
  %1735 = mul nsw i32 %1733, %1734
  %1736 = add nsw i32 %1735, 1
  %1737 = sext i32 %1736 to i64
  %1738 = getelementptr inbounds double, ptr %1732, i64 %1737
  %1739 = load ptr, ptr %26, align 8, !tbaa !5
  %1740 = load ptr, ptr %19, align 8, !tbaa !5
  %1741 = load i32, ptr %1740, align 4, !tbaa !9
  %1742 = add nsw i32 %1741, 1
  %1743 = sext i32 %1742 to i64
  %1744 = getelementptr inbounds double, ptr %1739, i64 %1743
  call void @dcopy_(ptr noundef %1731, ptr noundef %1738, ptr noundef @c__1, ptr noundef %1744, ptr noundef @c__1)
  %1745 = load ptr, ptr %26, align 8, !tbaa !5
  %1746 = load i32, ptr %50, align 4, !tbaa !9
  %1747 = sext i32 %1746 to i64
  %1748 = getelementptr inbounds double, ptr %1745, i64 %1747
  %1749 = load ptr, ptr %18, align 8, !tbaa !5
  %1750 = load ptr, ptr %26, align 8, !tbaa !5
  %1751 = load ptr, ptr %19, align 8, !tbaa !5
  %1752 = load i32, ptr %1751, align 4, !tbaa !9
  %1753 = add nsw i32 %1752, 1
  %1754 = sext i32 %1753 to i64
  %1755 = getelementptr inbounds double, ptr %1750, i64 %1754
  %1756 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %40, ptr noundef %1748, ptr noundef %1749, ptr noundef @c__1, ptr noundef %1755, ptr noundef %1756, ptr noundef %44)
  %1757 = load ptr, ptr %18, align 8, !tbaa !5
  %1758 = load ptr, ptr %26, align 8, !tbaa !5
  %1759 = load ptr, ptr %19, align 8, !tbaa !5
  %1760 = load i32, ptr %1759, align 4, !tbaa !9
  %1761 = add nsw i32 %1760, 1
  %1762 = sext i32 %1761 to i64
  %1763 = getelementptr inbounds double, ptr %1758, i64 %1762
  %1764 = load ptr, ptr %20, align 8, !tbaa !5
  %1765 = load i32, ptr %51, align 4, !tbaa !9
  %1766 = load i32, ptr %29, align 4, !tbaa !9
  %1767 = mul nsw i32 %1765, %1766
  %1768 = add nsw i32 %1767, 1
  %1769 = sext i32 %1768 to i64
  %1770 = getelementptr inbounds double, ptr %1764, i64 %1769
  %1771 = call double @ddot_(ptr noundef %1757, ptr noundef %1763, ptr noundef @c__1, ptr noundef %1770, ptr noundef @c__1)
  %1772 = load ptr, ptr %26, align 8, !tbaa !5
  %1773 = load i32, ptr %51, align 4, !tbaa !9
  %1774 = sext i32 %1773 to i64
  %1775 = getelementptr inbounds double, ptr %1772, i64 %1774
  %1776 = load double, ptr %1775, align 8, !tbaa !11
  %1777 = fmul double %1771, %1776
  %1778 = load double, ptr %42, align 8, !tbaa !11
  %1779 = fdiv double %1777, %1778
  store double %1779, ptr %41, align 8, !tbaa !11
  br label %1780

1780:                                             ; preds = %1730, %1697
  br label %1877

1781:                                             ; preds = %1681
  %1782 = load double, ptr %40, align 8, !tbaa !11
  %1783 = load double, ptr %42, align 8, !tbaa !11
  %1784 = load double, ptr %57, align 8, !tbaa !11
  %1785 = fdiv double %1783, %1784
  %1786 = fcmp ole double %1782, %1785
  %1787 = zext i1 %1786 to i32
  store i32 %1787, ptr %67, align 4, !tbaa !9
  %1788 = load double, ptr %40, align 8, !tbaa !11
  %1789 = load double, ptr %57, align 8, !tbaa !11
  %1790 = load double, ptr %42, align 8, !tbaa !11
  %1791 = fdiv double %1789, %1790
  %1792 = fcmp ogt double %1788, %1791
  br i1 %1792, label %1793, label %1826

1793:                                             ; preds = %1781
  %1794 = load ptr, ptr %18, align 8, !tbaa !5
  %1795 = load ptr, ptr %20, align 8, !tbaa !5
  %1796 = load i32, ptr %50, align 4, !tbaa !9
  %1797 = load i32, ptr %29, align 4, !tbaa !9
  %1798 = mul nsw i32 %1796, %1797
  %1799 = add nsw i32 %1798, 1
  %1800 = sext i32 %1799 to i64
  %1801 = getelementptr inbounds double, ptr %1795, i64 %1800
  %1802 = load ptr, ptr %20, align 8, !tbaa !5
  %1803 = load i32, ptr %51, align 4, !tbaa !9
  %1804 = load i32, ptr %29, align 4, !tbaa !9
  %1805 = mul nsw i32 %1803, %1804
  %1806 = add nsw i32 %1805, 1
  %1807 = sext i32 %1806 to i64
  %1808 = getelementptr inbounds double, ptr %1802, i64 %1807
  %1809 = call double @ddot_(ptr noundef %1794, ptr noundef %1801, ptr noundef @c__1, ptr noundef %1808, ptr noundef @c__1)
  %1810 = load ptr, ptr %26, align 8, !tbaa !5
  %1811 = load i32, ptr %50, align 4, !tbaa !9
  %1812 = sext i32 %1811 to i64
  %1813 = getelementptr inbounds double, ptr %1810, i64 %1812
  %1814 = load double, ptr %1813, align 8, !tbaa !11
  %1815 = fmul double %1809, %1814
  %1816 = load ptr, ptr %26, align 8, !tbaa !5
  %1817 = load i32, ptr %51, align 4, !tbaa !9
  %1818 = sext i32 %1817 to i64
  %1819 = getelementptr inbounds double, ptr %1816, i64 %1818
  %1820 = load double, ptr %1819, align 8, !tbaa !11
  %1821 = fmul double %1815, %1820
  %1822 = load double, ptr %42, align 8, !tbaa !11
  %1823 = fdiv double %1821, %1822
  %1824 = load double, ptr %40, align 8, !tbaa !11
  %1825 = fdiv double %1823, %1824
  store double %1825, ptr %41, align 8, !tbaa !11
  br label %1876

1826:                                             ; preds = %1781
  %1827 = load ptr, ptr %18, align 8, !tbaa !5
  %1828 = load ptr, ptr %20, align 8, !tbaa !5
  %1829 = load i32, ptr %51, align 4, !tbaa !9
  %1830 = load i32, ptr %29, align 4, !tbaa !9
  %1831 = mul nsw i32 %1829, %1830
  %1832 = add nsw i32 %1831, 1
  %1833 = sext i32 %1832 to i64
  %1834 = getelementptr inbounds double, ptr %1828, i64 %1833
  %1835 = load ptr, ptr %26, align 8, !tbaa !5
  %1836 = load ptr, ptr %19, align 8, !tbaa !5
  %1837 = load i32, ptr %1836, align 4, !tbaa !9
  %1838 = add nsw i32 %1837, 1
  %1839 = sext i32 %1838 to i64
  %1840 = getelementptr inbounds double, ptr %1835, i64 %1839
  call void @dcopy_(ptr noundef %1827, ptr noundef %1834, ptr noundef @c__1, ptr noundef %1840, ptr noundef @c__1)
  %1841 = load ptr, ptr %26, align 8, !tbaa !5
  %1842 = load i32, ptr %51, align 4, !tbaa !9
  %1843 = sext i32 %1842 to i64
  %1844 = getelementptr inbounds double, ptr %1841, i64 %1843
  %1845 = load ptr, ptr %18, align 8, !tbaa !5
  %1846 = load ptr, ptr %26, align 8, !tbaa !5
  %1847 = load ptr, ptr %19, align 8, !tbaa !5
  %1848 = load i32, ptr %1847, align 4, !tbaa !9
  %1849 = add nsw i32 %1848, 1
  %1850 = sext i32 %1849 to i64
  %1851 = getelementptr inbounds double, ptr %1846, i64 %1850
  %1852 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %42, ptr noundef %1844, ptr noundef %1845, ptr noundef @c__1, ptr noundef %1851, ptr noundef %1852, ptr noundef %44)
  %1853 = load ptr, ptr %18, align 8, !tbaa !5
  %1854 = load ptr, ptr %26, align 8, !tbaa !5
  %1855 = load ptr, ptr %19, align 8, !tbaa !5
  %1856 = load i32, ptr %1855, align 4, !tbaa !9
  %1857 = add nsw i32 %1856, 1
  %1858 = sext i32 %1857 to i64
  %1859 = getelementptr inbounds double, ptr %1854, i64 %1858
  %1860 = load ptr, ptr %20, align 8, !tbaa !5
  %1861 = load i32, ptr %50, align 4, !tbaa !9
  %1862 = load i32, ptr %29, align 4, !tbaa !9
  %1863 = mul nsw i32 %1861, %1862
  %1864 = add nsw i32 %1863, 1
  %1865 = sext i32 %1864 to i64
  %1866 = getelementptr inbounds double, ptr %1860, i64 %1865
  %1867 = call double @ddot_(ptr noundef %1853, ptr noundef %1859, ptr noundef @c__1, ptr noundef %1866, ptr noundef @c__1)
  %1868 = load ptr, ptr %26, align 8, !tbaa !5
  %1869 = load i32, ptr %50, align 4, !tbaa !9
  %1870 = sext i32 %1869 to i64
  %1871 = getelementptr inbounds double, ptr %1868, i64 %1870
  %1872 = load double, ptr %1871, align 8, !tbaa !11
  %1873 = fmul double %1867, %1872
  %1874 = load double, ptr %40, align 8, !tbaa !11
  %1875 = fdiv double %1873, %1874
  store double %1875, ptr %41, align 8, !tbaa !11
  br label %1876

1876:                                             ; preds = %1826, %1793
  br label %1877

1877:                                             ; preds = %1876, %1780
  %1878 = load double, ptr %77, align 8, !tbaa !11
  store double %1878, ptr %38, align 8, !tbaa !11
  %1879 = load double, ptr %41, align 8, !tbaa !11
  %1880 = fcmp oge double %1879, 0.000000e+00
  br i1 %1880, label %1881, label %1883

1881:                                             ; preds = %1877
  %1882 = load double, ptr %41, align 8, !tbaa !11
  br label %1886

1883:                                             ; preds = %1877
  %1884 = load double, ptr %41, align 8, !tbaa !11
  %1885 = fneg double %1884
  br label %1886

1886:                                             ; preds = %1883, %1881
  %1887 = phi double [ %1882, %1881 ], [ %1885, %1883 ]
  store double %1887, ptr %39, align 8, !tbaa !11
  %1888 = load double, ptr %38, align 8, !tbaa !11
  %1889 = load double, ptr %39, align 8, !tbaa !11
  %1890 = fcmp oge double %1888, %1889
  br i1 %1890, label %1891, label %1893

1891:                                             ; preds = %1886
  %1892 = load double, ptr %38, align 8, !tbaa !11
  br label %1895

1893:                                             ; preds = %1886
  %1894 = load double, ptr %39, align 8, !tbaa !11
  br label %1895

1895:                                             ; preds = %1893, %1891
  %1896 = phi double [ %1892, %1891 ], [ %1894, %1893 ]
  store double %1896, ptr %77, align 8, !tbaa !11
  %1897 = load double, ptr %41, align 8, !tbaa !11
  %1898 = fcmp oge double %1897, 0.000000e+00
  br i1 %1898, label %1899, label %1901

1899:                                             ; preds = %1895
  %1900 = load double, ptr %41, align 8, !tbaa !11
  br label %1904

1901:                                             ; preds = %1895
  %1902 = load double, ptr %41, align 8, !tbaa !11
  %1903 = fneg double %1902
  br label %1904

1904:                                             ; preds = %1901, %1899
  %1905 = phi double [ %1900, %1899 ], [ %1903, %1901 ]
  %1906 = load double, ptr %94, align 8, !tbaa !11
  %1907 = fcmp ogt double %1905, %1906
  br i1 %1907, label %1908, label %2893

1908:                                             ; preds = %1904
  %1909 = load i32, ptr %80, align 4, !tbaa !9
  %1910 = icmp eq i32 %1909, 0
  br i1 %1910, label %1911, label %1914

1911:                                             ; preds = %1908
  store i32 0, ptr %82, align 4, !tbaa !9
  store i32 0, ptr %46, align 4, !tbaa !9
  %1912 = load i32, ptr %83, align 4, !tbaa !9
  %1913 = add nsw i32 %1912, 1
  store i32 %1913, ptr %83, align 4, !tbaa !9
  br label %1914

1914:                                             ; preds = %1911, %1908
  %1915 = load i32, ptr %67, align 4, !tbaa !9
  %1916 = icmp ne i32 %1915, 0
  br i1 %1916, label %1917, label %2674

1917:                                             ; preds = %1914
  %1918 = load double, ptr %42, align 8, !tbaa !11
  %1919 = load double, ptr %40, align 8, !tbaa !11
  %1920 = fdiv double %1918, %1919
  store double %1920, ptr %55, align 8, !tbaa !11
  %1921 = load double, ptr %40, align 8, !tbaa !11
  %1922 = load double, ptr %42, align 8, !tbaa !11
  %1923 = fdiv double %1921, %1922
  store double %1923, ptr %54, align 8, !tbaa !11
  %1924 = load double, ptr %55, align 8, !tbaa !11
  %1925 = load double, ptr %54, align 8, !tbaa !11
  %1926 = fsub double %1924, %1925
  store double %1926, ptr %38, align 8, !tbaa !11
  %1927 = load double, ptr %38, align 8, !tbaa !11
  %1928 = fcmp oge double %1927, 0.000000e+00
  br i1 %1928, label %1929, label %1931

1929:                                             ; preds = %1917
  %1930 = load double, ptr %38, align 8, !tbaa !11
  br label %1934

1931:                                             ; preds = %1917
  %1932 = load double, ptr %38, align 8, !tbaa !11
  %1933 = fneg double %1932
  br label %1934

1934:                                             ; preds = %1931, %1929
  %1935 = phi double [ %1930, %1929 ], [ %1933, %1931 ]
  %1936 = fmul double %1935, -5.000000e-01
  %1937 = load double, ptr %41, align 8, !tbaa !11
  %1938 = fdiv double %1936, %1937
  store double %1938, ptr %56, align 8, !tbaa !11
  %1939 = load double, ptr %56, align 8, !tbaa !11
  %1940 = fcmp oge double %1939, 0.000000e+00
  br i1 %1940, label %1941, label %1943

1941:                                             ; preds = %1934
  %1942 = load double, ptr %56, align 8, !tbaa !11
  br label %1946

1943:                                             ; preds = %1934
  %1944 = load double, ptr %56, align 8, !tbaa !11
  %1945 = fneg double %1944
  br label %1946

1946:                                             ; preds = %1943, %1941
  %1947 = phi double [ %1942, %1941 ], [ %1945, %1943 ]
  %1948 = load double, ptr %45, align 8, !tbaa !11
  %1949 = fcmp ogt double %1947, %1948
  br i1 %1949, label %1950, label %2075

1950:                                             ; preds = %1946
  %1951 = load double, ptr %56, align 8, !tbaa !11
  %1952 = fdiv double 5.000000e-01, %1951
  store double %1952, ptr %52, align 8, !tbaa !11
  %1953 = load double, ptr %52, align 8, !tbaa !11
  %1954 = load ptr, ptr %26, align 8, !tbaa !5
  %1955 = load i32, ptr %50, align 4, !tbaa !9
  %1956 = sext i32 %1955 to i64
  %1957 = getelementptr inbounds double, ptr %1954, i64 %1956
  %1958 = load double, ptr %1957, align 8, !tbaa !11
  %1959 = fmul double %1953, %1958
  %1960 = load ptr, ptr %26, align 8, !tbaa !5
  %1961 = load i32, ptr %51, align 4, !tbaa !9
  %1962 = sext i32 %1961 to i64
  %1963 = getelementptr inbounds double, ptr %1960, i64 %1962
  %1964 = load double, ptr %1963, align 8, !tbaa !11
  %1965 = fdiv double %1959, %1964
  %1966 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 2
  store double %1965, ptr %1966, align 16, !tbaa !11
  %1967 = load double, ptr %52, align 8, !tbaa !11
  %1968 = fneg double %1967
  %1969 = load ptr, ptr %26, align 8, !tbaa !5
  %1970 = load i32, ptr %51, align 4, !tbaa !9
  %1971 = sext i32 %1970 to i64
  %1972 = getelementptr inbounds double, ptr %1969, i64 %1971
  %1973 = load double, ptr %1972, align 8, !tbaa !11
  %1974 = fmul double %1968, %1973
  %1975 = load ptr, ptr %26, align 8, !tbaa !5
  %1976 = load i32, ptr %50, align 4, !tbaa !9
  %1977 = sext i32 %1976 to i64
  %1978 = getelementptr inbounds double, ptr %1975, i64 %1977
  %1979 = load double, ptr %1978, align 8, !tbaa !11
  %1980 = fdiv double %1974, %1979
  %1981 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 3
  store double %1980, ptr %1981, align 8, !tbaa !11
  %1982 = load ptr, ptr %18, align 8, !tbaa !5
  %1983 = load ptr, ptr %20, align 8, !tbaa !5
  %1984 = load i32, ptr %50, align 4, !tbaa !9
  %1985 = load i32, ptr %29, align 4, !tbaa !9
  %1986 = mul nsw i32 %1984, %1985
  %1987 = add nsw i32 %1986, 1
  %1988 = sext i32 %1987 to i64
  %1989 = getelementptr inbounds double, ptr %1983, i64 %1988
  %1990 = load ptr, ptr %20, align 8, !tbaa !5
  %1991 = load i32, ptr %51, align 4, !tbaa !9
  %1992 = load i32, ptr %29, align 4, !tbaa !9
  %1993 = mul nsw i32 %1991, %1992
  %1994 = add nsw i32 %1993, 1
  %1995 = sext i32 %1994 to i64
  %1996 = getelementptr inbounds double, ptr %1990, i64 %1995
  %1997 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 0
  call void @drotm_(ptr noundef %1982, ptr noundef %1989, ptr noundef @c__1, ptr noundef %1996, ptr noundef @c__1, ptr noundef %1997)
  %1998 = load i32, ptr %63, align 4, !tbaa !9
  %1999 = icmp ne i32 %1998, 0
  br i1 %1999, label %2000, label %2016

2000:                                             ; preds = %1950
  %2001 = load ptr, ptr %24, align 8, !tbaa !5
  %2002 = load i32, ptr %50, align 4, !tbaa !9
  %2003 = load i32, ptr %31, align 4, !tbaa !9
  %2004 = mul nsw i32 %2002, %2003
  %2005 = add nsw i32 %2004, 1
  %2006 = sext i32 %2005 to i64
  %2007 = getelementptr inbounds double, ptr %2001, i64 %2006
  %2008 = load ptr, ptr %24, align 8, !tbaa !5
  %2009 = load i32, ptr %51, align 4, !tbaa !9
  %2010 = load i32, ptr %31, align 4, !tbaa !9
  %2011 = mul nsw i32 %2009, %2010
  %2012 = add nsw i32 %2011, 1
  %2013 = sext i32 %2012 to i64
  %2014 = getelementptr inbounds double, ptr %2008, i64 %2013
  %2015 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 0
  call void @drotm_(ptr noundef %95, ptr noundef %2007, ptr noundef @c__1, ptr noundef %2014, ptr noundef @c__1, ptr noundef %2015)
  br label %2016

2016:                                             ; preds = %2000, %1950
  store double 0.000000e+00, ptr %38, align 8, !tbaa !11
  %2017 = load double, ptr %52, align 8, !tbaa !11
  %2018 = load double, ptr %54, align 8, !tbaa !11
  %2019 = fmul double %2017, %2018
  %2020 = load double, ptr %41, align 8, !tbaa !11
  %2021 = call double @llvm.fmuladd.f64(double %2019, double %2020, double 1.000000e+00)
  store double %2021, ptr %39, align 8, !tbaa !11
  %2022 = load double, ptr %42, align 8, !tbaa !11
  %2023 = load double, ptr %38, align 8, !tbaa !11
  %2024 = load double, ptr %39, align 8, !tbaa !11
  %2025 = fcmp oge double %2023, %2024
  br i1 %2025, label %2026, label %2028

2026:                                             ; preds = %2016
  %2027 = load double, ptr %38, align 8, !tbaa !11
  br label %2030

2028:                                             ; preds = %2016
  %2029 = load double, ptr %39, align 8, !tbaa !11
  br label %2030

2030:                                             ; preds = %2028, %2026
  %2031 = phi double [ %2027, %2026 ], [ %2029, %2028 ]
  %2032 = call double @sqrt(double noundef %2031) #5
  %2033 = fmul double %2022, %2032
  %2034 = load ptr, ptr %22, align 8, !tbaa !5
  %2035 = load i32, ptr %51, align 4, !tbaa !9
  %2036 = sext i32 %2035 to i64
  %2037 = getelementptr inbounds double, ptr %2034, i64 %2036
  store double %2033, ptr %2037, align 8, !tbaa !11
  store double 0.000000e+00, ptr %38, align 8, !tbaa !11
  %2038 = load double, ptr %52, align 8, !tbaa !11
  %2039 = load double, ptr %55, align 8, !tbaa !11
  %2040 = fmul double %2038, %2039
  %2041 = load double, ptr %41, align 8, !tbaa !11
  %2042 = fneg double %2040
  %2043 = call double @llvm.fmuladd.f64(double %2042, double %2041, double 1.000000e+00)
  store double %2043, ptr %39, align 8, !tbaa !11
  %2044 = load double, ptr %38, align 8, !tbaa !11
  %2045 = load double, ptr %39, align 8, !tbaa !11
  %2046 = fcmp oge double %2044, %2045
  br i1 %2046, label %2047, label %2049

2047:                                             ; preds = %2030
  %2048 = load double, ptr %38, align 8, !tbaa !11
  br label %2051

2049:                                             ; preds = %2030
  %2050 = load double, ptr %39, align 8, !tbaa !11
  br label %2051

2051:                                             ; preds = %2049, %2047
  %2052 = phi double [ %2048, %2047 ], [ %2050, %2049 ]
  %2053 = call double @sqrt(double noundef %2052) #5
  %2054 = load double, ptr %40, align 8, !tbaa !11
  %2055 = fmul double %2054, %2053
  store double %2055, ptr %40, align 8, !tbaa !11
  %2056 = load double, ptr %79, align 8, !tbaa !11
  store double %2056, ptr %38, align 8, !tbaa !11
  %2057 = load double, ptr %52, align 8, !tbaa !11
  %2058 = fcmp oge double %2057, 0.000000e+00
  br i1 %2058, label %2059, label %2061

2059:                                             ; preds = %2051
  %2060 = load double, ptr %52, align 8, !tbaa !11
  br label %2064

2061:                                             ; preds = %2051
  %2062 = load double, ptr %52, align 8, !tbaa !11
  %2063 = fneg double %2062
  br label %2064

2064:                                             ; preds = %2061, %2059
  %2065 = phi double [ %2060, %2059 ], [ %2063, %2061 ]
  store double %2065, ptr %39, align 8, !tbaa !11
  %2066 = load double, ptr %38, align 8, !tbaa !11
  %2067 = load double, ptr %39, align 8, !tbaa !11
  %2068 = fcmp oge double %2066, %2067
  br i1 %2068, label %2069, label %2071

2069:                                             ; preds = %2064
  %2070 = load double, ptr %38, align 8, !tbaa !11
  br label %2073

2071:                                             ; preds = %2064
  %2072 = load double, ptr %39, align 8, !tbaa !11
  br label %2073

2073:                                             ; preds = %2071, %2069
  %2074 = phi double [ %2070, %2069 ], [ %2072, %2071 ]
  store double %2074, ptr %79, align 8, !tbaa !11
  br label %2673

2075:                                             ; preds = %1946
  %2076 = load double, ptr %41, align 8, !tbaa !11
  %2077 = fcmp oge double %2076, 0.000000e+00
  br i1 %2077, label %2078, label %2088

2078:                                             ; preds = %2075
  %2079 = load double, ptr @c_b18, align 8, !tbaa !11
  %2080 = fcmp oge double %2079, 0.000000e+00
  br i1 %2080, label %2081, label %2083

2081:                                             ; preds = %2078
  %2082 = load double, ptr @c_b18, align 8, !tbaa !11
  br label %2086

2083:                                             ; preds = %2078
  %2084 = load double, ptr @c_b18, align 8, !tbaa !11
  %2085 = fneg double %2084
  br label %2086

2086:                                             ; preds = %2083, %2081
  %2087 = phi double [ %2082, %2081 ], [ %2085, %2083 ]
  br label %2099

2088:                                             ; preds = %2075
  %2089 = load double, ptr @c_b18, align 8, !tbaa !11
  %2090 = fcmp oge double %2089, 0.000000e+00
  br i1 %2090, label %2091, label %2093

2091:                                             ; preds = %2088
  %2092 = load double, ptr @c_b18, align 8, !tbaa !11
  br label %2096

2093:                                             ; preds = %2088
  %2094 = load double, ptr @c_b18, align 8, !tbaa !11
  %2095 = fneg double %2094
  br label %2096

2096:                                             ; preds = %2093, %2091
  %2097 = phi double [ %2092, %2091 ], [ %2095, %2093 ]
  %2098 = fneg double %2097
  br label %2099

2099:                                             ; preds = %2096, %2086
  %2100 = phi double [ %2087, %2086 ], [ %2098, %2096 ]
  %2101 = fneg double %2100
  store double %2101, ptr %78, align 8, !tbaa !11
  %2102 = load double, ptr %56, align 8, !tbaa !11
  %2103 = load double, ptr %78, align 8, !tbaa !11
  %2104 = load double, ptr %56, align 8, !tbaa !11
  %2105 = load double, ptr %56, align 8, !tbaa !11
  %2106 = call double @llvm.fmuladd.f64(double %2104, double %2105, double 1.000000e+00)
  %2107 = call double @sqrt(double noundef %2106) #5
  %2108 = call double @llvm.fmuladd.f64(double %2103, double %2107, double %2102)
  %2109 = fdiv double 1.000000e+00, %2108
  store double %2109, ptr %52, align 8, !tbaa !11
  %2110 = load double, ptr %52, align 8, !tbaa !11
  %2111 = load double, ptr %52, align 8, !tbaa !11
  %2112 = call double @llvm.fmuladd.f64(double %2110, double %2111, double 1.000000e+00)
  %2113 = fdiv double 1.000000e+00, %2112
  %2114 = call double @sqrt(double noundef %2113) #5
  store double %2114, ptr %72, align 8, !tbaa !11
  %2115 = load double, ptr %52, align 8, !tbaa !11
  %2116 = load double, ptr %72, align 8, !tbaa !11
  %2117 = fmul double %2115, %2116
  store double %2117, ptr %73, align 8, !tbaa !11
  %2118 = load double, ptr %79, align 8, !tbaa !11
  store double %2118, ptr %38, align 8, !tbaa !11
  %2119 = load double, ptr %73, align 8, !tbaa !11
  %2120 = fcmp oge double %2119, 0.000000e+00
  br i1 %2120, label %2121, label %2123

2121:                                             ; preds = %2099
  %2122 = load double, ptr %73, align 8, !tbaa !11
  br label %2126

2123:                                             ; preds = %2099
  %2124 = load double, ptr %73, align 8, !tbaa !11
  %2125 = fneg double %2124
  br label %2126

2126:                                             ; preds = %2123, %2121
  %2127 = phi double [ %2122, %2121 ], [ %2125, %2123 ]
  store double %2127, ptr %39, align 8, !tbaa !11
  %2128 = load double, ptr %38, align 8, !tbaa !11
  %2129 = load double, ptr %39, align 8, !tbaa !11
  %2130 = fcmp oge double %2128, %2129
  br i1 %2130, label %2131, label %2133

2131:                                             ; preds = %2126
  %2132 = load double, ptr %38, align 8, !tbaa !11
  br label %2135

2133:                                             ; preds = %2126
  %2134 = load double, ptr %39, align 8, !tbaa !11
  br label %2135

2135:                                             ; preds = %2133, %2131
  %2136 = phi double [ %2132, %2131 ], [ %2134, %2133 ]
  store double %2136, ptr %79, align 8, !tbaa !11
  store double 0.000000e+00, ptr %38, align 8, !tbaa !11
  %2137 = load double, ptr %52, align 8, !tbaa !11
  %2138 = load double, ptr %54, align 8, !tbaa !11
  %2139 = fmul double %2137, %2138
  %2140 = load double, ptr %41, align 8, !tbaa !11
  %2141 = call double @llvm.fmuladd.f64(double %2139, double %2140, double 1.000000e+00)
  store double %2141, ptr %39, align 8, !tbaa !11
  %2142 = load double, ptr %42, align 8, !tbaa !11
  %2143 = load double, ptr %38, align 8, !tbaa !11
  %2144 = load double, ptr %39, align 8, !tbaa !11
  %2145 = fcmp oge double %2143, %2144
  br i1 %2145, label %2146, label %2148

2146:                                             ; preds = %2135
  %2147 = load double, ptr %38, align 8, !tbaa !11
  br label %2150

2148:                                             ; preds = %2135
  %2149 = load double, ptr %39, align 8, !tbaa !11
  br label %2150

2150:                                             ; preds = %2148, %2146
  %2151 = phi double [ %2147, %2146 ], [ %2149, %2148 ]
  %2152 = call double @sqrt(double noundef %2151) #5
  %2153 = fmul double %2142, %2152
  %2154 = load ptr, ptr %22, align 8, !tbaa !5
  %2155 = load i32, ptr %51, align 4, !tbaa !9
  %2156 = sext i32 %2155 to i64
  %2157 = getelementptr inbounds double, ptr %2154, i64 %2156
  store double %2153, ptr %2157, align 8, !tbaa !11
  store double 0.000000e+00, ptr %38, align 8, !tbaa !11
  %2158 = load double, ptr %52, align 8, !tbaa !11
  %2159 = load double, ptr %55, align 8, !tbaa !11
  %2160 = fmul double %2158, %2159
  %2161 = load double, ptr %41, align 8, !tbaa !11
  %2162 = fneg double %2160
  %2163 = call double @llvm.fmuladd.f64(double %2162, double %2161, double 1.000000e+00)
  store double %2163, ptr %39, align 8, !tbaa !11
  %2164 = load double, ptr %38, align 8, !tbaa !11
  %2165 = load double, ptr %39, align 8, !tbaa !11
  %2166 = fcmp oge double %2164, %2165
  br i1 %2166, label %2167, label %2169

2167:                                             ; preds = %2150
  %2168 = load double, ptr %38, align 8, !tbaa !11
  br label %2171

2169:                                             ; preds = %2150
  %2170 = load double, ptr %39, align 8, !tbaa !11
  br label %2171

2171:                                             ; preds = %2169, %2167
  %2172 = phi double [ %2168, %2167 ], [ %2170, %2169 ]
  %2173 = call double @sqrt(double noundef %2172) #5
  %2174 = load double, ptr %40, align 8, !tbaa !11
  %2175 = fmul double %2174, %2173
  store double %2175, ptr %40, align 8, !tbaa !11
  %2176 = load ptr, ptr %26, align 8, !tbaa !5
  %2177 = load i32, ptr %50, align 4, !tbaa !9
  %2178 = sext i32 %2177 to i64
  %2179 = getelementptr inbounds double, ptr %2176, i64 %2178
  %2180 = load double, ptr %2179, align 8, !tbaa !11
  %2181 = load ptr, ptr %26, align 8, !tbaa !5
  %2182 = load i32, ptr %51, align 4, !tbaa !9
  %2183 = sext i32 %2182 to i64
  %2184 = getelementptr inbounds double, ptr %2181, i64 %2183
  %2185 = load double, ptr %2184, align 8, !tbaa !11
  %2186 = fdiv double %2180, %2185
  store double %2186, ptr %54, align 8, !tbaa !11
  %2187 = load ptr, ptr %26, align 8, !tbaa !5
  %2188 = load i32, ptr %51, align 4, !tbaa !9
  %2189 = sext i32 %2188 to i64
  %2190 = getelementptr inbounds double, ptr %2187, i64 %2189
  %2191 = load double, ptr %2190, align 8, !tbaa !11
  %2192 = load ptr, ptr %26, align 8, !tbaa !5
  %2193 = load i32, ptr %50, align 4, !tbaa !9
  %2194 = sext i32 %2193 to i64
  %2195 = getelementptr inbounds double, ptr %2192, i64 %2194
  %2196 = load double, ptr %2195, align 8, !tbaa !11
  %2197 = fdiv double %2191, %2196
  store double %2197, ptr %55, align 8, !tbaa !11
  %2198 = load ptr, ptr %26, align 8, !tbaa !5
  %2199 = load i32, ptr %50, align 4, !tbaa !9
  %2200 = sext i32 %2199 to i64
  %2201 = getelementptr inbounds double, ptr %2198, i64 %2200
  %2202 = load double, ptr %2201, align 8, !tbaa !11
  %2203 = fcmp oge double %2202, 1.000000e+00
  br i1 %2203, label %2204, label %2366

2204:                                             ; preds = %2171
  %2205 = load ptr, ptr %26, align 8, !tbaa !5
  %2206 = load i32, ptr %51, align 4, !tbaa !9
  %2207 = sext i32 %2206 to i64
  %2208 = getelementptr inbounds double, ptr %2205, i64 %2207
  %2209 = load double, ptr %2208, align 8, !tbaa !11
  %2210 = fcmp oge double %2209, 1.000000e+00
  br i1 %2210, label %2211, label %2270

2211:                                             ; preds = %2204
  %2212 = load double, ptr %52, align 8, !tbaa !11
  %2213 = load double, ptr %54, align 8, !tbaa !11
  %2214 = fmul double %2212, %2213
  %2215 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 2
  store double %2214, ptr %2215, align 16, !tbaa !11
  %2216 = load double, ptr %52, align 8, !tbaa !11
  %2217 = fneg double %2216
  %2218 = load double, ptr %55, align 8, !tbaa !11
  %2219 = fmul double %2217, %2218
  %2220 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 3
  store double %2219, ptr %2220, align 8, !tbaa !11
  %2221 = load double, ptr %72, align 8, !tbaa !11
  %2222 = load ptr, ptr %26, align 8, !tbaa !5
  %2223 = load i32, ptr %50, align 4, !tbaa !9
  %2224 = sext i32 %2223 to i64
  %2225 = getelementptr inbounds double, ptr %2222, i64 %2224
  %2226 = load double, ptr %2225, align 8, !tbaa !11
  %2227 = fmul double %2226, %2221
  store double %2227, ptr %2225, align 8, !tbaa !11
  %2228 = load double, ptr %72, align 8, !tbaa !11
  %2229 = load ptr, ptr %26, align 8, !tbaa !5
  %2230 = load i32, ptr %51, align 4, !tbaa !9
  %2231 = sext i32 %2230 to i64
  %2232 = getelementptr inbounds double, ptr %2229, i64 %2231
  %2233 = load double, ptr %2232, align 8, !tbaa !11
  %2234 = fmul double %2233, %2228
  store double %2234, ptr %2232, align 8, !tbaa !11
  %2235 = load ptr, ptr %18, align 8, !tbaa !5
  %2236 = load ptr, ptr %20, align 8, !tbaa !5
  %2237 = load i32, ptr %50, align 4, !tbaa !9
  %2238 = load i32, ptr %29, align 4, !tbaa !9
  %2239 = mul nsw i32 %2237, %2238
  %2240 = add nsw i32 %2239, 1
  %2241 = sext i32 %2240 to i64
  %2242 = getelementptr inbounds double, ptr %2236, i64 %2241
  %2243 = load ptr, ptr %20, align 8, !tbaa !5
  %2244 = load i32, ptr %51, align 4, !tbaa !9
  %2245 = load i32, ptr %29, align 4, !tbaa !9
  %2246 = mul nsw i32 %2244, %2245
  %2247 = add nsw i32 %2246, 1
  %2248 = sext i32 %2247 to i64
  %2249 = getelementptr inbounds double, ptr %2243, i64 %2248
  %2250 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 0
  call void @drotm_(ptr noundef %2235, ptr noundef %2242, ptr noundef @c__1, ptr noundef %2249, ptr noundef @c__1, ptr noundef %2250)
  %2251 = load i32, ptr %63, align 4, !tbaa !9
  %2252 = icmp ne i32 %2251, 0
  br i1 %2252, label %2253, label %2269

2253:                                             ; preds = %2211
  %2254 = load ptr, ptr %24, align 8, !tbaa !5
  %2255 = load i32, ptr %50, align 4, !tbaa !9
  %2256 = load i32, ptr %31, align 4, !tbaa !9
  %2257 = mul nsw i32 %2255, %2256
  %2258 = add nsw i32 %2257, 1
  %2259 = sext i32 %2258 to i64
  %2260 = getelementptr inbounds double, ptr %2254, i64 %2259
  %2261 = load ptr, ptr %24, align 8, !tbaa !5
  %2262 = load i32, ptr %51, align 4, !tbaa !9
  %2263 = load i32, ptr %31, align 4, !tbaa !9
  %2264 = mul nsw i32 %2262, %2263
  %2265 = add nsw i32 %2264, 1
  %2266 = sext i32 %2265 to i64
  %2267 = getelementptr inbounds double, ptr %2261, i64 %2266
  %2268 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 0
  call void @drotm_(ptr noundef %95, ptr noundef %2260, ptr noundef @c__1, ptr noundef %2267, ptr noundef @c__1, ptr noundef %2268)
  br label %2269

2269:                                             ; preds = %2253, %2211
  br label %2365

2270:                                             ; preds = %2204
  %2271 = load double, ptr %52, align 8, !tbaa !11
  %2272 = fneg double %2271
  %2273 = load double, ptr %55, align 8, !tbaa !11
  %2274 = fmul double %2272, %2273
  store double %2274, ptr %38, align 8, !tbaa !11
  %2275 = load ptr, ptr %18, align 8, !tbaa !5
  %2276 = load ptr, ptr %20, align 8, !tbaa !5
  %2277 = load i32, ptr %51, align 4, !tbaa !9
  %2278 = load i32, ptr %29, align 4, !tbaa !9
  %2279 = mul nsw i32 %2277, %2278
  %2280 = add nsw i32 %2279, 1
  %2281 = sext i32 %2280 to i64
  %2282 = getelementptr inbounds double, ptr %2276, i64 %2281
  %2283 = load ptr, ptr %20, align 8, !tbaa !5
  %2284 = load i32, ptr %50, align 4, !tbaa !9
  %2285 = load i32, ptr %29, align 4, !tbaa !9
  %2286 = mul nsw i32 %2284, %2285
  %2287 = add nsw i32 %2286, 1
  %2288 = sext i32 %2287 to i64
  %2289 = getelementptr inbounds double, ptr %2283, i64 %2288
  call void @daxpy_(ptr noundef %2275, ptr noundef %38, ptr noundef %2282, ptr noundef @c__1, ptr noundef %2289, ptr noundef @c__1)
  %2290 = load double, ptr %72, align 8, !tbaa !11
  %2291 = load double, ptr %73, align 8, !tbaa !11
  %2292 = fmul double %2290, %2291
  %2293 = load double, ptr %54, align 8, !tbaa !11
  %2294 = fmul double %2292, %2293
  store double %2294, ptr %38, align 8, !tbaa !11
  %2295 = load ptr, ptr %18, align 8, !tbaa !5
  %2296 = load ptr, ptr %20, align 8, !tbaa !5
  %2297 = load i32, ptr %50, align 4, !tbaa !9
  %2298 = load i32, ptr %29, align 4, !tbaa !9
  %2299 = mul nsw i32 %2297, %2298
  %2300 = add nsw i32 %2299, 1
  %2301 = sext i32 %2300 to i64
  %2302 = getelementptr inbounds double, ptr %2296, i64 %2301
  %2303 = load ptr, ptr %20, align 8, !tbaa !5
  %2304 = load i32, ptr %51, align 4, !tbaa !9
  %2305 = load i32, ptr %29, align 4, !tbaa !9
  %2306 = mul nsw i32 %2304, %2305
  %2307 = add nsw i32 %2306, 1
  %2308 = sext i32 %2307 to i64
  %2309 = getelementptr inbounds double, ptr %2303, i64 %2308
  call void @daxpy_(ptr noundef %2295, ptr noundef %38, ptr noundef %2302, ptr noundef @c__1, ptr noundef %2309, ptr noundef @c__1)
  %2310 = load double, ptr %72, align 8, !tbaa !11
  %2311 = load ptr, ptr %26, align 8, !tbaa !5
  %2312 = load i32, ptr %50, align 4, !tbaa !9
  %2313 = sext i32 %2312 to i64
  %2314 = getelementptr inbounds double, ptr %2311, i64 %2313
  %2315 = load double, ptr %2314, align 8, !tbaa !11
  %2316 = fmul double %2315, %2310
  store double %2316, ptr %2314, align 8, !tbaa !11
  %2317 = load double, ptr %72, align 8, !tbaa !11
  %2318 = load ptr, ptr %26, align 8, !tbaa !5
  %2319 = load i32, ptr %51, align 4, !tbaa !9
  %2320 = sext i32 %2319 to i64
  %2321 = getelementptr inbounds double, ptr %2318, i64 %2320
  %2322 = load double, ptr %2321, align 8, !tbaa !11
  %2323 = fdiv double %2322, %2317
  store double %2323, ptr %2321, align 8, !tbaa !11
  %2324 = load i32, ptr %63, align 4, !tbaa !9
  %2325 = icmp ne i32 %2324, 0
  br i1 %2325, label %2326, label %2364

2326:                                             ; preds = %2270
  %2327 = load double, ptr %52, align 8, !tbaa !11
  %2328 = fneg double %2327
  %2329 = load double, ptr %55, align 8, !tbaa !11
  %2330 = fmul double %2328, %2329
  store double %2330, ptr %38, align 8, !tbaa !11
  %2331 = load ptr, ptr %24, align 8, !tbaa !5
  %2332 = load i32, ptr %51, align 4, !tbaa !9
  %2333 = load i32, ptr %31, align 4, !tbaa !9
  %2334 = mul nsw i32 %2332, %2333
  %2335 = add nsw i32 %2334, 1
  %2336 = sext i32 %2335 to i64
  %2337 = getelementptr inbounds double, ptr %2331, i64 %2336
  %2338 = load ptr, ptr %24, align 8, !tbaa !5
  %2339 = load i32, ptr %50, align 4, !tbaa !9
  %2340 = load i32, ptr %31, align 4, !tbaa !9
  %2341 = mul nsw i32 %2339, %2340
  %2342 = add nsw i32 %2341, 1
  %2343 = sext i32 %2342 to i64
  %2344 = getelementptr inbounds double, ptr %2338, i64 %2343
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %2337, ptr noundef @c__1, ptr noundef %2344, ptr noundef @c__1)
  %2345 = load double, ptr %72, align 8, !tbaa !11
  %2346 = load double, ptr %73, align 8, !tbaa !11
  %2347 = fmul double %2345, %2346
  %2348 = load double, ptr %54, align 8, !tbaa !11
  %2349 = fmul double %2347, %2348
  store double %2349, ptr %38, align 8, !tbaa !11
  %2350 = load ptr, ptr %24, align 8, !tbaa !5
  %2351 = load i32, ptr %50, align 4, !tbaa !9
  %2352 = load i32, ptr %31, align 4, !tbaa !9
  %2353 = mul nsw i32 %2351, %2352
  %2354 = add nsw i32 %2353, 1
  %2355 = sext i32 %2354 to i64
  %2356 = getelementptr inbounds double, ptr %2350, i64 %2355
  %2357 = load ptr, ptr %24, align 8, !tbaa !5
  %2358 = load i32, ptr %51, align 4, !tbaa !9
  %2359 = load i32, ptr %31, align 4, !tbaa !9
  %2360 = mul nsw i32 %2358, %2359
  %2361 = add nsw i32 %2360, 1
  %2362 = sext i32 %2361 to i64
  %2363 = getelementptr inbounds double, ptr %2357, i64 %2362
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %2356, ptr noundef @c__1, ptr noundef %2363, ptr noundef @c__1)
  br label %2364

2364:                                             ; preds = %2326, %2270
  br label %2365

2365:                                             ; preds = %2364, %2269
  br label %2672

2366:                                             ; preds = %2171
  %2367 = load ptr, ptr %26, align 8, !tbaa !5
  %2368 = load i32, ptr %51, align 4, !tbaa !9
  %2369 = sext i32 %2368 to i64
  %2370 = getelementptr inbounds double, ptr %2367, i64 %2369
  %2371 = load double, ptr %2370, align 8, !tbaa !11
  %2372 = fcmp oge double %2371, 1.000000e+00
  br i1 %2372, label %2373, label %2468

2373:                                             ; preds = %2366
  %2374 = load double, ptr %52, align 8, !tbaa !11
  %2375 = load double, ptr %54, align 8, !tbaa !11
  %2376 = fmul double %2374, %2375
  store double %2376, ptr %38, align 8, !tbaa !11
  %2377 = load ptr, ptr %18, align 8, !tbaa !5
  %2378 = load ptr, ptr %20, align 8, !tbaa !5
  %2379 = load i32, ptr %50, align 4, !tbaa !9
  %2380 = load i32, ptr %29, align 4, !tbaa !9
  %2381 = mul nsw i32 %2379, %2380
  %2382 = add nsw i32 %2381, 1
  %2383 = sext i32 %2382 to i64
  %2384 = getelementptr inbounds double, ptr %2378, i64 %2383
  %2385 = load ptr, ptr %20, align 8, !tbaa !5
  %2386 = load i32, ptr %51, align 4, !tbaa !9
  %2387 = load i32, ptr %29, align 4, !tbaa !9
  %2388 = mul nsw i32 %2386, %2387
  %2389 = add nsw i32 %2388, 1
  %2390 = sext i32 %2389 to i64
  %2391 = getelementptr inbounds double, ptr %2385, i64 %2390
  call void @daxpy_(ptr noundef %2377, ptr noundef %38, ptr noundef %2384, ptr noundef @c__1, ptr noundef %2391, ptr noundef @c__1)
  %2392 = load double, ptr %72, align 8, !tbaa !11
  %2393 = fneg double %2392
  %2394 = load double, ptr %73, align 8, !tbaa !11
  %2395 = fmul double %2393, %2394
  %2396 = load double, ptr %55, align 8, !tbaa !11
  %2397 = fmul double %2395, %2396
  store double %2397, ptr %38, align 8, !tbaa !11
  %2398 = load ptr, ptr %18, align 8, !tbaa !5
  %2399 = load ptr, ptr %20, align 8, !tbaa !5
  %2400 = load i32, ptr %51, align 4, !tbaa !9
  %2401 = load i32, ptr %29, align 4, !tbaa !9
  %2402 = mul nsw i32 %2400, %2401
  %2403 = add nsw i32 %2402, 1
  %2404 = sext i32 %2403 to i64
  %2405 = getelementptr inbounds double, ptr %2399, i64 %2404
  %2406 = load ptr, ptr %20, align 8, !tbaa !5
  %2407 = load i32, ptr %50, align 4, !tbaa !9
  %2408 = load i32, ptr %29, align 4, !tbaa !9
  %2409 = mul nsw i32 %2407, %2408
  %2410 = add nsw i32 %2409, 1
  %2411 = sext i32 %2410 to i64
  %2412 = getelementptr inbounds double, ptr %2406, i64 %2411
  call void @daxpy_(ptr noundef %2398, ptr noundef %38, ptr noundef %2405, ptr noundef @c__1, ptr noundef %2412, ptr noundef @c__1)
  %2413 = load double, ptr %72, align 8, !tbaa !11
  %2414 = load ptr, ptr %26, align 8, !tbaa !5
  %2415 = load i32, ptr %50, align 4, !tbaa !9
  %2416 = sext i32 %2415 to i64
  %2417 = getelementptr inbounds double, ptr %2414, i64 %2416
  %2418 = load double, ptr %2417, align 8, !tbaa !11
  %2419 = fdiv double %2418, %2413
  store double %2419, ptr %2417, align 8, !tbaa !11
  %2420 = load double, ptr %72, align 8, !tbaa !11
  %2421 = load ptr, ptr %26, align 8, !tbaa !5
  %2422 = load i32, ptr %51, align 4, !tbaa !9
  %2423 = sext i32 %2422 to i64
  %2424 = getelementptr inbounds double, ptr %2421, i64 %2423
  %2425 = load double, ptr %2424, align 8, !tbaa !11
  %2426 = fmul double %2425, %2420
  store double %2426, ptr %2424, align 8, !tbaa !11
  %2427 = load i32, ptr %63, align 4, !tbaa !9
  %2428 = icmp ne i32 %2427, 0
  br i1 %2428, label %2429, label %2467

2429:                                             ; preds = %2373
  %2430 = load double, ptr %52, align 8, !tbaa !11
  %2431 = load double, ptr %54, align 8, !tbaa !11
  %2432 = fmul double %2430, %2431
  store double %2432, ptr %38, align 8, !tbaa !11
  %2433 = load ptr, ptr %24, align 8, !tbaa !5
  %2434 = load i32, ptr %50, align 4, !tbaa !9
  %2435 = load i32, ptr %31, align 4, !tbaa !9
  %2436 = mul nsw i32 %2434, %2435
  %2437 = add nsw i32 %2436, 1
  %2438 = sext i32 %2437 to i64
  %2439 = getelementptr inbounds double, ptr %2433, i64 %2438
  %2440 = load ptr, ptr %24, align 8, !tbaa !5
  %2441 = load i32, ptr %51, align 4, !tbaa !9
  %2442 = load i32, ptr %31, align 4, !tbaa !9
  %2443 = mul nsw i32 %2441, %2442
  %2444 = add nsw i32 %2443, 1
  %2445 = sext i32 %2444 to i64
  %2446 = getelementptr inbounds double, ptr %2440, i64 %2445
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %2439, ptr noundef @c__1, ptr noundef %2446, ptr noundef @c__1)
  %2447 = load double, ptr %72, align 8, !tbaa !11
  %2448 = fneg double %2447
  %2449 = load double, ptr %73, align 8, !tbaa !11
  %2450 = fmul double %2448, %2449
  %2451 = load double, ptr %55, align 8, !tbaa !11
  %2452 = fmul double %2450, %2451
  store double %2452, ptr %38, align 8, !tbaa !11
  %2453 = load ptr, ptr %24, align 8, !tbaa !5
  %2454 = load i32, ptr %51, align 4, !tbaa !9
  %2455 = load i32, ptr %31, align 4, !tbaa !9
  %2456 = mul nsw i32 %2454, %2455
  %2457 = add nsw i32 %2456, 1
  %2458 = sext i32 %2457 to i64
  %2459 = getelementptr inbounds double, ptr %2453, i64 %2458
  %2460 = load ptr, ptr %24, align 8, !tbaa !5
  %2461 = load i32, ptr %50, align 4, !tbaa !9
  %2462 = load i32, ptr %31, align 4, !tbaa !9
  %2463 = mul nsw i32 %2461, %2462
  %2464 = add nsw i32 %2463, 1
  %2465 = sext i32 %2464 to i64
  %2466 = getelementptr inbounds double, ptr %2460, i64 %2465
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %2459, ptr noundef @c__1, ptr noundef %2466, ptr noundef @c__1)
  br label %2467

2467:                                             ; preds = %2429, %2373
  br label %2671

2468:                                             ; preds = %2366
  %2469 = load ptr, ptr %26, align 8, !tbaa !5
  %2470 = load i32, ptr %50, align 4, !tbaa !9
  %2471 = sext i32 %2470 to i64
  %2472 = getelementptr inbounds double, ptr %2469, i64 %2471
  %2473 = load double, ptr %2472, align 8, !tbaa !11
  %2474 = load ptr, ptr %26, align 8, !tbaa !5
  %2475 = load i32, ptr %51, align 4, !tbaa !9
  %2476 = sext i32 %2475 to i64
  %2477 = getelementptr inbounds double, ptr %2474, i64 %2476
  %2478 = load double, ptr %2477, align 8, !tbaa !11
  %2479 = fcmp oge double %2473, %2478
  br i1 %2479, label %2480, label %2575

2480:                                             ; preds = %2468
  %2481 = load double, ptr %52, align 8, !tbaa !11
  %2482 = fneg double %2481
  %2483 = load double, ptr %55, align 8, !tbaa !11
  %2484 = fmul double %2482, %2483
  store double %2484, ptr %38, align 8, !tbaa !11
  %2485 = load ptr, ptr %18, align 8, !tbaa !5
  %2486 = load ptr, ptr %20, align 8, !tbaa !5
  %2487 = load i32, ptr %51, align 4, !tbaa !9
  %2488 = load i32, ptr %29, align 4, !tbaa !9
  %2489 = mul nsw i32 %2487, %2488
  %2490 = add nsw i32 %2489, 1
  %2491 = sext i32 %2490 to i64
  %2492 = getelementptr inbounds double, ptr %2486, i64 %2491
  %2493 = load ptr, ptr %20, align 8, !tbaa !5
  %2494 = load i32, ptr %50, align 4, !tbaa !9
  %2495 = load i32, ptr %29, align 4, !tbaa !9
  %2496 = mul nsw i32 %2494, %2495
  %2497 = add nsw i32 %2496, 1
  %2498 = sext i32 %2497 to i64
  %2499 = getelementptr inbounds double, ptr %2493, i64 %2498
  call void @daxpy_(ptr noundef %2485, ptr noundef %38, ptr noundef %2492, ptr noundef @c__1, ptr noundef %2499, ptr noundef @c__1)
  %2500 = load double, ptr %72, align 8, !tbaa !11
  %2501 = load double, ptr %73, align 8, !tbaa !11
  %2502 = fmul double %2500, %2501
  %2503 = load double, ptr %54, align 8, !tbaa !11
  %2504 = fmul double %2502, %2503
  store double %2504, ptr %38, align 8, !tbaa !11
  %2505 = load ptr, ptr %18, align 8, !tbaa !5
  %2506 = load ptr, ptr %20, align 8, !tbaa !5
  %2507 = load i32, ptr %50, align 4, !tbaa !9
  %2508 = load i32, ptr %29, align 4, !tbaa !9
  %2509 = mul nsw i32 %2507, %2508
  %2510 = add nsw i32 %2509, 1
  %2511 = sext i32 %2510 to i64
  %2512 = getelementptr inbounds double, ptr %2506, i64 %2511
  %2513 = load ptr, ptr %20, align 8, !tbaa !5
  %2514 = load i32, ptr %51, align 4, !tbaa !9
  %2515 = load i32, ptr %29, align 4, !tbaa !9
  %2516 = mul nsw i32 %2514, %2515
  %2517 = add nsw i32 %2516, 1
  %2518 = sext i32 %2517 to i64
  %2519 = getelementptr inbounds double, ptr %2513, i64 %2518
  call void @daxpy_(ptr noundef %2505, ptr noundef %38, ptr noundef %2512, ptr noundef @c__1, ptr noundef %2519, ptr noundef @c__1)
  %2520 = load double, ptr %72, align 8, !tbaa !11
  %2521 = load ptr, ptr %26, align 8, !tbaa !5
  %2522 = load i32, ptr %50, align 4, !tbaa !9
  %2523 = sext i32 %2522 to i64
  %2524 = getelementptr inbounds double, ptr %2521, i64 %2523
  %2525 = load double, ptr %2524, align 8, !tbaa !11
  %2526 = fmul double %2525, %2520
  store double %2526, ptr %2524, align 8, !tbaa !11
  %2527 = load double, ptr %72, align 8, !tbaa !11
  %2528 = load ptr, ptr %26, align 8, !tbaa !5
  %2529 = load i32, ptr %51, align 4, !tbaa !9
  %2530 = sext i32 %2529 to i64
  %2531 = getelementptr inbounds double, ptr %2528, i64 %2530
  %2532 = load double, ptr %2531, align 8, !tbaa !11
  %2533 = fdiv double %2532, %2527
  store double %2533, ptr %2531, align 8, !tbaa !11
  %2534 = load i32, ptr %63, align 4, !tbaa !9
  %2535 = icmp ne i32 %2534, 0
  br i1 %2535, label %2536, label %2574

2536:                                             ; preds = %2480
  %2537 = load double, ptr %52, align 8, !tbaa !11
  %2538 = fneg double %2537
  %2539 = load double, ptr %55, align 8, !tbaa !11
  %2540 = fmul double %2538, %2539
  store double %2540, ptr %38, align 8, !tbaa !11
  %2541 = load ptr, ptr %24, align 8, !tbaa !5
  %2542 = load i32, ptr %51, align 4, !tbaa !9
  %2543 = load i32, ptr %31, align 4, !tbaa !9
  %2544 = mul nsw i32 %2542, %2543
  %2545 = add nsw i32 %2544, 1
  %2546 = sext i32 %2545 to i64
  %2547 = getelementptr inbounds double, ptr %2541, i64 %2546
  %2548 = load ptr, ptr %24, align 8, !tbaa !5
  %2549 = load i32, ptr %50, align 4, !tbaa !9
  %2550 = load i32, ptr %31, align 4, !tbaa !9
  %2551 = mul nsw i32 %2549, %2550
  %2552 = add nsw i32 %2551, 1
  %2553 = sext i32 %2552 to i64
  %2554 = getelementptr inbounds double, ptr %2548, i64 %2553
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %2547, ptr noundef @c__1, ptr noundef %2554, ptr noundef @c__1)
  %2555 = load double, ptr %72, align 8, !tbaa !11
  %2556 = load double, ptr %73, align 8, !tbaa !11
  %2557 = fmul double %2555, %2556
  %2558 = load double, ptr %54, align 8, !tbaa !11
  %2559 = fmul double %2557, %2558
  store double %2559, ptr %38, align 8, !tbaa !11
  %2560 = load ptr, ptr %24, align 8, !tbaa !5
  %2561 = load i32, ptr %50, align 4, !tbaa !9
  %2562 = load i32, ptr %31, align 4, !tbaa !9
  %2563 = mul nsw i32 %2561, %2562
  %2564 = add nsw i32 %2563, 1
  %2565 = sext i32 %2564 to i64
  %2566 = getelementptr inbounds double, ptr %2560, i64 %2565
  %2567 = load ptr, ptr %24, align 8, !tbaa !5
  %2568 = load i32, ptr %51, align 4, !tbaa !9
  %2569 = load i32, ptr %31, align 4, !tbaa !9
  %2570 = mul nsw i32 %2568, %2569
  %2571 = add nsw i32 %2570, 1
  %2572 = sext i32 %2571 to i64
  %2573 = getelementptr inbounds double, ptr %2567, i64 %2572
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %2566, ptr noundef @c__1, ptr noundef %2573, ptr noundef @c__1)
  br label %2574

2574:                                             ; preds = %2536, %2480
  br label %2670

2575:                                             ; preds = %2468
  %2576 = load double, ptr %52, align 8, !tbaa !11
  %2577 = load double, ptr %54, align 8, !tbaa !11
  %2578 = fmul double %2576, %2577
  store double %2578, ptr %38, align 8, !tbaa !11
  %2579 = load ptr, ptr %18, align 8, !tbaa !5
  %2580 = load ptr, ptr %20, align 8, !tbaa !5
  %2581 = load i32, ptr %50, align 4, !tbaa !9
  %2582 = load i32, ptr %29, align 4, !tbaa !9
  %2583 = mul nsw i32 %2581, %2582
  %2584 = add nsw i32 %2583, 1
  %2585 = sext i32 %2584 to i64
  %2586 = getelementptr inbounds double, ptr %2580, i64 %2585
  %2587 = load ptr, ptr %20, align 8, !tbaa !5
  %2588 = load i32, ptr %51, align 4, !tbaa !9
  %2589 = load i32, ptr %29, align 4, !tbaa !9
  %2590 = mul nsw i32 %2588, %2589
  %2591 = add nsw i32 %2590, 1
  %2592 = sext i32 %2591 to i64
  %2593 = getelementptr inbounds double, ptr %2587, i64 %2592
  call void @daxpy_(ptr noundef %2579, ptr noundef %38, ptr noundef %2586, ptr noundef @c__1, ptr noundef %2593, ptr noundef @c__1)
  %2594 = load double, ptr %72, align 8, !tbaa !11
  %2595 = fneg double %2594
  %2596 = load double, ptr %73, align 8, !tbaa !11
  %2597 = fmul double %2595, %2596
  %2598 = load double, ptr %55, align 8, !tbaa !11
  %2599 = fmul double %2597, %2598
  store double %2599, ptr %38, align 8, !tbaa !11
  %2600 = load ptr, ptr %18, align 8, !tbaa !5
  %2601 = load ptr, ptr %20, align 8, !tbaa !5
  %2602 = load i32, ptr %51, align 4, !tbaa !9
  %2603 = load i32, ptr %29, align 4, !tbaa !9
  %2604 = mul nsw i32 %2602, %2603
  %2605 = add nsw i32 %2604, 1
  %2606 = sext i32 %2605 to i64
  %2607 = getelementptr inbounds double, ptr %2601, i64 %2606
  %2608 = load ptr, ptr %20, align 8, !tbaa !5
  %2609 = load i32, ptr %50, align 4, !tbaa !9
  %2610 = load i32, ptr %29, align 4, !tbaa !9
  %2611 = mul nsw i32 %2609, %2610
  %2612 = add nsw i32 %2611, 1
  %2613 = sext i32 %2612 to i64
  %2614 = getelementptr inbounds double, ptr %2608, i64 %2613
  call void @daxpy_(ptr noundef %2600, ptr noundef %38, ptr noundef %2607, ptr noundef @c__1, ptr noundef %2614, ptr noundef @c__1)
  %2615 = load double, ptr %72, align 8, !tbaa !11
  %2616 = load ptr, ptr %26, align 8, !tbaa !5
  %2617 = load i32, ptr %50, align 4, !tbaa !9
  %2618 = sext i32 %2617 to i64
  %2619 = getelementptr inbounds double, ptr %2616, i64 %2618
  %2620 = load double, ptr %2619, align 8, !tbaa !11
  %2621 = fdiv double %2620, %2615
  store double %2621, ptr %2619, align 8, !tbaa !11
  %2622 = load double, ptr %72, align 8, !tbaa !11
  %2623 = load ptr, ptr %26, align 8, !tbaa !5
  %2624 = load i32, ptr %51, align 4, !tbaa !9
  %2625 = sext i32 %2624 to i64
  %2626 = getelementptr inbounds double, ptr %2623, i64 %2625
  %2627 = load double, ptr %2626, align 8, !tbaa !11
  %2628 = fmul double %2627, %2622
  store double %2628, ptr %2626, align 8, !tbaa !11
  %2629 = load i32, ptr %63, align 4, !tbaa !9
  %2630 = icmp ne i32 %2629, 0
  br i1 %2630, label %2631, label %2669

2631:                                             ; preds = %2575
  %2632 = load double, ptr %52, align 8, !tbaa !11
  %2633 = load double, ptr %54, align 8, !tbaa !11
  %2634 = fmul double %2632, %2633
  store double %2634, ptr %38, align 8, !tbaa !11
  %2635 = load ptr, ptr %24, align 8, !tbaa !5
  %2636 = load i32, ptr %50, align 4, !tbaa !9
  %2637 = load i32, ptr %31, align 4, !tbaa !9
  %2638 = mul nsw i32 %2636, %2637
  %2639 = add nsw i32 %2638, 1
  %2640 = sext i32 %2639 to i64
  %2641 = getelementptr inbounds double, ptr %2635, i64 %2640
  %2642 = load ptr, ptr %24, align 8, !tbaa !5
  %2643 = load i32, ptr %51, align 4, !tbaa !9
  %2644 = load i32, ptr %31, align 4, !tbaa !9
  %2645 = mul nsw i32 %2643, %2644
  %2646 = add nsw i32 %2645, 1
  %2647 = sext i32 %2646 to i64
  %2648 = getelementptr inbounds double, ptr %2642, i64 %2647
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %2641, ptr noundef @c__1, ptr noundef %2648, ptr noundef @c__1)
  %2649 = load double, ptr %72, align 8, !tbaa !11
  %2650 = fneg double %2649
  %2651 = load double, ptr %73, align 8, !tbaa !11
  %2652 = fmul double %2650, %2651
  %2653 = load double, ptr %55, align 8, !tbaa !11
  %2654 = fmul double %2652, %2653
  store double %2654, ptr %38, align 8, !tbaa !11
  %2655 = load ptr, ptr %24, align 8, !tbaa !5
  %2656 = load i32, ptr %51, align 4, !tbaa !9
  %2657 = load i32, ptr %31, align 4, !tbaa !9
  %2658 = mul nsw i32 %2656, %2657
  %2659 = add nsw i32 %2658, 1
  %2660 = sext i32 %2659 to i64
  %2661 = getelementptr inbounds double, ptr %2655, i64 %2660
  %2662 = load ptr, ptr %24, align 8, !tbaa !5
  %2663 = load i32, ptr %50, align 4, !tbaa !9
  %2664 = load i32, ptr %31, align 4, !tbaa !9
  %2665 = mul nsw i32 %2663, %2664
  %2666 = add nsw i32 %2665, 1
  %2667 = sext i32 %2666 to i64
  %2668 = getelementptr inbounds double, ptr %2662, i64 %2667
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %2661, ptr noundef @c__1, ptr noundef %2668, ptr noundef @c__1)
  br label %2669

2669:                                             ; preds = %2631, %2575
  br label %2670

2670:                                             ; preds = %2669, %2574
  br label %2671

2671:                                             ; preds = %2670, %2467
  br label %2672

2672:                                             ; preds = %2671, %2365
  br label %2673

2673:                                             ; preds = %2672, %2073
  br label %2772

2674:                                             ; preds = %1914
  %2675 = load ptr, ptr %18, align 8, !tbaa !5
  %2676 = load ptr, ptr %20, align 8, !tbaa !5
  %2677 = load i32, ptr %50, align 4, !tbaa !9
  %2678 = load i32, ptr %29, align 4, !tbaa !9
  %2679 = mul nsw i32 %2677, %2678
  %2680 = add nsw i32 %2679, 1
  %2681 = sext i32 %2680 to i64
  %2682 = getelementptr inbounds double, ptr %2676, i64 %2681
  %2683 = load ptr, ptr %26, align 8, !tbaa !5
  %2684 = load ptr, ptr %19, align 8, !tbaa !5
  %2685 = load i32, ptr %2684, align 4, !tbaa !9
  %2686 = add nsw i32 %2685, 1
  %2687 = sext i32 %2686 to i64
  %2688 = getelementptr inbounds double, ptr %2683, i64 %2687
  call void @dcopy_(ptr noundef %2675, ptr noundef %2682, ptr noundef @c__1, ptr noundef %2688, ptr noundef @c__1)
  %2689 = load ptr, ptr %18, align 8, !tbaa !5
  %2690 = load ptr, ptr %26, align 8, !tbaa !5
  %2691 = load ptr, ptr %19, align 8, !tbaa !5
  %2692 = load i32, ptr %2691, align 4, !tbaa !9
  %2693 = add nsw i32 %2692, 1
  %2694 = sext i32 %2693 to i64
  %2695 = getelementptr inbounds double, ptr %2690, i64 %2694
  %2696 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %40, ptr noundef @c_b18, ptr noundef %2689, ptr noundef @c__1, ptr noundef %2695, ptr noundef %2696, ptr noundef %44)
  %2697 = load ptr, ptr %18, align 8, !tbaa !5
  %2698 = load ptr, ptr %20, align 8, !tbaa !5
  %2699 = load i32, ptr %51, align 4, !tbaa !9
  %2700 = load i32, ptr %29, align 4, !tbaa !9
  %2701 = mul nsw i32 %2699, %2700
  %2702 = add nsw i32 %2701, 1
  %2703 = sext i32 %2702 to i64
  %2704 = getelementptr inbounds double, ptr %2698, i64 %2703
  %2705 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %42, ptr noundef @c_b18, ptr noundef %2697, ptr noundef @c__1, ptr noundef %2704, ptr noundef %2705, ptr noundef %44)
  %2706 = load double, ptr %41, align 8, !tbaa !11
  %2707 = fneg double %2706
  %2708 = load ptr, ptr %26, align 8, !tbaa !5
  %2709 = load i32, ptr %50, align 4, !tbaa !9
  %2710 = sext i32 %2709 to i64
  %2711 = getelementptr inbounds double, ptr %2708, i64 %2710
  %2712 = load double, ptr %2711, align 8, !tbaa !11
  %2713 = fmul double %2707, %2712
  %2714 = load ptr, ptr %26, align 8, !tbaa !5
  %2715 = load i32, ptr %51, align 4, !tbaa !9
  %2716 = sext i32 %2715 to i64
  %2717 = getelementptr inbounds double, ptr %2714, i64 %2716
  %2718 = load double, ptr %2717, align 8, !tbaa !11
  %2719 = fdiv double %2713, %2718
  store double %2719, ptr %48, align 8, !tbaa !11
  %2720 = load ptr, ptr %18, align 8, !tbaa !5
  %2721 = load ptr, ptr %26, align 8, !tbaa !5
  %2722 = load ptr, ptr %19, align 8, !tbaa !5
  %2723 = load i32, ptr %2722, align 4, !tbaa !9
  %2724 = add nsw i32 %2723, 1
  %2725 = sext i32 %2724 to i64
  %2726 = getelementptr inbounds double, ptr %2721, i64 %2725
  %2727 = load ptr, ptr %20, align 8, !tbaa !5
  %2728 = load i32, ptr %51, align 4, !tbaa !9
  %2729 = load i32, ptr %29, align 4, !tbaa !9
  %2730 = mul nsw i32 %2728, %2729
  %2731 = add nsw i32 %2730, 1
  %2732 = sext i32 %2731 to i64
  %2733 = getelementptr inbounds double, ptr %2727, i64 %2732
  call void @daxpy_(ptr noundef %2720, ptr noundef %48, ptr noundef %2726, ptr noundef @c__1, ptr noundef %2733, ptr noundef @c__1)
  %2734 = load ptr, ptr %18, align 8, !tbaa !5
  %2735 = load ptr, ptr %20, align 8, !tbaa !5
  %2736 = load i32, ptr %51, align 4, !tbaa !9
  %2737 = load i32, ptr %29, align 4, !tbaa !9
  %2738 = mul nsw i32 %2736, %2737
  %2739 = add nsw i32 %2738, 1
  %2740 = sext i32 %2739 to i64
  %2741 = getelementptr inbounds double, ptr %2735, i64 %2740
  %2742 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b18, ptr noundef %42, ptr noundef %2734, ptr noundef @c__1, ptr noundef %2741, ptr noundef %2742, ptr noundef %44)
  store double 0.000000e+00, ptr %38, align 8, !tbaa !11
  %2743 = load double, ptr %41, align 8, !tbaa !11
  %2744 = load double, ptr %41, align 8, !tbaa !11
  %2745 = fneg double %2743
  %2746 = call double @llvm.fmuladd.f64(double %2745, double %2744, double 1.000000e+00)
  store double %2746, ptr %39, align 8, !tbaa !11
  %2747 = load double, ptr %42, align 8, !tbaa !11
  %2748 = load double, ptr %38, align 8, !tbaa !11
  %2749 = load double, ptr %39, align 8, !tbaa !11
  %2750 = fcmp oge double %2748, %2749
  br i1 %2750, label %2751, label %2753

2751:                                             ; preds = %2674
  %2752 = load double, ptr %38, align 8, !tbaa !11
  br label %2755

2753:                                             ; preds = %2674
  %2754 = load double, ptr %39, align 8, !tbaa !11
  br label %2755

2755:                                             ; preds = %2753, %2751
  %2756 = phi double [ %2752, %2751 ], [ %2754, %2753 ]
  %2757 = call double @sqrt(double noundef %2756) #5
  %2758 = fmul double %2747, %2757
  %2759 = load ptr, ptr %22, align 8, !tbaa !5
  %2760 = load i32, ptr %51, align 4, !tbaa !9
  %2761 = sext i32 %2760 to i64
  %2762 = getelementptr inbounds double, ptr %2759, i64 %2761
  store double %2758, ptr %2762, align 8, !tbaa !11
  %2763 = load double, ptr %79, align 8, !tbaa !11
  %2764 = load double, ptr %58, align 8, !tbaa !11
  %2765 = fcmp oge double %2763, %2764
  br i1 %2765, label %2766, label %2768

2766:                                             ; preds = %2755
  %2767 = load double, ptr %79, align 8, !tbaa !11
  br label %2770

2768:                                             ; preds = %2755
  %2769 = load double, ptr %58, align 8, !tbaa !11
  br label %2770

2770:                                             ; preds = %2768, %2766
  %2771 = phi double [ %2767, %2766 ], [ %2769, %2768 ]
  store double %2771, ptr %79, align 8, !tbaa !11
  br label %2772

2772:                                             ; preds = %2770, %2673
  %2773 = load ptr, ptr %22, align 8, !tbaa !5
  %2774 = load i32, ptr %51, align 4, !tbaa !9
  %2775 = sext i32 %2774 to i64
  %2776 = getelementptr inbounds double, ptr %2773, i64 %2775
  %2777 = load double, ptr %2776, align 8, !tbaa !11
  %2778 = load double, ptr %42, align 8, !tbaa !11
  %2779 = fdiv double %2777, %2778
  store double %2779, ptr %38, align 8, !tbaa !11
  %2780 = load double, ptr %38, align 8, !tbaa !11
  %2781 = load double, ptr %38, align 8, !tbaa !11
  %2782 = fmul double %2780, %2781
  %2783 = load double, ptr %98, align 8, !tbaa !11
  %2784 = fcmp ole double %2782, %2783
  br i1 %2784, label %2785, label %2837

2785:                                             ; preds = %2772
  %2786 = load double, ptr %42, align 8, !tbaa !11
  %2787 = load double, ptr %97, align 8, !tbaa !11
  %2788 = fcmp olt double %2786, %2787
  br i1 %2788, label %2789, label %2813

2789:                                             ; preds = %2785
  %2790 = load double, ptr %42, align 8, !tbaa !11
  %2791 = load double, ptr %70, align 8, !tbaa !11
  %2792 = fcmp ogt double %2790, %2791
  br i1 %2792, label %2793, label %2813

2793:                                             ; preds = %2789
  %2794 = load ptr, ptr %18, align 8, !tbaa !5
  %2795 = load ptr, ptr %20, align 8, !tbaa !5
  %2796 = load i32, ptr %51, align 4, !tbaa !9
  %2797 = load i32, ptr %29, align 4, !tbaa !9
  %2798 = mul nsw i32 %2796, %2797
  %2799 = add nsw i32 %2798, 1
  %2800 = sext i32 %2799 to i64
  %2801 = getelementptr inbounds double, ptr %2795, i64 %2800
  %2802 = call double @dnrm2_(ptr noundef %2794, ptr noundef %2801, ptr noundef @c__1)
  %2803 = load ptr, ptr %26, align 8, !tbaa !5
  %2804 = load i32, ptr %51, align 4, !tbaa !9
  %2805 = sext i32 %2804 to i64
  %2806 = getelementptr inbounds double, ptr %2803, i64 %2805
  %2807 = load double, ptr %2806, align 8, !tbaa !11
  %2808 = fmul double %2802, %2807
  %2809 = load ptr, ptr %22, align 8, !tbaa !5
  %2810 = load i32, ptr %51, align 4, !tbaa !9
  %2811 = sext i32 %2810 to i64
  %2812 = getelementptr inbounds double, ptr %2809, i64 %2811
  store double %2808, ptr %2812, align 8, !tbaa !11
  br label %2836

2813:                                             ; preds = %2789, %2785
  store double 0.000000e+00, ptr %52, align 8, !tbaa !11
  store double 1.000000e+00, ptr %42, align 8, !tbaa !11
  %2814 = load ptr, ptr %18, align 8, !tbaa !5
  %2815 = load ptr, ptr %20, align 8, !tbaa !5
  %2816 = load i32, ptr %51, align 4, !tbaa !9
  %2817 = load i32, ptr %29, align 4, !tbaa !9
  %2818 = mul nsw i32 %2816, %2817
  %2819 = add nsw i32 %2818, 1
  %2820 = sext i32 %2819 to i64
  %2821 = getelementptr inbounds double, ptr %2815, i64 %2820
  call void @dlassq_(ptr noundef %2814, ptr noundef %2821, ptr noundef @c__1, ptr noundef %52, ptr noundef %42)
  %2822 = load double, ptr %52, align 8, !tbaa !11
  %2823 = load double, ptr %42, align 8, !tbaa !11
  %2824 = call double @sqrt(double noundef %2823) #5
  %2825 = fmul double %2822, %2824
  %2826 = load ptr, ptr %26, align 8, !tbaa !5
  %2827 = load i32, ptr %51, align 4, !tbaa !9
  %2828 = sext i32 %2827 to i64
  %2829 = getelementptr inbounds double, ptr %2826, i64 %2828
  %2830 = load double, ptr %2829, align 8, !tbaa !11
  %2831 = fmul double %2825, %2830
  %2832 = load ptr, ptr %22, align 8, !tbaa !5
  %2833 = load i32, ptr %51, align 4, !tbaa !9
  %2834 = sext i32 %2833 to i64
  %2835 = getelementptr inbounds double, ptr %2832, i64 %2834
  store double %2831, ptr %2835, align 8, !tbaa !11
  br label %2836

2836:                                             ; preds = %2813, %2793
  br label %2837

2837:                                             ; preds = %2836, %2772
  %2838 = load double, ptr %40, align 8, !tbaa !11
  %2839 = load double, ptr %47, align 8, !tbaa !11
  %2840 = fdiv double %2838, %2839
  %2841 = load double, ptr %98, align 8, !tbaa !11
  %2842 = fcmp ole double %2840, %2841
  br i1 %2842, label %2843, label %2892

2843:                                             ; preds = %2837
  %2844 = load double, ptr %40, align 8, !tbaa !11
  %2845 = load double, ptr %97, align 8, !tbaa !11
  %2846 = fcmp olt double %2844, %2845
  br i1 %2846, label %2847, label %2867

2847:                                             ; preds = %2843
  %2848 = load double, ptr %40, align 8, !tbaa !11
  %2849 = load double, ptr %70, align 8, !tbaa !11
  %2850 = fcmp ogt double %2848, %2849
  br i1 %2850, label %2851, label %2867

2851:                                             ; preds = %2847
  %2852 = load ptr, ptr %18, align 8, !tbaa !5
  %2853 = load ptr, ptr %20, align 8, !tbaa !5
  %2854 = load i32, ptr %50, align 4, !tbaa !9
  %2855 = load i32, ptr %29, align 4, !tbaa !9
  %2856 = mul nsw i32 %2854, %2855
  %2857 = add nsw i32 %2856, 1
  %2858 = sext i32 %2857 to i64
  %2859 = getelementptr inbounds double, ptr %2853, i64 %2858
  %2860 = call double @dnrm2_(ptr noundef %2852, ptr noundef %2859, ptr noundef @c__1)
  %2861 = load ptr, ptr %26, align 8, !tbaa !5
  %2862 = load i32, ptr %50, align 4, !tbaa !9
  %2863 = sext i32 %2862 to i64
  %2864 = getelementptr inbounds double, ptr %2861, i64 %2863
  %2865 = load double, ptr %2864, align 8, !tbaa !11
  %2866 = fmul double %2860, %2865
  store double %2866, ptr %40, align 8, !tbaa !11
  br label %2886

2867:                                             ; preds = %2847, %2843
  store double 0.000000e+00, ptr %52, align 8, !tbaa !11
  store double 1.000000e+00, ptr %40, align 8, !tbaa !11
  %2868 = load ptr, ptr %18, align 8, !tbaa !5
  %2869 = load ptr, ptr %20, align 8, !tbaa !5
  %2870 = load i32, ptr %50, align 4, !tbaa !9
  %2871 = load i32, ptr %29, align 4, !tbaa !9
  %2872 = mul nsw i32 %2870, %2871
  %2873 = add nsw i32 %2872, 1
  %2874 = sext i32 %2873 to i64
  %2875 = getelementptr inbounds double, ptr %2869, i64 %2874
  call void @dlassq_(ptr noundef %2868, ptr noundef %2875, ptr noundef @c__1, ptr noundef %52, ptr noundef %40)
  %2876 = load double, ptr %52, align 8, !tbaa !11
  %2877 = load double, ptr %40, align 8, !tbaa !11
  %2878 = call double @sqrt(double noundef %2877) #5
  %2879 = fmul double %2876, %2878
  %2880 = load ptr, ptr %26, align 8, !tbaa !5
  %2881 = load i32, ptr %50, align 4, !tbaa !9
  %2882 = sext i32 %2881 to i64
  %2883 = getelementptr inbounds double, ptr %2880, i64 %2882
  %2884 = load double, ptr %2883, align 8, !tbaa !11
  %2885 = fmul double %2879, %2884
  store double %2885, ptr %40, align 8, !tbaa !11
  br label %2886

2886:                                             ; preds = %2867, %2851
  %2887 = load double, ptr %40, align 8, !tbaa !11
  %2888 = load ptr, ptr %22, align 8, !tbaa !5
  %2889 = load i32, ptr %50, align 4, !tbaa !9
  %2890 = sext i32 %2889 to i64
  %2891 = getelementptr inbounds double, ptr %2888, i64 %2890
  store double %2887, ptr %2891, align 8, !tbaa !11
  br label %2892

2892:                                             ; preds = %2886, %2837
  br label %2902

2893:                                             ; preds = %1904
  %2894 = load i32, ptr %80, align 4, !tbaa !9
  %2895 = icmp eq i32 %2894, 0
  br i1 %2895, label %2896, label %2899

2896:                                             ; preds = %2893
  %2897 = load i32, ptr %82, align 4, !tbaa !9
  %2898 = add nsw i32 %2897, 1
  store i32 %2898, ptr %82, align 4, !tbaa !9
  br label %2899

2899:                                             ; preds = %2896, %2893
  %2900 = load i32, ptr %46, align 4, !tbaa !9
  %2901 = add nsw i32 %2900, 1
  store i32 %2901, ptr %46, align 4, !tbaa !9
  br label %2902

2902:                                             ; preds = %2899, %2892
  br label %2912

2903:                                             ; preds = %1673
  %2904 = load i32, ptr %80, align 4, !tbaa !9
  %2905 = icmp eq i32 %2904, 0
  br i1 %2905, label %2906, label %2909

2906:                                             ; preds = %2903
  %2907 = load i32, ptr %82, align 4, !tbaa !9
  %2908 = add nsw i32 %2907, 1
  store i32 %2908, ptr %82, align 4, !tbaa !9
  br label %2909

2909:                                             ; preds = %2906, %2903
  %2910 = load i32, ptr %46, align 4, !tbaa !9
  %2911 = add nsw i32 %2910, 1
  store i32 %2911, ptr %46, align 4, !tbaa !9
  br label %2912

2912:                                             ; preds = %2909, %2902
  %2913 = load i32, ptr %49, align 4, !tbaa !9
  %2914 = load i32, ptr %75, align 4, !tbaa !9
  %2915 = icmp sle i32 %2913, %2914
  br i1 %2915, label %2916, label %2927

2916:                                             ; preds = %2912
  %2917 = load i32, ptr %46, align 4, !tbaa !9
  %2918 = load i32, ptr %99, align 4, !tbaa !9
  %2919 = icmp sgt i32 %2917, %2918
  br i1 %2919, label %2920, label %2927

2920:                                             ; preds = %2916
  %2921 = load i32, ptr %80, align 4, !tbaa !9
  %2922 = icmp eq i32 %2921, 0
  br i1 %2922, label %2923, label %2926

2923:                                             ; preds = %2920
  %2924 = load double, ptr %40, align 8, !tbaa !11
  %2925 = fneg double %2924
  store double %2925, ptr %40, align 8, !tbaa !11
  br label %2926

2926:                                             ; preds = %2923, %2920
  store i32 0, ptr %82, align 4, !tbaa !9
  br label %2932

2927:                                             ; preds = %2916, %2912
  br label %2928

2928:                                             ; preds = %2927
  %2929 = load i32, ptr %51, align 4, !tbaa !9
  %2930 = add nsw i32 %2929, 1
  store i32 %2930, ptr %51, align 4, !tbaa !9
  br label %1669, !llvm.loop !22

2931:                                             ; preds = %1669
  br label %2932

2932:                                             ; preds = %2931, %2926
  %2933 = load double, ptr %40, align 8, !tbaa !11
  %2934 = load ptr, ptr %22, align 8, !tbaa !5
  %2935 = load i32, ptr %50, align 4, !tbaa !9
  %2936 = sext i32 %2935 to i64
  %2937 = getelementptr inbounds double, ptr %2934, i64 %2936
  store double %2933, ptr %2937, align 8, !tbaa !11
  br label %2970

2938:                                             ; preds = %1648
  %2939 = load double, ptr %40, align 8, !tbaa !11
  %2940 = load ptr, ptr %22, align 8, !tbaa !5
  %2941 = load i32, ptr %50, align 4, !tbaa !9
  %2942 = sext i32 %2941 to i64
  %2943 = getelementptr inbounds double, ptr %2940, i64 %2942
  store double %2939, ptr %2943, align 8, !tbaa !11
  %2944 = load i32, ptr %80, align 4, !tbaa !9
  %2945 = icmp eq i32 %2944, 0
  br i1 %2945, label %2946, label %2969

2946:                                             ; preds = %2938
  %2947 = load double, ptr %40, align 8, !tbaa !11
  %2948 = fcmp oeq double %2947, 0.000000e+00
  br i1 %2948, label %2949, label %2969

2949:                                             ; preds = %2946
  %2950 = load i32, ptr %88, align 4, !tbaa !9
  %2951 = load i32, ptr %86, align 4, !tbaa !9
  %2952 = add nsw i32 %2950, %2951
  %2953 = sub nsw i32 %2952, 1
  store i32 %2953, ptr %36, align 4, !tbaa !9
  %2954 = load i32, ptr %82, align 4, !tbaa !9
  %2955 = load i32, ptr %36, align 4, !tbaa !9
  %2956 = load ptr, ptr %19, align 8, !tbaa !5
  %2957 = load i32, ptr %2956, align 4, !tbaa !9
  %2958 = icmp sle i32 %2955, %2957
  br i1 %2958, label %2959, label %2961

2959:                                             ; preds = %2949
  %2960 = load i32, ptr %36, align 4, !tbaa !9
  br label %2964

2961:                                             ; preds = %2949
  %2962 = load ptr, ptr %19, align 8, !tbaa !5
  %2963 = load i32, ptr %2962, align 4, !tbaa !9
  br label %2964

2964:                                             ; preds = %2961, %2959
  %2965 = phi i32 [ %2960, %2959 ], [ %2963, %2961 ]
  %2966 = add nsw i32 %2954, %2965
  %2967 = load i32, ptr %50, align 4, !tbaa !9
  %2968 = sub nsw i32 %2966, %2967
  store i32 %2968, ptr %82, align 4, !tbaa !9
  br label %2969

2969:                                             ; preds = %2964, %2946, %2938
  br label %2970

2970:                                             ; preds = %2969, %2932
  br label %2971

2971:                                             ; preds = %2970
  %2972 = load i32, ptr %50, align 4, !tbaa !9
  %2973 = add nsw i32 %2972, 1
  store i32 %2973, ptr %50, align 4, !tbaa !9
  br label %1481, !llvm.loop !23

2974:                                             ; preds = %1481
  br label %2975

2975:                                             ; preds = %2974
  %2976 = load i32, ptr %80, align 4, !tbaa !9
  %2977 = add nsw i32 %2976, 1
  store i32 %2977, ptr %80, align 4, !tbaa !9
  br label %1454, !llvm.loop !24

2978:                                             ; preds = %1454
  %2979 = load i32, ptr %89, align 4, !tbaa !9
  %2980 = sub nsw i32 %2979, 1
  %2981 = load i32, ptr %86, align 4, !tbaa !9
  %2982 = mul nsw i32 %2980, %2981
  %2983 = add nsw i32 %2982, 1
  store i32 %2983, ptr %88, align 4, !tbaa !9
  %2984 = load i32, ptr %91, align 4, !tbaa !9
  store i32 %2984, ptr %34, align 4, !tbaa !9
  %2985 = load i32, ptr %89, align 4, !tbaa !9
  %2986 = add nsw i32 %2985, 1
  store i32 %2986, ptr %84, align 4, !tbaa !9
  br label %2987

2987:                                             ; preds = %4491, %2978
  %2988 = load i32, ptr %84, align 4, !tbaa !9
  %2989 = load i32, ptr %34, align 4, !tbaa !9
  %2990 = icmp sle i32 %2988, %2989
  br i1 %2990, label %2991, label %4494

2991:                                             ; preds = %2987
  %2992 = load i32, ptr %84, align 4, !tbaa !9
  %2993 = sub nsw i32 %2992, 1
  %2994 = load i32, ptr %86, align 4, !tbaa !9
  %2995 = mul nsw i32 %2993, %2994
  %2996 = add nsw i32 %2995, 1
  store i32 %2996, ptr %90, align 4, !tbaa !9
  store i32 0, ptr %74, align 4, !tbaa !9
  %2997 = load i32, ptr %88, align 4, !tbaa !9
  %2998 = load i32, ptr %86, align 4, !tbaa !9
  %2999 = add nsw i32 %2997, %2998
  %3000 = sub nsw i32 %2999, 1
  store i32 %3000, ptr %36, align 4, !tbaa !9
  %3001 = load i32, ptr %36, align 4, !tbaa !9
  %3002 = load ptr, ptr %19, align 8, !tbaa !5
  %3003 = load i32, ptr %3002, align 4, !tbaa !9
  %3004 = icmp sle i32 %3001, %3003
  br i1 %3004, label %3005, label %3007

3005:                                             ; preds = %2991
  %3006 = load i32, ptr %36, align 4, !tbaa !9
  br label %3010

3007:                                             ; preds = %2991
  %3008 = load ptr, ptr %19, align 8, !tbaa !5
  %3009 = load i32, ptr %3008, align 4, !tbaa !9
  br label %3010

3010:                                             ; preds = %3007, %3005
  %3011 = phi i32 [ %3006, %3005 ], [ %3009, %3007 ]
  store i32 %3011, ptr %35, align 4, !tbaa !9
  %3012 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %3012, ptr %50, align 4, !tbaa !9
  br label %3013

3013:                                             ; preds = %4487, %3010
  %3014 = load i32, ptr %50, align 4, !tbaa !9
  %3015 = load i32, ptr %35, align 4, !tbaa !9
  %3016 = icmp sle i32 %3014, %3015
  br i1 %3016, label %3017, label %4490

3017:                                             ; preds = %3013
  %3018 = load ptr, ptr %22, align 8, !tbaa !5
  %3019 = load i32, ptr %50, align 4, !tbaa !9
  %3020 = sext i32 %3019 to i64
  %3021 = getelementptr inbounds double, ptr %3018, i64 %3020
  %3022 = load double, ptr %3021, align 8, !tbaa !11
  store double %3022, ptr %40, align 8, !tbaa !11
  %3023 = load double, ptr %40, align 8, !tbaa !11
  %3024 = fcmp ogt double %3023, 0.000000e+00
  br i1 %3024, label %3025, label %4457

3025:                                             ; preds = %3017
  store i32 0, ptr %46, align 4, !tbaa !9
  %3026 = load i32, ptr %90, align 4, !tbaa !9
  %3027 = load i32, ptr %86, align 4, !tbaa !9
  %3028 = add nsw i32 %3026, %3027
  %3029 = sub nsw i32 %3028, 1
  store i32 %3029, ptr %37, align 4, !tbaa !9
  %3030 = load i32, ptr %37, align 4, !tbaa !9
  %3031 = load ptr, ptr %19, align 8, !tbaa !5
  %3032 = load i32, ptr %3031, align 4, !tbaa !9
  %3033 = icmp sle i32 %3030, %3032
  br i1 %3033, label %3034, label %3036

3034:                                             ; preds = %3025
  %3035 = load i32, ptr %37, align 4, !tbaa !9
  br label %3039

3036:                                             ; preds = %3025
  %3037 = load ptr, ptr %19, align 8, !tbaa !5
  %3038 = load i32, ptr %3037, align 4, !tbaa !9
  br label %3039

3039:                                             ; preds = %3036, %3034
  %3040 = phi i32 [ %3035, %3034 ], [ %3038, %3036 ]
  store i32 %3040, ptr %36, align 4, !tbaa !9
  %3041 = load i32, ptr %90, align 4, !tbaa !9
  store i32 %3041, ptr %51, align 4, !tbaa !9
  br label %3042

3042:                                             ; preds = %4447, %3039
  %3043 = load i32, ptr %51, align 4, !tbaa !9
  %3044 = load i32, ptr %36, align 4, !tbaa !9
  %3045 = icmp sle i32 %3043, %3044
  br i1 %3045, label %3046, label %4450

3046:                                             ; preds = %3042
  %3047 = load ptr, ptr %22, align 8, !tbaa !5
  %3048 = load i32, ptr %51, align 4, !tbaa !9
  %3049 = sext i32 %3048 to i64
  %3050 = getelementptr inbounds double, ptr %3047, i64 %3049
  %3051 = load double, ptr %3050, align 8, !tbaa !11
  store double %3051, ptr %42, align 8, !tbaa !11
  %3052 = load double, ptr %42, align 8, !tbaa !11
  %3053 = fcmp ogt double %3052, 0.000000e+00
  br i1 %3053, label %3054, label %4414

3054:                                             ; preds = %3046
  %3055 = load double, ptr %40, align 8, !tbaa !11
  store double %3055, ptr %47, align 8, !tbaa !11
  %3056 = load double, ptr %42, align 8, !tbaa !11
  %3057 = fcmp oge double %3056, 1.000000e+00
  br i1 %3057, label %3058, label %3166

3058:                                             ; preds = %3054
  %3059 = load double, ptr %40, align 8, !tbaa !11
  %3060 = load double, ptr %42, align 8, !tbaa !11
  %3061 = fcmp oge double %3059, %3060
  br i1 %3061, label %3062, label %3069

3062:                                             ; preds = %3058
  %3063 = load double, ptr %57, align 8, !tbaa !11
  %3064 = load double, ptr %40, align 8, !tbaa !11
  %3065 = fmul double %3063, %3064
  %3066 = load double, ptr %42, align 8, !tbaa !11
  %3067 = fcmp ole double %3065, %3066
  %3068 = zext i1 %3067 to i32
  store i32 %3068, ptr %67, align 4, !tbaa !9
  br label %3076

3069:                                             ; preds = %3058
  %3070 = load double, ptr %57, align 8, !tbaa !11
  %3071 = load double, ptr %42, align 8, !tbaa !11
  %3072 = fmul double %3070, %3071
  %3073 = load double, ptr %40, align 8, !tbaa !11
  %3074 = fcmp ole double %3072, %3073
  %3075 = zext i1 %3074 to i32
  store i32 %3075, ptr %67, align 4, !tbaa !9
  br label %3076

3076:                                             ; preds = %3069, %3062
  %3077 = load double, ptr %40, align 8, !tbaa !11
  %3078 = load double, ptr %85, align 8, !tbaa !11
  %3079 = load double, ptr %42, align 8, !tbaa !11
  %3080 = fdiv double %3078, %3079
  %3081 = fcmp olt double %3077, %3080
  br i1 %3081, label %3082, label %3115

3082:                                             ; preds = %3076
  %3083 = load ptr, ptr %18, align 8, !tbaa !5
  %3084 = load ptr, ptr %20, align 8, !tbaa !5
  %3085 = load i32, ptr %50, align 4, !tbaa !9
  %3086 = load i32, ptr %29, align 4, !tbaa !9
  %3087 = mul nsw i32 %3085, %3086
  %3088 = add nsw i32 %3087, 1
  %3089 = sext i32 %3088 to i64
  %3090 = getelementptr inbounds double, ptr %3084, i64 %3089
  %3091 = load ptr, ptr %20, align 8, !tbaa !5
  %3092 = load i32, ptr %51, align 4, !tbaa !9
  %3093 = load i32, ptr %29, align 4, !tbaa !9
  %3094 = mul nsw i32 %3092, %3093
  %3095 = add nsw i32 %3094, 1
  %3096 = sext i32 %3095 to i64
  %3097 = getelementptr inbounds double, ptr %3091, i64 %3096
  %3098 = call double @ddot_(ptr noundef %3083, ptr noundef %3090, ptr noundef @c__1, ptr noundef %3097, ptr noundef @c__1)
  %3099 = load ptr, ptr %26, align 8, !tbaa !5
  %3100 = load i32, ptr %50, align 4, !tbaa !9
  %3101 = sext i32 %3100 to i64
  %3102 = getelementptr inbounds double, ptr %3099, i64 %3101
  %3103 = load double, ptr %3102, align 8, !tbaa !11
  %3104 = fmul double %3098, %3103
  %3105 = load ptr, ptr %26, align 8, !tbaa !5
  %3106 = load i32, ptr %51, align 4, !tbaa !9
  %3107 = sext i32 %3106 to i64
  %3108 = getelementptr inbounds double, ptr %3105, i64 %3107
  %3109 = load double, ptr %3108, align 8, !tbaa !11
  %3110 = fmul double %3104, %3109
  %3111 = load double, ptr %42, align 8, !tbaa !11
  %3112 = fdiv double %3110, %3111
  %3113 = load double, ptr %40, align 8, !tbaa !11
  %3114 = fdiv double %3112, %3113
  store double %3114, ptr %41, align 8, !tbaa !11
  br label %3165

3115:                                             ; preds = %3076
  %3116 = load ptr, ptr %18, align 8, !tbaa !5
  %3117 = load ptr, ptr %20, align 8, !tbaa !5
  %3118 = load i32, ptr %50, align 4, !tbaa !9
  %3119 = load i32, ptr %29, align 4, !tbaa !9
  %3120 = mul nsw i32 %3118, %3119
  %3121 = add nsw i32 %3120, 1
  %3122 = sext i32 %3121 to i64
  %3123 = getelementptr inbounds double, ptr %3117, i64 %3122
  %3124 = load ptr, ptr %26, align 8, !tbaa !5
  %3125 = load ptr, ptr %19, align 8, !tbaa !5
  %3126 = load i32, ptr %3125, align 4, !tbaa !9
  %3127 = add nsw i32 %3126, 1
  %3128 = sext i32 %3127 to i64
  %3129 = getelementptr inbounds double, ptr %3124, i64 %3128
  call void @dcopy_(ptr noundef %3116, ptr noundef %3123, ptr noundef @c__1, ptr noundef %3129, ptr noundef @c__1)
  %3130 = load ptr, ptr %26, align 8, !tbaa !5
  %3131 = load i32, ptr %50, align 4, !tbaa !9
  %3132 = sext i32 %3131 to i64
  %3133 = getelementptr inbounds double, ptr %3130, i64 %3132
  %3134 = load ptr, ptr %18, align 8, !tbaa !5
  %3135 = load ptr, ptr %26, align 8, !tbaa !5
  %3136 = load ptr, ptr %19, align 8, !tbaa !5
  %3137 = load i32, ptr %3136, align 4, !tbaa !9
  %3138 = add nsw i32 %3137, 1
  %3139 = sext i32 %3138 to i64
  %3140 = getelementptr inbounds double, ptr %3135, i64 %3139
  %3141 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %40, ptr noundef %3133, ptr noundef %3134, ptr noundef @c__1, ptr noundef %3140, ptr noundef %3141, ptr noundef %44)
  %3142 = load ptr, ptr %18, align 8, !tbaa !5
  %3143 = load ptr, ptr %26, align 8, !tbaa !5
  %3144 = load ptr, ptr %19, align 8, !tbaa !5
  %3145 = load i32, ptr %3144, align 4, !tbaa !9
  %3146 = add nsw i32 %3145, 1
  %3147 = sext i32 %3146 to i64
  %3148 = getelementptr inbounds double, ptr %3143, i64 %3147
  %3149 = load ptr, ptr %20, align 8, !tbaa !5
  %3150 = load i32, ptr %51, align 4, !tbaa !9
  %3151 = load i32, ptr %29, align 4, !tbaa !9
  %3152 = mul nsw i32 %3150, %3151
  %3153 = add nsw i32 %3152, 1
  %3154 = sext i32 %3153 to i64
  %3155 = getelementptr inbounds double, ptr %3149, i64 %3154
  %3156 = call double @ddot_(ptr noundef %3142, ptr noundef %3148, ptr noundef @c__1, ptr noundef %3155, ptr noundef @c__1)
  %3157 = load ptr, ptr %26, align 8, !tbaa !5
  %3158 = load i32, ptr %51, align 4, !tbaa !9
  %3159 = sext i32 %3158 to i64
  %3160 = getelementptr inbounds double, ptr %3157, i64 %3159
  %3161 = load double, ptr %3160, align 8, !tbaa !11
  %3162 = fmul double %3156, %3161
  %3163 = load double, ptr %42, align 8, !tbaa !11
  %3164 = fdiv double %3162, %3163
  store double %3164, ptr %41, align 8, !tbaa !11
  br label %3165

3165:                                             ; preds = %3115, %3082
  br label %3274

3166:                                             ; preds = %3054
  %3167 = load double, ptr %40, align 8, !tbaa !11
  %3168 = load double, ptr %42, align 8, !tbaa !11
  %3169 = fcmp oge double %3167, %3168
  br i1 %3169, label %3170, label %3177

3170:                                             ; preds = %3166
  %3171 = load double, ptr %40, align 8, !tbaa !11
  %3172 = load double, ptr %42, align 8, !tbaa !11
  %3173 = load double, ptr %57, align 8, !tbaa !11
  %3174 = fdiv double %3172, %3173
  %3175 = fcmp ole double %3171, %3174
  %3176 = zext i1 %3175 to i32
  store i32 %3176, ptr %67, align 4, !tbaa !9
  br label %3184

3177:                                             ; preds = %3166
  %3178 = load double, ptr %42, align 8, !tbaa !11
  %3179 = load double, ptr %40, align 8, !tbaa !11
  %3180 = load double, ptr %57, align 8, !tbaa !11
  %3181 = fdiv double %3179, %3180
  %3182 = fcmp ole double %3178, %3181
  %3183 = zext i1 %3182 to i32
  store i32 %3183, ptr %67, align 4, !tbaa !9
  br label %3184

3184:                                             ; preds = %3177, %3170
  %3185 = load double, ptr %40, align 8, !tbaa !11
  %3186 = load double, ptr %57, align 8, !tbaa !11
  %3187 = load double, ptr %42, align 8, !tbaa !11
  %3188 = fdiv double %3186, %3187
  %3189 = fcmp ogt double %3185, %3188
  br i1 %3189, label %3190, label %3223

3190:                                             ; preds = %3184
  %3191 = load ptr, ptr %18, align 8, !tbaa !5
  %3192 = load ptr, ptr %20, align 8, !tbaa !5
  %3193 = load i32, ptr %50, align 4, !tbaa !9
  %3194 = load i32, ptr %29, align 4, !tbaa !9
  %3195 = mul nsw i32 %3193, %3194
  %3196 = add nsw i32 %3195, 1
  %3197 = sext i32 %3196 to i64
  %3198 = getelementptr inbounds double, ptr %3192, i64 %3197
  %3199 = load ptr, ptr %20, align 8, !tbaa !5
  %3200 = load i32, ptr %51, align 4, !tbaa !9
  %3201 = load i32, ptr %29, align 4, !tbaa !9
  %3202 = mul nsw i32 %3200, %3201
  %3203 = add nsw i32 %3202, 1
  %3204 = sext i32 %3203 to i64
  %3205 = getelementptr inbounds double, ptr %3199, i64 %3204
  %3206 = call double @ddot_(ptr noundef %3191, ptr noundef %3198, ptr noundef @c__1, ptr noundef %3205, ptr noundef @c__1)
  %3207 = load ptr, ptr %26, align 8, !tbaa !5
  %3208 = load i32, ptr %50, align 4, !tbaa !9
  %3209 = sext i32 %3208 to i64
  %3210 = getelementptr inbounds double, ptr %3207, i64 %3209
  %3211 = load double, ptr %3210, align 8, !tbaa !11
  %3212 = fmul double %3206, %3211
  %3213 = load ptr, ptr %26, align 8, !tbaa !5
  %3214 = load i32, ptr %51, align 4, !tbaa !9
  %3215 = sext i32 %3214 to i64
  %3216 = getelementptr inbounds double, ptr %3213, i64 %3215
  %3217 = load double, ptr %3216, align 8, !tbaa !11
  %3218 = fmul double %3212, %3217
  %3219 = load double, ptr %42, align 8, !tbaa !11
  %3220 = fdiv double %3218, %3219
  %3221 = load double, ptr %40, align 8, !tbaa !11
  %3222 = fdiv double %3220, %3221
  store double %3222, ptr %41, align 8, !tbaa !11
  br label %3273

3223:                                             ; preds = %3184
  %3224 = load ptr, ptr %18, align 8, !tbaa !5
  %3225 = load ptr, ptr %20, align 8, !tbaa !5
  %3226 = load i32, ptr %51, align 4, !tbaa !9
  %3227 = load i32, ptr %29, align 4, !tbaa !9
  %3228 = mul nsw i32 %3226, %3227
  %3229 = add nsw i32 %3228, 1
  %3230 = sext i32 %3229 to i64
  %3231 = getelementptr inbounds double, ptr %3225, i64 %3230
  %3232 = load ptr, ptr %26, align 8, !tbaa !5
  %3233 = load ptr, ptr %19, align 8, !tbaa !5
  %3234 = load i32, ptr %3233, align 4, !tbaa !9
  %3235 = add nsw i32 %3234, 1
  %3236 = sext i32 %3235 to i64
  %3237 = getelementptr inbounds double, ptr %3232, i64 %3236
  call void @dcopy_(ptr noundef %3224, ptr noundef %3231, ptr noundef @c__1, ptr noundef %3237, ptr noundef @c__1)
  %3238 = load ptr, ptr %26, align 8, !tbaa !5
  %3239 = load i32, ptr %51, align 4, !tbaa !9
  %3240 = sext i32 %3239 to i64
  %3241 = getelementptr inbounds double, ptr %3238, i64 %3240
  %3242 = load ptr, ptr %18, align 8, !tbaa !5
  %3243 = load ptr, ptr %26, align 8, !tbaa !5
  %3244 = load ptr, ptr %19, align 8, !tbaa !5
  %3245 = load i32, ptr %3244, align 4, !tbaa !9
  %3246 = add nsw i32 %3245, 1
  %3247 = sext i32 %3246 to i64
  %3248 = getelementptr inbounds double, ptr %3243, i64 %3247
  %3249 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %42, ptr noundef %3241, ptr noundef %3242, ptr noundef @c__1, ptr noundef %3248, ptr noundef %3249, ptr noundef %44)
  %3250 = load ptr, ptr %18, align 8, !tbaa !5
  %3251 = load ptr, ptr %26, align 8, !tbaa !5
  %3252 = load ptr, ptr %19, align 8, !tbaa !5
  %3253 = load i32, ptr %3252, align 4, !tbaa !9
  %3254 = add nsw i32 %3253, 1
  %3255 = sext i32 %3254 to i64
  %3256 = getelementptr inbounds double, ptr %3251, i64 %3255
  %3257 = load ptr, ptr %20, align 8, !tbaa !5
  %3258 = load i32, ptr %50, align 4, !tbaa !9
  %3259 = load i32, ptr %29, align 4, !tbaa !9
  %3260 = mul nsw i32 %3258, %3259
  %3261 = add nsw i32 %3260, 1
  %3262 = sext i32 %3261 to i64
  %3263 = getelementptr inbounds double, ptr %3257, i64 %3262
  %3264 = call double @ddot_(ptr noundef %3250, ptr noundef %3256, ptr noundef @c__1, ptr noundef %3263, ptr noundef @c__1)
  %3265 = load ptr, ptr %26, align 8, !tbaa !5
  %3266 = load i32, ptr %50, align 4, !tbaa !9
  %3267 = sext i32 %3266 to i64
  %3268 = getelementptr inbounds double, ptr %3265, i64 %3267
  %3269 = load double, ptr %3268, align 8, !tbaa !11
  %3270 = fmul double %3264, %3269
  %3271 = load double, ptr %40, align 8, !tbaa !11
  %3272 = fdiv double %3270, %3271
  store double %3272, ptr %41, align 8, !tbaa !11
  br label %3273

3273:                                             ; preds = %3223, %3190
  br label %3274

3274:                                             ; preds = %3273, %3165
  %3275 = load double, ptr %77, align 8, !tbaa !11
  store double %3275, ptr %38, align 8, !tbaa !11
  %3276 = load double, ptr %41, align 8, !tbaa !11
  %3277 = fcmp oge double %3276, 0.000000e+00
  br i1 %3277, label %3278, label %3280

3278:                                             ; preds = %3274
  %3279 = load double, ptr %41, align 8, !tbaa !11
  br label %3283

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

3283:                                             ; preds = %3280, %3278
  %3284 = phi double [ %3279, %3278 ], [ %3282, %3280 ]
  store double %3284, ptr %39, align 8, !tbaa !11
  %3285 = load double, ptr %38, align 8, !tbaa !11
  %3286 = load double, ptr %39, align 8, !tbaa !11
  %3287 = fcmp oge double %3285, %3286
  br i1 %3287, label %3288, label %3290

3288:                                             ; preds = %3283
  %3289 = load double, ptr %38, align 8, !tbaa !11
  br label %3292

3290:                                             ; preds = %3283
  %3291 = load double, ptr %39, align 8, !tbaa !11
  br label %3292

3292:                                             ; preds = %3290, %3288
  %3293 = phi double [ %3289, %3288 ], [ %3291, %3290 ]
  store double %3293, ptr %77, align 8, !tbaa !11
  %3294 = load double, ptr %41, align 8, !tbaa !11
  %3295 = fcmp oge double %3294, 0.000000e+00
  br i1 %3295, label %3296, label %3298

3296:                                             ; preds = %3292
  %3297 = load double, ptr %41, align 8, !tbaa !11
  br label %3301

3298:                                             ; preds = %3292
  %3299 = load double, ptr %41, align 8, !tbaa !11
  %3300 = fneg double %3299
  br label %3301

3301:                                             ; preds = %3298, %3296
  %3302 = phi double [ %3297, %3296 ], [ %3300, %3298 ]
  %3303 = load double, ptr %94, align 8, !tbaa !11
  %3304 = fcmp ogt double %3302, %3303
  br i1 %3304, label %3305, label %4406

3305:                                             ; preds = %3301
  store i32 0, ptr %82, align 4, !tbaa !9
  store i32 0, ptr %46, align 4, !tbaa !9
  %3306 = load i32, ptr %83, align 4, !tbaa !9
  %3307 = add nsw i32 %3306, 1
  store i32 %3307, ptr %83, align 4, !tbaa !9
  %3308 = load i32, ptr %67, align 4, !tbaa !9
  %3309 = icmp ne i32 %3308, 0
  br i1 %3309, label %3310, label %4081

3310:                                             ; preds = %3305
  %3311 = load double, ptr %42, align 8, !tbaa !11
  %3312 = load double, ptr %40, align 8, !tbaa !11
  %3313 = fdiv double %3311, %3312
  store double %3313, ptr %55, align 8, !tbaa !11
  %3314 = load double, ptr %40, align 8, !tbaa !11
  %3315 = load double, ptr %42, align 8, !tbaa !11
  %3316 = fdiv double %3314, %3315
  store double %3316, ptr %54, align 8, !tbaa !11
  %3317 = load double, ptr %55, align 8, !tbaa !11
  %3318 = load double, ptr %54, align 8, !tbaa !11
  %3319 = fsub double %3317, %3318
  store double %3319, ptr %38, align 8, !tbaa !11
  %3320 = load double, ptr %38, align 8, !tbaa !11
  %3321 = fcmp oge double %3320, 0.000000e+00
  br i1 %3321, label %3322, label %3324

3322:                                             ; preds = %3310
  %3323 = load double, ptr %38, align 8, !tbaa !11
  br label %3327

3324:                                             ; preds = %3310
  %3325 = load double, ptr %38, align 8, !tbaa !11
  %3326 = fneg double %3325
  br label %3327

3327:                                             ; preds = %3324, %3322
  %3328 = phi double [ %3323, %3322 ], [ %3326, %3324 ]
  %3329 = fmul double %3328, -5.000000e-01
  %3330 = load double, ptr %41, align 8, !tbaa !11
  %3331 = fdiv double %3329, %3330
  store double %3331, ptr %56, align 8, !tbaa !11
  %3332 = load double, ptr %42, align 8, !tbaa !11
  %3333 = load double, ptr %47, align 8, !tbaa !11
  %3334 = fcmp ogt double %3332, %3333
  br i1 %3334, label %3335, label %3338

3335:                                             ; preds = %3327
  %3336 = load double, ptr %56, align 8, !tbaa !11
  %3337 = fneg double %3336
  store double %3337, ptr %56, align 8, !tbaa !11
  br label %3338

3338:                                             ; preds = %3335, %3327
  %3339 = load double, ptr %56, align 8, !tbaa !11
  %3340 = fcmp oge double %3339, 0.000000e+00
  br i1 %3340, label %3341, label %3343

3341:                                             ; preds = %3338
  %3342 = load double, ptr %56, align 8, !tbaa !11
  br label %3346

3343:                                             ; preds = %3338
  %3344 = load double, ptr %56, align 8, !tbaa !11
  %3345 = fneg double %3344
  br label %3346

3346:                                             ; preds = %3343, %3341
  %3347 = phi double [ %3342, %3341 ], [ %3345, %3343 ]
  %3348 = load double, ptr %45, align 8, !tbaa !11
  %3349 = fcmp ogt double %3347, %3348
  br i1 %3349, label %3350, label %3475

3350:                                             ; preds = %3346
  %3351 = load double, ptr %56, align 8, !tbaa !11
  %3352 = fdiv double 5.000000e-01, %3351
  store double %3352, ptr %52, align 8, !tbaa !11
  %3353 = load double, ptr %52, align 8, !tbaa !11
  %3354 = load ptr, ptr %26, align 8, !tbaa !5
  %3355 = load i32, ptr %50, align 4, !tbaa !9
  %3356 = sext i32 %3355 to i64
  %3357 = getelementptr inbounds double, ptr %3354, i64 %3356
  %3358 = load double, ptr %3357, align 8, !tbaa !11
  %3359 = fmul double %3353, %3358
  %3360 = load ptr, ptr %26, align 8, !tbaa !5
  %3361 = load i32, ptr %51, align 4, !tbaa !9
  %3362 = sext i32 %3361 to i64
  %3363 = getelementptr inbounds double, ptr %3360, i64 %3362
  %3364 = load double, ptr %3363, align 8, !tbaa !11
  %3365 = fdiv double %3359, %3364
  %3366 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 2
  store double %3365, ptr %3366, align 16, !tbaa !11
  %3367 = load double, ptr %52, align 8, !tbaa !11
  %3368 = fneg double %3367
  %3369 = load ptr, ptr %26, align 8, !tbaa !5
  %3370 = load i32, ptr %51, align 4, !tbaa !9
  %3371 = sext i32 %3370 to i64
  %3372 = getelementptr inbounds double, ptr %3369, i64 %3371
  %3373 = load double, ptr %3372, align 8, !tbaa !11
  %3374 = fmul double %3368, %3373
  %3375 = load ptr, ptr %26, align 8, !tbaa !5
  %3376 = load i32, ptr %50, align 4, !tbaa !9
  %3377 = sext i32 %3376 to i64
  %3378 = getelementptr inbounds double, ptr %3375, i64 %3377
  %3379 = load double, ptr %3378, align 8, !tbaa !11
  %3380 = fdiv double %3374, %3379
  %3381 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 3
  store double %3380, ptr %3381, align 8, !tbaa !11
  %3382 = load ptr, ptr %18, align 8, !tbaa !5
  %3383 = load ptr, ptr %20, align 8, !tbaa !5
  %3384 = load i32, ptr %50, align 4, !tbaa !9
  %3385 = load i32, ptr %29, align 4, !tbaa !9
  %3386 = mul nsw i32 %3384, %3385
  %3387 = add nsw i32 %3386, 1
  %3388 = sext i32 %3387 to i64
  %3389 = getelementptr inbounds double, ptr %3383, i64 %3388
  %3390 = load ptr, ptr %20, align 8, !tbaa !5
  %3391 = load i32, ptr %51, align 4, !tbaa !9
  %3392 = load i32, ptr %29, align 4, !tbaa !9
  %3393 = mul nsw i32 %3391, %3392
  %3394 = add nsw i32 %3393, 1
  %3395 = sext i32 %3394 to i64
  %3396 = getelementptr inbounds double, ptr %3390, i64 %3395
  %3397 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 0
  call void @drotm_(ptr noundef %3382, ptr noundef %3389, ptr noundef @c__1, ptr noundef %3396, ptr noundef @c__1, ptr noundef %3397)
  %3398 = load i32, ptr %63, align 4, !tbaa !9
  %3399 = icmp ne i32 %3398, 0
  br i1 %3399, label %3400, label %3416

3400:                                             ; preds = %3350
  %3401 = load ptr, ptr %24, align 8, !tbaa !5
  %3402 = load i32, ptr %50, align 4, !tbaa !9
  %3403 = load i32, ptr %31, align 4, !tbaa !9
  %3404 = mul nsw i32 %3402, %3403
  %3405 = add nsw i32 %3404, 1
  %3406 = sext i32 %3405 to i64
  %3407 = getelementptr inbounds double, ptr %3401, i64 %3406
  %3408 = load ptr, ptr %24, align 8, !tbaa !5
  %3409 = load i32, ptr %51, align 4, !tbaa !9
  %3410 = load i32, ptr %31, align 4, !tbaa !9
  %3411 = mul nsw i32 %3409, %3410
  %3412 = add nsw i32 %3411, 1
  %3413 = sext i32 %3412 to i64
  %3414 = getelementptr inbounds double, ptr %3408, i64 %3413
  %3415 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 0
  call void @drotm_(ptr noundef %95, ptr noundef %3407, ptr noundef @c__1, ptr noundef %3414, ptr noundef @c__1, ptr noundef %3415)
  br label %3416

3416:                                             ; preds = %3400, %3350
  store double 0.000000e+00, ptr %38, align 8, !tbaa !11
  %3417 = load double, ptr %52, align 8, !tbaa !11
  %3418 = load double, ptr %54, align 8, !tbaa !11
  %3419 = fmul double %3417, %3418
  %3420 = load double, ptr %41, align 8, !tbaa !11
  %3421 = call double @llvm.fmuladd.f64(double %3419, double %3420, double 1.000000e+00)
  store double %3421, ptr %39, align 8, !tbaa !11
  %3422 = load double, ptr %42, align 8, !tbaa !11
  %3423 = load double, ptr %38, align 8, !tbaa !11
  %3424 = load double, ptr %39, align 8, !tbaa !11
  %3425 = fcmp oge double %3423, %3424
  br i1 %3425, label %3426, label %3428

3426:                                             ; preds = %3416
  %3427 = load double, ptr %38, align 8, !tbaa !11
  br label %3430

3428:                                             ; preds = %3416
  %3429 = load double, ptr %39, align 8, !tbaa !11
  br label %3430

3430:                                             ; preds = %3428, %3426
  %3431 = phi double [ %3427, %3426 ], [ %3429, %3428 ]
  %3432 = call double @sqrt(double noundef %3431) #5
  %3433 = fmul double %3422, %3432
  %3434 = load ptr, ptr %22, align 8, !tbaa !5
  %3435 = load i32, ptr %51, align 4, !tbaa !9
  %3436 = sext i32 %3435 to i64
  %3437 = getelementptr inbounds double, ptr %3434, i64 %3436
  store double %3433, ptr %3437, align 8, !tbaa !11
  store double 0.000000e+00, ptr %38, align 8, !tbaa !11
  %3438 = load double, ptr %52, align 8, !tbaa !11
  %3439 = load double, ptr %55, align 8, !tbaa !11
  %3440 = fmul double %3438, %3439
  %3441 = load double, ptr %41, align 8, !tbaa !11
  %3442 = fneg double %3440
  %3443 = call double @llvm.fmuladd.f64(double %3442, double %3441, double 1.000000e+00)
  store double %3443, ptr %39, align 8, !tbaa !11
  %3444 = load double, ptr %38, align 8, !tbaa !11
  %3445 = load double, ptr %39, align 8, !tbaa !11
  %3446 = fcmp oge double %3444, %3445
  br i1 %3446, label %3447, label %3449

3447:                                             ; preds = %3430
  %3448 = load double, ptr %38, align 8, !tbaa !11
  br label %3451

3449:                                             ; preds = %3430
  %3450 = load double, ptr %39, align 8, !tbaa !11
  br label %3451

3451:                                             ; preds = %3449, %3447
  %3452 = phi double [ %3448, %3447 ], [ %3450, %3449 ]
  %3453 = call double @sqrt(double noundef %3452) #5
  %3454 = load double, ptr %40, align 8, !tbaa !11
  %3455 = fmul double %3454, %3453
  store double %3455, ptr %40, align 8, !tbaa !11
  %3456 = load double, ptr %79, align 8, !tbaa !11
  store double %3456, ptr %38, align 8, !tbaa !11
  %3457 = load double, ptr %52, align 8, !tbaa !11
  %3458 = fcmp oge double %3457, 0.000000e+00
  br i1 %3458, label %3459, label %3461

3459:                                             ; preds = %3451
  %3460 = load double, ptr %52, align 8, !tbaa !11
  br label %3464

3461:                                             ; preds = %3451
  %3462 = load double, ptr %52, align 8, !tbaa !11
  %3463 = fneg double %3462
  br label %3464

3464:                                             ; preds = %3461, %3459
  %3465 = phi double [ %3460, %3459 ], [ %3463, %3461 ]
  store double %3465, ptr %39, align 8, !tbaa !11
  %3466 = load double, ptr %38, align 8, !tbaa !11
  %3467 = load double, ptr %39, align 8, !tbaa !11
  %3468 = fcmp oge double %3466, %3467
  br i1 %3468, label %3469, label %3471

3469:                                             ; preds = %3464
  %3470 = load double, ptr %38, align 8, !tbaa !11
  br label %3473

3471:                                             ; preds = %3464
  %3472 = load double, ptr %39, align 8, !tbaa !11
  br label %3473

3473:                                             ; preds = %3471, %3469
  %3474 = phi double [ %3470, %3469 ], [ %3472, %3471 ]
  store double %3474, ptr %79, align 8, !tbaa !11
  br label %4080

3475:                                             ; preds = %3346
  %3476 = load double, ptr %41, align 8, !tbaa !11
  %3477 = fcmp oge double %3476, 0.000000e+00
  br i1 %3477, label %3478, label %3488

3478:                                             ; preds = %3475
  %3479 = load double, ptr @c_b18, align 8, !tbaa !11
  %3480 = fcmp oge double %3479, 0.000000e+00
  br i1 %3480, label %3481, label %3483

3481:                                             ; preds = %3478
  %3482 = load double, ptr @c_b18, align 8, !tbaa !11
  br label %3486

3483:                                             ; preds = %3478
  %3484 = load double, ptr @c_b18, align 8, !tbaa !11
  %3485 = fneg double %3484
  br label %3486

3486:                                             ; preds = %3483, %3481
  %3487 = phi double [ %3482, %3481 ], [ %3485, %3483 ]
  br label %3499

3488:                                             ; preds = %3475
  %3489 = load double, ptr @c_b18, align 8, !tbaa !11
  %3490 = fcmp oge double %3489, 0.000000e+00
  br i1 %3490, label %3491, label %3493

3491:                                             ; preds = %3488
  %3492 = load double, ptr @c_b18, align 8, !tbaa !11
  br label %3496

3493:                                             ; preds = %3488
  %3494 = load double, ptr @c_b18, align 8, !tbaa !11
  %3495 = fneg double %3494
  br label %3496

3496:                                             ; preds = %3493, %3491
  %3497 = phi double [ %3492, %3491 ], [ %3495, %3493 ]
  %3498 = fneg double %3497
  br label %3499

3499:                                             ; preds = %3496, %3486
  %3500 = phi double [ %3487, %3486 ], [ %3498, %3496 ]
  %3501 = fneg double %3500
  store double %3501, ptr %78, align 8, !tbaa !11
  %3502 = load double, ptr %42, align 8, !tbaa !11
  %3503 = load double, ptr %47, align 8, !tbaa !11
  %3504 = fcmp ogt double %3502, %3503
  br i1 %3504, label %3505, label %3508

3505:                                             ; preds = %3499
  %3506 = load double, ptr %78, align 8, !tbaa !11
  %3507 = fneg double %3506
  store double %3507, ptr %78, align 8, !tbaa !11
  br label %3508

3508:                                             ; preds = %3505, %3499
  %3509 = load double, ptr %56, align 8, !tbaa !11
  %3510 = load double, ptr %78, align 8, !tbaa !11
  %3511 = load double, ptr %56, align 8, !tbaa !11
  %3512 = load double, ptr %56, align 8, !tbaa !11
  %3513 = call double @llvm.fmuladd.f64(double %3511, double %3512, double 1.000000e+00)
  %3514 = call double @sqrt(double noundef %3513) #5
  %3515 = call double @llvm.fmuladd.f64(double %3510, double %3514, double %3509)
  %3516 = fdiv double 1.000000e+00, %3515
  store double %3516, ptr %52, align 8, !tbaa !11
  %3517 = load double, ptr %52, align 8, !tbaa !11
  %3518 = load double, ptr %52, align 8, !tbaa !11
  %3519 = call double @llvm.fmuladd.f64(double %3517, double %3518, double 1.000000e+00)
  %3520 = fdiv double 1.000000e+00, %3519
  %3521 = call double @sqrt(double noundef %3520) #5
  store double %3521, ptr %72, align 8, !tbaa !11
  %3522 = load double, ptr %52, align 8, !tbaa !11
  %3523 = load double, ptr %72, align 8, !tbaa !11
  %3524 = fmul double %3522, %3523
  store double %3524, ptr %73, align 8, !tbaa !11
  %3525 = load double, ptr %79, align 8, !tbaa !11
  store double %3525, ptr %38, align 8, !tbaa !11
  %3526 = load double, ptr %73, align 8, !tbaa !11
  %3527 = fcmp oge double %3526, 0.000000e+00
  br i1 %3527, label %3528, label %3530

3528:                                             ; preds = %3508
  %3529 = load double, ptr %73, align 8, !tbaa !11
  br label %3533

3530:                                             ; preds = %3508
  %3531 = load double, ptr %73, align 8, !tbaa !11
  %3532 = fneg double %3531
  br label %3533

3533:                                             ; preds = %3530, %3528
  %3534 = phi double [ %3529, %3528 ], [ %3532, %3530 ]
  store double %3534, ptr %39, align 8, !tbaa !11
  %3535 = load double, ptr %38, align 8, !tbaa !11
  %3536 = load double, ptr %39, align 8, !tbaa !11
  %3537 = fcmp oge double %3535, %3536
  br i1 %3537, label %3538, label %3540

3538:                                             ; preds = %3533
  %3539 = load double, ptr %38, align 8, !tbaa !11
  br label %3542

3540:                                             ; preds = %3533
  %3541 = load double, ptr %39, align 8, !tbaa !11
  br label %3542

3542:                                             ; preds = %3540, %3538
  %3543 = phi double [ %3539, %3538 ], [ %3541, %3540 ]
  store double %3543, ptr %79, align 8, !tbaa !11
  store double 0.000000e+00, ptr %38, align 8, !tbaa !11
  %3544 = load double, ptr %52, align 8, !tbaa !11
  %3545 = load double, ptr %54, align 8, !tbaa !11
  %3546 = fmul double %3544, %3545
  %3547 = load double, ptr %41, align 8, !tbaa !11
  %3548 = call double @llvm.fmuladd.f64(double %3546, double %3547, double 1.000000e+00)
  store double %3548, ptr %39, align 8, !tbaa !11
  %3549 = load double, ptr %42, align 8, !tbaa !11
  %3550 = load double, ptr %38, align 8, !tbaa !11
  %3551 = load double, ptr %39, align 8, !tbaa !11
  %3552 = fcmp oge double %3550, %3551
  br i1 %3552, label %3553, label %3555

3553:                                             ; preds = %3542
  %3554 = load double, ptr %38, align 8, !tbaa !11
  br label %3557

3555:                                             ; preds = %3542
  %3556 = load double, ptr %39, align 8, !tbaa !11
  br label %3557

3557:                                             ; preds = %3555, %3553
  %3558 = phi double [ %3554, %3553 ], [ %3556, %3555 ]
  %3559 = call double @sqrt(double noundef %3558) #5
  %3560 = fmul double %3549, %3559
  %3561 = load ptr, ptr %22, align 8, !tbaa !5
  %3562 = load i32, ptr %51, align 4, !tbaa !9
  %3563 = sext i32 %3562 to i64
  %3564 = getelementptr inbounds double, ptr %3561, i64 %3563
  store double %3560, ptr %3564, align 8, !tbaa !11
  store double 0.000000e+00, ptr %38, align 8, !tbaa !11
  %3565 = load double, ptr %52, align 8, !tbaa !11
  %3566 = load double, ptr %55, align 8, !tbaa !11
  %3567 = fmul double %3565, %3566
  %3568 = load double, ptr %41, align 8, !tbaa !11
  %3569 = fneg double %3567
  %3570 = call double @llvm.fmuladd.f64(double %3569, double %3568, double 1.000000e+00)
  store double %3570, ptr %39, align 8, !tbaa !11
  %3571 = load double, ptr %38, align 8, !tbaa !11
  %3572 = load double, ptr %39, align 8, !tbaa !11
  %3573 = fcmp oge double %3571, %3572
  br i1 %3573, label %3574, label %3576

3574:                                             ; preds = %3557
  %3575 = load double, ptr %38, align 8, !tbaa !11
  br label %3578

3576:                                             ; preds = %3557
  %3577 = load double, ptr %39, align 8, !tbaa !11
  br label %3578

3578:                                             ; preds = %3576, %3574
  %3579 = phi double [ %3575, %3574 ], [ %3577, %3576 ]
  %3580 = call double @sqrt(double noundef %3579) #5
  %3581 = load double, ptr %40, align 8, !tbaa !11
  %3582 = fmul double %3581, %3580
  store double %3582, ptr %40, align 8, !tbaa !11
  %3583 = load ptr, ptr %26, align 8, !tbaa !5
  %3584 = load i32, ptr %50, align 4, !tbaa !9
  %3585 = sext i32 %3584 to i64
  %3586 = getelementptr inbounds double, ptr %3583, i64 %3585
  %3587 = load double, ptr %3586, align 8, !tbaa !11
  %3588 = load ptr, ptr %26, align 8, !tbaa !5
  %3589 = load i32, ptr %51, align 4, !tbaa !9
  %3590 = sext i32 %3589 to i64
  %3591 = getelementptr inbounds double, ptr %3588, i64 %3590
  %3592 = load double, ptr %3591, align 8, !tbaa !11
  %3593 = fdiv double %3587, %3592
  store double %3593, ptr %54, align 8, !tbaa !11
  %3594 = load ptr, ptr %26, align 8, !tbaa !5
  %3595 = load i32, ptr %51, align 4, !tbaa !9
  %3596 = sext i32 %3595 to i64
  %3597 = getelementptr inbounds double, ptr %3594, i64 %3596
  %3598 = load double, ptr %3597, align 8, !tbaa !11
  %3599 = load ptr, ptr %26, align 8, !tbaa !5
  %3600 = load i32, ptr %50, align 4, !tbaa !9
  %3601 = sext i32 %3600 to i64
  %3602 = getelementptr inbounds double, ptr %3599, i64 %3601
  %3603 = load double, ptr %3602, align 8, !tbaa !11
  %3604 = fdiv double %3598, %3603
  store double %3604, ptr %55, align 8, !tbaa !11
  %3605 = load ptr, ptr %26, align 8, !tbaa !5
  %3606 = load i32, ptr %50, align 4, !tbaa !9
  %3607 = sext i32 %3606 to i64
  %3608 = getelementptr inbounds double, ptr %3605, i64 %3607
  %3609 = load double, ptr %3608, align 8, !tbaa !11
  %3610 = fcmp oge double %3609, 1.000000e+00
  br i1 %3610, label %3611, label %3773

3611:                                             ; preds = %3578
  %3612 = load ptr, ptr %26, align 8, !tbaa !5
  %3613 = load i32, ptr %51, align 4, !tbaa !9
  %3614 = sext i32 %3613 to i64
  %3615 = getelementptr inbounds double, ptr %3612, i64 %3614
  %3616 = load double, ptr %3615, align 8, !tbaa !11
  %3617 = fcmp oge double %3616, 1.000000e+00
  br i1 %3617, label %3618, label %3677

3618:                                             ; preds = %3611
  %3619 = load double, ptr %52, align 8, !tbaa !11
  %3620 = load double, ptr %54, align 8, !tbaa !11
  %3621 = fmul double %3619, %3620
  %3622 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 2
  store double %3621, ptr %3622, align 16, !tbaa !11
  %3623 = load double, ptr %52, align 8, !tbaa !11
  %3624 = fneg double %3623
  %3625 = load double, ptr %55, align 8, !tbaa !11
  %3626 = fmul double %3624, %3625
  %3627 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 3
  store double %3626, ptr %3627, align 8, !tbaa !11
  %3628 = load double, ptr %72, align 8, !tbaa !11
  %3629 = load ptr, ptr %26, align 8, !tbaa !5
  %3630 = load i32, ptr %50, align 4, !tbaa !9
  %3631 = sext i32 %3630 to i64
  %3632 = getelementptr inbounds double, ptr %3629, i64 %3631
  %3633 = load double, ptr %3632, align 8, !tbaa !11
  %3634 = fmul double %3633, %3628
  store double %3634, ptr %3632, align 8, !tbaa !11
  %3635 = load double, ptr %72, align 8, !tbaa !11
  %3636 = load ptr, ptr %26, align 8, !tbaa !5
  %3637 = load i32, ptr %51, align 4, !tbaa !9
  %3638 = sext i32 %3637 to i64
  %3639 = getelementptr inbounds double, ptr %3636, i64 %3638
  %3640 = load double, ptr %3639, align 8, !tbaa !11
  %3641 = fmul double %3640, %3635
  store double %3641, ptr %3639, align 8, !tbaa !11
  %3642 = load ptr, ptr %18, align 8, !tbaa !5
  %3643 = load ptr, ptr %20, align 8, !tbaa !5
  %3644 = load i32, ptr %50, align 4, !tbaa !9
  %3645 = load i32, ptr %29, align 4, !tbaa !9
  %3646 = mul nsw i32 %3644, %3645
  %3647 = add nsw i32 %3646, 1
  %3648 = sext i32 %3647 to i64
  %3649 = getelementptr inbounds double, ptr %3643, i64 %3648
  %3650 = load ptr, ptr %20, align 8, !tbaa !5
  %3651 = load i32, ptr %51, align 4, !tbaa !9
  %3652 = load i32, ptr %29, align 4, !tbaa !9
  %3653 = mul nsw i32 %3651, %3652
  %3654 = add nsw i32 %3653, 1
  %3655 = sext i32 %3654 to i64
  %3656 = getelementptr inbounds double, ptr %3650, i64 %3655
  %3657 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 0
  call void @drotm_(ptr noundef %3642, ptr noundef %3649, ptr noundef @c__1, ptr noundef %3656, ptr noundef @c__1, ptr noundef %3657)
  %3658 = load i32, ptr %63, align 4, !tbaa !9
  %3659 = icmp ne i32 %3658, 0
  br i1 %3659, label %3660, label %3676

3660:                                             ; preds = %3618
  %3661 = load ptr, ptr %24, align 8, !tbaa !5
  %3662 = load i32, ptr %50, align 4, !tbaa !9
  %3663 = load i32, ptr %31, align 4, !tbaa !9
  %3664 = mul nsw i32 %3662, %3663
  %3665 = add nsw i32 %3664, 1
  %3666 = sext i32 %3665 to i64
  %3667 = getelementptr inbounds double, ptr %3661, i64 %3666
  %3668 = load ptr, ptr %24, align 8, !tbaa !5
  %3669 = load i32, ptr %51, align 4, !tbaa !9
  %3670 = load i32, ptr %31, align 4, !tbaa !9
  %3671 = mul nsw i32 %3669, %3670
  %3672 = add nsw i32 %3671, 1
  %3673 = sext i32 %3672 to i64
  %3674 = getelementptr inbounds double, ptr %3668, i64 %3673
  %3675 = getelementptr inbounds [5 x double], ptr %60, i64 0, i64 0
  call void @drotm_(ptr noundef %95, ptr noundef %3667, ptr noundef @c__1, ptr noundef %3674, ptr noundef @c__1, ptr noundef %3675)
  br label %3676

3676:                                             ; preds = %3660, %3618
  br label %3772

3677:                                             ; preds = %3611
  %3678 = load double, ptr %52, align 8, !tbaa !11
  %3679 = fneg double %3678
  %3680 = load double, ptr %55, align 8, !tbaa !11
  %3681 = fmul double %3679, %3680
  store double %3681, ptr %38, align 8, !tbaa !11
  %3682 = load ptr, ptr %18, align 8, !tbaa !5
  %3683 = load ptr, ptr %20, align 8, !tbaa !5
  %3684 = load i32, ptr %51, align 4, !tbaa !9
  %3685 = load i32, ptr %29, align 4, !tbaa !9
  %3686 = mul nsw i32 %3684, %3685
  %3687 = add nsw i32 %3686, 1
  %3688 = sext i32 %3687 to i64
  %3689 = getelementptr inbounds double, ptr %3683, i64 %3688
  %3690 = load ptr, ptr %20, align 8, !tbaa !5
  %3691 = load i32, ptr %50, align 4, !tbaa !9
  %3692 = load i32, ptr %29, align 4, !tbaa !9
  %3693 = mul nsw i32 %3691, %3692
  %3694 = add nsw i32 %3693, 1
  %3695 = sext i32 %3694 to i64
  %3696 = getelementptr inbounds double, ptr %3690, i64 %3695
  call void @daxpy_(ptr noundef %3682, ptr noundef %38, ptr noundef %3689, ptr noundef @c__1, ptr noundef %3696, ptr noundef @c__1)
  %3697 = load double, ptr %72, align 8, !tbaa !11
  %3698 = load double, ptr %73, align 8, !tbaa !11
  %3699 = fmul double %3697, %3698
  %3700 = load double, ptr %54, align 8, !tbaa !11
  %3701 = fmul double %3699, %3700
  store double %3701, ptr %38, align 8, !tbaa !11
  %3702 = load ptr, ptr %18, align 8, !tbaa !5
  %3703 = load ptr, ptr %20, align 8, !tbaa !5
  %3704 = load i32, ptr %50, align 4, !tbaa !9
  %3705 = load i32, ptr %29, align 4, !tbaa !9
  %3706 = mul nsw i32 %3704, %3705
  %3707 = add nsw i32 %3706, 1
  %3708 = sext i32 %3707 to i64
  %3709 = getelementptr inbounds double, ptr %3703, i64 %3708
  %3710 = load ptr, ptr %20, align 8, !tbaa !5
  %3711 = load i32, ptr %51, align 4, !tbaa !9
  %3712 = load i32, ptr %29, align 4, !tbaa !9
  %3713 = mul nsw i32 %3711, %3712
  %3714 = add nsw i32 %3713, 1
  %3715 = sext i32 %3714 to i64
  %3716 = getelementptr inbounds double, ptr %3710, i64 %3715
  call void @daxpy_(ptr noundef %3702, ptr noundef %38, ptr noundef %3709, ptr noundef @c__1, ptr noundef %3716, ptr noundef @c__1)
  %3717 = load i32, ptr %63, align 4, !tbaa !9
  %3718 = icmp ne i32 %3717, 0
  br i1 %3718, label %3719, label %3757

3719:                                             ; preds = %3677
  %3720 = load double, ptr %52, align 8, !tbaa !11
  %3721 = fneg double %3720
  %3722 = load double, ptr %55, align 8, !tbaa !11
  %3723 = fmul double %3721, %3722
  store double %3723, ptr %38, align 8, !tbaa !11
  %3724 = load ptr, ptr %24, align 8, !tbaa !5
  %3725 = load i32, ptr %51, align 4, !tbaa !9
  %3726 = load i32, ptr %31, align 4, !tbaa !9
  %3727 = mul nsw i32 %3725, %3726
  %3728 = add nsw i32 %3727, 1
  %3729 = sext i32 %3728 to i64
  %3730 = getelementptr inbounds double, ptr %3724, i64 %3729
  %3731 = load ptr, ptr %24, align 8, !tbaa !5
  %3732 = load i32, ptr %50, align 4, !tbaa !9
  %3733 = load i32, ptr %31, align 4, !tbaa !9
  %3734 = mul nsw i32 %3732, %3733
  %3735 = add nsw i32 %3734, 1
  %3736 = sext i32 %3735 to i64
  %3737 = getelementptr inbounds double, ptr %3731, i64 %3736
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %3730, ptr noundef @c__1, ptr noundef %3737, ptr noundef @c__1)
  %3738 = load double, ptr %72, align 8, !tbaa !11
  %3739 = load double, ptr %73, align 8, !tbaa !11
  %3740 = fmul double %3738, %3739
  %3741 = load double, ptr %54, align 8, !tbaa !11
  %3742 = fmul double %3740, %3741
  store double %3742, ptr %38, align 8, !tbaa !11
  %3743 = load ptr, ptr %24, align 8, !tbaa !5
  %3744 = load i32, ptr %50, align 4, !tbaa !9
  %3745 = load i32, ptr %31, align 4, !tbaa !9
  %3746 = mul nsw i32 %3744, %3745
  %3747 = add nsw i32 %3746, 1
  %3748 = sext i32 %3747 to i64
  %3749 = getelementptr inbounds double, ptr %3743, i64 %3748
  %3750 = load ptr, ptr %24, align 8, !tbaa !5
  %3751 = load i32, ptr %51, align 4, !tbaa !9
  %3752 = load i32, ptr %31, align 4, !tbaa !9
  %3753 = mul nsw i32 %3751, %3752
  %3754 = add nsw i32 %3753, 1
  %3755 = sext i32 %3754 to i64
  %3756 = getelementptr inbounds double, ptr %3750, i64 %3755
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %3749, ptr noundef @c__1, ptr noundef %3756, ptr noundef @c__1)
  br label %3757

3757:                                             ; preds = %3719, %3677
  %3758 = load double, ptr %72, align 8, !tbaa !11
  %3759 = load ptr, ptr %26, align 8, !tbaa !5
  %3760 = load i32, ptr %50, align 4, !tbaa !9
  %3761 = sext i32 %3760 to i64
  %3762 = getelementptr inbounds double, ptr %3759, i64 %3761
  %3763 = load double, ptr %3762, align 8, !tbaa !11
  %3764 = fmul double %3763, %3758
  store double %3764, ptr %3762, align 8, !tbaa !11
  %3765 = load double, ptr %72, align 8, !tbaa !11
  %3766 = load ptr, ptr %26, align 8, !tbaa !5
  %3767 = load i32, ptr %51, align 4, !tbaa !9
  %3768 = sext i32 %3767 to i64
  %3769 = getelementptr inbounds double, ptr %3766, i64 %3768
  %3770 = load double, ptr %3769, align 8, !tbaa !11
  %3771 = fdiv double %3770, %3765
  store double %3771, ptr %3769, align 8, !tbaa !11
  br label %3772

3772:                                             ; preds = %3757, %3676
  br label %4079

3773:                                             ; preds = %3578
  %3774 = load ptr, ptr %26, align 8, !tbaa !5
  %3775 = load i32, ptr %51, align 4, !tbaa !9
  %3776 = sext i32 %3775 to i64
  %3777 = getelementptr inbounds double, ptr %3774, i64 %3776
  %3778 = load double, ptr %3777, align 8, !tbaa !11
  %3779 = fcmp oge double %3778, 1.000000e+00
  br i1 %3779, label %3780, label %3875

3780:                                             ; preds = %3773
  %3781 = load double, ptr %52, align 8, !tbaa !11
  %3782 = load double, ptr %54, align 8, !tbaa !11
  %3783 = fmul double %3781, %3782
  store double %3783, ptr %38, align 8, !tbaa !11
  %3784 = load ptr, ptr %18, align 8, !tbaa !5
  %3785 = load ptr, ptr %20, align 8, !tbaa !5
  %3786 = load i32, ptr %50, align 4, !tbaa !9
  %3787 = load i32, ptr %29, align 4, !tbaa !9
  %3788 = mul nsw i32 %3786, %3787
  %3789 = add nsw i32 %3788, 1
  %3790 = sext i32 %3789 to i64
  %3791 = getelementptr inbounds double, ptr %3785, i64 %3790
  %3792 = load ptr, ptr %20, align 8, !tbaa !5
  %3793 = load i32, ptr %51, align 4, !tbaa !9
  %3794 = load i32, ptr %29, align 4, !tbaa !9
  %3795 = mul nsw i32 %3793, %3794
  %3796 = add nsw i32 %3795, 1
  %3797 = sext i32 %3796 to i64
  %3798 = getelementptr inbounds double, ptr %3792, i64 %3797
  call void @daxpy_(ptr noundef %3784, ptr noundef %38, ptr noundef %3791, ptr noundef @c__1, ptr noundef %3798, ptr noundef @c__1)
  %3799 = load double, ptr %72, align 8, !tbaa !11
  %3800 = fneg double %3799
  %3801 = load double, ptr %73, align 8, !tbaa !11
  %3802 = fmul double %3800, %3801
  %3803 = load double, ptr %55, align 8, !tbaa !11
  %3804 = fmul double %3802, %3803
  store double %3804, ptr %38, align 8, !tbaa !11
  %3805 = load ptr, ptr %18, align 8, !tbaa !5
  %3806 = load ptr, ptr %20, align 8, !tbaa !5
  %3807 = load i32, ptr %51, align 4, !tbaa !9
  %3808 = load i32, ptr %29, align 4, !tbaa !9
  %3809 = mul nsw i32 %3807, %3808
  %3810 = add nsw i32 %3809, 1
  %3811 = sext i32 %3810 to i64
  %3812 = getelementptr inbounds double, ptr %3806, i64 %3811
  %3813 = load ptr, ptr %20, align 8, !tbaa !5
  %3814 = load i32, ptr %50, align 4, !tbaa !9
  %3815 = load i32, ptr %29, align 4, !tbaa !9
  %3816 = mul nsw i32 %3814, %3815
  %3817 = add nsw i32 %3816, 1
  %3818 = sext i32 %3817 to i64
  %3819 = getelementptr inbounds double, ptr %3813, i64 %3818
  call void @daxpy_(ptr noundef %3805, ptr noundef %38, ptr noundef %3812, ptr noundef @c__1, ptr noundef %3819, ptr noundef @c__1)
  %3820 = load i32, ptr %63, align 4, !tbaa !9
  %3821 = icmp ne i32 %3820, 0
  br i1 %3821, label %3822, label %3860

3822:                                             ; preds = %3780
  %3823 = load double, ptr %52, align 8, !tbaa !11
  %3824 = load double, ptr %54, align 8, !tbaa !11
  %3825 = fmul double %3823, %3824
  store double %3825, ptr %38, align 8, !tbaa !11
  %3826 = load ptr, ptr %24, align 8, !tbaa !5
  %3827 = load i32, ptr %50, align 4, !tbaa !9
  %3828 = load i32, ptr %31, align 4, !tbaa !9
  %3829 = mul nsw i32 %3827, %3828
  %3830 = add nsw i32 %3829, 1
  %3831 = sext i32 %3830 to i64
  %3832 = getelementptr inbounds double, ptr %3826, i64 %3831
  %3833 = load ptr, ptr %24, align 8, !tbaa !5
  %3834 = load i32, ptr %51, align 4, !tbaa !9
  %3835 = load i32, ptr %31, align 4, !tbaa !9
  %3836 = mul nsw i32 %3834, %3835
  %3837 = add nsw i32 %3836, 1
  %3838 = sext i32 %3837 to i64
  %3839 = getelementptr inbounds double, ptr %3833, i64 %3838
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %3832, ptr noundef @c__1, ptr noundef %3839, ptr noundef @c__1)
  %3840 = load double, ptr %72, align 8, !tbaa !11
  %3841 = fneg double %3840
  %3842 = load double, ptr %73, align 8, !tbaa !11
  %3843 = fmul double %3841, %3842
  %3844 = load double, ptr %55, align 8, !tbaa !11
  %3845 = fmul double %3843, %3844
  store double %3845, ptr %38, align 8, !tbaa !11
  %3846 = load ptr, ptr %24, align 8, !tbaa !5
  %3847 = load i32, ptr %51, align 4, !tbaa !9
  %3848 = load i32, ptr %31, align 4, !tbaa !9
  %3849 = mul nsw i32 %3847, %3848
  %3850 = add nsw i32 %3849, 1
  %3851 = sext i32 %3850 to i64
  %3852 = getelementptr inbounds double, ptr %3846, i64 %3851
  %3853 = load ptr, ptr %24, align 8, !tbaa !5
  %3854 = load i32, ptr %50, align 4, !tbaa !9
  %3855 = load i32, ptr %31, align 4, !tbaa !9
  %3856 = mul nsw i32 %3854, %3855
  %3857 = add nsw i32 %3856, 1
  %3858 = sext i32 %3857 to i64
  %3859 = getelementptr inbounds double, ptr %3853, i64 %3858
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %3852, ptr noundef @c__1, ptr noundef %3859, ptr noundef @c__1)
  br label %3860

3860:                                             ; preds = %3822, %3780
  %3861 = load double, ptr %72, align 8, !tbaa !11
  %3862 = load ptr, ptr %26, align 8, !tbaa !5
  %3863 = load i32, ptr %50, align 4, !tbaa !9
  %3864 = sext i32 %3863 to i64
  %3865 = getelementptr inbounds double, ptr %3862, i64 %3864
  %3866 = load double, ptr %3865, align 8, !tbaa !11
  %3867 = fdiv double %3866, %3861
  store double %3867, ptr %3865, align 8, !tbaa !11
  %3868 = load double, ptr %72, align 8, !tbaa !11
  %3869 = load ptr, ptr %26, align 8, !tbaa !5
  %3870 = load i32, ptr %51, align 4, !tbaa !9
  %3871 = sext i32 %3870 to i64
  %3872 = getelementptr inbounds double, ptr %3869, i64 %3871
  %3873 = load double, ptr %3872, align 8, !tbaa !11
  %3874 = fmul double %3873, %3868
  store double %3874, ptr %3872, align 8, !tbaa !11
  br label %4078

3875:                                             ; preds = %3773
  %3876 = load ptr, ptr %26, align 8, !tbaa !5
  %3877 = load i32, ptr %50, align 4, !tbaa !9
  %3878 = sext i32 %3877 to i64
  %3879 = getelementptr inbounds double, ptr %3876, i64 %3878
  %3880 = load double, ptr %3879, align 8, !tbaa !11
  %3881 = load ptr, ptr %26, align 8, !tbaa !5
  %3882 = load i32, ptr %51, align 4, !tbaa !9
  %3883 = sext i32 %3882 to i64
  %3884 = getelementptr inbounds double, ptr %3881, i64 %3883
  %3885 = load double, ptr %3884, align 8, !tbaa !11
  %3886 = fcmp oge double %3880, %3885
  br i1 %3886, label %3887, label %3982

3887:                                             ; preds = %3875
  %3888 = load double, ptr %52, align 8, !tbaa !11
  %3889 = fneg double %3888
  %3890 = load double, ptr %55, align 8, !tbaa !11
  %3891 = fmul double %3889, %3890
  store double %3891, ptr %38, align 8, !tbaa !11
  %3892 = load ptr, ptr %18, align 8, !tbaa !5
  %3893 = load ptr, ptr %20, align 8, !tbaa !5
  %3894 = load i32, ptr %51, align 4, !tbaa !9
  %3895 = load i32, ptr %29, align 4, !tbaa !9
  %3896 = mul nsw i32 %3894, %3895
  %3897 = add nsw i32 %3896, 1
  %3898 = sext i32 %3897 to i64
  %3899 = getelementptr inbounds double, ptr %3893, i64 %3898
  %3900 = load ptr, ptr %20, align 8, !tbaa !5
  %3901 = load i32, ptr %50, align 4, !tbaa !9
  %3902 = load i32, ptr %29, align 4, !tbaa !9
  %3903 = mul nsw i32 %3901, %3902
  %3904 = add nsw i32 %3903, 1
  %3905 = sext i32 %3904 to i64
  %3906 = getelementptr inbounds double, ptr %3900, i64 %3905
  call void @daxpy_(ptr noundef %3892, ptr noundef %38, ptr noundef %3899, ptr noundef @c__1, ptr noundef %3906, ptr noundef @c__1)
  %3907 = load double, ptr %72, align 8, !tbaa !11
  %3908 = load double, ptr %73, align 8, !tbaa !11
  %3909 = fmul double %3907, %3908
  %3910 = load double, ptr %54, align 8, !tbaa !11
  %3911 = fmul double %3909, %3910
  store double %3911, ptr %38, align 8, !tbaa !11
  %3912 = load ptr, ptr %18, align 8, !tbaa !5
  %3913 = load ptr, ptr %20, align 8, !tbaa !5
  %3914 = load i32, ptr %50, align 4, !tbaa !9
  %3915 = load i32, ptr %29, align 4, !tbaa !9
  %3916 = mul nsw i32 %3914, %3915
  %3917 = add nsw i32 %3916, 1
  %3918 = sext i32 %3917 to i64
  %3919 = getelementptr inbounds double, ptr %3913, i64 %3918
  %3920 = load ptr, ptr %20, align 8, !tbaa !5
  %3921 = load i32, ptr %51, align 4, !tbaa !9
  %3922 = load i32, ptr %29, align 4, !tbaa !9
  %3923 = mul nsw i32 %3921, %3922
  %3924 = add nsw i32 %3923, 1
  %3925 = sext i32 %3924 to i64
  %3926 = getelementptr inbounds double, ptr %3920, i64 %3925
  call void @daxpy_(ptr noundef %3912, ptr noundef %38, ptr noundef %3919, ptr noundef @c__1, ptr noundef %3926, ptr noundef @c__1)
  %3927 = load double, ptr %72, align 8, !tbaa !11
  %3928 = load ptr, ptr %26, align 8, !tbaa !5
  %3929 = load i32, ptr %50, align 4, !tbaa !9
  %3930 = sext i32 %3929 to i64
  %3931 = getelementptr inbounds double, ptr %3928, i64 %3930
  %3932 = load double, ptr %3931, align 8, !tbaa !11
  %3933 = fmul double %3932, %3927
  store double %3933, ptr %3931, align 8, !tbaa !11
  %3934 = load double, ptr %72, align 8, !tbaa !11
  %3935 = load ptr, ptr %26, align 8, !tbaa !5
  %3936 = load i32, ptr %51, align 4, !tbaa !9
  %3937 = sext i32 %3936 to i64
  %3938 = getelementptr inbounds double, ptr %3935, i64 %3937
  %3939 = load double, ptr %3938, align 8, !tbaa !11
  %3940 = fdiv double %3939, %3934
  store double %3940, ptr %3938, align 8, !tbaa !11
  %3941 = load i32, ptr %63, align 4, !tbaa !9
  %3942 = icmp ne i32 %3941, 0
  br i1 %3942, label %3943, label %3981

3943:                                             ; preds = %3887
  %3944 = load double, ptr %52, align 8, !tbaa !11
  %3945 = fneg double %3944
  %3946 = load double, ptr %55, align 8, !tbaa !11
  %3947 = fmul double %3945, %3946
  store double %3947, ptr %38, align 8, !tbaa !11
  %3948 = load ptr, ptr %24, align 8, !tbaa !5
  %3949 = load i32, ptr %51, align 4, !tbaa !9
  %3950 = load i32, ptr %31, align 4, !tbaa !9
  %3951 = mul nsw i32 %3949, %3950
  %3952 = add nsw i32 %3951, 1
  %3953 = sext i32 %3952 to i64
  %3954 = getelementptr inbounds double, ptr %3948, i64 %3953
  %3955 = load ptr, ptr %24, align 8, !tbaa !5
  %3956 = load i32, ptr %50, align 4, !tbaa !9
  %3957 = load i32, ptr %31, align 4, !tbaa !9
  %3958 = mul nsw i32 %3956, %3957
  %3959 = add nsw i32 %3958, 1
  %3960 = sext i32 %3959 to i64
  %3961 = getelementptr inbounds double, ptr %3955, i64 %3960
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %3954, ptr noundef @c__1, ptr noundef %3961, ptr noundef @c__1)
  %3962 = load double, ptr %72, align 8, !tbaa !11
  %3963 = load double, ptr %73, align 8, !tbaa !11
  %3964 = fmul double %3962, %3963
  %3965 = load double, ptr %54, align 8, !tbaa !11
  %3966 = fmul double %3964, %3965
  store double %3966, ptr %38, align 8, !tbaa !11
  %3967 = load ptr, ptr %24, align 8, !tbaa !5
  %3968 = load i32, ptr %50, align 4, !tbaa !9
  %3969 = load i32, ptr %31, align 4, !tbaa !9
  %3970 = mul nsw i32 %3968, %3969
  %3971 = add nsw i32 %3970, 1
  %3972 = sext i32 %3971 to i64
  %3973 = getelementptr inbounds double, ptr %3967, i64 %3972
  %3974 = load ptr, ptr %24, align 8, !tbaa !5
  %3975 = load i32, ptr %51, align 4, !tbaa !9
  %3976 = load i32, ptr %31, align 4, !tbaa !9
  %3977 = mul nsw i32 %3975, %3976
  %3978 = add nsw i32 %3977, 1
  %3979 = sext i32 %3978 to i64
  %3980 = getelementptr inbounds double, ptr %3974, i64 %3979
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %3973, ptr noundef @c__1, ptr noundef %3980, ptr noundef @c__1)
  br label %3981

3981:                                             ; preds = %3943, %3887
  br label %4077

3982:                                             ; preds = %3875
  %3983 = load double, ptr %52, align 8, !tbaa !11
  %3984 = load double, ptr %54, align 8, !tbaa !11
  %3985 = fmul double %3983, %3984
  store double %3985, ptr %38, align 8, !tbaa !11
  %3986 = load ptr, ptr %18, align 8, !tbaa !5
  %3987 = load ptr, ptr %20, align 8, !tbaa !5
  %3988 = load i32, ptr %50, align 4, !tbaa !9
  %3989 = load i32, ptr %29, align 4, !tbaa !9
  %3990 = mul nsw i32 %3988, %3989
  %3991 = add nsw i32 %3990, 1
  %3992 = sext i32 %3991 to i64
  %3993 = getelementptr inbounds double, ptr %3987, i64 %3992
  %3994 = load ptr, ptr %20, align 8, !tbaa !5
  %3995 = load i32, ptr %51, align 4, !tbaa !9
  %3996 = load i32, ptr %29, align 4, !tbaa !9
  %3997 = mul nsw i32 %3995, %3996
  %3998 = add nsw i32 %3997, 1
  %3999 = sext i32 %3998 to i64
  %4000 = getelementptr inbounds double, ptr %3994, i64 %3999
  call void @daxpy_(ptr noundef %3986, ptr noundef %38, ptr noundef %3993, ptr noundef @c__1, ptr noundef %4000, ptr noundef @c__1)
  %4001 = load double, ptr %72, align 8, !tbaa !11
  %4002 = fneg double %4001
  %4003 = load double, ptr %73, align 8, !tbaa !11
  %4004 = fmul double %4002, %4003
  %4005 = load double, ptr %55, align 8, !tbaa !11
  %4006 = fmul double %4004, %4005
  store double %4006, ptr %38, align 8, !tbaa !11
  %4007 = load ptr, ptr %18, align 8, !tbaa !5
  %4008 = load ptr, ptr %20, align 8, !tbaa !5
  %4009 = load i32, ptr %51, align 4, !tbaa !9
  %4010 = load i32, ptr %29, align 4, !tbaa !9
  %4011 = mul nsw i32 %4009, %4010
  %4012 = add nsw i32 %4011, 1
  %4013 = sext i32 %4012 to i64
  %4014 = getelementptr inbounds double, ptr %4008, i64 %4013
  %4015 = load ptr, ptr %20, align 8, !tbaa !5
  %4016 = load i32, ptr %50, align 4, !tbaa !9
  %4017 = load i32, ptr %29, align 4, !tbaa !9
  %4018 = mul nsw i32 %4016, %4017
  %4019 = add nsw i32 %4018, 1
  %4020 = sext i32 %4019 to i64
  %4021 = getelementptr inbounds double, ptr %4015, i64 %4020
  call void @daxpy_(ptr noundef %4007, ptr noundef %38, ptr noundef %4014, ptr noundef @c__1, ptr noundef %4021, ptr noundef @c__1)
  %4022 = load double, ptr %72, align 8, !tbaa !11
  %4023 = load ptr, ptr %26, align 8, !tbaa !5
  %4024 = load i32, ptr %50, align 4, !tbaa !9
  %4025 = sext i32 %4024 to i64
  %4026 = getelementptr inbounds double, ptr %4023, i64 %4025
  %4027 = load double, ptr %4026, align 8, !tbaa !11
  %4028 = fdiv double %4027, %4022
  store double %4028, ptr %4026, align 8, !tbaa !11
  %4029 = load double, ptr %72, align 8, !tbaa !11
  %4030 = load ptr, ptr %26, align 8, !tbaa !5
  %4031 = load i32, ptr %51, align 4, !tbaa !9
  %4032 = sext i32 %4031 to i64
  %4033 = getelementptr inbounds double, ptr %4030, i64 %4032
  %4034 = load double, ptr %4033, align 8, !tbaa !11
  %4035 = fmul double %4034, %4029
  store double %4035, ptr %4033, align 8, !tbaa !11
  %4036 = load i32, ptr %63, align 4, !tbaa !9
  %4037 = icmp ne i32 %4036, 0
  br i1 %4037, label %4038, label %4076

4038:                                             ; preds = %3982
  %4039 = load double, ptr %52, align 8, !tbaa !11
  %4040 = load double, ptr %54, align 8, !tbaa !11
  %4041 = fmul double %4039, %4040
  store double %4041, ptr %38, align 8, !tbaa !11
  %4042 = load ptr, ptr %24, align 8, !tbaa !5
  %4043 = load i32, ptr %50, align 4, !tbaa !9
  %4044 = load i32, ptr %31, align 4, !tbaa !9
  %4045 = mul nsw i32 %4043, %4044
  %4046 = add nsw i32 %4045, 1
  %4047 = sext i32 %4046 to i64
  %4048 = getelementptr inbounds double, ptr %4042, i64 %4047
  %4049 = load ptr, ptr %24, align 8, !tbaa !5
  %4050 = load i32, ptr %51, align 4, !tbaa !9
  %4051 = load i32, ptr %31, align 4, !tbaa !9
  %4052 = mul nsw i32 %4050, %4051
  %4053 = add nsw i32 %4052, 1
  %4054 = sext i32 %4053 to i64
  %4055 = getelementptr inbounds double, ptr %4049, i64 %4054
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %4048, ptr noundef @c__1, ptr noundef %4055, ptr noundef @c__1)
  %4056 = load double, ptr %72, align 8, !tbaa !11
  %4057 = fneg double %4056
  %4058 = load double, ptr %73, align 8, !tbaa !11
  %4059 = fmul double %4057, %4058
  %4060 = load double, ptr %55, align 8, !tbaa !11
  %4061 = fmul double %4059, %4060
  store double %4061, ptr %38, align 8, !tbaa !11
  %4062 = load ptr, ptr %24, align 8, !tbaa !5
  %4063 = load i32, ptr %51, align 4, !tbaa !9
  %4064 = load i32, ptr %31, align 4, !tbaa !9
  %4065 = mul nsw i32 %4063, %4064
  %4066 = add nsw i32 %4065, 1
  %4067 = sext i32 %4066 to i64
  %4068 = getelementptr inbounds double, ptr %4062, i64 %4067
  %4069 = load ptr, ptr %24, align 8, !tbaa !5
  %4070 = load i32, ptr %50, align 4, !tbaa !9
  %4071 = load i32, ptr %31, align 4, !tbaa !9
  %4072 = mul nsw i32 %4070, %4071
  %4073 = add nsw i32 %4072, 1
  %4074 = sext i32 %4073 to i64
  %4075 = getelementptr inbounds double, ptr %4069, i64 %4074
  call void @daxpy_(ptr noundef %95, ptr noundef %38, ptr noundef %4068, ptr noundef @c__1, ptr noundef %4075, ptr noundef @c__1)
  br label %4076

4076:                                             ; preds = %4038, %3982
  br label %4077

4077:                                             ; preds = %4076, %3981
  br label %4078

4078:                                             ; preds = %4077, %3860
  br label %4079

4079:                                             ; preds = %4078, %3772
  br label %4080

4080:                                             ; preds = %4079, %3473
  br label %4282

4081:                                             ; preds = %3305
  %4082 = load double, ptr %40, align 8, !tbaa !11
  %4083 = load double, ptr %42, align 8, !tbaa !11
  %4084 = fcmp ogt double %4082, %4083
  br i1 %4084, label %4085, label %4183

4085:                                             ; preds = %4081
  %4086 = load ptr, ptr %18, align 8, !tbaa !5
  %4087 = load ptr, ptr %20, align 8, !tbaa !5
  %4088 = load i32, ptr %50, align 4, !tbaa !9
  %4089 = load i32, ptr %29, align 4, !tbaa !9
  %4090 = mul nsw i32 %4088, %4089
  %4091 = add nsw i32 %4090, 1
  %4092 = sext i32 %4091 to i64
  %4093 = getelementptr inbounds double, ptr %4087, i64 %4092
  %4094 = load ptr, ptr %26, align 8, !tbaa !5
  %4095 = load ptr, ptr %19, align 8, !tbaa !5
  %4096 = load i32, ptr %4095, align 4, !tbaa !9
  %4097 = add nsw i32 %4096, 1
  %4098 = sext i32 %4097 to i64
  %4099 = getelementptr inbounds double, ptr %4094, i64 %4098
  call void @dcopy_(ptr noundef %4086, ptr noundef %4093, ptr noundef @c__1, ptr noundef %4099, ptr noundef @c__1)
  %4100 = load ptr, ptr %18, align 8, !tbaa !5
  %4101 = load ptr, ptr %26, align 8, !tbaa !5
  %4102 = load ptr, ptr %19, align 8, !tbaa !5
  %4103 = load i32, ptr %4102, align 4, !tbaa !9
  %4104 = add nsw i32 %4103, 1
  %4105 = sext i32 %4104 to i64
  %4106 = getelementptr inbounds double, ptr %4101, i64 %4105
  %4107 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %40, ptr noundef @c_b18, ptr noundef %4100, ptr noundef @c__1, ptr noundef %4106, ptr noundef %4107, ptr noundef %44)
  %4108 = load ptr, ptr %18, align 8, !tbaa !5
  %4109 = load ptr, ptr %20, align 8, !tbaa !5
  %4110 = load i32, ptr %51, align 4, !tbaa !9
  %4111 = load i32, ptr %29, align 4, !tbaa !9
  %4112 = mul nsw i32 %4110, %4111
  %4113 = add nsw i32 %4112, 1
  %4114 = sext i32 %4113 to i64
  %4115 = getelementptr inbounds double, ptr %4109, i64 %4114
  %4116 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %42, ptr noundef @c_b18, ptr noundef %4108, ptr noundef @c__1, ptr noundef %4115, ptr noundef %4116, ptr noundef %44)
  %4117 = load double, ptr %41, align 8, !tbaa !11
  %4118 = fneg double %4117
  %4119 = load ptr, ptr %26, align 8, !tbaa !5
  %4120 = load i32, ptr %50, align 4, !tbaa !9
  %4121 = sext i32 %4120 to i64
  %4122 = getelementptr inbounds double, ptr %4119, i64 %4121
  %4123 = load double, ptr %4122, align 8, !tbaa !11
  %4124 = fmul double %4118, %4123
  %4125 = load ptr, ptr %26, align 8, !tbaa !5
  %4126 = load i32, ptr %51, align 4, !tbaa !9
  %4127 = sext i32 %4126 to i64
  %4128 = getelementptr inbounds double, ptr %4125, i64 %4127
  %4129 = load double, ptr %4128, align 8, !tbaa !11
  %4130 = fdiv double %4124, %4129
  store double %4130, ptr %48, align 8, !tbaa !11
  %4131 = load ptr, ptr %18, align 8, !tbaa !5
  %4132 = load ptr, ptr %26, align 8, !tbaa !5
  %4133 = load ptr, ptr %19, align 8, !tbaa !5
  %4134 = load i32, ptr %4133, align 4, !tbaa !9
  %4135 = add nsw i32 %4134, 1
  %4136 = sext i32 %4135 to i64
  %4137 = getelementptr inbounds double, ptr %4132, i64 %4136
  %4138 = load ptr, ptr %20, align 8, !tbaa !5
  %4139 = load i32, ptr %51, align 4, !tbaa !9
  %4140 = load i32, ptr %29, align 4, !tbaa !9
  %4141 = mul nsw i32 %4139, %4140
  %4142 = add nsw i32 %4141, 1
  %4143 = sext i32 %4142 to i64
  %4144 = getelementptr inbounds double, ptr %4138, i64 %4143
  call void @daxpy_(ptr noundef %4131, ptr noundef %48, ptr noundef %4137, ptr noundef @c__1, ptr noundef %4144, ptr noundef @c__1)
  %4145 = load ptr, ptr %18, align 8, !tbaa !5
  %4146 = load ptr, ptr %20, align 8, !tbaa !5
  %4147 = load i32, ptr %51, align 4, !tbaa !9
  %4148 = load i32, ptr %29, align 4, !tbaa !9
  %4149 = mul nsw i32 %4147, %4148
  %4150 = add nsw i32 %4149, 1
  %4151 = sext i32 %4150 to i64
  %4152 = getelementptr inbounds double, ptr %4146, i64 %4151
  %4153 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b18, ptr noundef %42, ptr noundef %4145, ptr noundef @c__1, ptr noundef %4152, ptr noundef %4153, ptr noundef %44)
  store double 0.000000e+00, ptr %38, align 8, !tbaa !11
  %4154 = load double, ptr %41, align 8, !tbaa !11
  %4155 = load double, ptr %41, align 8, !tbaa !11
  %4156 = fneg double %4154
  %4157 = call double @llvm.fmuladd.f64(double %4156, double %4155, double 1.000000e+00)
  store double %4157, ptr %39, align 8, !tbaa !11
  %4158 = load double, ptr %42, align 8, !tbaa !11
  %4159 = load double, ptr %38, align 8, !tbaa !11
  %4160 = load double, ptr %39, align 8, !tbaa !11
  %4161 = fcmp oge double %4159, %4160
  br i1 %4161, label %4162, label %4164

4162:                                             ; preds = %4085
  %4163 = load double, ptr %38, align 8, !tbaa !11
  br label %4166

4164:                                             ; preds = %4085
  %4165 = load double, ptr %39, align 8, !tbaa !11
  br label %4166

4166:                                             ; preds = %4164, %4162
  %4167 = phi double [ %4163, %4162 ], [ %4165, %4164 ]
  %4168 = call double @sqrt(double noundef %4167) #5
  %4169 = fmul double %4158, %4168
  %4170 = load ptr, ptr %22, align 8, !tbaa !5
  %4171 = load i32, ptr %51, align 4, !tbaa !9
  %4172 = sext i32 %4171 to i64
  %4173 = getelementptr inbounds double, ptr %4170, i64 %4172
  store double %4169, ptr %4173, align 8, !tbaa !11
  %4174 = load double, ptr %79, align 8, !tbaa !11
  %4175 = load double, ptr %58, align 8, !tbaa !11
  %4176 = fcmp oge double %4174, %4175
  br i1 %4176, label %4177, label %4179

4177:                                             ; preds = %4166
  %4178 = load double, ptr %79, align 8, !tbaa !11
  br label %4181

4179:                                             ; preds = %4166
  %4180 = load double, ptr %58, align 8, !tbaa !11
  br label %4181

4181:                                             ; preds = %4179, %4177
  %4182 = phi double [ %4178, %4177 ], [ %4180, %4179 ]
  store double %4182, ptr %79, align 8, !tbaa !11
  br label %4281

4183:                                             ; preds = %4081
  %4184 = load ptr, ptr %18, align 8, !tbaa !5
  %4185 = load ptr, ptr %20, align 8, !tbaa !5
  %4186 = load i32, ptr %51, align 4, !tbaa !9
  %4187 = load i32, ptr %29, align 4, !tbaa !9
  %4188 = mul nsw i32 %4186, %4187
  %4189 = add nsw i32 %4188, 1
  %4190 = sext i32 %4189 to i64
  %4191 = getelementptr inbounds double, ptr %4185, i64 %4190
  %4192 = load ptr, ptr %26, align 8, !tbaa !5
  %4193 = load ptr, ptr %19, align 8, !tbaa !5
  %4194 = load i32, ptr %4193, align 4, !tbaa !9
  %4195 = add nsw i32 %4194, 1
  %4196 = sext i32 %4195 to i64
  %4197 = getelementptr inbounds double, ptr %4192, i64 %4196
  call void @dcopy_(ptr noundef %4184, ptr noundef %4191, ptr noundef @c__1, ptr noundef %4197, ptr noundef @c__1)
  %4198 = load ptr, ptr %18, align 8, !tbaa !5
  %4199 = load ptr, ptr %26, align 8, !tbaa !5
  %4200 = load ptr, ptr %19, align 8, !tbaa !5
  %4201 = load i32, ptr %4200, align 4, !tbaa !9
  %4202 = add nsw i32 %4201, 1
  %4203 = sext i32 %4202 to i64
  %4204 = getelementptr inbounds double, ptr %4199, i64 %4203
  %4205 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %42, ptr noundef @c_b18, ptr noundef %4198, ptr noundef @c__1, ptr noundef %4204, ptr noundef %4205, ptr noundef %44)
  %4206 = load ptr, ptr %18, align 8, !tbaa !5
  %4207 = load ptr, ptr %20, align 8, !tbaa !5
  %4208 = load i32, ptr %50, align 4, !tbaa !9
  %4209 = load i32, ptr %29, align 4, !tbaa !9
  %4210 = mul nsw i32 %4208, %4209
  %4211 = add nsw i32 %4210, 1
  %4212 = sext i32 %4211 to i64
  %4213 = getelementptr inbounds double, ptr %4207, i64 %4212
  %4214 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %40, ptr noundef @c_b18, ptr noundef %4206, ptr noundef @c__1, ptr noundef %4213, ptr noundef %4214, ptr noundef %44)
  %4215 = load double, ptr %41, align 8, !tbaa !11
  %4216 = fneg double %4215
  %4217 = load ptr, ptr %26, align 8, !tbaa !5
  %4218 = load i32, ptr %51, align 4, !tbaa !9
  %4219 = sext i32 %4218 to i64
  %4220 = getelementptr inbounds double, ptr %4217, i64 %4219
  %4221 = load double, ptr %4220, align 8, !tbaa !11
  %4222 = fmul double %4216, %4221
  %4223 = load ptr, ptr %26, align 8, !tbaa !5
  %4224 = load i32, ptr %50, align 4, !tbaa !9
  %4225 = sext i32 %4224 to i64
  %4226 = getelementptr inbounds double, ptr %4223, i64 %4225
  %4227 = load double, ptr %4226, align 8, !tbaa !11
  %4228 = fdiv double %4222, %4227
  store double %4228, ptr %48, align 8, !tbaa !11
  %4229 = load ptr, ptr %18, align 8, !tbaa !5
  %4230 = load ptr, ptr %26, align 8, !tbaa !5
  %4231 = load ptr, ptr %19, align 8, !tbaa !5
  %4232 = load i32, ptr %4231, align 4, !tbaa !9
  %4233 = add nsw i32 %4232, 1
  %4234 = sext i32 %4233 to i64
  %4235 = getelementptr inbounds double, ptr %4230, i64 %4234
  %4236 = load ptr, ptr %20, align 8, !tbaa !5
  %4237 = load i32, ptr %50, align 4, !tbaa !9
  %4238 = load i32, ptr %29, align 4, !tbaa !9
  %4239 = mul nsw i32 %4237, %4238
  %4240 = add nsw i32 %4239, 1
  %4241 = sext i32 %4240 to i64
  %4242 = getelementptr inbounds double, ptr %4236, i64 %4241
  call void @daxpy_(ptr noundef %4229, ptr noundef %48, ptr noundef %4235, ptr noundef @c__1, ptr noundef %4242, ptr noundef @c__1)
  %4243 = load ptr, ptr %18, align 8, !tbaa !5
  %4244 = load ptr, ptr %20, align 8, !tbaa !5
  %4245 = load i32, ptr %50, align 4, !tbaa !9
  %4246 = load i32, ptr %29, align 4, !tbaa !9
  %4247 = mul nsw i32 %4245, %4246
  %4248 = add nsw i32 %4247, 1
  %4249 = sext i32 %4248 to i64
  %4250 = getelementptr inbounds double, ptr %4244, i64 %4249
  %4251 = load ptr, ptr %21, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b18, ptr noundef %40, ptr noundef %4243, ptr noundef @c__1, ptr noundef %4250, ptr noundef %4251, ptr noundef %44)
  store double 0.000000e+00, ptr %38, align 8, !tbaa !11
  %4252 = load double, ptr %41, align 8, !tbaa !11
  %4253 = load double, ptr %41, align 8, !tbaa !11
  %4254 = fneg double %4252
  %4255 = call double @llvm.fmuladd.f64(double %4254, double %4253, double 1.000000e+00)
  store double %4255, ptr %39, align 8, !tbaa !11
  %4256 = load double, ptr %40, align 8, !tbaa !11
  %4257 = load double, ptr %38, align 8, !tbaa !11
  %4258 = load double, ptr %39, align 8, !tbaa !11
  %4259 = fcmp oge double %4257, %4258
  br i1 %4259, label %4260, label %4262

4260:                                             ; preds = %4183
  %4261 = load double, ptr %38, align 8, !tbaa !11
  br label %4264

4262:                                             ; preds = %4183
  %4263 = load double, ptr %39, align 8, !tbaa !11
  br label %4264

4264:                                             ; preds = %4262, %4260
  %4265 = phi double [ %4261, %4260 ], [ %4263, %4262 ]
  %4266 = call double @sqrt(double noundef %4265) #5
  %4267 = fmul double %4256, %4266
  %4268 = load ptr, ptr %22, align 8, !tbaa !5
  %4269 = load i32, ptr %50, align 4, !tbaa !9
  %4270 = sext i32 %4269 to i64
  %4271 = getelementptr inbounds double, ptr %4268, i64 %4270
  store double %4267, ptr %4271, align 8, !tbaa !11
  %4272 = load double, ptr %79, align 8, !tbaa !11
  %4273 = load double, ptr %58, align 8, !tbaa !11
  %4274 = fcmp oge double %4272, %4273
  br i1 %4274, label %4275, label %4277

4275:                                             ; preds = %4264
  %4276 = load double, ptr %79, align 8, !tbaa !11
  br label %4279

4277:                                             ; preds = %4264
  %4278 = load double, ptr %58, align 8, !tbaa !11
  br label %4279

4279:                                             ; preds = %4277, %4275
  %4280 = phi double [ %4276, %4275 ], [ %4278, %4277 ]
  store double %4280, ptr %79, align 8, !tbaa !11
  br label %4281

4281:                                             ; preds = %4279, %4181
  br label %4282

4282:                                             ; preds = %4281, %4080
  %4283 = load ptr, ptr %22, align 8, !tbaa !5
  %4284 = load i32, ptr %51, align 4, !tbaa !9
  %4285 = sext i32 %4284 to i64
  %4286 = getelementptr inbounds double, ptr %4283, i64 %4285
  %4287 = load double, ptr %4286, align 8, !tbaa !11
  %4288 = load double, ptr %42, align 8, !tbaa !11
  %4289 = fdiv double %4287, %4288
  store double %4289, ptr %38, align 8, !tbaa !11
  %4290 = load double, ptr %38, align 8, !tbaa !11
  %4291 = load double, ptr %38, align 8, !tbaa !11
  %4292 = fmul double %4290, %4291
  %4293 = load double, ptr %98, align 8, !tbaa !11
  %4294 = fcmp ole double %4292, %4293
  br i1 %4294, label %4295, label %4347

4295:                                             ; preds = %4282
  %4296 = load double, ptr %42, align 8, !tbaa !11
  %4297 = load double, ptr %97, align 8, !tbaa !11
  %4298 = fcmp olt double %4296, %4297
  br i1 %4298, label %4299, label %4323

4299:                                             ; preds = %4295
  %4300 = load double, ptr %42, align 8, !tbaa !11
  %4301 = load double, ptr %70, align 8, !tbaa !11
  %4302 = fcmp ogt double %4300, %4301
  br i1 %4302, label %4303, label %4323

4303:                                             ; preds = %4299
  %4304 = load ptr, ptr %18, align 8, !tbaa !5
  %4305 = load ptr, ptr %20, align 8, !tbaa !5
  %4306 = load i32, ptr %51, align 4, !tbaa !9
  %4307 = load i32, ptr %29, align 4, !tbaa !9
  %4308 = mul nsw i32 %4306, %4307
  %4309 = add nsw i32 %4308, 1
  %4310 = sext i32 %4309 to i64
  %4311 = getelementptr inbounds double, ptr %4305, i64 %4310
  %4312 = call double @dnrm2_(ptr noundef %4304, ptr noundef %4311, ptr noundef @c__1)
  %4313 = load ptr, ptr %26, align 8, !tbaa !5
  %4314 = load i32, ptr %51, align 4, !tbaa !9
  %4315 = sext i32 %4314 to i64
  %4316 = getelementptr inbounds double, ptr %4313, i64 %4315
  %4317 = load double, ptr %4316, align 8, !tbaa !11
  %4318 = fmul double %4312, %4317
  %4319 = load ptr, ptr %22, align 8, !tbaa !5
  %4320 = load i32, ptr %51, align 4, !tbaa !9
  %4321 = sext i32 %4320 to i64
  %4322 = getelementptr inbounds double, ptr %4319, i64 %4321
  store double %4318, ptr %4322, align 8, !tbaa !11
  br label %4346

4323:                                             ; preds = %4299, %4295
  store double 0.000000e+00, ptr %52, align 8, !tbaa !11
  store double 1.000000e+00, ptr %42, align 8, !tbaa !11
  %4324 = load ptr, ptr %18, align 8, !tbaa !5
  %4325 = load ptr, ptr %20, align 8, !tbaa !5
  %4326 = load i32, ptr %51, align 4, !tbaa !9
  %4327 = load i32, ptr %29, align 4, !tbaa !9
  %4328 = mul nsw i32 %4326, %4327
  %4329 = add nsw i32 %4328, 1
  %4330 = sext i32 %4329 to i64
  %4331 = getelementptr inbounds double, ptr %4325, i64 %4330
  call void @dlassq_(ptr noundef %4324, ptr noundef %4331, ptr noundef @c__1, ptr noundef %52, ptr noundef %42)
  %4332 = load double, ptr %52, align 8, !tbaa !11
  %4333 = load double, ptr %42, align 8, !tbaa !11
  %4334 = call double @sqrt(double noundef %4333) #5
  %4335 = fmul double %4332, %4334
  %4336 = load ptr, ptr %26, align 8, !tbaa !5
  %4337 = load i32, ptr %51, align 4, !tbaa !9
  %4338 = sext i32 %4337 to i64
  %4339 = getelementptr inbounds double, ptr %4336, i64 %4338
  %4340 = load double, ptr %4339, align 8, !tbaa !11
  %4341 = fmul double %4335, %4340
  %4342 = load ptr, ptr %22, align 8, !tbaa !5
  %4343 = load i32, ptr %51, align 4, !tbaa !9
  %4344 = sext i32 %4343 to i64
  %4345 = getelementptr inbounds double, ptr %4342, i64 %4344
  store double %4341, ptr %4345, align 8, !tbaa !11
  br label %4346

4346:                                             ; preds = %4323, %4303
  br label %4347

4347:                                             ; preds = %4346, %4282
  %4348 = load double, ptr %40, align 8, !tbaa !11
  %4349 = load double, ptr %47, align 8, !tbaa !11
  %4350 = fdiv double %4348, %4349
  store double %4350, ptr %38, align 8, !tbaa !11
  %4351 = load double, ptr %38, align 8, !tbaa !11
  %4352 = load double, ptr %38, align 8, !tbaa !11
  %4353 = fmul double %4351, %4352
  %4354 = load double, ptr %98, align 8, !tbaa !11
  %4355 = fcmp ole double %4353, %4354
  br i1 %4355, label %4356, label %4405

4356:                                             ; preds = %4347
  %4357 = load double, ptr %40, align 8, !tbaa !11
  %4358 = load double, ptr %97, align 8, !tbaa !11
  %4359 = fcmp olt double %4357, %4358
  br i1 %4359, label %4360, label %4380

4360:                                             ; preds = %4356
  %4361 = load double, ptr %40, align 8, !tbaa !11
  %4362 = load double, ptr %70, align 8, !tbaa !11
  %4363 = fcmp ogt double %4361, %4362
  br i1 %4363, label %4364, label %4380

4364:                                             ; preds = %4360
  %4365 = load ptr, ptr %18, align 8, !tbaa !5
  %4366 = load ptr, ptr %20, align 8, !tbaa !5
  %4367 = load i32, ptr %50, align 4, !tbaa !9
  %4368 = load i32, ptr %29, align 4, !tbaa !9
  %4369 = mul nsw i32 %4367, %4368
  %4370 = add nsw i32 %4369, 1
  %4371 = sext i32 %4370 to i64
  %4372 = getelementptr inbounds double, ptr %4366, i64 %4371
  %4373 = call double @dnrm2_(ptr noundef %4365, ptr noundef %4372, ptr noundef @c__1)
  %4374 = load ptr, ptr %26, align 8, !tbaa !5
  %4375 = load i32, ptr %50, align 4, !tbaa !9
  %4376 = sext i32 %4375 to i64
  %4377 = getelementptr inbounds double, ptr %4374, i64 %4376
  %4378 = load double, ptr %4377, align 8, !tbaa !11
  %4379 = fmul double %4373, %4378
  store double %4379, ptr %40, align 8, !tbaa !11
  br label %4399

4380:                                             ; preds = %4360, %4356
  store double 0.000000e+00, ptr %52, align 8, !tbaa !11
  store double 1.000000e+00, ptr %40, align 8, !tbaa !11
  %4381 = load ptr, ptr %18, align 8, !tbaa !5
  %4382 = load ptr, ptr %20, align 8, !tbaa !5
  %4383 = load i32, ptr %50, align 4, !tbaa !9
  %4384 = load i32, ptr %29, align 4, !tbaa !9
  %4385 = mul nsw i32 %4383, %4384
  %4386 = add nsw i32 %4385, 1
  %4387 = sext i32 %4386 to i64
  %4388 = getelementptr inbounds double, ptr %4382, i64 %4387
  call void @dlassq_(ptr noundef %4381, ptr noundef %4388, ptr noundef @c__1, ptr noundef %52, ptr noundef %40)
  %4389 = load double, ptr %52, align 8, !tbaa !11
  %4390 = load double, ptr %40, align 8, !tbaa !11
  %4391 = call double @sqrt(double noundef %4390) #5
  %4392 = fmul double %4389, %4391
  %4393 = load ptr, ptr %26, align 8, !tbaa !5
  %4394 = load i32, ptr %50, align 4, !tbaa !9
  %4395 = sext i32 %4394 to i64
  %4396 = getelementptr inbounds double, ptr %4393, i64 %4395
  %4397 = load double, ptr %4396, align 8, !tbaa !11
  %4398 = fmul double %4392, %4397
  store double %4398, ptr %40, align 8, !tbaa !11
  br label %4399

4399:                                             ; preds = %4380, %4364
  %4400 = load double, ptr %40, align 8, !tbaa !11
  %4401 = load ptr, ptr %22, align 8, !tbaa !5
  %4402 = load i32, ptr %50, align 4, !tbaa !9
  %4403 = sext i32 %4402 to i64
  %4404 = getelementptr inbounds double, ptr %4401, i64 %4403
  store double %4400, ptr %4404, align 8, !tbaa !11
  br label %4405

4405:                                             ; preds = %4399, %4347
  br label %4413

4406:                                             ; preds = %3301
  %4407 = load i32, ptr %82, align 4, !tbaa !9
  %4408 = add nsw i32 %4407, 1
  store i32 %4408, ptr %82, align 4, !tbaa !9
  %4409 = load i32, ptr %46, align 4, !tbaa !9
  %4410 = add nsw i32 %4409, 1
  store i32 %4410, ptr %46, align 4, !tbaa !9
  %4411 = load i32, ptr %74, align 4, !tbaa !9
  %4412 = add nsw i32 %4411, 1
  store i32 %4412, ptr %74, align 4, !tbaa !9
  br label %4413

4413:                                             ; preds = %4406, %4405
  br label %4421

4414:                                             ; preds = %3046
  %4415 = load i32, ptr %82, align 4, !tbaa !9
  %4416 = add nsw i32 %4415, 1
  store i32 %4416, ptr %82, align 4, !tbaa !9
  %4417 = load i32, ptr %46, align 4, !tbaa !9
  %4418 = add nsw i32 %4417, 1
  store i32 %4418, ptr %46, align 4, !tbaa !9
  %4419 = load i32, ptr %74, align 4, !tbaa !9
  %4420 = add nsw i32 %4419, 1
  store i32 %4420, ptr %74, align 4, !tbaa !9
  br label %4421

4421:                                             ; preds = %4414, %4413
  %4422 = load i32, ptr %49, align 4, !tbaa !9
  %4423 = load i32, ptr %75, align 4, !tbaa !9
  %4424 = icmp sle i32 %4422, %4423
  br i1 %4424, label %4425, label %4435

4425:                                             ; preds = %4421
  %4426 = load i32, ptr %74, align 4, !tbaa !9
  %4427 = load i32, ptr %76, align 4, !tbaa !9
  %4428 = icmp sge i32 %4426, %4427
  br i1 %4428, label %4429, label %4435

4429:                                             ; preds = %4425
  %4430 = load double, ptr %40, align 8, !tbaa !11
  %4431 = load ptr, ptr %22, align 8, !tbaa !5
  %4432 = load i32, ptr %50, align 4, !tbaa !9
  %4433 = sext i32 %4432 to i64
  %4434 = getelementptr inbounds double, ptr %4431, i64 %4433
  store double %4430, ptr %4434, align 8, !tbaa !11
  store i32 0, ptr %82, align 4, !tbaa !9
  br label %4495

4435:                                             ; preds = %4425, %4421
  %4436 = load i32, ptr %49, align 4, !tbaa !9
  %4437 = load i32, ptr %75, align 4, !tbaa !9
  %4438 = icmp sle i32 %4436, %4437
  br i1 %4438, label %4439, label %4446

4439:                                             ; preds = %4435
  %4440 = load i32, ptr %46, align 4, !tbaa !9
  %4441 = load i32, ptr %99, align 4, !tbaa !9
  %4442 = icmp sgt i32 %4440, %4441
  br i1 %4442, label %4443, label %4446

4443:                                             ; preds = %4439
  %4444 = load double, ptr %40, align 8, !tbaa !11
  %4445 = fneg double %4444
  store double %4445, ptr %40, align 8, !tbaa !11
  store i32 0, ptr %82, align 4, !tbaa !9
  br label %4451

4446:                                             ; preds = %4439, %4435
  br label %4447

4447:                                             ; preds = %4446
  %4448 = load i32, ptr %51, align 4, !tbaa !9
  %4449 = add nsw i32 %4448, 1
  store i32 %4449, ptr %51, align 4, !tbaa !9
  br label %3042, !llvm.loop !25

4450:                                             ; preds = %3042
  br label %4451

4451:                                             ; preds = %4450, %4443
  %4452 = load double, ptr %40, align 8, !tbaa !11
  %4453 = load ptr, ptr %22, align 8, !tbaa !5
  %4454 = load i32, ptr %50, align 4, !tbaa !9
  %4455 = sext i32 %4454 to i64
  %4456 = getelementptr inbounds double, ptr %4453, i64 %4455
  store double %4452, ptr %4456, align 8, !tbaa !11
  br label %4486

4457:                                             ; preds = %3017
  %4458 = load double, ptr %40, align 8, !tbaa !11
  %4459 = fcmp oeq double %4458, 0.000000e+00
  br i1 %4459, label %4460, label %4481

4460:                                             ; preds = %4457
  %4461 = load i32, ptr %90, align 4, !tbaa !9
  %4462 = load i32, ptr %86, align 4, !tbaa !9
  %4463 = add nsw i32 %4461, %4462
  %4464 = sub nsw i32 %4463, 1
  store i32 %4464, ptr %36, align 4, !tbaa !9
  %4465 = load i32, ptr %82, align 4, !tbaa !9
  %4466 = load i32, ptr %36, align 4, !tbaa !9
  %4467 = load ptr, ptr %19, align 8, !tbaa !5
  %4468 = load i32, ptr %4467, align 4, !tbaa !9
  %4469 = icmp sle i32 %4466, %4468
  br i1 %4469, label %4470, label %4472

4470:                                             ; preds = %4460
  %4471 = load i32, ptr %36, align 4, !tbaa !9
  br label %4475

4472:                                             ; preds = %4460
  %4473 = load ptr, ptr %19, align 8, !tbaa !5
  %4474 = load i32, ptr %4473, align 4, !tbaa !9
  br label %4475

4475:                                             ; preds = %4472, %4470
  %4476 = phi i32 [ %4471, %4470 ], [ %4474, %4472 ]
  %4477 = add nsw i32 %4465, %4476
  %4478 = load i32, ptr %90, align 4, !tbaa !9
  %4479 = sub nsw i32 %4477, %4478
  %4480 = add nsw i32 %4479, 1
  store i32 %4480, ptr %82, align 4, !tbaa !9
  br label %4481

4481:                                             ; preds = %4475, %4457
  %4482 = load double, ptr %40, align 8, !tbaa !11
  %4483 = fcmp olt double %4482, 0.000000e+00
  br i1 %4483, label %4484, label %4485

4484:                                             ; preds = %4481
  store i32 0, ptr %82, align 4, !tbaa !9
  br label %4485

4485:                                             ; preds = %4484, %4481
  br label %4486

4486:                                             ; preds = %4485, %4451
  br label %4487

4487:                                             ; preds = %4486
  %4488 = load i32, ptr %50, align 4, !tbaa !9
  %4489 = add nsw i32 %4488, 1
  store i32 %4489, ptr %50, align 4, !tbaa !9
  br label %3013, !llvm.loop !26

4490:                                             ; preds = %3013
  br label %4491

4491:                                             ; preds = %4490
  %4492 = load i32, ptr %84, align 4, !tbaa !9
  %4493 = add nsw i32 %4492, 1
  store i32 %4493, ptr %84, align 4, !tbaa !9
  br label %2987, !llvm.loop !27

4494:                                             ; preds = %2987
  br label %4495

4495:                                             ; preds = %4494, %4429
  %4496 = load i32, ptr %88, align 4, !tbaa !9
  %4497 = load i32, ptr %86, align 4, !tbaa !9
  %4498 = add nsw i32 %4496, %4497
  %4499 = sub nsw i32 %4498, 1
  store i32 %4499, ptr %35, align 4, !tbaa !9
  %4500 = load i32, ptr %35, align 4, !tbaa !9
  %4501 = load ptr, ptr %19, align 8, !tbaa !5
  %4502 = load i32, ptr %4501, align 4, !tbaa !9
  %4503 = icmp sle i32 %4500, %4502
  br i1 %4503, label %4504, label %4506

4504:                                             ; preds = %4495
  %4505 = load i32, ptr %35, align 4, !tbaa !9
  br label %4509

4506:                                             ; preds = %4495
  %4507 = load ptr, ptr %19, align 8, !tbaa !5
  %4508 = load i32, ptr %4507, align 4, !tbaa !9
  br label %4509

4509:                                             ; preds = %4506, %4504
  %4510 = phi i32 [ %4505, %4504 ], [ %4508, %4506 ]
  store i32 %4510, ptr %34, align 4, !tbaa !9
  %4511 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %4511, ptr %50, align 4, !tbaa !9
  br label %4512

4512:                                             ; preds = %4535, %4509
  %4513 = load i32, ptr %50, align 4, !tbaa !9
  %4514 = load i32, ptr %34, align 4, !tbaa !9
  %4515 = icmp sle i32 %4513, %4514
  br i1 %4515, label %4516, label %4538

4516:                                             ; preds = %4512
  %4517 = load ptr, ptr %22, align 8, !tbaa !5
  %4518 = load i32, ptr %50, align 4, !tbaa !9
  %4519 = sext i32 %4518 to i64
  %4520 = getelementptr inbounds double, ptr %4517, i64 %4519
  %4521 = load double, ptr %4520, align 8, !tbaa !11
  store double %4521, ptr %38, align 8, !tbaa !11
  %4522 = load double, ptr %38, align 8, !tbaa !11
  %4523 = fcmp oge double %4522, 0.000000e+00
  br i1 %4523, label %4524, label %4526

4524:                                             ; preds = %4516
  %4525 = load double, ptr %38, align 8, !tbaa !11
  br label %4529

4526:                                             ; preds = %4516
  %4527 = load double, ptr %38, align 8, !tbaa !11
  %4528 = fneg double %4527
  br label %4529

4529:                                             ; preds = %4526, %4524
  %4530 = phi double [ %4525, %4524 ], [ %4528, %4526 ]
  %4531 = load ptr, ptr %22, align 8, !tbaa !5
  %4532 = load i32, ptr %50, align 4, !tbaa !9
  %4533 = sext i32 %4532 to i64
  %4534 = getelementptr inbounds double, ptr %4531, i64 %4533
  store double %4530, ptr %4534, align 8, !tbaa !11
  br label %4535

4535:                                             ; preds = %4529
  %4536 = load i32, ptr %50, align 4, !tbaa !9
  %4537 = add nsw i32 %4536, 1
  store i32 %4537, ptr %50, align 4, !tbaa !9
  br label %4512, !llvm.loop !28

4538:                                             ; preds = %4512
  br label %4539

4539:                                             ; preds = %4538
  %4540 = load i32, ptr %89, align 4, !tbaa !9
  %4541 = add nsw i32 %4540, 1
  store i32 %4541, ptr %89, align 4, !tbaa !9
  br label %1431, !llvm.loop !29

4542:                                             ; preds = %1431
  %4543 = load ptr, ptr %22, align 8, !tbaa !5
  %4544 = load ptr, ptr %19, align 8, !tbaa !5
  %4545 = load i32, ptr %4544, align 4, !tbaa !9
  %4546 = sext i32 %4545 to i64
  %4547 = getelementptr inbounds double, ptr %4543, i64 %4546
  %4548 = load double, ptr %4547, align 8, !tbaa !11
  %4549 = load double, ptr %97, align 8, !tbaa !11
  %4550 = fcmp olt double %4548, %4549
  br i1 %4550, label %4551, label %4583

4551:                                             ; preds = %4542
  %4552 = load ptr, ptr %22, align 8, !tbaa !5
  %4553 = load ptr, ptr %19, align 8, !tbaa !5
  %4554 = load i32, ptr %4553, align 4, !tbaa !9
  %4555 = sext i32 %4554 to i64
  %4556 = getelementptr inbounds double, ptr %4552, i64 %4555
  %4557 = load double, ptr %4556, align 8, !tbaa !11
  %4558 = load double, ptr %70, align 8, !tbaa !11
  %4559 = fcmp ogt double %4557, %4558
  br i1 %4559, label %4560, label %4583

4560:                                             ; preds = %4551
  %4561 = load ptr, ptr %18, align 8, !tbaa !5
  %4562 = load ptr, ptr %20, align 8, !tbaa !5
  %4563 = load ptr, ptr %19, align 8, !tbaa !5
  %4564 = load i32, ptr %4563, align 4, !tbaa !9
  %4565 = load i32, ptr %29, align 4, !tbaa !9
  %4566 = mul nsw i32 %4564, %4565
  %4567 = add nsw i32 %4566, 1
  %4568 = sext i32 %4567 to i64
  %4569 = getelementptr inbounds double, ptr %4562, i64 %4568
  %4570 = call double @dnrm2_(ptr noundef %4561, ptr noundef %4569, ptr noundef @c__1)
  %4571 = load ptr, ptr %26, align 8, !tbaa !5
  %4572 = load ptr, ptr %19, align 8, !tbaa !5
  %4573 = load i32, ptr %4572, align 4, !tbaa !9
  %4574 = sext i32 %4573 to i64
  %4575 = getelementptr inbounds double, ptr %4571, i64 %4574
  %4576 = load double, ptr %4575, align 8, !tbaa !11
  %4577 = fmul double %4570, %4576
  %4578 = load ptr, ptr %22, align 8, !tbaa !5
  %4579 = load ptr, ptr %19, align 8, !tbaa !5
  %4580 = load i32, ptr %4579, align 4, !tbaa !9
  %4581 = sext i32 %4580 to i64
  %4582 = getelementptr inbounds double, ptr %4578, i64 %4581
  store double %4577, ptr %4582, align 8, !tbaa !11
  br label %4609

4583:                                             ; preds = %4551, %4542
  store double 0.000000e+00, ptr %52, align 8, !tbaa !11
  store double 1.000000e+00, ptr %40, align 8, !tbaa !11
  %4584 = load ptr, ptr %18, align 8, !tbaa !5
  %4585 = load ptr, ptr %20, align 8, !tbaa !5
  %4586 = load ptr, ptr %19, align 8, !tbaa !5
  %4587 = load i32, ptr %4586, align 4, !tbaa !9
  %4588 = load i32, ptr %29, align 4, !tbaa !9
  %4589 = mul nsw i32 %4587, %4588
  %4590 = add nsw i32 %4589, 1
  %4591 = sext i32 %4590 to i64
  %4592 = getelementptr inbounds double, ptr %4585, i64 %4591
  call void @dlassq_(ptr noundef %4584, ptr noundef %4592, ptr noundef @c__1, ptr noundef %52, ptr noundef %40)
  %4593 = load double, ptr %52, align 8, !tbaa !11
  %4594 = load double, ptr %40, align 8, !tbaa !11
  %4595 = call double @sqrt(double noundef %4594) #5
  %4596 = fmul double %4593, %4595
  %4597 = load ptr, ptr %26, align 8, !tbaa !5
  %4598 = load ptr, ptr %19, align 8, !tbaa !5
  %4599 = load i32, ptr %4598, align 4, !tbaa !9
  %4600 = sext i32 %4599 to i64
  %4601 = getelementptr inbounds double, ptr %4597, i64 %4600
  %4602 = load double, ptr %4601, align 8, !tbaa !11
  %4603 = fmul double %4596, %4602
  %4604 = load ptr, ptr %22, align 8, !tbaa !5
  %4605 = load ptr, ptr %19, align 8, !tbaa !5
  %4606 = load i32, ptr %4605, align 4, !tbaa !9
  %4607 = sext i32 %4606 to i64
  %4608 = getelementptr inbounds double, ptr %4604, i64 %4607
  store double %4603, ptr %4608, align 8, !tbaa !11
  br label %4609

4609:                                             ; preds = %4583, %4560
  %4610 = load i32, ptr %49, align 4, !tbaa !9
  %4611 = load i32, ptr %75, align 4, !tbaa !9
  %4612 = icmp slt i32 %4610, %4611
  br i1 %4612, label %4613, label %4624

4613:                                             ; preds = %4609
  %4614 = load double, ptr %77, align 8, !tbaa !11
  %4615 = load double, ptr %100, align 8, !tbaa !11
  %4616 = fcmp ole double %4614, %4615
  br i1 %4616, label %4622, label %4617

4617:                                             ; preds = %4613
  %4618 = load i32, ptr %83, align 4, !tbaa !9
  %4619 = load ptr, ptr %19, align 8, !tbaa !5
  %4620 = load i32, ptr %4619, align 4, !tbaa !9
  %4621 = icmp sle i32 %4618, %4620
  br i1 %4621, label %4622, label %4624

4622:                                             ; preds = %4617, %4613
  %4623 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %4623, ptr %75, align 4, !tbaa !9
  br label %4624

4624:                                             ; preds = %4622, %4617, %4609
  %4625 = load i32, ptr %49, align 4, !tbaa !9
  %4626 = load i32, ptr %75, align 4, !tbaa !9
  %4627 = add nsw i32 %4626, 1
  %4628 = icmp sgt i32 %4625, %4627
  br i1 %4628, label %4629, label %4649

4629:                                             ; preds = %4624
  %4630 = load double, ptr %77, align 8, !tbaa !11
  %4631 = load ptr, ptr %19, align 8, !tbaa !5
  %4632 = load i32, ptr %4631, align 4, !tbaa !9
  %4633 = sitofp i32 %4632 to double
  %4634 = call double @sqrt(double noundef %4633) #5
  %4635 = load double, ptr %94, align 8, !tbaa !11
  %4636 = fmul double %4634, %4635
  %4637 = fcmp olt double %4630, %4636
  br i1 %4637, label %4638, label %4649

4638:                                             ; preds = %4629
  %4639 = load ptr, ptr %19, align 8, !tbaa !5
  %4640 = load i32, ptr %4639, align 4, !tbaa !9
  %4641 = sitofp i32 %4640 to double
  %4642 = load double, ptr %77, align 8, !tbaa !11
  %4643 = fmul double %4641, %4642
  %4644 = load double, ptr %79, align 8, !tbaa !11
  %4645 = fmul double %4643, %4644
  %4646 = load double, ptr %94, align 8, !tbaa !11
  %4647 = fcmp olt double %4645, %4646
  br i1 %4647, label %4648, label %4649

4648:                                             ; preds = %4638
  br label %4660

4649:                                             ; preds = %4638, %4629, %4624
  %4650 = load i32, ptr %82, align 4, !tbaa !9
  %4651 = load i32, ptr %81, align 4, !tbaa !9
  %4652 = icmp sge i32 %4650, %4651
  br i1 %4652, label %4653, label %4654

4653:                                             ; preds = %4649
  br label %4660

4654:                                             ; preds = %4649
  br label %4655

4655:                                             ; preds = %4654
  %4656 = load i32, ptr %49, align 4, !tbaa !9
  %4657 = add nsw i32 %4656, 1
  store i32 %4657, ptr %49, align 4, !tbaa !9
  br label %1426, !llvm.loop !30

4658:                                             ; preds = %1426
  %4659 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 29, ptr %4659, align 4, !tbaa !9
  br label %4662

4660:                                             ; preds = %4653, %4648
  %4661 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 0, ptr %4661, align 4, !tbaa !9
  br label %4662

4662:                                             ; preds = %4660, %4658
  store i32 0, ptr %68, align 4, !tbaa !9
  store i32 0, ptr %69, align 4, !tbaa !9
  %4663 = load ptr, ptr %19, align 8, !tbaa !5
  %4664 = load i32, ptr %4663, align 4, !tbaa !9
  %4665 = sub nsw i32 %4664, 1
  store i32 %4665, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %4666

4666:                                             ; preds = %4783, %4662
  %4667 = load i32, ptr %50, align 4, !tbaa !9
  %4668 = load i32, ptr %33, align 4, !tbaa !9
  %4669 = icmp sle i32 %4667, %4668
  br i1 %4669, label %4670, label %4786

4670:                                             ; preds = %4666
  %4671 = load ptr, ptr %19, align 8, !tbaa !5
  %4672 = load i32, ptr %4671, align 4, !tbaa !9
  %4673 = load i32, ptr %50, align 4, !tbaa !9
  %4674 = sub nsw i32 %4672, %4673
  %4675 = add nsw i32 %4674, 1
  store i32 %4675, ptr %34, align 4, !tbaa !9
  %4676 = load ptr, ptr %22, align 8, !tbaa !5
  %4677 = load i32, ptr %50, align 4, !tbaa !9
  %4678 = sext i32 %4677 to i64
  %4679 = getelementptr inbounds double, ptr %4676, i64 %4678
  %4680 = call i32 @idamax_(ptr noundef %34, ptr noundef %4679, ptr noundef @c__1)
  %4681 = load i32, ptr %50, align 4, !tbaa !9
  %4682 = add nsw i32 %4680, %4681
  %4683 = sub nsw i32 %4682, 1
  store i32 %4683, ptr %51, align 4, !tbaa !9
  %4684 = load i32, ptr %50, align 4, !tbaa !9
  %4685 = load i32, ptr %51, align 4, !tbaa !9
  %4686 = icmp ne i32 %4684, %4685
  br i1 %4686, label %4687, label %4759

4687:                                             ; preds = %4670
  %4688 = load ptr, ptr %22, align 8, !tbaa !5
  %4689 = load i32, ptr %50, align 4, !tbaa !9
  %4690 = sext i32 %4689 to i64
  %4691 = getelementptr inbounds double, ptr %4688, i64 %4690
  %4692 = load double, ptr %4691, align 8, !tbaa !11
  store double %4692, ptr %48, align 8, !tbaa !11
  %4693 = load ptr, ptr %22, align 8, !tbaa !5
  %4694 = load i32, ptr %51, align 4, !tbaa !9
  %4695 = sext i32 %4694 to i64
  %4696 = getelementptr inbounds double, ptr %4693, i64 %4695
  %4697 = load double, ptr %4696, align 8, !tbaa !11
  %4698 = load ptr, ptr %22, align 8, !tbaa !5
  %4699 = load i32, ptr %50, align 4, !tbaa !9
  %4700 = sext i32 %4699 to i64
  %4701 = getelementptr inbounds double, ptr %4698, i64 %4700
  store double %4697, ptr %4701, align 8, !tbaa !11
  %4702 = load double, ptr %48, align 8, !tbaa !11
  %4703 = load ptr, ptr %22, align 8, !tbaa !5
  %4704 = load i32, ptr %51, align 4, !tbaa !9
  %4705 = sext i32 %4704 to i64
  %4706 = getelementptr inbounds double, ptr %4703, i64 %4705
  store double %4702, ptr %4706, align 8, !tbaa !11
  %4707 = load ptr, ptr %26, align 8, !tbaa !5
  %4708 = load i32, ptr %50, align 4, !tbaa !9
  %4709 = sext i32 %4708 to i64
  %4710 = getelementptr inbounds double, ptr %4707, i64 %4709
  %4711 = load double, ptr %4710, align 8, !tbaa !11
  store double %4711, ptr %48, align 8, !tbaa !11
  %4712 = load ptr, ptr %26, align 8, !tbaa !5
  %4713 = load i32, ptr %51, align 4, !tbaa !9
  %4714 = sext i32 %4713 to i64
  %4715 = getelementptr inbounds double, ptr %4712, i64 %4714
  %4716 = load double, ptr %4715, align 8, !tbaa !11
  %4717 = load ptr, ptr %26, align 8, !tbaa !5
  %4718 = load i32, ptr %50, align 4, !tbaa !9
  %4719 = sext i32 %4718 to i64
  %4720 = getelementptr inbounds double, ptr %4717, i64 %4719
  store double %4716, ptr %4720, align 8, !tbaa !11
  %4721 = load double, ptr %48, align 8, !tbaa !11
  %4722 = load ptr, ptr %26, align 8, !tbaa !5
  %4723 = load i32, ptr %51, align 4, !tbaa !9
  %4724 = sext i32 %4723 to i64
  %4725 = getelementptr inbounds double, ptr %4722, i64 %4724
  store double %4721, ptr %4725, align 8, !tbaa !11
  %4726 = load ptr, ptr %18, align 8, !tbaa !5
  %4727 = load ptr, ptr %20, align 8, !tbaa !5
  %4728 = load i32, ptr %50, align 4, !tbaa !9
  %4729 = load i32, ptr %29, align 4, !tbaa !9
  %4730 = mul nsw i32 %4728, %4729
  %4731 = add nsw i32 %4730, 1
  %4732 = sext i32 %4731 to i64
  %4733 = getelementptr inbounds double, ptr %4727, i64 %4732
  %4734 = load ptr, ptr %20, align 8, !tbaa !5
  %4735 = load i32, ptr %51, align 4, !tbaa !9
  %4736 = load i32, ptr %29, align 4, !tbaa !9
  %4737 = mul nsw i32 %4735, %4736
  %4738 = add nsw i32 %4737, 1
  %4739 = sext i32 %4738 to i64
  %4740 = getelementptr inbounds double, ptr %4734, i64 %4739
  call void @dswap_(ptr noundef %4726, ptr noundef %4733, ptr noundef @c__1, ptr noundef %4740, ptr noundef @c__1)
  %4741 = load i32, ptr %63, align 4, !tbaa !9
  %4742 = icmp ne i32 %4741, 0
  br i1 %4742, label %4743, label %4758

4743:                                             ; preds = %4687
  %4744 = load ptr, ptr %24, align 8, !tbaa !5
  %4745 = load i32, ptr %50, align 4, !tbaa !9
  %4746 = load i32, ptr %31, align 4, !tbaa !9
  %4747 = mul nsw i32 %4745, %4746
  %4748 = add nsw i32 %4747, 1
  %4749 = sext i32 %4748 to i64
  %4750 = getelementptr inbounds double, ptr %4744, i64 %4749
  %4751 = load ptr, ptr %24, align 8, !tbaa !5
  %4752 = load i32, ptr %51, align 4, !tbaa !9
  %4753 = load i32, ptr %31, align 4, !tbaa !9
  %4754 = mul nsw i32 %4752, %4753
  %4755 = add nsw i32 %4754, 1
  %4756 = sext i32 %4755 to i64
  %4757 = getelementptr inbounds double, ptr %4751, i64 %4756
  call void @dswap_(ptr noundef %95, ptr noundef %4750, ptr noundef @c__1, ptr noundef %4757, ptr noundef @c__1)
  br label %4758

4758:                                             ; preds = %4743, %4687
  br label %4759

4759:                                             ; preds = %4758, %4670
  %4760 = load ptr, ptr %22, align 8, !tbaa !5
  %4761 = load i32, ptr %50, align 4, !tbaa !9
  %4762 = sext i32 %4761 to i64
  %4763 = getelementptr inbounds double, ptr %4760, i64 %4762
  %4764 = load double, ptr %4763, align 8, !tbaa !11
  %4765 = fcmp une double %4764, 0.000000e+00
  br i1 %4765, label %4766, label %4782

4766:                                             ; preds = %4759
  %4767 = load i32, ptr %69, align 4, !tbaa !9
  %4768 = add nsw i32 %4767, 1
  store i32 %4768, ptr %69, align 4, !tbaa !9
  %4769 = load ptr, ptr %22, align 8, !tbaa !5
  %4770 = load i32, ptr %50, align 4, !tbaa !9
  %4771 = sext i32 %4770 to i64
  %4772 = getelementptr inbounds double, ptr %4769, i64 %4771
  %4773 = load double, ptr %4772, align 8, !tbaa !11
  %4774 = load double, ptr %92, align 8, !tbaa !11
  %4775 = fmul double %4773, %4774
  %4776 = load double, ptr %58, align 8, !tbaa !11
  %4777 = fcmp ogt double %4775, %4776
  br i1 %4777, label %4778, label %4781

4778:                                             ; preds = %4766
  %4779 = load i32, ptr %68, align 4, !tbaa !9
  %4780 = add nsw i32 %4779, 1
  store i32 %4780, ptr %68, align 4, !tbaa !9
  br label %4781

4781:                                             ; preds = %4778, %4766
  br label %4782

4782:                                             ; preds = %4781, %4759
  br label %4783

4783:                                             ; preds = %4782
  %4784 = load i32, ptr %50, align 4, !tbaa !9
  %4785 = add nsw i32 %4784, 1
  store i32 %4785, ptr %50, align 4, !tbaa !9
  br label %4666, !llvm.loop !31

4786:                                             ; preds = %4666
  %4787 = load ptr, ptr %22, align 8, !tbaa !5
  %4788 = load ptr, ptr %19, align 8, !tbaa !5
  %4789 = load i32, ptr %4788, align 4, !tbaa !9
  %4790 = sext i32 %4789 to i64
  %4791 = getelementptr inbounds double, ptr %4787, i64 %4790
  %4792 = load double, ptr %4791, align 8, !tbaa !11
  %4793 = fcmp une double %4792, 0.000000e+00
  br i1 %4793, label %4794, label %4811

4794:                                             ; preds = %4786
  %4795 = load i32, ptr %69, align 4, !tbaa !9
  %4796 = add nsw i32 %4795, 1
  store i32 %4796, ptr %69, align 4, !tbaa !9
  %4797 = load ptr, ptr %22, align 8, !tbaa !5
  %4798 = load ptr, ptr %19, align 8, !tbaa !5
  %4799 = load i32, ptr %4798, align 4, !tbaa !9
  %4800 = sext i32 %4799 to i64
  %4801 = getelementptr inbounds double, ptr %4797, i64 %4800
  %4802 = load double, ptr %4801, align 8, !tbaa !11
  %4803 = load double, ptr %92, align 8, !tbaa !11
  %4804 = fmul double %4802, %4803
  %4805 = load double, ptr %58, align 8, !tbaa !11
  %4806 = fcmp ogt double %4804, %4805
  br i1 %4806, label %4807, label %4810

4807:                                             ; preds = %4794
  %4808 = load i32, ptr %68, align 4, !tbaa !9
  %4809 = add nsw i32 %4808, 1
  store i32 %4809, ptr %68, align 4, !tbaa !9
  br label %4810

4810:                                             ; preds = %4807, %4794
  br label %4811

4811:                                             ; preds = %4810, %4786
  %4812 = load i32, ptr %59, align 4, !tbaa !9
  %4813 = icmp ne i32 %4812, 0
  br i1 %4813, label %4817, label %4814

4814:                                             ; preds = %4811
  %4815 = load i32, ptr %64, align 4, !tbaa !9
  %4816 = icmp ne i32 %4815, 0
  br i1 %4816, label %4817, label %4847

4817:                                             ; preds = %4814, %4811
  %4818 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %4818, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %4819

4819:                                             ; preds = %4843, %4817
  %4820 = load i32, ptr %50, align 4, !tbaa !9
  %4821 = load i32, ptr %33, align 4, !tbaa !9
  %4822 = icmp sle i32 %4820, %4821
  br i1 %4822, label %4823, label %4846

4823:                                             ; preds = %4819
  %4824 = load ptr, ptr %26, align 8, !tbaa !5
  %4825 = load i32, ptr %50, align 4, !tbaa !9
  %4826 = sext i32 %4825 to i64
  %4827 = getelementptr inbounds double, ptr %4824, i64 %4826
  %4828 = load double, ptr %4827, align 8, !tbaa !11
  %4829 = load ptr, ptr %22, align 8, !tbaa !5
  %4830 = load i32, ptr %50, align 4, !tbaa !9
  %4831 = sext i32 %4830 to i64
  %4832 = getelementptr inbounds double, ptr %4829, i64 %4831
  %4833 = load double, ptr %4832, align 8, !tbaa !11
  %4834 = fdiv double %4828, %4833
  store double %4834, ptr %38, align 8, !tbaa !11
  %4835 = load ptr, ptr %18, align 8, !tbaa !5
  %4836 = load ptr, ptr %20, align 8, !tbaa !5
  %4837 = load i32, ptr %50, align 4, !tbaa !9
  %4838 = load i32, ptr %29, align 4, !tbaa !9
  %4839 = mul nsw i32 %4837, %4838
  %4840 = add nsw i32 %4839, 1
  %4841 = sext i32 %4840 to i64
  %4842 = getelementptr inbounds double, ptr %4836, i64 %4841
  call void @dscal_(ptr noundef %4835, ptr noundef %38, ptr noundef %4842, ptr noundef @c__1)
  br label %4843

4843:                                             ; preds = %4823
  %4844 = load i32, ptr %50, align 4, !tbaa !9
  %4845 = add nsw i32 %4844, 1
  store i32 %4845, ptr %50, align 4, !tbaa !9
  br label %4819, !llvm.loop !32

4846:                                             ; preds = %4819
  br label %4847

4847:                                             ; preds = %4846, %4814
  %4848 = load i32, ptr %63, align 4, !tbaa !9
  %4849 = icmp ne i32 %4848, 0
  br i1 %4849, label %4850, label %4905

4850:                                             ; preds = %4847
  %4851 = load i32, ptr %62, align 4, !tbaa !9
  %4852 = icmp ne i32 %4851, 0
  br i1 %4852, label %4853, label %4876

4853:                                             ; preds = %4850
  %4854 = load ptr, ptr %19, align 8, !tbaa !5
  %4855 = load i32, ptr %4854, align 4, !tbaa !9
  store i32 %4855, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %4856

4856:                                             ; preds = %4872, %4853
  %4857 = load i32, ptr %50, align 4, !tbaa !9
  %4858 = load i32, ptr %33, align 4, !tbaa !9
  %4859 = icmp sle i32 %4857, %4858
  br i1 %4859, label %4860, label %4875

4860:                                             ; preds = %4856
  %4861 = load ptr, ptr %26, align 8, !tbaa !5
  %4862 = load i32, ptr %50, align 4, !tbaa !9
  %4863 = sext i32 %4862 to i64
  %4864 = getelementptr inbounds double, ptr %4861, i64 %4863
  %4865 = load ptr, ptr %24, align 8, !tbaa !5
  %4866 = load i32, ptr %50, align 4, !tbaa !9
  %4867 = load i32, ptr %31, align 4, !tbaa !9
  %4868 = mul nsw i32 %4866, %4867
  %4869 = add nsw i32 %4868, 1
  %4870 = sext i32 %4869 to i64
  %4871 = getelementptr inbounds double, ptr %4865, i64 %4870
  call void @dscal_(ptr noundef %95, ptr noundef %4864, ptr noundef %4871, ptr noundef @c__1)
  br label %4872

4872:                                             ; preds = %4860
  %4873 = load i32, ptr %50, align 4, !tbaa !9
  %4874 = add nsw i32 %4873, 1
  store i32 %4874, ptr %50, align 4, !tbaa !9
  br label %4856, !llvm.loop !33

4875:                                             ; preds = %4856
  br label %4904

4876:                                             ; preds = %4850
  %4877 = load ptr, ptr %19, align 8, !tbaa !5
  %4878 = load i32, ptr %4877, align 4, !tbaa !9
  store i32 %4878, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %4879

4879:                                             ; preds = %4900, %4876
  %4880 = load i32, ptr %50, align 4, !tbaa !9
  %4881 = load i32, ptr %33, align 4, !tbaa !9
  %4882 = icmp sle i32 %4880, %4881
  br i1 %4882, label %4883, label %4903

4883:                                             ; preds = %4879
  %4884 = load ptr, ptr %24, align 8, !tbaa !5
  %4885 = load i32, ptr %50, align 4, !tbaa !9
  %4886 = load i32, ptr %31, align 4, !tbaa !9
  %4887 = mul nsw i32 %4885, %4886
  %4888 = add nsw i32 %4887, 1
  %4889 = sext i32 %4888 to i64
  %4890 = getelementptr inbounds double, ptr %4884, i64 %4889
  %4891 = call double @dnrm2_(ptr noundef %95, ptr noundef %4890, ptr noundef @c__1)
  %4892 = fdiv double 1.000000e+00, %4891
  store double %4892, ptr %48, align 8, !tbaa !11
  %4893 = load ptr, ptr %24, align 8, !tbaa !5
  %4894 = load i32, ptr %50, align 4, !tbaa !9
  %4895 = load i32, ptr %31, align 4, !tbaa !9
  %4896 = mul nsw i32 %4894, %4895
  %4897 = add nsw i32 %4896, 1
  %4898 = sext i32 %4897 to i64
  %4899 = getelementptr inbounds double, ptr %4893, i64 %4898
  call void @dscal_(ptr noundef %95, ptr noundef %48, ptr noundef %4899, ptr noundef @c__1)
  br label %4900

4900:                                             ; preds = %4883
  %4901 = load i32, ptr %50, align 4, !tbaa !9
  %4902 = add nsw i32 %4901, 1
  store i32 %4902, ptr %50, align 4, !tbaa !9
  br label %4879, !llvm.loop !34

4903:                                             ; preds = %4879
  br label %4904

4904:                                             ; preds = %4903, %4875
  br label %4905

4905:                                             ; preds = %4904, %4847
  %4906 = load double, ptr %92, align 8, !tbaa !11
  %4907 = fcmp ogt double %4906, 1.000000e+00
  br i1 %4907, label %4908, label %4916

4908:                                             ; preds = %4905
  %4909 = load ptr, ptr %22, align 8, !tbaa !5
  %4910 = getelementptr inbounds double, ptr %4909, i64 1
  %4911 = load double, ptr %4910, align 8, !tbaa !11
  %4912 = load double, ptr %85, align 8, !tbaa !11
  %4913 = load double, ptr %92, align 8, !tbaa !11
  %4914 = fdiv double %4912, %4913
  %4915 = fcmp olt double %4911, %4914
  br i1 %4915, label %4935, label %4916

4916:                                             ; preds = %4908, %4905
  %4917 = load double, ptr %92, align 8, !tbaa !11
  %4918 = fcmp olt double %4917, 1.000000e+00
  br i1 %4918, label %4919, label %4958

4919:                                             ; preds = %4916
  %4920 = load ptr, ptr %22, align 8, !tbaa !5
  %4921 = load i32, ptr %68, align 4, !tbaa !9
  %4922 = icmp sge i32 %4921, 1
  br i1 %4922, label %4923, label %4925

4923:                                             ; preds = %4919
  %4924 = load i32, ptr %68, align 4, !tbaa !9
  br label %4926

4925:                                             ; preds = %4919
  br label %4926

4926:                                             ; preds = %4925, %4923
  %4927 = phi i32 [ %4924, %4923 ], [ 1, %4925 ]
  %4928 = sext i32 %4927 to i64
  %4929 = getelementptr inbounds double, ptr %4920, i64 %4928
  %4930 = load double, ptr %4929, align 8, !tbaa !11
  %4931 = load double, ptr %58, align 8, !tbaa !11
  %4932 = load double, ptr %92, align 8, !tbaa !11
  %4933 = fdiv double %4931, %4932
  %4934 = fcmp ogt double %4930, %4933
  br i1 %4934, label %4935, label %4958

4935:                                             ; preds = %4926, %4908
  %4936 = load ptr, ptr %19, align 8, !tbaa !5
  %4937 = load i32, ptr %4936, align 4, !tbaa !9
  store i32 %4937, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %4938

4938:                                             ; preds = %4954, %4935
  %4939 = load i32, ptr %50, align 4, !tbaa !9
  %4940 = load i32, ptr %33, align 4, !tbaa !9
  %4941 = icmp sle i32 %4939, %4940
  br i1 %4941, label %4942, label %4957

4942:                                             ; preds = %4938
  %4943 = load double, ptr %92, align 8, !tbaa !11
  %4944 = load ptr, ptr %22, align 8, !tbaa !5
  %4945 = load i32, ptr %50, align 4, !tbaa !9
  %4946 = sext i32 %4945 to i64
  %4947 = getelementptr inbounds double, ptr %4944, i64 %4946
  %4948 = load double, ptr %4947, align 8, !tbaa !11
  %4949 = fmul double %4943, %4948
  %4950 = load ptr, ptr %22, align 8, !tbaa !5
  %4951 = load i32, ptr %50, align 4, !tbaa !9
  %4952 = sext i32 %4951 to i64
  %4953 = getelementptr inbounds double, ptr %4950, i64 %4952
  store double %4949, ptr %4953, align 8, !tbaa !11
  br label %4954

4954:                                             ; preds = %4942
  %4955 = load i32, ptr %50, align 4, !tbaa !9
  %4956 = add nsw i32 %4955, 1
  store i32 %4956, ptr %50, align 4, !tbaa !9
  br label %4938, !llvm.loop !35

4957:                                             ; preds = %4938
  store double 1.000000e+00, ptr %92, align 8, !tbaa !11
  br label %4958

4958:                                             ; preds = %4957, %4926, %4916
  %4959 = load double, ptr %92, align 8, !tbaa !11
  %4960 = load ptr, ptr %26, align 8, !tbaa !5
  %4961 = getelementptr inbounds double, ptr %4960, i64 1
  store double %4959, ptr %4961, align 8, !tbaa !11
  %4962 = load i32, ptr %69, align 4, !tbaa !9
  %4963 = sitofp i32 %4962 to double
  %4964 = load ptr, ptr %26, align 8, !tbaa !5
  %4965 = getelementptr inbounds double, ptr %4964, i64 2
  store double %4963, ptr %4965, align 8, !tbaa !11
  %4966 = load i32, ptr %68, align 4, !tbaa !9
  %4967 = sitofp i32 %4966 to double
  %4968 = load ptr, ptr %26, align 8, !tbaa !5
  %4969 = getelementptr inbounds double, ptr %4968, i64 3
  store double %4967, ptr %4969, align 8, !tbaa !11
  %4970 = load i32, ptr %49, align 4, !tbaa !9
  %4971 = sitofp i32 %4970 to double
  %4972 = load ptr, ptr %26, align 8, !tbaa !5
  %4973 = getelementptr inbounds double, ptr %4972, i64 4
  store double %4971, ptr %4973, align 8, !tbaa !11
  %4974 = load double, ptr %77, align 8, !tbaa !11
  %4975 = load ptr, ptr %26, align 8, !tbaa !5
  %4976 = getelementptr inbounds double, ptr %4975, i64 5
  store double %4974, ptr %4976, align 8, !tbaa !11
  %4977 = load double, ptr %79, align 8, !tbaa !11
  %4978 = load ptr, ptr %26, align 8, !tbaa !5
  %4979 = getelementptr inbounds double, ptr %4978, i64 6
  store double %4977, ptr %4979, align 8, !tbaa !11
  store i32 1, ptr %101, align 4
  br label %4980

4980:                                             ; preds = %4958, %753, %707, %576, %495, %412, %343, %281, %268
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  ret void
}

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

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

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

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

declare double @dlamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

declare void @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 = !{!"int", !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 i32, align 4
@c__0 = external hidden global i32, align 4
@c__2 = external hidden global i32, align 4

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

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

52:                                               ; preds = %50, %14
  %53 = icmp ne i32 %42, 0
  %54 = icmp ne i32 %43, 0
  %or.cond3 = select i1 %53, i1 true, i1 %54
  br i1 %or.cond3, label %57, label %55

55:                                               ; preds = %52
  %56 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.6) #7
  %.not1616 = icmp eq i32 %56, 0
  br i1 %.not1616, label %90, label %57

57:                                               ; preds = %55, %52
  %58 = icmp ne i32 %44, 0
  %59 = icmp ne i32 %45, 0
  %or.cond5 = select i1 %58, i1 true, i1 %59
  br i1 %or.cond5, label %62, label %60

60:                                               ; preds = %57
  %61 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.6) #7
  %.not1617 = icmp eq i32 %61, 0
  br i1 %.not1617, label %90, label %62

62:                                               ; preds = %60, %57
  %63 = load i32, ptr %3, align 4, !tbaa !5
  %64 = icmp slt i32 %63, 0
  br i1 %64, label %90, label %65

65:                                               ; preds = %62
  %66 = load i32, ptr %4, align 4, !tbaa !5
  %or.cond1681 = icmp ugt i32 %66, %63
  br i1 %or.cond1681, label %90, label %67

67:                                               ; preds = %65
  %68 = load i32, ptr %6, align 4, !tbaa !5
  %69 = icmp slt i32 %68, %63
  br i1 %69, label %90, label %70

70:                                               ; preds = %67
  %71 = load i32, ptr %8, align 4, !tbaa !5
  %72 = icmp slt i32 %71, 0
  br i1 %72, label %90, label %73

73:                                               ; preds = %70
  br i1 %58, label %74, label %77

74:                                               ; preds = %73
  %75 = load i32, ptr %10, align 4, !tbaa !5
  %76 = icmp slt i32 %75, %66
  br i1 %76, label %90, label %77

77:                                               ; preds = %74, %73
  br i1 %59, label %78, label %81

78:                                               ; preds = %77
  %79 = load i32, ptr %10, align 4, !tbaa !5
  %80 = icmp slt i32 %79, %71
  br i1 %80, label %90, label %81

81:                                               ; preds = %78, %77
  br i1 %54, label %82, label %85

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

85:                                               ; preds = %82, %81
  %86 = add nuw nsw i32 %66, %63
  store i32 %86, ptr %15, align 4, !tbaa !5
  %87 = load i32, ptr %12, align 4, !tbaa !5
  %88 = tail call i32 @llvm.umax.i32(i32 %86, i32 6)
  %89 = icmp slt i32 %87, %88
  br i1 %89, label %90, label %92

90:                                               ; preds = %85, %82, %74, %78, %70, %67, %65, %62, %60, %55, %50
  %.sink2292 = phi i32 [ -1, %50 ], [ -2, %55 ], [ -3, %60 ], [ -4, %62 ], [ -5, %65 ], [ -7, %67 ], [ -9, %70 ], [ -11, %78 ], [ -11, %74 ], [ -12, %82 ], [ -13, %85 ]
  %.ph.neg = phi i32 [ 1, %50 ], [ 2, %55 ], [ 3, %60 ], [ 4, %62 ], [ 5, %65 ], [ 7, %67 ], [ 9, %70 ], [ 11, %78 ], [ 11, %74 ], [ 12, %82 ], [ 13, %85 ]
  store i32 %.sink2292, ptr %13, align 4, !tbaa !5
  store i32 %.ph.neg, ptr %15, align 4, !tbaa !5
  %91 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %15, i32 noundef 6) #7
  br label %1830

92:                                               ; preds = %85
  store i32 0, ptr %13, align 4, !tbaa !5
  %93 = load i32, ptr %3, align 4, !tbaa !5
  %94 = icmp eq i32 %93, 0
  br i1 %94, label %1830, label %95

95:                                               ; preds = %92
  %96 = load i32, ptr %4, align 4, !tbaa !5
  %97 = icmp eq i32 %96, 0
  br i1 %97, label %1830, label %98

98:                                               ; preds = %95
  %.not1641 = icmp eq i32 %43, 0
  br i1 %.not1641, label %101, label %99

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

101:                                              ; preds = %98
  %102 = or i32 %42, %44
  %or.cond7 = icmp ne i32 %102, 0
  %or.cond9 = select i1 %or.cond7, i1 true, i1 %59
  %103 = sitofp i32 %93 to double
  br i1 %or.cond9, label %104, label %106

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

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

cdce.call:                                        ; preds = %106
  %118 = sitofp i32 %116 to double
  %119 = tail call double @sqrt(double noundef %118) #7
  br label %cdce.end

cdce.end:                                         ; preds = %106, %cdce.call
  %120 = fdiv double 1.000000e+00, %108
  %121 = fmul double %.01467, %107
  store double %121, ptr %32, align 8, !tbaa !9
  %122 = tail call double @sqrt(double noundef %121) #7
  %123 = load i32, ptr %3, align 4, !tbaa !5
  %124 = sitofp i32 %123 to double
  %125 = fmul double %107, %124
  %126 = fcmp ult double %125, 1.000000e+00
  br i1 %126, label %129, label %127

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

129:                                              ; preds = %cdce.end
  br i1 %58, label %130, label %132

130:                                              ; preds = %129
  %131 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %131, ptr %33, align 4, !tbaa !5
  call void @dlaset_(ptr noundef nonnull @.str.3, ptr noundef nonnull %33, ptr noundef nonnull %4, ptr noundef nonnull @c_b17, ptr noundef nonnull @c_b18, ptr noundef %9, ptr noundef nonnull %10) #7
  %.pre = load i32, ptr %3, align 4, !tbaa !5
  %.pre2264 = sitofp i32 %.pre to double
  br label %135

132:                                              ; preds = %129
  %.not1619 = icmp eq i32 %45, 0
  br i1 %.not1619, label %135, label %133

133:                                              ; preds = %132
  %134 = load i32, ptr %8, align 4, !tbaa !5
  store i32 %134, ptr %33, align 4, !tbaa !5
  br label %135

135:                                              ; preds = %132, %133, %130
  %.pre-phi = phi double [ %124, %132 ], [ %124, %133 ], [ %.pre2264, %130 ]
  %136 = load i32, ptr %4, align 4, !tbaa !5
  %137 = sitofp i32 %136 to double
  %138 = fmul double %.pre-phi, %137
  %139 = call double @sqrt(double noundef %138) #7
  %140 = fdiv double 1.000000e+00, %139
  store double %140, ptr %31, align 8, !tbaa !9
  %141 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %141, ptr %15, align 4, !tbaa !5
  br i1 %49, label %142, label %187

142:                                              ; preds = %135
  store i32 1, ptr %24, align 4, !tbaa !5
  %.not16281785 = icmp slt i32 %141, 1
  br i1 %.not16281785, label %.loopexit1730.thread, label %.lr.ph1789

.lr.ph1789:                                       ; preds = %142
  %143 = add i32 %35, 1
  br label %144

144:                                              ; preds = %.lr.ph1789, %.loopexit1729
  %.01788 = phi i32 [ 1, %.lr.ph1789 ], [ %.1, %.loopexit1729 ]
  %.014561787 = phi i32 [ 1, %.lr.ph1789 ], [ %.11457, %.loopexit1729 ]
  %storemerge16271786 = phi i32 [ 1, %.lr.ph1789 ], [ %185, %.loopexit1729 ]
  store double 0.000000e+00, ptr %20, align 8, !tbaa !9
  store double 1.000000e+00, ptr %21, align 8, !tbaa !9
  %145 = load i32, ptr %3, align 4, !tbaa !5
  %reass.sub = sub i32 %145, %storemerge16271786
  %146 = add i32 %reass.sub, 1
  store i32 %146, ptr %16, align 4, !tbaa !5
  %147 = mul i32 %storemerge16271786, %143
  %148 = sext i32 %147 to i64
  %149 = getelementptr inbounds double, ptr %37, i64 %148
  call void @dlassq_(ptr noundef nonnull %16, ptr noundef %149, ptr noundef nonnull @c__1, ptr noundef nonnull %20, ptr noundef nonnull %21) #7
  %150 = load double, ptr %20, align 8, !tbaa !9
  %151 = fcmp ogt double %150, %112
  br i1 %151, label %152, label %154

152:                                              ; preds = %144
  store i32 -6, ptr %13, align 4, !tbaa !5
  store i32 6, ptr %16, align 4, !tbaa !5
  %153 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %16, i32 noundef 6) #7
  br label %1830

154:                                              ; preds = %144
  %155 = load double, ptr %21, align 8, !tbaa !9
  %156 = call double @sqrt(double noundef %155) #7
  store double %156, ptr %21, align 8, !tbaa !9
  %157 = load double, ptr %20, align 8, !tbaa !9
  %158 = fdiv double %112, %156
  %159 = fcmp olt double %157, %158
  %160 = icmp ne i32 %.01788, 0
  %or.cond11 = and i1 %160, %159
  br i1 %or.cond11, label %161, label %166

161:                                              ; preds = %154
  %162 = fmul double %156, %157
  %163 = load i32, ptr %24, align 4, !tbaa !5
  %164 = sext i32 %163 to i64
  %165 = getelementptr inbounds double, ptr %34, i64 %164
  store double %162, ptr %165, align 8, !tbaa !9
  br label %.loopexit1729

166:                                              ; preds = %154
  %167 = load double, ptr %31, align 8, !tbaa !9
  %168 = fmul double %156, %167
  %169 = fmul double %157, %168
  %170 = load i32, ptr %24, align 4, !tbaa !5
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds double, ptr %34, i64 %171
  store double %169, ptr %172, align 8, !tbaa !9
  %.not1679 = icmp eq i32 %.014561787, 0
  br i1 %.not1679, label %.loopexit1729, label %173

173:                                              ; preds = %166
  %174 = add nsw i32 %170, -1
  store i32 %174, ptr %16, align 4, !tbaa !5
  %.not1680.not1782 = icmp sgt i32 %170, 1
  br i1 %.not1680.not1782, label %.lr.ph1784.preheader, label %.loopexit1729

.lr.ph1784.preheader:                             ; preds = %173
  %wide.trip.count2215 = zext nneg i32 %170 to i64
  %175 = add nsw i64 %wide.trip.count2215, -1
  %min.iters.check2370 = icmp ult i32 %170, 5
  br i1 %min.iters.check2370, label %.lr.ph1784.preheader2454, label %vector.ph2371

vector.ph2371:                                    ; preds = %.lr.ph1784.preheader
  %n.vec2373 = and i64 %175, -4
  %ind.end2374 = or disjoint i64 %n.vec2373, 1
  %broadcast.splatinsert2381 = insertelement <2 x double> poison, double %167, i64 0
  %broadcast.splat2382 = shufflevector <2 x double> %broadcast.splatinsert2381, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2376

vector.body2376:                                  ; preds = %vector.body2376, %vector.ph2371
  %index2377 = phi i64 [ 0, %vector.ph2371 ], [ %index.next2383, %vector.body2376 ]
  %176 = getelementptr double, ptr %7, i64 %index2377
  %177 = getelementptr inbounds i8, ptr %176, i64 16
  %wide.load2379 = load <2 x double>, ptr %176, align 8, !tbaa !9
  %wide.load2380 = load <2 x double>, ptr %177, align 8, !tbaa !9
  %178 = fmul <2 x double> %broadcast.splat2382, %wide.load2379
  %179 = fmul <2 x double> %broadcast.splat2382, %wide.load2380
  store <2 x double> %178, ptr %176, align 8, !tbaa !9
  store <2 x double> %179, ptr %177, align 8, !tbaa !9
  %index.next2383 = add nuw i64 %index2377, 4
  %180 = icmp eq i64 %index.next2383, %n.vec2373
  br i1 %180, label %middle.block2368, label %vector.body2376, !llvm.loop !12

middle.block2368:                                 ; preds = %vector.body2376
  %cmp.n2384 = icmp eq i64 %175, %n.vec2373
  br i1 %cmp.n2384, label %.loopexit1729, label %.lr.ph1784.preheader2454

.lr.ph1784.preheader2454:                         ; preds = %middle.block2368, %.lr.ph1784.preheader
  %indvars.iv2212.ph = phi i64 [ 1, %.lr.ph1784.preheader ], [ %ind.end2374, %middle.block2368 ]
  br label %.lr.ph1784

.lr.ph1784:                                       ; preds = %.lr.ph1784.preheader2454, %.lr.ph1784
  %indvars.iv2212 = phi i64 [ %indvars.iv.next2213, %.lr.ph1784 ], [ %indvars.iv2212.ph, %.lr.ph1784.preheader2454 ]
  %181 = getelementptr inbounds double, ptr %34, i64 %indvars.iv2212
  %182 = load double, ptr %181, align 8, !tbaa !9
  %183 = fmul double %167, %182
  store double %183, ptr %181, align 8, !tbaa !9
  %indvars.iv.next2213 = add nuw nsw i64 %indvars.iv2212, 1
  %exitcond2216.not = icmp eq i64 %indvars.iv.next2213, %wide.trip.count2215
  br i1 %exitcond2216.not, label %.loopexit1729, label %.lr.ph1784, !llvm.loop !16

.loopexit1729:                                    ; preds = %.lr.ph1784, %middle.block2368, %173, %161, %166
  %184 = phi i32 [ %163, %161 ], [ %170, %166 ], [ %170, %173 ], [ %170, %middle.block2368 ], [ %170, %.lr.ph1784 ]
  %.11457 = phi i32 [ %.014561787, %161 ], [ 0, %166 ], [ 0, %173 ], [ 0, %middle.block2368 ], [ 0, %.lr.ph1784 ]
  %.1 = phi i32 [ 1, %161 ], [ 0, %166 ], [ 0, %173 ], [ 0, %middle.block2368 ], [ 0, %.lr.ph1784 ]
  %185 = add nsw i32 %184, 1
  store i32 %185, ptr %24, align 4, !tbaa !5
  %186 = load i32, ptr %15, align 4, !tbaa !5
  %.not1628.not = icmp slt i32 %184, %186
  br i1 %.not1628.not, label %144, label %.loopexit1730, !llvm.loop !17

187:                                              ; preds = %135
  %invariant.gep1774 = getelementptr i8, ptr %37, i64 8
  store i32 1, ptr %24, align 4, !tbaa !5
  %.not16241776 = icmp slt i32 %141, 1
  br i1 %48, label %188, label %228

188:                                              ; preds = %187
  br i1 %.not16241776, label %.loopexit1730.thread, label %.lr.ph1780

.lr.ph1780:                                       ; preds = %188, %.loopexit1731
  %.21779 = phi i32 [ %.3, %.loopexit1731 ], [ 1, %188 ]
  %.214581778 = phi i32 [ %.31459, %.loopexit1731 ], [ 1, %188 ]
  %storemerge16231777 = phi i32 [ %226, %.loopexit1731 ], [ 1, %188 ]
  store double 0.000000e+00, ptr %20, align 8, !tbaa !9
  store double 1.000000e+00, ptr %21, align 8, !tbaa !9
  %189 = mul nsw i32 %storemerge16231777, %35
  %190 = sext i32 %189 to i64
  %gep1775 = getelementptr double, ptr %invariant.gep1774, i64 %190
  call void @dlassq_(ptr noundef nonnull %24, ptr noundef %gep1775, ptr noundef nonnull @c__1, ptr noundef nonnull %20, ptr noundef nonnull %21) #7
  %191 = load double, ptr %20, align 8, !tbaa !9
  %192 = fcmp ogt double %191, %112
  br i1 %192, label %193, label %195

193:                                              ; preds = %.lr.ph1780
  store i32 -6, ptr %13, align 4, !tbaa !5
  store i32 6, ptr %16, align 4, !tbaa !5
  %194 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %16, i32 noundef 6) #7
  br label %1830

195:                                              ; preds = %.lr.ph1780
  %196 = load double, ptr %21, align 8, !tbaa !9
  %197 = call double @sqrt(double noundef %196) #7
  store double %197, ptr %21, align 8, !tbaa !9
  %198 = load double, ptr %20, align 8, !tbaa !9
  %199 = fdiv double %112, %197
  %200 = fcmp olt double %198, %199
  %201 = icmp ne i32 %.21779, 0
  %or.cond13 = and i1 %201, %200
  br i1 %or.cond13, label %202, label %207

202:                                              ; preds = %195
  %203 = fmul double %197, %198
  %204 = load i32, ptr %24, align 4, !tbaa !5
  %205 = sext i32 %204 to i64
  %206 = getelementptr inbounds double, ptr %34, i64 %205
  store double %203, ptr %206, align 8, !tbaa !9
  br label %.loopexit1731

207:                                              ; preds = %195
  %208 = load double, ptr %31, align 8, !tbaa !9
  %209 = fmul double %197, %208
  %210 = fmul double %198, %209
  %211 = load i32, ptr %24, align 4, !tbaa !5
  %212 = sext i32 %211 to i64
  %213 = getelementptr inbounds double, ptr %34, i64 %212
  store double %210, ptr %213, align 8, !tbaa !9
  %.not1625 = icmp eq i32 %.214581778, 0
  br i1 %.not1625, label %.loopexit1731, label %214

214:                                              ; preds = %207
  %215 = add nsw i32 %211, -1
  store i32 %215, ptr %16, align 4, !tbaa !5
  %.not1626.not1771 = icmp sgt i32 %211, 1
  br i1 %.not1626.not1771, label %.lr.ph1773.preheader, label %.loopexit1731

.lr.ph1773.preheader:                             ; preds = %214
  %wide.trip.count2210 = zext nneg i32 %211 to i64
  %216 = add nsw i64 %wide.trip.count2210, -1
  %min.iters.check2353 = icmp ult i32 %211, 5
  br i1 %min.iters.check2353, label %.lr.ph1773.preheader2455, label %vector.ph2354

vector.ph2354:                                    ; preds = %.lr.ph1773.preheader
  %n.vec2356 = and i64 %216, -4
  %ind.end2357 = or disjoint i64 %n.vec2356, 1
  %broadcast.splatinsert2364 = insertelement <2 x double> poison, double %208, i64 0
  %broadcast.splat2365 = shufflevector <2 x double> %broadcast.splatinsert2364, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2359

vector.body2359:                                  ; preds = %vector.body2359, %vector.ph2354
  %index2360 = phi i64 [ 0, %vector.ph2354 ], [ %index.next2366, %vector.body2359 ]
  %217 = getelementptr double, ptr %7, i64 %index2360
  %218 = getelementptr inbounds i8, ptr %217, i64 16
  %wide.load2362 = load <2 x double>, ptr %217, align 8, !tbaa !9
  %wide.load2363 = load <2 x double>, ptr %218, align 8, !tbaa !9
  %219 = fmul <2 x double> %broadcast.splat2365, %wide.load2362
  %220 = fmul <2 x double> %broadcast.splat2365, %wide.load2363
  store <2 x double> %219, ptr %217, align 8, !tbaa !9
  store <2 x double> %220, ptr %218, align 8, !tbaa !9
  %index.next2366 = add nuw i64 %index2360, 4
  %221 = icmp eq i64 %index.next2366, %n.vec2356
  br i1 %221, label %middle.block2351, label %vector.body2359, !llvm.loop !18

middle.block2351:                                 ; preds = %vector.body2359
  %cmp.n2367 = icmp eq i64 %216, %n.vec2356
  br i1 %cmp.n2367, label %.loopexit1731, label %.lr.ph1773.preheader2455

.lr.ph1773.preheader2455:                         ; preds = %middle.block2351, %.lr.ph1773.preheader
  %indvars.iv2207.ph = phi i64 [ 1, %.lr.ph1773.preheader ], [ %ind.end2357, %middle.block2351 ]
  br label %.lr.ph1773

.lr.ph1773:                                       ; preds = %.lr.ph1773.preheader2455, %.lr.ph1773
  %indvars.iv2207 = phi i64 [ %indvars.iv.next2208, %.lr.ph1773 ], [ %indvars.iv2207.ph, %.lr.ph1773.preheader2455 ]
  %222 = getelementptr inbounds double, ptr %34, i64 %indvars.iv2207
  %223 = load double, ptr %222, align 8, !tbaa !9
  %224 = fmul double %208, %223
  store double %224, ptr %222, align 8, !tbaa !9
  %indvars.iv.next2208 = add nuw nsw i64 %indvars.iv2207, 1
  %exitcond2211.not = icmp eq i64 %indvars.iv.next2208, %wide.trip.count2210
  br i1 %exitcond2211.not, label %.loopexit1731, label %.lr.ph1773, !llvm.loop !19

.loopexit1731:                                    ; preds = %.lr.ph1773, %middle.block2351, %214, %202, %207
  %225 = phi i32 [ %204, %202 ], [ %211, %207 ], [ %211, %214 ], [ %211, %middle.block2351 ], [ %211, %.lr.ph1773 ]
  %.31459 = phi i32 [ %.214581778, %202 ], [ 0, %207 ], [ 0, %214 ], [ 0, %middle.block2351 ], [ 0, %.lr.ph1773 ]
  %.3 = phi i32 [ 1, %202 ], [ 0, %207 ], [ 0, %214 ], [ 0, %middle.block2351 ], [ 0, %.lr.ph1773 ]
  %226 = add nsw i32 %225, 1
  store i32 %226, ptr %24, align 4, !tbaa !5
  %227 = load i32, ptr %15, align 4, !tbaa !5
  %.not1624.not = icmp slt i32 %225, %227
  br i1 %.not1624.not, label %.lr.ph1780, label %.loopexit1730, !llvm.loop !20

228:                                              ; preds = %187
  br i1 %.not16241776, label %.loopexit1730.thread, label %.lr.ph1770

.lr.ph1770:                                       ; preds = %228, %.loopexit1733
  %.41769 = phi i32 [ %.5, %.loopexit1733 ], [ 1, %228 ]
  %.414601768 = phi i32 [ %.51461, %.loopexit1733 ], [ 1, %228 ]
  %storemerge1767 = phi i32 [ %266, %.loopexit1733 ], [ 1, %228 ]
  store double 0.000000e+00, ptr %20, align 8, !tbaa !9
  store double 1.000000e+00, ptr %21, align 8, !tbaa !9
  %229 = mul nsw i32 %storemerge1767, %35
  %230 = sext i32 %229 to i64
  %gep = getelementptr double, ptr %invariant.gep1774, i64 %230
  call void @dlassq_(ptr noundef nonnull %3, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef nonnull %20, ptr noundef nonnull %21) #7
  %231 = load double, ptr %20, align 8, !tbaa !9
  %232 = fcmp ogt double %231, %112
  br i1 %232, label %233, label %235

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

235:                                              ; preds = %.lr.ph1770
  %236 = load double, ptr %21, align 8, !tbaa !9
  %237 = call double @sqrt(double noundef %236) #7
  store double %237, ptr %21, align 8, !tbaa !9
  %238 = load double, ptr %20, align 8, !tbaa !9
  %239 = fdiv double %112, %237
  %240 = fcmp olt double %238, %239
  %241 = icmp ne i32 %.41769, 0
  %or.cond15 = and i1 %241, %240
  br i1 %or.cond15, label %242, label %247

242:                                              ; preds = %235
  %243 = fmul double %237, %238
  %244 = load i32, ptr %24, align 4, !tbaa !5
  %245 = sext i32 %244 to i64
  %246 = getelementptr inbounds double, ptr %34, i64 %245
  store double %243, ptr %246, align 8, !tbaa !9
  br label %.loopexit1733

247:                                              ; preds = %235
  %248 = load double, ptr %31, align 8, !tbaa !9
  %249 = fmul double %237, %248
  %250 = fmul double %238, %249
  %251 = load i32, ptr %24, align 4, !tbaa !5
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds double, ptr %34, i64 %252
  store double %250, ptr %253, align 8, !tbaa !9
  %.not1621 = icmp eq i32 %.414601768, 0
  br i1 %.not1621, label %.loopexit1733, label %254

254:                                              ; preds = %247
  %255 = add nsw i32 %251, -1
  store i32 %255, ptr %16, align 4, !tbaa !5
  %.not1622.not1764 = icmp sgt i32 %251, 1
  br i1 %.not1622.not1764, label %.lr.ph.preheader, label %.loopexit1733

.lr.ph.preheader:                                 ; preds = %254
  %wide.trip.count = zext nneg i32 %251 to i64
  %256 = add nsw i64 %wide.trip.count, -1
  %min.iters.check = icmp ult i32 %251, 5
  br i1 %min.iters.check, label %.lr.ph.preheader2457, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph.preheader
  %n.vec = and i64 %256, -4
  %ind.end = or disjoint i64 %n.vec, 1
  %broadcast.splatinsert = insertelement <2 x double> poison, double %248, 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 ]
  %257 = getelementptr double, ptr %7, i64 %index
  %258 = getelementptr inbounds i8, ptr %257, i64 16
  %wide.load = load <2 x double>, ptr %257, align 8, !tbaa !9
  %wide.load2350 = load <2 x double>, ptr %258, align 8, !tbaa !9
  %259 = fmul <2 x double> %broadcast.splat, %wide.load
  %260 = fmul <2 x double> %broadcast.splat, %wide.load2350
  store <2 x double> %259, ptr %257, align 8, !tbaa !9
  store <2 x double> %260, ptr %258, align 8, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %261 = icmp eq i64 %index.next, %n.vec
  br i1 %261, label %middle.block, label %vector.body, !llvm.loop !21

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %256, %n.vec
  br i1 %cmp.n, label %.loopexit1733, label %.lr.ph.preheader2457

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

.lr.ph:                                           ; preds = %.lr.ph.preheader2457, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ %indvars.iv.ph, %.lr.ph.preheader2457 ]
  %262 = getelementptr inbounds double, ptr %34, i64 %indvars.iv
  %263 = load double, ptr %262, align 8, !tbaa !9
  %264 = fmul double %248, %263
  store double %264, ptr %262, align 8, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit1733, label %.lr.ph, !llvm.loop !22

.loopexit1733:                                    ; preds = %.lr.ph, %middle.block, %254, %242, %247
  %265 = phi i32 [ %244, %242 ], [ %251, %247 ], [ %251, %254 ], [ %251, %middle.block ], [ %251, %.lr.ph ]
  %.51461 = phi i32 [ %.414601768, %242 ], [ 0, %247 ], [ 0, %254 ], [ 0, %middle.block ], [ 0, %.lr.ph ]
  %.5 = phi i32 [ 1, %242 ], [ 0, %247 ], [ 0, %254 ], [ 0, %middle.block ], [ 0, %.lr.ph ]
  %266 = add nsw i32 %265, 1
  store i32 %266, ptr %24, align 4, !tbaa !5
  %267 = load i32, ptr %15, align 4, !tbaa !5
  %.not1620.not = icmp slt i32 %265, %267
  br i1 %.not1620.not, label %.lr.ph1770, label %.loopexit1730, !llvm.loop !23

.loopexit1730:                                    ; preds = %.loopexit1733, %.loopexit1731, %.loopexit1729
  %.6 = phi i32 [ %.1, %.loopexit1729 ], [ %.3, %.loopexit1731 ], [ %.5, %.loopexit1733 ]
  %.not1629 = icmp eq i32 %.6, 0
  br i1 %.not1629, label %268, label %.loopexit1730.thread

.loopexit1730.thread:                             ; preds = %228, %188, %142, %.loopexit1730
  store double 1.000000e+00, ptr %31, align 8, !tbaa !9
  br label %268

268:                                              ; preds = %.loopexit1730.thread, %.loopexit1730
  store double 0.000000e+00, ptr %20, align 8, !tbaa !9
  store double %112, ptr %21, align 8, !tbaa !9
  %269 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %269, ptr %15, align 4, !tbaa !5
  %.not16311792 = icmp slt i32 %269, 1
  br i1 %.not16311792, label %.thread, label %.lr.ph1794.preheader

.thread:                                          ; preds = %268
  store i32 1, ptr %24, align 4, !tbaa !5
  br label %285

.lr.ph1794.preheader:                             ; preds = %268
  %270 = add nuw i32 %269, 1
  %wide.trip.count2220 = zext i32 %270 to i64
  br label %.lr.ph1794

.lr.ph1794:                                       ; preds = %.lr.ph1794.preheader, %279
  %indvars.iv2217 = phi i64 [ 1, %.lr.ph1794.preheader ], [ %indvars.iv.next2218, %279 ]
  %271 = phi double [ %112, %.lr.ph1794.preheader ], [ %280, %279 ]
  %272 = phi double [ 0.000000e+00, %.lr.ph1794.preheader ], [ %282, %279 ]
  %273 = getelementptr inbounds double, ptr %34, i64 %indvars.iv2217
  %274 = load double, ptr %273, align 8, !tbaa !9
  %275 = fcmp une double %274, 0.000000e+00
  br i1 %275, label %276, label %279

276:                                              ; preds = %.lr.ph1794
  %277 = fcmp ole double %271, %274
  %278 = select i1 %277, double %271, double %274
  store double %278, ptr %21, align 8, !tbaa !9
  br label %279

279:                                              ; preds = %276, %.lr.ph1794
  %280 = phi double [ %278, %276 ], [ %271, %.lr.ph1794 ]
  %281 = fcmp oge double %272, %274
  %282 = select i1 %281, double %272, double %274
  %indvars.iv.next2218 = add nuw nsw i64 %indvars.iv2217, 1
  %exitcond2221.not = icmp eq i64 %indvars.iv.next2218, %wide.trip.count2220
  br i1 %exitcond2221.not, label %283, label %.lr.ph1794, !llvm.loop !24

283:                                              ; preds = %279
  store double %272, ptr %19, align 8, !tbaa !9
  store double %282, ptr %20, align 8, !tbaa !9
  store i32 %270, ptr %24, align 4, !tbaa !5
  %284 = fcmp oeq double %282, 0.000000e+00
  br i1 %284, label %285, label %289

285:                                              ; preds = %.thread, %283
  %.not1677 = icmp eq i32 %42, 0
  br i1 %.not1677, label %287, label %286

286:                                              ; preds = %285
  call void @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 %287

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

289:                                              ; preds = %283
  %290 = icmp eq i32 %269, 1
  br i1 %290, label %291, label %301

291:                                              ; preds = %289
  %.not1676 = icmp eq i32 %42, 0
  br i1 %.not1676, label %293, label %292

292:                                              ; preds = %291
  call void @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 %22) #7
  br label %293

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

301:                                              ; preds = %289
  %302 = load double, ptr %26, align 8, !tbaa !9
  %303 = load double, ptr %28, align 8, !tbaa !9
  %304 = fdiv double %302, %303
  %305 = call double @sqrt(double noundef %304) #7
  %306 = load i32, ptr %4, align 4, !tbaa !5
  %307 = sitofp i32 %306 to double
  %308 = fdiv double %112, %307
  %309 = call double @sqrt(double noundef %308) #7
  %310 = load double, ptr %20, align 8, !tbaa !9
  %311 = fcmp ugt double %310, %305
  br i1 %311, label %312, label %318

312:                                              ; preds = %301
  %313 = load double, ptr %21, align 8, !tbaa !9
  %314 = fcmp ult double %313, %309
  br i1 %314, label %315, label %318

315:                                              ; preds = %312
  %316 = fcmp ugt double %305, %313
  %317 = fcmp ugt double %310, %309
  %or.cond1682 = select i1 %316, i1 true, i1 %317
  br i1 %or.cond1682, label %322, label %318

318:                                              ; preds = %315, %312, %301
  store double %112, ptr %19, align 8, !tbaa !9
  %319 = fdiv double %309, %310
  %320 = fcmp ole double %112, %319
  %321 = select i1 %320, double %112, double %319
  store double %321, ptr %23, align 8, !tbaa !9
  br label %358

322:                                              ; preds = %315
  %323 = fcmp ugt double %313, %305
  %brmerge = select i1 %323, i1 true, i1 %317
  br i1 %brmerge, label %334, label %324

324:                                              ; preds = %322
  %325 = fdiv double %305, %313
  store double %325, ptr %19, align 8, !tbaa !9
  %326 = load i32, ptr %4, align 4, !tbaa !5
  %327 = sitofp i32 %326 to double
  %328 = call double @sqrt(double noundef %327) #7
  %329 = fmul double %310, %328
  %330 = fdiv double %112, %329
  %331 = load double, ptr %19, align 8
  %332 = fcmp ole double %331, %330
  %333 = select i1 %332, double %331, double %330
  store double %333, ptr %23, align 8, !tbaa !9
  br label %358

334:                                              ; preds = %322
  %335 = fcmp ult double %310, %309
  %or.cond1703 = select i1 %316, i1 true, i1 %335
  br i1 %or.cond1703, label %346, label %336

336:                                              ; preds = %334
  %337 = insertelement <2 x double> poison, double %305, i64 0
  %338 = insertelement <2 x double> %337, double %309, i64 1
  %339 = insertelement <2 x double> poison, double %313, i64 0
  %340 = insertelement <2 x double> %339, double %310, i64 1
  %341 = fdiv <2 x double> %338, %340
  %342 = extractelement <2 x double> %341, i64 0
  store double %342, ptr %19, align 8, !tbaa !9
  %343 = extractelement <2 x double> %341, i64 1
  %344 = fcmp oge double %342, %343
  %345 = select i1 %344, double %342, double %343
  store double %345, ptr %23, align 8, !tbaa !9
  br label %358

346:                                              ; preds = %334
  %or.cond1704 = select i1 %323, i1 true, i1 %335
  br i1 %or.cond1704, label %.thread1702, label %347

347:                                              ; preds = %346
  %348 = fdiv double %305, %313
  store double %348, ptr %19, align 8, !tbaa !9
  %349 = load i32, ptr %4, align 4, !tbaa !5
  %350 = sitofp i32 %349 to double
  %351 = call double @sqrt(double noundef %350) #7
  %352 = load double, ptr %20, align 8, !tbaa !9
  %353 = fmul double %351, %352
  %354 = fdiv double %112, %353
  %355 = load double, ptr %19, align 8
  %356 = fcmp ole double %355, %354
  %357 = select i1 %356, double %355, double %354
  store double %357, ptr %23, align 8, !tbaa !9
  br label %358

.thread1702:                                      ; preds = %346
  store double 1.000000e+00, ptr %23, align 8, !tbaa !9
  br label %362

358:                                              ; preds = %324, %347, %336, %318
  %359 = phi double [ %333, %324 ], [ %357, %347 ], [ %345, %336 ], [ %321, %318 ]
  %360 = fcmp une double %359, 1.000000e+00
  br i1 %360, label %361, label %362

361:                                              ; preds = %358
  call void @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b18, ptr noundef nonnull %23, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %7, ptr noundef nonnull %4, ptr noundef nonnull %22) #7
  %.pre2248 = load double, ptr %23, align 8, !tbaa !9
  br label %362

362:                                              ; preds = %.thread1702, %361, %358
  %363 = phi double [ 1.000000e+00, %.thread1702 ], [ %.pre2248, %361 ], [ 1.000000e+00, %358 ]
  %364 = load double, ptr %31, align 8, !tbaa !9
  %365 = fmul double %363, %364
  store double %365, ptr %31, align 8, !tbaa !9
  %366 = fcmp une double %365, 1.000000e+00
  br i1 %366, label %367, label %370

367:                                              ; preds = %362
  call void @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 %22) #7
  %368 = load double, ptr %31, align 8, !tbaa !9
  %369 = fdiv double 1.000000e+00, %368
  store double %369, ptr %31, align 8, !tbaa !9
  br label %370

370:                                              ; preds = %367, %362
  %371 = load i32, ptr %4, align 4, !tbaa !5
  %372 = add nsw i32 %371, -1
  %373 = mul nsw i32 %372, %371
  %374 = sdiv i32 %373, 2
  store double 0.000000e+00, ptr %27, align 16, !tbaa !9
  %.not16321797 = icmp slt i32 %371, 1
  br i1 %.not16321797, label %._crit_edge1801, label %.lr.ph1800.preheader

.lr.ph1800.preheader:                             ; preds = %370
  %375 = add nuw i32 %371, 1
  %wide.trip.count2225 = zext i32 %375 to i64
  %376 = zext nneg i32 %371 to i64
  %min.iters.check2387 = icmp ult i32 %371, 4
  br i1 %min.iters.check2387, label %.lr.ph1800.preheader2451, label %vector.ph2388

vector.ph2388:                                    ; preds = %.lr.ph1800.preheader
  %n.vec2390 = and i64 %376, 2147483644
  %ind.end2391 = or disjoint i64 %n.vec2390, 1
  br label %vector.body2393

vector.body2393:                                  ; preds = %vector.body2393, %vector.ph2388
  %index2394 = phi i64 [ 0, %vector.ph2388 ], [ %index.next2396, %vector.body2393 ]
  %377 = getelementptr double, ptr %11, i64 %index2394
  %378 = getelementptr inbounds i8, ptr %377, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %377, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %378, align 8, !tbaa !9
  %index.next2396 = add nuw i64 %index2394, 4
  %379 = icmp eq i64 %index.next2396, %n.vec2390
  br i1 %379, label %middle.block2385, label %vector.body2393, !llvm.loop !25

middle.block2385:                                 ; preds = %vector.body2393
  %cmp.n2397 = icmp eq i64 %n.vec2390, %376
  br i1 %cmp.n2397, label %._crit_edge1801, label %.lr.ph1800.preheader2451

.lr.ph1800.preheader2451:                         ; preds = %middle.block2385, %.lr.ph1800.preheader
  %indvars.iv2222.ph = phi i64 [ 1, %.lr.ph1800.preheader ], [ %ind.end2391, %middle.block2385 ]
  br label %.lr.ph1800

.lr.ph1800:                                       ; preds = %.lr.ph1800.preheader2451, %.lr.ph1800
  %indvars.iv2222 = phi i64 [ %indvars.iv.next2223, %.lr.ph1800 ], [ %indvars.iv2222.ph, %.lr.ph1800.preheader2451 ]
  %380 = getelementptr inbounds double, ptr %41, i64 %indvars.iv2222
  store double 1.000000e+00, ptr %380, align 8, !tbaa !9
  %indvars.iv.next2223 = add nuw nsw i64 %indvars.iv2222, 1
  %exitcond2226.not = icmp eq i64 %indvars.iv.next2223, %wide.trip.count2225
  br i1 %exitcond2226.not, label %._crit_edge1801, label %.lr.ph1800, !llvm.loop !26

._crit_edge1801:                                  ; preds = %.lr.ph1800, %middle.block2385, %370
  %spec.select = call i32 @llvm.smin.i32(i32 %371, i32 8)
  %381 = sdiv i32 %371, %spec.select
  %382 = mul nsw i32 %381, %spec.select
  %.not1633 = icmp ne i32 %382, %371
  %383 = zext i1 %.not1633 to i32
  %.01462 = add nsw i32 %381, %383
  %384 = mul nsw i32 %spec.select, %spec.select
  %385 = call i32 @llvm.smin.i32(i32 %371, i32 5)
  %386 = shl i32 %spec.select, 2
  store i32 %386, ptr %16, align 4, !tbaa !5
  %387 = or i32 %47, %46
  %or.cond17.not = icmp ne i32 %387, 0
  %388 = call i32 @llvm.smax.i32(i32 %386, i32 64)
  %389 = icmp sgt i32 %371, %388
  %or.cond1706 = and i1 %or.cond17.not, %389
  br i1 %or.cond1706, label %390, label %550

390:                                              ; preds = %._crit_edge1801
  %391 = lshr i32 %371, 2
  store i32 %391, ptr %30, align 4, !tbaa !5
  %392 = lshr i32 %371, 1
  store i32 %392, ptr %29, align 4, !tbaa !5
  br i1 %49, label %393, label %495

393:                                              ; preds = %390
  %394 = mul nuw nsw i32 %391, 3
  %395 = load i32, ptr %3, align 4, !tbaa !5
  %396 = sub nsw i32 %395, %394
  store i32 %396, ptr %15, align 4, !tbaa !5
  %397 = sub nsw i32 %371, %394
  store i32 %397, ptr %16, align 4, !tbaa !5
  %398 = load i32, ptr %12, align 4, !tbaa !5
  %399 = sub nsw i32 %398, %371
  store i32 %399, ptr %17, align 4, !tbaa !5
  %400 = add nuw nsw i32 %394, 1
  %401 = add i32 %35, 1
  %402 = mul i32 %400, %401
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds double, ptr %37, i64 %403
  %405 = zext nneg i32 %400 to i64
  %406 = getelementptr inbounds double, ptr %41, i64 %405
  %407 = getelementptr inbounds double, ptr %34, i64 %405
  %408 = select i1 %59, i32 1, i32 %400
  %409 = mul nsw i32 %400, %38
  %410 = add nsw i32 %408, %409
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds double, ptr %40, i64 %411
  %413 = zext nneg i32 %371 to i64
  %414 = getelementptr double, ptr %41, i64 %413
  %415 = getelementptr i8, ptr %414, i64 8
  call void @dgsvj0_(ptr noundef %2, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef %404, ptr noundef nonnull %6, ptr noundef nonnull %406, ptr noundef nonnull %407, ptr noundef nonnull %33, ptr noundef %412, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull @c__2, ptr noundef %415, ptr noundef nonnull %17, ptr noundef nonnull %22) #7
  %416 = load i32, ptr %3, align 4, !tbaa !5
  %417 = load i32, ptr %29, align 4, !tbaa !5
  %418 = sub nsw i32 %416, %417
  store i32 %418, ptr %15, align 4, !tbaa !5
  %419 = sub nsw i32 %394, %417
  store i32 %419, ptr %16, align 4, !tbaa !5
  %420 = load i32, ptr %12, align 4, !tbaa !5
  %421 = load i32, ptr %4, align 4, !tbaa !5
  %422 = sub nsw i32 %420, %421
  store i32 %422, ptr %17, align 4, !tbaa !5
  %423 = add nsw i32 %417, 1
  %424 = mul i32 %423, %401
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds double, ptr %37, i64 %425
  %427 = sext i32 %423 to i64
  %428 = getelementptr inbounds double, ptr %41, i64 %427
  %429 = getelementptr inbounds double, ptr %34, i64 %427
  %430 = select i1 %59, i32 1, i32 %423
  %431 = mul nsw i32 %423, %38
  %432 = add nsw i32 %430, %431
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds double, ptr %40, i64 %433
  %435 = sext i32 %421 to i64
  %436 = getelementptr double, ptr %41, i64 %435
  %437 = getelementptr i8, ptr %436, i64 8
  call void @dgsvj0_(ptr noundef %2, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef %426, ptr noundef nonnull %6, ptr noundef nonnull %428, ptr noundef nonnull %429, ptr noundef nonnull %33, ptr noundef %434, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull @c__2, ptr noundef %437, ptr noundef nonnull %17, ptr noundef nonnull %22) #7
  %438 = load i32, ptr %3, align 4, !tbaa !5
  %439 = load i32, ptr %29, align 4, !tbaa !5
  %440 = sub nsw i32 %438, %439
  store i32 %440, ptr %15, align 4, !tbaa !5
  %441 = load i32, ptr %4, align 4, !tbaa !5
  %442 = sub nsw i32 %441, %439
  store i32 %442, ptr %16, align 4, !tbaa !5
  %443 = load i32, ptr %12, align 4, !tbaa !5
  %444 = sub nsw i32 %443, %441
  store i32 %444, ptr %17, align 4, !tbaa !5
  %445 = add nsw i32 %439, 1
  %446 = mul i32 %445, %401
  %447 = sext i32 %446 to i64
  %448 = getelementptr inbounds double, ptr %37, i64 %447
  %449 = sext i32 %445 to i64
  %450 = getelementptr inbounds double, ptr %41, i64 %449
  %451 = getelementptr inbounds double, ptr %34, i64 %449
  %452 = select i1 %59, i32 1, i32 %445
  %453 = mul nsw i32 %445, %38
  %454 = add nsw i32 %452, %453
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds double, ptr %40, i64 %455
  %457 = sext i32 %441 to i64
  %458 = getelementptr double, ptr %41, i64 %457
  %459 = getelementptr i8, ptr %458, i64 8
  call void @dgsvj1_(ptr noundef %2, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull %30, ptr noundef %448, ptr noundef nonnull %6, ptr noundef nonnull %450, ptr noundef nonnull %451, ptr noundef nonnull %33, ptr noundef %456, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull @c__1, ptr noundef %459, ptr noundef nonnull %17, ptr noundef nonnull %22) #7
  %460 = load i32, ptr %3, align 4, !tbaa !5
  %461 = load i32, ptr %30, align 4, !tbaa !5
  %462 = sub nsw i32 %460, %461
  store i32 %462, ptr %15, align 4, !tbaa !5
  %463 = load i32, ptr %29, align 4, !tbaa !5
  %464 = sub nsw i32 %463, %461
  store i32 %464, ptr %16, align 4, !tbaa !5
  %465 = load i32, ptr %12, align 4, !tbaa !5
  %466 = load i32, ptr %4, align 4, !tbaa !5
  %467 = sub nsw i32 %465, %466
  store i32 %467, ptr %17, align 4, !tbaa !5
  %468 = add nsw i32 %461, 1
  %469 = mul i32 %468, %401
  %470 = sext i32 %469 to i64
  %471 = getelementptr inbounds double, ptr %37, i64 %470
  %472 = sext i32 %468 to i64
  %473 = getelementptr inbounds double, ptr %41, i64 %472
  %474 = getelementptr inbounds double, ptr %34, i64 %472
  %475 = select i1 %59, i32 1, i32 %468
  %476 = mul nsw i32 %468, %38
  %477 = add nsw i32 %475, %476
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds double, ptr %40, i64 %478
  %480 = sext i32 %466 to i64
  %481 = getelementptr double, ptr %41, i64 %480
  %482 = getelementptr i8, ptr %481, i64 8
  call void @dgsvj0_(ptr noundef %2, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef %471, ptr noundef nonnull %6, ptr noundef nonnull %473, ptr noundef nonnull %474, ptr noundef nonnull %33, ptr noundef %479, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull @c__1, ptr noundef %482, ptr noundef nonnull %17, ptr noundef nonnull %22) #7
  %483 = load i32, ptr %12, align 4, !tbaa !5
  %484 = load i32, ptr %4, align 4, !tbaa !5
  %485 = sub nsw i32 %483, %484
  store i32 %485, ptr %15, align 4, !tbaa !5
  %486 = sext i32 %484 to i64
  %487 = getelementptr double, ptr %41, i64 %486
  %488 = getelementptr i8, ptr %487, i64 8
  call void @dgsvj0_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %30, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef %7, ptr noundef nonnull %33, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull @c__1, ptr noundef %488, ptr noundef nonnull %15, ptr noundef nonnull %22) #7
  %489 = load i32, ptr %12, align 4, !tbaa !5
  %490 = load i32, ptr %4, align 4, !tbaa !5
  %491 = sub nsw i32 %489, %490
  store i32 %491, ptr %15, align 4, !tbaa !5
  %492 = sext i32 %490 to i64
  %493 = getelementptr double, ptr %41, i64 %492
  %494 = getelementptr i8, ptr %493, i64 8
  call void @dgsvj1_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef %7, ptr noundef nonnull %33, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull @c__1, ptr noundef %494, ptr noundef nonnull %15, ptr noundef nonnull %22) #7
  br label %550

495:                                              ; preds = %390
  br i1 %48, label %496, label %550

496:                                              ; preds = %495
  %497 = load i32, ptr %12, align 4, !tbaa !5
  %498 = sub nsw i32 %497, %371
  store i32 %498, ptr %15, align 4, !tbaa !5
  %499 = zext nneg i32 %371 to i64
  %500 = getelementptr double, ptr %41, i64 %499
  %501 = getelementptr i8, ptr %500, i64 8
  call void @dgsvj0_(ptr noundef %2, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef %7, ptr noundef nonnull %33, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull @c__2, ptr noundef %501, ptr noundef nonnull %15, ptr noundef nonnull %22) #7
  %502 = load i32, ptr %12, align 4, !tbaa !5
  %503 = load i32, ptr %4, align 4, !tbaa !5
  %504 = sub nsw i32 %502, %503
  store i32 %504, ptr %15, align 4, !tbaa !5
  %505 = load i32, ptr %30, align 4, !tbaa !5
  %506 = add nsw i32 %505, 1
  %507 = mul nsw i32 %506, %35
  %508 = sext i32 %507 to i64
  %509 = getelementptr double, ptr %37, i64 %508
  %510 = getelementptr i8, ptr %509, i64 8
  %511 = sext i32 %506 to i64
  %512 = getelementptr inbounds double, ptr %41, i64 %511
  %513 = getelementptr inbounds double, ptr %34, i64 %511
  %514 = select i1 %59, i32 1, i32 %506
  %515 = mul nsw i32 %506, %38
  %516 = add nsw i32 %514, %515
  %517 = sext i32 %516 to i64
  %518 = getelementptr inbounds double, ptr %40, i64 %517
  %519 = sext i32 %503 to i64
  %520 = getelementptr double, ptr %41, i64 %519
  %521 = getelementptr i8, ptr %520, i64 8
  call void @dgsvj0_(ptr noundef %2, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef %510, ptr noundef nonnull %6, ptr noundef nonnull %512, ptr noundef nonnull %513, ptr noundef nonnull %33, ptr noundef %518, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull @c__1, ptr noundef %521, ptr noundef nonnull %15, ptr noundef nonnull %22) #7
  %522 = load i32, ptr %12, align 4, !tbaa !5
  %523 = load i32, ptr %4, align 4, !tbaa !5
  %524 = sub nsw i32 %522, %523
  store i32 %524, ptr %15, align 4, !tbaa !5
  %525 = sext i32 %523 to i64
  %526 = getelementptr double, ptr %41, i64 %525
  %527 = getelementptr i8, ptr %526, i64 8
  call void @dgsvj1_(ptr noundef %2, ptr noundef nonnull %29, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef %7, ptr noundef nonnull %33, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull @c__1, ptr noundef %527, ptr noundef nonnull %15, ptr noundef nonnull %22) #7
  %528 = load i32, ptr %29, align 4, !tbaa !5
  %529 = load i32, ptr %30, align 4, !tbaa !5
  %530 = add nsw i32 %529, %528
  store i32 %530, ptr %15, align 4, !tbaa !5
  %531 = load i32, ptr %12, align 4, !tbaa !5
  %532 = load i32, ptr %4, align 4, !tbaa !5
  %533 = sub nsw i32 %531, %532
  store i32 %533, ptr %16, align 4, !tbaa !5
  %534 = add nsw i32 %528, 1
  %535 = mul nsw i32 %534, %35
  %536 = sext i32 %535 to i64
  %537 = getelementptr double, ptr %37, i64 %536
  %538 = getelementptr i8, ptr %537, i64 8
  %539 = sext i32 %534 to i64
  %540 = getelementptr inbounds double, ptr %41, i64 %539
  %541 = getelementptr inbounds double, ptr %34, i64 %539
  %542 = select i1 %59, i32 1, i32 %534
  %543 = mul nsw i32 %534, %38
  %544 = add nsw i32 %542, %543
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds double, ptr %40, i64 %545
  %547 = sext i32 %532 to i64
  %548 = getelementptr double, ptr %41, i64 %547
  %549 = getelementptr i8, ptr %548, i64 8
  call void @dgsvj0_(ptr noundef %2, ptr noundef nonnull %15, ptr noundef nonnull %30, ptr noundef %538, ptr noundef nonnull %6, ptr noundef nonnull %540, ptr noundef nonnull %541, ptr noundef nonnull %33, ptr noundef %546, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull @c__1, ptr noundef %549, ptr noundef nonnull %16, ptr noundef nonnull %22) #7
  br label %550

550:                                              ; preds = %393, %496, %495, %._crit_edge1801
  %invariant.gep2137 = getelementptr i8, ptr %37, i64 8
  %551 = add i32 %spec.select, -1
  %invariant.gep1916 = getelementptr i8, ptr %40, i64 8
  %552 = getelementptr inbounds i8, ptr %27, i64 16
  %553 = sext i32 %35 to i64
  %554 = sext i32 %38 to i64
  %.not16362124 = icmp slt i32 %.01462, 1
  %555 = insertelement <2 x double> poison, double %111, i64 0
  %556 = shufflevector <2 x double> %555, <2 x double> poison, <2 x i32> zeroinitializer
  br label %557

557:                                              ; preds = %550, %1687
  %.015322142 = phi i32 [ 3, %550 ], [ %.11533, %1687 ]
  %.015392141 = phi i32 [ 1, %550 ], [ %1688, %1687 ]
  store i32 %.01462, ptr %15, align 4, !tbaa !5
  br i1 %.not16362124, label %.._crit_edge2132_crit_edge, label %.lr.ph2131

.._crit_edge2132_crit_edge:                       ; preds = %557
  %.pre2258 = load i32, ptr %4, align 4, !tbaa !5
  br label %._crit_edge2132

.lr.ph2131:                                       ; preds = %557
  %.not1675 = icmp sle i32 %.015392141, %.015322142
  %.not1660 = icmp sgt i32 %.015392141, %.015322142
  br label %560

..loopexit1727_crit_edge:                         ; preds = %.lr.ph2121, %middle.block2398
  %.lcssa = phi double [ %1640, %middle.block2398 ], [ %1642, %.lr.ph2121 ]
  %indvars.iv.next2240.lcssa = phi i64 [ %ind.end2404, %middle.block2398 ], [ %indvars.iv.next2240, %.lr.ph2121 ]
  %558 = trunc nsw i64 %indvars.iv.next2240.lcssa to i32
  store double %.lcssa, ptr %19, align 8, !tbaa !9
  br label %.loopexit1727

.loopexit1727:                                    ; preds = %..loopexit1727_crit_edge, %.loopexit1728
  %storemerge1663.lcssa = phi i32 [ %558, %..loopexit1727_crit_edge ], [ %565, %.loopexit1728 ]
  store i32 %storemerge1663.lcssa, ptr %24, align 4, !tbaa !5
  %559 = load i32, ptr %15, align 4, !tbaa !5
  %.not1636.not = icmp slt i32 %.014632129, %559
  %indvars.iv.next2231 = add i32 %indvars.iv2230, %spec.select
  %indvars.iv.next2238 = add i32 %indvars.iv2237, %spec.select
  br i1 %.not1636.not, label %560, label %._crit_edge2132, !llvm.loop !27

560:                                              ; preds = %.lr.ph2131, %.loopexit1727
  %indvars.iv2237 = phi i32 [ 1, %.lr.ph2131 ], [ %indvars.iv.next2238, %.loopexit1727 ]
  %indvars.iv2230 = phi i32 [ %spec.select, %.lr.ph2131 ], [ %indvars.iv.next2231, %.loopexit1727 ]
  %.014632129 = phi i32 [ 1, %.lr.ph2131 ], [ %1090, %.loopexit1727 ]
  %.014692128 = phi i32 [ 0, %.lr.ph2131 ], [ %.14, %.loopexit1727 ]
  %.014762127 = phi i32 [ 0, %.lr.ph2131 ], [ %.17, %.loopexit1727 ]
  %.114982126 = phi double [ 0.000000e+00, %.lr.ph2131 ], [ %.161513, %.loopexit1727 ]
  %.115172125 = phi double [ 0.000000e+00, %.lr.ph2131 ], [ %.141530, %.loopexit1727 ]
  %561 = sext i32 %indvars.iv2237 to i64
  %562 = sext i32 %indvars.iv2237 to i64
  %563 = add nsw i32 %.014632129, -1
  %564 = mul nsw i32 %563, %spec.select
  %565 = add nsw i32 %564, 1
  %566 = sub nsw i32 %.01462, %.014632129
  store i32 %566, ptr %18, align 4, !tbaa !5
  %567 = call i32 @llvm.smin.i32(i32 %566, i32 1)
  store i32 %567, ptr %16, align 4, !tbaa !5
  %.not16511937 = icmp slt i32 %566, 0
  br i1 %.not16511937, label %._crit_edge1946, label %.lr.ph1945

.lr.ph1945:                                       ; preds = %560, %._crit_edge1932
  %568 = phi i32 [ %1088, %._crit_edge1932 ], [ %567, %560 ]
  %.014641943 = phi i32 [ %570, %._crit_edge1932 ], [ %565, %560 ]
  %.114701942 = phi i32 [ %.21471.lcssa, %._crit_edge1932 ], [ %.014692128, %560 ]
  %.114771941 = phi i32 [ %.21478.lcssa, %._crit_edge1932 ], [ %.014762127, %560 ]
  %.014961940 = phi i32 [ %1089, %._crit_edge1932 ], [ 0, %560 ]
  %.214991939 = phi double [ %.31500.lcssa, %._crit_edge1932 ], [ %.114982126, %560 ]
  %.215181938 = phi double [ %.31519.lcssa, %._crit_edge1932 ], [ %.115172125, %560 ]
  %569 = mul nsw i32 %.014961940, %spec.select
  %570 = add nsw i32 %.014641943, %569
  %571 = add i32 %551, %570
  store i32 %571, ptr %18, align 4, !tbaa !5
  %572 = load i32, ptr %4, align 4, !tbaa !5
  %573 = add nsw i32 %572, -1
  %574 = call i32 @llvm.smin.i32(i32 %571, i32 %573)
  store i32 %574, ptr %17, align 4, !tbaa !5
  store i32 %570, ptr %24, align 4, !tbaa !5
  %.not16671924 = icmp sgt i32 %570, %574
  br i1 %.not16671924, label %._crit_edge1932, label %.lr.ph1931

.lr.ph1931:                                       ; preds = %.lr.ph1945
  %575 = icmp eq i32 %.014961940, 0
  %576 = zext i1 %575 to i32
  br label %577

577:                                              ; preds = %.lr.ph1931, %1084
  %.214711929 = phi i32 [ %.114701942, %.lr.ph1931 ], [ %.7, %1084 ]
  %.214781928 = phi i32 [ %.114771941, %.lr.ph1931 ], [ %.91485, %1084 ]
  %.315001927 = phi double [ %.214991939, %.lr.ph1931 ], [ %.81505, %1084 ]
  %.315191926 = phi double [ %.215181938, %.lr.ph1931 ], [ %.71523, %1084 ]
  %storemerge16661925 = phi i32 [ %570, %.lr.ph1931 ], [ %1086, %1084 ]
  %578 = load i32, ptr %4, align 4, !tbaa !5
  %reass.sub2182 = sub i32 %578, %storemerge16661925
  %579 = add i32 %reass.sub2182, 1
  store i32 %579, ptr %18, align 4, !tbaa !5
  %580 = sext i32 %storemerge16661925 to i64
  %581 = getelementptr inbounds double, ptr %34, i64 %580
  %582 = call i32 @idamax_(ptr noundef nonnull %18, ptr noundef nonnull %581, ptr noundef nonnull @c__1) #7
  %583 = load i32, ptr %24, align 4, !tbaa !5
  %584 = add i32 %582, -1
  %585 = add i32 %584, %583
  %.not1668 = icmp eq i32 %584, 0
  br i1 %.not1668, label %609, label %586

586:                                              ; preds = %577
  %587 = mul nsw i32 %583, %35
  %588 = sext i32 %587 to i64
  %gep1913 = getelementptr double, ptr %invariant.gep2137, i64 %588
  %589 = mul nsw i32 %585, %35
  %590 = sext i32 %589 to i64
  %gep1915 = getelementptr double, ptr %invariant.gep2137, i64 %590
  call void @dswap_(ptr noundef nonnull %3, ptr noundef %gep1913, ptr noundef nonnull @c__1, ptr noundef %gep1915, ptr noundef nonnull @c__1) #7
  br i1 %or.cond5, label %591, label %597

591:                                              ; preds = %586
  %592 = load i32, ptr %24, align 4, !tbaa !5
  %593 = mul nsw i32 %592, %38
  %594 = sext i32 %593 to i64
  %gep1917 = getelementptr double, ptr %invariant.gep1916, i64 %594
  %595 = mul nsw i32 %585, %38
  %596 = sext i32 %595 to i64
  %gep1919 = getelementptr double, ptr %invariant.gep1916, i64 %596
  call void @dswap_(ptr noundef nonnull %33, ptr noundef %gep1917, ptr noundef nonnull @c__1, ptr noundef %gep1919, ptr noundef nonnull @c__1) #7
  br label %597

597:                                              ; preds = %591, %586
  %598 = load i32, ptr %24, align 4, !tbaa !5
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds double, ptr %34, i64 %599
  %601 = load double, ptr %600, align 8, !tbaa !9
  %602 = sext i32 %585 to i64
  %603 = getelementptr inbounds double, ptr %34, i64 %602
  %604 = load double, ptr %603, align 8, !tbaa !9
  store double %604, ptr %600, align 8, !tbaa !9
  store double %601, ptr %603, align 8, !tbaa !9
  %605 = getelementptr inbounds double, ptr %41, i64 %599
  %606 = load double, ptr %605, align 8, !tbaa !9
  store double %606, ptr %23, align 8, !tbaa !9
  %607 = getelementptr inbounds double, ptr %41, i64 %602
  %608 = load double, ptr %607, align 8, !tbaa !9
  store double %608, ptr %605, align 8, !tbaa !9
  store double %606, ptr %607, align 8, !tbaa !9
  br label %609

609:                                              ; preds = %597, %577
  %610 = phi i32 [ %598, %597 ], [ %583, %577 ]
  %611 = sext i32 %610 to i64
  %612 = getelementptr inbounds double, ptr %34, i64 %611
  %613 = load double, ptr %612, align 8, !tbaa !9
  br i1 %575, label %614, label %._crit_edge2250

614:                                              ; preds = %609
  %615 = fcmp olt double %613, %113
  %616 = fcmp ogt double %613, %110
  %or.cond1683 = and i1 %615, %616
  br i1 %or.cond1683, label %617, label %621

617:                                              ; preds = %614
  %618 = mul nsw i32 %610, %35
  %619 = sext i32 %618 to i64
  %gep1923 = getelementptr double, ptr %invariant.gep2137, i64 %619
  %620 = call double @dnrm2_(ptr noundef nonnull %3, ptr noundef %gep1923, ptr noundef nonnull @c__1) #7
  br label %._crit_edge2250.sink.split

621:                                              ; preds = %614
  store double 0.000000e+00, ptr %23, align 8, !tbaa !9
  store double 1.000000e+00, ptr %20, align 8, !tbaa !9
  %622 = mul nsw i32 %610, %35
  %623 = sext i32 %622 to i64
  %gep1921 = getelementptr double, ptr %invariant.gep2137, i64 %623
  call void @dlassq_(ptr noundef nonnull %3, ptr noundef %gep1921, ptr noundef nonnull @c__1, ptr noundef nonnull %23, ptr noundef nonnull %20) #7
  %624 = load double, ptr %23, align 8, !tbaa !9
  %625 = load double, ptr %20, align 8, !tbaa !9
  %626 = call double @sqrt(double noundef %625) #7
  %627 = fmul double %624, %626
  br label %._crit_edge2250.sink.split

._crit_edge2250.sink.split:                       ; preds = %621, %617
  %.sink2296 = phi double [ %620, %617 ], [ %627, %621 ]
  %.sink2300 = load i32, ptr %24, align 4, !tbaa !5
  %628 = sext i32 %.sink2300 to i64
  %629 = getelementptr inbounds double, ptr %41, i64 %628
  %630 = load double, ptr %629, align 8, !tbaa !9
  %631 = fmul double %.sink2296, %630
  %632 = getelementptr inbounds double, ptr %34, i64 %628
  store double %631, ptr %632, align 8, !tbaa !9
  br label %._crit_edge2250

._crit_edge2250:                                  ; preds = %._crit_edge2250.sink.split, %609
  %.pn.pre-phi = phi i64 [ %611, %609 ], [ %628, %._crit_edge2250.sink.split ]
  %storemerge1669 = phi double [ %613, %609 ], [ %631, %._crit_edge2250.sink.split ]
  %.pn.in = phi i32 [ %610, %609 ], [ %.sink2300, %._crit_edge2250.sink.split ]
  store double %storemerge1669, ptr %20, align 8, !tbaa !9
  %633 = fcmp ogt double %storemerge1669, 0.000000e+00
  br i1 %633, label %634, label %1078

634:                                              ; preds = %._crit_edge2250
  %635 = load i32, ptr %4, align 4, !tbaa !5
  %.1684 = call i32 @llvm.smin.i32(i32 %571, i32 %635)
  store i32 %.1684, ptr %18, align 4, !tbaa !5
  br label %636

636:                                              ; preds = %1069, %634
  %indvars.iv2227 = phi i64 [ %indvars.iv.next2228, %1069 ], [ %.pn.pre-phi, %634 ]
  %.41520 = phi double [ %.51521, %1069 ], [ %.315191926, %634 ]
  %.41501 = phi double [ %.61503, %1069 ], [ %.315001927, %634 ]
  %.01491 = phi i32 [ %.21493, %1069 ], [ 0, %634 ]
  %.31479 = phi i32 [ %.71483, %1069 ], [ %.214781928, %634 ]
  %.31472 = phi i32 [ %.51474, %1069 ], [ %.214711929, %634 ]
  %indvars.iv.next2228 = add nsw i64 %indvars.iv2227, 1
  %637 = load i32, ptr %18, align 4, !tbaa !5
  %638 = sext i32 %637 to i64
  %.not1672.not = icmp slt i64 %indvars.iv2227, %638
  br i1 %.not1672.not, label %639, label %.loopexit1726.loopexit

639:                                              ; preds = %636
  %640 = getelementptr double, ptr %7, i64 %indvars.iv2227
  %641 = load double, ptr %640, align 8, !tbaa !9
  store double %641, ptr %21, align 8, !tbaa !9
  %642 = fcmp ogt double %641, 0.000000e+00
  br i1 %642, label %643, label %1067

643:                                              ; preds = %639
  %644 = load double, ptr %20, align 8, !tbaa !9
  %645 = fcmp ult double %641, 1.000000e+00
  br i1 %645, label %686, label %646

646:                                              ; preds = %643
  %647 = fmul double %111, %644
  %648 = fcmp ole double %647, %641
  %649 = fdiv double %112, %641
  %650 = fcmp olt double %644, %649
  %651 = load i32, ptr %24, align 4, !tbaa !5
  %652 = mul nsw i32 %651, %35
  %653 = sext i32 %652 to i64
  %gep1813 = getelementptr double, ptr %invariant.gep2137, i64 %653
  br i1 %650, label %654, label %669

654:                                              ; preds = %646
  %655 = mul nsw i64 %indvars.iv.next2228, %553
  %gep1815 = getelementptr double, ptr %invariant.gep2137, i64 %655
  %656 = call double @ddot_(ptr noundef nonnull %3, ptr noundef %gep1813, ptr noundef nonnull @c__1, ptr noundef %gep1815, ptr noundef nonnull @c__1) #7
  %657 = load i32, ptr %24, align 4, !tbaa !5
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds double, ptr %41, i64 %658
  %660 = load double, ptr %659, align 8, !tbaa !9
  %661 = fmul double %656, %660
  %662 = getelementptr double, ptr %11, i64 %indvars.iv2227
  %663 = load double, ptr %662, align 8, !tbaa !9
  %664 = fmul double %661, %663
  %665 = load double, ptr %21, align 8, !tbaa !9
  %666 = fdiv double %664, %665
  %667 = load double, ptr %20, align 8, !tbaa !9
  %668 = fdiv double %666, %667
  br label %729

669:                                              ; preds = %646
  %670 = load i32, ptr %4, align 4, !tbaa !5
  %671 = sext i32 %670 to i64
  %gep1805 = getelementptr double, ptr %11, i64 %671
  call void @dcopy_(ptr noundef nonnull %3, ptr noundef %gep1813, ptr noundef nonnull @c__1, ptr noundef %gep1805, ptr noundef nonnull @c__1) #7
  %672 = load i32, ptr %24, align 4, !tbaa !5
  %673 = sext i32 %672 to i64
  %674 = getelementptr inbounds double, ptr %41, i64 %673
  %675 = load i32, ptr %4, align 4, !tbaa !5
  %676 = sext i32 %675 to i64
  %gep1807 = getelementptr double, ptr %11, i64 %676
  call void @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %20, ptr noundef nonnull %674, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1807, ptr noundef nonnull %6, ptr noundef nonnull %22) #7
  %677 = load i32, ptr %4, align 4, !tbaa !5
  %678 = sext i32 %677 to i64
  %gep1809 = getelementptr double, ptr %11, i64 %678
  %679 = mul nsw i64 %indvars.iv.next2228, %553
  %gep1811 = getelementptr double, ptr %invariant.gep2137, i64 %679
  %680 = call double @ddot_(ptr noundef nonnull %3, ptr noundef %gep1809, ptr noundef nonnull @c__1, ptr noundef %gep1811, ptr noundef nonnull @c__1) #7
  %681 = getelementptr double, ptr %11, i64 %indvars.iv2227
  %682 = load double, ptr %681, align 8, !tbaa !9
  %683 = fmul double %680, %682
  %684 = load double, ptr %21, align 8, !tbaa !9
  %685 = fdiv double %683, %684
  br label %729

686:                                              ; preds = %643
  %687 = fdiv double %641, %111
  %688 = fcmp ole double %644, %687
  %689 = fdiv double %111, %641
  %690 = fcmp ogt double %644, %689
  br i1 %690, label %691, label %709

691:                                              ; preds = %686
  %692 = load i32, ptr %24, align 4, !tbaa !5
  %693 = mul nsw i32 %692, %35
  %694 = sext i32 %693 to i64
  %gep1827 = getelementptr double, ptr %invariant.gep2137, i64 %694
  %695 = mul nsw i64 %indvars.iv.next2228, %553
  %gep1829 = getelementptr double, ptr %invariant.gep2137, i64 %695
  %696 = call double @ddot_(ptr noundef nonnull %3, ptr noundef %gep1827, ptr noundef nonnull @c__1, ptr noundef %gep1829, ptr noundef nonnull @c__1) #7
  %697 = load i32, ptr %24, align 4, !tbaa !5
  %698 = sext i32 %697 to i64
  %699 = getelementptr inbounds double, ptr %41, i64 %698
  %700 = load double, ptr %699, align 8, !tbaa !9
  %701 = fmul double %696, %700
  %702 = getelementptr double, ptr %11, i64 %indvars.iv2227
  %703 = load double, ptr %702, align 8, !tbaa !9
  %704 = fmul double %701, %703
  %705 = load double, ptr %21, align 8, !tbaa !9
  %706 = fdiv double %704, %705
  %707 = load double, ptr %20, align 8, !tbaa !9
  %708 = fdiv double %706, %707
  br label %729

709:                                              ; preds = %686
  %710 = mul nsw i64 %indvars.iv.next2228, %553
  %gep1817 = getelementptr double, ptr %invariant.gep2137, i64 %710
  %711 = load i32, ptr %4, align 4, !tbaa !5
  %712 = sext i32 %711 to i64
  %gep1819 = getelementptr double, ptr %11, i64 %712
  call void @dcopy_(ptr noundef nonnull %3, ptr noundef %gep1817, ptr noundef nonnull @c__1, ptr noundef %gep1819, ptr noundef nonnull @c__1) #7
  %713 = getelementptr double, ptr %11, i64 %indvars.iv2227
  %714 = load i32, ptr %4, align 4, !tbaa !5
  %715 = sext i32 %714 to i64
  %gep1821 = getelementptr double, ptr %11, i64 %715
  call void @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %21, ptr noundef nonnull %713, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1821, ptr noundef nonnull %6, ptr noundef nonnull %22) #7
  %716 = load i32, ptr %4, align 4, !tbaa !5
  %717 = sext i32 %716 to i64
  %gep1823 = getelementptr double, ptr %11, i64 %717
  %718 = load i32, ptr %24, align 4, !tbaa !5
  %719 = mul nsw i32 %718, %35
  %720 = sext i32 %719 to i64
  %gep1825 = getelementptr double, ptr %invariant.gep2137, i64 %720
  %721 = call double @ddot_(ptr noundef nonnull %3, ptr noundef %gep1823, ptr noundef nonnull @c__1, ptr noundef %gep1825, ptr noundef nonnull @c__1) #7
  %722 = load i32, ptr %24, align 4, !tbaa !5
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds double, ptr %41, i64 %723
  %725 = load double, ptr %724, align 8, !tbaa !9
  %726 = fmul double %721, %725
  %727 = load double, ptr %20, align 8, !tbaa !9
  %728 = fdiv double %726, %727
  br label %729

729:                                              ; preds = %691, %709, %654, %669
  %.01547.in = phi i1 [ %648, %654 ], [ %648, %669 ], [ %688, %691 ], [ %688, %709 ]
  %.01465 = phi double [ %668, %654 ], [ %685, %669 ], [ %708, %691 ], [ %728, %709 ]
  store double %.41520, ptr %19, align 8, !tbaa !9
  %730 = fcmp oge double %.01465, 0.000000e+00
  %731 = fneg double %.01465
  %732 = select i1 %730, double %.01465, double %731
  %733 = fcmp oge double %.41520, %732
  %734 = select i1 %733, double %.41520, double %732
  %735 = load double, ptr %32, align 8, !tbaa !9
  %736 = fcmp ogt double %732, %735
  br i1 %736, label %737, label %1065

737:                                              ; preds = %729
  %.11492 = select i1 %575, i32 0, i32 %.01491
  %.41480 = select i1 %575, i32 0, i32 %.31479
  %.41473 = add nsw i32 %.31472, %576
  br i1 %.01547.in, label %738, label %991

738:                                              ; preds = %737
  %739 = load double, ptr %21, align 8, !tbaa !9
  %740 = load double, ptr %20, align 8, !tbaa !9
  %741 = insertelement <2 x double> poison, double %739, i64 0
  %742 = insertelement <2 x double> %741, double %740, i64 1
  %743 = insertelement <2 x double> poison, double %740, i64 0
  %744 = insertelement <2 x double> %743, double %739, i64 1
  %745 = fdiv <2 x double> %742, %744
  %shift = shufflevector <2 x double> %745, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %746 = fsub <2 x double> %745, %shift
  %747 = extractelement <2 x double> %746, i64 0
  store double %747, ptr %19, align 8, !tbaa !9
  %748 = fcmp oge double %747, 0.000000e+00
  %749 = fneg double %747
  %750 = select i1 %748, double %747, double %749
  %751 = fmul double %750, -5.000000e-01
  %752 = fdiv double %751, %.01465
  %753 = fcmp oge double %752, 0.000000e+00
  %754 = fneg double %752
  %755 = select i1 %753, double %752, double %754
  %756 = fcmp ogt double %755, %120
  br i1 %756, label %757, label %806

757:                                              ; preds = %738
  %758 = fdiv double 5.000000e-01, %752
  store double %758, ptr %25, align 8, !tbaa !9
  %759 = load i32, ptr %24, align 4, !tbaa !5
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds double, ptr %41, i64 %760
  %762 = load double, ptr %761, align 8, !tbaa !9
  %763 = getelementptr double, ptr %11, i64 %indvars.iv2227
  %764 = load double, ptr %763, align 8, !tbaa !9
  %765 = fneg double %758
  %766 = insertelement <2 x double> poison, double %758, i64 0
  %767 = insertelement <2 x double> %766, double %764, i64 1
  %768 = insertelement <2 x double> poison, double %762, i64 0
  %769 = insertelement <2 x double> %768, double %765, i64 1
  %770 = fmul <2 x double> %767, %769
  %771 = insertelement <2 x double> poison, double %764, i64 0
  %772 = insertelement <2 x double> %771, double %762, i64 1
  %773 = fdiv <2 x double> %770, %772
  store <2 x double> %773, ptr %552, align 16, !tbaa !9
  %774 = mul nsw i32 %759, %35
  %775 = sext i32 %774 to i64
  %gep1897 = getelementptr double, ptr %invariant.gep2137, i64 %775
  %776 = mul nsw i64 %indvars.iv.next2228, %553
  %gep1899 = getelementptr double, ptr %invariant.gep2137, i64 %776
  call void @drotm_(ptr noundef nonnull %3, ptr noundef %gep1897, ptr noundef nonnull @c__1, ptr noundef %gep1899, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #7
  br i1 %or.cond5, label %777, label %782

777:                                              ; preds = %757
  %778 = load i32, ptr %24, align 4, !tbaa !5
  %779 = mul nsw i32 %778, %38
  %780 = sext i32 %779 to i64
  %gep1901 = getelementptr double, ptr %invariant.gep1916, i64 %780
  %781 = mul nsw i64 %indvars.iv.next2228, %554
  %gep1903 = getelementptr double, ptr %invariant.gep1916, i64 %781
  call void @drotm_(ptr noundef nonnull %33, ptr noundef %gep1901, ptr noundef nonnull @c__1, ptr noundef %gep1903, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #7
  br label %782

782:                                              ; preds = %777, %757
  %783 = load double, ptr %25, align 8
  %784 = load double, ptr %21, align 8, !tbaa !9
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  %785 = fneg double %783
  %786 = insertelement <2 x double> poison, double %785, i64 0
  %787 = insertelement <2 x double> %786, double %783, i64 1
  %788 = fmul <2 x double> %745, %787
  %789 = insertelement <2 x double> poison, double %.01465, 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
  %sqrt1708 = call double @llvm.sqrt.f64(double %795)
  %796 = fmul double %784, %sqrt1708
  store double %796, ptr %640, 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
  %sqrt = call double @llvm.sqrt.f64(double %799)
  %800 = load double, ptr %20, align 8, !tbaa !9
  %801 = fmul double %800, %sqrt
  store double %801, ptr %20, align 8, !tbaa !9
  %802 = fcmp oge double %783, 0.000000e+00
  %803 = select i1 %802, double %783, double %785
  %804 = fcmp oge double %.41501, %803
  %805 = select i1 %804, double %.41501, double %803
  br label %1018

806:                                              ; preds = %738
  %807 = load double, ptr @c_b18, align 8
  %808 = fcmp oge double %807, 0.000000e+00
  %809 = fneg double %807
  br i1 %730, label %810, label %812

810:                                              ; preds = %806
  %811 = select i1 %808, double %807, double %809
  br label %814

812:                                              ; preds = %806
  %813 = select i1 %808, double %809, double %807
  br label %814

814:                                              ; preds = %812, %810
  %815 = phi double [ %811, %810 ], [ %813, %812 ]
  %816 = fneg double %815
  %817 = call double @llvm.fmuladd.f64(double %752, double %752, double 1.000000e+00)
  %sqrt1712 = call double @llvm.sqrt.f64(double %817)
  %818 = call double @llvm.fmuladd.f64(double %816, double %sqrt1712, double %752)
  %819 = fdiv double 1.000000e+00, %818
  store double %819, ptr %25, align 8, !tbaa !9
  %820 = call double @llvm.fmuladd.f64(double %819, double %819, double 1.000000e+00)
  %821 = fdiv double 1.000000e+00, %820
  %sqrt1711 = call double @llvm.sqrt.f64(double %821)
  %822 = fmul double %819, %sqrt1711
  %823 = fcmp oge double %822, 0.000000e+00
  %824 = fneg double %822
  %825 = select i1 %823, double %822, double %824
  %826 = fcmp oge double %.41501, %825
  %827 = select i1 %826, double %.41501, double %825
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  %828 = fneg double %819
  %829 = insertelement <2 x double> poison, double %828, i64 0
  %830 = insertelement <2 x double> %829, double %819, i64 1
  %831 = fmul <2 x double> %745, %830
  %832 = insertelement <2 x double> poison, double %.01465, i64 0
  %833 = shufflevector <2 x double> %832, <2 x double> poison, <2 x i32> zeroinitializer
  %834 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %831, <2 x double> %833, <2 x double> <double 1.000000e+00, double 1.000000e+00>)
  %835 = fcmp ole <2 x double> %834, zeroinitializer
  %836 = extractelement <2 x i1> %835, i64 1
  %837 = extractelement <2 x double> %834, i64 1
  %838 = select i1 %836, double 0.000000e+00, double %837
  %sqrt1710 = call double @llvm.sqrt.f64(double %838)
  %839 = fmul double %739, %sqrt1710
  store double %839, ptr %640, align 8, !tbaa !9
  %840 = extractelement <2 x i1> %835, i64 0
  %841 = extractelement <2 x double> %834, i64 0
  %842 = select i1 %840, double 0.000000e+00, double %841
  %sqrt1709 = call double @llvm.sqrt.f64(double %842)
  %843 = fmul double %740, %sqrt1709
  store double %843, ptr %20, align 8, !tbaa !9
  %844 = load i32, ptr %24, align 4, !tbaa !5
  %845 = sext i32 %844 to i64
  %846 = getelementptr inbounds double, ptr %41, i64 %845
  %847 = load double, ptr %846, align 8, !tbaa !9
  %848 = getelementptr double, ptr %11, i64 %indvars.iv2227
  %849 = load double, ptr %848, align 8, !tbaa !9
  %850 = insertelement <2 x double> poison, double %849, i64 0
  %851 = insertelement <2 x double> %850, double %847, i64 1
  %852 = insertelement <2 x double> poison, double %847, i64 0
  %853 = insertelement <2 x double> %852, double %849, i64 1
  %854 = fdiv <2 x double> %851, %853
  %855 = fcmp ult double %847, 1.000000e+00
  %856 = fcmp ult double %849, 1.000000e+00
  br i1 %855, label %901, label %857

857:                                              ; preds = %814
  br i1 %856, label %872, label %858

858:                                              ; preds = %857
  %859 = fmul <2 x double> %854, %830
  %860 = shufflevector <2 x double> %859, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  store <2 x double> %860, ptr %552, align 16, !tbaa !9
  %861 = fmul double %sqrt1711, %847
  store double %861, ptr %846, align 8, !tbaa !9
  %862 = load double, ptr %848, align 8, !tbaa !9
  %863 = fmul double %sqrt1711, %862
  store double %863, ptr %848, align 8, !tbaa !9
  %864 = mul nsw i32 %844, %35
  %865 = sext i32 %864 to i64
  %gep1841 = getelementptr double, ptr %invariant.gep2137, i64 %865
  %866 = mul nsw i64 %indvars.iv.next2228, %553
  %gep1843 = getelementptr double, ptr %invariant.gep2137, i64 %866
  call void @drotm_(ptr noundef nonnull %3, ptr noundef %gep1841, ptr noundef nonnull @c__1, ptr noundef %gep1843, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #7
  br i1 %or.cond5, label %867, label %1018

867:                                              ; preds = %858
  %868 = load i32, ptr %24, align 4, !tbaa !5
  %869 = mul nsw i32 %868, %38
  %870 = sext i32 %869 to i64
  %gep1845 = getelementptr double, ptr %invariant.gep1916, i64 %870
  %871 = mul nsw i64 %indvars.iv.next2228, %554
  %gep1847 = getelementptr double, ptr %invariant.gep1916, i64 %871
  call void @drotm_(ptr noundef nonnull %33, ptr noundef %gep1845, ptr noundef nonnull @c__1, ptr noundef %gep1847, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #7
  br label %1018

872:                                              ; preds = %857
  %873 = extractelement <2 x double> %854, i64 0
  %874 = fmul double %873, %828
  store double %874, ptr %19, align 8, !tbaa !9
  %875 = mul nsw i64 %indvars.iv.next2228, %553
  %gep1849 = getelementptr double, ptr %invariant.gep2137, i64 %875
  %876 = mul nsw i32 %844, %35
  %877 = sext i32 %876 to i64
  %gep1851 = getelementptr double, ptr %invariant.gep2137, i64 %877
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1849, ptr noundef nonnull @c__1, ptr noundef %gep1851, ptr noundef nonnull @c__1) #7
  %878 = fmul double %sqrt1711, %822
  %879 = extractelement <2 x double> %854, i64 1
  %880 = fmul double %878, %879
  store double %880, ptr %19, align 8, !tbaa !9
  %881 = load i32, ptr %24, align 4, !tbaa !5
  %882 = mul nsw i32 %881, %35
  %883 = sext i32 %882 to i64
  %gep1853 = getelementptr double, ptr %invariant.gep2137, i64 %883
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1853, ptr noundef nonnull @c__1, ptr noundef %gep1849, ptr noundef nonnull @c__1) #7
  %884 = load i32, ptr %24, align 4, !tbaa !5
  %885 = sext i32 %884 to i64
  %886 = getelementptr inbounds double, ptr %41, i64 %885
  %887 = load double, ptr %886, align 8, !tbaa !9
  %888 = fmul double %sqrt1711, %887
  store double %888, ptr %886, align 8, !tbaa !9
  %889 = load double, ptr %848, align 8, !tbaa !9
  %890 = fdiv double %889, %sqrt1711
  store double %890, ptr %848, align 8, !tbaa !9
  br i1 %or.cond5, label %891, label %1018

891:                                              ; preds = %872
  %892 = load double, ptr %25, align 8, !tbaa !9
  %893 = fneg double %892
  %894 = fmul double %873, %893
  store double %894, ptr %19, align 8, !tbaa !9
  %895 = mul nsw i64 %indvars.iv.next2228, %554
  %gep1855 = getelementptr double, ptr %invariant.gep1916, i64 %895
  %896 = mul nsw i32 %884, %38
  %897 = sext i32 %896 to i64
  %gep1857 = getelementptr double, ptr %invariant.gep1916, i64 %897
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep1855, ptr noundef nonnull @c__1, ptr noundef %gep1857, ptr noundef nonnull @c__1) #7
  store double %880, ptr %19, align 8, !tbaa !9
  %898 = load i32, ptr %24, align 4, !tbaa !5
  %899 = mul nsw i32 %898, %38
  %900 = sext i32 %899 to i64
  %gep1859 = getelementptr double, ptr %invariant.gep1916, i64 %900
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep1859, ptr noundef nonnull @c__1, ptr noundef %gep1855, ptr noundef nonnull @c__1) #7
  br label %1018

901:                                              ; preds = %814
  br i1 %856, label %931, label %902

902:                                              ; preds = %901
  %903 = extractelement <2 x double> %854, i64 1
  %904 = fmul double %903, %819
  store double %904, ptr %19, align 8, !tbaa !9
  %905 = mul nsw i32 %844, %35
  %906 = sext i32 %905 to i64
  %gep1861 = getelementptr double, ptr %invariant.gep2137, i64 %906
  %907 = mul nsw i64 %indvars.iv.next2228, %553
  %gep1863 = getelementptr double, ptr %invariant.gep2137, i64 %907
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1861, ptr noundef nonnull @c__1, ptr noundef %gep1863, ptr noundef nonnull @c__1) #7
  %908 = fneg double %sqrt1711
  %909 = fmul double %822, %908
  %910 = extractelement <2 x double> %854, i64 0
  %911 = fmul double %909, %910
  store double %911, ptr %19, align 8, !tbaa !9
  %912 = load i32, ptr %24, align 4, !tbaa !5
  %913 = mul nsw i32 %912, %35
  %914 = sext i32 %913 to i64
  %gep1865 = getelementptr double, ptr %invariant.gep2137, i64 %914
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1863, ptr noundef nonnull @c__1, ptr noundef %gep1865, ptr noundef nonnull @c__1) #7
  %915 = load i32, ptr %24, align 4, !tbaa !5
  %916 = sext i32 %915 to i64
  %917 = getelementptr inbounds double, ptr %41, i64 %916
  %918 = load double, ptr %917, align 8, !tbaa !9
  %919 = fdiv double %918, %sqrt1711
  store double %919, ptr %917, align 8, !tbaa !9
  %920 = load double, ptr %848, align 8, !tbaa !9
  %921 = fmul double %sqrt1711, %920
  store double %921, ptr %848, align 8, !tbaa !9
  br i1 %or.cond5, label %922, label %1018

922:                                              ; preds = %902
  %923 = load double, ptr %25, align 8, !tbaa !9
  %924 = fmul double %903, %923
  store double %924, ptr %19, align 8, !tbaa !9
  %925 = mul nsw i32 %915, %38
  %926 = sext i32 %925 to i64
  %gep1867 = getelementptr double, ptr %invariant.gep1916, i64 %926
  %927 = mul nsw i64 %indvars.iv.next2228, %554
  %gep1869 = getelementptr double, ptr %invariant.gep1916, i64 %927
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep1867, ptr noundef nonnull @c__1, ptr noundef %gep1869, ptr noundef nonnull @c__1) #7
  store double %911, ptr %19, align 8, !tbaa !9
  %928 = load i32, ptr %24, align 4, !tbaa !5
  %929 = mul nsw i32 %928, %38
  %930 = sext i32 %929 to i64
  %gep1871 = getelementptr double, ptr %invariant.gep1916, i64 %930
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep1869, ptr noundef nonnull @c__1, ptr noundef %gep1871, ptr noundef nonnull @c__1) #7
  br label %1018

931:                                              ; preds = %901
  %932 = fcmp ult double %847, %849
  br i1 %932, label %962, label %933

933:                                              ; preds = %931
  %934 = extractelement <2 x double> %854, i64 0
  %935 = fmul double %934, %828
  store double %935, ptr %19, align 8, !tbaa !9
  %936 = mul nsw i64 %indvars.iv.next2228, %553
  %gep1873 = getelementptr double, ptr %invariant.gep2137, i64 %936
  %937 = mul nsw i32 %844, %35
  %938 = sext i32 %937 to i64
  %gep1875 = getelementptr double, ptr %invariant.gep2137, i64 %938
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1873, ptr noundef nonnull @c__1, ptr noundef %gep1875, ptr noundef nonnull @c__1) #7
  %939 = fmul double %sqrt1711, %822
  %940 = extractelement <2 x double> %854, i64 1
  %941 = fmul double %939, %940
  store double %941, ptr %19, align 8, !tbaa !9
  %942 = load i32, ptr %24, align 4, !tbaa !5
  %943 = mul nsw i32 %942, %35
  %944 = sext i32 %943 to i64
  %gep1877 = getelementptr double, ptr %invariant.gep2137, i64 %944
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1877, ptr noundef nonnull @c__1, ptr noundef %gep1873, ptr noundef nonnull @c__1) #7
  %945 = load i32, ptr %24, align 4, !tbaa !5
  %946 = sext i32 %945 to i64
  %947 = getelementptr inbounds double, ptr %41, i64 %946
  %948 = load double, ptr %947, align 8, !tbaa !9
  %949 = fmul double %sqrt1711, %948
  store double %949, ptr %947, align 8, !tbaa !9
  %950 = load double, ptr %848, align 8, !tbaa !9
  %951 = fdiv double %950, %sqrt1711
  store double %951, ptr %848, align 8, !tbaa !9
  br i1 %or.cond5, label %952, label %1018

952:                                              ; preds = %933
  %953 = load double, ptr %25, align 8, !tbaa !9
  %954 = fneg double %953
  %955 = fmul double %934, %954
  store double %955, ptr %19, align 8, !tbaa !9
  %956 = mul nsw i64 %indvars.iv.next2228, %554
  %gep1879 = getelementptr double, ptr %invariant.gep1916, i64 %956
  %957 = mul nsw i32 %945, %38
  %958 = sext i32 %957 to i64
  %gep1881 = getelementptr double, ptr %invariant.gep1916, i64 %958
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep1879, ptr noundef nonnull @c__1, ptr noundef %gep1881, ptr noundef nonnull @c__1) #7
  store double %941, ptr %19, align 8, !tbaa !9
  %959 = load i32, ptr %24, align 4, !tbaa !5
  %960 = mul nsw i32 %959, %38
  %961 = sext i32 %960 to i64
  %gep1883 = getelementptr double, ptr %invariant.gep1916, i64 %961
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep1883, ptr noundef nonnull @c__1, ptr noundef %gep1879, ptr noundef nonnull @c__1) #7
  br label %1018

962:                                              ; preds = %931
  %963 = extractelement <2 x double> %854, i64 1
  %964 = fmul double %963, %819
  store double %964, ptr %19, align 8, !tbaa !9
  %965 = mul nsw i32 %844, %35
  %966 = sext i32 %965 to i64
  %gep1885 = getelementptr double, ptr %invariant.gep2137, i64 %966
  %967 = mul nsw i64 %indvars.iv.next2228, %553
  %gep1887 = getelementptr double, ptr %invariant.gep2137, i64 %967
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1885, ptr noundef nonnull @c__1, ptr noundef %gep1887, ptr noundef nonnull @c__1) #7
  %968 = fneg double %sqrt1711
  %969 = fmul double %822, %968
  %970 = extractelement <2 x double> %854, i64 0
  %971 = fmul double %969, %970
  store double %971, ptr %19, align 8, !tbaa !9
  %972 = load i32, ptr %24, align 4, !tbaa !5
  %973 = mul nsw i32 %972, %35
  %974 = sext i32 %973 to i64
  %gep1889 = getelementptr double, ptr %invariant.gep2137, i64 %974
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1887, ptr noundef nonnull @c__1, ptr noundef %gep1889, ptr noundef nonnull @c__1) #7
  %975 = load i32, ptr %24, align 4, !tbaa !5
  %976 = sext i32 %975 to i64
  %977 = getelementptr inbounds double, ptr %41, i64 %976
  %978 = load double, ptr %977, align 8, !tbaa !9
  %979 = fdiv double %978, %sqrt1711
  store double %979, ptr %977, align 8, !tbaa !9
  %980 = load double, ptr %848, align 8, !tbaa !9
  %981 = fmul double %sqrt1711, %980
  store double %981, ptr %848, align 8, !tbaa !9
  br i1 %or.cond5, label %982, label %1018

982:                                              ; preds = %962
  %983 = load double, ptr %25, align 8, !tbaa !9
  %984 = fmul double %963, %983
  store double %984, ptr %19, align 8, !tbaa !9
  %985 = mul nsw i32 %975, %38
  %986 = sext i32 %985 to i64
  %gep1891 = getelementptr double, ptr %invariant.gep1916, i64 %986
  %987 = mul nsw i64 %indvars.iv.next2228, %554
  %gep1893 = getelementptr double, ptr %invariant.gep1916, i64 %987
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep1891, ptr noundef nonnull @c__1, ptr noundef %gep1893, ptr noundef nonnull @c__1) #7
  store double %971, ptr %19, align 8, !tbaa !9
  %988 = load i32, ptr %24, align 4, !tbaa !5
  %989 = mul nsw i32 %988, %38
  %990 = sext i32 %989 to i64
  %gep1895 = getelementptr double, ptr %invariant.gep1916, i64 %990
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep1893, ptr noundef nonnull @c__1, ptr noundef %gep1895, ptr noundef nonnull @c__1) #7
  br label %1018

991:                                              ; preds = %737
  %992 = load i32, ptr %24, align 4, !tbaa !5
  %993 = mul nsw i32 %992, %35
  %994 = sext i32 %993 to i64
  %gep1831 = getelementptr double, ptr %invariant.gep2137, i64 %994
  %995 = load i32, ptr %4, align 4, !tbaa !5
  %996 = sext i32 %995 to i64
  %gep1833 = getelementptr double, ptr %11, i64 %996
  call void @dcopy_(ptr noundef nonnull %3, ptr noundef %gep1831, ptr noundef nonnull @c__1, ptr noundef %gep1833, ptr noundef nonnull @c__1) #7
  %997 = load i32, ptr %4, align 4, !tbaa !5
  %998 = sext i32 %997 to i64
  %gep1835 = getelementptr double, ptr %11, i64 %998
  call void @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %20, ptr noundef nonnull @c_b18, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1835, ptr noundef nonnull %6, ptr noundef nonnull %22) #7
  %999 = mul nsw i64 %indvars.iv.next2228, %553
  %gep1837 = getelementptr double, ptr %invariant.gep2137, i64 %999
  call void @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %21, ptr noundef nonnull @c_b18, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1837, ptr noundef nonnull %6, ptr noundef nonnull %22) #7
  %1000 = load i32, ptr %24, align 4, !tbaa !5
  %1001 = sext i32 %1000 to i64
  %1002 = getelementptr inbounds double, ptr %41, i64 %1001
  %1003 = load double, ptr %1002, align 8, !tbaa !9
  %1004 = fmul double %1003, %731
  %1005 = getelementptr double, ptr %11, i64 %indvars.iv2227
  %1006 = load double, ptr %1005, align 8, !tbaa !9
  %1007 = fdiv double %1004, %1006
  store double %1007, ptr %23, align 8, !tbaa !9
  %1008 = load i32, ptr %4, align 4, !tbaa !5
  %1009 = sext i32 %1008 to i64
  %gep1839 = getelementptr double, ptr %11, i64 %1009
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %23, ptr noundef %gep1839, ptr noundef nonnull @c__1, ptr noundef %gep1837, ptr noundef nonnull @c__1) #7
  call void @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b18, ptr noundef nonnull %21, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1837, ptr noundef nonnull %6, ptr noundef nonnull %22) #7
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  %1010 = call double @llvm.fmuladd.f64(double %731, double %.01465, double 1.000000e+00)
  %1011 = load double, ptr %21, align 8, !tbaa !9
  %1012 = fcmp ole double %1010, 0.000000e+00
  %1013 = select i1 %1012, double 0.000000e+00, double %1010
  %sqrt1713 = call double @llvm.sqrt.f64(double %1013)
  %1014 = fmul double %sqrt1713, %1011
  store double %1014, ptr %640, align 8, !tbaa !9
  %1015 = load double, ptr %26, align 8
  %1016 = fcmp oge double %.41501, %1015
  %1017 = select i1 %1016, double %.41501, double %1015
  br label %1018

1018:                                             ; preds = %782, %922, %902, %962, %982, %933, %952, %867, %858, %891, %872, %991
  %.51502 = phi double [ %805, %782 ], [ %827, %867 ], [ %827, %858 ], [ %827, %891 ], [ %827, %872 ], [ %827, %922 ], [ %827, %902 ], [ %827, %952 ], [ %827, %933 ], [ %827, %982 ], [ %827, %962 ], [ %1017, %991 ]
  %1019 = load double, ptr %640, align 8, !tbaa !9
  %1020 = load double, ptr %21, align 8, !tbaa !9
  %1021 = fdiv double %1019, %1020
  store double %1021, ptr %19, align 8, !tbaa !9
  %1022 = fmul double %1021, %1021
  %1023 = fcmp ugt double %1022, %108
  br i1 %1023, label %1039, label %1024

1024:                                             ; preds = %1018
  %1025 = fcmp olt double %1020, %113
  %1026 = fcmp ogt double %1020, %110
  %or.cond1685 = and i1 %1025, %1026
  br i1 %or.cond1685, label %1027, label %1030

1027:                                             ; preds = %1024
  %1028 = mul nsw i64 %indvars.iv.next2228, %553
  %gep1907 = getelementptr double, ptr %invariant.gep2137, i64 %1028
  %1029 = call double @dnrm2_(ptr noundef nonnull %3, ptr noundef %gep1907, ptr noundef nonnull @c__1) #7
  br label %.sink.split

1030:                                             ; preds = %1024
  store double 0.000000e+00, ptr %25, align 8, !tbaa !9
  store double 1.000000e+00, ptr %21, align 8, !tbaa !9
  %1031 = mul nsw i64 %indvars.iv.next2228, %553
  %gep1905 = getelementptr double, ptr %invariant.gep2137, i64 %1031
  call void @dlassq_(ptr noundef nonnull %3, ptr noundef %gep1905, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull %21) #7
  %1032 = load double, ptr %25, align 8, !tbaa !9
  %1033 = load double, ptr %21, align 8, !tbaa !9
  %1034 = call double @sqrt(double noundef %1033) #7
  %1035 = fmul double %1032, %1034
  br label %.sink.split

.sink.split:                                      ; preds = %1030, %1027
  %.sink2302 = phi double [ %1029, %1027 ], [ %1035, %1030 ]
  %1036 = getelementptr double, ptr %11, i64 %indvars.iv2227
  %1037 = load double, ptr %1036, align 8, !tbaa !9
  %1038 = fmul double %.sink2302, %1037
  store double %1038, ptr %640, align 8, !tbaa !9
  br label %1039

1039:                                             ; preds = %.sink.split, %1018
  %1040 = load double, ptr %20, align 8, !tbaa !9
  %1041 = fdiv double %1040, %644
  %1042 = fcmp ugt double %1041, %108
  br i1 %1042, label %1069, label %1043

1043:                                             ; preds = %1039
  %1044 = fcmp olt double %1040, %113
  %1045 = fcmp ogt double %1040, %110
  %or.cond1686 = and i1 %1044, %1045
  br i1 %or.cond1686, label %1046, label %1051

1046:                                             ; preds = %1043
  %1047 = load i32, ptr %24, align 4, !tbaa !5
  %1048 = mul nsw i32 %1047, %35
  %1049 = sext i32 %1048 to i64
  %gep1911 = getelementptr double, ptr %invariant.gep2137, i64 %1049
  %1050 = call double @dnrm2_(ptr noundef nonnull %3, ptr noundef %gep1911, ptr noundef nonnull @c__1) #7
  br label %1059

1051:                                             ; preds = %1043
  store double 0.000000e+00, ptr %25, align 8, !tbaa !9
  store double 1.000000e+00, ptr %20, align 8, !tbaa !9
  %1052 = load i32, ptr %24, align 4, !tbaa !5
  %1053 = mul nsw i32 %1052, %35
  %1054 = sext i32 %1053 to i64
  %gep1909 = getelementptr double, ptr %invariant.gep2137, i64 %1054
  call void @dlassq_(ptr noundef nonnull %3, ptr noundef %gep1909, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull %20) #7
  %1055 = load double, ptr %25, align 8, !tbaa !9
  %1056 = load double, ptr %20, align 8, !tbaa !9
  %1057 = call double @sqrt(double noundef %1056) #7
  %1058 = fmul double %1055, %1057
  br label %1059

1059:                                             ; preds = %1051, %1046
  %.sink2305 = phi double [ %1058, %1051 ], [ %1050, %1046 ]
  %.sink2309 = load i32, ptr %24, align 4, !tbaa !5
  %1060 = sext i32 %.sink2309 to i64
  %1061 = getelementptr inbounds double, ptr %41, i64 %1060
  %1062 = load double, ptr %1061, align 8, !tbaa !9
  %1063 = fmul double %.sink2305, %1062
  store double %1063, ptr %20, align 8, !tbaa !9
  %1064 = getelementptr inbounds double, ptr %34, i64 %1060
  store double %1063, ptr %1064, align 8, !tbaa !9
  br label %1069

1065:                                             ; preds = %729
  %spec.select1687 = add nsw i32 %.31479, %576
  %1066 = add nsw i32 %.01491, 1
  br label %1069

1067:                                             ; preds = %639
  %spec.select1688 = add nsw i32 %.31479, %576
  %1068 = add nsw i32 %.01491, 1
  br label %1069

1069:                                             ; preds = %1065, %1059, %1039, %1067
  %.51521 = phi double [ %734, %1059 ], [ %734, %1039 ], [ %734, %1065 ], [ %.41520, %1067 ]
  %.61503 = phi double [ %.51502, %1059 ], [ %.51502, %1039 ], [ %.41501, %1065 ], [ %.41501, %1067 ]
  %.21493 = phi i32 [ %.11492, %1059 ], [ %.11492, %1039 ], [ %1066, %1065 ], [ %1068, %1067 ]
  %.71483 = phi i32 [ %.41480, %1059 ], [ %.41480, %1039 ], [ %spec.select1687, %1065 ], [ %spec.select1688, %1067 ]
  %.51474 = phi i32 [ %.41473, %1059 ], [ %.41473, %1039 ], [ %.31472, %1065 ], [ %.31472, %1067 ]
  %1070 = icmp sgt i32 %.21493, %385
  %or.cond1689 = select i1 %.not1675, i1 %1070, i1 false
  br i1 %or.cond1689, label %1071, label %636, !llvm.loop !28

1071:                                             ; preds = %1069
  %.pre2253 = load double, ptr %20, align 8, !tbaa !9
  br i1 %575, label %1072, label %.loopexit1726

1072:                                             ; preds = %1071
  %1073 = fneg double %.pre2253
  store double %1073, ptr %20, align 8, !tbaa !9
  br label %.loopexit1726

.loopexit1726.loopexit:                           ; preds = %636
  %.pre2252 = load double, ptr %20, align 8, !tbaa !9
  br label %.loopexit1726

.loopexit1726:                                    ; preds = %.loopexit1726.loopexit, %1071, %1072
  %1074 = phi double [ %1073, %1072 ], [ %.pre2253, %1071 ], [ %.pre2252, %.loopexit1726.loopexit ]
  %.61522 = phi double [ %.51521, %1072 ], [ %.51521, %1071 ], [ %.41520, %.loopexit1726.loopexit ]
  %.71504 = phi double [ %.61503, %1072 ], [ %.61503, %1071 ], [ %.41501, %.loopexit1726.loopexit ]
  %.81484 = phi i32 [ 0, %1072 ], [ 0, %1071 ], [ %.31479, %.loopexit1726.loopexit ]
  %.61475 = phi i32 [ %.51474, %1072 ], [ %.51474, %1071 ], [ %.31472, %.loopexit1726.loopexit ]
  %1075 = load i32, ptr %24, align 4, !tbaa !5
  %1076 = sext i32 %1075 to i64
  %1077 = getelementptr inbounds double, ptr %34, i64 %1076
  store double %1074, ptr %1077, align 8, !tbaa !9
  br label %1084

1078:                                             ; preds = %._crit_edge2250
  %1079 = fcmp oeq double %storemerge1669, 0.000000e+00
  %or.cond19 = and i1 %575, %1079
  br i1 %or.cond19, label %1080, label %1084

1080:                                             ; preds = %1078
  store i32 %571, ptr %18, align 4, !tbaa !5
  %1081 = load i32, ptr %4, align 4, !tbaa !5
  %.1690 = call i32 @llvm.smin.i32(i32 %571, i32 %1081)
  %1082 = sub i32 %.214781928, %.pn.in
  %1083 = add i32 %1082, %.1690
  br label %1084

1084:                                             ; preds = %.loopexit1726, %1080, %1078
  %1085 = phi i32 [ %1075, %.loopexit1726 ], [ %.pn.in, %1080 ], [ %.pn.in, %1078 ]
  %.71523 = phi double [ %.61522, %.loopexit1726 ], [ %.315191926, %1080 ], [ %.315191926, %1078 ]
  %.81505 = phi double [ %.71504, %.loopexit1726 ], [ %.315001927, %1080 ], [ %.315001927, %1078 ]
  %.91485 = phi i32 [ %.81484, %.loopexit1726 ], [ %1083, %1080 ], [ %.214781928, %1078 ]
  %.7 = phi i32 [ %.61475, %.loopexit1726 ], [ %.214711929, %1080 ], [ %.214711929, %1078 ]
  %1086 = add nsw i32 %1085, 1
  store i32 %1086, ptr %24, align 4, !tbaa !5
  %1087 = load i32, ptr %17, align 4, !tbaa !5
  %.not1667.not = icmp slt i32 %1085, %1087
  br i1 %.not1667.not, label %577, label %._crit_edge1932.loopexit, !llvm.loop !29

._crit_edge1932.loopexit:                         ; preds = %1084
  %.pre2254 = load i32, ptr %16, align 4, !tbaa !5
  br label %._crit_edge1932

._crit_edge1932:                                  ; preds = %._crit_edge1932.loopexit, %.lr.ph1945
  %1088 = phi i32 [ %568, %.lr.ph1945 ], [ %.pre2254, %._crit_edge1932.loopexit ]
  %.31519.lcssa = phi double [ %.215181938, %.lr.ph1945 ], [ %.71523, %._crit_edge1932.loopexit ]
  %.31500.lcssa = phi double [ %.214991939, %.lr.ph1945 ], [ %.81505, %._crit_edge1932.loopexit ]
  %.21478.lcssa = phi i32 [ %.114771941, %.lr.ph1945 ], [ %.91485, %._crit_edge1932.loopexit ]
  %.21471.lcssa = phi i32 [ %.114701942, %.lr.ph1945 ], [ %.7, %._crit_edge1932.loopexit ]
  %1089 = add nuw nsw i32 %.014961940, 1
  %.not1651.not = icmp slt i32 %.014961940, %1088
  br i1 %.not1651.not, label %.lr.ph1945, label %._crit_edge1946, !llvm.loop !30

._crit_edge1946:                                  ; preds = %._crit_edge1932, %560
  %.21518.lcssa = phi double [ %.115172125, %560 ], [ %.31519.lcssa, %._crit_edge1932 ]
  %.21499.lcssa = phi double [ %.114982126, %560 ], [ %.31500.lcssa, %._crit_edge1932 ]
  %.11477.lcssa = phi i32 [ %.014762127, %560 ], [ %.21478.lcssa, %._crit_edge1932 ]
  %.11470.lcssa = phi i32 [ %.014692128, %560 ], [ %.21471.lcssa, %._crit_edge1932 ]
  store i32 %.01462, ptr %16, align 4, !tbaa !5
  %1090 = add nuw nsw i32 %.014632129, 1
  %.not16522106.not = icmp slt i32 %.014632129, %.01462
  %1091 = mul i32 %.014632129, %spec.select
  br i1 %.not16522106.not, label %.lr.ph2113, label %.loopexit1728

.lr.ph2113:                                       ; preds = %._crit_edge1946, %._crit_edge2101
  %1092 = phi i32 [ %1626, %._crit_edge2101 ], [ %.01462, %._crit_edge1946 ]
  %indvars.iv2232 = phi i32 [ %indvars.iv.next2233, %._crit_edge2101 ], [ %indvars.iv2230, %._crit_edge1946 ]
  %.014682111 = phi i32 [ %1627, %._crit_edge2101 ], [ %1090, %._crit_edge1946 ]
  %.82110 = phi i32 [ %.9.lcssa, %._crit_edge2101 ], [ %.11470.lcssa, %._crit_edge1946 ]
  %.1014862109 = phi i32 [ %.111487.lcssa, %._crit_edge2101 ], [ %.11477.lcssa, %._crit_edge1946 ]
  %.915062108 = phi double [ %.101507.lcssa, %._crit_edge2101 ], [ %.21499.lcssa, %._crit_edge1946 ]
  %.815242107 = phi double [ %.91525.lcssa, %._crit_edge2101 ], [ %.21518.lcssa, %._crit_edge1946 ]
  %1093 = sext i32 %indvars.iv2232 to i64
  %1094 = add nsw i32 %.014682111, -1
  %1095 = mul nsw i32 %1094, %spec.select
  store i32 %1091, ptr %18, align 4, !tbaa !5
  %1096 = load i32, ptr %4, align 4, !tbaa !5
  %.1691 = call i32 @llvm.smin.i32(i32 %1091, i32 %1096)
  store i32 %.1691, ptr %17, align 4, !tbaa !5
  store i32 %565, ptr %24, align 4, !tbaa !5
  %.not16552092.not = icmp slt i32 %564, %.1691
  br i1 %.not16552092.not, label %.lr.ph2100, label %._crit_edge2101

.lr.ph2100:                                       ; preds = %.lr.ph2113
  %1097 = mul i32 %.014682111, %spec.select
  br label %1098

1098:                                             ; preds = %.lr.ph2100, %1622
  %1099 = phi i32 [ %.1691, %.lr.ph2100 ], [ %1623, %1622 ]
  %.92098 = phi i32 [ %.82110, %.lr.ph2100 ], [ %.13, %1622 ]
  %.1114872097 = phi i32 [ %.1014862109, %.lr.ph2100 ], [ %.16, %1622 ]
  %.1015072096 = phi double [ %.915062108, %.lr.ph2100 ], [ %.151512, %1622 ]
  %.915252095 = phi double [ %.815242107, %.lr.ph2100 ], [ %.131529, %1622 ]
  %.015342094 = phi i32 [ 0, %.lr.ph2100 ], [ %.41538, %1622 ]
  %storemerge16542093 = phi i32 [ %565, %.lr.ph2100 ], [ %1625, %1622 ]
  %1100 = sext i32 %storemerge16542093 to i64
  %1101 = getelementptr inbounds double, ptr %34, i64 %1100
  %1102 = load double, ptr %1101, align 8, !tbaa !9
  store double %1102, ptr %20, align 8, !tbaa !9
  %1103 = fcmp ogt double %1102, 0.000000e+00
  br i1 %1103, label %1104, label %1613

1104:                                             ; preds = %1098
  %1105 = load i32, ptr %4, align 4, !tbaa !5
  %.1692 = call i32 @llvm.smin.i32(i32 %1097, i32 %1105)
  store i32 %.1692, ptr %18, align 4, !tbaa !5
  %.not16582075.not = icmp slt i32 %1095, %.1692
  br i1 %.not16582075.not, label %.lr.ph2086, label %.loopexit1725

1106:                                             ; preds = %1604
  %1107 = load i32, ptr %18, align 4, !tbaa !5
  %1108 = sext i32 %1107 to i64
  %.not1658.not = icmp slt i64 %indvars.iv.next2235, %1108
  br i1 %.not1658.not, label %.lr.ph2086, label %.loopexit1725.loopexit, !llvm.loop !31

.lr.ph2086:                                       ; preds = %1104, %1106
  %indvars.iv2234 = phi i64 [ %indvars.iv.next2235, %1106 ], [ %1093, %1104 ]
  %.102084 = phi i32 [ %.11, %1106 ], [ %.92098, %1104 ]
  %.1214882083 = phi i32 [ %.131489, %1106 ], [ %.1114872097, %1104 ]
  %.314942082 = phi i32 [ %.41495, %1106 ], [ 0, %1104 ]
  %.1115082081 = phi double [ %.131510, %1106 ], [ %.1015072096, %1104 ]
  %.1015262080 = phi double [ %.111527, %1106 ], [ %.915252095, %1104 ]
  %.115352079 = phi i32 [ %.21536, %1106 ], [ %.015342094, %1104 ]
  %indvars.iv.next2235 = add nsw i64 %indvars.iv2234, 1
  %1109 = getelementptr double, ptr %7, i64 %indvars.iv2234
  %1110 = load double, ptr %1109, align 8, !tbaa !9
  store double %1110, ptr %21, align 8, !tbaa !9
  %1111 = fcmp ogt double %1110, 0.000000e+00
  br i1 %1111, label %1112, label %1594

1112:                                             ; preds = %.lr.ph2086
  %1113 = load double, ptr %20, align 8, !tbaa !9
  %1114 = fcmp ult double %1110, 1.000000e+00
  %1115 = fcmp ult double %1113, %1110
  br i1 %1114, label %1158, label %1116

1116:                                             ; preds = %1112
  %1117 = fmul double %111, %1113
  %1118 = fcmp ole double %1117, %1110
  %1119 = fmul double %111, %1110
  %1120 = fcmp ole double %1119, %1113
  %.11548.in = select i1 %1115, i1 %1120, i1 %1118
  %1121 = fdiv double %112, %1110
  %1122 = fcmp olt double %1113, %1121
  %1123 = load i32, ptr %24, align 4, !tbaa !5
  %1124 = mul nsw i32 %1123, %35
  %1125 = sext i32 %1124 to i64
  %gep1962 = getelementptr double, ptr %invariant.gep2137, i64 %1125
  br i1 %1122, label %1126, label %1141

1126:                                             ; preds = %1116
  %1127 = mul nsw i64 %indvars.iv.next2235, %553
  %gep1964 = getelementptr double, ptr %invariant.gep2137, i64 %1127
  %1128 = call double @ddot_(ptr noundef nonnull %3, ptr noundef %gep1962, ptr noundef nonnull @c__1, ptr noundef %gep1964, ptr noundef nonnull @c__1) #7
  %1129 = load i32, ptr %24, align 4, !tbaa !5
  %1130 = sext i32 %1129 to i64
  %1131 = getelementptr inbounds double, ptr %41, i64 %1130
  %1132 = load double, ptr %1131, align 8, !tbaa !9
  %1133 = fmul double %1128, %1132
  %1134 = getelementptr double, ptr %11, i64 %indvars.iv2234
  %1135 = load double, ptr %1134, align 8, !tbaa !9
  %1136 = fmul double %1133, %1135
  %1137 = load double, ptr %21, align 8, !tbaa !9
  %1138 = fdiv double %1136, %1137
  %1139 = load double, ptr %20, align 8, !tbaa !9
  %1140 = fdiv double %1138, %1139
  br label %1207

1141:                                             ; preds = %1116
  %1142 = load i32, ptr %4, align 4, !tbaa !5
  %1143 = sext i32 %1142 to i64
  %gep1954 = getelementptr double, ptr %11, i64 %1143
  call void @dcopy_(ptr noundef nonnull %3, ptr noundef %gep1962, ptr noundef nonnull @c__1, ptr noundef %gep1954, ptr noundef nonnull @c__1) #7
  %1144 = load i32, ptr %24, align 4, !tbaa !5
  %1145 = sext i32 %1144 to i64
  %1146 = getelementptr inbounds double, ptr %41, i64 %1145
  %1147 = load i32, ptr %4, align 4, !tbaa !5
  %1148 = sext i32 %1147 to i64
  %gep1956 = getelementptr double, ptr %11, i64 %1148
  call void @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %20, ptr noundef nonnull %1146, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1956, ptr noundef nonnull %6, ptr noundef nonnull %22) #7
  %1149 = load i32, ptr %4, align 4, !tbaa !5
  %1150 = sext i32 %1149 to i64
  %gep1958 = getelementptr double, ptr %11, i64 %1150
  %1151 = mul nsw i64 %indvars.iv.next2235, %553
  %gep1960 = getelementptr double, ptr %invariant.gep2137, i64 %1151
  %1152 = call double @ddot_(ptr noundef nonnull %3, ptr noundef %gep1958, ptr noundef nonnull @c__1, ptr noundef %gep1960, ptr noundef nonnull @c__1) #7
  %1153 = getelementptr double, ptr %11, i64 %indvars.iv2234
  %1154 = load double, ptr %1153, align 8, !tbaa !9
  %1155 = fmul double %1152, %1154
  %1156 = load double, ptr %21, align 8, !tbaa !9
  %1157 = fdiv double %1155, %1156
  br label %1207

1158:                                             ; preds = %1112
  %1159 = insertelement <2 x double> poison, double %1110, i64 0
  %1160 = insertelement <2 x double> %1159, double %1113, i64 1
  %1161 = fdiv <2 x double> %1160, %556
  %1162 = insertelement <2 x double> poison, double %1113, i64 0
  %1163 = insertelement <2 x double> %1162, double %1110, i64 1
  %1164 = fcmp ole <2 x double> %1163, %1161
  %1165 = extractelement <2 x i1> %1164, i64 0
  %1166 = extractelement <2 x i1> %1164, i64 1
  %.21549.in = select i1 %1115, i1 %1166, i1 %1165
  %1167 = fdiv double %111, %1110
  %1168 = fcmp ogt double %1113, %1167
  br i1 %1168, label %1169, label %1187

1169:                                             ; preds = %1158
  %1170 = load i32, ptr %24, align 4, !tbaa !5
  %1171 = mul nsw i32 %1170, %35
  %1172 = sext i32 %1171 to i64
  %gep1976 = getelementptr double, ptr %invariant.gep2137, i64 %1172
  %1173 = mul nsw i64 %indvars.iv.next2235, %553
  %gep1978 = getelementptr double, ptr %invariant.gep2137, i64 %1173
  %1174 = call double @ddot_(ptr noundef nonnull %3, ptr noundef %gep1976, ptr noundef nonnull @c__1, ptr noundef %gep1978, ptr noundef nonnull @c__1) #7
  %1175 = load i32, ptr %24, align 4, !tbaa !5
  %1176 = sext i32 %1175 to i64
  %1177 = getelementptr inbounds double, ptr %41, i64 %1176
  %1178 = load double, ptr %1177, align 8, !tbaa !9
  %1179 = fmul double %1174, %1178
  %1180 = getelementptr double, ptr %11, i64 %indvars.iv2234
  %1181 = load double, ptr %1180, align 8, !tbaa !9
  %1182 = fmul double %1179, %1181
  %1183 = load double, ptr %21, align 8, !tbaa !9
  %1184 = fdiv double %1182, %1183
  %1185 = load double, ptr %20, align 8, !tbaa !9
  %1186 = fdiv double %1184, %1185
  br label %1207

1187:                                             ; preds = %1158
  %1188 = mul nsw i64 %indvars.iv.next2235, %553
  %gep1966 = getelementptr double, ptr %invariant.gep2137, i64 %1188
  %1189 = load i32, ptr %4, align 4, !tbaa !5
  %1190 = sext i32 %1189 to i64
  %gep1968 = getelementptr double, ptr %11, i64 %1190
  call void @dcopy_(ptr noundef nonnull %3, ptr noundef %gep1966, ptr noundef nonnull @c__1, ptr noundef %gep1968, ptr noundef nonnull @c__1) #7
  %1191 = getelementptr double, ptr %11, i64 %indvars.iv2234
  %1192 = load i32, ptr %4, align 4, !tbaa !5
  %1193 = sext i32 %1192 to i64
  %gep1970 = getelementptr double, ptr %11, i64 %1193
  call void @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %21, ptr noundef nonnull %1191, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1970, ptr noundef nonnull %6, ptr noundef nonnull %22) #7
  %1194 = load i32, ptr %4, align 4, !tbaa !5
  %1195 = sext i32 %1194 to i64
  %gep1972 = getelementptr double, ptr %11, i64 %1195
  %1196 = load i32, ptr %24, align 4, !tbaa !5
  %1197 = mul nsw i32 %1196, %35
  %1198 = sext i32 %1197 to i64
  %gep1974 = getelementptr double, ptr %invariant.gep2137, i64 %1198
  %1199 = call double @ddot_(ptr noundef nonnull %3, ptr noundef %gep1972, ptr noundef nonnull @c__1, ptr noundef %gep1974, ptr noundef nonnull @c__1) #7
  %1200 = load i32, ptr %24, align 4, !tbaa !5
  %1201 = sext i32 %1200 to i64
  %1202 = getelementptr inbounds double, ptr %41, i64 %1201
  %1203 = load double, ptr %1202, align 8, !tbaa !9
  %1204 = fmul double %1199, %1203
  %1205 = load double, ptr %20, align 8, !tbaa !9
  %1206 = fdiv double %1204, %1205
  br label %1207

1207:                                             ; preds = %1169, %1187, %1126, %1141
  %.31550.in = phi i1 [ %.11548.in, %1126 ], [ %.11548.in, %1141 ], [ %.21549.in, %1169 ], [ %.21549.in, %1187 ]
  %.11466 = phi double [ %1140, %1126 ], [ %1157, %1141 ], [ %1186, %1169 ], [ %1206, %1187 ]
  store double %.1015262080, ptr %19, align 8, !tbaa !9
  %1208 = fcmp oge double %.11466, 0.000000e+00
  %1209 = fneg double %.11466
  %1210 = select i1 %1208, double %.11466, double %1209
  %1211 = fcmp oge double %.1015262080, %1210
  %1212 = select i1 %1211, double %.1015262080, double %1210
  %1213 = load double, ptr %32, align 8, !tbaa !9
  %1214 = fcmp ogt double %1210, %1213
  br i1 %1214, label %1215, label %1590

1215:                                             ; preds = %1207
  %1216 = add nsw i32 %.102084, 1
  br i1 %.31550.in, label %1217, label %1476

1217:                                             ; preds = %1215
  %1218 = load double, ptr %21, align 8, !tbaa !9
  %1219 = load double, ptr %20, align 8, !tbaa !9
  %1220 = insertelement <2 x double> poison, double %1218, i64 0
  %1221 = insertelement <2 x double> %1220, double %1219, i64 1
  %1222 = insertelement <2 x double> poison, double %1219, i64 0
  %1223 = insertelement <2 x double> %1222, double %1218, i64 1
  %1224 = fdiv <2 x double> %1221, %1223
  %shift2430 = shufflevector <2 x double> %1224, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %1225 = fsub <2 x double> %1224, %shift2430
  %1226 = extractelement <2 x double> %1225, i64 0
  store double %1226, ptr %19, align 8, !tbaa !9
  %1227 = fcmp oge double %1226, 0.000000e+00
  %1228 = fneg double %1226
  %1229 = select i1 %1227, double %1226, double %1228
  %1230 = fmul double %1229, -5.000000e-01
  %1231 = fdiv double %1230, %.11466
  %1232 = fcmp ogt double %1218, %1113
  %1233 = fneg double %1231
  %.01551 = select i1 %1232, double %1233, double %1231
  %1234 = fcmp oge double %.01551, 0.000000e+00
  %1235 = fneg double %.01551
  %1236 = select i1 %1234, double %.01551, double %1235
  %1237 = fcmp ogt double %1236, %120
  br i1 %1237, label %1238, label %1287

1238:                                             ; preds = %1217
  %1239 = fdiv double 5.000000e-01, %.01551
  store double %1239, ptr %25, align 8, !tbaa !9
  %1240 = load i32, ptr %24, align 4, !tbaa !5
  %1241 = sext i32 %1240 to i64
  %1242 = getelementptr inbounds double, ptr %41, i64 %1241
  %1243 = load double, ptr %1242, align 8, !tbaa !9
  %1244 = getelementptr double, ptr %11, i64 %indvars.iv2234
  %1245 = load double, ptr %1244, align 8, !tbaa !9
  %1246 = fneg double %1239
  %1247 = insertelement <2 x double> poison, double %1239, i64 0
  %1248 = insertelement <2 x double> %1247, double %1245, i64 1
  %1249 = insertelement <2 x double> poison, double %1243, i64 0
  %1250 = insertelement <2 x double> %1249, double %1246, i64 1
  %1251 = fmul <2 x double> %1248, %1250
  %1252 = insertelement <2 x double> poison, double %1245, i64 0
  %1253 = insertelement <2 x double> %1252, double %1243, i64 1
  %1254 = fdiv <2 x double> %1251, %1253
  store <2 x double> %1254, ptr %552, align 16, !tbaa !9
  %1255 = mul nsw i32 %1240, %35
  %1256 = sext i32 %1255 to i64
  %gep2060 = getelementptr double, ptr %invariant.gep2137, i64 %1256
  %1257 = mul nsw i64 %indvars.iv.next2235, %553
  %gep2062 = getelementptr double, ptr %invariant.gep2137, i64 %1257
  call void @drotm_(ptr noundef nonnull %3, ptr noundef %gep2060, ptr noundef nonnull @c__1, ptr noundef %gep2062, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #7
  br i1 %or.cond5, label %1258, label %1263

1258:                                             ; preds = %1238
  %1259 = load i32, ptr %24, align 4, !tbaa !5
  %1260 = mul nsw i32 %1259, %38
  %1261 = sext i32 %1260 to i64
  %gep2064 = getelementptr double, ptr %invariant.gep1916, i64 %1261
  %1262 = mul nsw i64 %indvars.iv.next2235, %554
  %gep2066 = getelementptr double, ptr %invariant.gep1916, i64 %1262
  call void @drotm_(ptr noundef nonnull %33, ptr noundef %gep2064, ptr noundef nonnull @c__1, ptr noundef %gep2066, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #7
  br label %1263

1263:                                             ; preds = %1258, %1238
  %1264 = load double, ptr %25, align 8
  %1265 = load double, ptr %21, align 8, !tbaa !9
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  %1266 = fneg double %1264
  %1267 = insertelement <2 x double> poison, double %1266, i64 0
  %1268 = insertelement <2 x double> %1267, double %1264, i64 1
  %1269 = fmul <2 x double> %1224, %1268
  %1270 = insertelement <2 x double> poison, double %.11466, i64 0
  %1271 = shufflevector <2 x double> %1270, <2 x double> poison, <2 x i32> zeroinitializer
  %1272 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1269, <2 x double> %1271, <2 x double> <double 1.000000e+00, double 1.000000e+00>)
  %1273 = fcmp ole <2 x double> %1272, zeroinitializer
  %1274 = extractelement <2 x i1> %1273, i64 1
  %1275 = extractelement <2 x double> %1272, i64 1
  %1276 = select i1 %1274, double 0.000000e+00, double %1275
  %sqrt1715 = call double @llvm.sqrt.f64(double %1276)
  %1277 = fmul double %1265, %sqrt1715
  store double %1277, ptr %1109, align 8, !tbaa !9
  %1278 = extractelement <2 x i1> %1273, i64 0
  %1279 = extractelement <2 x double> %1272, i64 0
  %1280 = select i1 %1278, double 0.000000e+00, double %1279
  %sqrt1714 = call double @llvm.sqrt.f64(double %1280)
  %1281 = load double, ptr %20, align 8, !tbaa !9
  %1282 = fmul double %1281, %sqrt1714
  store double %1282, ptr %20, align 8, !tbaa !9
  %1283 = fcmp oge double %1264, 0.000000e+00
  %1284 = select i1 %1283, double %1264, double %1266
  %1285 = fcmp oge double %.1115082081, %1284
  %1286 = select i1 %1285, double %.1115082081, double %1284
  br label %1542

1287:                                             ; preds = %1217
  %1288 = load double, ptr @c_b18, align 8
  %1289 = fcmp oge double %1288, 0.000000e+00
  %1290 = fneg double %1288
  br i1 %1208, label %1291, label %1293

1291:                                             ; preds = %1287
  %1292 = select i1 %1289, double %1288, double %1290
  br label %1295

1293:                                             ; preds = %1287
  %1294 = select i1 %1289, double %1290, double %1288
  br label %1295

1295:                                             ; preds = %1293, %1291
  %1296 = phi double [ %1292, %1291 ], [ %1294, %1293 ]
  %1297 = fneg double %1296
  %.01515 = select i1 %1232, double %1296, double %1297
  %1298 = call double @llvm.fmuladd.f64(double %.01551, double %.01551, double 1.000000e+00)
  %sqrt1719 = call double @llvm.sqrt.f64(double %1298)
  %1299 = call double @llvm.fmuladd.f64(double %.01515, double %sqrt1719, double %.01551)
  %1300 = fdiv double 1.000000e+00, %1299
  store double %1300, ptr %25, align 8, !tbaa !9
  %1301 = call double @llvm.fmuladd.f64(double %1300, double %1300, double 1.000000e+00)
  %1302 = fdiv double 1.000000e+00, %1301
  %sqrt1718 = call double @llvm.sqrt.f64(double %1302)
  %1303 = fmul double %1300, %sqrt1718
  %1304 = fcmp oge double %1303, 0.000000e+00
  %1305 = fneg double %1303
  %1306 = select i1 %1304, double %1303, double %1305
  %1307 = fcmp oge double %.1115082081, %1306
  %1308 = select i1 %1307, double %.1115082081, double %1306
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  %1309 = fneg double %1300
  %1310 = insertelement <2 x double> poison, double %1309, i64 0
  %1311 = insertelement <2 x double> %1310, double %1300, i64 1
  %1312 = fmul <2 x double> %1224, %1311
  %1313 = insertelement <2 x double> poison, double %.11466, i64 0
  %1314 = shufflevector <2 x double> %1313, <2 x double> poison, <2 x i32> zeroinitializer
  %1315 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1312, <2 x double> %1314, <2 x double> <double 1.000000e+00, double 1.000000e+00>)
  %1316 = fcmp ole <2 x double> %1315, zeroinitializer
  %1317 = extractelement <2 x i1> %1316, i64 1
  %1318 = extractelement <2 x double> %1315, i64 1
  %1319 = select i1 %1317, double 0.000000e+00, double %1318
  %sqrt1717 = call double @llvm.sqrt.f64(double %1319)
  %1320 = fmul double %1218, %sqrt1717
  store double %1320, ptr %1109, align 8, !tbaa !9
  %1321 = extractelement <2 x i1> %1316, i64 0
  %1322 = extractelement <2 x double> %1315, i64 0
  %1323 = select i1 %1321, double 0.000000e+00, double %1322
  %sqrt1716 = call double @llvm.sqrt.f64(double %1323)
  %1324 = fmul double %1219, %sqrt1716
  store double %1324, ptr %20, align 8, !tbaa !9
  %1325 = load i32, ptr %24, align 4, !tbaa !5
  %1326 = sext i32 %1325 to i64
  %1327 = getelementptr inbounds double, ptr %41, i64 %1326
  %1328 = load double, ptr %1327, align 8, !tbaa !9
  %1329 = getelementptr double, ptr %11, i64 %indvars.iv2234
  %1330 = load double, ptr %1329, align 8, !tbaa !9
  %1331 = insertelement <2 x double> poison, double %1330, i64 0
  %1332 = insertelement <2 x double> %1331, double %1328, i64 1
  %1333 = insertelement <2 x double> poison, double %1328, i64 0
  %1334 = insertelement <2 x double> %1333, double %1330, i64 1
  %1335 = fdiv <2 x double> %1332, %1334
  %1336 = fcmp ult double %1328, 1.000000e+00
  %1337 = fcmp ult double %1330, 1.000000e+00
  br i1 %1336, label %1384, label %1338

1338:                                             ; preds = %1295
  br i1 %1337, label %1353, label %1339

1339:                                             ; preds = %1338
  %1340 = fmul <2 x double> %1335, %1311
  %1341 = shufflevector <2 x double> %1340, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  store <2 x double> %1341, ptr %552, align 16, !tbaa !9
  %1342 = fmul double %sqrt1718, %1328
  store double %1342, ptr %1327, align 8, !tbaa !9
  %1343 = load double, ptr %1329, align 8, !tbaa !9
  %1344 = fmul double %sqrt1718, %1343
  store double %1344, ptr %1329, align 8, !tbaa !9
  %1345 = mul nsw i32 %1325, %35
  %1346 = sext i32 %1345 to i64
  %gep2004 = getelementptr double, ptr %invariant.gep2137, i64 %1346
  %1347 = mul nsw i64 %indvars.iv.next2235, %553
  %gep2006 = getelementptr double, ptr %invariant.gep2137, i64 %1347
  call void @drotm_(ptr noundef nonnull %3, ptr noundef %gep2004, ptr noundef nonnull @c__1, ptr noundef %gep2006, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #7
  br i1 %or.cond5, label %1348, label %1542

1348:                                             ; preds = %1339
  %1349 = load i32, ptr %24, align 4, !tbaa !5
  %1350 = mul nsw i32 %1349, %38
  %1351 = sext i32 %1350 to i64
  %gep2008 = getelementptr double, ptr %invariant.gep1916, i64 %1351
  %1352 = mul nsw i64 %indvars.iv.next2235, %554
  %gep2010 = getelementptr double, ptr %invariant.gep1916, i64 %1352
  call void @drotm_(ptr noundef nonnull %33, ptr noundef %gep2008, ptr noundef nonnull @c__1, ptr noundef %gep2010, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #7
  br label %1542

1353:                                             ; preds = %1338
  %1354 = extractelement <2 x double> %1335, i64 0
  %1355 = fmul double %1354, %1309
  store double %1355, ptr %19, align 8, !tbaa !9
  %1356 = mul nsw i64 %indvars.iv.next2235, %553
  %gep2012 = getelementptr double, ptr %invariant.gep2137, i64 %1356
  %1357 = mul nsw i32 %1325, %35
  %1358 = sext i32 %1357 to i64
  %gep2014 = getelementptr double, ptr %invariant.gep2137, i64 %1358
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep2012, ptr noundef nonnull @c__1, ptr noundef %gep2014, ptr noundef nonnull @c__1) #7
  %1359 = fmul double %sqrt1718, %1303
  %1360 = extractelement <2 x double> %1335, i64 1
  %1361 = fmul double %1359, %1360
  store double %1361, ptr %19, align 8, !tbaa !9
  %1362 = load i32, ptr %24, align 4, !tbaa !5
  %1363 = mul nsw i32 %1362, %35
  %1364 = sext i32 %1363 to i64
  %gep2016 = getelementptr double, ptr %invariant.gep2137, i64 %1364
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep2016, ptr noundef nonnull @c__1, ptr noundef %gep2012, ptr noundef nonnull @c__1) #7
  br i1 %or.cond5, label %1365, label %1376

1365:                                             ; preds = %1353
  %1366 = load double, ptr %25, align 8, !tbaa !9
  %1367 = fneg double %1366
  %1368 = fmul double %1354, %1367
  store double %1368, ptr %19, align 8, !tbaa !9
  %1369 = mul nsw i64 %indvars.iv.next2235, %554
  %gep2018 = getelementptr double, ptr %invariant.gep1916, i64 %1369
  %1370 = load i32, ptr %24, align 4, !tbaa !5
  %1371 = mul nsw i32 %1370, %38
  %1372 = sext i32 %1371 to i64
  %gep2020 = getelementptr double, ptr %invariant.gep1916, i64 %1372
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep2018, ptr noundef nonnull @c__1, ptr noundef %gep2020, ptr noundef nonnull @c__1) #7
  store double %1361, ptr %19, align 8, !tbaa !9
  %1373 = load i32, ptr %24, align 4, !tbaa !5
  %1374 = mul nsw i32 %1373, %38
  %1375 = sext i32 %1374 to i64
  %gep2022 = getelementptr double, ptr %invariant.gep1916, i64 %1375
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep2022, ptr noundef nonnull @c__1, ptr noundef %gep2018, ptr noundef nonnull @c__1) #7
  br label %1376

1376:                                             ; preds = %1365, %1353
  %1377 = load i32, ptr %24, align 4, !tbaa !5
  %1378 = sext i32 %1377 to i64
  %1379 = getelementptr inbounds double, ptr %41, i64 %1378
  %1380 = load double, ptr %1379, align 8, !tbaa !9
  %1381 = fmul double %sqrt1718, %1380
  store double %1381, ptr %1379, align 8, !tbaa !9
  %1382 = load double, ptr %1329, align 8, !tbaa !9
  %1383 = fdiv double %1382, %sqrt1718
  store double %1383, ptr %1329, align 8, !tbaa !9
  br label %1542

1384:                                             ; preds = %1295
  br i1 %1337, label %1416, label %1385

1385:                                             ; preds = %1384
  %1386 = extractelement <2 x double> %1335, i64 1
  %1387 = fmul double %1386, %1300
  store double %1387, ptr %19, align 8, !tbaa !9
  %1388 = mul nsw i32 %1325, %35
  %1389 = sext i32 %1388 to i64
  %gep2024 = getelementptr double, ptr %invariant.gep2137, i64 %1389
  %1390 = mul nsw i64 %indvars.iv.next2235, %553
  %gep2026 = getelementptr double, ptr %invariant.gep2137, i64 %1390
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep2024, ptr noundef nonnull @c__1, ptr noundef %gep2026, ptr noundef nonnull @c__1) #7
  %1391 = fneg double %sqrt1718
  %1392 = fmul double %1303, %1391
  %1393 = extractelement <2 x double> %1335, i64 0
  %1394 = fmul double %1392, %1393
  store double %1394, ptr %19, align 8, !tbaa !9
  %1395 = load i32, ptr %24, align 4, !tbaa !5
  %1396 = mul nsw i32 %1395, %35
  %1397 = sext i32 %1396 to i64
  %gep2028 = getelementptr double, ptr %invariant.gep2137, i64 %1397
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep2026, ptr noundef nonnull @c__1, ptr noundef %gep2028, ptr noundef nonnull @c__1) #7
  br i1 %or.cond5, label %1398, label %1408

1398:                                             ; preds = %1385
  %1399 = load double, ptr %25, align 8, !tbaa !9
  %1400 = fmul double %1386, %1399
  store double %1400, ptr %19, align 8, !tbaa !9
  %1401 = load i32, ptr %24, align 4, !tbaa !5
  %1402 = mul nsw i32 %1401, %38
  %1403 = sext i32 %1402 to i64
  %gep2030 = getelementptr double, ptr %invariant.gep1916, i64 %1403
  %1404 = mul nsw i64 %indvars.iv.next2235, %554
  %gep2032 = getelementptr double, ptr %invariant.gep1916, i64 %1404
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep2030, ptr noundef nonnull @c__1, ptr noundef %gep2032, ptr noundef nonnull @c__1) #7
  store double %1394, ptr %19, align 8, !tbaa !9
  %1405 = load i32, ptr %24, align 4, !tbaa !5
  %1406 = mul nsw i32 %1405, %38
  %1407 = sext i32 %1406 to i64
  %gep2034 = getelementptr double, ptr %invariant.gep1916, i64 %1407
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep2032, ptr noundef nonnull @c__1, ptr noundef %gep2034, ptr noundef nonnull @c__1) #7
  br label %1408

1408:                                             ; preds = %1398, %1385
  %1409 = load i32, ptr %24, align 4, !tbaa !5
  %1410 = sext i32 %1409 to i64
  %1411 = getelementptr inbounds double, ptr %41, i64 %1410
  %1412 = load double, ptr %1411, align 8, !tbaa !9
  %1413 = fdiv double %1412, %sqrt1718
  store double %1413, ptr %1411, align 8, !tbaa !9
  %1414 = load double, ptr %1329, align 8, !tbaa !9
  %1415 = fmul double %sqrt1718, %1414
  store double %1415, ptr %1329, align 8, !tbaa !9
  br label %1542

1416:                                             ; preds = %1384
  %1417 = fcmp ult double %1328, %1330
  br i1 %1417, label %1447, label %1418

1418:                                             ; preds = %1416
  %1419 = extractelement <2 x double> %1335, i64 0
  %1420 = fmul double %1419, %1309
  store double %1420, ptr %19, align 8, !tbaa !9
  %1421 = mul nsw i64 %indvars.iv.next2235, %553
  %gep2036 = getelementptr double, ptr %invariant.gep2137, i64 %1421
  %1422 = mul nsw i32 %1325, %35
  %1423 = sext i32 %1422 to i64
  %gep2038 = getelementptr double, ptr %invariant.gep2137, i64 %1423
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep2036, ptr noundef nonnull @c__1, ptr noundef %gep2038, ptr noundef nonnull @c__1) #7
  %1424 = fmul double %sqrt1718, %1303
  %1425 = extractelement <2 x double> %1335, i64 1
  %1426 = fmul double %1424, %1425
  store double %1426, ptr %19, align 8, !tbaa !9
  %1427 = load i32, ptr %24, align 4, !tbaa !5
  %1428 = mul nsw i32 %1427, %35
  %1429 = sext i32 %1428 to i64
  %gep2040 = getelementptr double, ptr %invariant.gep2137, i64 %1429
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep2040, ptr noundef nonnull @c__1, ptr noundef %gep2036, ptr noundef nonnull @c__1) #7
  %1430 = load i32, ptr %24, align 4, !tbaa !5
  %1431 = sext i32 %1430 to i64
  %1432 = getelementptr inbounds double, ptr %41, i64 %1431
  %1433 = load double, ptr %1432, align 8, !tbaa !9
  %1434 = fmul double %sqrt1718, %1433
  store double %1434, ptr %1432, align 8, !tbaa !9
  %1435 = load double, ptr %1329, align 8, !tbaa !9
  %1436 = fdiv double %1435, %sqrt1718
  store double %1436, ptr %1329, align 8, !tbaa !9
  br i1 %or.cond5, label %1437, label %1542

1437:                                             ; preds = %1418
  %1438 = load double, ptr %25, align 8, !tbaa !9
  %1439 = fneg double %1438
  %1440 = fmul double %1419, %1439
  store double %1440, ptr %19, align 8, !tbaa !9
  %1441 = mul nsw i64 %indvars.iv.next2235, %554
  %gep2042 = getelementptr double, ptr %invariant.gep1916, i64 %1441
  %1442 = mul nsw i32 %1430, %38
  %1443 = sext i32 %1442 to i64
  %gep2044 = getelementptr double, ptr %invariant.gep1916, i64 %1443
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep2042, ptr noundef nonnull @c__1, ptr noundef %gep2044, ptr noundef nonnull @c__1) #7
  store double %1426, ptr %19, align 8, !tbaa !9
  %1444 = load i32, ptr %24, align 4, !tbaa !5
  %1445 = mul nsw i32 %1444, %38
  %1446 = sext i32 %1445 to i64
  %gep2046 = getelementptr double, ptr %invariant.gep1916, i64 %1446
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep2046, ptr noundef nonnull @c__1, ptr noundef %gep2042, ptr noundef nonnull @c__1) #7
  br label %1542

1447:                                             ; preds = %1416
  %1448 = extractelement <2 x double> %1335, i64 1
  %1449 = fmul double %1448, %1300
  store double %1449, ptr %19, align 8, !tbaa !9
  %1450 = mul nsw i32 %1325, %35
  %1451 = sext i32 %1450 to i64
  %gep2048 = getelementptr double, ptr %invariant.gep2137, i64 %1451
  %1452 = mul nsw i64 %indvars.iv.next2235, %553
  %gep2050 = getelementptr double, ptr %invariant.gep2137, i64 %1452
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep2048, ptr noundef nonnull @c__1, ptr noundef %gep2050, ptr noundef nonnull @c__1) #7
  %1453 = fneg double %sqrt1718
  %1454 = fmul double %1303, %1453
  %1455 = extractelement <2 x double> %1335, i64 0
  %1456 = fmul double %1454, %1455
  store double %1456, ptr %19, align 8, !tbaa !9
  %1457 = load i32, ptr %24, align 4, !tbaa !5
  %1458 = mul nsw i32 %1457, %35
  %1459 = sext i32 %1458 to i64
  %gep2052 = getelementptr double, ptr %invariant.gep2137, i64 %1459
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep2050, ptr noundef nonnull @c__1, ptr noundef %gep2052, ptr noundef nonnull @c__1) #7
  %1460 = load i32, ptr %24, align 4, !tbaa !5
  %1461 = sext i32 %1460 to i64
  %1462 = getelementptr inbounds double, ptr %41, i64 %1461
  %1463 = load double, ptr %1462, align 8, !tbaa !9
  %1464 = fdiv double %1463, %sqrt1718
  store double %1464, ptr %1462, align 8, !tbaa !9
  %1465 = load double, ptr %1329, align 8, !tbaa !9
  %1466 = fmul double %sqrt1718, %1465
  store double %1466, ptr %1329, align 8, !tbaa !9
  br i1 %or.cond5, label %1467, label %1542

1467:                                             ; preds = %1447
  %1468 = load double, ptr %25, align 8, !tbaa !9
  %1469 = fmul double %1448, %1468
  store double %1469, ptr %19, align 8, !tbaa !9
  %1470 = mul nsw i32 %1460, %38
  %1471 = sext i32 %1470 to i64
  %gep2054 = getelementptr double, ptr %invariant.gep1916, i64 %1471
  %1472 = mul nsw i64 %indvars.iv.next2235, %554
  %gep2056 = getelementptr double, ptr %invariant.gep1916, i64 %1472
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep2054, ptr noundef nonnull @c__1, ptr noundef %gep2056, ptr noundef nonnull @c__1) #7
  store double %1456, ptr %19, align 8, !tbaa !9
  %1473 = load i32, ptr %24, align 4, !tbaa !5
  %1474 = mul nsw i32 %1473, %38
  %1475 = sext i32 %1474 to i64
  %gep2058 = getelementptr double, ptr %invariant.gep1916, i64 %1475
  call void @daxpy_(ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef %gep2056, ptr noundef nonnull @c__1, ptr noundef %gep2058, ptr noundef nonnull @c__1) #7
  br label %1542

1476:                                             ; preds = %1215
  %1477 = load double, ptr %20, align 8, !tbaa !9
  %1478 = load double, ptr %21, align 8, !tbaa !9
  %1479 = fcmp ogt double %1477, %1478
  br i1 %1479, label %1480, label %1507

1480:                                             ; preds = %1476
  %1481 = load i32, ptr %24, align 4, !tbaa !5
  %1482 = mul nsw i32 %1481, %35
  %1483 = sext i32 %1482 to i64
  %gep1994 = getelementptr double, ptr %invariant.gep2137, i64 %1483
  %1484 = load i32, ptr %4, align 4, !tbaa !5
  %1485 = sext i32 %1484 to i64
  %gep1996 = getelementptr double, ptr %11, i64 %1485
  call void @dcopy_(ptr noundef nonnull %3, ptr noundef %gep1994, ptr noundef nonnull @c__1, ptr noundef %gep1996, ptr noundef nonnull @c__1) #7
  %1486 = load i32, ptr %4, align 4, !tbaa !5
  %1487 = sext i32 %1486 to i64
  %gep1998 = getelementptr double, ptr %11, i64 %1487
  call void @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %20, ptr noundef nonnull @c_b18, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1998, ptr noundef nonnull %6, ptr noundef nonnull %22) #7
  %1488 = mul nsw i64 %indvars.iv.next2235, %553
  %gep2000 = getelementptr double, ptr %invariant.gep2137, i64 %1488
  call void @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %21, ptr noundef nonnull @c_b18, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep2000, ptr noundef nonnull %6, ptr noundef nonnull %22) #7
  %1489 = load i32, ptr %24, align 4, !tbaa !5
  %1490 = sext i32 %1489 to i64
  %1491 = getelementptr inbounds double, ptr %41, i64 %1490
  %1492 = load double, ptr %1491, align 8, !tbaa !9
  %1493 = fmul double %1492, %1209
  %1494 = getelementptr double, ptr %11, i64 %indvars.iv2234
  %1495 = load double, ptr %1494, align 8, !tbaa !9
  %1496 = fdiv double %1493, %1495
  store double %1496, ptr %23, align 8, !tbaa !9
  %1497 = load i32, ptr %4, align 4, !tbaa !5
  %1498 = sext i32 %1497 to i64
  %gep2002 = getelementptr double, ptr %11, i64 %1498
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %23, ptr noundef %gep2002, ptr noundef nonnull @c__1, ptr noundef %gep2000, ptr noundef nonnull @c__1) #7
  call void @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b18, ptr noundef nonnull %21, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep2000, ptr noundef nonnull %6, ptr noundef nonnull %22) #7
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  %1499 = call double @llvm.fmuladd.f64(double %1209, double %.11466, double 1.000000e+00)
  %1500 = load double, ptr %21, align 8, !tbaa !9
  %1501 = fcmp ole double %1499, 0.000000e+00
  %1502 = select i1 %1501, double 0.000000e+00, double %1499
  %sqrt1720 = call double @llvm.sqrt.f64(double %1502)
  %1503 = fmul double %sqrt1720, %1500
  store double %1503, ptr %1109, align 8, !tbaa !9
  %1504 = load double, ptr %26, align 8
  %1505 = fcmp oge double %.1115082081, %1504
  %1506 = select i1 %1505, double %.1115082081, double %1504
  br label %1542

1507:                                             ; preds = %1476
  %1508 = mul nsw i64 %indvars.iv.next2235, %553
  %gep1980 = getelementptr double, ptr %invariant.gep2137, i64 %1508
  %1509 = load i32, ptr %4, align 4, !tbaa !5
  %1510 = sext i32 %1509 to i64
  %gep1982 = getelementptr double, ptr %11, i64 %1510
  call void @dcopy_(ptr noundef nonnull %3, ptr noundef %gep1980, ptr noundef nonnull @c__1, ptr noundef %gep1982, ptr noundef nonnull @c__1) #7
  %1511 = load i32, ptr %4, align 4, !tbaa !5
  %1512 = sext i32 %1511 to i64
  %gep1984 = getelementptr double, ptr %11, i64 %1512
  call void @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %21, ptr noundef nonnull @c_b18, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1984, ptr noundef nonnull %6, ptr noundef nonnull %22) #7
  %1513 = load i32, ptr %24, align 4, !tbaa !5
  %1514 = mul nsw i32 %1513, %35
  %1515 = sext i32 %1514 to i64
  %gep1986 = getelementptr double, ptr %invariant.gep2137, i64 %1515
  call void @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %20, ptr noundef nonnull @c_b18, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1986, ptr noundef nonnull %6, ptr noundef nonnull %22) #7
  %1516 = getelementptr double, ptr %11, i64 %indvars.iv2234
  %1517 = load double, ptr %1516, align 8, !tbaa !9
  %1518 = fmul double %1517, %1209
  %1519 = load i32, ptr %24, align 4, !tbaa !5
  %1520 = sext i32 %1519 to i64
  %1521 = getelementptr inbounds double, ptr %41, i64 %1520
  %1522 = load double, ptr %1521, align 8, !tbaa !9
  %1523 = fdiv double %1518, %1522
  store double %1523, ptr %23, align 8, !tbaa !9
  %1524 = load i32, ptr %4, align 4, !tbaa !5
  %1525 = sext i32 %1524 to i64
  %gep1988 = getelementptr double, ptr %11, i64 %1525
  %1526 = mul nsw i32 %1519, %35
  %1527 = sext i32 %1526 to i64
  %gep1990 = getelementptr double, ptr %invariant.gep2137, i64 %1527
  call void @daxpy_(ptr noundef nonnull %3, ptr noundef nonnull %23, ptr noundef %gep1988, ptr noundef nonnull @c__1, ptr noundef %gep1990, ptr noundef nonnull @c__1) #7
  %1528 = load i32, ptr %24, align 4, !tbaa !5
  %1529 = mul nsw i32 %1528, %35
  %1530 = sext i32 %1529 to i64
  %gep1992 = getelementptr double, ptr %invariant.gep2137, i64 %1530
  call void @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b18, ptr noundef nonnull %20, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1992, ptr noundef nonnull %6, ptr noundef nonnull %22) #7
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  %1531 = call double @llvm.fmuladd.f64(double %1209, double %.11466, double 1.000000e+00)
  %1532 = load double, ptr %20, align 8, !tbaa !9
  %1533 = fcmp ole double %1531, 0.000000e+00
  %1534 = select i1 %1533, double 0.000000e+00, double %1531
  %sqrt1721 = call double @llvm.sqrt.f64(double %1534)
  %1535 = fmul double %sqrt1721, %1532
  %1536 = load i32, ptr %24, align 4, !tbaa !5
  %1537 = sext i32 %1536 to i64
  %1538 = getelementptr inbounds double, ptr %34, i64 %1537
  store double %1535, ptr %1538, align 8, !tbaa !9
  %1539 = load double, ptr %26, align 8
  %1540 = fcmp oge double %.1115082081, %1539
  %1541 = select i1 %1540, double %.1115082081, double %1539
  br label %1542

1542:                                             ; preds = %1480, %1507, %1263, %1408, %1447, %1467, %1418, %1437, %1376, %1348, %1339
  %.121509 = phi double [ %1286, %1263 ], [ %1308, %1348 ], [ %1308, %1339 ], [ %1308, %1376 ], [ %1308, %1408 ], [ %1308, %1437 ], [ %1308, %1418 ], [ %1308, %1467 ], [ %1308, %1447 ], [ %1506, %1480 ], [ %1541, %1507 ]
  %1543 = load double, ptr %1109, align 8, !tbaa !9
  %1544 = load double, ptr %21, align 8, !tbaa !9
  %1545 = fdiv double %1543, %1544
  store double %1545, ptr %19, align 8, !tbaa !9
  %1546 = fmul double %1545, %1545
  %1547 = fcmp ugt double %1546, %108
  br i1 %1547, label %1563, label %1548

1548:                                             ; preds = %1542
  %1549 = fcmp olt double %1544, %113
  %1550 = fcmp ogt double %1544, %110
  %or.cond1693 = and i1 %1549, %1550
  br i1 %or.cond1693, label %1551, label %1554

1551:                                             ; preds = %1548
  %1552 = mul nsw i64 %indvars.iv.next2235, %553
  %gep2070 = getelementptr double, ptr %invariant.gep2137, i64 %1552
  %1553 = call double @dnrm2_(ptr noundef nonnull %3, ptr noundef %gep2070, ptr noundef nonnull @c__1) #7
  br label %.sink.split2310

1554:                                             ; preds = %1548
  store double 0.000000e+00, ptr %25, align 8, !tbaa !9
  store double 1.000000e+00, ptr %21, align 8, !tbaa !9
  %1555 = mul nsw i64 %indvars.iv.next2235, %553
  %gep2068 = getelementptr double, ptr %invariant.gep2137, i64 %1555
  call void @dlassq_(ptr noundef nonnull %3, ptr noundef %gep2068, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull %21) #7
  %1556 = load double, ptr %25, align 8, !tbaa !9
  %1557 = load double, ptr %21, align 8, !tbaa !9
  %1558 = call double @sqrt(double noundef %1557) #7
  %1559 = fmul double %1556, %1558
  br label %.sink.split2310

.sink.split2310:                                  ; preds = %1554, %1551
  %.sink2312 = phi double [ %1553, %1551 ], [ %1559, %1554 ]
  %1560 = getelementptr double, ptr %11, i64 %indvars.iv2234
  %1561 = load double, ptr %1560, align 8, !tbaa !9
  %1562 = fmul double %.sink2312, %1561
  store double %1562, ptr %1109, align 8, !tbaa !9
  br label %1563

1563:                                             ; preds = %.sink.split2310, %1542
  %1564 = load double, ptr %20, align 8, !tbaa !9
  %1565 = fdiv double %1564, %1113
  store double %1565, ptr %19, align 8, !tbaa !9
  %1566 = fmul double %1565, %1565
  %1567 = fcmp ugt double %1566, %108
  br i1 %1567, label %1598, label %1568

1568:                                             ; preds = %1563
  %1569 = fcmp olt double %1564, %113
  %1570 = fcmp ogt double %1564, %110
  %or.cond1694 = and i1 %1569, %1570
  br i1 %or.cond1694, label %1571, label %1576

1571:                                             ; preds = %1568
  %1572 = load i32, ptr %24, align 4, !tbaa !5
  %1573 = mul nsw i32 %1572, %35
  %1574 = sext i32 %1573 to i64
  %gep2074 = getelementptr double, ptr %invariant.gep2137, i64 %1574
  %1575 = call double @dnrm2_(ptr noundef nonnull %3, ptr noundef %gep2074, ptr noundef nonnull @c__1) #7
  br label %1584

1576:                                             ; preds = %1568
  store double 0.000000e+00, ptr %25, align 8, !tbaa !9
  store double 1.000000e+00, ptr %20, align 8, !tbaa !9
  %1577 = load i32, ptr %24, align 4, !tbaa !5
  %1578 = mul nsw i32 %1577, %35
  %1579 = sext i32 %1578 to i64
  %gep2072 = getelementptr double, ptr %invariant.gep2137, i64 %1579
  call void @dlassq_(ptr noundef nonnull %3, ptr noundef %gep2072, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull %20) #7
  %1580 = load double, ptr %25, align 8, !tbaa !9
  %1581 = load double, ptr %20, align 8, !tbaa !9
  %1582 = call double @sqrt(double noundef %1581) #7
  %1583 = fmul double %1580, %1582
  br label %1584

1584:                                             ; preds = %1576, %1571
  %.sink2315 = phi double [ %1583, %1576 ], [ %1575, %1571 ]
  %.sink2319 = load i32, ptr %24, align 4, !tbaa !5
  %1585 = sext i32 %.sink2319 to i64
  %1586 = getelementptr inbounds double, ptr %41, i64 %1585
  %1587 = load double, ptr %1586, align 8, !tbaa !9
  %1588 = fmul double %.sink2315, %1587
  store double %1588, ptr %20, align 8, !tbaa !9
  %1589 = getelementptr inbounds double, ptr %34, i64 %1585
  store double %1588, ptr %1589, align 8, !tbaa !9
  br label %1598

1590:                                             ; preds = %1207
  %1591 = add nsw i32 %.1214882083, 1
  %1592 = add nsw i32 %.314942082, 1
  %1593 = add nsw i32 %.115352079, 1
  br label %1598

1594:                                             ; preds = %.lr.ph2086
  %1595 = add nsw i32 %.1214882083, 1
  %1596 = add nsw i32 %.314942082, 1
  %1597 = add nsw i32 %.115352079, 1
  br label %1598

1598:                                             ; preds = %1590, %1584, %1563, %1594
  %.21536 = phi i32 [ %.115352079, %1584 ], [ %.115352079, %1563 ], [ %1593, %1590 ], [ %1597, %1594 ]
  %.111527 = phi double [ %1212, %1584 ], [ %1212, %1563 ], [ %1212, %1590 ], [ %.1015262080, %1594 ]
  %.131510 = phi double [ %.121509, %1584 ], [ %.121509, %1563 ], [ %.1115082081, %1590 ], [ %.1115082081, %1594 ]
  %.41495 = phi i32 [ 0, %1584 ], [ 0, %1563 ], [ %1592, %1590 ], [ %1596, %1594 ]
  %.131489 = phi i32 [ 0, %1584 ], [ 0, %1563 ], [ %1591, %1590 ], [ %1595, %1594 ]
  %.11 = phi i32 [ %1216, %1584 ], [ %1216, %1563 ], [ %.102084, %1590 ], [ %.102084, %1594 ]
  %.not1661 = icmp slt i32 %.21536, %384
  %or.cond1695 = select i1 %.not1660, i1 true, i1 %.not1661
  br i1 %or.cond1695, label %1604, label %1599

1599:                                             ; preds = %1598
  %1600 = load double, ptr %20, align 8, !tbaa !9
  %1601 = load i32, ptr %24, align 4, !tbaa !5
  %1602 = sext i32 %1601 to i64
  %1603 = getelementptr inbounds double, ptr %34, i64 %1602
  store double %1600, ptr %1603, align 8, !tbaa !9
  br label %.loopexit1728

1604:                                             ; preds = %1598
  %1605 = icmp sle i32 %.41495, %385
  %or.cond1696.not = select i1 %.not1660, i1 true, i1 %1605
  br i1 %or.cond1696.not, label %1106, label %1606

1606:                                             ; preds = %1604
  %1607 = load double, ptr %20, align 8, !tbaa !9
  %1608 = fneg double %1607
  store double %1608, ptr %20, align 8, !tbaa !9
  br label %.loopexit1725

.loopexit1725.loopexit:                           ; preds = %1106
  %.pre2255 = load double, ptr %20, align 8, !tbaa !9
  br label %.loopexit1725

.loopexit1725:                                    ; preds = %.loopexit1725.loopexit, %1104, %1606
  %1609 = phi double [ %1608, %1606 ], [ %1102, %1104 ], [ %.pre2255, %.loopexit1725.loopexit ]
  %.31537 = phi i32 [ %.21536, %1606 ], [ %.015342094, %1104 ], [ %.21536, %.loopexit1725.loopexit ]
  %.121528 = phi double [ %.111527, %1606 ], [ %.915252095, %1104 ], [ %.111527, %.loopexit1725.loopexit ]
  %.141511 = phi double [ %.131510, %1606 ], [ %.1015072096, %1104 ], [ %.131510, %.loopexit1725.loopexit ]
  %.141490 = phi i32 [ 0, %1606 ], [ %.1114872097, %1104 ], [ %.131489, %.loopexit1725.loopexit ]
  %.12 = phi i32 [ %.11, %1606 ], [ %.92098, %1104 ], [ %.11, %.loopexit1725.loopexit ]
  %1610 = load i32, ptr %24, align 4, !tbaa !5
  %1611 = sext i32 %1610 to i64
  %1612 = getelementptr inbounds double, ptr %34, i64 %1611
  store double %1609, ptr %1612, align 8, !tbaa !9
  %.pre2256 = load i32, ptr %17, align 4, !tbaa !5
  br label %1622

1613:                                             ; preds = %1098
  %1614 = fcmp oeq double %1102, 0.000000e+00
  br i1 %1614, label %1615, label %1619

1615:                                             ; preds = %1613
  store i32 %1097, ptr %18, align 4, !tbaa !5
  %1616 = load i32, ptr %4, align 4, !tbaa !5
  %.1697 = call i32 @llvm.smin.i32(i32 %1097, i32 %1616)
  %1617 = sub i32 %.1114872097, %1095
  %1618 = add i32 %1617, %.1697
  br label %1619

1619:                                             ; preds = %1615, %1613
  %.15 = phi i32 [ %1618, %1615 ], [ %.1114872097, %1613 ]
  %1620 = fcmp olt double %1102, 0.000000e+00
  br i1 %1620, label %1621, label %1622

1621:                                             ; preds = %1619
  br label %1622

1622:                                             ; preds = %.loopexit1725, %1621, %1619
  %1623 = phi i32 [ %.pre2256, %.loopexit1725 ], [ %1099, %1621 ], [ %1099, %1619 ]
  %1624 = phi i32 [ %1610, %.loopexit1725 ], [ %storemerge16542093, %1621 ], [ %storemerge16542093, %1619 ]
  %.41538 = phi i32 [ %.31537, %.loopexit1725 ], [ %.015342094, %1621 ], [ %.015342094, %1619 ]
  %.131529 = phi double [ %.121528, %.loopexit1725 ], [ %.915252095, %1621 ], [ %.915252095, %1619 ]
  %.151512 = phi double [ %.141511, %.loopexit1725 ], [ %.1015072096, %1621 ], [ %.1015072096, %1619 ]
  %.16 = phi i32 [ %.141490, %.loopexit1725 ], [ 0, %1621 ], [ %.15, %1619 ]
  %.13 = phi i32 [ %.12, %.loopexit1725 ], [ %.92098, %1621 ], [ %.92098, %1619 ]
  %1625 = add nsw i32 %1624, 1
  store i32 %1625, ptr %24, align 4, !tbaa !5
  %.not1655.not = icmp slt i32 %1624, %1623
  br i1 %.not1655.not, label %1098, label %._crit_edge2101.loopexit, !llvm.loop !32

._crit_edge2101.loopexit:                         ; preds = %1622
  %.pre2257 = load i32, ptr %16, align 4, !tbaa !5
  br label %._crit_edge2101

._crit_edge2101:                                  ; preds = %._crit_edge2101.loopexit, %.lr.ph2113
  %1626 = phi i32 [ %1092, %.lr.ph2113 ], [ %.pre2257, %._crit_edge2101.loopexit ]
  %.91525.lcssa = phi double [ %.815242107, %.lr.ph2113 ], [ %.131529, %._crit_edge2101.loopexit ]
  %.101507.lcssa = phi double [ %.915062108, %.lr.ph2113 ], [ %.151512, %._crit_edge2101.loopexit ]
  %.111487.lcssa = phi i32 [ %.1014862109, %.lr.ph2113 ], [ %.16, %._crit_edge2101.loopexit ]
  %.9.lcssa = phi i32 [ %.82110, %.lr.ph2113 ], [ %.13, %._crit_edge2101.loopexit ]
  %1627 = add nuw nsw i32 %.014682111, 1
  %.not1652.not = icmp slt i32 %.014682111, %1626
  %indvars.iv.next2233 = add i32 %indvars.iv2232, %spec.select
  br i1 %.not1652.not, label %.lr.ph2113, label %.loopexit1728, !llvm.loop !33

.loopexit1728:                                    ; preds = %._crit_edge2101, %._crit_edge1946, %1599
  %.141530 = phi double [ %.111527, %1599 ], [ %.21518.lcssa, %._crit_edge1946 ], [ %.91525.lcssa, %._crit_edge2101 ]
  %.161513 = phi double [ %.131510, %1599 ], [ %.21499.lcssa, %._crit_edge1946 ], [ %.101507.lcssa, %._crit_edge2101 ]
  %.17 = phi i32 [ 0, %1599 ], [ %.11477.lcssa, %._crit_edge1946 ], [ %.111487.lcssa, %._crit_edge2101 ]
  %.14 = phi i32 [ %.11, %1599 ], [ %.11470.lcssa, %._crit_edge1946 ], [ %.9.lcssa, %._crit_edge2101 ]
  store i32 %1091, ptr %17, align 4, !tbaa !5
  %1628 = load i32, ptr %4, align 4, !tbaa !5
  %.1698 = call i32 @llvm.smin.i32(i32 %1091, i32 %1628)
  store i32 %.1698, ptr %16, align 4, !tbaa !5
  %.not16642118.not = icmp slt i32 %564, %.1698
  br i1 %.not16642118.not, label %.lr.ph2121.preheader, label %.loopexit1727

.lr.ph2121.preheader:                             ; preds = %.loopexit1728
  %1629 = sext i32 %.1698 to i64
  %smax = call i64 @llvm.smax.i64(i64 %1629, i64 %561)
  %1630 = add i64 %smax, 1
  %1631 = sub i64 %1630, %561
  %min.iters.check2400 = icmp ult i64 %1631, 4
  br i1 %min.iters.check2400, label %.lr.ph2121.preheader2433, label %vector.ph2401

vector.ph2401:                                    ; preds = %.lr.ph2121.preheader
  %n.vec2403 = and i64 %1631, -4
  %ind.end2404 = add i64 %n.vec2403, %562
  %invariant.gep = getelementptr double, ptr %34, i64 %562
  br label %vector.body2406

vector.body2406:                                  ; preds = %vector.body2406, %vector.ph2401
  %index2407 = phi i64 [ 0, %vector.ph2401 ], [ %index.next2411, %vector.body2406 ]
  %gep2478 = getelementptr double, ptr %invariant.gep, i64 %index2407
  %1632 = getelementptr inbounds i8, ptr %gep2478, i64 16
  %wide.load2409 = load <2 x double>, ptr %gep2478, align 8, !tbaa !9
  %wide.load2410 = load <2 x double>, ptr %1632, align 8, !tbaa !9
  %1633 = fcmp oge <2 x double> %wide.load2409, zeroinitializer
  %1634 = fcmp oge <2 x double> %wide.load2410, zeroinitializer
  %1635 = fneg <2 x double> %wide.load2409
  %1636 = fneg <2 x double> %wide.load2410
  %1637 = select <2 x i1> %1633, <2 x double> %wide.load2409, <2 x double> %1635
  %1638 = select <2 x i1> %1634, <2 x double> %wide.load2410, <2 x double> %1636
  store <2 x double> %1637, ptr %gep2478, align 8, !tbaa !9
  store <2 x double> %1638, ptr %1632, align 8, !tbaa !9
  %index.next2411 = add nuw i64 %index2407, 4
  %1639 = icmp eq i64 %index.next2411, %n.vec2403
  br i1 %1639, label %middle.block2398, label %vector.body2406, !llvm.loop !34

middle.block2398:                                 ; preds = %vector.body2406
  %1640 = extractelement <2 x double> %wide.load2410, i64 1
  %cmp.n2412 = icmp eq i64 %1631, %n.vec2403
  br i1 %cmp.n2412, label %..loopexit1727_crit_edge, label %.lr.ph2121.preheader2433

.lr.ph2121.preheader2433:                         ; preds = %middle.block2398, %.lr.ph2121.preheader
  %indvars.iv2239.ph = phi i64 [ %562, %.lr.ph2121.preheader ], [ %ind.end2404, %middle.block2398 ]
  br label %.lr.ph2121

.lr.ph2121:                                       ; preds = %.lr.ph2121.preheader2433, %.lr.ph2121
  %indvars.iv2239 = phi i64 [ %indvars.iv.next2240, %.lr.ph2121 ], [ %indvars.iv2239.ph, %.lr.ph2121.preheader2433 ]
  %1641 = getelementptr inbounds double, ptr %34, i64 %indvars.iv2239
  %1642 = load double, ptr %1641, align 8, !tbaa !9
  %1643 = fcmp oge double %1642, 0.000000e+00
  %1644 = fneg double %1642
  %1645 = select i1 %1643, double %1642, double %1644
  store double %1645, ptr %1641, align 8, !tbaa !9
  %indvars.iv.next2240 = add nsw i64 %indvars.iv2239, 1
  %.not1664.not = icmp slt i64 %indvars.iv2239, %1629
  br i1 %.not1664.not, label %.lr.ph2121, label %..loopexit1727_crit_edge, !llvm.loop !35

._crit_edge2132:                                  ; preds = %.loopexit1727, %.._crit_edge2132_crit_edge
  %1646 = phi i32 [ %.pre2258, %.._crit_edge2132_crit_edge ], [ %1628, %.loopexit1727 ]
  %.11517.lcssa = phi double [ 0.000000e+00, %.._crit_edge2132_crit_edge ], [ %.141530, %.loopexit1727 ]
  %.11498.lcssa = phi double [ 0.000000e+00, %.._crit_edge2132_crit_edge ], [ %.161513, %.loopexit1727 ]
  %.01476.lcssa = phi i32 [ 0, %.._crit_edge2132_crit_edge ], [ %.17, %.loopexit1727 ]
  %.01469.lcssa = phi i32 [ 0, %.._crit_edge2132_crit_edge ], [ %.14, %.loopexit1727 ]
  %1647 = sext i32 %1646 to i64
  %1648 = getelementptr inbounds double, ptr %34, i64 %1647
  %1649 = load double, ptr %1648, align 8, !tbaa !9
  %1650 = fcmp olt double %1649, %113
  %1651 = fcmp ogt double %1649, %110
  %or.cond1699 = and i1 %1650, %1651
  br i1 %or.cond1699, label %1652, label %1656

1652:                                             ; preds = %._crit_edge2132
  %1653 = mul nsw i32 %1646, %35
  %1654 = sext i32 %1653 to i64
  %gep2140 = getelementptr double, ptr %invariant.gep2137, i64 %1654
  %1655 = call double @dnrm2_(ptr noundef nonnull %3, ptr noundef %gep2140, ptr noundef nonnull @c__1) #7
  br label %1663

1656:                                             ; preds = %._crit_edge2132
  store double 0.000000e+00, ptr %25, align 8, !tbaa !9
  store double 1.000000e+00, ptr %20, align 8, !tbaa !9
  %1657 = mul nsw i32 %1646, %35
  %1658 = sext i32 %1657 to i64
  %gep2138 = getelementptr double, ptr %invariant.gep2137, i64 %1658
  call void @dlassq_(ptr noundef nonnull %3, ptr noundef %gep2138, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull %20) #7
  %1659 = load double, ptr %25, align 8, !tbaa !9
  %1660 = load double, ptr %20, align 8, !tbaa !9
  %1661 = call double @sqrt(double noundef %1660) #7
  %1662 = fmul double %1659, %1661
  br label %1663

1663:                                             ; preds = %1656, %1652
  %.sink2323 = phi double [ %1662, %1656 ], [ %1655, %1652 ]
  %1664 = load i32, ptr %4, align 4, !tbaa !5
  %1665 = sext i32 %1664 to i64
  %1666 = getelementptr inbounds double, ptr %41, i64 %1665
  %1667 = load double, ptr %1666, align 8, !tbaa !9
  %1668 = fmul double %.sink2323, %1667
  %1669 = getelementptr inbounds double, ptr %34, i64 %1665
  store double %1668, ptr %1669, align 8, !tbaa !9
  %1670 = icmp slt i32 %.015392141, %.015322142
  %1671 = fcmp ugt double %.11517.lcssa, %122
  %.not1637 = icmp sgt i32 %.01469.lcssa, %1664
  %or.cond2328 = select i1 %1671, i1 %.not1637, i1 false
  %spec.select2329 = select i1 %or.cond2328, i32 %.015322142, i32 %.015392141
  %.11533 = select i1 %1670, i32 %spec.select2329, i32 %.015322142
  %1672 = add nsw i32 %.11533, 1
  %1673 = icmp sgt i32 %.015392141, %1672
  br i1 %1673, label %1674, label %1686

1674:                                             ; preds = %1663
  %1675 = sitofp i32 %1664 to double
  %1676 = call double @sqrt(double noundef %1675) #7
  %1677 = load double, ptr %32, align 8, !tbaa !9
  %1678 = fmul double %1676, %1677
  %1679 = fcmp olt double %.11517.lcssa, %1678
  br i1 %1679, label %1680, label %1686

1680:                                             ; preds = %1674
  %1681 = load i32, ptr %4, align 4, !tbaa !5
  %1682 = sitofp i32 %1681 to double
  %1683 = fmul double %.11517.lcssa, %1682
  %1684 = fmul double %.11498.lcssa, %1683
  %1685 = fcmp uge double %1684, %1677
  %.not1638 = icmp slt i32 %.01476.lcssa, %374
  %or.cond1700 = select i1 %1685, i1 %.not1638, i1 false
  br i1 %or.cond1700, label %1687, label %1689

1686:                                             ; preds = %1674, %1663
  %.not1638.old = icmp slt i32 %.01476.lcssa, %374
  br i1 %.not1638.old, label %1687, label %1689

1687:                                             ; preds = %1680, %1686
  %1688 = add nuw nsw i32 %.015392141, 1
  %exitcond2242.not = icmp eq i32 %1688, 31
  br i1 %exitcond2242.not, label %1689, label %557, !llvm.loop !36

1689:                                             ; preds = %1680, %1686, %1687
  %.01539.lcssa = phi i32 [ %.015392141, %1680 ], [ %.015392141, %1686 ], [ 31, %1687 ]
  %storemerge1635 = phi i32 [ 0, %1680 ], [ 0, %1686 ], [ 29, %1687 ]
  store i32 %storemerge1635, ptr %13, align 4, !tbaa !5
  store i32 0, ptr %29, align 4, !tbaa !5
  store i32 0, ptr %30, align 4, !tbaa !5
  %1690 = load i32, ptr %4, align 4, !tbaa !5
  %1691 = add nsw i32 %1690, -1
  store i32 %1691, ptr %15, align 4, !tbaa !5
  store i32 1, ptr %24, align 4, !tbaa !5
  %.not16402151 = icmp slt i32 %1690, 2
  br i1 %.not16402151, label %._crit_edge2155, label %.lr.ph2154

.lr.ph2154:                                       ; preds = %1689, %1736
  %storemerge16392152 = phi i32 [ %1737, %1736 ], [ 1, %1689 ]
  %1692 = load i32, ptr %4, align 4, !tbaa !5
  %reass.sub2183 = sub i32 %1692, %storemerge16392152
  %1693 = add i32 %reass.sub2183, 1
  store i32 %1693, ptr %16, align 4, !tbaa !5
  %1694 = sext i32 %storemerge16392152 to i64
  %1695 = getelementptr inbounds double, ptr %34, i64 %1694
  %1696 = call i32 @idamax_(ptr noundef nonnull %16, ptr noundef nonnull %1695, ptr noundef nonnull @c__1) #7
  %1697 = load i32, ptr %24, align 4, !tbaa !5
  %1698 = add i32 %1696, -1
  %1699 = add i32 %1698, %1697
  %.not1650 = icmp eq i32 %1698, 0
  br i1 %.not1650, label %1720, label %1700

1700:                                             ; preds = %.lr.ph2154
  %1701 = sext i32 %1697 to i64
  %1702 = getelementptr inbounds double, ptr %34, i64 %1701
  %1703 = load double, ptr %1702, align 8, !tbaa !9
  %1704 = sext i32 %1699 to i64
  %1705 = getelementptr inbounds double, ptr %34, i64 %1704
  %1706 = load double, ptr %1705, align 8, !tbaa !9
  store double %1706, ptr %1702, align 8, !tbaa !9
  store double %1703, ptr %1705, align 8, !tbaa !9
  %1707 = getelementptr inbounds double, ptr %41, i64 %1701
  %1708 = load double, ptr %1707, align 8, !tbaa !9
  store double %1708, ptr %23, align 8, !tbaa !9
  %1709 = getelementptr inbounds double, ptr %41, i64 %1704
  %1710 = load double, ptr %1709, align 8, !tbaa !9
  store double %1710, ptr %1707, align 8, !tbaa !9
  store double %1708, ptr %1709, align 8, !tbaa !9
  %1711 = mul nsw i32 %1697, %35
  %1712 = sext i32 %1711 to i64
  %gep2144 = getelementptr double, ptr %invariant.gep2137, i64 %1712
  %1713 = mul nsw i32 %1699, %35
  %1714 = sext i32 %1713 to i64
  %gep2146 = getelementptr double, ptr %invariant.gep2137, i64 %1714
  call void @dswap_(ptr noundef nonnull %3, ptr noundef %gep2144, ptr noundef nonnull @c__1, ptr noundef %gep2146, ptr noundef nonnull @c__1) #7
  %.pre2260 = load i32, ptr %24, align 4, !tbaa !5
  br i1 %or.cond5, label %1715, label %1720

1715:                                             ; preds = %1700
  %1716 = mul nsw i32 %.pre2260, %38
  %1717 = sext i32 %1716 to i64
  %gep2148 = getelementptr double, ptr %invariant.gep1916, i64 %1717
  %1718 = mul nsw i32 %1699, %38
  %1719 = sext i32 %1718 to i64
  %gep2150 = getelementptr double, ptr %invariant.gep1916, i64 %1719
  call void @dswap_(ptr noundef nonnull %33, ptr noundef %gep2148, ptr noundef nonnull @c__1, ptr noundef %gep2150, ptr noundef nonnull @c__1) #7
  %.pre2259 = load i32, ptr %24, align 4, !tbaa !5
  br label %1720

1720:                                             ; preds = %1700, %1715, %.lr.ph2154
  %1721 = phi i32 [ %.pre2260, %1700 ], [ %.pre2259, %1715 ], [ %1697, %.lr.ph2154 ]
  %1722 = sext i32 %1721 to i64
  %1723 = getelementptr inbounds double, ptr %34, i64 %1722
  %1724 = load double, ptr %1723, align 8, !tbaa !9
  %1725 = fcmp une double %1724, 0.000000e+00
  br i1 %1725, label %1726, label %1736

1726:                                             ; preds = %1720
  %1727 = load i32, ptr %30, align 4, !tbaa !5
  %1728 = add nsw i32 %1727, 1
  store i32 %1728, ptr %30, align 4, !tbaa !5
  %1729 = load double, ptr %31, align 8, !tbaa !9
  %1730 = fmul double %1724, %1729
  %1731 = load double, ptr %26, align 8, !tbaa !9
  %1732 = fcmp ogt double %1730, %1731
  br i1 %1732, label %1733, label %1736

1733:                                             ; preds = %1726
  %1734 = load i32, ptr %29, align 4, !tbaa !5
  %1735 = add nsw i32 %1734, 1
  store i32 %1735, ptr %29, align 4, !tbaa !5
  br label %1736

1736:                                             ; preds = %1720, %1733, %1726
  %1737 = add nsw i32 %1721, 1
  store i32 %1737, ptr %24, align 4, !tbaa !5
  %1738 = load i32, ptr %15, align 4, !tbaa !5
  %.not1640.not = icmp slt i32 %1721, %1738
  br i1 %.not1640.not, label %.lr.ph2154, label %._crit_edge2155.loopexit, !llvm.loop !37

._crit_edge2155.loopexit:                         ; preds = %1736
  %.pre2261 = load i32, ptr %4, align 4, !tbaa !5
  br label %._crit_edge2155

._crit_edge2155:                                  ; preds = %._crit_edge2155.loopexit, %1689
  %1739 = phi i32 [ %.pre2261, %._crit_edge2155.loopexit ], [ %1690, %1689 ]
  %1740 = sext i32 %1739 to i64
  %1741 = getelementptr inbounds double, ptr %34, i64 %1740
  %1742 = load double, ptr %1741, align 8, !tbaa !9
  %1743 = fcmp une double %1742, 0.000000e+00
  br i1 %1743, label %1744, label %1754

1744:                                             ; preds = %._crit_edge2155
  %1745 = load i32, ptr %30, align 4, !tbaa !5
  %1746 = add nsw i32 %1745, 1
  store i32 %1746, ptr %30, align 4, !tbaa !5
  %1747 = load double, ptr %31, align 8, !tbaa !9
  %1748 = fmul double %1742, %1747
  %1749 = load double, ptr %26, align 8, !tbaa !9
  %1750 = fcmp ogt double %1748, %1749
  br i1 %1750, label %1751, label %1754

1751:                                             ; preds = %1744
  %1752 = load i32, ptr %29, align 4, !tbaa !5
  %1753 = add nsw i32 %1752, 1
  store i32 %1753, ptr %29, align 4, !tbaa !5
  br label %1754

1754:                                             ; preds = %1744, %1751, %._crit_edge2155
  %1755 = or i32 %43, %42
  %or.cond21.not = icmp eq i32 %1755, 0
  br i1 %or.cond21.not, label %.loopexit1724, label %1756

1756:                                             ; preds = %1754
  %1757 = load i32, ptr %29, align 4, !tbaa !5
  store i32 %1757, ptr %15, align 4, !tbaa !5
  store i32 1, ptr %24, align 4, !tbaa !5
  %.not16432158 = icmp slt i32 %1757, 1
  br i1 %.not16432158, label %.loopexit1724, label %.lr.ph2161

.lr.ph2161:                                       ; preds = %1756, %.lr.ph2161
  %storemerge16422159 = phi i32 [ %1767, %.lr.ph2161 ], [ 1, %1756 ]
  %1758 = sext i32 %storemerge16422159 to i64
  %1759 = getelementptr inbounds double, ptr %41, i64 %1758
  %1760 = load double, ptr %1759, align 8, !tbaa !9
  %1761 = getelementptr inbounds double, ptr %34, i64 %1758
  %1762 = load double, ptr %1761, align 8, !tbaa !9
  %1763 = fdiv double %1760, %1762
  store double %1763, ptr %19, align 8, !tbaa !9
  %1764 = mul nsw i32 %storemerge16422159, %35
  %1765 = sext i32 %1764 to i64
  %gep2157 = getelementptr double, ptr %invariant.gep2137, i64 %1765
  call void @dscal_(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep2157, ptr noundef nonnull @c__1) #7
  %1766 = load i32, ptr %24, align 4, !tbaa !5
  %1767 = add nsw i32 %1766, 1
  store i32 %1767, ptr %24, align 4, !tbaa !5
  %1768 = load i32, ptr %15, align 4, !tbaa !5
  %.not1643.not = icmp slt i32 %1766, %1768
  br i1 %.not1643.not, label %.lr.ph2161, label %.loopexit1724, !llvm.loop !38

.loopexit1724:                                    ; preds = %.lr.ph2161, %1756, %1754
  br i1 %or.cond5, label %1769, label %.loopexit

1769:                                             ; preds = %.loopexit1724
  %1770 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %1770, ptr %15, align 4, !tbaa !5
  store i32 1, ptr %24, align 4, !tbaa !5
  %.not16472172 = icmp slt i32 %1770, 1
  br i1 %59, label %1771, label %1779

1771:                                             ; preds = %1769
  br i1 %.not16472172, label %.loopexit, label %.lr.ph2175

.lr.ph2175:                                       ; preds = %1771, %.lr.ph2175
  %storemerge16462173 = phi i32 [ %1777, %.lr.ph2175 ], [ 1, %1771 ]
  %1772 = sext i32 %storemerge16462173 to i64
  %1773 = getelementptr inbounds double, ptr %41, i64 %1772
  %1774 = mul nsw i32 %storemerge16462173, %38
  %1775 = sext i32 %1774 to i64
  %gep2171 = getelementptr double, ptr %invariant.gep1916, i64 %1775
  call void @dscal_(ptr noundef nonnull %33, ptr noundef nonnull %1773, ptr noundef %gep2171, ptr noundef nonnull @c__1) #7
  %1776 = load i32, ptr %24, align 4, !tbaa !5
  %1777 = add nsw i32 %1776, 1
  store i32 %1777, ptr %24, align 4, !tbaa !5
  %1778 = load i32, ptr %15, align 4, !tbaa !5
  %.not1647.not = icmp slt i32 %1776, %1778
  br i1 %.not1647.not, label %.lr.ph2175, label %.loopexit, !llvm.loop !39

1779:                                             ; preds = %1769
  br i1 %.not16472172, label %.loopexit, label %.lr.ph2169

.lr.ph2169:                                       ; preds = %1779, %.lr.ph2169
  %storemerge16442167 = phi i32 [ %1788, %.lr.ph2169 ], [ 1, %1779 ]
  %1780 = mul nsw i32 %storemerge16442167, %38
  %1781 = sext i32 %1780 to i64
  %gep2163 = getelementptr double, ptr %invariant.gep1916, i64 %1781
  %1782 = call double @dnrm2_(ptr noundef nonnull %33, ptr noundef %gep2163, ptr noundef nonnull @c__1) #7
  %1783 = fdiv double 1.000000e+00, %1782
  store double %1783, ptr %23, align 8, !tbaa !9
  %1784 = load i32, ptr %24, align 4, !tbaa !5
  %1785 = mul nsw i32 %1784, %38
  %1786 = sext i32 %1785 to i64
  %gep2165 = getelementptr double, ptr %invariant.gep1916, i64 %1786
  call void @dscal_(ptr noundef nonnull %33, ptr noundef nonnull %23, ptr noundef %gep2165, ptr noundef nonnull @c__1) #7
  %1787 = load i32, ptr %24, align 4, !tbaa !5
  %1788 = add nsw i32 %1787, 1
  store i32 %1788, ptr %24, align 4, !tbaa !5
  %1789 = load i32, ptr %15, align 4, !tbaa !5
  %.not1645.not = icmp slt i32 %1787, %1789
  br i1 %.not1645.not, label %.lr.ph2169, label %.loopexit, !llvm.loop !40

.loopexit:                                        ; preds = %.lr.ph2169, %.lr.ph2175, %1779, %1771, %.loopexit1724
  %1790 = load double, ptr %31, align 8, !tbaa !9
  %1791 = fcmp ogt double %1790, 1.000000e+00
  br i1 %1791, label %1792, label %1796

1792:                                             ; preds = %.loopexit
  %1793 = load double, ptr %7, align 8, !tbaa !9
  %1794 = fdiv double %112, %1790
  %1795 = fcmp olt double %1793, %1794
  br i1 %1795, label %1806, label %1796

1796:                                             ; preds = %1792, %.loopexit
  %1797 = fcmp olt double %1790, 1.000000e+00
  %.pre2263 = load i32, ptr %29, align 4
  br i1 %1797, label %1798, label %1818

1798:                                             ; preds = %1796
  %1799 = call i32 @llvm.smax.i32(i32 %.pre2263, i32 1)
  %1800 = zext nneg i32 %1799 to i64
  %1801 = getelementptr inbounds double, ptr %34, i64 %1800
  %1802 = load double, ptr %1801, align 8, !tbaa !9
  %1803 = load double, ptr %26, align 8, !tbaa !9
  %1804 = fdiv double %1803, %1790
  %1805 = fcmp ogt double %1802, %1804
  br i1 %1805, label %1806, label %1818

1806:                                             ; preds = %1798, %1792
  %1807 = load i32, ptr %4, align 4, !tbaa !5
  %.not16492176 = icmp slt i32 %1807, 1
  br i1 %.not16492176, label %._crit_edge2180, label %.lr.ph2179.preheader

.lr.ph2179.preheader:                             ; preds = %1806
  %1808 = add nuw i32 %1807, 1
  %wide.trip.count2246 = zext i32 %1808 to i64
  %1809 = zext nneg i32 %1807 to i64
  %min.iters.check2415 = icmp ult i32 %1807, 4
  br i1 %min.iters.check2415, label %.lr.ph2179.preheader2431, label %vector.ph2416

vector.ph2416:                                    ; preds = %.lr.ph2179.preheader
  %n.vec2418 = and i64 %1809, 2147483644
  %ind.end2419 = or disjoint i64 %n.vec2418, 1
  %broadcast.splatinsert2426 = insertelement <2 x double> poison, double %1790, i64 0
  %broadcast.splat2427 = shufflevector <2 x double> %broadcast.splatinsert2426, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2421

vector.body2421:                                  ; preds = %vector.body2421, %vector.ph2416
  %index2422 = phi i64 [ 0, %vector.ph2416 ], [ %index.next2428, %vector.body2421 ]
  %1810 = getelementptr double, ptr %7, i64 %index2422
  %1811 = getelementptr inbounds i8, ptr %1810, i64 16
  %wide.load2424 = load <2 x double>, ptr %1810, align 8, !tbaa !9
  %wide.load2425 = load <2 x double>, ptr %1811, align 8, !tbaa !9
  %1812 = fmul <2 x double> %broadcast.splat2427, %wide.load2424
  %1813 = fmul <2 x double> %broadcast.splat2427, %wide.load2425
  store <2 x double> %1812, ptr %1810, align 8, !tbaa !9
  store <2 x double> %1813, ptr %1811, align 8, !tbaa !9
  %index.next2428 = add nuw i64 %index2422, 4
  %1814 = icmp eq i64 %index.next2428, %n.vec2418
  br i1 %1814, label %middle.block2413, label %vector.body2421, !llvm.loop !41

middle.block2413:                                 ; preds = %vector.body2421
  %cmp.n2429 = icmp eq i64 %n.vec2418, %1809
  br i1 %cmp.n2429, label %._crit_edge2180, label %.lr.ph2179.preheader2431

.lr.ph2179.preheader2431:                         ; preds = %middle.block2413, %.lr.ph2179.preheader
  %indvars.iv2243.ph = phi i64 [ 1, %.lr.ph2179.preheader ], [ %ind.end2419, %middle.block2413 ]
  br label %.lr.ph2179

.lr.ph2179:                                       ; preds = %.lr.ph2179.preheader2431, %.lr.ph2179
  %indvars.iv2243 = phi i64 [ %indvars.iv.next2244, %.lr.ph2179 ], [ %indvars.iv2243.ph, %.lr.ph2179.preheader2431 ]
  %1815 = getelementptr inbounds double, ptr %34, i64 %indvars.iv2243
  %1816 = load double, ptr %1815, align 8, !tbaa !9
  %1817 = fmul double %1790, %1816
  store double %1817, ptr %1815, align 8, !tbaa !9
  %indvars.iv.next2244 = add nuw nsw i64 %indvars.iv2243, 1
  %exitcond2247.not = icmp eq i64 %indvars.iv.next2244, %wide.trip.count2246
  br i1 %exitcond2247.not, label %._crit_edge2180, label %.lr.ph2179, !llvm.loop !42

._crit_edge2180:                                  ; preds = %.lr.ph2179, %middle.block2413, %1806
  %.pre2262 = load i32, ptr %29, align 4, !tbaa !5
  br label %1818

1818:                                             ; preds = %._crit_edge2180, %1798, %1796
  %1819 = phi i32 [ %.pre2262, %._crit_edge2180 ], [ %.pre2263, %1798 ], [ %.pre2263, %1796 ]
  %1820 = phi double [ 1.000000e+00, %._crit_edge2180 ], [ %1790, %1798 ], [ %1790, %1796 ]
  store double %1820, ptr %11, align 8, !tbaa !9
  %1821 = load i32, ptr %30, align 4, !tbaa !5
  %1822 = sitofp i32 %1821 to double
  %1823 = getelementptr inbounds i8, ptr %11, i64 8
  store double %1822, ptr %1823, align 8, !tbaa !9
  %1824 = sitofp i32 %1819 to double
  %1825 = getelementptr inbounds i8, ptr %11, i64 16
  store double %1824, ptr %1825, align 8, !tbaa !9
  %1826 = uitofp nneg i32 %.01539.lcssa to double
  %1827 = getelementptr inbounds i8, ptr %11, i64 24
  store double %1826, ptr %1827, align 8, !tbaa !9
  %1828 = getelementptr inbounds i8, ptr %11, i64 32
  store double %.11517.lcssa, ptr %1828, align 8, !tbaa !9
  %1829 = getelementptr inbounds i8, ptr %11, i64 40
  store double %.11498.lcssa, ptr %1829, align 8, !tbaa !9
  br label %1830

1830:                                             ; preds = %92, %95, %1818, %293, %287, %233, %193, %152, %127, %90
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 40, 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 4, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #7
  ret void
}

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

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

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

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

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

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

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

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

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

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

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

declare void @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 i32 @llvm.smax.i32(i32, i32) #5

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #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 i64 @llvm.smax.i64(i64, i64) #5

; 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 = !{!"int", !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,VectorCombinePass