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

; 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 @dlaqr0_(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 %1385

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 %1380

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 @dlaqr3_(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 %1385

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 = %1373, %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 %1376

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 %1379

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 @dlaqr3_(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 %1365

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 %1365

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 %1193

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 %985

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 i64, ptr %63, align 8, !tbaa !9
  %888 = load i64, ptr %77, align 8, !tbaa !9
  %889 = icmp sgt i64 %887, %888
  br i1 %889, label %890, label %908

890:                                              ; preds = %862
  %891 = load ptr, ptr %23, align 8, !tbaa !5
  %892 = load i64, ptr %58, align 8, !tbaa !9
  %893 = load i64, ptr %34, align 8, !tbaa !9
  %894 = add nsw i64 %892, %893
  %895 = getelementptr inbounds double, ptr %891, i64 %894
  %896 = load ptr, ptr %24, align 8, !tbaa !5
  %897 = load ptr, ptr %25, align 8, !tbaa !5
  %898 = load i64, ptr %57, align 8, !tbaa !9
  %899 = getelementptr inbounds double, ptr %897, i64 %898
  %900 = load ptr, ptr %26, align 8, !tbaa !5
  %901 = load i64, ptr %57, align 8, !tbaa !9
  %902 = getelementptr inbounds double, ptr %900, i64 %901
  %903 = getelementptr inbounds [1 x double], ptr %80, i64 0, i64 0
  %904 = load ptr, ptr %31, align 8, !tbaa !5
  %905 = getelementptr inbounds double, ptr %904, i64 1
  %906 = load ptr, ptr %32, align 8, !tbaa !5
  %907 = call i32 @dlaqr4_(ptr noundef @c_false, ptr noundef @c_false, ptr noundef %63, ptr noundef @c__1, ptr noundef %63, ptr noundef %895, ptr noundef %896, ptr noundef %899, ptr noundef %902, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %903, ptr noundef @c__1, ptr noundef %905, ptr noundef %906, ptr noundef %66)
  br label %923

908:                                              ; preds = %862
  %909 = load ptr, ptr %23, align 8, !tbaa !5
  %910 = load i64, ptr %58, align 8, !tbaa !9
  %911 = load i64, ptr %34, align 8, !tbaa !9
  %912 = add nsw i64 %910, %911
  %913 = getelementptr inbounds double, ptr %909, i64 %912
  %914 = load ptr, ptr %24, align 8, !tbaa !5
  %915 = load ptr, ptr %25, align 8, !tbaa !5
  %916 = load i64, ptr %57, align 8, !tbaa !9
  %917 = getelementptr inbounds double, ptr %915, i64 %916
  %918 = load ptr, ptr %26, align 8, !tbaa !5
  %919 = load i64, ptr %57, align 8, !tbaa !9
  %920 = getelementptr inbounds double, ptr %918, i64 %919
  %921 = getelementptr inbounds [1 x double], ptr %80, i64 0, i64 0
  %922 = call i32 @dlahqr_(ptr noundef @c_false, ptr noundef @c_false, ptr noundef %63, ptr noundef @c__1, ptr noundef %63, ptr noundef %913, ptr noundef %914, ptr noundef %917, ptr noundef %920, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %921, ptr noundef @c__1, ptr noundef %66)
  br label %923

923:                                              ; preds = %908, %890
  %924 = load i64, ptr %66, align 8, !tbaa !9
  %925 = load i64, ptr %57, align 8, !tbaa !9
  %926 = add nsw i64 %925, %924
  store i64 %926, ptr %57, align 8, !tbaa !9
  %927 = load i64, ptr %57, align 8, !tbaa !9
  %928 = load i64, ptr %76, align 8, !tbaa !9
  %929 = icmp sge i64 %927, %928
  br i1 %929, label %930, label %984

930:                                              ; preds = %923
  %931 = load ptr, ptr %23, align 8, !tbaa !5
  %932 = load i64, ptr %76, align 8, !tbaa !9
  %933 = sub nsw i64 %932, 1
  %934 = load i64, ptr %76, align 8, !tbaa !9
  %935 = sub nsw i64 %934, 1
  %936 = load i64, ptr %34, align 8, !tbaa !9
  %937 = mul nsw i64 %935, %936
  %938 = add nsw i64 %933, %937
  %939 = getelementptr inbounds double, ptr %931, i64 %938
  %940 = load double, ptr %939, align 8, !tbaa !11
  store double %940, ptr %49, align 8, !tbaa !11
  %941 = load ptr, ptr %23, align 8, !tbaa !5
  %942 = load i64, ptr %76, align 8, !tbaa !9
  %943 = load i64, ptr %76, align 8, !tbaa !9
  %944 = sub nsw i64 %943, 1
  %945 = load i64, ptr %34, align 8, !tbaa !9
  %946 = mul nsw i64 %944, %945
  %947 = add nsw i64 %942, %946
  %948 = getelementptr inbounds double, ptr %941, i64 %947
  %949 = load double, ptr %948, align 8, !tbaa !11
  store double %949, ptr %51, align 8, !tbaa !11
  %950 = load ptr, ptr %23, align 8, !tbaa !5
  %951 = load i64, ptr %76, align 8, !tbaa !9
  %952 = sub nsw i64 %951, 1
  %953 = load i64, ptr %76, align 8, !tbaa !9
  %954 = load i64, ptr %34, align 8, !tbaa !9
  %955 = mul nsw i64 %953, %954
  %956 = add nsw i64 %952, %955
  %957 = getelementptr inbounds double, ptr %950, i64 %956
  %958 = load double, ptr %957, align 8, !tbaa !11
  store double %958, ptr %50, align 8, !tbaa !11
  %959 = load ptr, ptr %23, align 8, !tbaa !5
  %960 = load i64, ptr %76, align 8, !tbaa !9
  %961 = load i64, ptr %76, align 8, !tbaa !9
  %962 = load i64, ptr %34, align 8, !tbaa !9
  %963 = mul nsw i64 %961, %962
  %964 = add nsw i64 %960, %963
  %965 = getelementptr inbounds double, ptr %959, i64 %964
  %966 = load double, ptr %965, align 8, !tbaa !11
  store double %966, ptr %52, align 8, !tbaa !11
  %967 = load ptr, ptr %25, align 8, !tbaa !5
  %968 = load i64, ptr %76, align 8, !tbaa !9
  %969 = sub nsw i64 %968, 1
  %970 = getelementptr inbounds double, ptr %967, i64 %969
  %971 = load ptr, ptr %26, align 8, !tbaa !5
  %972 = load i64, ptr %76, align 8, !tbaa !9
  %973 = sub nsw i64 %972, 1
  %974 = getelementptr inbounds double, ptr %971, i64 %973
  %975 = load ptr, ptr %25, align 8, !tbaa !5
  %976 = load i64, ptr %76, align 8, !tbaa !9
  %977 = getelementptr inbounds double, ptr %975, i64 %976
  %978 = load ptr, ptr %26, align 8, !tbaa !5
  %979 = load i64, ptr %76, align 8, !tbaa !9
  %980 = getelementptr inbounds double, ptr %978, i64 %979
  %981 = call i32 @dlanv2_(ptr noundef %49, ptr noundef %50, ptr noundef %51, ptr noundef %52, ptr noundef %970, ptr noundef %974, ptr noundef %977, ptr noundef %980, ptr noundef %54, ptr noundef %59)
  %982 = load i64, ptr %76, align 8, !tbaa !9
  %983 = sub nsw i64 %982, 1
  store i64 %983, ptr %57, align 8, !tbaa !9
  br label %984

984:                                              ; preds = %930, %923
  br label %985

985:                                              ; preds = %984, %854
  %986 = load i64, ptr %76, align 8, !tbaa !9
  %987 = load i64, ptr %57, align 8, !tbaa !9
  %988 = sub nsw i64 %986, %987
  %989 = add nsw i64 %988, 1
  %990 = load i64, ptr %63, align 8, !tbaa !9
  %991 = icmp sgt i64 %989, %990
  br i1 %991, label %992, label %1115

992:                                              ; preds = %985
  store i64 0, ptr %89, align 8, !tbaa !9
  %993 = load i64, ptr %57, align 8, !tbaa !9
  %994 = add nsw i64 %993, 1
  store i64 %994, ptr %39, align 8, !tbaa !9
  %995 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %995, ptr %48, align 8, !tbaa !9
  br label %996

996:                                              ; preds = %1110, %992
  %997 = load i64, ptr %48, align 8, !tbaa !9
  %998 = load i64, ptr %39, align 8, !tbaa !9
  %999 = icmp sge i64 %997, %998
  br i1 %999, label %1000, label %1113

1000:                                             ; preds = %996
  %1001 = load i64, ptr %89, align 8, !tbaa !9
  %1002 = icmp ne i64 %1001, 0
  br i1 %1002, label %1003, label %1004

1003:                                             ; preds = %1000
  br label %1114

1004:                                             ; preds = %1000
  store i64 1, ptr %89, align 8, !tbaa !9
  %1005 = load i64, ptr %48, align 8, !tbaa !9
  %1006 = sub nsw i64 %1005, 1
  store i64 %1006, ptr %40, align 8, !tbaa !9
  %1007 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %1007, ptr %47, align 8, !tbaa !9
  br label %1008

1008:                                             ; preds = %1106, %1004
  %1009 = load i64, ptr %47, align 8, !tbaa !9
  %1010 = load i64, ptr %40, align 8, !tbaa !9
  %1011 = icmp sle i64 %1009, %1010
  br i1 %1011, label %1012, label %1109

1012:                                             ; preds = %1008
  %1013 = load ptr, ptr %25, align 8, !tbaa !5
  %1014 = load i64, ptr %47, align 8, !tbaa !9
  %1015 = getelementptr inbounds double, ptr %1013, i64 %1014
  %1016 = load double, ptr %1015, align 8, !tbaa !11
  store double %1016, ptr %43, align 8, !tbaa !11
  %1017 = load double, ptr %43, align 8, !tbaa !11
  %1018 = fcmp oge double %1017, 0.000000e+00
  br i1 %1018, label %1019, label %1021

1019:                                             ; preds = %1012
  %1020 = load double, ptr %43, align 8, !tbaa !11
  br label %1024

1021:                                             ; preds = %1012
  %1022 = load double, ptr %43, align 8, !tbaa !11
  %1023 = fneg double %1022
  br label %1024

1024:                                             ; preds = %1021, %1019
  %1025 = phi double [ %1020, %1019 ], [ %1023, %1021 ]
  %1026 = load ptr, ptr %26, align 8, !tbaa !5
  %1027 = load i64, ptr %47, align 8, !tbaa !9
  %1028 = getelementptr inbounds double, ptr %1026, i64 %1027
  %1029 = load double, ptr %1028, align 8, !tbaa !11
  store double %1029, ptr %44, align 8, !tbaa !11
  %1030 = load double, ptr %44, align 8, !tbaa !11
  %1031 = fcmp oge double %1030, 0.000000e+00
  br i1 %1031, label %1032, label %1034

1032:                                             ; preds = %1024
  %1033 = load double, ptr %44, align 8, !tbaa !11
  br label %1037

1034:                                             ; preds = %1024
  %1035 = load double, ptr %44, align 8, !tbaa !11
  %1036 = fneg double %1035
  br label %1037

1037:                                             ; preds = %1034, %1032
  %1038 = phi double [ %1033, %1032 ], [ %1036, %1034 ]
  %1039 = fadd double %1025, %1038
  %1040 = load ptr, ptr %25, align 8, !tbaa !5
  %1041 = load i64, ptr %47, align 8, !tbaa !9
  %1042 = add nsw i64 %1041, 1
  %1043 = getelementptr inbounds double, ptr %1040, i64 %1042
  %1044 = load double, ptr %1043, align 8, !tbaa !11
  store double %1044, ptr %45, align 8, !tbaa !11
  %1045 = load double, ptr %45, align 8, !tbaa !11
  %1046 = fcmp oge double %1045, 0.000000e+00
  br i1 %1046, label %1047, label %1049

1047:                                             ; preds = %1037
  %1048 = load double, ptr %45, align 8, !tbaa !11
  br label %1052

1049:                                             ; preds = %1037
  %1050 = load double, ptr %45, align 8, !tbaa !11
  %1051 = fneg double %1050
  br label %1052

1052:                                             ; preds = %1049, %1047
  %1053 = phi double [ %1048, %1047 ], [ %1051, %1049 ]
  %1054 = load ptr, ptr %26, align 8, !tbaa !5
  %1055 = load i64, ptr %47, align 8, !tbaa !9
  %1056 = add nsw i64 %1055, 1
  %1057 = getelementptr inbounds double, ptr %1054, i64 %1056
  %1058 = load double, ptr %1057, align 8, !tbaa !11
  store double %1058, ptr %46, align 8, !tbaa !11
  %1059 = load double, ptr %46, align 8, !tbaa !11
  %1060 = fcmp oge double %1059, 0.000000e+00
  br i1 %1060, label %1061, label %1063

1061:                                             ; preds = %1052
  %1062 = load double, ptr %46, align 8, !tbaa !11
  br label %1066

1063:                                             ; preds = %1052
  %1064 = load double, ptr %46, align 8, !tbaa !11
  %1065 = fneg double %1064
  br label %1066

1066:                                             ; preds = %1063, %1061
  %1067 = phi double [ %1062, %1061 ], [ %1065, %1063 ]
  %1068 = fadd double %1053, %1067
  %1069 = fcmp olt double %1039, %1068
  br i1 %1069, label %1070, label %1105

1070:                                             ; preds = %1066
  store i64 0, ptr %89, align 8, !tbaa !9
  %1071 = load ptr, ptr %25, align 8, !tbaa !5
  %1072 = load i64, ptr %47, align 8, !tbaa !9
  %1073 = getelementptr inbounds double, ptr %1071, i64 %1072
  %1074 = load double, ptr %1073, align 8, !tbaa !11
  store double %1074, ptr %78, align 8, !tbaa !11
  %1075 = load ptr, ptr %25, align 8, !tbaa !5
  %1076 = load i64, ptr %47, align 8, !tbaa !9
  %1077 = add nsw i64 %1076, 1
  %1078 = getelementptr inbounds double, ptr %1075, i64 %1077
  %1079 = load double, ptr %1078, align 8, !tbaa !11
  %1080 = load ptr, ptr %25, align 8, !tbaa !5
  %1081 = load i64, ptr %47, align 8, !tbaa !9
  %1082 = getelementptr inbounds double, ptr %1080, i64 %1081
  store double %1079, ptr %1082, align 8, !tbaa !11
  %1083 = load double, ptr %78, align 8, !tbaa !11
  %1084 = load ptr, ptr %25, align 8, !tbaa !5
  %1085 = load i64, ptr %47, align 8, !tbaa !9
  %1086 = add nsw i64 %1085, 1
  %1087 = getelementptr inbounds double, ptr %1084, i64 %1086
  store double %1083, ptr %1087, align 8, !tbaa !11
  %1088 = load ptr, ptr %26, align 8, !tbaa !5
  %1089 = load i64, ptr %47, align 8, !tbaa !9
  %1090 = getelementptr inbounds double, ptr %1088, i64 %1089
  %1091 = load double, ptr %1090, align 8, !tbaa !11
  store double %1091, ptr %78, align 8, !tbaa !11
  %1092 = load ptr, ptr %26, align 8, !tbaa !5
  %1093 = load i64, ptr %47, align 8, !tbaa !9
  %1094 = add nsw i64 %1093, 1
  %1095 = getelementptr inbounds double, ptr %1092, i64 %1094
  %1096 = load double, ptr %1095, align 8, !tbaa !11
  %1097 = load ptr, ptr %26, align 8, !tbaa !5
  %1098 = load i64, ptr %47, align 8, !tbaa !9
  %1099 = getelementptr inbounds double, ptr %1097, i64 %1098
  store double %1096, ptr %1099, align 8, !tbaa !11
  %1100 = load double, ptr %78, align 8, !tbaa !11
  %1101 = load ptr, ptr %26, align 8, !tbaa !5
  %1102 = load i64, ptr %47, align 8, !tbaa !9
  %1103 = add nsw i64 %1102, 1
  %1104 = getelementptr inbounds double, ptr %1101, i64 %1103
  store double %1100, ptr %1104, align 8, !tbaa !11
  br label %1105

1105:                                             ; preds = %1070, %1066
  br label %1106

1106:                                             ; preds = %1105
  %1107 = load i64, ptr %47, align 8, !tbaa !9
  %1108 = add nsw i64 %1107, 1
  store i64 %1108, ptr %47, align 8, !tbaa !9
  br label %1008, !llvm.loop !17

1109:                                             ; preds = %1008
  br label %1110

1110:                                             ; preds = %1109
  %1111 = load i64, ptr %48, align 8, !tbaa !9
  %1112 = add nsw i64 %1111, -1
  store i64 %1112, ptr %48, align 8, !tbaa !9
  br label %996, !llvm.loop !18

1113:                                             ; preds = %996
  br label %1114

1114:                                             ; preds = %1113, %1003
  br label %1115

1115:                                             ; preds = %1114, %985
  %1116 = load i64, ptr %57, align 8, !tbaa !9
  %1117 = add nsw i64 %1116, 2
  store i64 %1117, ptr %39, align 8, !tbaa !9
  %1118 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %1118, ptr %47, align 8, !tbaa !9
  br label %1119

1119:                                             ; preds = %1189, %1115
  %1120 = load i64, ptr %47, align 8, !tbaa !9
  %1121 = load i64, ptr %39, align 8, !tbaa !9
  %1122 = icmp sge i64 %1120, %1121
  br i1 %1122, label %1123, label %1192

1123:                                             ; preds = %1119
  %1124 = load ptr, ptr %26, align 8, !tbaa !5
  %1125 = load i64, ptr %47, align 8, !tbaa !9
  %1126 = getelementptr inbounds double, ptr %1124, i64 %1125
  %1127 = load double, ptr %1126, align 8, !tbaa !11
  %1128 = load ptr, ptr %26, align 8, !tbaa !5
  %1129 = load i64, ptr %47, align 8, !tbaa !9
  %1130 = sub nsw i64 %1129, 1
  %1131 = getelementptr inbounds double, ptr %1128, i64 %1130
  %1132 = load double, ptr %1131, align 8, !tbaa !11
  %1133 = fneg double %1132
  %1134 = fcmp une double %1127, %1133
  br i1 %1134, label %1135, label %1188

1135:                                             ; preds = %1123
  %1136 = load ptr, ptr %25, align 8, !tbaa !5
  %1137 = load i64, ptr %47, align 8, !tbaa !9
  %1138 = getelementptr inbounds double, ptr %1136, i64 %1137
  %1139 = load double, ptr %1138, align 8, !tbaa !11
  store double %1139, ptr %78, align 8, !tbaa !11
  %1140 = load ptr, ptr %25, align 8, !tbaa !5
  %1141 = load i64, ptr %47, align 8, !tbaa !9
  %1142 = sub nsw i64 %1141, 1
  %1143 = getelementptr inbounds double, ptr %1140, i64 %1142
  %1144 = load double, ptr %1143, align 8, !tbaa !11
  %1145 = load ptr, ptr %25, align 8, !tbaa !5
  %1146 = load i64, ptr %47, align 8, !tbaa !9
  %1147 = getelementptr inbounds double, ptr %1145, i64 %1146
  store double %1144, ptr %1147, align 8, !tbaa !11
  %1148 = load ptr, ptr %25, align 8, !tbaa !5
  %1149 = load i64, ptr %47, align 8, !tbaa !9
  %1150 = sub nsw i64 %1149, 2
  %1151 = getelementptr inbounds double, ptr %1148, i64 %1150
  %1152 = load double, ptr %1151, align 8, !tbaa !11
  %1153 = load ptr, ptr %25, align 8, !tbaa !5
  %1154 = load i64, ptr %47, align 8, !tbaa !9
  %1155 = sub nsw i64 %1154, 1
  %1156 = getelementptr inbounds double, ptr %1153, i64 %1155
  store double %1152, ptr %1156, align 8, !tbaa !11
  %1157 = load double, ptr %78, align 8, !tbaa !11
  %1158 = load ptr, ptr %25, align 8, !tbaa !5
  %1159 = load i64, ptr %47, align 8, !tbaa !9
  %1160 = sub nsw i64 %1159, 2
  %1161 = getelementptr inbounds double, ptr %1158, i64 %1160
  store double %1157, ptr %1161, align 8, !tbaa !11
  %1162 = load ptr, ptr %26, align 8, !tbaa !5
  %1163 = load i64, ptr %47, align 8, !tbaa !9
  %1164 = getelementptr inbounds double, ptr %1162, i64 %1163
  %1165 = load double, ptr %1164, align 8, !tbaa !11
  store double %1165, ptr %78, align 8, !tbaa !11
  %1166 = load ptr, ptr %26, align 8, !tbaa !5
  %1167 = load i64, ptr %47, align 8, !tbaa !9
  %1168 = sub nsw i64 %1167, 1
  %1169 = getelementptr inbounds double, ptr %1166, i64 %1168
  %1170 = load double, ptr %1169, align 8, !tbaa !11
  %1171 = load ptr, ptr %26, align 8, !tbaa !5
  %1172 = load i64, ptr %47, align 8, !tbaa !9
  %1173 = getelementptr inbounds double, ptr %1171, i64 %1172
  store double %1170, ptr %1173, align 8, !tbaa !11
  %1174 = load ptr, ptr %26, align 8, !tbaa !5
  %1175 = load i64, ptr %47, align 8, !tbaa !9
  %1176 = sub nsw i64 %1175, 2
  %1177 = getelementptr inbounds double, ptr %1174, i64 %1176
  %1178 = load double, ptr %1177, align 8, !tbaa !11
  %1179 = load ptr, ptr %26, align 8, !tbaa !5
  %1180 = load i64, ptr %47, align 8, !tbaa !9
  %1181 = sub nsw i64 %1180, 1
  %1182 = getelementptr inbounds double, ptr %1179, i64 %1181
  store double %1178, ptr %1182, align 8, !tbaa !11
  %1183 = load double, ptr %78, align 8, !tbaa !11
  %1184 = load ptr, ptr %26, align 8, !tbaa !5
  %1185 = load i64, ptr %47, align 8, !tbaa !9
  %1186 = sub nsw i64 %1185, 2
  %1187 = getelementptr inbounds double, ptr %1184, i64 %1186
  store double %1183, ptr %1187, align 8, !tbaa !11
  br label %1188

1188:                                             ; preds = %1135, %1123
  br label %1189

1189:                                             ; preds = %1188
  %1190 = load i64, ptr %47, align 8, !tbaa !9
  %1191 = add nsw i64 %1190, -2
  store i64 %1191, ptr %47, align 8, !tbaa !9
  br label %1119, !llvm.loop !19

1192:                                             ; preds = %1119
  br label %1193

1193:                                             ; preds = %1192, %853
  %1194 = load i64, ptr %76, align 8, !tbaa !9
  %1195 = load i64, ptr %57, align 8, !tbaa !9
  %1196 = sub nsw i64 %1194, %1195
  %1197 = add nsw i64 %1196, 1
  %1198 = icmp eq i64 %1197, 2
  br i1 %1198, label %1199, label %1272

1199:                                             ; preds = %1193
  %1200 = load ptr, ptr %26, align 8, !tbaa !5
  %1201 = load i64, ptr %76, align 8, !tbaa !9
  %1202 = getelementptr inbounds double, ptr %1200, i64 %1201
  %1203 = load double, ptr %1202, align 8, !tbaa !11
  %1204 = fcmp oeq double %1203, 0.000000e+00
  br i1 %1204, label %1205, label %1271

1205:                                             ; preds = %1199
  %1206 = load ptr, ptr %25, align 8, !tbaa !5
  %1207 = load i64, ptr %76, align 8, !tbaa !9
  %1208 = getelementptr inbounds double, ptr %1206, 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 %43, align 8, !tbaa !11
  %1219 = load double, ptr %43, align 8, !tbaa !11
  %1220 = fcmp oge double %1219, 0.000000e+00
  br i1 %1220, label %1221, label %1223

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

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

1226:                                             ; preds = %1223, %1221
  %1227 = phi double [ %1222, %1221 ], [ %1225, %1223 ]
  %1228 = load ptr, ptr %25, align 8, !tbaa !5
  %1229 = load i64, ptr %76, align 8, !tbaa !9
  %1230 = sub nsw i64 %1229, 1
  %1231 = getelementptr inbounds double, ptr %1228, i64 %1230
  %1232 = load double, ptr %1231, align 8, !tbaa !11
  %1233 = load ptr, ptr %23, align 8, !tbaa !5
  %1234 = load i64, ptr %76, align 8, !tbaa !9
  %1235 = load i64, ptr %76, align 8, !tbaa !9
  %1236 = load i64, ptr %34, align 8, !tbaa !9
  %1237 = mul nsw i64 %1235, %1236
  %1238 = add nsw i64 %1234, %1237
  %1239 = getelementptr inbounds double, ptr %1233, i64 %1238
  %1240 = load double, ptr %1239, align 8, !tbaa !11
  %1241 = fsub double %1232, %1240
  store double %1241, ptr %44, align 8, !tbaa !11
  %1242 = load double, ptr %44, align 8, !tbaa !11
  %1243 = fcmp oge double %1242, 0.000000e+00
  br i1 %1243, label %1244, label %1246

1244:                                             ; preds = %1226
  %1245 = load double, ptr %44, align 8, !tbaa !11
  br label %1249

1246:                                             ; preds = %1226
  %1247 = load double, ptr %44, align 8, !tbaa !11
  %1248 = fneg double %1247
  br label %1249

1249:                                             ; preds = %1246, %1244
  %1250 = phi double [ %1245, %1244 ], [ %1248, %1246 ]
  %1251 = fcmp olt double %1227, %1250
  br i1 %1251, label %1252, label %1261

1252:                                             ; preds = %1249
  %1253 = load ptr, ptr %25, align 8, !tbaa !5
  %1254 = load i64, ptr %76, align 8, !tbaa !9
  %1255 = getelementptr inbounds double, ptr %1253, i64 %1254
  %1256 = load double, ptr %1255, align 8, !tbaa !11
  %1257 = load ptr, ptr %25, align 8, !tbaa !5
  %1258 = load i64, ptr %76, align 8, !tbaa !9
  %1259 = sub nsw i64 %1258, 1
  %1260 = getelementptr inbounds double, ptr %1257, i64 %1259
  store double %1256, ptr %1260, align 8, !tbaa !11
  br label %1270

1261:                                             ; preds = %1249
  %1262 = load ptr, ptr %25, align 8, !tbaa !5
  %1263 = load i64, ptr %76, align 8, !tbaa !9
  %1264 = sub nsw i64 %1263, 1
  %1265 = getelementptr inbounds double, ptr %1262, i64 %1264
  %1266 = load double, ptr %1265, align 8, !tbaa !11
  %1267 = load ptr, ptr %25, align 8, !tbaa !5
  %1268 = load i64, ptr %76, align 8, !tbaa !9
  %1269 = getelementptr inbounds double, ptr %1267, i64 %1268
  store double %1266, ptr %1269, align 8, !tbaa !11
  br label %1270

1270:                                             ; preds = %1261, %1252
  br label %1271

1271:                                             ; preds = %1270, %1199
  br label %1272

1272:                                             ; preds = %1271, %1193
  %1273 = load i64, ptr %63, align 8, !tbaa !9
  store i64 %1273, ptr %39, align 8, !tbaa !9
  %1274 = load i64, ptr %76, align 8, !tbaa !9
  %1275 = load i64, ptr %57, align 8, !tbaa !9
  %1276 = sub nsw i64 %1274, %1275
  %1277 = add nsw i64 %1276, 1
  store i64 %1277, ptr %40, align 8, !tbaa !9
  %1278 = load i64, ptr %39, align 8, !tbaa !9
  %1279 = load i64, ptr %40, align 8, !tbaa !9
  %1280 = icmp sle i64 %1278, %1279
  br i1 %1280, label %1281, label %1283

1281:                                             ; preds = %1272
  %1282 = load i64, ptr %39, align 8, !tbaa !9
  br label %1285

1283:                                             ; preds = %1272
  %1284 = load i64, ptr %40, align 8, !tbaa !9
  br label %1285

1285:                                             ; preds = %1283, %1281
  %1286 = phi i64 [ %1282, %1281 ], [ %1284, %1283 ]
  store i64 %1286, ptr %63, align 8, !tbaa !9
  %1287 = load i64, ptr %63, align 8, !tbaa !9
  %1288 = srem i64 %1287, 2
  %1289 = load i64, ptr %63, align 8, !tbaa !9
  %1290 = sub nsw i64 %1289, %1288
  store i64 %1290, ptr %63, align 8, !tbaa !9
  %1291 = load i64, ptr %76, align 8, !tbaa !9
  %1292 = load i64, ptr %63, align 8, !tbaa !9
  %1293 = sub nsw i64 %1291, %1292
  %1294 = add nsw i64 %1293, 1
  store i64 %1294, ptr %57, align 8, !tbaa !9
  %1295 = load i64, ptr %63, align 8, !tbaa !9
  %1296 = mul nsw i64 %1295, 3
  %1297 = sub nsw i64 %1296, 3
  store i64 %1297, ptr %67, align 8, !tbaa !9
  %1298 = load ptr, ptr %20, align 8, !tbaa !5
  %1299 = load i64, ptr %1298, align 8, !tbaa !9
  %1300 = load i64, ptr %67, align 8, !tbaa !9
  %1301 = sub nsw i64 %1299, %1300
  %1302 = add nsw i64 %1301, 1
  store i64 %1302, ptr %60, align 8, !tbaa !9
  %1303 = load i64, ptr %67, align 8, !tbaa !9
  %1304 = add nsw i64 %1303, 1
  store i64 %1304, ptr %70, align 8, !tbaa !9
  %1305 = load ptr, ptr %20, align 8, !tbaa !5
  %1306 = load i64, ptr %1305, align 8, !tbaa !9
  %1307 = load i64, ptr %67, align 8, !tbaa !9
  %1308 = sub nsw i64 %1306, %1307
  %1309 = sub nsw i64 %1308, 3
  %1310 = load i64, ptr %67, align 8, !tbaa !9
  %1311 = add nsw i64 %1310, 1
  %1312 = sub nsw i64 %1309, %1311
  %1313 = add nsw i64 %1312, 1
  store i64 %1313, ptr %68, align 8, !tbaa !9
  %1314 = load i64, ptr %67, align 8, !tbaa !9
  %1315 = add nsw i64 %1314, 4
  store i64 %1315, ptr %73, align 8, !tbaa !9
  %1316 = load ptr, ptr %20, align 8, !tbaa !5
  %1317 = load i64, ptr %1316, align 8, !tbaa !9
  %1318 = load i64, ptr %67, align 8, !tbaa !9
  %1319 = sub nsw i64 %1317, %1318
  %1320 = load i64, ptr %73, align 8, !tbaa !9
  %1321 = sub nsw i64 %1319, %1320
  %1322 = add nsw i64 %1321, 1
  store i64 %1322, ptr %69, align 8, !tbaa !9
  %1323 = load ptr, ptr %18, align 8, !tbaa !5
  %1324 = load ptr, ptr %19, align 8, !tbaa !5
  %1325 = load ptr, ptr %20, align 8, !tbaa !5
  %1326 = load ptr, ptr %25, align 8, !tbaa !5
  %1327 = load i64, ptr %57, align 8, !tbaa !9
  %1328 = getelementptr inbounds double, ptr %1326, i64 %1327
  %1329 = load ptr, ptr %26, align 8, !tbaa !5
  %1330 = load i64, ptr %57, align 8, !tbaa !9
  %1331 = getelementptr inbounds double, ptr %1329, i64 %1330
  %1332 = load ptr, ptr %23, align 8, !tbaa !5
  %1333 = load i64, ptr %35, align 8, !tbaa !9
  %1334 = getelementptr inbounds double, ptr %1332, i64 %1333
  %1335 = load ptr, ptr %24, align 8, !tbaa !5
  %1336 = load ptr, ptr %27, align 8, !tbaa !5
  %1337 = load ptr, ptr %28, align 8, !tbaa !5
  %1338 = load ptr, ptr %29, align 8, !tbaa !5
  %1339 = load i64, ptr %37, align 8, !tbaa !9
  %1340 = getelementptr inbounds double, ptr %1338, i64 %1339
  %1341 = load ptr, ptr %30, align 8, !tbaa !5
  %1342 = load ptr, ptr %31, align 8, !tbaa !5
  %1343 = getelementptr inbounds double, ptr %1342, i64 1
  %1344 = load ptr, ptr %23, align 8, !tbaa !5
  %1345 = load i64, ptr %60, align 8, !tbaa !9
  %1346 = load i64, ptr %34, align 8, !tbaa !9
  %1347 = add nsw i64 %1345, %1346
  %1348 = getelementptr inbounds double, ptr %1344, i64 %1347
  %1349 = load ptr, ptr %24, align 8, !tbaa !5
  %1350 = load ptr, ptr %23, align 8, !tbaa !5
  %1351 = load i64, ptr %73, align 8, !tbaa !9
  %1352 = load i64, ptr %34, align 8, !tbaa !9
  %1353 = add nsw i64 %1351, %1352
  %1354 = getelementptr inbounds double, ptr %1350, i64 %1353
  %1355 = load ptr, ptr %24, align 8, !tbaa !5
  %1356 = load ptr, ptr %23, align 8, !tbaa !5
  %1357 = load i64, ptr %60, align 8, !tbaa !9
  %1358 = load i64, ptr %70, align 8, !tbaa !9
  %1359 = load i64, ptr %34, align 8, !tbaa !9
  %1360 = mul nsw i64 %1358, %1359
  %1361 = add nsw i64 %1357, %1360
  %1362 = getelementptr inbounds double, ptr %1356, i64 %1361
  %1363 = load ptr, ptr %24, align 8, !tbaa !5
  %1364 = call i32 @dlaqr5_(ptr noundef %1323, ptr noundef %1324, ptr noundef %81, ptr noundef %1325, ptr noundef %79, ptr noundef %76, ptr noundef %63, ptr noundef %1328, ptr noundef %1331, ptr noundef %1334, ptr noundef %1335, ptr noundef %1336, ptr noundef %1337, ptr noundef %1340, ptr noundef %1341, ptr noundef %1343, ptr noundef @c__3, ptr noundef %1348, ptr noundef %1349, ptr noundef %69, ptr noundef %1354, ptr noundef %1355, ptr noundef %68, ptr noundef %1362, ptr noundef %1363)
  br label %1365

1365:                                             ; preds = %1285, %679, %660
  %1366 = load i64, ptr %53, align 8, !tbaa !9
  %1367 = icmp sgt i64 %1366, 0
  br i1 %1367, label %1368, label %1369

1368:                                             ; preds = %1365
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %1372

1369:                                             ; preds = %1365
  %1370 = load i64, ptr %75, align 8, !tbaa !9
  %1371 = add nsw i64 %1370, 1
  store i64 %1371, ptr %75, align 8, !tbaa !9
  br label %1372

1372:                                             ; preds = %1369, %1368
  br label %1373

1373:                                             ; preds = %1372
  %1374 = load i64, ptr %56, align 8, !tbaa !9
  %1375 = add nsw i64 %1374, 1
  store i64 %1375, ptr %56, align 8, !tbaa !9
  br label %424, !llvm.loop !20

1376:                                             ; preds = %424
  %1377 = load i64, ptr %76, align 8, !tbaa !9
  %1378 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 %1377, ptr %1378, align 8, !tbaa !9
  br label %1379

1379:                                             ; preds = %1376, %433
  br label %1380

1380:                                             ; preds = %1379, %151
  %1381 = load i64, ptr %90, align 8, !tbaa !9
  %1382 = sitofp i64 %1381 to double
  %1383 = load ptr, ptr %31, align 8, !tbaa !5
  %1384 = getelementptr inbounds double, ptr %1383, i64 1
  store double %1382, ptr %1384, align 8, !tbaa !11
  store i32 0, ptr %17, align 4
  store i32 1, ptr %91, align 4
  br label %1385

1385:                                             ; preds = %1380, %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
  %1386 = load i32, ptr %17, align 4
  ret i32 %1386
}

; 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 @dlaqr3_(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 @dlaqr4_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @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 @dlaqr0_(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 %403, 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
  %.not534 = icmp eq i64 %46, -1
  br i1 %.not534, label %.loopexit546, 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 %.loopexit546

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
  %.not505 = icmp eq i64 %51, 0
  %spec.select = select i1 %.not505, 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 @dlaqr3_(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 %403

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 @llvm.smax.i64(i64 %88, i64 11)
  %90 = 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
  %91 = call i64 @llvm.smax.i64(i64 %90, i64 0)
  %92 = 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
  %93 = call i64 @llvm.smax.i64(i64 %92, i64 0)
  %94 = call i64 @llvm.umin.i64(i64 %93, i64 2)
  store i64 %94, ptr %34, align 8, !tbaa !5
  %95 = load i64, ptr %2, align 8, !tbaa !5
  %96 = add nsw i64 %95, -1
  %97 = sdiv i64 %96, 3
  %98 = load i64, ptr %14, align 8, !tbaa !5
  %99 = sdiv i64 %98, 2
  %100 = call i64 @llvm.smin.i64(i64 %97, i64 %99)
  store i64 %100, ptr %27, align 8, !tbaa !5
  %101 = load i64, ptr %4, align 8, !tbaa !5
  %102 = load i64, ptr %3, align 8, !tbaa !5
  %103 = sub nsw i64 %101, %102
  %104 = icmp slt i64 %103, 10
  %105 = mul i64 %103, 30
  %106 = add i64 %105, 30
  %107 = select i1 %104, i64 300, i64 %106
  store i64 %101, ptr %31, align 8, !tbaa !5
  store i64 %107, ptr %17, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %38, i64 8
  %.not513559 = icmp slt i64 %107, 1
  br i1 %.not513559, label %._crit_edge565, label %.lr.ph564

.lr.ph564:                                        ; preds = %87
  %108 = add nsw i64 %95, 6
  %109 = sdiv i64 %108, 9
  %110 = shl i64 %98, 1
  %111 = sdiv i64 %110, 3
  %112 = call i64 @llvm.smin.i64(i64 %109, i64 %111)
  %113 = srem i64 %112, 2
  %114 = sub nsw i64 %112, %113
  %115 = call i64 @llvm.smin.i64(i64 %89, i64 %100)
  %116 = call i64 @llvm.smin.i64(i64 %114, i64 %75)
  %117 = add i64 %36, 1
  %118 = getelementptr i8, ptr %5, i64 8
  br label %119

119:                                              ; preds = %.lr.ph564, %396
  %.0483562 = phi i64 [ 1, %.lr.ph564 ], [ %.1484, %396 ]
  %.0485561 = phi i64 [ undef, %.lr.ph564 ], [ %.1486, %396 ]
  %.0489560 = phi i64 [ 1, %.lr.ph564 ], [ %399, %396 ]
  %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 %.loopexit546, label %.preheader545

.preheader545:                                    ; preds = %119, %123
  %.0490 = phi i64 [ %124, %123 ], [ %120, %119 ]
  %.not514.not = icmp sgt i64 %.0490, %121
  br i1 %.not514.not, label %123, label %130

123:                                              ; preds = %.preheader545
  %124 = add nsw i64 %.0490, -1
  %125 = mul nsw i64 %124, %36
  %126 = getelementptr double, ptr %38, i64 %.0490
  %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 %.preheader545, !llvm.loop !12

130:                                              ; preds = %.preheader545, %123
  %.1491 = phi i64 [ %.0490, %123 ], [ %121, %.preheader545 ]
  store i64 %.1491, ptr %32, align 8, !tbaa !5
  %131 = sub nsw i64 %120, %.1491
  %132 = add nsw i64 %131, 1
  %133 = call i64 @llvm.smin.i64(i64 %132, i64 %100)
  %134 = icmp slt i64 %.0483562, 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, %100
  br i1 %138, label %139, label %161

139:                                              ; preds = %130
  %.not519 = icmp slt i64 %137, %131
  br i1 %.not519, 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 %.0485561, 0
  %.not520 = icmp slt i64 %162, %133
  %or.cond535 = select i1 %164, i1 %.not520, i1 false
  br i1 %or.cond535, label %170, label %165

165:                                              ; preds = %163
  %166 = add nsw i64 %.0485561, 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 ]
  %.1486 = phi i64 [ %spec.store.select, %165 ], [ -1, %161 ], [ %.0485561, %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
  %.neg537 = add i64 %172, 1
  %177 = shl i64 %171, 1
  %reass.sub = sub i64 %.neg537, %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
  %gep556 = getelementptr double, ptr %118, i64 %171
  %182 = call i32 @dlaqr3_(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 %gep556, 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_edge568, label %190

._crit_edge568:                                   ; preds = %170
  %.pre = load i64, ptr %32, align 8, !tbaa !5
  %.pre572 = 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, %91
  %.not521 = icmp sgt i64 %191, %193
  br i1 %.not521, label %396, label %194

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

197:                                              ; preds = %._crit_edge568, %194
  %.pre-phi = phi i64 [ %.pre572, %._crit_edge568 ], [ %196, %194 ]
  %198 = phi i64 [ %.pre, %._crit_edge568 ], [ %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 %.0483562, 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)
  %.not532552 = icmp slt i64 %185, %211
  br i1 %.not532552, label %._crit_edge, label %.lr.ph554

.lr.ph554:                                        ; preds = %206, %.lr.ph554
  %.0493553 = phi i64 [ %220, %.lr.ph554 ], [ %185, %206 ]
  %212 = add nsw i64 %.0493553, -1
  %213 = mul nsw i64 %212, %36
  %214 = getelementptr double, ptr %38, i64 %.0493553
  %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 %.0493553, -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 %.0493553, %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 %.0493553
  %237 = getelementptr inbounds double, ptr %40, i64 %.0493553
  %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
  %.not532 = icmp slt i64 %220, %211
  br i1 %.not532, label %._crit_edge.loopexit, label %.lr.ph554, !llvm.loop !14

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

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %206
  %239 = phi i64 [ %.pre569, %._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
  %.not526.not = icmp slt i64 %252, %202
  br i1 %.not526.not, label %253, label %297

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 = load i64, ptr %26, align 8, !tbaa !5
  %263 = icmp sgt i64 %262, %89
  %264 = getelementptr double, ptr %7, i64 %254
  %265 = getelementptr double, ptr %8, i64 %254
  br i1 %263, label %266, label %268

266:                                              ; preds = %253
  %267 = call i32 @dlaqr4_(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 %264, ptr noundef %265, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %33, ptr noundef nonnull @c__1, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %28) #5
  br label %270

268:                                              ; preds = %253
  %269 = 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 %264, ptr noundef %265, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %33, ptr noundef nonnull @c__1, ptr noundef nonnull %28) #5
  br label %270

270:                                              ; preds = %268, %266
  %271 = load i64, ptr %28, align 8, !tbaa !5
  %272 = add nsw i64 %271, %255
  %273 = load i64, ptr %31, align 8, !tbaa !5
  %.not527 = icmp slt i64 %272, %273
  br i1 %.not527, label %297, label %274

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

297:                                              ; preds = %270, %274, %251
  %298 = phi i64 [ %295, %274 ], [ %273, %270 ], [ %185, %251 ]
  %.0487 = phi i64 [ %296, %274 ], [ %272, %270 ], [ %188, %251 ]
  %299 = sub nsw i64 %298, %.0487
  %300 = load i64, ptr %26, align 8, !tbaa !5
  %.not528 = icmp slt i64 %299, %300
  %301 = icmp sle i64 %298, %.0487
  %or.cond566 = or i1 %.not528, %301
  br i1 %or.cond566, label %.loopexit544, label %.preheader

.preheader:                                       ; preds = %297, %325
  %.2492549 = phi i64 [ %326, %325 ], [ %298, %297 ]
  br label %302

302:                                              ; preds = %.preheader, %324
  %.1548 = phi i64 [ 1, %.preheader ], [ %.2, %324 ]
  %.1494547 = phi i64 [ %.0487, %.preheader ], [ %305, %324 ]
  %303 = getelementptr inbounds double, ptr %39, i64 %.1494547
  %304 = getelementptr inbounds double, ptr %40, i64 %.1494547
  %305 = add nsw i64 %.1494547, 1
  %306 = load <2 x double>, ptr %303, align 8, !tbaa !10
  %307 = fcmp oge <2 x double> %306, zeroinitializer
  %308 = fneg <2 x double> %306
  %309 = select <2 x i1> %307, <2 x double> %306, <2 x double> %308
  %310 = load <2 x double>, ptr %304, align 8, !tbaa !10
  %311 = fcmp oge <2 x double> %310, zeroinitializer
  %312 = fneg <2 x double> %310
  %313 = select <2 x i1> %311, <2 x double> %310, <2 x double> %312
  %314 = fadd <2 x double> %309, %313
  %315 = extractelement <2 x double> %314, i64 0
  %316 = extractelement <2 x double> %314, i64 1
  %317 = fcmp olt double %315, %316
  br i1 %317, label %318, label %324

318:                                              ; preds = %302
  %319 = getelementptr double, ptr %7, i64 %.1494547
  %320 = extractelement <2 x double> %306, i64 1
  store double %320, ptr %303, align 8, !tbaa !10
  %321 = extractelement <2 x double> %306, i64 0
  store double %321, ptr %319, align 8, !tbaa !10
  %322 = load <2 x double>, ptr %304, align 8, !tbaa !10
  %323 = shufflevector <2 x double> %322, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  store <2 x double> %323, ptr %304, align 8, !tbaa !10
  br label %324

324:                                              ; preds = %302, %318
  %.2 = phi i64 [ 0, %318 ], [ %.1548, %302 ]
  %.not529.not = icmp slt i64 %305, %.2492549
  br i1 %.not529.not, label %302, label %325, !llvm.loop !15

325:                                              ; preds = %324
  %326 = add nsw i64 %.2492549, -1
  %327 = icmp sle i64 %326, %.0487
  %328 = icmp ne i64 %.2, 0
  %or.cond = select i1 %327, i1 true, i1 %328
  br i1 %or.cond, label %.loopexit544, label %.preheader, !llvm.loop !16

.loopexit544:                                     ; preds = %325, %297
  %329 = add nsw i64 %.0487, 2
  %.not530550 = icmp slt i64 %298, %329
  br i1 %.not530550, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %.loopexit544, %347
  %.2495551 = phi i64 [ %.pre-phi574, %347 ], [ %298, %.loopexit544 ]
  %330 = getelementptr inbounds double, ptr %40, i64 %.2495551
  %331 = load double, ptr %330, align 8, !tbaa !10
  %332 = add nsw i64 %.2495551, -1
  %333 = getelementptr inbounds double, ptr %40, i64 %332
  %334 = load double, ptr %333, align 8, !tbaa !10
  %335 = fneg double %334
  %336 = fcmp une double %331, %335
  br i1 %336, label %337, label %.lr.ph._crit_edge

.lr.ph._crit_edge:                                ; preds = %.lr.ph
  %.pre573 = add nsw i64 %.2495551, -2
  br label %347

337:                                              ; preds = %.lr.ph
  %338 = getelementptr inbounds double, ptr %39, i64 %.2495551
  %339 = load double, ptr %338, align 8, !tbaa !10
  %340 = getelementptr inbounds double, ptr %39, i64 %332
  %341 = add nsw i64 %.2495551, -2
  %342 = getelementptr inbounds double, ptr %39, i64 %341
  %343 = load <2 x double>, ptr %342, align 8, !tbaa !10
  store <2 x double> %343, ptr %340, align 8, !tbaa !10
  store double %339, ptr %342, align 8, !tbaa !10
  %344 = load double, ptr %330, align 8, !tbaa !10
  %345 = getelementptr inbounds double, ptr %40, i64 %341
  %346 = load <2 x double>, ptr %345, align 8, !tbaa !10
  store <2 x double> %346, ptr %333, align 8, !tbaa !10
  store double %344, ptr %345, align 8, !tbaa !10
  br label %347

347:                                              ; preds = %.lr.ph._crit_edge, %337
  %.pre-phi574 = phi i64 [ %.pre573, %.lr.ph._crit_edge ], [ %341, %337 ]
  %.not530 = icmp slt i64 %.pre-phi574, %329
  br i1 %.not530, label %.loopexit, label %.lr.ph, !llvm.loop !17

.loopexit:                                        ; preds = %347, %.loopexit544, %._crit_edge, %241
  %.1488 = phi i64 [ %208, %241 ], [ %208, %._crit_edge ], [ %.0487, %.loopexit544 ], [ %.0487, %347 ]
  %348 = load i64, ptr %31, align 8, !tbaa !5
  %349 = sub nsw i64 %348, %.1488
  %350 = icmp eq i64 %349, 1
  br i1 %350, label %351, label %375

351:                                              ; preds = %.loopexit
  %352 = getelementptr inbounds double, ptr %40, i64 %348
  %353 = load double, ptr %352, align 8, !tbaa !10
  %354 = fcmp oeq double %353, 0.000000e+00
  br i1 %354, label %355, label %375

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

371:                                              ; preds = %355
  %372 = extractelement <2 x double> %361, i64 1
  store double %372, ptr %360, align 8, !tbaa !10
  br label %375

373:                                              ; preds = %355
  %374 = extractelement <2 x double> %361, i64 0
  store double %374, ptr %356, align 8, !tbaa !10
  br label %375

375:                                              ; preds = %351, %373, %371, %.loopexit
  %376 = load i64, ptr %26, align 8, !tbaa !5
  %377 = add nsw i64 %349, 1
  %378 = call i64 @llvm.smin.i64(i64 %376, i64 %377)
  %379 = srem i64 %378, 2
  %380 = sub nsw i64 %378, %379
  store i64 %380, ptr %26, align 8, !tbaa !5
  %381 = sub nsw i64 %348, %380
  %382 = mul nsw i64 %380, 3
  %383 = add nsw i64 %382, -3
  %384 = load i64, ptr %2, align 8, !tbaa !5
  %385 = sub nsw i64 %384, %383
  %386 = add nsw i64 %382, -2
  %387 = sub i64 %385, %382
  store i64 %387, ptr %29, align 8, !tbaa !5
  %.neg = mul i64 %380, -6
  %reass.sub567 = add i64 %.neg, %384
  %388 = add i64 %reass.sub567, 3
  store i64 %388, ptr %30, align 8, !tbaa !5
  %389 = getelementptr double, ptr %7, i64 %381
  %390 = getelementptr double, ptr %8, i64 %381
  %391 = getelementptr inbounds double, ptr %5, i64 %385
  %392 = getelementptr inbounds double, ptr %5, i64 %382
  %393 = mul nsw i64 %386, %36
  %gep558 = getelementptr double, ptr %invariant.gep, i64 %385
  %394 = getelementptr double, ptr %gep558, i64 %393
  %395 = 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 %389, ptr noundef %390, 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 %391, ptr noundef nonnull %6, ptr noundef nonnull %30, ptr noundef %392, ptr noundef nonnull %6, ptr noundef nonnull %29, ptr noundef %394, ptr noundef nonnull %6) #5
  %.pre570 = load i64, ptr %22, align 8, !tbaa !5
  br label %396

396:                                              ; preds = %375, %194, %190
  %397 = phi i64 [ %.pre570, %375 ], [ %183, %194 ], [ %183, %190 ]
  %398 = add nsw i64 %.0483562, 1
  %.inv = icmp slt i64 %397, 1
  %.1484 = select i1 %.inv, i64 %398, i64 1
  %399 = add nuw nsw i64 %.0489560, 1
  %400 = load i64, ptr %17, align 8, !tbaa !5
  %.not513.not = icmp slt i64 %.0489560, %400
  br i1 %.not513.not, label %119, label %._crit_edge565.loopexit, !llvm.loop !18

._crit_edge565.loopexit:                          ; preds = %396
  %.pre571 = load i64, ptr %31, align 8, !tbaa !5
  br label %._crit_edge565

._crit_edge565:                                   ; preds = %._crit_edge565.loopexit, %87
  %401 = phi i64 [ %.pre571, %._crit_edge565.loopexit ], [ %101, %87 ]
  store i64 %401, ptr %15, align 8, !tbaa !5
  br label %.loopexit546

.loopexit546:                                     ; preds = %119, %._crit_edge565, %45, %47
  %.0 = phi i64 [ 1, %47 ], [ 1, %45 ], [ %82, %._crit_edge565 ], [ %82, %119 ]
  %402 = uitofp nneg i64 %.0 to double
  br label %403

403:                                              ; preds = %16, %.loopexit546, %85
  %.sink575 = phi double [ %402, %.loopexit546 ], [ %86, %85 ], [ 1.000000e+00, %16 ]
  store double %.sink575, 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 @dlaqr3_(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 @dlaqr4_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @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