; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (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 i32, align 4
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@c__15 = external hidden global i32, align 4
@c_n1 = external hidden global i32, align 4
@c__12 = external hidden global i32, align 4
@c__14 = external hidden global i32, align 4
@c__16 = external hidden global i32, align 4
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_false = external hidden global i32, align 4
@c__1 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4

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

121:                                              ; preds = %16
  %122 = load ptr, ptr %30, align 8, !tbaa !5
  %123 = getelementptr inbounds double, ptr %122, i64 1
  store double 1.000000e+00, ptr %123, align 8, !tbaa !11
  store i32 1, ptr %90, align 4
  br label %1465

124:                                              ; preds = %16
  %125 = load ptr, ptr %19, align 8, !tbaa !5
  %126 = load i32, ptr %125, align 4, !tbaa !9
  %127 = icmp sle i32 %126, 15
  br i1 %127, label %128, label %156

128:                                              ; preds = %124
  store i32 1, ptr %81, align 4, !tbaa !9
  %129 = load ptr, ptr %31, align 8, !tbaa !5
  %130 = load i32, ptr %129, align 4, !tbaa !9
  %131 = icmp ne i32 %130, -1
  br i1 %131, label %132, label %155

132:                                              ; preds = %128
  %133 = load ptr, ptr %17, align 8, !tbaa !5
  %134 = load ptr, ptr %18, align 8, !tbaa !5
  %135 = load ptr, ptr %19, align 8, !tbaa !5
  %136 = load ptr, ptr %20, align 8, !tbaa !5
  %137 = load ptr, ptr %21, align 8, !tbaa !5
  %138 = load ptr, ptr %22, align 8, !tbaa !5
  %139 = load i32, ptr %34, align 4, !tbaa !9
  %140 = sext i32 %139 to i64
  %141 = getelementptr inbounds double, ptr %138, i64 %140
  %142 = load ptr, ptr %23, align 8, !tbaa !5
  %143 = load ptr, ptr %24, align 8, !tbaa !5
  %144 = getelementptr inbounds double, ptr %143, i64 1
  %145 = load ptr, ptr %25, align 8, !tbaa !5
  %146 = getelementptr inbounds double, ptr %145, i64 1
  %147 = load ptr, ptr %26, align 8, !tbaa !5
  %148 = load ptr, ptr %27, align 8, !tbaa !5
  %149 = load ptr, ptr %28, align 8, !tbaa !5
  %150 = load i32, ptr %36, align 4, !tbaa !9
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds double, ptr %149, i64 %151
  %153 = load ptr, ptr %29, align 8, !tbaa !5
  %154 = load ptr, ptr %32, align 8, !tbaa !5
  call void @dlahqr_(ptr noundef %133, ptr noundef %134, ptr noundef %135, ptr noundef %136, ptr noundef %137, ptr noundef %141, ptr noundef %142, ptr noundef %144, ptr noundef %146, ptr noundef %147, ptr noundef %148, ptr noundef %152, ptr noundef %153, ptr noundef %154)
  br label %155

155:                                              ; preds = %132, %128
  br label %1460

156:                                              ; preds = %124
  %157 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 0, ptr %157, align 4, !tbaa !9
  %158 = load ptr, ptr %17, align 8, !tbaa !5
  %159 = load i32, ptr %158, align 4, !tbaa !9
  %160 = icmp ne i32 %159, 0
  br i1 %160, label %161, label %163

161:                                              ; preds = %156
  %162 = getelementptr inbounds [2 x i8], ptr %78, i64 0, i64 0
  store i8 83, ptr %162, align 1, !tbaa !13
  br label %165

163:                                              ; preds = %156
  %164 = getelementptr inbounds [2 x i8], ptr %78, i64 0, i64 0
  store i8 69, ptr %164, align 1, !tbaa !13
  br label %165

165:                                              ; preds = %163, %161
  %166 = load ptr, ptr %18, align 8, !tbaa !5
  %167 = load i32, ptr %166, align 4, !tbaa !9
  %168 = icmp ne i32 %167, 0
  br i1 %168, label %169, label %171

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

171:                                              ; preds = %165
  %172 = getelementptr inbounds [2 x i8], ptr %78, i64 0, i64 1
  store i8 78, ptr %172, align 1, !tbaa !13
  br label %173

173:                                              ; preds = %171, %169
  %174 = getelementptr inbounds [2 x i8], ptr %78, i64 0, i64 0
  %175 = load ptr, ptr %19, align 8, !tbaa !5
  %176 = load ptr, ptr %20, align 8, !tbaa !5
  %177 = load ptr, ptr %21, align 8, !tbaa !5
  %178 = load ptr, ptr %31, align 8, !tbaa !5
  %179 = call i32 @ilaenv_(ptr noundef @c__13, ptr noundef @.str, ptr noundef %174, ptr noundef %175, ptr noundef %176, ptr noundef %177, ptr noundef %178, i32 noundef 6, i32 noundef 2)
  store i32 %179, ptr %88, align 4, !tbaa !9
  %180 = load i32, ptr %88, align 4, !tbaa !9
  %181 = icmp sge i32 2, %180
  br i1 %181, label %182, label %183

182:                                              ; preds = %173
  br label %185

183:                                              ; preds = %173
  %184 = load i32, ptr %88, align 4, !tbaa !9
  br label %185

185:                                              ; preds = %183, %182
  %186 = phi i32 [ 2, %182 ], [ %184, %183 ]
  store i32 %186, ptr %88, align 4, !tbaa !9
  %187 = load ptr, ptr %21, align 8, !tbaa !5
  %188 = load i32, ptr %187, align 4, !tbaa !9
  %189 = load ptr, ptr %20, align 8, !tbaa !5
  %190 = load i32, ptr %189, align 4, !tbaa !9
  %191 = sub nsw i32 %188, %190
  %192 = add nsw i32 %191, 1
  store i32 %192, ptr %37, align 4, !tbaa !9
  %193 = load ptr, ptr %19, align 8, !tbaa !5
  %194 = load i32, ptr %193, align 4, !tbaa !9
  %195 = sub nsw i32 %194, 1
  %196 = sdiv i32 %195, 3
  store i32 %196, ptr %38, align 4, !tbaa !9
  %197 = load i32, ptr %37, align 4, !tbaa !9
  %198 = load i32, ptr %38, align 4, !tbaa !9
  %199 = icmp sle i32 %197, %198
  br i1 %199, label %200, label %202

200:                                              ; preds = %185
  %201 = load i32, ptr %37, align 4, !tbaa !9
  br label %204

202:                                              ; preds = %185
  %203 = load i32, ptr %38, align 4, !tbaa !9
  br label %204

204:                                              ; preds = %202, %200
  %205 = phi i32 [ %201, %200 ], [ %203, %202 ]
  store i32 %205, ptr %37, align 4, !tbaa !9
  %206 = load i32, ptr %37, align 4, !tbaa !9
  %207 = load i32, ptr %88, align 4, !tbaa !9
  %208 = icmp sle i32 %206, %207
  br i1 %208, label %209, label %211

209:                                              ; preds = %204
  %210 = load i32, ptr %37, align 4, !tbaa !9
  br label %213

211:                                              ; preds = %204
  %212 = load i32, ptr %88, align 4, !tbaa !9
  br label %213

213:                                              ; preds = %211, %209
  %214 = phi i32 [ %210, %209 ], [ %212, %211 ]
  store i32 %214, ptr %88, align 4, !tbaa !9
  %215 = getelementptr inbounds [2 x i8], ptr %78, i64 0, i64 0
  %216 = load ptr, ptr %19, align 8, !tbaa !5
  %217 = load ptr, ptr %20, align 8, !tbaa !5
  %218 = load ptr, ptr %21, align 8, !tbaa !5
  %219 = load ptr, ptr %31, align 8, !tbaa !5
  %220 = call i32 @ilaenv_(ptr noundef @c__15, ptr noundef @.str, ptr noundef %215, ptr noundef %216, ptr noundef %217, ptr noundef %218, ptr noundef %219, i32 noundef 6, i32 noundef 2)
  store i32 %220, ptr %87, align 4, !tbaa !9
  %221 = load i32, ptr %87, align 4, !tbaa !9
  store i32 %221, ptr %37, align 4, !tbaa !9
  %222 = load ptr, ptr %19, align 8, !tbaa !5
  %223 = load i32, ptr %222, align 4, !tbaa !9
  %224 = sub nsw i32 %223, 3
  %225 = sdiv i32 %224, 6
  store i32 %225, ptr %38, align 4, !tbaa !9
  %226 = load i32, ptr %37, align 4, !tbaa !9
  %227 = load i32, ptr %38, align 4, !tbaa !9
  %228 = icmp sle i32 %226, %227
  br i1 %228, label %229, label %231

229:                                              ; preds = %213
  %230 = load i32, ptr %37, align 4, !tbaa !9
  br label %233

231:                                              ; preds = %213
  %232 = load i32, ptr %38, align 4, !tbaa !9
  br label %233

233:                                              ; preds = %231, %229
  %234 = phi i32 [ %230, %229 ], [ %232, %231 ]
  store i32 %234, ptr %37, align 4, !tbaa !9
  %235 = load ptr, ptr %21, align 8, !tbaa !5
  %236 = load i32, ptr %235, align 4, !tbaa !9
  %237 = load ptr, ptr %20, align 8, !tbaa !5
  %238 = load i32, ptr %237, align 4, !tbaa !9
  %239 = sub nsw i32 %236, %238
  store i32 %239, ptr %38, align 4, !tbaa !9
  %240 = load i32, ptr %37, align 4, !tbaa !9
  %241 = load i32, ptr %38, align 4, !tbaa !9
  %242 = icmp sle i32 %240, %241
  br i1 %242, label %243, label %245

243:                                              ; preds = %233
  %244 = load i32, ptr %37, align 4, !tbaa !9
  br label %247

245:                                              ; preds = %233
  %246 = load i32, ptr %38, align 4, !tbaa !9
  br label %247

247:                                              ; preds = %245, %243
  %248 = phi i32 [ %244, %243 ], [ %246, %245 ]
  store i32 %248, ptr %87, align 4, !tbaa !9
  store i32 2, ptr %37, align 4, !tbaa !9
  %249 = load i32, ptr %87, align 4, !tbaa !9
  %250 = load i32, ptr %87, align 4, !tbaa !9
  %251 = srem i32 %250, 2
  %252 = sub nsw i32 %249, %251
  store i32 %252, ptr %38, align 4, !tbaa !9
  %253 = load i32, ptr %37, align 4, !tbaa !9
  %254 = load i32, ptr %38, align 4, !tbaa !9
  %255 = icmp sge i32 %253, %254
  br i1 %255, label %256, label %258

256:                                              ; preds = %247
  %257 = load i32, ptr %37, align 4, !tbaa !9
  br label %260

258:                                              ; preds = %247
  %259 = load i32, ptr %38, align 4, !tbaa !9
  br label %260

260:                                              ; preds = %258, %256
  %261 = phi i32 [ %257, %256 ], [ %259, %258 ]
  store i32 %261, ptr %87, align 4, !tbaa !9
  %262 = load i32, ptr %88, align 4, !tbaa !9
  %263 = add nsw i32 %262, 1
  store i32 %263, ptr %37, align 4, !tbaa !9
  %264 = load ptr, ptr %17, align 8, !tbaa !5
  %265 = load ptr, ptr %18, align 8, !tbaa !5
  %266 = load ptr, ptr %19, align 8, !tbaa !5
  %267 = load ptr, ptr %20, align 8, !tbaa !5
  %268 = load ptr, ptr %21, align 8, !tbaa !5
  %269 = load ptr, ptr %22, align 8, !tbaa !5
  %270 = load i32, ptr %34, align 4, !tbaa !9
  %271 = sext i32 %270 to i64
  %272 = getelementptr inbounds double, ptr %269, i64 %271
  %273 = load ptr, ptr %23, align 8, !tbaa !5
  %274 = load ptr, ptr %26, align 8, !tbaa !5
  %275 = load ptr, ptr %27, align 8, !tbaa !5
  %276 = load ptr, ptr %28, align 8, !tbaa !5
  %277 = load i32, ptr %36, align 4, !tbaa !9
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds double, ptr %276, i64 %278
  %280 = load ptr, ptr %29, align 8, !tbaa !5
  %281 = load ptr, ptr %24, align 8, !tbaa !5
  %282 = getelementptr inbounds double, ptr %281, i64 1
  %283 = load ptr, ptr %25, align 8, !tbaa !5
  %284 = getelementptr inbounds double, ptr %283, i64 1
  %285 = load ptr, ptr %22, align 8, !tbaa !5
  %286 = load i32, ptr %34, align 4, !tbaa !9
  %287 = sext i32 %286 to i64
  %288 = getelementptr inbounds double, ptr %285, i64 %287
  %289 = load ptr, ptr %23, align 8, !tbaa !5
  %290 = load ptr, ptr %19, align 8, !tbaa !5
  %291 = load ptr, ptr %22, align 8, !tbaa !5
  %292 = load i32, ptr %34, align 4, !tbaa !9
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds double, ptr %291, i64 %293
  %295 = load ptr, ptr %23, align 8, !tbaa !5
  %296 = load ptr, ptr %19, align 8, !tbaa !5
  %297 = load ptr, ptr %22, align 8, !tbaa !5
  %298 = load i32, ptr %34, align 4, !tbaa !9
  %299 = sext i32 %298 to i64
  %300 = getelementptr inbounds double, ptr %297, i64 %299
  %301 = load ptr, ptr %23, align 8, !tbaa !5
  %302 = load ptr, ptr %30, align 8, !tbaa !5
  %303 = getelementptr inbounds double, ptr %302, i64 1
  call void @dlaqr3_(ptr noundef %264, ptr noundef %265, ptr noundef %266, ptr noundef %267, ptr noundef %268, ptr noundef %37, ptr noundef %272, ptr noundef %273, ptr noundef %274, ptr noundef %275, ptr noundef %279, ptr noundef %280, ptr noundef %74, ptr noundef %64, ptr noundef %282, ptr noundef %284, ptr noundef %288, ptr noundef %289, ptr noundef %290, ptr noundef %294, ptr noundef %295, ptr noundef %296, ptr noundef %300, ptr noundef %301, ptr noundef %303, ptr noundef @c_n1)
  %304 = load i32, ptr %87, align 4, !tbaa !9
  %305 = mul nsw i32 %304, 3
  %306 = sdiv i32 %305, 2
  store i32 %306, ptr %37, align 4, !tbaa !9
  %307 = load ptr, ptr %30, align 8, !tbaa !5
  %308 = getelementptr inbounds double, ptr %307, i64 1
  %309 = load double, ptr %308, align 8, !tbaa !11
  %310 = fptosi double %309 to i32
  store i32 %310, ptr %38, align 4, !tbaa !9
  %311 = load i32, ptr %37, align 4, !tbaa !9
  %312 = load i32, ptr %38, align 4, !tbaa !9
  %313 = icmp sge i32 %311, %312
  br i1 %313, label %314, label %316

314:                                              ; preds = %260
  %315 = load i32, ptr %37, align 4, !tbaa !9
  br label %318

316:                                              ; preds = %260
  %317 = load i32, ptr %38, align 4, !tbaa !9
  br label %318

318:                                              ; preds = %316, %314
  %319 = phi i32 [ %315, %314 ], [ %317, %316 ]
  store i32 %319, ptr %81, align 4, !tbaa !9
  %320 = load ptr, ptr %31, align 8, !tbaa !5
  %321 = load i32, ptr %320, align 4, !tbaa !9
  %322 = icmp eq i32 %321, -1
  br i1 %322, label %323, label %328

323:                                              ; preds = %318
  %324 = load i32, ptr %81, align 4, !tbaa !9
  %325 = sitofp i32 %324 to double
  %326 = load ptr, ptr %30, align 8, !tbaa !5
  %327 = getelementptr inbounds double, ptr %326, i64 1
  store double %325, ptr %327, align 8, !tbaa !11
  store i32 1, ptr %90, align 4
  br label %1465

328:                                              ; preds = %318
  %329 = getelementptr inbounds [2 x i8], ptr %78, i64 0, i64 0
  %330 = load ptr, ptr %19, align 8, !tbaa !5
  %331 = load ptr, ptr %20, align 8, !tbaa !5
  %332 = load ptr, ptr %21, align 8, !tbaa !5
  %333 = load ptr, ptr %31, align 8, !tbaa !5
  %334 = call i32 @ilaenv_(ptr noundef @c__12, ptr noundef @.str, ptr noundef %329, ptr noundef %330, ptr noundef %331, ptr noundef %332, ptr noundef %333, i32 noundef 6, i32 noundef 2)
  store i32 %334, ptr %49, align 4, !tbaa !9
  %335 = load i32, ptr %49, align 4, !tbaa !9
  %336 = icmp sge i32 15, %335
  br i1 %336, label %337, label %338

337:                                              ; preds = %328
  br label %340

338:                                              ; preds = %328
  %339 = load i32, ptr %49, align 4, !tbaa !9
  br label %340

340:                                              ; preds = %338, %337
  %341 = phi i32 [ 15, %337 ], [ %339, %338 ]
  store i32 %341, ptr %49, align 4, !tbaa !9
  %342 = getelementptr inbounds [2 x i8], ptr %78, i64 0, i64 0
  %343 = load ptr, ptr %19, align 8, !tbaa !5
  %344 = load ptr, ptr %20, align 8, !tbaa !5
  %345 = load ptr, ptr %21, align 8, !tbaa !5
  %346 = load ptr, ptr %31, align 8, !tbaa !5
  %347 = call i32 @ilaenv_(ptr noundef @c__14, ptr noundef @.str, ptr noundef %342, ptr noundef %343, ptr noundef %344, ptr noundef %345, ptr noundef %346, i32 noundef 6, i32 noundef 2)
  store i32 %347, ptr %67, align 4, !tbaa !9
  %348 = load i32, ptr %67, align 4, !tbaa !9
  %349 = icmp sge i32 0, %348
  br i1 %349, label %350, label %351

350:                                              ; preds = %340
  br label %353

351:                                              ; preds = %340
  %352 = load i32, ptr %67, align 4, !tbaa !9
  br label %353

353:                                              ; preds = %351, %350
  %354 = phi i32 [ 0, %350 ], [ %352, %351 ]
  store i32 %354, ptr %67, align 4, !tbaa !9
  %355 = getelementptr inbounds [2 x i8], ptr %78, i64 0, i64 0
  %356 = load ptr, ptr %19, align 8, !tbaa !5
  %357 = load ptr, ptr %20, align 8, !tbaa !5
  %358 = load ptr, ptr %21, align 8, !tbaa !5
  %359 = load ptr, ptr %31, align 8, !tbaa !5
  %360 = call i32 @ilaenv_(ptr noundef @c__16, ptr noundef @.str, ptr noundef %355, ptr noundef %356, ptr noundef %357, ptr noundef %358, ptr noundef %359, i32 noundef 6, i32 noundef 2)
  store i32 %360, ptr %53, align 4, !tbaa !9
  %361 = load i32, ptr %53, align 4, !tbaa !9
  %362 = icmp sge i32 0, %361
  br i1 %362, label %363, label %364

363:                                              ; preds = %353
  br label %366

364:                                              ; preds = %353
  %365 = load i32, ptr %53, align 4, !tbaa !9
  br label %366

366:                                              ; preds = %364, %363
  %367 = phi i32 [ 0, %363 ], [ %365, %364 ]
  store i32 %367, ptr %53, align 4, !tbaa !9
  %368 = load i32, ptr %53, align 4, !tbaa !9
  %369 = icmp sle i32 2, %368
  br i1 %369, label %370, label %371

370:                                              ; preds = %366
  br label %373

371:                                              ; preds = %366
  %372 = load i32, ptr %53, align 4, !tbaa !9
  br label %373

373:                                              ; preds = %371, %370
  %374 = phi i32 [ 2, %370 ], [ %372, %371 ]
  store i32 %374, ptr %53, align 4, !tbaa !9
  %375 = load ptr, ptr %19, align 8, !tbaa !5
  %376 = load i32, ptr %375, align 4, !tbaa !9
  %377 = sub nsw i32 %376, 1
  %378 = sdiv i32 %377, 3
  store i32 %378, ptr %37, align 4, !tbaa !9
  %379 = load ptr, ptr %31, align 8, !tbaa !5
  %380 = load i32, ptr %379, align 4, !tbaa !9
  %381 = sdiv i32 %380, 2
  store i32 %381, ptr %38, align 4, !tbaa !9
  %382 = load i32, ptr %37, align 4, !tbaa !9
  %383 = load i32, ptr %38, align 4, !tbaa !9
  %384 = icmp sle i32 %382, %383
  br i1 %384, label %385, label %387

385:                                              ; preds = %373
  %386 = load i32, ptr %37, align 4, !tbaa !9
  br label %389

387:                                              ; preds = %373
  %388 = load i32, ptr %38, align 4, !tbaa !9
  br label %389

389:                                              ; preds = %387, %385
  %390 = phi i32 [ %386, %385 ], [ %388, %387 ]
  store i32 %390, ptr %58, align 4, !tbaa !9
  %391 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %391, ptr %77, align 4, !tbaa !9
  %392 = load ptr, ptr %19, align 8, !tbaa !5
  %393 = load i32, ptr %392, align 4, !tbaa !9
  %394 = sub nsw i32 %393, 3
  %395 = sdiv i32 %394, 6
  store i32 %395, ptr %37, align 4, !tbaa !9
  %396 = load ptr, ptr %31, align 8, !tbaa !5
  %397 = load i32, ptr %396, align 4, !tbaa !9
  %398 = shl i32 %397, 1
  %399 = sdiv i32 %398, 3
  store i32 %399, ptr %38, align 4, !tbaa !9
  %400 = load i32, ptr %37, align 4, !tbaa !9
  %401 = load i32, ptr %38, align 4, !tbaa !9
  %402 = icmp sle i32 %400, %401
  br i1 %402, label %403, label %405

403:                                              ; preds = %389
  %404 = load i32, ptr %37, align 4, !tbaa !9
  br label %407

405:                                              ; preds = %389
  %406 = load i32, ptr %38, align 4, !tbaa !9
  br label %407

407:                                              ; preds = %405, %403
  %408 = phi i32 [ %404, %403 ], [ %406, %405 ]
  store i32 %408, ptr %57, align 4, !tbaa !9
  %409 = load i32, ptr %57, align 4, !tbaa !9
  %410 = srem i32 %409, 2
  %411 = load i32, ptr %57, align 4, !tbaa !9
  %412 = sub nsw i32 %411, %410
  store i32 %412, ptr %57, align 4, !tbaa !9
  store i32 1, ptr %47, align 4, !tbaa !9
  store i32 10, ptr %37, align 4, !tbaa !9
  %413 = load ptr, ptr %21, align 8, !tbaa !5
  %414 = load i32, ptr %413, align 4, !tbaa !9
  %415 = load ptr, ptr %20, align 8, !tbaa !5
  %416 = load i32, ptr %415, align 4, !tbaa !9
  %417 = sub nsw i32 %414, %416
  %418 = add nsw i32 %417, 1
  store i32 %418, ptr %38, align 4, !tbaa !9
  %419 = load i32, ptr %37, align 4, !tbaa !9
  %420 = load i32, ptr %38, align 4, !tbaa !9
  %421 = icmp sge i32 %419, %420
  br i1 %421, label %422, label %424

422:                                              ; preds = %407
  %423 = load i32, ptr %37, align 4, !tbaa !9
  br label %426

424:                                              ; preds = %407
  %425 = load i32, ptr %38, align 4, !tbaa !9
  br label %426

426:                                              ; preds = %424, %422
  %427 = phi i32 [ %423, %422 ], [ %425, %424 ]
  %428 = mul nsw i32 30, %427
  store i32 %428, ptr %56, align 4, !tbaa !9
  %429 = load ptr, ptr %21, align 8, !tbaa !5
  %430 = load i32, ptr %429, align 4, !tbaa !9
  store i32 %430, ptr %48, align 4, !tbaa !9
  %431 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %431, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %432

432:                                              ; preds = %1453, %426
  %433 = load i32, ptr %68, align 4, !tbaa !9
  %434 = load i32, ptr %37, align 4, !tbaa !9
  %435 = icmp sle i32 %433, %434
  br i1 %435, label %436, label %1456

436:                                              ; preds = %432
  %437 = load i32, ptr %48, align 4, !tbaa !9
  %438 = load ptr, ptr %20, align 8, !tbaa !5
  %439 = load i32, ptr %438, align 4, !tbaa !9
  %440 = icmp slt i32 %437, %439
  br i1 %440, label %441, label %442

441:                                              ; preds = %436
  br label %1459

442:                                              ; preds = %436
  %443 = load ptr, ptr %20, align 8, !tbaa !5
  %444 = load i32, ptr %443, align 4, !tbaa !9
  %445 = add nsw i32 %444, 1
  store i32 %445, ptr %38, align 4, !tbaa !9
  %446 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %446, ptr %55, align 4, !tbaa !9
  br label %447

447:                                              ; preds = %465, %442
  %448 = load i32, ptr %55, align 4, !tbaa !9
  %449 = load i32, ptr %38, align 4, !tbaa !9
  %450 = icmp sge i32 %448, %449
  br i1 %450, label %451, label %468

451:                                              ; preds = %447
  %452 = load ptr, ptr %22, align 8, !tbaa !5
  %453 = load i32, ptr %55, align 4, !tbaa !9
  %454 = load i32, ptr %55, align 4, !tbaa !9
  %455 = sub nsw i32 %454, 1
  %456 = load i32, ptr %33, align 4, !tbaa !9
  %457 = mul nsw i32 %455, %456
  %458 = add nsw i32 %453, %457
  %459 = sext i32 %458 to i64
  %460 = getelementptr inbounds double, ptr %452, i64 %459
  %461 = load double, ptr %460, align 8, !tbaa !11
  %462 = fcmp oeq double %461, 0.000000e+00
  br i1 %462, label %463, label %464

463:                                              ; preds = %451
  br label %471

464:                                              ; preds = %451
  br label %465

465:                                              ; preds = %464
  %466 = load i32, ptr %55, align 4, !tbaa !9
  %467 = add nsw i32 %466, -1
  store i32 %467, ptr %55, align 4, !tbaa !9
  br label %447, !llvm.loop !14

468:                                              ; preds = %447
  %469 = load ptr, ptr %20, align 8, !tbaa !5
  %470 = load i32, ptr %469, align 4, !tbaa !9
  store i32 %470, ptr %55, align 4, !tbaa !9
  br label %471

471:                                              ; preds = %468, %463
  %472 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %472, ptr %51, align 4, !tbaa !9
  %473 = load i32, ptr %48, align 4, !tbaa !9
  %474 = load i32, ptr %51, align 4, !tbaa !9
  %475 = sub nsw i32 %473, %474
  %476 = add nsw i32 %475, 1
  store i32 %476, ptr %66, align 4, !tbaa !9
  %477 = load i32, ptr %66, align 4, !tbaa !9
  %478 = load i32, ptr %58, align 4, !tbaa !9
  %479 = icmp sle i32 %477, %478
  br i1 %479, label %480, label %482

480:                                              ; preds = %471
  %481 = load i32, ptr %66, align 4, !tbaa !9
  br label %484

482:                                              ; preds = %471
  %483 = load i32, ptr %58, align 4, !tbaa !9
  br label %484

484:                                              ; preds = %482, %480
  %485 = phi i32 [ %481, %480 ], [ %483, %482 ]
  store i32 %485, ptr %79, align 4, !tbaa !9
  %486 = load i32, ptr %47, align 4, !tbaa !9
  %487 = icmp slt i32 %486, 5
  br i1 %487, label %488, label %498

488:                                              ; preds = %484
  %489 = load i32, ptr %79, align 4, !tbaa !9
  %490 = load i32, ptr %88, align 4, !tbaa !9
  %491 = icmp sle i32 %489, %490
  br i1 %491, label %492, label %494

492:                                              ; preds = %488
  %493 = load i32, ptr %79, align 4, !tbaa !9
  br label %496

494:                                              ; preds = %488
  %495 = load i32, ptr %88, align 4, !tbaa !9
  br label %496

496:                                              ; preds = %494, %492
  %497 = phi i32 [ %493, %492 ], [ %495, %494 ]
  store i32 %497, ptr %77, align 4, !tbaa !9
  br label %511

498:                                              ; preds = %484
  %499 = load i32, ptr %79, align 4, !tbaa !9
  store i32 %499, ptr %38, align 4, !tbaa !9
  %500 = load i32, ptr %77, align 4, !tbaa !9
  %501 = shl i32 %500, 1
  store i32 %501, ptr %39, align 4, !tbaa !9
  %502 = load i32, ptr %38, align 4, !tbaa !9
  %503 = load i32, ptr %39, align 4, !tbaa !9
  %504 = icmp sle i32 %502, %503
  br i1 %504, label %505, label %507

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

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

509:                                              ; preds = %507, %505
  %510 = phi i32 [ %506, %505 ], [ %508, %507 ]
  store i32 %510, ptr %77, align 4, !tbaa !9
  br label %511

511:                                              ; preds = %509, %496
  %512 = load i32, ptr %77, align 4, !tbaa !9
  %513 = load i32, ptr %58, align 4, !tbaa !9
  %514 = icmp slt i32 %512, %513
  br i1 %514, label %515, label %572

515:                                              ; preds = %511
  %516 = load i32, ptr %77, align 4, !tbaa !9
  %517 = load i32, ptr %66, align 4, !tbaa !9
  %518 = sub nsw i32 %517, 1
  %519 = icmp sge i32 %516, %518
  br i1 %519, label %520, label %522

520:                                              ; preds = %515
  %521 = load i32, ptr %66, align 4, !tbaa !9
  store i32 %521, ptr %77, align 4, !tbaa !9
  br label %571

522:                                              ; preds = %515
  %523 = load i32, ptr %48, align 4, !tbaa !9
  %524 = load i32, ptr %77, align 4, !tbaa !9
  %525 = sub nsw i32 %523, %524
  %526 = add nsw i32 %525, 1
  store i32 %526, ptr %59, align 4, !tbaa !9
  %527 = load ptr, ptr %22, align 8, !tbaa !5
  %528 = load i32, ptr %59, align 4, !tbaa !9
  %529 = load i32, ptr %59, align 4, !tbaa !9
  %530 = sub nsw i32 %529, 1
  %531 = load i32, ptr %33, align 4, !tbaa !9
  %532 = mul nsw i32 %530, %531
  %533 = add nsw i32 %528, %532
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds double, ptr %527, i64 %534
  %536 = load double, ptr %535, align 8, !tbaa !11
  store double %536, ptr %42, align 8, !tbaa !11
  %537 = load double, ptr %42, align 8, !tbaa !11
  %538 = fcmp oge double %537, 0.000000e+00
  br i1 %538, label %539, label %541

539:                                              ; preds = %522
  %540 = load double, ptr %42, align 8, !tbaa !11
  br label %544

541:                                              ; preds = %522
  %542 = load double, ptr %42, align 8, !tbaa !11
  %543 = fneg double %542
  br label %544

544:                                              ; preds = %541, %539
  %545 = phi double [ %540, %539 ], [ %543, %541 ]
  %546 = load ptr, ptr %22, align 8, !tbaa !5
  %547 = load i32, ptr %59, align 4, !tbaa !9
  %548 = sub nsw i32 %547, 1
  %549 = load i32, ptr %59, align 4, !tbaa !9
  %550 = sub nsw i32 %549, 2
  %551 = load i32, ptr %33, align 4, !tbaa !9
  %552 = mul nsw i32 %550, %551
  %553 = add nsw i32 %548, %552
  %554 = sext i32 %553 to i64
  %555 = getelementptr inbounds double, ptr %546, i64 %554
  %556 = load double, ptr %555, align 8, !tbaa !11
  store double %556, ptr %43, align 8, !tbaa !11
  %557 = load double, ptr %43, align 8, !tbaa !11
  %558 = fcmp oge double %557, 0.000000e+00
  br i1 %558, label %559, label %561

559:                                              ; preds = %544
  %560 = load double, ptr %43, align 8, !tbaa !11
  br label %564

561:                                              ; preds = %544
  %562 = load double, ptr %43, align 8, !tbaa !11
  %563 = fneg double %562
  br label %564

564:                                              ; preds = %561, %559
  %565 = phi double [ %560, %559 ], [ %563, %561 ]
  %566 = fcmp ogt double %545, %565
  br i1 %566, label %567, label %570

567:                                              ; preds = %564
  %568 = load i32, ptr %77, align 4, !tbaa !9
  %569 = add nsw i32 %568, 1
  store i32 %569, ptr %77, align 4, !tbaa !9
  br label %570

570:                                              ; preds = %567, %564
  br label %571

571:                                              ; preds = %570, %520
  br label %572

572:                                              ; preds = %571, %511
  %573 = load i32, ptr %47, align 4, !tbaa !9
  %574 = icmp slt i32 %573, 5
  br i1 %574, label %575, label %576

575:                                              ; preds = %572
  store i32 -1, ptr %46, align 4, !tbaa !9
  br label %596

576:                                              ; preds = %572
  %577 = load i32, ptr %46, align 4, !tbaa !9
  %578 = icmp sge i32 %577, 0
  br i1 %578, label %583, label %579

579:                                              ; preds = %576
  %580 = load i32, ptr %77, align 4, !tbaa !9
  %581 = load i32, ptr %79, align 4, !tbaa !9
  %582 = icmp sge i32 %580, %581
  br i1 %582, label %583, label %595

583:                                              ; preds = %579, %576
  %584 = load i32, ptr %46, align 4, !tbaa !9
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr %46, align 4, !tbaa !9
  %586 = load i32, ptr %77, align 4, !tbaa !9
  %587 = load i32, ptr %46, align 4, !tbaa !9
  %588 = sub nsw i32 %586, %587
  %589 = icmp slt i32 %588, 2
  br i1 %589, label %590, label %591

590:                                              ; preds = %583
  store i32 0, ptr %46, align 4, !tbaa !9
  br label %591

591:                                              ; preds = %590, %583
  %592 = load i32, ptr %46, align 4, !tbaa !9
  %593 = load i32, ptr %77, align 4, !tbaa !9
  %594 = sub nsw i32 %593, %592
  store i32 %594, ptr %77, align 4, !tbaa !9
  br label %595

595:                                              ; preds = %591, %579
  br label %596

596:                                              ; preds = %595, %575
  %597 = load ptr, ptr %19, align 8, !tbaa !5
  %598 = load i32, ptr %597, align 4, !tbaa !9
  %599 = load i32, ptr %77, align 4, !tbaa !9
  %600 = sub nsw i32 %598, %599
  %601 = add nsw i32 %600, 1
  store i32 %601, ptr %73, align 4, !tbaa !9
  %602 = load i32, ptr %77, align 4, !tbaa !9
  %603 = add nsw i32 %602, 1
  store i32 %603, ptr %70, align 4, !tbaa !9
  %604 = load ptr, ptr %19, align 8, !tbaa !5
  %605 = load i32, ptr %604, align 4, !tbaa !9
  %606 = load i32, ptr %77, align 4, !tbaa !9
  %607 = sub nsw i32 %605, %606
  %608 = sub nsw i32 %607, 1
  %609 = load i32, ptr %70, align 4, !tbaa !9
  %610 = sub nsw i32 %608, %609
  %611 = add nsw i32 %610, 1
  store i32 %611, ptr %84, align 4, !tbaa !9
  %612 = load i32, ptr %77, align 4, !tbaa !9
  %613 = add nsw i32 %612, 2
  store i32 %613, ptr %89, align 4, !tbaa !9
  %614 = load ptr, ptr %19, align 8, !tbaa !5
  %615 = load i32, ptr %614, align 4, !tbaa !9
  %616 = load i32, ptr %77, align 4, !tbaa !9
  %617 = sub nsw i32 %615, %616
  %618 = load i32, ptr %89, align 4, !tbaa !9
  %619 = sub nsw i32 %617, %618
  %620 = add nsw i32 %619, 1
  store i32 %620, ptr %85, align 4, !tbaa !9
  %621 = load ptr, ptr %17, align 8, !tbaa !5
  %622 = load ptr, ptr %18, align 8, !tbaa !5
  %623 = load ptr, ptr %19, align 8, !tbaa !5
  %624 = load ptr, ptr %22, align 8, !tbaa !5
  %625 = load i32, ptr %34, align 4, !tbaa !9
  %626 = sext i32 %625 to i64
  %627 = getelementptr inbounds double, ptr %624, i64 %626
  %628 = load ptr, ptr %23, align 8, !tbaa !5
  %629 = load ptr, ptr %26, align 8, !tbaa !5
  %630 = load ptr, ptr %27, align 8, !tbaa !5
  %631 = load ptr, ptr %28, align 8, !tbaa !5
  %632 = load i32, ptr %36, align 4, !tbaa !9
  %633 = sext i32 %632 to i64
  %634 = getelementptr inbounds double, ptr %631, i64 %633
  %635 = load ptr, ptr %29, align 8, !tbaa !5
  %636 = load ptr, ptr %24, align 8, !tbaa !5
  %637 = getelementptr inbounds double, ptr %636, i64 1
  %638 = load ptr, ptr %25, align 8, !tbaa !5
  %639 = getelementptr inbounds double, ptr %638, i64 1
  %640 = load ptr, ptr %22, align 8, !tbaa !5
  %641 = load i32, ptr %73, align 4, !tbaa !9
  %642 = load i32, ptr %33, align 4, !tbaa !9
  %643 = add nsw i32 %641, %642
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds double, ptr %640, i64 %644
  %646 = load ptr, ptr %23, align 8, !tbaa !5
  %647 = load ptr, ptr %22, align 8, !tbaa !5
  %648 = load i32, ptr %73, align 4, !tbaa !9
  %649 = load i32, ptr %70, align 4, !tbaa !9
  %650 = load i32, ptr %33, align 4, !tbaa !9
  %651 = mul nsw i32 %649, %650
  %652 = add nsw i32 %648, %651
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds double, ptr %647, i64 %653
  %655 = load ptr, ptr %23, align 8, !tbaa !5
  %656 = load ptr, ptr %22, align 8, !tbaa !5
  %657 = load i32, ptr %89, align 4, !tbaa !9
  %658 = load i32, ptr %33, align 4, !tbaa !9
  %659 = add nsw i32 %657, %658
  %660 = sext i32 %659 to i64
  %661 = getelementptr inbounds double, ptr %656, i64 %660
  %662 = load ptr, ptr %23, align 8, !tbaa !5
  %663 = load ptr, ptr %30, align 8, !tbaa !5
  %664 = getelementptr inbounds double, ptr %663, i64 1
  %665 = load ptr, ptr %31, align 8, !tbaa !5
  call void @dlaqr3_(ptr noundef %621, ptr noundef %622, ptr noundef %623, ptr noundef %51, ptr noundef %48, ptr noundef %77, ptr noundef %627, ptr noundef %628, ptr noundef %629, ptr noundef %630, ptr noundef %634, ptr noundef %635, ptr noundef %74, ptr noundef %64, ptr noundef %637, ptr noundef %639, ptr noundef %645, ptr noundef %646, ptr noundef %84, ptr noundef %654, ptr noundef %655, ptr noundef %85, ptr noundef %661, ptr noundef %662, ptr noundef %664, ptr noundef %665)
  %666 = load i32, ptr %64, align 4, !tbaa !9
  %667 = load i32, ptr %48, align 4, !tbaa !9
  %668 = sub nsw i32 %667, %666
  store i32 %668, ptr %48, align 4, !tbaa !9
  %669 = load i32, ptr %48, align 4, !tbaa !9
  %670 = load i32, ptr %74, align 4, !tbaa !9
  %671 = sub nsw i32 %669, %670
  %672 = add nsw i32 %671, 1
  store i32 %672, ptr %69, align 4, !tbaa !9
  %673 = load i32, ptr %64, align 4, !tbaa !9
  %674 = icmp eq i32 %673, 0
  br i1 %674, label %697, label %675

675:                                              ; preds = %596
  %676 = load i32, ptr %64, align 4, !tbaa !9
  %677 = mul nsw i32 %676, 100
  %678 = load i32, ptr %77, align 4, !tbaa !9
  %679 = load i32, ptr %67, align 4, !tbaa !9
  %680 = mul nsw i32 %678, %679
  %681 = icmp sle i32 %677, %680
  br i1 %681, label %682, label %1445

682:                                              ; preds = %675
  %683 = load i32, ptr %48, align 4, !tbaa !9
  %684 = load i32, ptr %51, align 4, !tbaa !9
  %685 = sub nsw i32 %683, %684
  %686 = add nsw i32 %685, 1
  %687 = load i32, ptr %49, align 4, !tbaa !9
  %688 = load i32, ptr %58, align 4, !tbaa !9
  %689 = icmp sle i32 %687, %688
  br i1 %689, label %690, label %692

690:                                              ; preds = %682
  %691 = load i32, ptr %49, align 4, !tbaa !9
  br label %694

692:                                              ; preds = %682
  %693 = load i32, ptr %58, align 4, !tbaa !9
  br label %694

694:                                              ; preds = %692, %690
  %695 = phi i32 [ %691, %690 ], [ %693, %692 ]
  %696 = icmp sgt i32 %686, %695
  br i1 %696, label %697, label %1445

697:                                              ; preds = %694, %596
  store i32 2, ptr %40, align 4, !tbaa !9
  %698 = load i32, ptr %48, align 4, !tbaa !9
  %699 = load i32, ptr %51, align 4, !tbaa !9
  %700 = sub nsw i32 %698, %699
  store i32 %700, ptr %41, align 4, !tbaa !9
  %701 = load i32, ptr %57, align 4, !tbaa !9
  %702 = load i32, ptr %87, align 4, !tbaa !9
  %703 = icmp sle i32 %701, %702
  br i1 %703, label %704, label %706

704:                                              ; preds = %697
  %705 = load i32, ptr %57, align 4, !tbaa !9
  br label %708

706:                                              ; preds = %697
  %707 = load i32, ptr %87, align 4, !tbaa !9
  br label %708

708:                                              ; preds = %706, %704
  %709 = phi i32 [ %705, %704 ], [ %707, %706 ]
  store i32 %709, ptr %38, align 4, !tbaa !9
  %710 = load i32, ptr %40, align 4, !tbaa !9
  %711 = load i32, ptr %41, align 4, !tbaa !9
  %712 = icmp sge i32 %710, %711
  br i1 %712, label %713, label %715

713:                                              ; preds = %708
  %714 = load i32, ptr %40, align 4, !tbaa !9
  br label %717

715:                                              ; preds = %708
  %716 = load i32, ptr %41, align 4, !tbaa !9
  br label %717

717:                                              ; preds = %715, %713
  %718 = phi i32 [ %714, %713 ], [ %716, %715 ]
  store i32 %718, ptr %39, align 4, !tbaa !9
  %719 = load i32, ptr %38, align 4, !tbaa !9
  %720 = load i32, ptr %39, align 4, !tbaa !9
  %721 = icmp sle i32 %719, %720
  br i1 %721, label %722, label %724

722:                                              ; preds = %717
  %723 = load i32, ptr %38, align 4, !tbaa !9
  br label %726

724:                                              ; preds = %717
  %725 = load i32, ptr %39, align 4, !tbaa !9
  br label %726

726:                                              ; preds = %724, %722
  %727 = phi i32 [ %723, %722 ], [ %725, %724 ]
  store i32 %727, ptr %75, align 4, !tbaa !9
  %728 = load i32, ptr %75, align 4, !tbaa !9
  %729 = srem i32 %728, 2
  %730 = load i32, ptr %75, align 4, !tbaa !9
  %731 = sub nsw i32 %730, %729
  store i32 %731, ptr %75, align 4, !tbaa !9
  %732 = load i32, ptr %47, align 4, !tbaa !9
  %733 = srem i32 %732, 6
  %734 = icmp eq i32 %733, 0
  br i1 %734, label %735, label %882

735:                                              ; preds = %726
  %736 = load i32, ptr %48, align 4, !tbaa !9
  %737 = load i32, ptr %75, align 4, !tbaa !9
  %738 = sub nsw i32 %736, %737
  %739 = add nsw i32 %738, 1
  store i32 %739, ptr %69, align 4, !tbaa !9
  %740 = load i32, ptr %69, align 4, !tbaa !9
  %741 = add nsw i32 %740, 1
  store i32 %741, ptr %39, align 4, !tbaa !9
  %742 = load i32, ptr %51, align 4, !tbaa !9
  %743 = add nsw i32 %742, 2
  store i32 %743, ptr %40, align 4, !tbaa !9
  %744 = load i32, ptr %39, align 4, !tbaa !9
  %745 = load i32, ptr %40, align 4, !tbaa !9
  %746 = icmp sge i32 %744, %745
  br i1 %746, label %747, label %749

747:                                              ; preds = %735
  %748 = load i32, ptr %39, align 4, !tbaa !9
  br label %751

749:                                              ; preds = %735
  %750 = load i32, ptr %40, align 4, !tbaa !9
  br label %751

751:                                              ; preds = %749, %747
  %752 = phi i32 [ %748, %747 ], [ %750, %749 ]
  store i32 %752, ptr %38, align 4, !tbaa !9
  %753 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %753, ptr %54, align 4, !tbaa !9
  br label %754

754:                                              ; preds = %832, %751
  %755 = load i32, ptr %54, align 4, !tbaa !9
  %756 = load i32, ptr %38, align 4, !tbaa !9
  %757 = icmp sge i32 %755, %756
  br i1 %757, label %758, label %835

758:                                              ; preds = %754
  %759 = load ptr, ptr %22, align 8, !tbaa !5
  %760 = load i32, ptr %54, align 4, !tbaa !9
  %761 = load i32, ptr %54, align 4, !tbaa !9
  %762 = sub nsw i32 %761, 1
  %763 = load i32, ptr %33, align 4, !tbaa !9
  %764 = mul nsw i32 %762, %763
  %765 = add nsw i32 %760, %764
  %766 = sext i32 %765 to i64
  %767 = getelementptr inbounds double, ptr %759, i64 %766
  %768 = load double, ptr %767, align 8, !tbaa !11
  store double %768, ptr %42, align 8, !tbaa !11
  %769 = load double, ptr %42, align 8, !tbaa !11
  %770 = fcmp oge double %769, 0.000000e+00
  br i1 %770, label %771, label %773

771:                                              ; preds = %758
  %772 = load double, ptr %42, align 8, !tbaa !11
  br label %776

773:                                              ; preds = %758
  %774 = load double, ptr %42, align 8, !tbaa !11
  %775 = fneg double %774
  br label %776

776:                                              ; preds = %773, %771
  %777 = phi double [ %772, %771 ], [ %775, %773 ]
  %778 = load ptr, ptr %22, align 8, !tbaa !5
  %779 = load i32, ptr %54, align 4, !tbaa !9
  %780 = sub nsw i32 %779, 1
  %781 = load i32, ptr %54, align 4, !tbaa !9
  %782 = sub nsw i32 %781, 2
  %783 = load i32, ptr %33, align 4, !tbaa !9
  %784 = mul nsw i32 %782, %783
  %785 = add nsw i32 %780, %784
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds double, ptr %778, i64 %786
  %788 = load double, ptr %787, align 8, !tbaa !11
  store double %788, ptr %43, align 8, !tbaa !11
  %789 = load double, ptr %43, align 8, !tbaa !11
  %790 = fcmp oge double %789, 0.000000e+00
  br i1 %790, label %791, label %793

791:                                              ; preds = %776
  %792 = load double, ptr %43, align 8, !tbaa !11
  br label %796

793:                                              ; preds = %776
  %794 = load double, ptr %43, align 8, !tbaa !11
  %795 = fneg double %794
  br label %796

796:                                              ; preds = %793, %791
  %797 = phi double [ %792, %791 ], [ %795, %793 ]
  %798 = fadd double %777, %797
  store double %798, ptr %76, align 8, !tbaa !11
  %799 = load double, ptr %76, align 8, !tbaa !11
  %800 = load ptr, ptr %22, align 8, !tbaa !5
  %801 = load i32, ptr %54, align 4, !tbaa !9
  %802 = load i32, ptr %54, align 4, !tbaa !9
  %803 = load i32, ptr %33, align 4, !tbaa !9
  %804 = mul nsw i32 %802, %803
  %805 = add nsw i32 %801, %804
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds double, ptr %800, i64 %806
  %808 = load double, ptr %807, align 8, !tbaa !11
  %809 = call double @llvm.fmuladd.f64(double %799, double 7.500000e-01, double %808)
  store double %809, ptr %60, align 8, !tbaa !11
  %810 = load double, ptr %76, align 8, !tbaa !11
  store double %810, ptr %61, align 8, !tbaa !11
  %811 = load double, ptr %76, align 8, !tbaa !11
  %812 = fmul double %811, -4.375000e-01
  store double %812, ptr %62, align 8, !tbaa !11
  %813 = load double, ptr %60, align 8, !tbaa !11
  store double %813, ptr %63, align 8, !tbaa !11
  %814 = load ptr, ptr %24, align 8, !tbaa !5
  %815 = load i32, ptr %54, align 4, !tbaa !9
  %816 = sub nsw i32 %815, 1
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds double, ptr %814, i64 %817
  %819 = load ptr, ptr %25, align 8, !tbaa !5
  %820 = load i32, ptr %54, align 4, !tbaa !9
  %821 = sub nsw i32 %820, 1
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds double, ptr %819, i64 %822
  %824 = load ptr, ptr %24, align 8, !tbaa !5
  %825 = load i32, ptr %54, align 4, !tbaa !9
  %826 = sext i32 %825 to i64
  %827 = getelementptr inbounds double, ptr %824, i64 %826
  %828 = load ptr, ptr %25, align 8, !tbaa !5
  %829 = load i32, ptr %54, align 4, !tbaa !9
  %830 = sext i32 %829 to i64
  %831 = getelementptr inbounds double, ptr %828, i64 %830
  call void @dlanv2_(ptr noundef %60, ptr noundef %61, ptr noundef %62, ptr noundef %63, ptr noundef %818, ptr noundef %823, ptr noundef %827, ptr noundef %831, ptr noundef %65, ptr noundef %71)
  br label %832

832:                                              ; preds = %796
  %833 = load i32, ptr %54, align 4, !tbaa !9
  %834 = add nsw i32 %833, -2
  store i32 %834, ptr %54, align 4, !tbaa !9
  br label %754, !llvm.loop !16

835:                                              ; preds = %754
  %836 = load i32, ptr %69, align 4, !tbaa !9
  %837 = load i32, ptr %51, align 4, !tbaa !9
  %838 = icmp eq i32 %836, %837
  br i1 %838, label %839, label %881

839:                                              ; preds = %835
  %840 = load ptr, ptr %22, align 8, !tbaa !5
  %841 = load i32, ptr %69, align 4, !tbaa !9
  %842 = add nsw i32 %841, 1
  %843 = load i32, ptr %69, align 4, !tbaa !9
  %844 = add nsw i32 %843, 1
  %845 = load i32, ptr %33, align 4, !tbaa !9
  %846 = mul nsw i32 %844, %845
  %847 = add nsw i32 %842, %846
  %848 = sext i32 %847 to i64
  %849 = getelementptr inbounds double, ptr %840, i64 %848
  %850 = load double, ptr %849, align 8, !tbaa !11
  %851 = load ptr, ptr %24, align 8, !tbaa !5
  %852 = load i32, ptr %69, align 4, !tbaa !9
  %853 = add nsw i32 %852, 1
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds double, ptr %851, i64 %854
  store double %850, ptr %855, align 8, !tbaa !11
  %856 = load ptr, ptr %25, align 8, !tbaa !5
  %857 = load i32, ptr %69, align 4, !tbaa !9
  %858 = add nsw i32 %857, 1
  %859 = sext i32 %858 to i64
  %860 = getelementptr inbounds double, ptr %856, i64 %859
  store double 0.000000e+00, ptr %860, align 8, !tbaa !11
  %861 = load ptr, ptr %24, align 8, !tbaa !5
  %862 = load i32, ptr %69, align 4, !tbaa !9
  %863 = add nsw i32 %862, 1
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds double, ptr %861, i64 %864
  %866 = load double, ptr %865, align 8, !tbaa !11
  %867 = load ptr, ptr %24, align 8, !tbaa !5
  %868 = load i32, ptr %69, align 4, !tbaa !9
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds double, ptr %867, i64 %869
  store double %866, ptr %870, align 8, !tbaa !11
  %871 = load ptr, ptr %25, align 8, !tbaa !5
  %872 = load i32, ptr %69, align 4, !tbaa !9
  %873 = add nsw i32 %872, 1
  %874 = sext i32 %873 to i64
  %875 = getelementptr inbounds double, ptr %871, i64 %874
  %876 = load double, ptr %875, align 8, !tbaa !11
  %877 = load ptr, ptr %25, align 8, !tbaa !5
  %878 = load i32, ptr %69, align 4, !tbaa !9
  %879 = sext i32 %878 to i64
  %880 = getelementptr inbounds double, ptr %877, i64 %879
  store double %876, ptr %880, align 8, !tbaa !11
  br label %881

881:                                              ; preds = %839, %835
  br label %1259

882:                                              ; preds = %726
  %883 = load i32, ptr %48, align 4, !tbaa !9
  %884 = load i32, ptr %69, align 4, !tbaa !9
  %885 = sub nsw i32 %883, %884
  %886 = add nsw i32 %885, 1
  %887 = load i32, ptr %75, align 4, !tbaa !9
  %888 = sdiv i32 %887, 2
  %889 = icmp sle i32 %886, %888
  br i1 %889, label %890, label %1025

890:                                              ; preds = %882
  %891 = load i32, ptr %48, align 4, !tbaa !9
  %892 = load i32, ptr %75, align 4, !tbaa !9
  %893 = sub nsw i32 %891, %892
  %894 = add nsw i32 %893, 1
  store i32 %894, ptr %69, align 4, !tbaa !9
  %895 = load ptr, ptr %19, align 8, !tbaa !5
  %896 = load i32, ptr %895, align 4, !tbaa !9
  %897 = load i32, ptr %75, align 4, !tbaa !9
  %898 = sub nsw i32 %896, %897
  %899 = add nsw i32 %898, 1
  store i32 %899, ptr %70, align 4, !tbaa !9
  %900 = load ptr, ptr %22, align 8, !tbaa !5
  %901 = load i32, ptr %69, align 4, !tbaa !9
  %902 = load i32, ptr %69, align 4, !tbaa !9
  %903 = load i32, ptr %33, align 4, !tbaa !9
  %904 = mul nsw i32 %902, %903
  %905 = add nsw i32 %901, %904
  %906 = sext i32 %905 to i64
  %907 = getelementptr inbounds double, ptr %900, i64 %906
  %908 = load ptr, ptr %23, align 8, !tbaa !5
  %909 = load ptr, ptr %22, align 8, !tbaa !5
  %910 = load i32, ptr %70, align 4, !tbaa !9
  %911 = load i32, ptr %33, align 4, !tbaa !9
  %912 = add nsw i32 %910, %911
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds double, ptr %909, i64 %913
  %915 = load ptr, ptr %23, align 8, !tbaa !5
  call void @dlacpy_(ptr noundef @.str.1, ptr noundef %75, ptr noundef %75, ptr noundef %907, ptr noundef %908, ptr noundef %914, ptr noundef %915)
  %916 = load i32, ptr %75, align 4, !tbaa !9
  %917 = load i32, ptr %49, align 4, !tbaa !9
  %918 = icmp sgt i32 %916, %917
  br i1 %918, label %919, label %939

919:                                              ; preds = %890
  %920 = load ptr, ptr %22, align 8, !tbaa !5
  %921 = load i32, ptr %70, align 4, !tbaa !9
  %922 = load i32, ptr %33, align 4, !tbaa !9
  %923 = add nsw i32 %921, %922
  %924 = sext i32 %923 to i64
  %925 = getelementptr inbounds double, ptr %920, i64 %924
  %926 = load ptr, ptr %23, align 8, !tbaa !5
  %927 = load ptr, ptr %24, align 8, !tbaa !5
  %928 = load i32, ptr %69, align 4, !tbaa !9
  %929 = sext i32 %928 to i64
  %930 = getelementptr inbounds double, ptr %927, i64 %929
  %931 = load ptr, ptr %25, align 8, !tbaa !5
  %932 = load i32, ptr %69, align 4, !tbaa !9
  %933 = sext i32 %932 to i64
  %934 = getelementptr inbounds double, ptr %931, i64 %933
  %935 = getelementptr inbounds [1 x double], ptr %52, i64 0, i64 0
  %936 = load ptr, ptr %30, align 8, !tbaa !5
  %937 = getelementptr inbounds double, ptr %936, i64 1
  %938 = load ptr, ptr %31, align 8, !tbaa !5
  call void @dlaqr4_(ptr noundef @c_false, ptr noundef @c_false, ptr noundef %75, ptr noundef @c__1, ptr noundef %75, ptr noundef %925, ptr noundef %926, ptr noundef %930, ptr noundef %934, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %935, ptr noundef @c__1, ptr noundef %937, ptr noundef %938, ptr noundef %82)
  br label %956

939:                                              ; preds = %890
  %940 = load ptr, ptr %22, align 8, !tbaa !5
  %941 = load i32, ptr %70, align 4, !tbaa !9
  %942 = load i32, ptr %33, align 4, !tbaa !9
  %943 = add nsw i32 %941, %942
  %944 = sext i32 %943 to i64
  %945 = getelementptr inbounds double, ptr %940, i64 %944
  %946 = load ptr, ptr %23, align 8, !tbaa !5
  %947 = load ptr, ptr %24, align 8, !tbaa !5
  %948 = load i32, ptr %69, align 4, !tbaa !9
  %949 = sext i32 %948 to i64
  %950 = getelementptr inbounds double, ptr %947, i64 %949
  %951 = load ptr, ptr %25, align 8, !tbaa !5
  %952 = load i32, ptr %69, align 4, !tbaa !9
  %953 = sext i32 %952 to i64
  %954 = getelementptr inbounds double, ptr %951, i64 %953
  %955 = getelementptr inbounds [1 x double], ptr %52, i64 0, i64 0
  call void @dlahqr_(ptr noundef @c_false, ptr noundef @c_false, ptr noundef %75, ptr noundef @c__1, ptr noundef %75, ptr noundef %945, ptr noundef %946, ptr noundef %950, ptr noundef %954, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %955, ptr noundef @c__1, ptr noundef %82)
  br label %956

956:                                              ; preds = %939, %919
  %957 = load i32, ptr %82, align 4, !tbaa !9
  %958 = load i32, ptr %69, align 4, !tbaa !9
  %959 = add nsw i32 %958, %957
  store i32 %959, ptr %69, align 4, !tbaa !9
  %960 = load i32, ptr %69, align 4, !tbaa !9
  %961 = load i32, ptr %48, align 4, !tbaa !9
  %962 = icmp sge i32 %960, %961
  br i1 %962, label %963, label %1024

963:                                              ; preds = %956
  %964 = load ptr, ptr %22, align 8, !tbaa !5
  %965 = load i32, ptr %48, align 4, !tbaa !9
  %966 = sub nsw i32 %965, 1
  %967 = load i32, ptr %48, align 4, !tbaa !9
  %968 = sub nsw i32 %967, 1
  %969 = load i32, ptr %33, align 4, !tbaa !9
  %970 = mul nsw i32 %968, %969
  %971 = add nsw i32 %966, %970
  %972 = sext i32 %971 to i64
  %973 = getelementptr inbounds double, ptr %964, i64 %972
  %974 = load double, ptr %973, align 8, !tbaa !11
  store double %974, ptr %60, align 8, !tbaa !11
  %975 = load ptr, ptr %22, align 8, !tbaa !5
  %976 = load i32, ptr %48, align 4, !tbaa !9
  %977 = load i32, ptr %48, align 4, !tbaa !9
  %978 = sub nsw i32 %977, 1
  %979 = load i32, ptr %33, align 4, !tbaa !9
  %980 = mul nsw i32 %978, %979
  %981 = add nsw i32 %976, %980
  %982 = sext i32 %981 to i64
  %983 = getelementptr inbounds double, ptr %975, i64 %982
  %984 = load double, ptr %983, align 8, !tbaa !11
  store double %984, ptr %62, align 8, !tbaa !11
  %985 = load ptr, ptr %22, align 8, !tbaa !5
  %986 = load i32, ptr %48, align 4, !tbaa !9
  %987 = sub nsw i32 %986, 1
  %988 = load i32, ptr %48, align 4, !tbaa !9
  %989 = load i32, ptr %33, align 4, !tbaa !9
  %990 = mul nsw i32 %988, %989
  %991 = add nsw i32 %987, %990
  %992 = sext i32 %991 to i64
  %993 = getelementptr inbounds double, ptr %985, i64 %992
  %994 = load double, ptr %993, align 8, !tbaa !11
  store double %994, ptr %61, align 8, !tbaa !11
  %995 = load ptr, ptr %22, align 8, !tbaa !5
  %996 = load i32, ptr %48, align 4, !tbaa !9
  %997 = load i32, ptr %48, align 4, !tbaa !9
  %998 = load i32, ptr %33, align 4, !tbaa !9
  %999 = mul nsw i32 %997, %998
  %1000 = add nsw i32 %996, %999
  %1001 = sext i32 %1000 to i64
  %1002 = getelementptr inbounds double, ptr %995, i64 %1001
  %1003 = load double, ptr %1002, align 8, !tbaa !11
  store double %1003, ptr %63, align 8, !tbaa !11
  %1004 = load ptr, ptr %24, align 8, !tbaa !5
  %1005 = load i32, ptr %48, align 4, !tbaa !9
  %1006 = sub nsw i32 %1005, 1
  %1007 = sext i32 %1006 to i64
  %1008 = getelementptr inbounds double, ptr %1004, i64 %1007
  %1009 = load ptr, ptr %25, align 8, !tbaa !5
  %1010 = load i32, ptr %48, align 4, !tbaa !9
  %1011 = sub nsw i32 %1010, 1
  %1012 = sext i32 %1011 to i64
  %1013 = getelementptr inbounds double, ptr %1009, i64 %1012
  %1014 = load ptr, ptr %24, align 8, !tbaa !5
  %1015 = load i32, ptr %48, align 4, !tbaa !9
  %1016 = sext i32 %1015 to i64
  %1017 = getelementptr inbounds double, ptr %1014, i64 %1016
  %1018 = load ptr, ptr %25, align 8, !tbaa !5
  %1019 = load i32, ptr %48, align 4, !tbaa !9
  %1020 = sext i32 %1019 to i64
  %1021 = getelementptr inbounds double, ptr %1018, i64 %1020
  call void @dlanv2_(ptr noundef %60, ptr noundef %61, ptr noundef %62, ptr noundef %63, ptr noundef %1008, ptr noundef %1013, ptr noundef %1017, ptr noundef %1021, ptr noundef %65, ptr noundef %71)
  %1022 = load i32, ptr %48, align 4, !tbaa !9
  %1023 = sub nsw i32 %1022, 1
  store i32 %1023, ptr %69, align 4, !tbaa !9
  br label %1024

1024:                                             ; preds = %963, %956
  br label %1025

1025:                                             ; preds = %1024, %882
  %1026 = load i32, ptr %48, align 4, !tbaa !9
  %1027 = load i32, ptr %69, align 4, !tbaa !9
  %1028 = sub nsw i32 %1026, %1027
  %1029 = add nsw i32 %1028, 1
  %1030 = load i32, ptr %75, align 4, !tbaa !9
  %1031 = icmp sgt i32 %1029, %1030
  br i1 %1031, label %1032, label %1167

1032:                                             ; preds = %1025
  store i32 0, ptr %80, align 4, !tbaa !9
  %1033 = load i32, ptr %69, align 4, !tbaa !9
  %1034 = add nsw i32 %1033, 1
  store i32 %1034, ptr %38, align 4, !tbaa !9
  %1035 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %1035, ptr %55, align 4, !tbaa !9
  br label %1036

1036:                                             ; preds = %1162, %1032
  %1037 = load i32, ptr %55, align 4, !tbaa !9
  %1038 = load i32, ptr %38, align 4, !tbaa !9
  %1039 = icmp sge i32 %1037, %1038
  br i1 %1039, label %1040, label %1165

1040:                                             ; preds = %1036
  %1041 = load i32, ptr %80, align 4, !tbaa !9
  %1042 = icmp ne i32 %1041, 0
  br i1 %1042, label %1043, label %1044

1043:                                             ; preds = %1040
  br label %1166

1044:                                             ; preds = %1040
  store i32 1, ptr %80, align 4, !tbaa !9
  %1045 = load i32, ptr %55, align 4, !tbaa !9
  %1046 = sub nsw i32 %1045, 1
  store i32 %1046, ptr %39, align 4, !tbaa !9
  %1047 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %1047, ptr %54, align 4, !tbaa !9
  br label %1048

1048:                                             ; preds = %1158, %1044
  %1049 = load i32, ptr %54, align 4, !tbaa !9
  %1050 = load i32, ptr %39, align 4, !tbaa !9
  %1051 = icmp sle i32 %1049, %1050
  br i1 %1051, label %1052, label %1161

1052:                                             ; preds = %1048
  %1053 = load ptr, ptr %24, align 8, !tbaa !5
  %1054 = load i32, ptr %54, align 4, !tbaa !9
  %1055 = sext i32 %1054 to i64
  %1056 = getelementptr inbounds double, ptr %1053, i64 %1055
  %1057 = load double, ptr %1056, align 8, !tbaa !11
  store double %1057, ptr %42, align 8, !tbaa !11
  %1058 = load double, ptr %42, align 8, !tbaa !11
  %1059 = fcmp oge double %1058, 0.000000e+00
  br i1 %1059, label %1060, label %1062

1060:                                             ; preds = %1052
  %1061 = load double, ptr %42, align 8, !tbaa !11
  br label %1065

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

1065:                                             ; preds = %1062, %1060
  %1066 = phi double [ %1061, %1060 ], [ %1064, %1062 ]
  %1067 = load ptr, ptr %25, align 8, !tbaa !5
  %1068 = load i32, ptr %54, align 4, !tbaa !9
  %1069 = sext i32 %1068 to i64
  %1070 = getelementptr inbounds double, ptr %1067, i64 %1069
  %1071 = load double, ptr %1070, align 8, !tbaa !11
  store double %1071, ptr %43, align 8, !tbaa !11
  %1072 = load double, ptr %43, align 8, !tbaa !11
  %1073 = fcmp oge double %1072, 0.000000e+00
  br i1 %1073, label %1074, label %1076

1074:                                             ; preds = %1065
  %1075 = load double, ptr %43, align 8, !tbaa !11
  br label %1079

1076:                                             ; preds = %1065
  %1077 = load double, ptr %43, align 8, !tbaa !11
  %1078 = fneg double %1077
  br label %1079

1079:                                             ; preds = %1076, %1074
  %1080 = phi double [ %1075, %1074 ], [ %1078, %1076 ]
  %1081 = fadd double %1066, %1080
  %1082 = load ptr, ptr %24, align 8, !tbaa !5
  %1083 = load i32, ptr %54, align 4, !tbaa !9
  %1084 = add nsw i32 %1083, 1
  %1085 = sext i32 %1084 to i64
  %1086 = getelementptr inbounds double, ptr %1082, i64 %1085
  %1087 = load double, ptr %1086, align 8, !tbaa !11
  store double %1087, ptr %44, align 8, !tbaa !11
  %1088 = load double, ptr %44, align 8, !tbaa !11
  %1089 = fcmp oge double %1088, 0.000000e+00
  br i1 %1089, label %1090, label %1092

1090:                                             ; preds = %1079
  %1091 = load double, ptr %44, align 8, !tbaa !11
  br label %1095

1092:                                             ; preds = %1079
  %1093 = load double, ptr %44, align 8, !tbaa !11
  %1094 = fneg double %1093
  br label %1095

1095:                                             ; preds = %1092, %1090
  %1096 = phi double [ %1091, %1090 ], [ %1094, %1092 ]
  %1097 = load ptr, ptr %25, align 8, !tbaa !5
  %1098 = load i32, ptr %54, align 4, !tbaa !9
  %1099 = add nsw i32 %1098, 1
  %1100 = sext i32 %1099 to i64
  %1101 = getelementptr inbounds double, ptr %1097, i64 %1100
  %1102 = load double, ptr %1101, align 8, !tbaa !11
  store double %1102, ptr %45, align 8, !tbaa !11
  %1103 = load double, ptr %45, align 8, !tbaa !11
  %1104 = fcmp oge double %1103, 0.000000e+00
  br i1 %1104, label %1105, label %1107

1105:                                             ; preds = %1095
  %1106 = load double, ptr %45, align 8, !tbaa !11
  br label %1110

1107:                                             ; preds = %1095
  %1108 = load double, ptr %45, align 8, !tbaa !11
  %1109 = fneg double %1108
  br label %1110

1110:                                             ; preds = %1107, %1105
  %1111 = phi double [ %1106, %1105 ], [ %1109, %1107 ]
  %1112 = fadd double %1096, %1111
  %1113 = fcmp olt double %1081, %1112
  br i1 %1113, label %1114, label %1157

1114:                                             ; preds = %1110
  store i32 0, ptr %80, align 4, !tbaa !9
  %1115 = load ptr, ptr %24, align 8, !tbaa !5
  %1116 = load i32, ptr %54, align 4, !tbaa !9
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds double, ptr %1115, i64 %1117
  %1119 = load double, ptr %1118, align 8, !tbaa !11
  store double %1119, ptr %50, align 8, !tbaa !11
  %1120 = load ptr, ptr %24, align 8, !tbaa !5
  %1121 = load i32, ptr %54, align 4, !tbaa !9
  %1122 = add nsw i32 %1121, 1
  %1123 = sext i32 %1122 to i64
  %1124 = getelementptr inbounds double, ptr %1120, i64 %1123
  %1125 = load double, ptr %1124, align 8, !tbaa !11
  %1126 = load ptr, ptr %24, align 8, !tbaa !5
  %1127 = load i32, ptr %54, align 4, !tbaa !9
  %1128 = sext i32 %1127 to i64
  %1129 = getelementptr inbounds double, ptr %1126, i64 %1128
  store double %1125, ptr %1129, align 8, !tbaa !11
  %1130 = load double, ptr %50, align 8, !tbaa !11
  %1131 = load ptr, ptr %24, align 8, !tbaa !5
  %1132 = load i32, ptr %54, align 4, !tbaa !9
  %1133 = add nsw i32 %1132, 1
  %1134 = sext i32 %1133 to i64
  %1135 = getelementptr inbounds double, ptr %1131, i64 %1134
  store double %1130, ptr %1135, align 8, !tbaa !11
  %1136 = load ptr, ptr %25, align 8, !tbaa !5
  %1137 = load i32, ptr %54, align 4, !tbaa !9
  %1138 = sext i32 %1137 to i64
  %1139 = getelementptr inbounds double, ptr %1136, i64 %1138
  %1140 = load double, ptr %1139, align 8, !tbaa !11
  store double %1140, ptr %50, align 8, !tbaa !11
  %1141 = load ptr, ptr %25, align 8, !tbaa !5
  %1142 = load i32, ptr %54, align 4, !tbaa !9
  %1143 = add nsw i32 %1142, 1
  %1144 = sext i32 %1143 to i64
  %1145 = getelementptr inbounds double, ptr %1141, i64 %1144
  %1146 = load double, ptr %1145, align 8, !tbaa !11
  %1147 = load ptr, ptr %25, align 8, !tbaa !5
  %1148 = load i32, ptr %54, align 4, !tbaa !9
  %1149 = sext i32 %1148 to i64
  %1150 = getelementptr inbounds double, ptr %1147, i64 %1149
  store double %1146, ptr %1150, align 8, !tbaa !11
  %1151 = load double, ptr %50, align 8, !tbaa !11
  %1152 = load ptr, ptr %25, align 8, !tbaa !5
  %1153 = load i32, ptr %54, align 4, !tbaa !9
  %1154 = add nsw i32 %1153, 1
  %1155 = sext i32 %1154 to i64
  %1156 = getelementptr inbounds double, ptr %1152, i64 %1155
  store double %1151, ptr %1156, align 8, !tbaa !11
  br label %1157

1157:                                             ; preds = %1114, %1110
  br label %1158

1158:                                             ; preds = %1157
  %1159 = load i32, ptr %54, align 4, !tbaa !9
  %1160 = add nsw i32 %1159, 1
  store i32 %1160, ptr %54, align 4, !tbaa !9
  br label %1048, !llvm.loop !17

1161:                                             ; preds = %1048
  br label %1162

1162:                                             ; preds = %1161
  %1163 = load i32, ptr %55, align 4, !tbaa !9
  %1164 = add nsw i32 %1163, -1
  store i32 %1164, ptr %55, align 4, !tbaa !9
  br label %1036, !llvm.loop !18

1165:                                             ; preds = %1036
  br label %1166

1166:                                             ; preds = %1165, %1043
  br label %1167

1167:                                             ; preds = %1166, %1025
  %1168 = load i32, ptr %69, align 4, !tbaa !9
  %1169 = add nsw i32 %1168, 2
  store i32 %1169, ptr %38, align 4, !tbaa !9
  %1170 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %1170, ptr %54, align 4, !tbaa !9
  br label %1171

1171:                                             ; preds = %1255, %1167
  %1172 = load i32, ptr %54, align 4, !tbaa !9
  %1173 = load i32, ptr %38, align 4, !tbaa !9
  %1174 = icmp sge i32 %1172, %1173
  br i1 %1174, label %1175, label %1258

1175:                                             ; preds = %1171
  %1176 = load ptr, ptr %25, align 8, !tbaa !5
  %1177 = load i32, ptr %54, align 4, !tbaa !9
  %1178 = sext i32 %1177 to i64
  %1179 = getelementptr inbounds double, ptr %1176, i64 %1178
  %1180 = load double, ptr %1179, align 8, !tbaa !11
  %1181 = load ptr, ptr %25, align 8, !tbaa !5
  %1182 = load i32, ptr %54, align 4, !tbaa !9
  %1183 = sub nsw i32 %1182, 1
  %1184 = sext i32 %1183 to i64
  %1185 = getelementptr inbounds double, ptr %1181, i64 %1184
  %1186 = load double, ptr %1185, align 8, !tbaa !11
  %1187 = fneg double %1186
  %1188 = fcmp une double %1180, %1187
  br i1 %1188, label %1189, label %1254

1189:                                             ; preds = %1175
  %1190 = load ptr, ptr %24, align 8, !tbaa !5
  %1191 = load i32, ptr %54, align 4, !tbaa !9
  %1192 = sext i32 %1191 to i64
  %1193 = getelementptr inbounds double, ptr %1190, i64 %1192
  %1194 = load double, ptr %1193, align 8, !tbaa !11
  store double %1194, ptr %50, align 8, !tbaa !11
  %1195 = load ptr, ptr %24, align 8, !tbaa !5
  %1196 = load i32, ptr %54, align 4, !tbaa !9
  %1197 = sub nsw i32 %1196, 1
  %1198 = sext i32 %1197 to i64
  %1199 = getelementptr inbounds double, ptr %1195, i64 %1198
  %1200 = load double, ptr %1199, align 8, !tbaa !11
  %1201 = load ptr, ptr %24, align 8, !tbaa !5
  %1202 = load i32, ptr %54, align 4, !tbaa !9
  %1203 = sext i32 %1202 to i64
  %1204 = getelementptr inbounds double, ptr %1201, i64 %1203
  store double %1200, ptr %1204, align 8, !tbaa !11
  %1205 = load ptr, ptr %24, align 8, !tbaa !5
  %1206 = load i32, ptr %54, align 4, !tbaa !9
  %1207 = sub nsw i32 %1206, 2
  %1208 = sext i32 %1207 to i64
  %1209 = getelementptr inbounds double, ptr %1205, i64 %1208
  %1210 = load double, ptr %1209, align 8, !tbaa !11
  %1211 = load ptr, ptr %24, align 8, !tbaa !5
  %1212 = load i32, ptr %54, align 4, !tbaa !9
  %1213 = sub nsw i32 %1212, 1
  %1214 = sext i32 %1213 to i64
  %1215 = getelementptr inbounds double, ptr %1211, i64 %1214
  store double %1210, ptr %1215, align 8, !tbaa !11
  %1216 = load double, ptr %50, align 8, !tbaa !11
  %1217 = load ptr, ptr %24, align 8, !tbaa !5
  %1218 = load i32, ptr %54, align 4, !tbaa !9
  %1219 = sub nsw i32 %1218, 2
  %1220 = sext i32 %1219 to i64
  %1221 = getelementptr inbounds double, ptr %1217, i64 %1220
  store double %1216, ptr %1221, align 8, !tbaa !11
  %1222 = load ptr, ptr %25, align 8, !tbaa !5
  %1223 = load i32, ptr %54, align 4, !tbaa !9
  %1224 = sext i32 %1223 to i64
  %1225 = getelementptr inbounds double, ptr %1222, i64 %1224
  %1226 = load double, ptr %1225, align 8, !tbaa !11
  store double %1226, ptr %50, align 8, !tbaa !11
  %1227 = load ptr, ptr %25, align 8, !tbaa !5
  %1228 = load i32, ptr %54, align 4, !tbaa !9
  %1229 = sub nsw i32 %1228, 1
  %1230 = sext i32 %1229 to i64
  %1231 = getelementptr inbounds double, ptr %1227, i64 %1230
  %1232 = load double, ptr %1231, align 8, !tbaa !11
  %1233 = load ptr, ptr %25, align 8, !tbaa !5
  %1234 = load i32, ptr %54, align 4, !tbaa !9
  %1235 = sext i32 %1234 to i64
  %1236 = getelementptr inbounds double, ptr %1233, i64 %1235
  store double %1232, ptr %1236, align 8, !tbaa !11
  %1237 = load ptr, ptr %25, align 8, !tbaa !5
  %1238 = load i32, ptr %54, align 4, !tbaa !9
  %1239 = sub nsw i32 %1238, 2
  %1240 = sext i32 %1239 to i64
  %1241 = getelementptr inbounds double, ptr %1237, i64 %1240
  %1242 = load double, ptr %1241, align 8, !tbaa !11
  %1243 = load ptr, ptr %25, align 8, !tbaa !5
  %1244 = load i32, ptr %54, align 4, !tbaa !9
  %1245 = sub nsw i32 %1244, 1
  %1246 = sext i32 %1245 to i64
  %1247 = getelementptr inbounds double, ptr %1243, i64 %1246
  store double %1242, ptr %1247, align 8, !tbaa !11
  %1248 = load double, ptr %50, align 8, !tbaa !11
  %1249 = load ptr, ptr %25, align 8, !tbaa !5
  %1250 = load i32, ptr %54, align 4, !tbaa !9
  %1251 = sub nsw i32 %1250, 2
  %1252 = sext i32 %1251 to i64
  %1253 = getelementptr inbounds double, ptr %1249, i64 %1252
  store double %1248, ptr %1253, align 8, !tbaa !11
  br label %1254

1254:                                             ; preds = %1189, %1175
  br label %1255

1255:                                             ; preds = %1254
  %1256 = load i32, ptr %54, align 4, !tbaa !9
  %1257 = add nsw i32 %1256, -2
  store i32 %1257, ptr %54, align 4, !tbaa !9
  br label %1171, !llvm.loop !19

1258:                                             ; preds = %1171
  br label %1259

1259:                                             ; preds = %1258, %881
  %1260 = load i32, ptr %48, align 4, !tbaa !9
  %1261 = load i32, ptr %69, align 4, !tbaa !9
  %1262 = sub nsw i32 %1260, %1261
  %1263 = add nsw i32 %1262, 1
  %1264 = icmp eq i32 %1263, 2
  br i1 %1264, label %1265, label %1347

1265:                                             ; preds = %1259
  %1266 = load ptr, ptr %25, align 8, !tbaa !5
  %1267 = load i32, ptr %48, align 4, !tbaa !9
  %1268 = sext i32 %1267 to i64
  %1269 = getelementptr inbounds double, ptr %1266, i64 %1268
  %1270 = load double, ptr %1269, align 8, !tbaa !11
  %1271 = fcmp oeq double %1270, 0.000000e+00
  br i1 %1271, label %1272, label %1346

1272:                                             ; preds = %1265
  %1273 = load ptr, ptr %24, align 8, !tbaa !5
  %1274 = load i32, ptr %48, align 4, !tbaa !9
  %1275 = sext i32 %1274 to i64
  %1276 = getelementptr inbounds double, ptr %1273, i64 %1275
  %1277 = load double, ptr %1276, align 8, !tbaa !11
  %1278 = load ptr, ptr %22, align 8, !tbaa !5
  %1279 = load i32, ptr %48, align 4, !tbaa !9
  %1280 = load i32, ptr %48, align 4, !tbaa !9
  %1281 = load i32, ptr %33, align 4, !tbaa !9
  %1282 = mul nsw i32 %1280, %1281
  %1283 = add nsw i32 %1279, %1282
  %1284 = sext i32 %1283 to i64
  %1285 = getelementptr inbounds double, ptr %1278, i64 %1284
  %1286 = load double, ptr %1285, align 8, !tbaa !11
  %1287 = fsub double %1277, %1286
  store double %1287, ptr %42, align 8, !tbaa !11
  %1288 = load double, ptr %42, align 8, !tbaa !11
  %1289 = fcmp oge double %1288, 0.000000e+00
  br i1 %1289, label %1290, label %1292

1290:                                             ; preds = %1272
  %1291 = load double, ptr %42, align 8, !tbaa !11
  br label %1295

1292:                                             ; preds = %1272
  %1293 = load double, ptr %42, align 8, !tbaa !11
  %1294 = fneg double %1293
  br label %1295

1295:                                             ; preds = %1292, %1290
  %1296 = phi double [ %1291, %1290 ], [ %1294, %1292 ]
  %1297 = load ptr, ptr %24, align 8, !tbaa !5
  %1298 = load i32, ptr %48, align 4, !tbaa !9
  %1299 = sub nsw i32 %1298, 1
  %1300 = sext i32 %1299 to i64
  %1301 = getelementptr inbounds double, ptr %1297, i64 %1300
  %1302 = load double, ptr %1301, align 8, !tbaa !11
  %1303 = load ptr, ptr %22, align 8, !tbaa !5
  %1304 = load i32, ptr %48, align 4, !tbaa !9
  %1305 = load i32, ptr %48, align 4, !tbaa !9
  %1306 = load i32, ptr %33, align 4, !tbaa !9
  %1307 = mul nsw i32 %1305, %1306
  %1308 = add nsw i32 %1304, %1307
  %1309 = sext i32 %1308 to i64
  %1310 = getelementptr inbounds double, ptr %1303, i64 %1309
  %1311 = load double, ptr %1310, align 8, !tbaa !11
  %1312 = fsub double %1302, %1311
  store double %1312, ptr %43, align 8, !tbaa !11
  %1313 = load double, ptr %43, align 8, !tbaa !11
  %1314 = fcmp oge double %1313, 0.000000e+00
  br i1 %1314, label %1315, label %1317

1315:                                             ; preds = %1295
  %1316 = load double, ptr %43, align 8, !tbaa !11
  br label %1320

1317:                                             ; preds = %1295
  %1318 = load double, ptr %43, align 8, !tbaa !11
  %1319 = fneg double %1318
  br label %1320

1320:                                             ; preds = %1317, %1315
  %1321 = phi double [ %1316, %1315 ], [ %1319, %1317 ]
  %1322 = fcmp olt double %1296, %1321
  br i1 %1322, label %1323, label %1334

1323:                                             ; preds = %1320
  %1324 = load ptr, ptr %24, align 8, !tbaa !5
  %1325 = load i32, ptr %48, align 4, !tbaa !9
  %1326 = sext i32 %1325 to i64
  %1327 = getelementptr inbounds double, ptr %1324, i64 %1326
  %1328 = load double, ptr %1327, align 8, !tbaa !11
  %1329 = load ptr, ptr %24, align 8, !tbaa !5
  %1330 = load i32, ptr %48, align 4, !tbaa !9
  %1331 = sub nsw i32 %1330, 1
  %1332 = sext i32 %1331 to i64
  %1333 = getelementptr inbounds double, ptr %1329, i64 %1332
  store double %1328, ptr %1333, align 8, !tbaa !11
  br label %1345

1334:                                             ; preds = %1320
  %1335 = load ptr, ptr %24, align 8, !tbaa !5
  %1336 = load i32, ptr %48, align 4, !tbaa !9
  %1337 = sub nsw i32 %1336, 1
  %1338 = sext i32 %1337 to i64
  %1339 = getelementptr inbounds double, ptr %1335, i64 %1338
  %1340 = load double, ptr %1339, align 8, !tbaa !11
  %1341 = load ptr, ptr %24, align 8, !tbaa !5
  %1342 = load i32, ptr %48, align 4, !tbaa !9
  %1343 = sext i32 %1342 to i64
  %1344 = getelementptr inbounds double, ptr %1341, i64 %1343
  store double %1340, ptr %1344, align 8, !tbaa !11
  br label %1345

1345:                                             ; preds = %1334, %1323
  br label %1346

1346:                                             ; preds = %1345, %1265
  br label %1347

1347:                                             ; preds = %1346, %1259
  %1348 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %1348, ptr %38, align 4, !tbaa !9
  %1349 = load i32, ptr %48, align 4, !tbaa !9
  %1350 = load i32, ptr %69, align 4, !tbaa !9
  %1351 = sub nsw i32 %1349, %1350
  %1352 = add nsw i32 %1351, 1
  store i32 %1352, ptr %39, align 4, !tbaa !9
  %1353 = load i32, ptr %38, align 4, !tbaa !9
  %1354 = load i32, ptr %39, align 4, !tbaa !9
  %1355 = icmp sle i32 %1353, %1354
  br i1 %1355, label %1356, label %1358

1356:                                             ; preds = %1347
  %1357 = load i32, ptr %38, align 4, !tbaa !9
  br label %1360

1358:                                             ; preds = %1347
  %1359 = load i32, ptr %39, align 4, !tbaa !9
  br label %1360

1360:                                             ; preds = %1358, %1356
  %1361 = phi i32 [ %1357, %1356 ], [ %1359, %1358 ]
  store i32 %1361, ptr %75, align 4, !tbaa !9
  %1362 = load i32, ptr %75, align 4, !tbaa !9
  %1363 = srem i32 %1362, 2
  %1364 = load i32, ptr %75, align 4, !tbaa !9
  %1365 = sub nsw i32 %1364, %1363
  store i32 %1365, ptr %75, align 4, !tbaa !9
  %1366 = load i32, ptr %48, align 4, !tbaa !9
  %1367 = load i32, ptr %75, align 4, !tbaa !9
  %1368 = sub nsw i32 %1366, %1367
  %1369 = add nsw i32 %1368, 1
  store i32 %1369, ptr %69, align 4, !tbaa !9
  %1370 = load i32, ptr %75, align 4, !tbaa !9
  %1371 = shl i32 %1370, 1
  store i32 %1371, ptr %83, align 4, !tbaa !9
  %1372 = load ptr, ptr %19, align 8, !tbaa !5
  %1373 = load i32, ptr %1372, align 4, !tbaa !9
  %1374 = load i32, ptr %83, align 4, !tbaa !9
  %1375 = sub nsw i32 %1373, %1374
  %1376 = add nsw i32 %1375, 1
  store i32 %1376, ptr %72, align 4, !tbaa !9
  %1377 = load i32, ptr %83, align 4, !tbaa !9
  %1378 = add nsw i32 %1377, 1
  store i32 %1378, ptr %86, align 4, !tbaa !9
  %1379 = load ptr, ptr %19, align 8, !tbaa !5
  %1380 = load i32, ptr %1379, align 4, !tbaa !9
  %1381 = load i32, ptr %83, align 4, !tbaa !9
  %1382 = sub nsw i32 %1380, %1381
  %1383 = sub nsw i32 %1382, 3
  %1384 = load i32, ptr %83, align 4, !tbaa !9
  %1385 = add nsw i32 %1384, 1
  %1386 = sub nsw i32 %1383, %1385
  %1387 = add nsw i32 %1386, 1
  store i32 %1387, ptr %84, align 4, !tbaa !9
  %1388 = load i32, ptr %83, align 4, !tbaa !9
  %1389 = add nsw i32 %1388, 4
  store i32 %1389, ptr %89, align 4, !tbaa !9
  %1390 = load ptr, ptr %19, align 8, !tbaa !5
  %1391 = load i32, ptr %1390, align 4, !tbaa !9
  %1392 = load i32, ptr %83, align 4, !tbaa !9
  %1393 = sub nsw i32 %1391, %1392
  %1394 = load i32, ptr %89, align 4, !tbaa !9
  %1395 = sub nsw i32 %1393, %1394
  %1396 = add nsw i32 %1395, 1
  store i32 %1396, ptr %85, align 4, !tbaa !9
  %1397 = load ptr, ptr %17, align 8, !tbaa !5
  %1398 = load ptr, ptr %18, align 8, !tbaa !5
  %1399 = load ptr, ptr %19, align 8, !tbaa !5
  %1400 = load ptr, ptr %24, align 8, !tbaa !5
  %1401 = load i32, ptr %69, align 4, !tbaa !9
  %1402 = sext i32 %1401 to i64
  %1403 = getelementptr inbounds double, ptr %1400, i64 %1402
  %1404 = load ptr, ptr %25, align 8, !tbaa !5
  %1405 = load i32, ptr %69, align 4, !tbaa !9
  %1406 = sext i32 %1405 to i64
  %1407 = getelementptr inbounds double, ptr %1404, i64 %1406
  %1408 = load ptr, ptr %22, align 8, !tbaa !5
  %1409 = load i32, ptr %34, align 4, !tbaa !9
  %1410 = sext i32 %1409 to i64
  %1411 = getelementptr inbounds double, ptr %1408, i64 %1410
  %1412 = load ptr, ptr %23, align 8, !tbaa !5
  %1413 = load ptr, ptr %26, align 8, !tbaa !5
  %1414 = load ptr, ptr %27, align 8, !tbaa !5
  %1415 = load ptr, ptr %28, align 8, !tbaa !5
  %1416 = load i32, ptr %36, align 4, !tbaa !9
  %1417 = sext i32 %1416 to i64
  %1418 = getelementptr inbounds double, ptr %1415, i64 %1417
  %1419 = load ptr, ptr %29, align 8, !tbaa !5
  %1420 = load ptr, ptr %30, align 8, !tbaa !5
  %1421 = getelementptr inbounds double, ptr %1420, i64 1
  %1422 = load ptr, ptr %22, align 8, !tbaa !5
  %1423 = load i32, ptr %72, align 4, !tbaa !9
  %1424 = load i32, ptr %33, align 4, !tbaa !9
  %1425 = add nsw i32 %1423, %1424
  %1426 = sext i32 %1425 to i64
  %1427 = getelementptr inbounds double, ptr %1422, i64 %1426
  %1428 = load ptr, ptr %23, align 8, !tbaa !5
  %1429 = load ptr, ptr %22, align 8, !tbaa !5
  %1430 = load i32, ptr %89, align 4, !tbaa !9
  %1431 = load i32, ptr %33, align 4, !tbaa !9
  %1432 = add nsw i32 %1430, %1431
  %1433 = sext i32 %1432 to i64
  %1434 = getelementptr inbounds double, ptr %1429, i64 %1433
  %1435 = load ptr, ptr %23, align 8, !tbaa !5
  %1436 = load ptr, ptr %22, align 8, !tbaa !5
  %1437 = load i32, ptr %72, align 4, !tbaa !9
  %1438 = load i32, ptr %86, align 4, !tbaa !9
  %1439 = load i32, ptr %33, align 4, !tbaa !9
  %1440 = mul nsw i32 %1438, %1439
  %1441 = add nsw i32 %1437, %1440
  %1442 = sext i32 %1441 to i64
  %1443 = getelementptr inbounds double, ptr %1436, i64 %1442
  %1444 = load ptr, ptr %23, align 8, !tbaa !5
  call void @dlaqr5_(ptr noundef %1397, ptr noundef %1398, ptr noundef %53, ptr noundef %1399, ptr noundef %51, ptr noundef %48, ptr noundef %75, ptr noundef %1403, ptr noundef %1407, ptr noundef %1411, ptr noundef %1412, ptr noundef %1413, ptr noundef %1414, ptr noundef %1418, ptr noundef %1419, ptr noundef %1421, ptr noundef @c__3, ptr noundef %1427, ptr noundef %1428, ptr noundef %85, ptr noundef %1434, ptr noundef %1435, ptr noundef %84, ptr noundef %1443, ptr noundef %1444)
  br label %1445

1445:                                             ; preds = %1360, %694, %675
  %1446 = load i32, ptr %64, align 4, !tbaa !9
  %1447 = icmp sgt i32 %1446, 0
  br i1 %1447, label %1448, label %1449

1448:                                             ; preds = %1445
  store i32 1, ptr %47, align 4, !tbaa !9
  br label %1452

1449:                                             ; preds = %1445
  %1450 = load i32, ptr %47, align 4, !tbaa !9
  %1451 = add nsw i32 %1450, 1
  store i32 %1451, ptr %47, align 4, !tbaa !9
  br label %1452

1452:                                             ; preds = %1449, %1448
  br label %1453

1453:                                             ; preds = %1452
  %1454 = load i32, ptr %68, align 4, !tbaa !9
  %1455 = add nsw i32 %1454, 1
  store i32 %1455, ptr %68, align 4, !tbaa !9
  br label %432, !llvm.loop !20

1456:                                             ; preds = %432
  %1457 = load i32, ptr %48, align 4, !tbaa !9
  %1458 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 %1457, ptr %1458, align 4, !tbaa !9
  br label %1459

1459:                                             ; preds = %1456, %441
  br label %1460

1460:                                             ; preds = %1459, %155
  %1461 = load i32, ptr %81, align 4, !tbaa !9
  %1462 = sitofp i32 %1461 to double
  %1463 = load ptr, ptr %30, align 8, !tbaa !5
  %1464 = getelementptr inbounds double, ptr %1463, i64 1
  store double %1462, ptr %1464, align 8, !tbaa !11
  store i32 1, ptr %90, align 4
  br label %1465

1465:                                             ; preds = %1460, %323, %121
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 2, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  ret void
}

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

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

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

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

declare void @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 void @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 = !{!"int", !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 i32, align 4
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@c__15 = external hidden global i32, align 4
@c_n1 = external hidden global i32, align 4
@c__12 = external hidden global i32, align 4
@c__14 = external hidden global i32, align 4
@c__16 = external hidden global i32, align 4
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_false = external hidden global i32, align 4
@c__1 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @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 i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca [1 x double], align 8
  %21 = alloca i32, align 4
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca i32, align 4
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca [2 x i8], align 1
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 4, 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 4, 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 4, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #5
  %36 = load i32, ptr %6, align 4, !tbaa !5
  %narrow = xor i32 %36, -1
  %37 = sext i32 %narrow to i64
  %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 i32 0, ptr %15, align 4, !tbaa !5
  %41 = load i32, ptr %2, align 4, !tbaa !5
  %42 = icmp eq i32 %41, 0
  br i1 %42, label %447, label %43

43:                                               ; preds = %16
  %44 = icmp slt i32 %41, 16
  br i1 %44, label %45, label %48

45:                                               ; preds = %43
  %46 = load i32, ptr %14, align 4, !tbaa !5
  %.not532 = icmp eq i32 %46, -1
  br i1 %.not532, label %.loopexit545, label %47

47:                                               ; preds = %45
  tail call void @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 %.loopexit545

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

83:                                               ; preds = %48
  %84 = uitofp nneg i32 %80 to double
  br label %447

85:                                               ; preds = %48
  %86 = call i32 @ilaenv_(ptr noundef nonnull @c__12, ptr noundef nonnull @.str, ptr noundef nonnull %32, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %14, i32 noundef 6, i32 noundef 2) #5
  %87 = call i32 @llvm.smax.i32(i32 %86, i32 15)
  %88 = call i32 @ilaenv_(ptr noundef nonnull @c__14, ptr noundef nonnull @.str, ptr noundef nonnull %32, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %14, i32 noundef 6, i32 noundef 2) #5
  %89 = call i32 @llvm.smax.i32(i32 %88, i32 0)
  %90 = call i32 @ilaenv_(ptr noundef nonnull @c__16, ptr noundef nonnull @.str, ptr noundef nonnull %32, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %14, i32 noundef 6, i32 noundef 2) #5
  %91 = call i32 @llvm.smax.i32(i32 %90, i32 0)
  %92 = call i32 @llvm.umin.i32(i32 %91, i32 2)
  store i32 %92, ptr %21, align 4, !tbaa !5
  %93 = load i32, ptr %2, align 4, !tbaa !5
  %94 = add nsw i32 %93, -1
  %95 = sdiv i32 %94, 3
  %96 = load i32, ptr %14, align 4, !tbaa !5
  %97 = sdiv i32 %96, 2
  %98 = call i32 @llvm.smin.i32(i32 %95, i32 %97)
  store i32 %98, ptr %31, align 4, !tbaa !5
  %99 = load i32, ptr %4, align 4, !tbaa !5
  %100 = load i32, ptr %3, align 4, !tbaa !5
  %101 = sub nsw i32 %99, %100
  %102 = icmp slt i32 %101, 10
  %103 = mul i32 %101, 30
  %104 = add i32 %103, 30
  %105 = select i1 %102, i32 300, i32 %104
  store i32 %99, ptr %18, align 4, !tbaa !5
  store i32 %105, ptr %17, align 4, !tbaa !5
  %.not511554 = icmp slt i32 %105, 1
  br i1 %.not511554, label %._crit_edge560, label %.lr.ph559

.lr.ph559:                                        ; preds = %85
  %106 = add nsw i32 %93, -3
  %107 = sdiv i32 %106, 6
  %108 = shl i32 %96, 1
  %109 = sdiv i32 %108, 3
  %110 = call i32 @llvm.smin.i32(i32 %107, i32 %109)
  %111 = srem i32 %110, 2
  %112 = sub nsw i32 %110, %111
  %113 = call i32 @llvm.smin.i32(i32 %87, i32 %98)
  %114 = call i32 @llvm.smin.i32(i32 %112, i32 %74)
  %115 = add i32 %36, 1
  %116 = sext i32 %36 to i64
  br label %117

117:                                              ; preds = %.lr.ph559, %440
  %.0483557 = phi i32 [ 1, %.lr.ph559 ], [ %443, %440 ]
  %.0490556 = phi i32 [ 1, %.lr.ph559 ], [ %.1491, %440 ]
  %.0492555 = phi i32 [ undef, %.lr.ph559 ], [ %.1493, %440 ]
  %118 = load i32, ptr %18, align 4, !tbaa !5
  %119 = load i32, ptr %3, align 4, !tbaa !5
  %120 = icmp slt i32 %118, %119
  br i1 %120, label %.loopexit545, label %.preheader544.preheader

.preheader544.preheader:                          ; preds = %117
  %121 = sext i32 %118 to i64
  %122 = sext i32 %119 to i64
  br label %.preheader544

.preheader544:                                    ; preds = %.preheader544.preheader, %123
  %indvars.iv = phi i64 [ %121, %.preheader544.preheader ], [ %indvars.iv.next, %123 ]
  %.not512.not = icmp sgt i64 %indvars.iv, %122
  br i1 %.not512.not, label %123, label %.split.loop.exit

123:                                              ; preds = %.preheader544
  %indvars.iv.next = add nsw i64 %indvars.iv, -1
  %124 = mul nsw i64 %indvars.iv.next, %116
  %125 = getelementptr double, ptr %38, i64 %124
  %126 = getelementptr double, ptr %125, i64 %indvars.iv
  %127 = load double, ptr %126, align 8, !tbaa !10
  %128 = fcmp oeq double %127, 0.000000e+00
  br i1 %128, label %.split.loop.exit583, label %.preheader544, !llvm.loop !12

.split.loop.exit583:                              ; preds = %123
  %129 = trunc nsw i64 %indvars.iv to i32
  br label %.split.loop.exit

.split.loop.exit:                                 ; preds = %.preheader544, %.split.loop.exit583
  %.1485 = phi i32 [ %129, %.split.loop.exit583 ], [ %119, %.preheader544 ]
  store i32 %.1485, ptr %19, align 4, !tbaa !5
  %130 = sub nsw i32 %118, %.1485
  %131 = add nsw i32 %130, 1
  %132 = call i32 @llvm.smin.i32(i32 %131, i32 %98)
  %133 = icmp slt i32 %.0490556, 5
  %134 = load i32, ptr %31, align 4
  %135 = shl i32 %134, 1
  %.sink = select i1 %133, i32 %62, i32 %135
  %136 = call i32 @llvm.smin.i32(i32 %132, i32 %.sink)
  store i32 %136, ptr %31, align 4, !tbaa !5
  %137 = icmp slt i32 %136, %98
  br i1 %137, label %138, label %163

138:                                              ; preds = %.split.loop.exit
  %.not517 = icmp slt i32 %136, %130
  br i1 %.not517, label %140, label %139

139:                                              ; preds = %138
  store i32 %131, ptr %31, align 4, !tbaa !5
  br label %163

140:                                              ; preds = %138
  %141 = sub nsw i32 %118, %136
  %142 = add nsw i32 %141, 1
  %143 = mul nsw i32 %141, %36
  %144 = add nsw i32 %142, %143
  %145 = sext i32 %144 to i64
  %146 = getelementptr inbounds double, ptr %38, i64 %145
  %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 i32 %141, -1
  %152 = mul nsw i32 %151, %36
  %153 = add nsw i32 %152, %141
  %154 = sext i32 %153 to i64
  %155 = getelementptr inbounds double, ptr %38, i64 %154
  %156 = load double, ptr %155, align 8, !tbaa !10
  %157 = fcmp oge double %156, 0.000000e+00
  %158 = fneg double %156
  %159 = select i1 %157, double %156, double %158
  %160 = fcmp ogt double %150, %159
  br i1 %160, label %161, label %163

161:                                              ; preds = %140
  %162 = add nsw i32 %136, 1
  store i32 %162, ptr %31, align 4, !tbaa !5
  br label %163

163:                                              ; preds = %139, %161, %140, %.split.loop.exit
  %164 = phi i32 [ %131, %139 ], [ %162, %161 ], [ %136, %140 ], [ %136, %.split.loop.exit ]
  br i1 %133, label %172, label %165

165:                                              ; preds = %163
  %166 = icmp slt i32 %.0492555, 0
  %.not518 = icmp slt i32 %164, %132
  %or.cond533 = select i1 %166, i1 %.not518, i1 false
  br i1 %or.cond533, label %172, label %167

167:                                              ; preds = %165
  %168 = add nsw i32 %.0492555, 1
  %169 = sub nsw i32 %164, %168
  %170 = icmp slt i32 %169, 2
  %spec.store.select = select i1 %170, i32 0, i32 %168
  %171 = sub nsw i32 %164, %spec.store.select
  store i32 %171, ptr %31, align 4, !tbaa !5
  br label %172

172:                                              ; preds = %165, %163, %167
  %173 = phi i32 [ %171, %167 ], [ %164, %163 ], [ %164, %165 ]
  %.1493 = phi i32 [ %spec.store.select, %167 ], [ -1, %163 ], [ %.0492555, %165 ]
  %174 = load i32, ptr %2, align 4, !tbaa !5
  %175 = sub nsw i32 %174, %173
  %176 = add nsw i32 %175, 1
  %177 = add nsw i32 %173, 1
  %178 = xor i32 %173, -1
  %179 = add i32 %175, %178
  store i32 %179, ptr %34, align 4, !tbaa !5
  %180 = add nsw i32 %173, 2
  %.neg535 = add i32 %174, 1
  %181 = shl i32 %173, 1
  %reass.sub = sub i32 %.neg535, %181
  %182 = add i32 %reass.sub, -2
  store i32 %182, ptr %35, align 4, !tbaa !5
  %183 = add nsw i32 %176, %36
  %184 = sext i32 %183 to i64
  %185 = getelementptr inbounds double, ptr %38, i64 %184
  %186 = mul nsw i32 %177, %36
  %187 = add nsw i32 %176, %186
  %188 = sext i32 %187 to i64
  %189 = getelementptr inbounds double, ptr %38, i64 %188
  %190 = add nsw i32 %180, %36
  %191 = sext i32 %190 to i64
  %192 = getelementptr inbounds double, ptr %38, i64 %191
  call void @dlaqr3_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %19, ptr noundef nonnull %18, ptr noundef nonnull %31, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %29, ptr noundef nonnull %26, ptr noundef %7, ptr noundef %8, ptr noundef %185, ptr noundef nonnull %6, ptr noundef nonnull %34, ptr noundef %189, ptr noundef nonnull %6, ptr noundef nonnull %35, ptr noundef %192, ptr noundef nonnull %6, ptr noundef nonnull %13, ptr noundef nonnull %14) #5
  %193 = load i32, ptr %26, align 4, !tbaa !5
  %194 = load i32, ptr %18, align 4, !tbaa !5
  %195 = sub i32 %194, %193
  store i32 %195, ptr %18, align 4, !tbaa !5
  %196 = load i32, ptr %29, align 4, !tbaa !5
  %197 = sub nsw i32 %195, %196
  %198 = add nsw i32 %197, 1
  %199 = icmp eq i32 %193, 0
  br i1 %199, label %._crit_edge576, label %200

._crit_edge576:                                   ; preds = %172
  %.pre = load i32, ptr %19, align 4, !tbaa !5
  %.pre581 = sub nsw i32 %195, %.pre
  br label %207

200:                                              ; preds = %172
  %201 = mul nsw i32 %193, 100
  %202 = load i32, ptr %31, align 4, !tbaa !5
  %203 = mul nsw i32 %202, %89
  %.not519 = icmp sgt i32 %201, %203
  br i1 %.not519, label %440, label %204

204:                                              ; preds = %200
  %205 = load i32, ptr %19, align 4, !tbaa !5
  %206 = sub nsw i32 %195, %205
  %.not521 = icmp slt i32 %206, %113
  br i1 %.not521, label %440, label %207

207:                                              ; preds = %._crit_edge576, %204
  %.pre-phi = phi i32 [ %.pre581, %._crit_edge576 ], [ %206, %204 ]
  %208 = phi i32 [ %.pre, %._crit_edge576 ], [ %205, %204 ]
  %209 = call i32 @llvm.smax.i32(i32 %.pre-phi, i32 2)
  %210 = call i32 @llvm.smin.i32(i32 %114, i32 %209)
  %211 = srem i32 %210, 2
  %212 = sdiv i32 %210, 2
  %213 = sub nsw i32 %210, %211
  store i32 %213, ptr %30, align 4, !tbaa !5
  %214 = srem i32 %.0490556, 6
  %215 = icmp eq i32 %214, 0
  br i1 %215, label %216, label %267

216:                                              ; preds = %207
  %217 = sub nsw i32 %195, %213
  %218 = add nsw i32 %217, 1
  %219 = add nsw i32 %217, 2
  %220 = add nsw i32 %208, 2
  %221 = call i32 @llvm.smax.i32(i32 %219, i32 %220)
  %.not530551 = icmp slt i32 %195, %221
  br i1 %.not530551, label %._crit_edge, label %.lr.ph553.preheader

.lr.ph553.preheader:                              ; preds = %216
  %222 = sext i32 %195 to i64
  %223 = sext i32 %221 to i64
  br label %.lr.ph553

.lr.ph553:                                        ; preds = %.lr.ph553.preheader, %.lr.ph553
  %indvars.iv573 = phi i64 [ %222, %.lr.ph553.preheader ], [ %indvars.iv.next574, %.lr.ph553 ]
  %indvars575 = trunc i64 %indvars.iv573 to i32
  %224 = add nsw i64 %indvars.iv573, -1
  %225 = add nsw i32 %indvars575, -1
  %226 = mul nsw i32 %225, %36
  %227 = sext i32 %226 to i64
  %228 = getelementptr double, ptr %38, i64 %indvars.iv573
  %229 = getelementptr double, ptr %228, i64 %227
  %230 = load double, ptr %229, align 8, !tbaa !10
  %231 = fcmp oge double %230, 0.000000e+00
  %232 = fneg double %230
  %233 = select i1 %231, double %230, double %232
  %indvars.iv.next574 = add nsw i64 %indvars.iv573, -2
  %234 = mul nsw i64 %indvars.iv.next574, %116
  %235 = getelementptr double, ptr %38, i64 %234
  %236 = getelementptr double, ptr %235, i64 %224
  %237 = load double, ptr %236, align 8, !tbaa !10
  %238 = fcmp oge double %237, 0.000000e+00
  %239 = fneg double %237
  %240 = select i1 %238, double %237, double %239
  %241 = fadd double %233, %240
  %242 = mul i32 %115, %indvars575
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds double, ptr %38, i64 %243
  %245 = load double, ptr %244, align 8, !tbaa !10
  %246 = call double @llvm.fmuladd.f64(double %241, double 7.500000e-01, double %245)
  store double %246, ptr %22, align 8, !tbaa !10
  store double %241, ptr %23, align 8, !tbaa !10
  %247 = fmul double %241, -4.375000e-01
  store double %247, ptr %24, align 8, !tbaa !10
  store double %246, ptr %25, align 8, !tbaa !10
  %248 = getelementptr inbounds double, ptr %39, i64 %224
  %249 = getelementptr inbounds double, ptr %40, i64 %224
  %250 = getelementptr inbounds double, ptr %39, i64 %indvars.iv573
  %251 = getelementptr inbounds double, ptr %40, i64 %indvars.iv573
  call void @dlanv2_(ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef nonnull %248, ptr noundef nonnull %249, ptr noundef nonnull %250, ptr noundef nonnull %251, ptr noundef nonnull %27, ptr noundef nonnull %28) #5
  %.not530 = icmp slt i64 %indvars.iv.next574, %223
  br i1 %.not530, label %._crit_edge.loopexit, label %.lr.ph553, !llvm.loop !14

._crit_edge.loopexit:                             ; preds = %.lr.ph553
  %.pre578 = load i32, ptr %19, align 4, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %216
  %252 = phi i32 [ %.pre578, %._crit_edge.loopexit ], [ %208, %216 ]
  %253 = icmp eq i32 %218, %252
  br i1 %253, label %254, label %.loopexit

254:                                              ; preds = %._crit_edge
  %255 = mul i32 %219, %115
  %256 = sext i32 %255 to i64
  %257 = getelementptr inbounds double, ptr %38, i64 %256
  %258 = load double, ptr %257, align 8, !tbaa !10
  %259 = sext i32 %219 to i64
  %260 = getelementptr inbounds double, ptr %39, i64 %259
  store double %258, ptr %260, align 8, !tbaa !10
  %261 = getelementptr inbounds double, ptr %40, i64 %259
  store double 0.000000e+00, ptr %261, align 8, !tbaa !10
  %262 = load double, ptr %260, align 8, !tbaa !10
  %263 = sext i32 %218 to i64
  %264 = getelementptr inbounds double, ptr %39, i64 %263
  store double %262, ptr %264, align 8, !tbaa !10
  %265 = load double, ptr %261, align 8, !tbaa !10
  %266 = getelementptr inbounds double, ptr %40, i64 %263
  store double %265, ptr %266, align 8, !tbaa !10
  br label %.loopexit

267:                                              ; preds = %207
  %268 = sub nsw i32 %195, %198
  %.not524.not = icmp slt i32 %268, %212
  br i1 %.not524.not, label %269, label %319

269:                                              ; preds = %267
  %270 = sub nsw i32 %195, %213
  %271 = add nsw i32 %270, 1
  %272 = load i32, ptr %2, align 4, !tbaa !5
  %273 = mul i32 %271, %115
  %274 = sext i32 %273 to i64
  %275 = getelementptr inbounds double, ptr %38, i64 %274
  %276 = sub i32 %115, %213
  %277 = add i32 %276, %272
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds double, ptr %38, i64 %278
  call void @dlacpy_(ptr noundef nonnull @.str.1, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef %275, ptr noundef nonnull %6, ptr noundef %279, ptr noundef nonnull %6) #5
  %280 = load i32, ptr %30, align 4, !tbaa !5
  %281 = icmp sgt i32 %280, %87
  %282 = sext i32 %271 to i64
  %283 = getelementptr inbounds double, ptr %39, i64 %282
  %284 = getelementptr inbounds double, ptr %40, i64 %282
  br i1 %281, label %285, label %286

285:                                              ; preds = %269
  call void @dlaqr4_(ptr noundef nonnull @c_false, ptr noundef nonnull @c_false, ptr noundef nonnull %30, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef %279, ptr noundef nonnull %6, ptr noundef nonnull %283, ptr noundef nonnull %284, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %20, ptr noundef nonnull @c__1, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %33) #5
  br label %287

286:                                              ; preds = %269
  call void @dlahqr_(ptr noundef nonnull @c_false, ptr noundef nonnull @c_false, ptr noundef nonnull %30, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef %279, ptr noundef nonnull %6, ptr noundef nonnull %283, ptr noundef nonnull %284, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %20, ptr noundef nonnull @c__1, ptr noundef nonnull %33) #5
  br label %287

287:                                              ; preds = %286, %285
  %288 = load i32, ptr %33, align 4, !tbaa !5
  %289 = add nsw i32 %288, %271
  %290 = load i32, ptr %18, align 4, !tbaa !5
  %.not525 = icmp slt i32 %289, %290
  br i1 %.not525, label %319, label %291

291:                                              ; preds = %287
  %292 = add nsw i32 %290, -1
  %293 = mul i32 %292, %115
  %294 = sext i32 %293 to i64
  %295 = getelementptr inbounds double, ptr %38, i64 %294
  %296 = load double, ptr %295, align 8, !tbaa !10
  store double %296, ptr %22, align 8, !tbaa !10
  %297 = mul nsw i32 %292, %36
  %298 = add nsw i32 %297, %290
  %299 = sext i32 %298 to i64
  %300 = getelementptr inbounds double, ptr %38, i64 %299
  %301 = load double, ptr %300, align 8, !tbaa !10
  store double %301, ptr %24, align 8, !tbaa !10
  %302 = mul nsw i32 %290, %36
  %303 = add nsw i32 %292, %302
  %304 = sext i32 %303 to i64
  %305 = getelementptr inbounds double, ptr %38, i64 %304
  %306 = load double, ptr %305, align 8, !tbaa !10
  store double %306, ptr %23, align 8, !tbaa !10
  %307 = mul i32 %290, %115
  %308 = sext i32 %307 to i64
  %309 = getelementptr inbounds double, ptr %38, i64 %308
  %310 = load double, ptr %309, align 8, !tbaa !10
  store double %310, ptr %25, align 8, !tbaa !10
  %311 = sext i32 %292 to i64
  %312 = getelementptr inbounds double, ptr %39, i64 %311
  %313 = getelementptr inbounds double, ptr %40, i64 %311
  %314 = sext i32 %290 to i64
  %315 = getelementptr inbounds double, ptr %39, i64 %314
  %316 = getelementptr inbounds double, ptr %40, i64 %314
  call void @dlanv2_(ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef nonnull %312, ptr noundef nonnull %313, ptr noundef nonnull %315, ptr noundef nonnull %316, ptr noundef nonnull %27, ptr noundef nonnull %28) #5
  %317 = load i32, ptr %18, align 4, !tbaa !5
  %318 = add nsw i32 %317, -1
  br label %319

319:                                              ; preds = %287, %291, %267
  %320 = phi i32 [ %317, %291 ], [ %290, %287 ], [ %195, %267 ]
  %.0481 = phi i32 [ %318, %291 ], [ %289, %287 ], [ %198, %267 ]
  %321 = sub nsw i32 %320, %.0481
  %322 = load i32, ptr %30, align 4, !tbaa !5
  %.not526 = icmp slt i32 %321, %322
  %323 = icmp sle i32 %320, %.0481
  %or.cond561 = or i1 %.not526, %323
  br i1 %or.cond561, label %.loopexit543, label %.preheader.preheader

.preheader.preheader:                             ; preds = %319
  %324 = sext i32 %.0481 to i64
  %325 = sext i32 %320 to i64
  %.phi.trans.insert = getelementptr inbounds double, ptr %40, i64 %324
  br label %.preheader

.preheader:                                       ; preds = %.preheader.preheader, %356
  %indvars.iv567 = phi i64 [ %325, %.preheader.preheader ], [ %indvars.iv.next568, %356 ]
  %.pre577 = load double, ptr %.phi.trans.insert, align 8, !tbaa !10
  br label %326

326:                                              ; preds = %.preheader, %354
  %327 = phi double [ %.pre577, %.preheader ], [ %355, %354 ]
  %indvars.iv564 = phi i64 [ %324, %.preheader ], [ %indvars.iv.next565, %354 ]
  %.1547 = phi i32 [ 1, %.preheader ], [ %.2, %354 ]
  %328 = getelementptr inbounds double, ptr %39, i64 %indvars.iv564
  %329 = load double, ptr %328, align 8, !tbaa !10
  %330 = insertelement <2 x double> poison, double %329, i64 0
  %331 = insertelement <2 x double> %330, double %327, i64 1
  %332 = fcmp oge <2 x double> %331, zeroinitializer
  %333 = fneg <2 x double> %331
  %334 = select <2 x i1> %332, <2 x double> %331, <2 x double> %333
  %shift = shufflevector <2 x double> %334, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %335 = fadd <2 x double> %334, %shift
  %336 = extractelement <2 x double> %335, i64 0
  %indvars.iv.next565 = add nsw i64 %indvars.iv564, 1
  %337 = getelementptr double, ptr %7, i64 %indvars.iv564
  %338 = load double, ptr %337, align 8, !tbaa !10
  %339 = fcmp oge double %338, 0.000000e+00
  %340 = fneg double %338
  %341 = select i1 %339, double %338, double %340
  %342 = getelementptr double, ptr %8, i64 %indvars.iv564
  %343 = load double, ptr %342, align 8, !tbaa !10
  %344 = fcmp oge double %343, 0.000000e+00
  %345 = fneg double %343
  %346 = select i1 %344, double %343, double %345
  %347 = fadd double %341, %346
  %348 = fcmp olt double %336, %347
  br i1 %348, label %349, label %354

349:                                              ; preds = %326
  %350 = getelementptr inbounds double, ptr %40, i64 %indvars.iv564
  store double %338, ptr %328, align 8, !tbaa !10
  store double %329, ptr %337, align 8, !tbaa !10
  %351 = load <2 x double>, ptr %350, align 8, !tbaa !10
  %352 = shufflevector <2 x double> %351, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  store <2 x double> %352, ptr %350, align 8, !tbaa !10
  %353 = extractelement <2 x double> %351, i64 0
  br label %354

354:                                              ; preds = %326, %349
  %355 = phi double [ %353, %349 ], [ %343, %326 ]
  %.2 = phi i32 [ 0, %349 ], [ %.1547, %326 ]
  %.not527.not = icmp slt i64 %indvars.iv.next565, %indvars.iv567
  br i1 %.not527.not, label %326, label %356, !llvm.loop !15

356:                                              ; preds = %354
  %indvars.iv.next568 = add nsw i64 %indvars.iv567, -1
  %357 = icmp sle i64 %indvars.iv.next568, %324
  %358 = icmp ne i32 %.2, 0
  %or.cond = select i1 %357, i1 true, i1 %358
  br i1 %or.cond, label %.loopexit543, label %.preheader, !llvm.loop !16

.loopexit543:                                     ; preds = %356, %319
  %359 = add nsw i32 %.0481, 2
  %.not528549 = icmp slt i32 %320, %359
  br i1 %.not528549, label %.loopexit, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.loopexit543
  %360 = sext i32 %320 to i64
  %361 = sext i32 %359 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %379
  %indvars.iv570 = phi i64 [ %360, %.lr.ph.preheader ], [ %indvars.iv.next571.pre-phi, %379 ]
  %362 = getelementptr inbounds double, ptr %40, i64 %indvars.iv570
  %363 = load double, ptr %362, align 8, !tbaa !10
  %364 = add nsw i64 %indvars.iv570, -1
  %365 = getelementptr inbounds double, ptr %40, i64 %364
  %366 = load double, ptr %365, align 8, !tbaa !10
  %367 = fneg double %366
  %368 = fcmp une double %363, %367
  br i1 %368, label %369, label %.lr.ph._crit_edge

.lr.ph._crit_edge:                                ; preds = %.lr.ph
  %.pre582 = add nsw i64 %indvars.iv570, -2
  br label %379

369:                                              ; preds = %.lr.ph
  %370 = getelementptr inbounds double, ptr %39, i64 %indvars.iv570
  %371 = load double, ptr %370, align 8, !tbaa !10
  %372 = getelementptr inbounds double, ptr %39, i64 %364
  %373 = add nsw i64 %indvars.iv570, -2
  %374 = getelementptr inbounds double, ptr %39, i64 %373
  %375 = load <2 x double>, ptr %374, align 8, !tbaa !10
  store <2 x double> %375, ptr %372, align 8, !tbaa !10
  store double %371, ptr %374, align 8, !tbaa !10
  %376 = load double, ptr %362, align 8, !tbaa !10
  %377 = getelementptr inbounds double, ptr %40, i64 %373
  %378 = load <2 x double>, ptr %377, align 8, !tbaa !10
  store <2 x double> %378, ptr %365, align 8, !tbaa !10
  store double %376, ptr %377, align 8, !tbaa !10
  br label %379

379:                                              ; preds = %.lr.ph._crit_edge, %369
  %indvars.iv.next571.pre-phi = phi i64 [ %.pre582, %.lr.ph._crit_edge ], [ %373, %369 ]
  %.not528 = icmp slt i64 %indvars.iv.next571.pre-phi, %361
  br i1 %.not528, label %.loopexit, label %.lr.ph, !llvm.loop !17

.loopexit:                                        ; preds = %379, %.loopexit543, %._crit_edge, %254
  %.1482 = phi i32 [ %218, %254 ], [ %218, %._crit_edge ], [ %.0481, %.loopexit543 ], [ %.0481, %379 ]
  %380 = load i32, ptr %18, align 4, !tbaa !5
  %381 = sub nsw i32 %380, %.1482
  %382 = icmp eq i32 %381, 1
  br i1 %382, label %383, label %409

383:                                              ; preds = %.loopexit
  %384 = sext i32 %380 to i64
  %385 = getelementptr inbounds double, ptr %40, i64 %384
  %386 = load double, ptr %385, align 8, !tbaa !10
  %387 = fcmp oeq double %386, 0.000000e+00
  br i1 %387, label %388, label %409

388:                                              ; preds = %383
  %389 = getelementptr inbounds double, ptr %39, i64 %384
  %390 = mul i32 %380, %115
  %391 = sext i32 %390 to i64
  %392 = getelementptr inbounds double, ptr %38, i64 %391
  %393 = load double, ptr %392, align 8, !tbaa !10
  %394 = getelementptr i8, ptr %389, i64 -8
  %395 = load <2 x double>, ptr %394, align 8, !tbaa !10
  %396 = insertelement <2 x double> poison, double %393, i64 0
  %397 = shufflevector <2 x double> %396, <2 x double> poison, <2 x i32> zeroinitializer
  %398 = fsub <2 x double> %395, %397
  %399 = fcmp oge <2 x double> %398, zeroinitializer
  %400 = fneg <2 x double> %398
  %401 = select <2 x i1> %399, <2 x double> %398, <2 x double> %400
  %402 = extractelement <2 x double> %401, i64 0
  %403 = extractelement <2 x double> %401, i64 1
  %404 = fcmp olt double %403, %402
  br i1 %404, label %405, label %407

405:                                              ; preds = %388
  %406 = extractelement <2 x double> %395, i64 1
  store double %406, ptr %394, align 8, !tbaa !10
  br label %409

407:                                              ; preds = %388
  %408 = extractelement <2 x double> %395, i64 0
  store double %408, ptr %389, align 8, !tbaa !10
  br label %409

409:                                              ; preds = %383, %407, %405, %.loopexit
  %410 = load i32, ptr %30, align 4, !tbaa !5
  %411 = add nsw i32 %381, 1
  %412 = call i32 @llvm.smin.i32(i32 %410, i32 %411)
  %413 = srem i32 %412, 2
  %414 = sub nsw i32 %412, %413
  store i32 %414, ptr %30, align 4, !tbaa !5
  %415 = add i32 %380, 1
  %416 = sub i32 %415, %414
  %417 = shl i32 %414, 1
  %418 = load i32, ptr %2, align 4, !tbaa !5
  %419 = sub nsw i32 %418, %417
  %420 = add nsw i32 %419, 1
  %421 = or disjoint i32 %417, 1
  %422 = add i32 %419, -2
  %423 = sub i32 %422, %421
  store i32 %423, ptr %34, align 4, !tbaa !5
  %424 = add nsw i32 %417, 4
  %.neg541 = add i32 %418, 1
  %425 = shl i32 %414, 2
  %reass.sub562 = sub i32 %.neg541, %425
  %426 = add i32 %reass.sub562, -4
  store i32 %426, ptr %35, align 4, !tbaa !5
  %427 = sext i32 %416 to i64
  %428 = getelementptr inbounds double, ptr %39, i64 %427
  %429 = getelementptr inbounds double, ptr %40, i64 %427
  %430 = add nsw i32 %420, %36
  %431 = sext i32 %430 to i64
  %432 = getelementptr inbounds double, ptr %38, i64 %431
  %433 = add nsw i32 %424, %36
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds double, ptr %38, i64 %434
  %436 = mul nsw i32 %421, %36
  %437 = add nsw i32 %420, %436
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds double, ptr %38, i64 %438
  call void @dlaqr5_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef nonnull %2, ptr noundef nonnull %19, ptr noundef nonnull %18, ptr noundef nonnull %30, ptr noundef nonnull %428, ptr noundef nonnull %429, 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 %432, ptr noundef nonnull %6, ptr noundef nonnull %35, ptr noundef %435, ptr noundef nonnull %6, ptr noundef nonnull %34, ptr noundef %439, ptr noundef nonnull %6) #5
  %.pre579 = load i32, ptr %26, align 4, !tbaa !5
  br label %440

440:                                              ; preds = %409, %204, %200
  %441 = phi i32 [ %.pre579, %409 ], [ %193, %204 ], [ %193, %200 ]
  %442 = add nsw i32 %.0490556, 1
  %.inv = icmp slt i32 %441, 1
  %.1491 = select i1 %.inv, i32 %442, i32 1
  %443 = add nuw nsw i32 %.0483557, 1
  %444 = load i32, ptr %17, align 4, !tbaa !5
  %.not511.not = icmp slt i32 %.0483557, %444
  br i1 %.not511.not, label %117, label %._crit_edge560.loopexit, !llvm.loop !18

._crit_edge560.loopexit:                          ; preds = %440
  %.pre580 = load i32, ptr %18, align 4, !tbaa !5
  br label %._crit_edge560

._crit_edge560:                                   ; preds = %._crit_edge560.loopexit, %85
  %445 = phi i32 [ %.pre580, %._crit_edge560.loopexit ], [ %99, %85 ]
  store i32 %445, ptr %15, align 4, !tbaa !5
  br label %.loopexit545

.loopexit545:                                     ; preds = %117, %._crit_edge560, %45, %47
  %.0 = phi i32 [ 1, %47 ], [ 1, %45 ], [ %80, %._crit_edge560 ], [ %80, %117 ]
  %446 = uitofp nneg i32 %.0 to double
  br label %447

447:                                              ; preds = %16, %.loopexit545, %83
  %.sink585 = phi double [ %446, %.loopexit545 ], [ %84, %83 ], [ 1.000000e+00, %16 ]
  store double %.sink585, ptr %13, align 8, !tbaa !10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, 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 4, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  ret void
}

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

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

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

declare void @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 void @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 i32 @llvm.smax.i32(i32, i32) #4

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.i32(i32, i32) #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 = !{!"int", !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,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MergedLoadStoreMotionPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass