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

; 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"

@c__13 = external hidden global i64, align 8
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@c__15 = external hidden global i64, align 8
@c_n1 = external hidden global i64, align 8
@c__12 = external hidden global i64, align 8
@c__14 = external hidden global i64, align 8
@c__16 = external hidden global i64, align 8
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_false = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8
@c__3 = external hidden global i64, align 8

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

118:                                              ; preds = %16
  %119 = load ptr, ptr %31, align 8, !tbaa !5
  %120 = getelementptr inbounds double, ptr %119, i64 1
  store double 1.000000e+00, ptr %120, align 8, !tbaa !11
  store i32 0, ptr %17, align 4
  store i32 1, ptr %91, align 4
  br label %1362

121:                                              ; preds = %16
  %122 = load ptr, ptr %20, align 8, !tbaa !5
  %123 = load i64, ptr %122, align 8, !tbaa !9
  %124 = icmp sle i64 %123, 11
  br i1 %124, label %125, label %152

125:                                              ; preds = %121
  store i64 1, ptr %90, align 8, !tbaa !9
  %126 = load ptr, ptr %32, align 8, !tbaa !5
  %127 = load i64, ptr %126, align 8, !tbaa !9
  %128 = icmp ne i64 %127, -1
  br i1 %128, label %129, label %151

129:                                              ; preds = %125
  %130 = load ptr, ptr %18, align 8, !tbaa !5
  %131 = load ptr, ptr %19, align 8, !tbaa !5
  %132 = load ptr, ptr %20, align 8, !tbaa !5
  %133 = load ptr, ptr %21, align 8, !tbaa !5
  %134 = load ptr, ptr %22, align 8, !tbaa !5
  %135 = load ptr, ptr %23, align 8, !tbaa !5
  %136 = load i64, ptr %35, align 8, !tbaa !9
  %137 = getelementptr inbounds double, ptr %135, i64 %136
  %138 = load ptr, ptr %24, align 8, !tbaa !5
  %139 = load ptr, ptr %25, align 8, !tbaa !5
  %140 = getelementptr inbounds double, ptr %139, i64 1
  %141 = load ptr, ptr %26, align 8, !tbaa !5
  %142 = getelementptr inbounds double, ptr %141, i64 1
  %143 = load ptr, ptr %27, align 8, !tbaa !5
  %144 = load ptr, ptr %28, align 8, !tbaa !5
  %145 = load ptr, ptr %29, align 8, !tbaa !5
  %146 = load i64, ptr %37, align 8, !tbaa !9
  %147 = getelementptr inbounds double, ptr %145, i64 %146
  %148 = load ptr, ptr %30, align 8, !tbaa !5
  %149 = load ptr, ptr %33, align 8, !tbaa !5
  %150 = call i32 @dlahqr_(ptr noundef %130, ptr noundef %131, ptr noundef %132, ptr noundef %133, ptr noundef %134, ptr noundef %137, ptr noundef %138, ptr noundef %140, ptr noundef %142, ptr noundef %143, ptr noundef %144, ptr noundef %147, ptr noundef %148, ptr noundef %149)
  br label %151

151:                                              ; preds = %129, %125
  br label %1357

152:                                              ; preds = %121
  %153 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 0, ptr %153, align 8, !tbaa !9
  %154 = load ptr, ptr %18, align 8, !tbaa !5
  %155 = load i64, ptr %154, align 8, !tbaa !9
  %156 = icmp ne i64 %155, 0
  br i1 %156, label %157, label %159

157:                                              ; preds = %152
  %158 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 0
  store i8 83, ptr %158, align 1, !tbaa !13
  br label %161

159:                                              ; preds = %152
  %160 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 0
  store i8 69, ptr %160, align 1, !tbaa !13
  br label %161

161:                                              ; preds = %159, %157
  %162 = load ptr, ptr %19, align 8, !tbaa !5
  %163 = load i64, ptr %162, align 8, !tbaa !9
  %164 = icmp ne i64 %163, 0
  br i1 %164, label %165, label %167

165:                                              ; preds = %161
  %166 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 1
  store i8 86, ptr %166, align 1, !tbaa !13
  br label %169

167:                                              ; preds = %161
  %168 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 1
  store i8 78, ptr %168, align 1, !tbaa !13
  br label %169

169:                                              ; preds = %167, %165
  %170 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 0
  %171 = load ptr, ptr %20, align 8, !tbaa !5
  %172 = load ptr, ptr %21, align 8, !tbaa !5
  %173 = load ptr, ptr %22, align 8, !tbaa !5
  %174 = load ptr, ptr %32, align 8, !tbaa !5
  %175 = call i64 @ilaenv_(ptr noundef @c__13, ptr noundef @.str, ptr noundef %170, ptr noundef %171, ptr noundef %172, ptr noundef %173, ptr noundef %174)
  store i64 %175, ptr %72, align 8, !tbaa !9
  %176 = load i64, ptr %72, align 8, !tbaa !9
  %177 = icmp sge i64 2, %176
  br i1 %177, label %178, label %179

178:                                              ; preds = %169
  br label %181

179:                                              ; preds = %169
  %180 = load i64, ptr %72, align 8, !tbaa !9
  br label %181

181:                                              ; preds = %179, %178
  %182 = phi i64 [ 2, %178 ], [ %180, %179 ]
  store i64 %182, ptr %72, align 8, !tbaa !9
  %183 = load ptr, ptr %22, align 8, !tbaa !5
  %184 = load i64, ptr %183, align 8, !tbaa !9
  %185 = load ptr, ptr %21, align 8, !tbaa !5
  %186 = load i64, ptr %185, align 8, !tbaa !9
  %187 = sub nsw i64 %184, %186
  %188 = add nsw i64 %187, 1
  store i64 %188, ptr %38, align 8, !tbaa !9
  %189 = load ptr, ptr %20, align 8, !tbaa !5
  %190 = load i64, ptr %189, align 8, !tbaa !9
  %191 = sub nsw i64 %190, 1
  %192 = sdiv i64 %191, 3
  store i64 %192, ptr %39, align 8, !tbaa !9
  %193 = load i64, ptr %38, align 8, !tbaa !9
  %194 = load i64, ptr %39, align 8, !tbaa !9
  %195 = icmp sle i64 %193, %194
  br i1 %195, label %196, label %198

196:                                              ; preds = %181
  %197 = load i64, ptr %38, align 8, !tbaa !9
  br label %200

198:                                              ; preds = %181
  %199 = load i64, ptr %39, align 8, !tbaa !9
  br label %200

200:                                              ; preds = %198, %196
  %201 = phi i64 [ %197, %196 ], [ %199, %198 ]
  store i64 %201, ptr %38, align 8, !tbaa !9
  %202 = load i64, ptr %38, align 8, !tbaa !9
  %203 = load i64, ptr %72, align 8, !tbaa !9
  %204 = icmp sle i64 %202, %203
  br i1 %204, label %205, label %207

205:                                              ; preds = %200
  %206 = load i64, ptr %38, align 8, !tbaa !9
  br label %209

207:                                              ; preds = %200
  %208 = load i64, ptr %72, align 8, !tbaa !9
  br label %209

209:                                              ; preds = %207, %205
  %210 = phi i64 [ %206, %205 ], [ %208, %207 ]
  store i64 %210, ptr %72, align 8, !tbaa !9
  %211 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 0
  %212 = load ptr, ptr %20, align 8, !tbaa !5
  %213 = load ptr, ptr %21, align 8, !tbaa !5
  %214 = load ptr, ptr %22, align 8, !tbaa !5
  %215 = load ptr, ptr %32, align 8, !tbaa !5
  %216 = call i64 @ilaenv_(ptr noundef @c__15, ptr noundef @.str, ptr noundef %211, ptr noundef %212, ptr noundef %213, ptr noundef %214, ptr noundef %215)
  store i64 %216, ptr %71, align 8, !tbaa !9
  %217 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %217, ptr %38, align 8, !tbaa !9
  %218 = load ptr, ptr %20, align 8, !tbaa !5
  %219 = load i64, ptr %218, align 8, !tbaa !9
  %220 = add nsw i64 %219, 6
  %221 = sdiv i64 %220, 9
  store i64 %221, ptr %39, align 8, !tbaa !9
  %222 = load i64, ptr %38, align 8, !tbaa !9
  %223 = load i64, ptr %39, align 8, !tbaa !9
  %224 = icmp sle i64 %222, %223
  br i1 %224, label %225, label %227

225:                                              ; preds = %209
  %226 = load i64, ptr %38, align 8, !tbaa !9
  br label %229

227:                                              ; preds = %209
  %228 = load i64, ptr %39, align 8, !tbaa !9
  br label %229

229:                                              ; preds = %227, %225
  %230 = phi i64 [ %226, %225 ], [ %228, %227 ]
  store i64 %230, ptr %38, align 8, !tbaa !9
  %231 = load ptr, ptr %22, align 8, !tbaa !5
  %232 = load i64, ptr %231, align 8, !tbaa !9
  %233 = load ptr, ptr %21, align 8, !tbaa !5
  %234 = load i64, ptr %233, align 8, !tbaa !9
  %235 = sub nsw i64 %232, %234
  store i64 %235, ptr %39, align 8, !tbaa !9
  %236 = load i64, ptr %38, align 8, !tbaa !9
  %237 = load i64, ptr %39, align 8, !tbaa !9
  %238 = icmp sle i64 %236, %237
  br i1 %238, label %239, label %241

239:                                              ; preds = %229
  %240 = load i64, ptr %38, align 8, !tbaa !9
  br label %243

241:                                              ; preds = %229
  %242 = load i64, ptr %39, align 8, !tbaa !9
  br label %243

243:                                              ; preds = %241, %239
  %244 = phi i64 [ %240, %239 ], [ %242, %241 ]
  store i64 %244, ptr %71, align 8, !tbaa !9
  store i64 2, ptr %38, align 8, !tbaa !9
  %245 = load i64, ptr %71, align 8, !tbaa !9
  %246 = load i64, ptr %71, align 8, !tbaa !9
  %247 = srem i64 %246, 2
  %248 = sub nsw i64 %245, %247
  store i64 %248, ptr %39, align 8, !tbaa !9
  %249 = load i64, ptr %38, align 8, !tbaa !9
  %250 = load i64, ptr %39, align 8, !tbaa !9
  %251 = icmp sge i64 %249, %250
  br i1 %251, label %252, label %254

252:                                              ; preds = %243
  %253 = load i64, ptr %38, align 8, !tbaa !9
  br label %256

254:                                              ; preds = %243
  %255 = load i64, ptr %39, align 8, !tbaa !9
  br label %256

256:                                              ; preds = %254, %252
  %257 = phi i64 [ %253, %252 ], [ %255, %254 ]
  store i64 %257, ptr %71, align 8, !tbaa !9
  %258 = load i64, ptr %72, align 8, !tbaa !9
  %259 = add nsw i64 %258, 1
  store i64 %259, ptr %38, align 8, !tbaa !9
  %260 = load ptr, ptr %18, align 8, !tbaa !5
  %261 = load ptr, ptr %19, align 8, !tbaa !5
  %262 = load ptr, ptr %20, align 8, !tbaa !5
  %263 = load ptr, ptr %21, align 8, !tbaa !5
  %264 = load ptr, ptr %22, align 8, !tbaa !5
  %265 = load ptr, ptr %23, align 8, !tbaa !5
  %266 = load i64, ptr %35, align 8, !tbaa !9
  %267 = getelementptr inbounds double, ptr %265, i64 %266
  %268 = load ptr, ptr %24, align 8, !tbaa !5
  %269 = load ptr, ptr %27, align 8, !tbaa !5
  %270 = load ptr, ptr %28, align 8, !tbaa !5
  %271 = load ptr, ptr %29, align 8, !tbaa !5
  %272 = load i64, ptr %37, align 8, !tbaa !9
  %273 = getelementptr inbounds double, ptr %271, i64 %272
  %274 = load ptr, ptr %30, align 8, !tbaa !5
  %275 = load ptr, ptr %25, align 8, !tbaa !5
  %276 = getelementptr inbounds double, ptr %275, i64 1
  %277 = load ptr, ptr %26, align 8, !tbaa !5
  %278 = getelementptr inbounds double, ptr %277, i64 1
  %279 = load ptr, ptr %23, align 8, !tbaa !5
  %280 = load i64, ptr %35, align 8, !tbaa !9
  %281 = getelementptr inbounds double, ptr %279, i64 %280
  %282 = load ptr, ptr %24, align 8, !tbaa !5
  %283 = load ptr, ptr %20, align 8, !tbaa !5
  %284 = load ptr, ptr %23, align 8, !tbaa !5
  %285 = load i64, ptr %35, align 8, !tbaa !9
  %286 = getelementptr inbounds double, ptr %284, i64 %285
  %287 = load ptr, ptr %24, align 8, !tbaa !5
  %288 = load ptr, ptr %20, align 8, !tbaa !5
  %289 = load ptr, ptr %23, align 8, !tbaa !5
  %290 = load i64, ptr %35, align 8, !tbaa !9
  %291 = getelementptr inbounds double, ptr %289, i64 %290
  %292 = load ptr, ptr %24, align 8, !tbaa !5
  %293 = load ptr, ptr %31, align 8, !tbaa !5
  %294 = getelementptr inbounds double, ptr %293, i64 1
  %295 = call i32 @dlaqr2_(ptr noundef %260, ptr noundef %261, ptr noundef %262, ptr noundef %263, ptr noundef %264, ptr noundef %38, ptr noundef %267, ptr noundef %268, ptr noundef %269, ptr noundef %270, ptr noundef %273, ptr noundef %274, ptr noundef %62, ptr noundef %53, ptr noundef %276, ptr noundef %278, ptr noundef %281, ptr noundef %282, ptr noundef %283, ptr noundef %286, ptr noundef %287, ptr noundef %288, ptr noundef %291, ptr noundef %292, ptr noundef %294, ptr noundef @c_n1)
  %296 = load i64, ptr %71, align 8, !tbaa !9
  %297 = mul nsw i64 %296, 3
  %298 = sdiv i64 %297, 2
  store i64 %298, ptr %38, align 8, !tbaa !9
  %299 = load ptr, ptr %31, align 8, !tbaa !5
  %300 = getelementptr inbounds double, ptr %299, i64 1
  %301 = load double, ptr %300, align 8, !tbaa !11
  %302 = fptosi double %301 to i64
  store i64 %302, ptr %39, align 8, !tbaa !9
  %303 = load i64, ptr %38, align 8, !tbaa !9
  %304 = load i64, ptr %39, align 8, !tbaa !9
  %305 = icmp sge i64 %303, %304
  br i1 %305, label %306, label %308

306:                                              ; preds = %256
  %307 = load i64, ptr %38, align 8, !tbaa !9
  br label %310

308:                                              ; preds = %256
  %309 = load i64, ptr %39, align 8, !tbaa !9
  br label %310

310:                                              ; preds = %308, %306
  %311 = phi i64 [ %307, %306 ], [ %309, %308 ]
  store i64 %311, ptr %90, align 8, !tbaa !9
  %312 = load ptr, ptr %32, align 8, !tbaa !5
  %313 = load i64, ptr %312, align 8, !tbaa !9
  %314 = icmp eq i64 %313, -1
  br i1 %314, label %315, label %320

315:                                              ; preds = %310
  %316 = load i64, ptr %90, align 8, !tbaa !9
  %317 = sitofp i64 %316 to double
  %318 = load ptr, ptr %31, align 8, !tbaa !5
  %319 = getelementptr inbounds double, ptr %318, i64 1
  store double %317, ptr %319, align 8, !tbaa !11
  store i32 0, ptr %17, align 4
  store i32 1, ptr %91, align 4
  br label %1362

320:                                              ; preds = %310
  %321 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 0
  %322 = load ptr, ptr %20, align 8, !tbaa !5
  %323 = load ptr, ptr %21, align 8, !tbaa !5
  %324 = load ptr, ptr %22, align 8, !tbaa !5
  %325 = load ptr, ptr %32, align 8, !tbaa !5
  %326 = call i64 @ilaenv_(ptr noundef @c__12, ptr noundef @.str, ptr noundef %321, ptr noundef %322, ptr noundef %323, ptr noundef %324, ptr noundef %325)
  store i64 %326, ptr %77, align 8, !tbaa !9
  %327 = load i64, ptr %77, align 8, !tbaa !9
  %328 = icmp sge i64 11, %327
  br i1 %328, label %329, label %330

329:                                              ; preds = %320
  br label %332

330:                                              ; preds = %320
  %331 = load i64, ptr %77, align 8, !tbaa !9
  br label %332

332:                                              ; preds = %330, %329
  %333 = phi i64 [ 11, %329 ], [ %331, %330 ]
  store i64 %333, ptr %77, align 8, !tbaa !9
  %334 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 0
  %335 = load ptr, ptr %20, align 8, !tbaa !5
  %336 = load ptr, ptr %21, align 8, !tbaa !5
  %337 = load ptr, ptr %22, align 8, !tbaa !5
  %338 = load ptr, ptr %32, align 8, !tbaa !5
  %339 = call i64 @ilaenv_(ptr noundef @c__14, ptr noundef @.str, ptr noundef %334, ptr noundef %335, ptr noundef %336, ptr noundef %337, ptr noundef %338)
  store i64 %339, ptr %86, align 8, !tbaa !9
  %340 = load i64, ptr %86, align 8, !tbaa !9
  %341 = icmp sge i64 0, %340
  br i1 %341, label %342, label %343

342:                                              ; preds = %332
  br label %345

343:                                              ; preds = %332
  %344 = load i64, ptr %86, align 8, !tbaa !9
  br label %345

345:                                              ; preds = %343, %342
  %346 = phi i64 [ 0, %342 ], [ %344, %343 ]
  store i64 %346, ptr %86, align 8, !tbaa !9
  %347 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 0
  %348 = load ptr, ptr %20, align 8, !tbaa !5
  %349 = load ptr, ptr %21, align 8, !tbaa !5
  %350 = load ptr, ptr %22, align 8, !tbaa !5
  %351 = load ptr, ptr %32, align 8, !tbaa !5
  %352 = call i64 @ilaenv_(ptr noundef @c__16, ptr noundef @.str, ptr noundef %347, ptr noundef %348, ptr noundef %349, ptr noundef %350, ptr noundef %351)
  store i64 %352, ptr %81, align 8, !tbaa !9
  %353 = load i64, ptr %81, align 8, !tbaa !9
  %354 = icmp sge i64 0, %353
  br i1 %354, label %355, label %356

355:                                              ; preds = %345
  br label %358

356:                                              ; preds = %345
  %357 = load i64, ptr %81, align 8, !tbaa !9
  br label %358

358:                                              ; preds = %356, %355
  %359 = phi i64 [ 0, %355 ], [ %357, %356 ]
  store i64 %359, ptr %81, align 8, !tbaa !9
  %360 = load i64, ptr %81, align 8, !tbaa !9
  %361 = icmp sle i64 2, %360
  br i1 %361, label %362, label %363

362:                                              ; preds = %358
  br label %365

363:                                              ; preds = %358
  %364 = load i64, ptr %81, align 8, !tbaa !9
  br label %365

365:                                              ; preds = %363, %362
  %366 = phi i64 [ 2, %362 ], [ %364, %363 ]
  store i64 %366, ptr %81, align 8, !tbaa !9
  %367 = load ptr, ptr %20, align 8, !tbaa !5
  %368 = load i64, ptr %367, align 8, !tbaa !9
  %369 = sub nsw i64 %368, 1
  %370 = sdiv i64 %369, 3
  store i64 %370, ptr %38, align 8, !tbaa !9
  %371 = load ptr, ptr %32, align 8, !tbaa !5
  %372 = load i64, ptr %371, align 8, !tbaa !9
  %373 = sdiv i64 %372, 2
  store i64 %373, ptr %39, align 8, !tbaa !9
  %374 = load i64, ptr %38, align 8, !tbaa !9
  %375 = load i64, ptr %39, align 8, !tbaa !9
  %376 = icmp sle i64 %374, %375
  br i1 %376, label %377, label %379

377:                                              ; preds = %365
  %378 = load i64, ptr %38, align 8, !tbaa !9
  br label %381

379:                                              ; preds = %365
  %380 = load i64, ptr %39, align 8, !tbaa !9
  br label %381

381:                                              ; preds = %379, %377
  %382 = phi i64 [ %378, %377 ], [ %380, %379 ]
  store i64 %382, ptr %84, align 8, !tbaa !9
  %383 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %383, ptr %65, align 8, !tbaa !9
  %384 = load ptr, ptr %20, align 8, !tbaa !5
  %385 = load i64, ptr %384, align 8, !tbaa !9
  %386 = add nsw i64 %385, 6
  %387 = sdiv i64 %386, 9
  store i64 %387, ptr %38, align 8, !tbaa !9
  %388 = load ptr, ptr %32, align 8, !tbaa !5
  %389 = load i64, ptr %388, align 8, !tbaa !9
  %390 = shl i64 %389, 1
  %391 = sdiv i64 %390, 3
  store i64 %391, ptr %39, align 8, !tbaa !9
  %392 = load i64, ptr %38, align 8, !tbaa !9
  %393 = load i64, ptr %39, align 8, !tbaa !9
  %394 = icmp sle i64 %392, %393
  br i1 %394, label %395, label %397

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

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

399:                                              ; preds = %397, %395
  %400 = phi i64 [ %396, %395 ], [ %398, %397 ]
  store i64 %400, ptr %83, align 8, !tbaa !9
  %401 = load i64, ptr %83, align 8, !tbaa !9
  %402 = srem i64 %401, 2
  %403 = load i64, ptr %83, align 8, !tbaa !9
  %404 = sub nsw i64 %403, %402
  store i64 %404, ptr %83, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  store i64 10, ptr %38, align 8, !tbaa !9
  %405 = load ptr, ptr %22, align 8, !tbaa !5
  %406 = load i64, ptr %405, align 8, !tbaa !9
  %407 = load ptr, ptr %21, align 8, !tbaa !5
  %408 = load i64, ptr %407, align 8, !tbaa !9
  %409 = sub nsw i64 %406, %408
  %410 = add nsw i64 %409, 1
  store i64 %410, ptr %39, align 8, !tbaa !9
  %411 = load i64, ptr %38, align 8, !tbaa !9
  %412 = load i64, ptr %39, align 8, !tbaa !9
  %413 = icmp sge i64 %411, %412
  br i1 %413, label %414, label %416

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

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

418:                                              ; preds = %416, %414
  %419 = phi i64 [ %415, %414 ], [ %417, %416 ]
  %420 = mul nsw i64 %419, 30
  store i64 %420, ptr %82, align 8, !tbaa !9
  %421 = load ptr, ptr %22, align 8, !tbaa !5
  %422 = load i64, ptr %421, align 8, !tbaa !9
  store i64 %422, ptr %76, align 8, !tbaa !9
  %423 = load i64, ptr %82, align 8, !tbaa !9
  store i64 %423, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %56, align 8, !tbaa !9
  br label %424

424:                                              ; preds = %1350, %418
  %425 = load i64, ptr %56, align 8, !tbaa !9
  %426 = load i64, ptr %38, align 8, !tbaa !9
  %427 = icmp sle i64 %425, %426
  br i1 %427, label %428, label %1353

428:                                              ; preds = %424
  %429 = load i64, ptr %76, align 8, !tbaa !9
  %430 = load ptr, ptr %21, align 8, !tbaa !5
  %431 = load i64, ptr %430, align 8, !tbaa !9
  %432 = icmp slt i64 %429, %431
  br i1 %432, label %433, label %434

433:                                              ; preds = %428
  br label %1356

434:                                              ; preds = %428
  %435 = load ptr, ptr %21, align 8, !tbaa !5
  %436 = load i64, ptr %435, align 8, !tbaa !9
  %437 = add nsw i64 %436, 1
  store i64 %437, ptr %39, align 8, !tbaa !9
  %438 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %438, ptr %48, align 8, !tbaa !9
  br label %439

439:                                              ; preds = %456, %434
  %440 = load i64, ptr %48, align 8, !tbaa !9
  %441 = load i64, ptr %39, align 8, !tbaa !9
  %442 = icmp sge i64 %440, %441
  br i1 %442, label %443, label %459

443:                                              ; preds = %439
  %444 = load ptr, ptr %23, align 8, !tbaa !5
  %445 = load i64, ptr %48, align 8, !tbaa !9
  %446 = load i64, ptr %48, align 8, !tbaa !9
  %447 = sub nsw i64 %446, 1
  %448 = load i64, ptr %34, align 8, !tbaa !9
  %449 = mul nsw i64 %447, %448
  %450 = add nsw i64 %445, %449
  %451 = getelementptr inbounds double, ptr %444, i64 %450
  %452 = load double, ptr %451, align 8, !tbaa !11
  %453 = fcmp oeq double %452, 0.000000e+00
  br i1 %453, label %454, label %455

454:                                              ; preds = %443
  br label %462

455:                                              ; preds = %443
  br label %456

456:                                              ; preds = %455
  %457 = load i64, ptr %48, align 8, !tbaa !9
  %458 = add nsw i64 %457, -1
  store i64 %458, ptr %48, align 8, !tbaa !9
  br label %439, !llvm.loop !14

459:                                              ; preds = %439
  %460 = load ptr, ptr %21, align 8, !tbaa !5
  %461 = load i64, ptr %460, align 8, !tbaa !9
  store i64 %461, ptr %48, align 8, !tbaa !9
  br label %462

462:                                              ; preds = %459, %454
  %463 = load i64, ptr %48, align 8, !tbaa !9
  store i64 %463, ptr %79, align 8, !tbaa !9
  %464 = load i64, ptr %76, align 8, !tbaa !9
  %465 = load i64, ptr %79, align 8, !tbaa !9
  %466 = sub nsw i64 %464, %465
  %467 = add nsw i64 %466, 1
  store i64 %467, ptr %55, align 8, !tbaa !9
  %468 = load i64, ptr %55, align 8, !tbaa !9
  %469 = load i64, ptr %84, align 8, !tbaa !9
  %470 = icmp sle i64 %468, %469
  br i1 %470, label %471, label %473

471:                                              ; preds = %462
  %472 = load i64, ptr %55, align 8, !tbaa !9
  br label %475

473:                                              ; preds = %462
  %474 = load i64, ptr %84, align 8, !tbaa !9
  br label %475

475:                                              ; preds = %473, %471
  %476 = phi i64 [ %472, %471 ], [ %474, %473 ]
  store i64 %476, ptr %88, align 8, !tbaa !9
  %477 = load i64, ptr %75, align 8, !tbaa !9
  %478 = icmp slt i64 %477, 5
  br i1 %478, label %479, label %489

479:                                              ; preds = %475
  %480 = load i64, ptr %88, align 8, !tbaa !9
  %481 = load i64, ptr %72, align 8, !tbaa !9
  %482 = icmp sle i64 %480, %481
  br i1 %482, label %483, label %485

483:                                              ; preds = %479
  %484 = load i64, ptr %88, align 8, !tbaa !9
  br label %487

485:                                              ; preds = %479
  %486 = load i64, ptr %72, align 8, !tbaa !9
  br label %487

487:                                              ; preds = %485, %483
  %488 = phi i64 [ %484, %483 ], [ %486, %485 ]
  store i64 %488, ptr %65, align 8, !tbaa !9
  br label %502

489:                                              ; preds = %475
  %490 = load i64, ptr %88, align 8, !tbaa !9
  store i64 %490, ptr %39, align 8, !tbaa !9
  %491 = load i64, ptr %65, align 8, !tbaa !9
  %492 = shl i64 %491, 1
  store i64 %492, ptr %40, align 8, !tbaa !9
  %493 = load i64, ptr %39, align 8, !tbaa !9
  %494 = load i64, ptr %40, align 8, !tbaa !9
  %495 = icmp sle i64 %493, %494
  br i1 %495, label %496, label %498

496:                                              ; preds = %489
  %497 = load i64, ptr %39, align 8, !tbaa !9
  br label %500

498:                                              ; preds = %489
  %499 = load i64, ptr %40, align 8, !tbaa !9
  br label %500

500:                                              ; preds = %498, %496
  %501 = phi i64 [ %497, %496 ], [ %499, %498 ]
  store i64 %501, ptr %65, align 8, !tbaa !9
  br label %502

502:                                              ; preds = %500, %487
  %503 = load i64, ptr %65, align 8, !tbaa !9
  %504 = load i64, ptr %84, align 8, !tbaa !9
  %505 = icmp slt i64 %503, %504
  br i1 %505, label %506, label %561

506:                                              ; preds = %502
  %507 = load i64, ptr %65, align 8, !tbaa !9
  %508 = load i64, ptr %55, align 8, !tbaa !9
  %509 = sub nsw i64 %508, 1
  %510 = icmp sge i64 %507, %509
  br i1 %510, label %511, label %513

511:                                              ; preds = %506
  %512 = load i64, ptr %55, align 8, !tbaa !9
  store i64 %512, ptr %65, align 8, !tbaa !9
  br label %560

513:                                              ; preds = %506
  %514 = load i64, ptr %76, align 8, !tbaa !9
  %515 = load i64, ptr %65, align 8, !tbaa !9
  %516 = sub nsw i64 %514, %515
  %517 = add nsw i64 %516, 1
  store i64 %517, ptr %85, align 8, !tbaa !9
  %518 = load ptr, ptr %23, align 8, !tbaa !5
  %519 = load i64, ptr %85, align 8, !tbaa !9
  %520 = load i64, ptr %85, align 8, !tbaa !9
  %521 = sub nsw i64 %520, 1
  %522 = load i64, ptr %34, align 8, !tbaa !9
  %523 = mul nsw i64 %521, %522
  %524 = add nsw i64 %519, %523
  %525 = getelementptr inbounds double, ptr %518, i64 %524
  %526 = load double, ptr %525, align 8, !tbaa !11
  store double %526, ptr %43, align 8, !tbaa !11
  %527 = load double, ptr %43, align 8, !tbaa !11
  %528 = fcmp oge double %527, 0.000000e+00
  br i1 %528, label %529, label %531

529:                                              ; preds = %513
  %530 = load double, ptr %43, align 8, !tbaa !11
  br label %534

531:                                              ; preds = %513
  %532 = load double, ptr %43, align 8, !tbaa !11
  %533 = fneg double %532
  br label %534

534:                                              ; preds = %531, %529
  %535 = phi double [ %530, %529 ], [ %533, %531 ]
  %536 = load ptr, ptr %23, align 8, !tbaa !5
  %537 = load i64, ptr %85, align 8, !tbaa !9
  %538 = sub nsw i64 %537, 1
  %539 = load i64, ptr %85, align 8, !tbaa !9
  %540 = sub nsw i64 %539, 2
  %541 = load i64, ptr %34, align 8, !tbaa !9
  %542 = mul nsw i64 %540, %541
  %543 = add nsw i64 %538, %542
  %544 = getelementptr inbounds double, ptr %536, i64 %543
  %545 = load double, ptr %544, align 8, !tbaa !11
  store double %545, ptr %44, align 8, !tbaa !11
  %546 = load double, ptr %44, align 8, !tbaa !11
  %547 = fcmp oge double %546, 0.000000e+00
  br i1 %547, label %548, label %550

548:                                              ; preds = %534
  %549 = load double, ptr %44, align 8, !tbaa !11
  br label %553

550:                                              ; preds = %534
  %551 = load double, ptr %44, align 8, !tbaa !11
  %552 = fneg double %551
  br label %553

553:                                              ; preds = %550, %548
  %554 = phi double [ %549, %548 ], [ %552, %550 ]
  %555 = fcmp ogt double %535, %554
  br i1 %555, label %556, label %559

556:                                              ; preds = %553
  %557 = load i64, ptr %65, align 8, !tbaa !9
  %558 = add nsw i64 %557, 1
  store i64 %558, ptr %65, align 8, !tbaa !9
  br label %559

559:                                              ; preds = %556, %553
  br label %560

560:                                              ; preds = %559, %511
  br label %561

561:                                              ; preds = %560, %502
  %562 = load i64, ptr %75, align 8, !tbaa !9
  %563 = icmp slt i64 %562, 5
  br i1 %563, label %564, label %565

564:                                              ; preds = %561
  store i64 -1, ptr %74, align 8, !tbaa !9
  br label %585

565:                                              ; preds = %561
  %566 = load i64, ptr %74, align 8, !tbaa !9
  %567 = icmp sge i64 %566, 0
  br i1 %567, label %572, label %568

568:                                              ; preds = %565
  %569 = load i64, ptr %65, align 8, !tbaa !9
  %570 = load i64, ptr %88, align 8, !tbaa !9
  %571 = icmp sge i64 %569, %570
  br i1 %571, label %572, label %584

572:                                              ; preds = %568, %565
  %573 = load i64, ptr %74, align 8, !tbaa !9
  %574 = add nsw i64 %573, 1
  store i64 %574, ptr %74, align 8, !tbaa !9
  %575 = load i64, ptr %65, align 8, !tbaa !9
  %576 = load i64, ptr %74, align 8, !tbaa !9
  %577 = sub nsw i64 %575, %576
  %578 = icmp slt i64 %577, 2
  br i1 %578, label %579, label %580

579:                                              ; preds = %572
  store i64 0, ptr %74, align 8, !tbaa !9
  br label %580

580:                                              ; preds = %579, %572
  %581 = load i64, ptr %74, align 8, !tbaa !9
  %582 = load i64, ptr %65, align 8, !tbaa !9
  %583 = sub nsw i64 %582, %581
  store i64 %583, ptr %65, align 8, !tbaa !9
  br label %584

584:                                              ; preds = %580, %568
  br label %585

585:                                              ; preds = %584, %564
  %586 = load ptr, ptr %20, align 8, !tbaa !5
  %587 = load i64, ptr %586, align 8, !tbaa !9
  %588 = load i64, ptr %65, align 8, !tbaa !9
  %589 = sub nsw i64 %587, %588
  %590 = add nsw i64 %589, 1
  store i64 %590, ptr %61, align 8, !tbaa !9
  %591 = load i64, ptr %65, align 8, !tbaa !9
  %592 = add nsw i64 %591, 1
  store i64 %592, ptr %58, align 8, !tbaa !9
  %593 = load ptr, ptr %20, align 8, !tbaa !5
  %594 = load i64, ptr %593, align 8, !tbaa !9
  %595 = load i64, ptr %65, align 8, !tbaa !9
  %596 = sub nsw i64 %594, %595
  %597 = sub nsw i64 %596, 1
  %598 = load i64, ptr %58, align 8, !tbaa !9
  %599 = sub nsw i64 %597, %598
  %600 = add nsw i64 %599, 1
  store i64 %600, ptr %68, align 8, !tbaa !9
  %601 = load i64, ptr %65, align 8, !tbaa !9
  %602 = add nsw i64 %601, 2
  store i64 %602, ptr %73, align 8, !tbaa !9
  %603 = load ptr, ptr %20, align 8, !tbaa !5
  %604 = load i64, ptr %603, align 8, !tbaa !9
  %605 = load i64, ptr %65, align 8, !tbaa !9
  %606 = sub nsw i64 %604, %605
  %607 = load i64, ptr %73, align 8, !tbaa !9
  %608 = sub nsw i64 %606, %607
  %609 = add nsw i64 %608, 1
  store i64 %609, ptr %69, align 8, !tbaa !9
  %610 = load ptr, ptr %18, align 8, !tbaa !5
  %611 = load ptr, ptr %19, align 8, !tbaa !5
  %612 = load ptr, ptr %20, align 8, !tbaa !5
  %613 = load ptr, ptr %23, align 8, !tbaa !5
  %614 = load i64, ptr %35, align 8, !tbaa !9
  %615 = getelementptr inbounds double, ptr %613, i64 %614
  %616 = load ptr, ptr %24, align 8, !tbaa !5
  %617 = load ptr, ptr %27, align 8, !tbaa !5
  %618 = load ptr, ptr %28, align 8, !tbaa !5
  %619 = load ptr, ptr %29, align 8, !tbaa !5
  %620 = load i64, ptr %37, align 8, !tbaa !9
  %621 = getelementptr inbounds double, ptr %619, i64 %620
  %622 = load ptr, ptr %30, align 8, !tbaa !5
  %623 = load ptr, ptr %25, align 8, !tbaa !5
  %624 = getelementptr inbounds double, ptr %623, i64 1
  %625 = load ptr, ptr %26, align 8, !tbaa !5
  %626 = getelementptr inbounds double, ptr %625, i64 1
  %627 = load ptr, ptr %23, align 8, !tbaa !5
  %628 = load i64, ptr %61, align 8, !tbaa !9
  %629 = load i64, ptr %34, align 8, !tbaa !9
  %630 = add nsw i64 %628, %629
  %631 = getelementptr inbounds double, ptr %627, i64 %630
  %632 = load ptr, ptr %24, align 8, !tbaa !5
  %633 = load ptr, ptr %23, align 8, !tbaa !5
  %634 = load i64, ptr %61, align 8, !tbaa !9
  %635 = load i64, ptr %58, align 8, !tbaa !9
  %636 = load i64, ptr %34, align 8, !tbaa !9
  %637 = mul nsw i64 %635, %636
  %638 = add nsw i64 %634, %637
  %639 = getelementptr inbounds double, ptr %633, i64 %638
  %640 = load ptr, ptr %24, align 8, !tbaa !5
  %641 = load ptr, ptr %23, align 8, !tbaa !5
  %642 = load i64, ptr %73, align 8, !tbaa !9
  %643 = load i64, ptr %34, align 8, !tbaa !9
  %644 = add nsw i64 %642, %643
  %645 = getelementptr inbounds double, ptr %641, i64 %644
  %646 = load ptr, ptr %24, align 8, !tbaa !5
  %647 = load ptr, ptr %31, align 8, !tbaa !5
  %648 = getelementptr inbounds double, ptr %647, i64 1
  %649 = load ptr, ptr %32, align 8, !tbaa !5
  %650 = call i32 @dlaqr2_(ptr noundef %610, ptr noundef %611, ptr noundef %612, ptr noundef %79, ptr noundef %76, ptr noundef %65, ptr noundef %615, ptr noundef %616, ptr noundef %617, ptr noundef %618, ptr noundef %621, ptr noundef %622, ptr noundef %62, ptr noundef %53, ptr noundef %624, ptr noundef %626, ptr noundef %631, ptr noundef %632, ptr noundef %68, ptr noundef %639, ptr noundef %640, ptr noundef %69, ptr noundef %645, ptr noundef %646, ptr noundef %648, ptr noundef %649)
  %651 = load i64, ptr %53, align 8, !tbaa !9
  %652 = load i64, ptr %76, align 8, !tbaa !9
  %653 = sub nsw i64 %652, %651
  store i64 %653, ptr %76, align 8, !tbaa !9
  %654 = load i64, ptr %76, align 8, !tbaa !9
  %655 = load i64, ptr %62, align 8, !tbaa !9
  %656 = sub nsw i64 %654, %655
  %657 = add nsw i64 %656, 1
  store i64 %657, ptr %57, align 8, !tbaa !9
  %658 = load i64, ptr %53, align 8, !tbaa !9
  %659 = icmp eq i64 %658, 0
  br i1 %659, label %682, label %660

660:                                              ; preds = %585
  %661 = load i64, ptr %53, align 8, !tbaa !9
  %662 = mul nsw i64 %661, 100
  %663 = load i64, ptr %65, align 8, !tbaa !9
  %664 = load i64, ptr %86, align 8, !tbaa !9
  %665 = mul nsw i64 %663, %664
  %666 = icmp sle i64 %662, %665
  br i1 %666, label %667, label %1342

667:                                              ; preds = %660
  %668 = load i64, ptr %76, align 8, !tbaa !9
  %669 = load i64, ptr %79, align 8, !tbaa !9
  %670 = sub nsw i64 %668, %669
  %671 = add nsw i64 %670, 1
  %672 = load i64, ptr %77, align 8, !tbaa !9
  %673 = load i64, ptr %84, align 8, !tbaa !9
  %674 = icmp sle i64 %672, %673
  br i1 %674, label %675, label %677

675:                                              ; preds = %667
  %676 = load i64, ptr %77, align 8, !tbaa !9
  br label %679

677:                                              ; preds = %667
  %678 = load i64, ptr %84, align 8, !tbaa !9
  br label %679

679:                                              ; preds = %677, %675
  %680 = phi i64 [ %676, %675 ], [ %678, %677 ]
  %681 = icmp sgt i64 %671, %680
  br i1 %681, label %682, label %1342

682:                                              ; preds = %679, %585
  store i64 2, ptr %41, align 8, !tbaa !9
  %683 = load i64, ptr %76, align 8, !tbaa !9
  %684 = load i64, ptr %79, align 8, !tbaa !9
  %685 = sub nsw i64 %683, %684
  store i64 %685, ptr %42, align 8, !tbaa !9
  %686 = load i64, ptr %83, align 8, !tbaa !9
  %687 = load i64, ptr %71, align 8, !tbaa !9
  %688 = icmp sle i64 %686, %687
  br i1 %688, label %689, label %691

689:                                              ; preds = %682
  %690 = load i64, ptr %83, align 8, !tbaa !9
  br label %693

691:                                              ; preds = %682
  %692 = load i64, ptr %71, align 8, !tbaa !9
  br label %693

693:                                              ; preds = %691, %689
  %694 = phi i64 [ %690, %689 ], [ %692, %691 ]
  store i64 %694, ptr %39, align 8, !tbaa !9
  %695 = load i64, ptr %41, align 8, !tbaa !9
  %696 = load i64, ptr %42, align 8, !tbaa !9
  %697 = icmp sge i64 %695, %696
  br i1 %697, label %698, label %700

698:                                              ; preds = %693
  %699 = load i64, ptr %41, align 8, !tbaa !9
  br label %702

700:                                              ; preds = %693
  %701 = load i64, ptr %42, align 8, !tbaa !9
  br label %702

702:                                              ; preds = %700, %698
  %703 = phi i64 [ %699, %698 ], [ %701, %700 ]
  store i64 %703, ptr %40, align 8, !tbaa !9
  %704 = load i64, ptr %39, align 8, !tbaa !9
  %705 = load i64, ptr %40, align 8, !tbaa !9
  %706 = icmp sle i64 %704, %705
  br i1 %706, label %707, label %709

707:                                              ; preds = %702
  %708 = load i64, ptr %39, align 8, !tbaa !9
  br label %711

709:                                              ; preds = %702
  %710 = load i64, ptr %40, align 8, !tbaa !9
  br label %711

711:                                              ; preds = %709, %707
  %712 = phi i64 [ %708, %707 ], [ %710, %709 ]
  store i64 %712, ptr %63, align 8, !tbaa !9
  %713 = load i64, ptr %63, align 8, !tbaa !9
  %714 = srem i64 %713, 2
  %715 = load i64, ptr %63, align 8, !tbaa !9
  %716 = sub nsw i64 %715, %714
  store i64 %716, ptr %63, align 8, !tbaa !9
  %717 = load i64, ptr %75, align 8, !tbaa !9
  %718 = srem i64 %717, 6
  %719 = icmp eq i64 %718, 0
  br i1 %719, label %720, label %854

720:                                              ; preds = %711
  %721 = load i64, ptr %76, align 8, !tbaa !9
  %722 = load i64, ptr %63, align 8, !tbaa !9
  %723 = sub nsw i64 %721, %722
  %724 = add nsw i64 %723, 1
  store i64 %724, ptr %57, align 8, !tbaa !9
  %725 = load i64, ptr %57, align 8, !tbaa !9
  %726 = add nsw i64 %725, 1
  store i64 %726, ptr %40, align 8, !tbaa !9
  %727 = load i64, ptr %79, align 8, !tbaa !9
  %728 = add nsw i64 %727, 2
  store i64 %728, ptr %41, align 8, !tbaa !9
  %729 = load i64, ptr %40, align 8, !tbaa !9
  %730 = load i64, ptr %41, align 8, !tbaa !9
  %731 = icmp sge i64 %729, %730
  br i1 %731, label %732, label %734

732:                                              ; preds = %720
  %733 = load i64, ptr %40, align 8, !tbaa !9
  br label %736

734:                                              ; preds = %720
  %735 = load i64, ptr %41, align 8, !tbaa !9
  br label %736

736:                                              ; preds = %734, %732
  %737 = phi i64 [ %733, %732 ], [ %735, %734 ]
  store i64 %737, ptr %39, align 8, !tbaa !9
  %738 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %738, ptr %47, align 8, !tbaa !9
  br label %739

739:                                              ; preds = %811, %736
  %740 = load i64, ptr %47, align 8, !tbaa !9
  %741 = load i64, ptr %39, align 8, !tbaa !9
  %742 = icmp sge i64 %740, %741
  br i1 %742, label %743, label %814

743:                                              ; preds = %739
  %744 = load ptr, ptr %23, align 8, !tbaa !5
  %745 = load i64, ptr %47, align 8, !tbaa !9
  %746 = load i64, ptr %47, align 8, !tbaa !9
  %747 = sub nsw i64 %746, 1
  %748 = load i64, ptr %34, align 8, !tbaa !9
  %749 = mul nsw i64 %747, %748
  %750 = add nsw i64 %745, %749
  %751 = getelementptr inbounds double, ptr %744, i64 %750
  %752 = load double, ptr %751, align 8, !tbaa !11
  store double %752, ptr %43, align 8, !tbaa !11
  %753 = load double, ptr %43, align 8, !tbaa !11
  %754 = fcmp oge double %753, 0.000000e+00
  br i1 %754, label %755, label %757

755:                                              ; preds = %743
  %756 = load double, ptr %43, align 8, !tbaa !11
  br label %760

757:                                              ; preds = %743
  %758 = load double, ptr %43, align 8, !tbaa !11
  %759 = fneg double %758
  br label %760

760:                                              ; preds = %757, %755
  %761 = phi double [ %756, %755 ], [ %759, %757 ]
  %762 = load ptr, ptr %23, align 8, !tbaa !5
  %763 = load i64, ptr %47, align 8, !tbaa !9
  %764 = sub nsw i64 %763, 1
  %765 = load i64, ptr %47, align 8, !tbaa !9
  %766 = sub nsw i64 %765, 2
  %767 = load i64, ptr %34, align 8, !tbaa !9
  %768 = mul nsw i64 %766, %767
  %769 = add nsw i64 %764, %768
  %770 = getelementptr inbounds double, ptr %762, i64 %769
  %771 = load double, ptr %770, align 8, !tbaa !11
  store double %771, ptr %44, align 8, !tbaa !11
  %772 = load double, ptr %44, align 8, !tbaa !11
  %773 = fcmp oge double %772, 0.000000e+00
  br i1 %773, label %774, label %776

774:                                              ; preds = %760
  %775 = load double, ptr %44, align 8, !tbaa !11
  br label %779

776:                                              ; preds = %760
  %777 = load double, ptr %44, align 8, !tbaa !11
  %778 = fneg double %777
  br label %779

779:                                              ; preds = %776, %774
  %780 = phi double [ %775, %774 ], [ %778, %776 ]
  %781 = fadd double %761, %780
  store double %781, ptr %64, align 8, !tbaa !11
  %782 = load double, ptr %64, align 8, !tbaa !11
  %783 = load ptr, ptr %23, align 8, !tbaa !5
  %784 = load i64, ptr %47, align 8, !tbaa !9
  %785 = load i64, ptr %47, align 8, !tbaa !9
  %786 = load i64, ptr %34, align 8, !tbaa !9
  %787 = mul nsw i64 %785, %786
  %788 = add nsw i64 %784, %787
  %789 = getelementptr inbounds double, ptr %783, i64 %788
  %790 = load double, ptr %789, align 8, !tbaa !11
  %791 = call double @llvm.fmuladd.f64(double %782, double 7.500000e-01, double %790)
  store double %791, ptr %49, align 8, !tbaa !11
  %792 = load double, ptr %64, align 8, !tbaa !11
  store double %792, ptr %50, align 8, !tbaa !11
  %793 = load double, ptr %64, align 8, !tbaa !11
  %794 = fmul double %793, -4.375000e-01
  store double %794, ptr %51, align 8, !tbaa !11
  %795 = load double, ptr %49, align 8, !tbaa !11
  store double %795, ptr %52, align 8, !tbaa !11
  %796 = load ptr, ptr %25, align 8, !tbaa !5
  %797 = load i64, ptr %47, align 8, !tbaa !9
  %798 = sub nsw i64 %797, 1
  %799 = getelementptr inbounds double, ptr %796, i64 %798
  %800 = load ptr, ptr %26, align 8, !tbaa !5
  %801 = load i64, ptr %47, align 8, !tbaa !9
  %802 = sub nsw i64 %801, 1
  %803 = getelementptr inbounds double, ptr %800, i64 %802
  %804 = load ptr, ptr %25, align 8, !tbaa !5
  %805 = load i64, ptr %47, align 8, !tbaa !9
  %806 = getelementptr inbounds double, ptr %804, i64 %805
  %807 = load ptr, ptr %26, align 8, !tbaa !5
  %808 = load i64, ptr %47, align 8, !tbaa !9
  %809 = getelementptr inbounds double, ptr %807, i64 %808
  %810 = call i32 @dlanv2_(ptr noundef %49, ptr noundef %50, ptr noundef %51, ptr noundef %52, ptr noundef %799, ptr noundef %803, ptr noundef %806, ptr noundef %809, ptr noundef %54, ptr noundef %59)
  br label %811

811:                                              ; preds = %779
  %812 = load i64, ptr %47, align 8, !tbaa !9
  %813 = add nsw i64 %812, -2
  store i64 %813, ptr %47, align 8, !tbaa !9
  br label %739, !llvm.loop !16

814:                                              ; preds = %739
  %815 = load i64, ptr %57, align 8, !tbaa !9
  %816 = load i64, ptr %79, align 8, !tbaa !9
  %817 = icmp eq i64 %815, %816
  br i1 %817, label %818, label %853

818:                                              ; preds = %814
  %819 = load ptr, ptr %23, align 8, !tbaa !5
  %820 = load i64, ptr %57, align 8, !tbaa !9
  %821 = add nsw i64 %820, 1
  %822 = load i64, ptr %57, align 8, !tbaa !9
  %823 = add nsw i64 %822, 1
  %824 = load i64, ptr %34, align 8, !tbaa !9
  %825 = mul nsw i64 %823, %824
  %826 = add nsw i64 %821, %825
  %827 = getelementptr inbounds double, ptr %819, i64 %826
  %828 = load double, ptr %827, align 8, !tbaa !11
  %829 = load ptr, ptr %25, align 8, !tbaa !5
  %830 = load i64, ptr %57, align 8, !tbaa !9
  %831 = add nsw i64 %830, 1
  %832 = getelementptr inbounds double, ptr %829, i64 %831
  store double %828, ptr %832, align 8, !tbaa !11
  %833 = load ptr, ptr %26, align 8, !tbaa !5
  %834 = load i64, ptr %57, align 8, !tbaa !9
  %835 = add nsw i64 %834, 1
  %836 = getelementptr inbounds double, ptr %833, i64 %835
  store double 0.000000e+00, ptr %836, align 8, !tbaa !11
  %837 = load ptr, ptr %25, align 8, !tbaa !5
  %838 = load i64, ptr %57, align 8, !tbaa !9
  %839 = add nsw i64 %838, 1
  %840 = getelementptr inbounds double, ptr %837, i64 %839
  %841 = load double, ptr %840, align 8, !tbaa !11
  %842 = load ptr, ptr %25, align 8, !tbaa !5
  %843 = load i64, ptr %57, align 8, !tbaa !9
  %844 = getelementptr inbounds double, ptr %842, i64 %843
  store double %841, ptr %844, align 8, !tbaa !11
  %845 = load ptr, ptr %26, align 8, !tbaa !5
  %846 = load i64, ptr %57, align 8, !tbaa !9
  %847 = add nsw i64 %846, 1
  %848 = getelementptr inbounds double, ptr %845, i64 %847
  %849 = load double, ptr %848, align 8, !tbaa !11
  %850 = load ptr, ptr %26, align 8, !tbaa !5
  %851 = load i64, ptr %57, align 8, !tbaa !9
  %852 = getelementptr inbounds double, ptr %850, i64 %851
  store double %849, ptr %852, align 8, !tbaa !11
  br label %853

853:                                              ; preds = %818, %814
  br label %1170

854:                                              ; preds = %711
  %855 = load i64, ptr %76, align 8, !tbaa !9
  %856 = load i64, ptr %57, align 8, !tbaa !9
  %857 = sub nsw i64 %855, %856
  %858 = add nsw i64 %857, 1
  %859 = load i64, ptr %63, align 8, !tbaa !9
  %860 = sdiv i64 %859, 2
  %861 = icmp sle i64 %858, %860
  br i1 %861, label %862, label %962

862:                                              ; preds = %854
  %863 = load i64, ptr %76, align 8, !tbaa !9
  %864 = load i64, ptr %63, align 8, !tbaa !9
  %865 = sub nsw i64 %863, %864
  %866 = add nsw i64 %865, 1
  store i64 %866, ptr %57, align 8, !tbaa !9
  %867 = load ptr, ptr %20, align 8, !tbaa !5
  %868 = load i64, ptr %867, align 8, !tbaa !9
  %869 = load i64, ptr %63, align 8, !tbaa !9
  %870 = sub nsw i64 %868, %869
  %871 = add nsw i64 %870, 1
  store i64 %871, ptr %58, align 8, !tbaa !9
  %872 = load ptr, ptr %23, align 8, !tbaa !5
  %873 = load i64, ptr %57, align 8, !tbaa !9
  %874 = load i64, ptr %57, align 8, !tbaa !9
  %875 = load i64, ptr %34, align 8, !tbaa !9
  %876 = mul nsw i64 %874, %875
  %877 = add nsw i64 %873, %876
  %878 = getelementptr inbounds double, ptr %872, i64 %877
  %879 = load ptr, ptr %24, align 8, !tbaa !5
  %880 = load ptr, ptr %23, align 8, !tbaa !5
  %881 = load i64, ptr %58, align 8, !tbaa !9
  %882 = load i64, ptr %34, align 8, !tbaa !9
  %883 = add nsw i64 %881, %882
  %884 = getelementptr inbounds double, ptr %880, i64 %883
  %885 = load ptr, ptr %24, align 8, !tbaa !5
  %886 = call i32 @dlacpy_(ptr noundef @.str.1, ptr noundef %63, ptr noundef %63, ptr noundef %878, ptr noundef %879, ptr noundef %884, ptr noundef %885)
  %887 = load ptr, ptr %23, align 8, !tbaa !5
  %888 = load i64, ptr %58, align 8, !tbaa !9
  %889 = load i64, ptr %34, align 8, !tbaa !9
  %890 = add nsw i64 %888, %889
  %891 = getelementptr inbounds double, ptr %887, i64 %890
  %892 = load ptr, ptr %24, align 8, !tbaa !5
  %893 = load ptr, ptr %25, align 8, !tbaa !5
  %894 = load i64, ptr %57, align 8, !tbaa !9
  %895 = getelementptr inbounds double, ptr %893, i64 %894
  %896 = load ptr, ptr %26, align 8, !tbaa !5
  %897 = load i64, ptr %57, align 8, !tbaa !9
  %898 = getelementptr inbounds double, ptr %896, i64 %897
  %899 = getelementptr inbounds [1 x double], ptr %80, i64 0, i64 0
  %900 = call i32 @dlahqr_(ptr noundef @c_false, ptr noundef @c_false, ptr noundef %63, ptr noundef @c__1, ptr noundef %63, ptr noundef %891, ptr noundef %892, ptr noundef %895, ptr noundef %898, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %899, ptr noundef @c__1, ptr noundef %66)
  %901 = load i64, ptr %66, align 8, !tbaa !9
  %902 = load i64, ptr %57, align 8, !tbaa !9
  %903 = add nsw i64 %902, %901
  store i64 %903, ptr %57, align 8, !tbaa !9
  %904 = load i64, ptr %57, align 8, !tbaa !9
  %905 = load i64, ptr %76, align 8, !tbaa !9
  %906 = icmp sge i64 %904, %905
  br i1 %906, label %907, label %961

907:                                              ; preds = %862
  %908 = load ptr, ptr %23, align 8, !tbaa !5
  %909 = load i64, ptr %76, align 8, !tbaa !9
  %910 = sub nsw i64 %909, 1
  %911 = load i64, ptr %76, align 8, !tbaa !9
  %912 = sub nsw i64 %911, 1
  %913 = load i64, ptr %34, align 8, !tbaa !9
  %914 = mul nsw i64 %912, %913
  %915 = add nsw i64 %910, %914
  %916 = getelementptr inbounds double, ptr %908, i64 %915
  %917 = load double, ptr %916, align 8, !tbaa !11
  store double %917, ptr %49, align 8, !tbaa !11
  %918 = load ptr, ptr %23, align 8, !tbaa !5
  %919 = load i64, ptr %76, align 8, !tbaa !9
  %920 = load i64, ptr %76, align 8, !tbaa !9
  %921 = sub nsw i64 %920, 1
  %922 = load i64, ptr %34, align 8, !tbaa !9
  %923 = mul nsw i64 %921, %922
  %924 = add nsw i64 %919, %923
  %925 = getelementptr inbounds double, ptr %918, i64 %924
  %926 = load double, ptr %925, align 8, !tbaa !11
  store double %926, ptr %51, align 8, !tbaa !11
  %927 = load ptr, ptr %23, align 8, !tbaa !5
  %928 = load i64, ptr %76, align 8, !tbaa !9
  %929 = sub nsw i64 %928, 1
  %930 = load i64, ptr %76, align 8, !tbaa !9
  %931 = load i64, ptr %34, align 8, !tbaa !9
  %932 = mul nsw i64 %930, %931
  %933 = add nsw i64 %929, %932
  %934 = getelementptr inbounds double, ptr %927, i64 %933
  %935 = load double, ptr %934, align 8, !tbaa !11
  store double %935, ptr %50, align 8, !tbaa !11
  %936 = load ptr, ptr %23, align 8, !tbaa !5
  %937 = load i64, ptr %76, align 8, !tbaa !9
  %938 = load i64, ptr %76, align 8, !tbaa !9
  %939 = load i64, ptr %34, align 8, !tbaa !9
  %940 = mul nsw i64 %938, %939
  %941 = add nsw i64 %937, %940
  %942 = getelementptr inbounds double, ptr %936, i64 %941
  %943 = load double, ptr %942, align 8, !tbaa !11
  store double %943, ptr %52, align 8, !tbaa !11
  %944 = load ptr, ptr %25, align 8, !tbaa !5
  %945 = load i64, ptr %76, align 8, !tbaa !9
  %946 = sub nsw i64 %945, 1
  %947 = getelementptr inbounds double, ptr %944, i64 %946
  %948 = load ptr, ptr %26, align 8, !tbaa !5
  %949 = load i64, ptr %76, align 8, !tbaa !9
  %950 = sub nsw i64 %949, 1
  %951 = getelementptr inbounds double, ptr %948, i64 %950
  %952 = load ptr, ptr %25, align 8, !tbaa !5
  %953 = load i64, ptr %76, align 8, !tbaa !9
  %954 = getelementptr inbounds double, ptr %952, i64 %953
  %955 = load ptr, ptr %26, align 8, !tbaa !5
  %956 = load i64, ptr %76, align 8, !tbaa !9
  %957 = getelementptr inbounds double, ptr %955, i64 %956
  %958 = call i32 @dlanv2_(ptr noundef %49, ptr noundef %50, ptr noundef %51, ptr noundef %52, ptr noundef %947, ptr noundef %951, ptr noundef %954, ptr noundef %957, ptr noundef %54, ptr noundef %59)
  %959 = load i64, ptr %76, align 8, !tbaa !9
  %960 = sub nsw i64 %959, 1
  store i64 %960, ptr %57, align 8, !tbaa !9
  br label %961

961:                                              ; preds = %907, %862
  br label %962

962:                                              ; preds = %961, %854
  %963 = load i64, ptr %76, align 8, !tbaa !9
  %964 = load i64, ptr %57, align 8, !tbaa !9
  %965 = sub nsw i64 %963, %964
  %966 = add nsw i64 %965, 1
  %967 = load i64, ptr %63, align 8, !tbaa !9
  %968 = icmp sgt i64 %966, %967
  br i1 %968, label %969, label %1092

969:                                              ; preds = %962
  store i64 0, ptr %89, align 8, !tbaa !9
  %970 = load i64, ptr %57, align 8, !tbaa !9
  %971 = add nsw i64 %970, 1
  store i64 %971, ptr %39, align 8, !tbaa !9
  %972 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %972, ptr %48, align 8, !tbaa !9
  br label %973

973:                                              ; preds = %1087, %969
  %974 = load i64, ptr %48, align 8, !tbaa !9
  %975 = load i64, ptr %39, align 8, !tbaa !9
  %976 = icmp sge i64 %974, %975
  br i1 %976, label %977, label %1090

977:                                              ; preds = %973
  %978 = load i64, ptr %89, align 8, !tbaa !9
  %979 = icmp ne i64 %978, 0
  br i1 %979, label %980, label %981

980:                                              ; preds = %977
  br label %1091

981:                                              ; preds = %977
  store i64 1, ptr %89, align 8, !tbaa !9
  %982 = load i64, ptr %48, align 8, !tbaa !9
  %983 = sub nsw i64 %982, 1
  store i64 %983, ptr %40, align 8, !tbaa !9
  %984 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %984, ptr %47, align 8, !tbaa !9
  br label %985

985:                                              ; preds = %1083, %981
  %986 = load i64, ptr %47, align 8, !tbaa !9
  %987 = load i64, ptr %40, align 8, !tbaa !9
  %988 = icmp sle i64 %986, %987
  br i1 %988, label %989, label %1086

989:                                              ; preds = %985
  %990 = load ptr, ptr %25, align 8, !tbaa !5
  %991 = load i64, ptr %47, align 8, !tbaa !9
  %992 = getelementptr inbounds double, ptr %990, i64 %991
  %993 = load double, ptr %992, align 8, !tbaa !11
  store double %993, ptr %43, align 8, !tbaa !11
  %994 = load double, ptr %43, align 8, !tbaa !11
  %995 = fcmp oge double %994, 0.000000e+00
  br i1 %995, label %996, label %998

996:                                              ; preds = %989
  %997 = load double, ptr %43, align 8, !tbaa !11
  br label %1001

998:                                              ; preds = %989
  %999 = load double, ptr %43, align 8, !tbaa !11
  %1000 = fneg double %999
  br label %1001

1001:                                             ; preds = %998, %996
  %1002 = phi double [ %997, %996 ], [ %1000, %998 ]
  %1003 = load ptr, ptr %26, align 8, !tbaa !5
  %1004 = load i64, ptr %47, align 8, !tbaa !9
  %1005 = getelementptr inbounds double, ptr %1003, i64 %1004
  %1006 = load double, ptr %1005, align 8, !tbaa !11
  store double %1006, ptr %44, align 8, !tbaa !11
  %1007 = load double, ptr %44, align 8, !tbaa !11
  %1008 = fcmp oge double %1007, 0.000000e+00
  br i1 %1008, label %1009, label %1011

1009:                                             ; preds = %1001
  %1010 = load double, ptr %44, align 8, !tbaa !11
  br label %1014

1011:                                             ; preds = %1001
  %1012 = load double, ptr %44, align 8, !tbaa !11
  %1013 = fneg double %1012
  br label %1014

1014:                                             ; preds = %1011, %1009
  %1015 = phi double [ %1010, %1009 ], [ %1013, %1011 ]
  %1016 = fadd double %1002, %1015
  %1017 = load ptr, ptr %25, align 8, !tbaa !5
  %1018 = load i64, ptr %47, align 8, !tbaa !9
  %1019 = add nsw i64 %1018, 1
  %1020 = getelementptr inbounds double, ptr %1017, i64 %1019
  %1021 = load double, ptr %1020, align 8, !tbaa !11
  store double %1021, ptr %45, align 8, !tbaa !11
  %1022 = load double, ptr %45, align 8, !tbaa !11
  %1023 = fcmp oge double %1022, 0.000000e+00
  br i1 %1023, label %1024, label %1026

1024:                                             ; preds = %1014
  %1025 = load double, ptr %45, align 8, !tbaa !11
  br label %1029

1026:                                             ; preds = %1014
  %1027 = load double, ptr %45, align 8, !tbaa !11
  %1028 = fneg double %1027
  br label %1029

1029:                                             ; preds = %1026, %1024
  %1030 = phi double [ %1025, %1024 ], [ %1028, %1026 ]
  %1031 = load ptr, ptr %26, align 8, !tbaa !5
  %1032 = load i64, ptr %47, align 8, !tbaa !9
  %1033 = add nsw i64 %1032, 1
  %1034 = getelementptr inbounds double, ptr %1031, i64 %1033
  %1035 = load double, ptr %1034, align 8, !tbaa !11
  store double %1035, ptr %46, align 8, !tbaa !11
  %1036 = load double, ptr %46, align 8, !tbaa !11
  %1037 = fcmp oge double %1036, 0.000000e+00
  br i1 %1037, label %1038, label %1040

1038:                                             ; preds = %1029
  %1039 = load double, ptr %46, align 8, !tbaa !11
  br label %1043

1040:                                             ; preds = %1029
  %1041 = load double, ptr %46, align 8, !tbaa !11
  %1042 = fneg double %1041
  br label %1043

1043:                                             ; preds = %1040, %1038
  %1044 = phi double [ %1039, %1038 ], [ %1042, %1040 ]
  %1045 = fadd double %1030, %1044
  %1046 = fcmp olt double %1016, %1045
  br i1 %1046, label %1047, label %1082

1047:                                             ; preds = %1043
  store i64 0, ptr %89, align 8, !tbaa !9
  %1048 = load ptr, ptr %25, align 8, !tbaa !5
  %1049 = load i64, ptr %47, align 8, !tbaa !9
  %1050 = getelementptr inbounds double, ptr %1048, i64 %1049
  %1051 = load double, ptr %1050, align 8, !tbaa !11
  store double %1051, ptr %78, align 8, !tbaa !11
  %1052 = load ptr, ptr %25, align 8, !tbaa !5
  %1053 = load i64, ptr %47, align 8, !tbaa !9
  %1054 = add nsw i64 %1053, 1
  %1055 = getelementptr inbounds double, ptr %1052, i64 %1054
  %1056 = load double, ptr %1055, align 8, !tbaa !11
  %1057 = load ptr, ptr %25, align 8, !tbaa !5
  %1058 = load i64, ptr %47, align 8, !tbaa !9
  %1059 = getelementptr inbounds double, ptr %1057, i64 %1058
  store double %1056, ptr %1059, align 8, !tbaa !11
  %1060 = load double, ptr %78, align 8, !tbaa !11
  %1061 = load ptr, ptr %25, align 8, !tbaa !5
  %1062 = load i64, ptr %47, align 8, !tbaa !9
  %1063 = add nsw i64 %1062, 1
  %1064 = getelementptr inbounds double, ptr %1061, i64 %1063
  store double %1060, ptr %1064, align 8, !tbaa !11
  %1065 = load ptr, ptr %26, align 8, !tbaa !5
  %1066 = load i64, ptr %47, align 8, !tbaa !9
  %1067 = getelementptr inbounds double, ptr %1065, i64 %1066
  %1068 = load double, ptr %1067, align 8, !tbaa !11
  store double %1068, ptr %78, align 8, !tbaa !11
  %1069 = load ptr, ptr %26, align 8, !tbaa !5
  %1070 = load i64, ptr %47, align 8, !tbaa !9
  %1071 = add nsw i64 %1070, 1
  %1072 = getelementptr inbounds double, ptr %1069, i64 %1071
  %1073 = load double, ptr %1072, align 8, !tbaa !11
  %1074 = load ptr, ptr %26, align 8, !tbaa !5
  %1075 = load i64, ptr %47, align 8, !tbaa !9
  %1076 = getelementptr inbounds double, ptr %1074, i64 %1075
  store double %1073, ptr %1076, align 8, !tbaa !11
  %1077 = load double, ptr %78, align 8, !tbaa !11
  %1078 = load ptr, ptr %26, align 8, !tbaa !5
  %1079 = load i64, ptr %47, align 8, !tbaa !9
  %1080 = add nsw i64 %1079, 1
  %1081 = getelementptr inbounds double, ptr %1078, i64 %1080
  store double %1077, ptr %1081, align 8, !tbaa !11
  br label %1082

1082:                                             ; preds = %1047, %1043
  br label %1083

1083:                                             ; preds = %1082
  %1084 = load i64, ptr %47, align 8, !tbaa !9
  %1085 = add nsw i64 %1084, 1
  store i64 %1085, ptr %47, align 8, !tbaa !9
  br label %985, !llvm.loop !17

1086:                                             ; preds = %985
  br label %1087

1087:                                             ; preds = %1086
  %1088 = load i64, ptr %48, align 8, !tbaa !9
  %1089 = add nsw i64 %1088, -1
  store i64 %1089, ptr %48, align 8, !tbaa !9
  br label %973, !llvm.loop !18

1090:                                             ; preds = %973
  br label %1091

1091:                                             ; preds = %1090, %980
  br label %1092

1092:                                             ; preds = %1091, %962
  %1093 = load i64, ptr %57, align 8, !tbaa !9
  %1094 = add nsw i64 %1093, 2
  store i64 %1094, ptr %39, align 8, !tbaa !9
  %1095 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %1095, ptr %47, align 8, !tbaa !9
  br label %1096

1096:                                             ; preds = %1166, %1092
  %1097 = load i64, ptr %47, align 8, !tbaa !9
  %1098 = load i64, ptr %39, align 8, !tbaa !9
  %1099 = icmp sge i64 %1097, %1098
  br i1 %1099, label %1100, label %1169

1100:                                             ; preds = %1096
  %1101 = load ptr, ptr %26, align 8, !tbaa !5
  %1102 = load i64, ptr %47, align 8, !tbaa !9
  %1103 = getelementptr inbounds double, ptr %1101, i64 %1102
  %1104 = load double, ptr %1103, align 8, !tbaa !11
  %1105 = load ptr, ptr %26, align 8, !tbaa !5
  %1106 = load i64, ptr %47, align 8, !tbaa !9
  %1107 = sub nsw i64 %1106, 1
  %1108 = getelementptr inbounds double, ptr %1105, i64 %1107
  %1109 = load double, ptr %1108, align 8, !tbaa !11
  %1110 = fneg double %1109
  %1111 = fcmp une double %1104, %1110
  br i1 %1111, label %1112, label %1165

1112:                                             ; preds = %1100
  %1113 = load ptr, ptr %25, align 8, !tbaa !5
  %1114 = load i64, ptr %47, align 8, !tbaa !9
  %1115 = getelementptr inbounds double, ptr %1113, i64 %1114
  %1116 = load double, ptr %1115, align 8, !tbaa !11
  store double %1116, ptr %78, align 8, !tbaa !11
  %1117 = load ptr, ptr %25, align 8, !tbaa !5
  %1118 = load i64, ptr %47, align 8, !tbaa !9
  %1119 = sub nsw i64 %1118, 1
  %1120 = getelementptr inbounds double, ptr %1117, i64 %1119
  %1121 = load double, ptr %1120, align 8, !tbaa !11
  %1122 = load ptr, ptr %25, align 8, !tbaa !5
  %1123 = load i64, ptr %47, align 8, !tbaa !9
  %1124 = getelementptr inbounds double, ptr %1122, i64 %1123
  store double %1121, ptr %1124, align 8, !tbaa !11
  %1125 = load ptr, ptr %25, align 8, !tbaa !5
  %1126 = load i64, ptr %47, align 8, !tbaa !9
  %1127 = sub nsw i64 %1126, 2
  %1128 = getelementptr inbounds double, ptr %1125, i64 %1127
  %1129 = load double, ptr %1128, align 8, !tbaa !11
  %1130 = load ptr, ptr %25, align 8, !tbaa !5
  %1131 = load i64, ptr %47, align 8, !tbaa !9
  %1132 = sub nsw i64 %1131, 1
  %1133 = getelementptr inbounds double, ptr %1130, i64 %1132
  store double %1129, ptr %1133, align 8, !tbaa !11
  %1134 = load double, ptr %78, align 8, !tbaa !11
  %1135 = load ptr, ptr %25, align 8, !tbaa !5
  %1136 = load i64, ptr %47, align 8, !tbaa !9
  %1137 = sub nsw i64 %1136, 2
  %1138 = getelementptr inbounds double, ptr %1135, i64 %1137
  store double %1134, ptr %1138, align 8, !tbaa !11
  %1139 = load ptr, ptr %26, align 8, !tbaa !5
  %1140 = load i64, ptr %47, align 8, !tbaa !9
  %1141 = getelementptr inbounds double, ptr %1139, i64 %1140
  %1142 = load double, ptr %1141, align 8, !tbaa !11
  store double %1142, ptr %78, align 8, !tbaa !11
  %1143 = load ptr, ptr %26, align 8, !tbaa !5
  %1144 = load i64, ptr %47, align 8, !tbaa !9
  %1145 = sub nsw i64 %1144, 1
  %1146 = getelementptr inbounds double, ptr %1143, i64 %1145
  %1147 = load double, ptr %1146, align 8, !tbaa !11
  %1148 = load ptr, ptr %26, align 8, !tbaa !5
  %1149 = load i64, ptr %47, align 8, !tbaa !9
  %1150 = getelementptr inbounds double, ptr %1148, i64 %1149
  store double %1147, ptr %1150, align 8, !tbaa !11
  %1151 = load ptr, ptr %26, align 8, !tbaa !5
  %1152 = load i64, ptr %47, align 8, !tbaa !9
  %1153 = sub nsw i64 %1152, 2
  %1154 = getelementptr inbounds double, ptr %1151, i64 %1153
  %1155 = load double, ptr %1154, align 8, !tbaa !11
  %1156 = load ptr, ptr %26, align 8, !tbaa !5
  %1157 = load i64, ptr %47, align 8, !tbaa !9
  %1158 = sub nsw i64 %1157, 1
  %1159 = getelementptr inbounds double, ptr %1156, i64 %1158
  store double %1155, ptr %1159, align 8, !tbaa !11
  %1160 = load double, ptr %78, align 8, !tbaa !11
  %1161 = load ptr, ptr %26, align 8, !tbaa !5
  %1162 = load i64, ptr %47, align 8, !tbaa !9
  %1163 = sub nsw i64 %1162, 2
  %1164 = getelementptr inbounds double, ptr %1161, i64 %1163
  store double %1160, ptr %1164, align 8, !tbaa !11
  br label %1165

1165:                                             ; preds = %1112, %1100
  br label %1166

1166:                                             ; preds = %1165
  %1167 = load i64, ptr %47, align 8, !tbaa !9
  %1168 = add nsw i64 %1167, -2
  store i64 %1168, ptr %47, align 8, !tbaa !9
  br label %1096, !llvm.loop !19

1169:                                             ; preds = %1096
  br label %1170

1170:                                             ; preds = %1169, %853
  %1171 = load i64, ptr %76, align 8, !tbaa !9
  %1172 = load i64, ptr %57, align 8, !tbaa !9
  %1173 = sub nsw i64 %1171, %1172
  %1174 = add nsw i64 %1173, 1
  %1175 = icmp eq i64 %1174, 2
  br i1 %1175, label %1176, label %1249

1176:                                             ; preds = %1170
  %1177 = load ptr, ptr %26, align 8, !tbaa !5
  %1178 = load i64, ptr %76, align 8, !tbaa !9
  %1179 = getelementptr inbounds double, ptr %1177, i64 %1178
  %1180 = load double, ptr %1179, align 8, !tbaa !11
  %1181 = fcmp oeq double %1180, 0.000000e+00
  br i1 %1181, label %1182, label %1248

1182:                                             ; preds = %1176
  %1183 = load ptr, ptr %25, align 8, !tbaa !5
  %1184 = load i64, ptr %76, align 8, !tbaa !9
  %1185 = getelementptr inbounds double, ptr %1183, i64 %1184
  %1186 = load double, ptr %1185, align 8, !tbaa !11
  %1187 = load ptr, ptr %23, align 8, !tbaa !5
  %1188 = load i64, ptr %76, align 8, !tbaa !9
  %1189 = load i64, ptr %76, align 8, !tbaa !9
  %1190 = load i64, ptr %34, align 8, !tbaa !9
  %1191 = mul nsw i64 %1189, %1190
  %1192 = add nsw i64 %1188, %1191
  %1193 = getelementptr inbounds double, ptr %1187, i64 %1192
  %1194 = load double, ptr %1193, align 8, !tbaa !11
  %1195 = fsub double %1186, %1194
  store double %1195, ptr %43, align 8, !tbaa !11
  %1196 = load double, ptr %43, align 8, !tbaa !11
  %1197 = fcmp oge double %1196, 0.000000e+00
  br i1 %1197, label %1198, label %1200

1198:                                             ; preds = %1182
  %1199 = load double, ptr %43, align 8, !tbaa !11
  br label %1203

1200:                                             ; preds = %1182
  %1201 = load double, ptr %43, align 8, !tbaa !11
  %1202 = fneg double %1201
  br label %1203

1203:                                             ; preds = %1200, %1198
  %1204 = phi double [ %1199, %1198 ], [ %1202, %1200 ]
  %1205 = load ptr, ptr %25, align 8, !tbaa !5
  %1206 = load i64, ptr %76, align 8, !tbaa !9
  %1207 = sub nsw i64 %1206, 1
  %1208 = getelementptr inbounds double, ptr %1205, i64 %1207
  %1209 = load double, ptr %1208, align 8, !tbaa !11
  %1210 = load ptr, ptr %23, align 8, !tbaa !5
  %1211 = load i64, ptr %76, align 8, !tbaa !9
  %1212 = load i64, ptr %76, align 8, !tbaa !9
  %1213 = load i64, ptr %34, align 8, !tbaa !9
  %1214 = mul nsw i64 %1212, %1213
  %1215 = add nsw i64 %1211, %1214
  %1216 = getelementptr inbounds double, ptr %1210, i64 %1215
  %1217 = load double, ptr %1216, align 8, !tbaa !11
  %1218 = fsub double %1209, %1217
  store double %1218, ptr %44, align 8, !tbaa !11
  %1219 = load double, ptr %44, align 8, !tbaa !11
  %1220 = fcmp oge double %1219, 0.000000e+00
  br i1 %1220, label %1221, label %1223

1221:                                             ; preds = %1203
  %1222 = load double, ptr %44, align 8, !tbaa !11
  br label %1226

1223:                                             ; preds = %1203
  %1224 = load double, ptr %44, align 8, !tbaa !11
  %1225 = fneg double %1224
  br label %1226

1226:                                             ; preds = %1223, %1221
  %1227 = phi double [ %1222, %1221 ], [ %1225, %1223 ]
  %1228 = fcmp olt double %1204, %1227
  br i1 %1228, label %1229, label %1238

1229:                                             ; preds = %1226
  %1230 = load ptr, ptr %25, align 8, !tbaa !5
  %1231 = load i64, ptr %76, align 8, !tbaa !9
  %1232 = getelementptr inbounds double, ptr %1230, i64 %1231
  %1233 = load double, ptr %1232, align 8, !tbaa !11
  %1234 = load ptr, ptr %25, align 8, !tbaa !5
  %1235 = load i64, ptr %76, align 8, !tbaa !9
  %1236 = sub nsw i64 %1235, 1
  %1237 = getelementptr inbounds double, ptr %1234, i64 %1236
  store double %1233, ptr %1237, align 8, !tbaa !11
  br label %1247

1238:                                             ; preds = %1226
  %1239 = load ptr, ptr %25, align 8, !tbaa !5
  %1240 = load i64, ptr %76, align 8, !tbaa !9
  %1241 = sub nsw i64 %1240, 1
  %1242 = getelementptr inbounds double, ptr %1239, i64 %1241
  %1243 = load double, ptr %1242, align 8, !tbaa !11
  %1244 = load ptr, ptr %25, align 8, !tbaa !5
  %1245 = load i64, ptr %76, align 8, !tbaa !9
  %1246 = getelementptr inbounds double, ptr %1244, i64 %1245
  store double %1243, ptr %1246, align 8, !tbaa !11
  br label %1247

1247:                                             ; preds = %1238, %1229
  br label %1248

1248:                                             ; preds = %1247, %1176
  br label %1249

1249:                                             ; preds = %1248, %1170
  %1250 = load i64, ptr %63, align 8, !tbaa !9
  store i64 %1250, ptr %39, align 8, !tbaa !9
  %1251 = load i64, ptr %76, align 8, !tbaa !9
  %1252 = load i64, ptr %57, align 8, !tbaa !9
  %1253 = sub nsw i64 %1251, %1252
  %1254 = add nsw i64 %1253, 1
  store i64 %1254, ptr %40, align 8, !tbaa !9
  %1255 = load i64, ptr %39, align 8, !tbaa !9
  %1256 = load i64, ptr %40, align 8, !tbaa !9
  %1257 = icmp sle i64 %1255, %1256
  br i1 %1257, label %1258, label %1260

1258:                                             ; preds = %1249
  %1259 = load i64, ptr %39, align 8, !tbaa !9
  br label %1262

1260:                                             ; preds = %1249
  %1261 = load i64, ptr %40, align 8, !tbaa !9
  br label %1262

1262:                                             ; preds = %1260, %1258
  %1263 = phi i64 [ %1259, %1258 ], [ %1261, %1260 ]
  store i64 %1263, ptr %63, align 8, !tbaa !9
  %1264 = load i64, ptr %63, align 8, !tbaa !9
  %1265 = srem i64 %1264, 2
  %1266 = load i64, ptr %63, align 8, !tbaa !9
  %1267 = sub nsw i64 %1266, %1265
  store i64 %1267, ptr %63, align 8, !tbaa !9
  %1268 = load i64, ptr %76, align 8, !tbaa !9
  %1269 = load i64, ptr %63, align 8, !tbaa !9
  %1270 = sub nsw i64 %1268, %1269
  %1271 = add nsw i64 %1270, 1
  store i64 %1271, ptr %57, align 8, !tbaa !9
  %1272 = load i64, ptr %63, align 8, !tbaa !9
  %1273 = mul nsw i64 %1272, 3
  %1274 = sub nsw i64 %1273, 3
  store i64 %1274, ptr %67, align 8, !tbaa !9
  %1275 = load ptr, ptr %20, align 8, !tbaa !5
  %1276 = load i64, ptr %1275, align 8, !tbaa !9
  %1277 = load i64, ptr %67, align 8, !tbaa !9
  %1278 = sub nsw i64 %1276, %1277
  %1279 = add nsw i64 %1278, 1
  store i64 %1279, ptr %60, align 8, !tbaa !9
  %1280 = load i64, ptr %67, align 8, !tbaa !9
  %1281 = add nsw i64 %1280, 1
  store i64 %1281, ptr %70, align 8, !tbaa !9
  %1282 = load ptr, ptr %20, align 8, !tbaa !5
  %1283 = load i64, ptr %1282, align 8, !tbaa !9
  %1284 = load i64, ptr %67, align 8, !tbaa !9
  %1285 = sub nsw i64 %1283, %1284
  %1286 = sub nsw i64 %1285, 3
  %1287 = load i64, ptr %67, align 8, !tbaa !9
  %1288 = add nsw i64 %1287, 1
  %1289 = sub nsw i64 %1286, %1288
  %1290 = add nsw i64 %1289, 1
  store i64 %1290, ptr %68, align 8, !tbaa !9
  %1291 = load i64, ptr %67, align 8, !tbaa !9
  %1292 = add nsw i64 %1291, 4
  store i64 %1292, ptr %73, align 8, !tbaa !9
  %1293 = load ptr, ptr %20, align 8, !tbaa !5
  %1294 = load i64, ptr %1293, align 8, !tbaa !9
  %1295 = load i64, ptr %67, align 8, !tbaa !9
  %1296 = sub nsw i64 %1294, %1295
  %1297 = load i64, ptr %73, align 8, !tbaa !9
  %1298 = sub nsw i64 %1296, %1297
  %1299 = add nsw i64 %1298, 1
  store i64 %1299, ptr %69, align 8, !tbaa !9
  %1300 = load ptr, ptr %18, align 8, !tbaa !5
  %1301 = load ptr, ptr %19, align 8, !tbaa !5
  %1302 = load ptr, ptr %20, align 8, !tbaa !5
  %1303 = load ptr, ptr %25, align 8, !tbaa !5
  %1304 = load i64, ptr %57, align 8, !tbaa !9
  %1305 = getelementptr inbounds double, ptr %1303, i64 %1304
  %1306 = load ptr, ptr %26, align 8, !tbaa !5
  %1307 = load i64, ptr %57, align 8, !tbaa !9
  %1308 = getelementptr inbounds double, ptr %1306, i64 %1307
  %1309 = load ptr, ptr %23, align 8, !tbaa !5
  %1310 = load i64, ptr %35, align 8, !tbaa !9
  %1311 = getelementptr inbounds double, ptr %1309, i64 %1310
  %1312 = load ptr, ptr %24, align 8, !tbaa !5
  %1313 = load ptr, ptr %27, align 8, !tbaa !5
  %1314 = load ptr, ptr %28, align 8, !tbaa !5
  %1315 = load ptr, ptr %29, align 8, !tbaa !5
  %1316 = load i64, ptr %37, align 8, !tbaa !9
  %1317 = getelementptr inbounds double, ptr %1315, i64 %1316
  %1318 = load ptr, ptr %30, align 8, !tbaa !5
  %1319 = load ptr, ptr %31, align 8, !tbaa !5
  %1320 = getelementptr inbounds double, ptr %1319, i64 1
  %1321 = load ptr, ptr %23, align 8, !tbaa !5
  %1322 = load i64, ptr %60, align 8, !tbaa !9
  %1323 = load i64, ptr %34, align 8, !tbaa !9
  %1324 = add nsw i64 %1322, %1323
  %1325 = getelementptr inbounds double, ptr %1321, i64 %1324
  %1326 = load ptr, ptr %24, align 8, !tbaa !5
  %1327 = load ptr, ptr %23, align 8, !tbaa !5
  %1328 = load i64, ptr %73, align 8, !tbaa !9
  %1329 = load i64, ptr %34, align 8, !tbaa !9
  %1330 = add nsw i64 %1328, %1329
  %1331 = getelementptr inbounds double, ptr %1327, i64 %1330
  %1332 = load ptr, ptr %24, align 8, !tbaa !5
  %1333 = load ptr, ptr %23, align 8, !tbaa !5
  %1334 = load i64, ptr %60, align 8, !tbaa !9
  %1335 = load i64, ptr %70, align 8, !tbaa !9
  %1336 = load i64, ptr %34, align 8, !tbaa !9
  %1337 = mul nsw i64 %1335, %1336
  %1338 = add nsw i64 %1334, %1337
  %1339 = getelementptr inbounds double, ptr %1333, i64 %1338
  %1340 = load ptr, ptr %24, align 8, !tbaa !5
  %1341 = call i32 @dlaqr5_(ptr noundef %1300, ptr noundef %1301, ptr noundef %81, ptr noundef %1302, ptr noundef %79, ptr noundef %76, ptr noundef %63, ptr noundef %1305, ptr noundef %1308, ptr noundef %1311, ptr noundef %1312, ptr noundef %1313, ptr noundef %1314, ptr noundef %1317, ptr noundef %1318, ptr noundef %1320, ptr noundef @c__3, ptr noundef %1325, ptr noundef %1326, ptr noundef %69, ptr noundef %1331, ptr noundef %1332, ptr noundef %68, ptr noundef %1339, ptr noundef %1340)
  br label %1342

1342:                                             ; preds = %1262, %679, %660
  %1343 = load i64, ptr %53, align 8, !tbaa !9
  %1344 = icmp sgt i64 %1343, 0
  br i1 %1344, label %1345, label %1346

1345:                                             ; preds = %1342
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %1349

1346:                                             ; preds = %1342
  %1347 = load i64, ptr %75, align 8, !tbaa !9
  %1348 = add nsw i64 %1347, 1
  store i64 %1348, ptr %75, align 8, !tbaa !9
  br label %1349

1349:                                             ; preds = %1346, %1345
  br label %1350

1350:                                             ; preds = %1349
  %1351 = load i64, ptr %56, align 8, !tbaa !9
  %1352 = add nsw i64 %1351, 1
  store i64 %1352, ptr %56, align 8, !tbaa !9
  br label %424, !llvm.loop !20

1353:                                             ; preds = %424
  %1354 = load i64, ptr %76, align 8, !tbaa !9
  %1355 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 %1354, ptr %1355, align 8, !tbaa !9
  br label %1356

1356:                                             ; preds = %1353, %433
  br label %1357

1357:                                             ; preds = %1356, %151
  %1358 = load i64, ptr %90, align 8, !tbaa !9
  %1359 = sitofp i64 %1358 to double
  %1360 = load ptr, ptr %31, align 8, !tbaa !5
  %1361 = getelementptr inbounds double, ptr %1360, i64 1
  store double %1359, ptr %1361, align 8, !tbaa !11
  store i32 0, ptr %17, align 4
  store i32 1, ptr %91, align 4
  br label %1362

1362:                                             ; preds = %1357, %315, %118
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 2, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  %1363 = load i32, ptr %17, align 4
  ret i32 %1363
}

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15}


; 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"

@c__13 = external hidden global i64, align 8
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@c__15 = external hidden global i64, align 8
@c_n1 = external hidden global i64, align 8
@c__12 = external hidden global i64, align 8
@c__14 = external hidden global i64, align 8
@c__16 = external hidden global i64, align 8
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_false = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8
@c__3 = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @dlaqr4_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15) local_unnamed_addr #0 {
  %17 = alloca i64, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca i64, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca [1 x double], align 8
  %34 = alloca i64, align 8
  %35 = alloca [2 x i8], align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %35) #5
  %36 = load i64, ptr %6, align 8, !tbaa !5
  %37 = xor i64 %36, -1
  %38 = getelementptr inbounds double, ptr %5, i64 %37
  %39 = getelementptr inbounds i8, ptr %7, i64 -8
  %40 = getelementptr inbounds i8, ptr %8, i64 -8
  store i64 0, ptr %15, align 8, !tbaa !5
  %41 = load i64, ptr %2, align 8, !tbaa !5
  %42 = icmp eq i64 %41, 0
  br i1 %42, label %397, label %43

43:                                               ; preds = %16
  %44 = icmp slt i64 %41, 12
  br i1 %44, label %45, label %49

45:                                               ; preds = %43
  %46 = load i64, ptr %14, align 8, !tbaa !5
  %.not523 = icmp eq i64 %46, -1
  br i1 %.not523, label %.loopexit535, label %47

47:                                               ; preds = %45
  %48 = tail call i32 @dlahqr_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef nonnull %15) #5
  br label %.loopexit535

49:                                               ; preds = %43
  %50 = load i64, ptr %0, align 8, !tbaa !5
  %.not = icmp eq i64 %50, 0
  %. = select i1 %.not, i8 69, i8 83
  store i8 %., ptr %35, align 1, !tbaa !9
  %51 = load i64, ptr %1, align 8, !tbaa !5
  %.not494 = icmp eq i64 %51, 0
  %spec.select = select i1 %.not494, i8 78, i8 86
  %52 = getelementptr inbounds i8, ptr %35, i64 1
  store i8 %spec.select, ptr %52, align 1
  %53 = call i64 @ilaenv_(ptr noundef nonnull @c__13, ptr noundef nonnull @.str, ptr noundef nonnull %35, ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4, ptr noundef %14) #5
  %54 = call i64 @llvm.smax.i64(i64 %53, i64 2)
  %55 = load i64, ptr %4, align 8, !tbaa !5
  %56 = load i64, ptr %3, align 8, !tbaa !5
  %57 = sub nsw i64 %55, %56
  %58 = add nsw i64 %57, 1
  %59 = load i64, ptr %2, align 8, !tbaa !5
  %60 = add nsw i64 %59, -1
  %61 = sdiv i64 %60, 3
  %62 = call i64 @llvm.smin.i64(i64 %58, i64 %61)
  %63 = call i64 @llvm.smin.i64(i64 %62, i64 %54)
  %64 = call i64 @ilaenv_(ptr noundef nonnull @c__15, ptr noundef nonnull @.str, ptr noundef nonnull %35, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %14) #5
  %65 = load i64, ptr %2, align 8, !tbaa !5
  %66 = add nsw i64 %65, 6
  %67 = sdiv i64 %66, 9
  %68 = call i64 @llvm.smin.i64(i64 %64, i64 %67)
  %69 = load i64, ptr %4, align 8, !tbaa !5
  %70 = load i64, ptr %3, align 8, !tbaa !5
  %71 = sub nsw i64 %69, %70
  %72 = call i64 @llvm.smin.i64(i64 %68, i64 %71)
  %73 = srem i64 %72, 2
  %74 = sub nsw i64 %72, %73
  %75 = call i64 @llvm.smax.i64(i64 %74, i64 2)
  %76 = add nsw i64 %63, 1
  store i64 %76, ptr %17, align 8, !tbaa !5
  %77 = call i32 @dlaqr2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %17, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %25, ptr noundef nonnull %22, ptr noundef %7, ptr noundef %8, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %13, ptr noundef nonnull @c_n1) #5
  %78 = lshr i64 %75, 1
  %79 = add nuw nsw i64 %78, %75
  store i64 %79, ptr %17, align 8, !tbaa !5
  %80 = load double, ptr %13, align 8, !tbaa !10
  %81 = fptosi double %80 to i64
  %82 = call i64 @llvm.smax.i64(i64 %79, i64 %81)
  %83 = load i64, ptr %14, align 8, !tbaa !5
  %84 = icmp eq i64 %83, -1
  br i1 %84, label %85, label %87

85:                                               ; preds = %49
  %86 = uitofp nneg i64 %82 to double
  br label %397

87:                                               ; preds = %49
  %88 = call i64 @ilaenv_(ptr noundef nonnull @c__12, ptr noundef nonnull @.str, ptr noundef nonnull %35, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %14) #5
  %89 = call i64 @ilaenv_(ptr noundef nonnull @c__14, ptr noundef nonnull @.str, ptr noundef nonnull %35, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %14) #5
  %90 = call i64 @llvm.smax.i64(i64 %89, i64 0)
  %91 = call i64 @ilaenv_(ptr noundef nonnull @c__16, ptr noundef nonnull @.str, ptr noundef nonnull %35, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %14) #5
  %92 = call i64 @llvm.smax.i64(i64 %91, i64 0)
  %93 = call i64 @llvm.umin.i64(i64 %92, i64 2)
  store i64 %93, ptr %34, align 8, !tbaa !5
  %94 = load i64, ptr %2, align 8, !tbaa !5
  %95 = add nsw i64 %94, -1
  %96 = sdiv i64 %95, 3
  %97 = load i64, ptr %14, align 8, !tbaa !5
  %98 = sdiv i64 %97, 2
  %99 = call i64 @llvm.smin.i64(i64 %96, i64 %98)
  store i64 %99, ptr %27, align 8, !tbaa !5
  %100 = load i64, ptr %4, align 8, !tbaa !5
  %101 = load i64, ptr %3, align 8, !tbaa !5
  %102 = sub nsw i64 %100, %101
  %103 = icmp slt i64 %102, 10
  %104 = mul i64 %102, 30
  %105 = add i64 %104, 30
  %106 = select i1 %103, i64 300, i64 %105
  store i64 %100, ptr %31, align 8, !tbaa !5
  store i64 %106, ptr %17, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %38, i64 8
  %.not502548 = icmp slt i64 %106, 1
  br i1 %.not502548, label %._crit_edge554, label %.lr.ph553

.lr.ph553:                                        ; preds = %87
  %107 = add nsw i64 %94, 6
  %108 = sdiv i64 %107, 9
  %109 = shl i64 %97, 1
  %110 = sdiv i64 %109, 3
  %111 = call i64 @llvm.smin.i64(i64 %108, i64 %110)
  %112 = srem i64 %111, 2
  %113 = sub nsw i64 %111, %112
  %114 = call i64 @llvm.smax.i64(i64 %88, i64 11)
  %115 = call i64 @llvm.smin.i64(i64 %114, i64 %99)
  %116 = call i64 @llvm.smin.i64(i64 %113, i64 %75)
  %117 = add i64 %36, 1
  %118 = getelementptr i8, ptr %5, i64 8
  br label %119

119:                                              ; preds = %.lr.ph553, %390
  %.0472551 = phi i64 [ 1, %.lr.ph553 ], [ %.1473, %390 ]
  %.0474550 = phi i64 [ undef, %.lr.ph553 ], [ %.1475, %390 ]
  %.0478549 = phi i64 [ 1, %.lr.ph553 ], [ %393, %390 ]
  %120 = load i64, ptr %31, align 8, !tbaa !5
  %121 = load i64, ptr %3, align 8, !tbaa !5
  %122 = icmp slt i64 %120, %121
  br i1 %122, label %.loopexit535, label %.preheader534

.preheader534:                                    ; preds = %119, %123
  %.0479 = phi i64 [ %124, %123 ], [ %120, %119 ]
  %.not503.not = icmp sgt i64 %.0479, %121
  br i1 %.not503.not, label %123, label %130

123:                                              ; preds = %.preheader534
  %124 = add nsw i64 %.0479, -1
  %125 = mul nsw i64 %124, %36
  %126 = getelementptr double, ptr %38, i64 %.0479
  %127 = getelementptr double, ptr %126, i64 %125
  %128 = load double, ptr %127, align 8, !tbaa !10
  %129 = fcmp oeq double %128, 0.000000e+00
  br i1 %129, label %130, label %.preheader534, !llvm.loop !12

130:                                              ; preds = %.preheader534, %123
  %.1480 = phi i64 [ %.0479, %123 ], [ %121, %.preheader534 ]
  store i64 %.1480, ptr %32, align 8, !tbaa !5
  %131 = sub nsw i64 %120, %.1480
  %132 = add nsw i64 %131, 1
  %133 = call i64 @llvm.smin.i64(i64 %132, i64 %99)
  %134 = icmp slt i64 %.0472551, 5
  %135 = load i64, ptr %27, align 8
  %136 = shl i64 %135, 1
  %.sink = select i1 %134, i64 %63, i64 %136
  %137 = call i64 @llvm.smin.i64(i64 %133, i64 %.sink)
  store i64 %137, ptr %27, align 8, !tbaa !5
  %138 = icmp slt i64 %137, %99
  br i1 %138, label %139, label %161

139:                                              ; preds = %130
  %.not508 = icmp slt i64 %137, %131
  br i1 %.not508, label %141, label %140

140:                                              ; preds = %139
  store i64 %132, ptr %27, align 8, !tbaa !5
  br label %161

141:                                              ; preds = %139
  %142 = sub nsw i64 %120, %137
  %143 = mul nsw i64 %142, %36
  %144 = getelementptr double, ptr %38, i64 %142
  %145 = getelementptr i8, ptr %144, i64 8
  %146 = getelementptr double, ptr %145, i64 %143
  %147 = load double, ptr %146, align 8, !tbaa !10
  %148 = fcmp oge double %147, 0.000000e+00
  %149 = fneg double %147
  %150 = select i1 %148, double %147, double %149
  %151 = add nsw i64 %142, -1
  %152 = mul nsw i64 %151, %36
  %153 = getelementptr double, ptr %144, i64 %152
  %154 = load double, ptr %153, align 8, !tbaa !10
  %155 = fcmp oge double %154, 0.000000e+00
  %156 = fneg double %154
  %157 = select i1 %155, double %154, double %156
  %158 = fcmp ogt double %150, %157
  br i1 %158, label %159, label %161

159:                                              ; preds = %141
  %160 = add nsw i64 %137, 1
  store i64 %160, ptr %27, align 8, !tbaa !5
  br label %161

161:                                              ; preds = %140, %159, %141, %130
  %162 = phi i64 [ %132, %140 ], [ %160, %159 ], [ %137, %141 ], [ %137, %130 ]
  br i1 %134, label %170, label %163

163:                                              ; preds = %161
  %164 = icmp slt i64 %.0474550, 0
  %.not509 = icmp slt i64 %162, %133
  %or.cond524 = select i1 %164, i1 %.not509, i1 false
  br i1 %or.cond524, label %170, label %165

165:                                              ; preds = %163
  %166 = add nsw i64 %.0474550, 1
  %167 = sub nsw i64 %162, %166
  %168 = icmp slt i64 %167, 2
  %spec.store.select = select i1 %168, i64 0, i64 %166
  %169 = sub nsw i64 %162, %spec.store.select
  store i64 %169, ptr %27, align 8, !tbaa !5
  br label %170

170:                                              ; preds = %163, %161, %165
  %171 = phi i64 [ %169, %165 ], [ %162, %161 ], [ %162, %163 ]
  %.1475 = phi i64 [ %spec.store.select, %165 ], [ -1, %161 ], [ %.0474550, %163 ]
  %172 = load i64, ptr %2, align 8, !tbaa !5
  %173 = sub nsw i64 %172, %171
  %174 = add nsw i64 %171, 1
  %175 = xor i64 %171, -1
  %176 = add i64 %173, %175
  store i64 %176, ptr %29, align 8, !tbaa !5
  %.neg526 = add i64 %172, 1
  %177 = shl i64 %171, 1
  %reass.sub = sub i64 %.neg526, %177
  %178 = add i64 %reass.sub, -2
  store i64 %178, ptr %30, align 8, !tbaa !5
  %179 = getelementptr inbounds double, ptr %5, i64 %173
  %180 = mul nsw i64 %174, %36
  %gep = getelementptr double, ptr %invariant.gep, i64 %173
  %181 = getelementptr double, ptr %gep, i64 %180
  %gep545 = getelementptr double, ptr %118, i64 %171
  %182 = call i32 @dlaqr2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef nonnull %27, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %25, ptr noundef nonnull %22, ptr noundef %7, ptr noundef %8, ptr noundef %179, ptr noundef nonnull %6, ptr noundef nonnull %29, ptr noundef %181, ptr noundef nonnull %6, ptr noundef nonnull %30, ptr noundef %gep545, ptr noundef nonnull %6, ptr noundef nonnull %13, ptr noundef nonnull %14) #5
  %183 = load i64, ptr %22, align 8, !tbaa !5
  %184 = load i64, ptr %31, align 8, !tbaa !5
  %185 = sub nsw i64 %184, %183
  store i64 %185, ptr %31, align 8, !tbaa !5
  %186 = load i64, ptr %25, align 8, !tbaa !5
  %187 = sub nsw i64 %185, %186
  %188 = add nsw i64 %187, 1
  %189 = icmp eq i64 %183, 0
  br i1 %189, label %._crit_edge557, label %190

._crit_edge557:                                   ; preds = %170
  %.pre = load i64, ptr %32, align 8, !tbaa !5
  %.pre561 = sub nsw i64 %185, %.pre
  br label %197

190:                                              ; preds = %170
  %191 = mul nsw i64 %183, 100
  %192 = load i64, ptr %27, align 8, !tbaa !5
  %193 = mul nsw i64 %192, %90
  %.not510 = icmp sgt i64 %191, %193
  br i1 %.not510, label %390, label %194

194:                                              ; preds = %190
  %195 = load i64, ptr %32, align 8, !tbaa !5
  %196 = sub nsw i64 %185, %195
  %.not512 = icmp slt i64 %196, %115
  br i1 %.not512, label %390, label %197

197:                                              ; preds = %._crit_edge557, %194
  %.pre-phi = phi i64 [ %.pre561, %._crit_edge557 ], [ %196, %194 ]
  %198 = phi i64 [ %.pre, %._crit_edge557 ], [ %195, %194 ]
  %199 = call i64 @llvm.smax.i64(i64 %.pre-phi, i64 2)
  %200 = call i64 @llvm.smin.i64(i64 %116, i64 %199)
  %201 = srem i64 %200, 2
  %202 = sdiv i64 %200, 2
  %203 = sub nsw i64 %200, %201
  store i64 %203, ptr %26, align 8, !tbaa !5
  %204 = srem i64 %.0472551, 6
  %205 = icmp eq i64 %204, 0
  br i1 %205, label %206, label %251

206:                                              ; preds = %197
  %207 = sub nsw i64 %185, %203
  %208 = add nsw i64 %207, 1
  %209 = add nsw i64 %207, 2
  %210 = add nsw i64 %198, 2
  %211 = call i64 @llvm.smax.i64(i64 %209, i64 %210)
  %.not521541 = icmp slt i64 %185, %211
  br i1 %.not521541, label %._crit_edge, label %.lr.ph543

.lr.ph543:                                        ; preds = %206, %.lr.ph543
  %.0482542 = phi i64 [ %220, %.lr.ph543 ], [ %185, %206 ]
  %212 = add nsw i64 %.0482542, -1
  %213 = mul nsw i64 %212, %36
  %214 = getelementptr double, ptr %38, i64 %.0482542
  %215 = getelementptr double, ptr %214, i64 %213
  %216 = load double, ptr %215, align 8, !tbaa !10
  %217 = fcmp oge double %216, 0.000000e+00
  %218 = fneg double %216
  %219 = select i1 %217, double %216, double %218
  %220 = add nsw i64 %.0482542, -2
  %221 = mul nsw i64 %220, %36
  %222 = getelementptr double, ptr %38, i64 %212
  %223 = getelementptr double, ptr %222, i64 %221
  %224 = load double, ptr %223, align 8, !tbaa !10
  %225 = fcmp oge double %224, 0.000000e+00
  %226 = fneg double %224
  %227 = select i1 %225, double %224, double %226
  %228 = fadd double %219, %227
  %229 = mul i64 %.0482542, %117
  %230 = getelementptr inbounds double, ptr %38, i64 %229
  %231 = load double, ptr %230, align 8, !tbaa !10
  %232 = call double @llvm.fmuladd.f64(double %228, double 7.500000e-01, double %231)
  store double %232, ptr %18, align 8, !tbaa !10
  store double %228, ptr %19, align 8, !tbaa !10
  %233 = fmul double %228, -4.375000e-01
  store double %233, ptr %20, align 8, !tbaa !10
  store double %232, ptr %21, align 8, !tbaa !10
  %234 = getelementptr inbounds double, ptr %39, i64 %212
  %235 = getelementptr inbounds double, ptr %40, i64 %212
  %236 = getelementptr inbounds double, ptr %39, i64 %.0482542
  %237 = getelementptr inbounds double, ptr %40, i64 %.0482542
  %238 = call i32 @dlanv2_(ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %234, ptr noundef nonnull %235, ptr noundef nonnull %236, ptr noundef nonnull %237, ptr noundef nonnull %23, ptr noundef nonnull %24) #5
  %.not521 = icmp slt i64 %220, %211
  br i1 %.not521, label %._crit_edge.loopexit, label %.lr.ph543, !llvm.loop !14

._crit_edge.loopexit:                             ; preds = %.lr.ph543
  %.pre558 = load i64, ptr %32, align 8, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %206
  %239 = phi i64 [ %.pre558, %._crit_edge.loopexit ], [ %198, %206 ]
  %240 = icmp eq i64 %208, %239
  br i1 %240, label %241, label %.loopexit

241:                                              ; preds = %._crit_edge
  %242 = mul i64 %209, %117
  %243 = getelementptr inbounds double, ptr %38, i64 %242
  %244 = load double, ptr %243, align 8, !tbaa !10
  %245 = getelementptr inbounds double, ptr %39, i64 %209
  store double %244, ptr %245, align 8, !tbaa !10
  %246 = getelementptr inbounds double, ptr %40, i64 %209
  store double 0.000000e+00, ptr %246, align 8, !tbaa !10
  %247 = load double, ptr %245, align 8, !tbaa !10
  %248 = getelementptr double, ptr %7, i64 %207
  store double %247, ptr %248, align 8, !tbaa !10
  %249 = load double, ptr %246, align 8, !tbaa !10
  %250 = getelementptr double, ptr %8, i64 %207
  store double %249, ptr %250, align 8, !tbaa !10
  br label %.loopexit

251:                                              ; preds = %197
  %252 = sub nsw i64 %185, %188
  %.not515.not = icmp slt i64 %252, %202
  br i1 %.not515.not, label %253, label %291

253:                                              ; preds = %251
  %254 = sub nsw i64 %185, %203
  %255 = add nsw i64 %254, 1
  %256 = load i64, ptr %2, align 8, !tbaa !5
  %257 = sub nsw i64 %256, %203
  %258 = mul i64 %255, %117
  %259 = getelementptr inbounds double, ptr %38, i64 %258
  %260 = getelementptr inbounds double, ptr %5, i64 %257
  %261 = call i32 @dlacpy_(ptr noundef nonnull @.str.1, ptr noundef nonnull %26, ptr noundef nonnull %26, ptr noundef %259, ptr noundef nonnull %6, ptr noundef %260, ptr noundef nonnull %6) #5
  %262 = getelementptr double, ptr %7, i64 %254
  %263 = getelementptr double, ptr %8, i64 %254
  %264 = call i32 @dlahqr_(ptr noundef nonnull @c_false, ptr noundef nonnull @c_false, ptr noundef nonnull %26, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef %260, ptr noundef nonnull %6, ptr noundef %262, ptr noundef %263, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %33, ptr noundef nonnull @c__1, ptr noundef nonnull %28) #5
  %265 = load i64, ptr %28, align 8, !tbaa !5
  %266 = add nsw i64 %265, %255
  %267 = load i64, ptr %31, align 8, !tbaa !5
  %.not516 = icmp slt i64 %266, %267
  br i1 %.not516, label %291, label %268

268:                                              ; preds = %253
  %269 = add nsw i64 %267, -1
  %270 = mul i64 %269, %117
  %271 = getelementptr inbounds double, ptr %38, i64 %270
  %272 = load double, ptr %271, align 8, !tbaa !10
  store double %272, ptr %18, align 8, !tbaa !10
  %273 = mul nsw i64 %269, %36
  %274 = getelementptr double, ptr %38, i64 %267
  %275 = getelementptr double, ptr %274, i64 %273
  %276 = load double, ptr %275, align 8, !tbaa !10
  store double %276, ptr %20, align 8, !tbaa !10
  %277 = mul nsw i64 %267, %36
  %278 = getelementptr i8, ptr %274, i64 -8
  %279 = getelementptr double, ptr %278, i64 %277
  %280 = load double, ptr %279, align 8, !tbaa !10
  store double %280, ptr %19, align 8, !tbaa !10
  %281 = mul i64 %267, %117
  %282 = getelementptr inbounds double, ptr %38, i64 %281
  %283 = load double, ptr %282, align 8, !tbaa !10
  store double %283, ptr %21, align 8, !tbaa !10
  %284 = getelementptr inbounds double, ptr %39, i64 %269
  %285 = getelementptr inbounds double, ptr %40, i64 %269
  %286 = getelementptr inbounds double, ptr %39, i64 %267
  %287 = getelementptr inbounds double, ptr %40, i64 %267
  %288 = call i32 @dlanv2_(ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %284, ptr noundef nonnull %285, ptr noundef nonnull %286, ptr noundef nonnull %287, ptr noundef nonnull %23, ptr noundef nonnull %24) #5
  %289 = load i64, ptr %31, align 8, !tbaa !5
  %290 = add nsw i64 %289, -1
  br label %291

291:                                              ; preds = %253, %268, %251
  %292 = phi i64 [ %289, %268 ], [ %267, %253 ], [ %185, %251 ]
  %.0476 = phi i64 [ %290, %268 ], [ %266, %253 ], [ %188, %251 ]
  %293 = sub nsw i64 %292, %.0476
  %294 = load i64, ptr %26, align 8, !tbaa !5
  %.not517 = icmp slt i64 %293, %294
  %295 = icmp sle i64 %292, %.0476
  %or.cond555 = or i1 %.not517, %295
  br i1 %or.cond555, label %.loopexit533, label %.preheader

.preheader:                                       ; preds = %291, %319
  %.2481538 = phi i64 [ %320, %319 ], [ %292, %291 ]
  br label %296

296:                                              ; preds = %.preheader, %318
  %.1537 = phi i64 [ 1, %.preheader ], [ %.2, %318 ]
  %.1483536 = phi i64 [ %.0476, %.preheader ], [ %299, %318 ]
  %297 = getelementptr inbounds double, ptr %39, i64 %.1483536
  %298 = getelementptr inbounds double, ptr %40, i64 %.1483536
  %299 = add nsw i64 %.1483536, 1
  %300 = load <2 x double>, ptr %297, align 8, !tbaa !10
  %301 = fcmp oge <2 x double> %300, zeroinitializer
  %302 = fneg <2 x double> %300
  %303 = select <2 x i1> %301, <2 x double> %300, <2 x double> %302
  %304 = load <2 x double>, ptr %298, align 8, !tbaa !10
  %305 = fcmp oge <2 x double> %304, zeroinitializer
  %306 = fneg <2 x double> %304
  %307 = select <2 x i1> %305, <2 x double> %304, <2 x double> %306
  %308 = fadd <2 x double> %303, %307
  %309 = extractelement <2 x double> %308, i64 0
  %310 = extractelement <2 x double> %308, i64 1
  %311 = fcmp olt double %309, %310
  br i1 %311, label %312, label %318

312:                                              ; preds = %296
  %313 = getelementptr double, ptr %7, i64 %.1483536
  %314 = extractelement <2 x double> %300, i64 1
  store double %314, ptr %297, align 8, !tbaa !10
  %315 = extractelement <2 x double> %300, i64 0
  store double %315, ptr %313, align 8, !tbaa !10
  %316 = load <2 x double>, ptr %298, align 8, !tbaa !10
  %317 = shufflevector <2 x double> %316, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  store <2 x double> %317, ptr %298, align 8, !tbaa !10
  br label %318

318:                                              ; preds = %296, %312
  %.2 = phi i64 [ 0, %312 ], [ %.1537, %296 ]
  %.not518.not = icmp slt i64 %299, %.2481538
  br i1 %.not518.not, label %296, label %319, !llvm.loop !15

319:                                              ; preds = %318
  %320 = add nsw i64 %.2481538, -1
  %321 = icmp sle i64 %320, %.0476
  %322 = icmp ne i64 %.2, 0
  %or.cond = select i1 %321, i1 true, i1 %322
  br i1 %or.cond, label %.loopexit533, label %.preheader, !llvm.loop !16

.loopexit533:                                     ; preds = %319, %291
  %323 = add nsw i64 %.0476, 2
  %.not519539 = icmp slt i64 %292, %323
  br i1 %.not519539, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %.loopexit533, %341
  %.2484540 = phi i64 [ %.pre-phi563, %341 ], [ %292, %.loopexit533 ]
  %324 = getelementptr inbounds double, ptr %40, i64 %.2484540
  %325 = load double, ptr %324, align 8, !tbaa !10
  %326 = add nsw i64 %.2484540, -1
  %327 = getelementptr inbounds double, ptr %40, i64 %326
  %328 = load double, ptr %327, align 8, !tbaa !10
  %329 = fneg double %328
  %330 = fcmp une double %325, %329
  br i1 %330, label %331, label %.lr.ph._crit_edge

.lr.ph._crit_edge:                                ; preds = %.lr.ph
  %.pre562 = add nsw i64 %.2484540, -2
  br label %341

331:                                              ; preds = %.lr.ph
  %332 = getelementptr inbounds double, ptr %39, i64 %.2484540
  %333 = load double, ptr %332, align 8, !tbaa !10
  %334 = getelementptr inbounds double, ptr %39, i64 %326
  %335 = add nsw i64 %.2484540, -2
  %336 = getelementptr inbounds double, ptr %39, i64 %335
  %337 = load <2 x double>, ptr %336, align 8, !tbaa !10
  store <2 x double> %337, ptr %334, align 8, !tbaa !10
  store double %333, ptr %336, align 8, !tbaa !10
  %338 = load double, ptr %324, align 8, !tbaa !10
  %339 = getelementptr inbounds double, ptr %40, i64 %335
  %340 = load <2 x double>, ptr %339, align 8, !tbaa !10
  store <2 x double> %340, ptr %327, align 8, !tbaa !10
  store double %338, ptr %339, align 8, !tbaa !10
  br label %341

341:                                              ; preds = %.lr.ph._crit_edge, %331
  %.pre-phi563 = phi i64 [ %.pre562, %.lr.ph._crit_edge ], [ %335, %331 ]
  %.not519 = icmp slt i64 %.pre-phi563, %323
  br i1 %.not519, label %.loopexit, label %.lr.ph, !llvm.loop !17

.loopexit:                                        ; preds = %341, %.loopexit533, %._crit_edge, %241
  %.1477 = phi i64 [ %208, %241 ], [ %208, %._crit_edge ], [ %.0476, %.loopexit533 ], [ %.0476, %341 ]
  %342 = load i64, ptr %31, align 8, !tbaa !5
  %343 = sub nsw i64 %342, %.1477
  %344 = icmp eq i64 %343, 1
  br i1 %344, label %345, label %369

345:                                              ; preds = %.loopexit
  %346 = getelementptr inbounds double, ptr %40, i64 %342
  %347 = load double, ptr %346, align 8, !tbaa !10
  %348 = fcmp oeq double %347, 0.000000e+00
  br i1 %348, label %349, label %369

349:                                              ; preds = %345
  %350 = getelementptr inbounds double, ptr %39, i64 %342
  %351 = mul i64 %342, %117
  %352 = getelementptr inbounds double, ptr %38, i64 %351
  %353 = load double, ptr %352, align 8, !tbaa !10
  %354 = getelementptr i8, ptr %350, i64 -8
  %355 = load <2 x double>, ptr %354, align 8, !tbaa !10
  %356 = insertelement <2 x double> poison, double %353, i64 0
  %357 = shufflevector <2 x double> %356, <2 x double> poison, <2 x i32> zeroinitializer
  %358 = fsub <2 x double> %355, %357
  %359 = fcmp oge <2 x double> %358, zeroinitializer
  %360 = fneg <2 x double> %358
  %361 = select <2 x i1> %359, <2 x double> %358, <2 x double> %360
  %362 = extractelement <2 x double> %361, i64 0
  %363 = extractelement <2 x double> %361, i64 1
  %364 = fcmp olt double %363, %362
  br i1 %364, label %365, label %367

365:                                              ; preds = %349
  %366 = extractelement <2 x double> %355, i64 1
  store double %366, ptr %354, align 8, !tbaa !10
  br label %369

367:                                              ; preds = %349
  %368 = extractelement <2 x double> %355, i64 0
  store double %368, ptr %350, align 8, !tbaa !10
  br label %369

369:                                              ; preds = %345, %367, %365, %.loopexit
  %370 = load i64, ptr %26, align 8, !tbaa !5
  %371 = add nsw i64 %343, 1
  %372 = call i64 @llvm.smin.i64(i64 %370, i64 %371)
  %373 = srem i64 %372, 2
  %374 = sub nsw i64 %372, %373
  store i64 %374, ptr %26, align 8, !tbaa !5
  %375 = sub nsw i64 %342, %374
  %376 = mul nsw i64 %374, 3
  %377 = add nsw i64 %376, -3
  %378 = load i64, ptr %2, align 8, !tbaa !5
  %379 = sub nsw i64 %378, %377
  %380 = add nsw i64 %376, -2
  %381 = sub i64 %379, %376
  store i64 %381, ptr %29, align 8, !tbaa !5
  %.neg = mul i64 %374, -6
  %reass.sub556 = add i64 %.neg, %378
  %382 = add i64 %reass.sub556, 3
  store i64 %382, ptr %30, align 8, !tbaa !5
  %383 = getelementptr double, ptr %7, i64 %375
  %384 = getelementptr double, ptr %8, i64 %375
  %385 = getelementptr inbounds double, ptr %5, i64 %379
  %386 = getelementptr inbounds double, ptr %5, i64 %376
  %387 = mul nsw i64 %380, %36
  %gep547 = getelementptr double, ptr %invariant.gep, i64 %379
  %388 = getelementptr double, ptr %gep547, i64 %387
  %389 = call i32 @dlaqr5_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %2, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef %383, ptr noundef %384, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull @c__3, ptr noundef %385, ptr noundef nonnull %6, ptr noundef nonnull %30, ptr noundef %386, ptr noundef nonnull %6, ptr noundef nonnull %29, ptr noundef %388, ptr noundef nonnull %6) #5
  %.pre559 = load i64, ptr %22, align 8, !tbaa !5
  br label %390

390:                                              ; preds = %369, %194, %190
  %391 = phi i64 [ %.pre559, %369 ], [ %183, %194 ], [ %183, %190 ]
  %392 = add nsw i64 %.0472551, 1
  %.inv = icmp slt i64 %391, 1
  %.1473 = select i1 %.inv, i64 %392, i64 1
  %393 = add nuw nsw i64 %.0478549, 1
  %394 = load i64, ptr %17, align 8, !tbaa !5
  %.not502.not = icmp slt i64 %.0478549, %394
  br i1 %.not502.not, label %119, label %._crit_edge554.loopexit, !llvm.loop !18

._crit_edge554.loopexit:                          ; preds = %390
  %.pre560 = load i64, ptr %31, align 8, !tbaa !5
  br label %._crit_edge554

._crit_edge554:                                   ; preds = %._crit_edge554.loopexit, %87
  %395 = phi i64 [ %.pre560, %._crit_edge554.loopexit ], [ %100, %87 ]
  store i64 %395, ptr %15, align 8, !tbaa !5
  br label %.loopexit535

.loopexit535:                                     ; preds = %119, %._crit_edge554, %45, %47
  %.0 = phi i64 [ 1, %47 ], [ 1, %45 ], [ %82, %._crit_edge554 ], [ %82, %119 ]
  %396 = uitofp nneg i64 %.0 to double
  br label %397

397:                                              ; preds = %16, %.loopexit535, %85
  %.sink564 = phi double [ %396, %.loopexit535 ], [ %86, %85 ], [ 1.000000e+00, %16 ]
  store double %.sink564, ptr %13, align 8, !tbaa !10
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #5
  ret i32 0
}

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

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

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

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

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

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

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

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

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

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

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 nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"double", !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13}
!16 = distinct !{!16, !13}
!17 = distinct !{!17, !13}
!18 = distinct !{!18, !13}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,DivRemPairsPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass