; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (dlaqr4)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@c__13 = external hidden global 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 @dlaqr4_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15) #0 {
  %17 = alloca 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 %1440

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

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 @dlaqr2_(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 %1440

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 = %1428, %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 %1431

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

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 @dlaqr2_(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 %1420

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

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

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

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 ptr, ptr %22, align 8, !tbaa !5
  %917 = load i32, ptr %70, align 4, !tbaa !9
  %918 = load i32, ptr %33, align 4, !tbaa !9
  %919 = add nsw i32 %917, %918
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds double, ptr %916, i64 %920
  %922 = load ptr, ptr %23, align 8, !tbaa !5
  %923 = load ptr, ptr %24, align 8, !tbaa !5
  %924 = load i32, ptr %69, align 4, !tbaa !9
  %925 = sext i32 %924 to i64
  %926 = getelementptr inbounds double, ptr %923, i64 %925
  %927 = load ptr, ptr %25, 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 = 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 %921, ptr noundef %922, ptr noundef %926, ptr noundef %930, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %931, ptr noundef @c__1, ptr noundef %82)
  %932 = load i32, ptr %82, align 4, !tbaa !9
  %933 = load i32, ptr %69, align 4, !tbaa !9
  %934 = add nsw i32 %933, %932
  store i32 %934, ptr %69, align 4, !tbaa !9
  %935 = load i32, ptr %69, align 4, !tbaa !9
  %936 = load i32, ptr %48, align 4, !tbaa !9
  %937 = icmp sge i32 %935, %936
  br i1 %937, label %938, label %999

938:                                              ; preds = %890
  %939 = load ptr, ptr %22, align 8, !tbaa !5
  %940 = load i32, ptr %48, align 4, !tbaa !9
  %941 = sub nsw i32 %940, 1
  %942 = load i32, ptr %48, align 4, !tbaa !9
  %943 = sub nsw i32 %942, 1
  %944 = load i32, ptr %33, align 4, !tbaa !9
  %945 = mul nsw i32 %943, %944
  %946 = add nsw i32 %941, %945
  %947 = sext i32 %946 to i64
  %948 = getelementptr inbounds double, ptr %939, i64 %947
  %949 = load double, ptr %948, align 8, !tbaa !11
  store double %949, ptr %60, align 8, !tbaa !11
  %950 = load ptr, ptr %22, align 8, !tbaa !5
  %951 = load i32, ptr %48, align 4, !tbaa !9
  %952 = load i32, ptr %48, align 4, !tbaa !9
  %953 = sub nsw i32 %952, 1
  %954 = load i32, ptr %33, align 4, !tbaa !9
  %955 = mul nsw i32 %953, %954
  %956 = add nsw i32 %951, %955
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds double, ptr %950, i64 %957
  %959 = load double, ptr %958, align 8, !tbaa !11
  store double %959, ptr %62, align 8, !tbaa !11
  %960 = load ptr, ptr %22, align 8, !tbaa !5
  %961 = load i32, ptr %48, align 4, !tbaa !9
  %962 = sub nsw i32 %961, 1
  %963 = load i32, ptr %48, align 4, !tbaa !9
  %964 = load i32, ptr %33, align 4, !tbaa !9
  %965 = mul nsw i32 %963, %964
  %966 = add nsw i32 %962, %965
  %967 = sext i32 %966 to i64
  %968 = getelementptr inbounds double, ptr %960, i64 %967
  %969 = load double, ptr %968, align 8, !tbaa !11
  store double %969, ptr %61, align 8, !tbaa !11
  %970 = load ptr, ptr %22, align 8, !tbaa !5
  %971 = load i32, ptr %48, align 4, !tbaa !9
  %972 = load i32, ptr %48, align 4, !tbaa !9
  %973 = load i32, ptr %33, align 4, !tbaa !9
  %974 = mul nsw i32 %972, %973
  %975 = add nsw i32 %971, %974
  %976 = sext i32 %975 to i64
  %977 = getelementptr inbounds double, ptr %970, i64 %976
  %978 = load double, ptr %977, align 8, !tbaa !11
  store double %978, ptr %63, align 8, !tbaa !11
  %979 = load ptr, ptr %24, align 8, !tbaa !5
  %980 = load i32, ptr %48, align 4, !tbaa !9
  %981 = sub nsw i32 %980, 1
  %982 = sext i32 %981 to i64
  %983 = getelementptr inbounds double, ptr %979, i64 %982
  %984 = load ptr, ptr %25, align 8, !tbaa !5
  %985 = load i32, ptr %48, align 4, !tbaa !9
  %986 = sub nsw i32 %985, 1
  %987 = sext i32 %986 to i64
  %988 = getelementptr inbounds double, ptr %984, i64 %987
  %989 = load ptr, ptr %24, align 8, !tbaa !5
  %990 = load i32, ptr %48, align 4, !tbaa !9
  %991 = sext i32 %990 to i64
  %992 = getelementptr inbounds double, ptr %989, i64 %991
  %993 = load ptr, ptr %25, align 8, !tbaa !5
  %994 = load i32, ptr %48, align 4, !tbaa !9
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds double, ptr %993, i64 %995
  call void @dlanv2_(ptr noundef %60, ptr noundef %61, ptr noundef %62, ptr noundef %63, ptr noundef %983, ptr noundef %988, ptr noundef %992, ptr noundef %996, ptr noundef %65, ptr noundef %71)
  %997 = load i32, ptr %48, align 4, !tbaa !9
  %998 = sub nsw i32 %997, 1
  store i32 %998, ptr %69, align 4, !tbaa !9
  br label %999

999:                                              ; preds = %938, %890
  br label %1000

1000:                                             ; preds = %999, %882
  %1001 = load i32, ptr %48, align 4, !tbaa !9
  %1002 = load i32, ptr %69, align 4, !tbaa !9
  %1003 = sub nsw i32 %1001, %1002
  %1004 = add nsw i32 %1003, 1
  %1005 = load i32, ptr %75, align 4, !tbaa !9
  %1006 = icmp sgt i32 %1004, %1005
  br i1 %1006, label %1007, label %1142

1007:                                             ; preds = %1000
  store i32 0, ptr %80, align 4, !tbaa !9
  %1008 = load i32, ptr %69, align 4, !tbaa !9
  %1009 = add nsw i32 %1008, 1
  store i32 %1009, ptr %38, align 4, !tbaa !9
  %1010 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %1010, ptr %55, align 4, !tbaa !9
  br label %1011

1011:                                             ; preds = %1137, %1007
  %1012 = load i32, ptr %55, align 4, !tbaa !9
  %1013 = load i32, ptr %38, align 4, !tbaa !9
  %1014 = icmp sge i32 %1012, %1013
  br i1 %1014, label %1015, label %1140

1015:                                             ; preds = %1011
  %1016 = load i32, ptr %80, align 4, !tbaa !9
  %1017 = icmp ne i32 %1016, 0
  br i1 %1017, label %1018, label %1019

1018:                                             ; preds = %1015
  br label %1141

1019:                                             ; preds = %1015
  store i32 1, ptr %80, align 4, !tbaa !9
  %1020 = load i32, ptr %55, align 4, !tbaa !9
  %1021 = sub nsw i32 %1020, 1
  store i32 %1021, ptr %39, align 4, !tbaa !9
  %1022 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %1022, ptr %54, align 4, !tbaa !9
  br label %1023

1023:                                             ; preds = %1133, %1019
  %1024 = load i32, ptr %54, align 4, !tbaa !9
  %1025 = load i32, ptr %39, align 4, !tbaa !9
  %1026 = icmp sle i32 %1024, %1025
  br i1 %1026, label %1027, label %1136

1027:                                             ; preds = %1023
  %1028 = load ptr, ptr %24, align 8, !tbaa !5
  %1029 = load i32, ptr %54, align 4, !tbaa !9
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds double, ptr %1028, i64 %1030
  %1032 = load double, ptr %1031, align 8, !tbaa !11
  store double %1032, ptr %42, align 8, !tbaa !11
  %1033 = load double, ptr %42, align 8, !tbaa !11
  %1034 = fcmp oge double %1033, 0.000000e+00
  br i1 %1034, label %1035, label %1037

1035:                                             ; preds = %1027
  %1036 = load double, ptr %42, align 8, !tbaa !11
  br label %1040

1037:                                             ; preds = %1027
  %1038 = load double, ptr %42, align 8, !tbaa !11
  %1039 = fneg double %1038
  br label %1040

1040:                                             ; preds = %1037, %1035
  %1041 = phi double [ %1036, %1035 ], [ %1039, %1037 ]
  %1042 = load ptr, ptr %25, align 8, !tbaa !5
  %1043 = load i32, ptr %54, align 4, !tbaa !9
  %1044 = sext i32 %1043 to i64
  %1045 = getelementptr inbounds double, ptr %1042, i64 %1044
  %1046 = load double, ptr %1045, align 8, !tbaa !11
  store double %1046, ptr %43, align 8, !tbaa !11
  %1047 = load double, ptr %43, align 8, !tbaa !11
  %1048 = fcmp oge double %1047, 0.000000e+00
  br i1 %1048, label %1049, label %1051

1049:                                             ; preds = %1040
  %1050 = load double, ptr %43, align 8, !tbaa !11
  br label %1054

1051:                                             ; preds = %1040
  %1052 = load double, ptr %43, align 8, !tbaa !11
  %1053 = fneg double %1052
  br label %1054

1054:                                             ; preds = %1051, %1049
  %1055 = phi double [ %1050, %1049 ], [ %1053, %1051 ]
  %1056 = fadd double %1041, %1055
  %1057 = load ptr, ptr %24, align 8, !tbaa !5
  %1058 = load i32, ptr %54, align 4, !tbaa !9
  %1059 = add nsw i32 %1058, 1
  %1060 = sext i32 %1059 to i64
  %1061 = getelementptr inbounds double, ptr %1057, i64 %1060
  %1062 = load double, ptr %1061, align 8, !tbaa !11
  store double %1062, ptr %44, align 8, !tbaa !11
  %1063 = load double, ptr %44, align 8, !tbaa !11
  %1064 = fcmp oge double %1063, 0.000000e+00
  br i1 %1064, label %1065, label %1067

1065:                                             ; preds = %1054
  %1066 = load double, ptr %44, align 8, !tbaa !11
  br label %1070

1067:                                             ; preds = %1054
  %1068 = load double, ptr %44, align 8, !tbaa !11
  %1069 = fneg double %1068
  br label %1070

1070:                                             ; preds = %1067, %1065
  %1071 = phi double [ %1066, %1065 ], [ %1069, %1067 ]
  %1072 = load ptr, ptr %25, align 8, !tbaa !5
  %1073 = load i32, ptr %54, align 4, !tbaa !9
  %1074 = add nsw i32 %1073, 1
  %1075 = sext i32 %1074 to i64
  %1076 = getelementptr inbounds double, ptr %1072, i64 %1075
  %1077 = load double, ptr %1076, align 8, !tbaa !11
  store double %1077, ptr %45, align 8, !tbaa !11
  %1078 = load double, ptr %45, align 8, !tbaa !11
  %1079 = fcmp oge double %1078, 0.000000e+00
  br i1 %1079, label %1080, label %1082

1080:                                             ; preds = %1070
  %1081 = load double, ptr %45, align 8, !tbaa !11
  br label %1085

1082:                                             ; preds = %1070
  %1083 = load double, ptr %45, align 8, !tbaa !11
  %1084 = fneg double %1083
  br label %1085

1085:                                             ; preds = %1082, %1080
  %1086 = phi double [ %1081, %1080 ], [ %1084, %1082 ]
  %1087 = fadd double %1071, %1086
  %1088 = fcmp olt double %1056, %1087
  br i1 %1088, label %1089, label %1132

1089:                                             ; preds = %1085
  store i32 0, ptr %80, align 4, !tbaa !9
  %1090 = load ptr, ptr %24, align 8, !tbaa !5
  %1091 = load i32, ptr %54, align 4, !tbaa !9
  %1092 = sext i32 %1091 to i64
  %1093 = getelementptr inbounds double, ptr %1090, i64 %1092
  %1094 = load double, ptr %1093, align 8, !tbaa !11
  store double %1094, ptr %50, align 8, !tbaa !11
  %1095 = load ptr, ptr %24, align 8, !tbaa !5
  %1096 = load i32, ptr %54, align 4, !tbaa !9
  %1097 = add nsw i32 %1096, 1
  %1098 = sext i32 %1097 to i64
  %1099 = getelementptr inbounds double, ptr %1095, i64 %1098
  %1100 = load double, ptr %1099, align 8, !tbaa !11
  %1101 = load ptr, ptr %24, align 8, !tbaa !5
  %1102 = load i32, ptr %54, align 4, !tbaa !9
  %1103 = sext i32 %1102 to i64
  %1104 = getelementptr inbounds double, ptr %1101, i64 %1103
  store double %1100, ptr %1104, align 8, !tbaa !11
  %1105 = load double, ptr %50, align 8, !tbaa !11
  %1106 = load ptr, ptr %24, align 8, !tbaa !5
  %1107 = load i32, ptr %54, align 4, !tbaa !9
  %1108 = add nsw i32 %1107, 1
  %1109 = sext i32 %1108 to i64
  %1110 = getelementptr inbounds double, ptr %1106, i64 %1109
  store double %1105, ptr %1110, align 8, !tbaa !11
  %1111 = load ptr, ptr %25, align 8, !tbaa !5
  %1112 = load i32, ptr %54, align 4, !tbaa !9
  %1113 = sext i32 %1112 to i64
  %1114 = getelementptr inbounds double, ptr %1111, i64 %1113
  %1115 = load double, ptr %1114, align 8, !tbaa !11
  store double %1115, ptr %50, align 8, !tbaa !11
  %1116 = load ptr, ptr %25, align 8, !tbaa !5
  %1117 = load i32, ptr %54, align 4, !tbaa !9
  %1118 = add nsw i32 %1117, 1
  %1119 = sext i32 %1118 to i64
  %1120 = getelementptr inbounds double, ptr %1116, i64 %1119
  %1121 = load double, ptr %1120, align 8, !tbaa !11
  %1122 = load ptr, ptr %25, align 8, !tbaa !5
  %1123 = load i32, ptr %54, align 4, !tbaa !9
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds double, ptr %1122, i64 %1124
  store double %1121, ptr %1125, align 8, !tbaa !11
  %1126 = load double, ptr %50, align 8, !tbaa !11
  %1127 = load ptr, ptr %25, align 8, !tbaa !5
  %1128 = load i32, ptr %54, align 4, !tbaa !9
  %1129 = add nsw i32 %1128, 1
  %1130 = sext i32 %1129 to i64
  %1131 = getelementptr inbounds double, ptr %1127, i64 %1130
  store double %1126, ptr %1131, align 8, !tbaa !11
  br label %1132

1132:                                             ; preds = %1089, %1085
  br label %1133

1133:                                             ; preds = %1132
  %1134 = load i32, ptr %54, align 4, !tbaa !9
  %1135 = add nsw i32 %1134, 1
  store i32 %1135, ptr %54, align 4, !tbaa !9
  br label %1023, !llvm.loop !17

1136:                                             ; preds = %1023
  br label %1137

1137:                                             ; preds = %1136
  %1138 = load i32, ptr %55, align 4, !tbaa !9
  %1139 = add nsw i32 %1138, -1
  store i32 %1139, ptr %55, align 4, !tbaa !9
  br label %1011, !llvm.loop !18

1140:                                             ; preds = %1011
  br label %1141

1141:                                             ; preds = %1140, %1018
  br label %1142

1142:                                             ; preds = %1141, %1000
  %1143 = load i32, ptr %69, align 4, !tbaa !9
  %1144 = add nsw i32 %1143, 2
  store i32 %1144, ptr %38, align 4, !tbaa !9
  %1145 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %1145, ptr %54, align 4, !tbaa !9
  br label %1146

1146:                                             ; preds = %1230, %1142
  %1147 = load i32, ptr %54, align 4, !tbaa !9
  %1148 = load i32, ptr %38, align 4, !tbaa !9
  %1149 = icmp sge i32 %1147, %1148
  br i1 %1149, label %1150, label %1233

1150:                                             ; preds = %1146
  %1151 = load ptr, ptr %25, align 8, !tbaa !5
  %1152 = load i32, ptr %54, align 4, !tbaa !9
  %1153 = sext i32 %1152 to i64
  %1154 = getelementptr inbounds double, ptr %1151, i64 %1153
  %1155 = load double, ptr %1154, align 8, !tbaa !11
  %1156 = load ptr, ptr %25, align 8, !tbaa !5
  %1157 = load i32, ptr %54, align 4, !tbaa !9
  %1158 = sub nsw i32 %1157, 1
  %1159 = sext i32 %1158 to i64
  %1160 = getelementptr inbounds double, ptr %1156, i64 %1159
  %1161 = load double, ptr %1160, align 8, !tbaa !11
  %1162 = fneg double %1161
  %1163 = fcmp une double %1155, %1162
  br i1 %1163, label %1164, label %1229

1164:                                             ; preds = %1150
  %1165 = load ptr, ptr %24, align 8, !tbaa !5
  %1166 = load i32, ptr %54, align 4, !tbaa !9
  %1167 = sext i32 %1166 to i64
  %1168 = getelementptr inbounds double, ptr %1165, i64 %1167
  %1169 = load double, ptr %1168, align 8, !tbaa !11
  store double %1169, ptr %50, align 8, !tbaa !11
  %1170 = load ptr, ptr %24, align 8, !tbaa !5
  %1171 = load i32, ptr %54, align 4, !tbaa !9
  %1172 = sub nsw i32 %1171, 1
  %1173 = sext i32 %1172 to i64
  %1174 = getelementptr inbounds double, ptr %1170, i64 %1173
  %1175 = load double, ptr %1174, align 8, !tbaa !11
  %1176 = load ptr, ptr %24, 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
  store double %1175, ptr %1179, align 8, !tbaa !11
  %1180 = load ptr, ptr %24, align 8, !tbaa !5
  %1181 = load i32, ptr %54, align 4, !tbaa !9
  %1182 = sub nsw i32 %1181, 2
  %1183 = sext i32 %1182 to i64
  %1184 = getelementptr inbounds double, ptr %1180, i64 %1183
  %1185 = load double, ptr %1184, align 8, !tbaa !11
  %1186 = load ptr, ptr %24, align 8, !tbaa !5
  %1187 = load i32, ptr %54, align 4, !tbaa !9
  %1188 = sub nsw i32 %1187, 1
  %1189 = sext i32 %1188 to i64
  %1190 = getelementptr inbounds double, ptr %1186, i64 %1189
  store double %1185, ptr %1190, align 8, !tbaa !11
  %1191 = load double, ptr %50, align 8, !tbaa !11
  %1192 = load ptr, ptr %24, align 8, !tbaa !5
  %1193 = load i32, ptr %54, align 4, !tbaa !9
  %1194 = sub nsw i32 %1193, 2
  %1195 = sext i32 %1194 to i64
  %1196 = getelementptr inbounds double, ptr %1192, i64 %1195
  store double %1191, ptr %1196, align 8, !tbaa !11
  %1197 = load ptr, ptr %25, align 8, !tbaa !5
  %1198 = load i32, ptr %54, align 4, !tbaa !9
  %1199 = sext i32 %1198 to i64
  %1200 = getelementptr inbounds double, ptr %1197, i64 %1199
  %1201 = load double, ptr %1200, align 8, !tbaa !11
  store double %1201, ptr %50, align 8, !tbaa !11
  %1202 = load ptr, ptr %25, align 8, !tbaa !5
  %1203 = load i32, ptr %54, align 4, !tbaa !9
  %1204 = sub nsw i32 %1203, 1
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds double, ptr %1202, i64 %1205
  %1207 = load double, ptr %1206, align 8, !tbaa !11
  %1208 = load ptr, ptr %25, align 8, !tbaa !5
  %1209 = load i32, ptr %54, align 4, !tbaa !9
  %1210 = sext i32 %1209 to i64
  %1211 = getelementptr inbounds double, ptr %1208, i64 %1210
  store double %1207, ptr %1211, align 8, !tbaa !11
  %1212 = load ptr, ptr %25, align 8, !tbaa !5
  %1213 = load i32, ptr %54, align 4, !tbaa !9
  %1214 = sub nsw i32 %1213, 2
  %1215 = sext i32 %1214 to i64
  %1216 = getelementptr inbounds double, ptr %1212, i64 %1215
  %1217 = load double, ptr %1216, align 8, !tbaa !11
  %1218 = load ptr, ptr %25, align 8, !tbaa !5
  %1219 = load i32, ptr %54, align 4, !tbaa !9
  %1220 = sub nsw i32 %1219, 1
  %1221 = sext i32 %1220 to i64
  %1222 = getelementptr inbounds double, ptr %1218, i64 %1221
  store double %1217, ptr %1222, align 8, !tbaa !11
  %1223 = load double, ptr %50, align 8, !tbaa !11
  %1224 = load ptr, ptr %25, align 8, !tbaa !5
  %1225 = load i32, ptr %54, align 4, !tbaa !9
  %1226 = sub nsw i32 %1225, 2
  %1227 = sext i32 %1226 to i64
  %1228 = getelementptr inbounds double, ptr %1224, i64 %1227
  store double %1223, ptr %1228, align 8, !tbaa !11
  br label %1229

1229:                                             ; preds = %1164, %1150
  br label %1230

1230:                                             ; preds = %1229
  %1231 = load i32, ptr %54, align 4, !tbaa !9
  %1232 = add nsw i32 %1231, -2
  store i32 %1232, ptr %54, align 4, !tbaa !9
  br label %1146, !llvm.loop !19

1233:                                             ; preds = %1146
  br label %1234

1234:                                             ; preds = %1233, %881
  %1235 = load i32, ptr %48, align 4, !tbaa !9
  %1236 = load i32, ptr %69, align 4, !tbaa !9
  %1237 = sub nsw i32 %1235, %1236
  %1238 = add nsw i32 %1237, 1
  %1239 = icmp eq i32 %1238, 2
  br i1 %1239, label %1240, label %1322

1240:                                             ; preds = %1234
  %1241 = load ptr, ptr %25, align 8, !tbaa !5
  %1242 = load i32, ptr %48, align 4, !tbaa !9
  %1243 = sext i32 %1242 to i64
  %1244 = getelementptr inbounds double, ptr %1241, i64 %1243
  %1245 = load double, ptr %1244, align 8, !tbaa !11
  %1246 = fcmp oeq double %1245, 0.000000e+00
  br i1 %1246, label %1247, label %1321

1247:                                             ; preds = %1240
  %1248 = load ptr, ptr %24, align 8, !tbaa !5
  %1249 = load i32, ptr %48, align 4, !tbaa !9
  %1250 = sext i32 %1249 to i64
  %1251 = getelementptr inbounds double, ptr %1248, i64 %1250
  %1252 = load double, ptr %1251, align 8, !tbaa !11
  %1253 = load ptr, ptr %22, align 8, !tbaa !5
  %1254 = load i32, ptr %48, align 4, !tbaa !9
  %1255 = load i32, ptr %48, align 4, !tbaa !9
  %1256 = load i32, ptr %33, align 4, !tbaa !9
  %1257 = mul nsw i32 %1255, %1256
  %1258 = add nsw i32 %1254, %1257
  %1259 = sext i32 %1258 to i64
  %1260 = getelementptr inbounds double, ptr %1253, i64 %1259
  %1261 = load double, ptr %1260, align 8, !tbaa !11
  %1262 = fsub double %1252, %1261
  store double %1262, ptr %42, align 8, !tbaa !11
  %1263 = load double, ptr %42, align 8, !tbaa !11
  %1264 = fcmp oge double %1263, 0.000000e+00
  br i1 %1264, label %1265, label %1267

1265:                                             ; preds = %1247
  %1266 = load double, ptr %42, align 8, !tbaa !11
  br label %1270

1267:                                             ; preds = %1247
  %1268 = load double, ptr %42, align 8, !tbaa !11
  %1269 = fneg double %1268
  br label %1270

1270:                                             ; preds = %1267, %1265
  %1271 = phi double [ %1266, %1265 ], [ %1269, %1267 ]
  %1272 = load ptr, ptr %24, align 8, !tbaa !5
  %1273 = load i32, ptr %48, align 4, !tbaa !9
  %1274 = sub nsw i32 %1273, 1
  %1275 = sext i32 %1274 to i64
  %1276 = getelementptr inbounds double, ptr %1272, 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 %43, align 8, !tbaa !11
  %1288 = load double, ptr %43, align 8, !tbaa !11
  %1289 = fcmp oge double %1288, 0.000000e+00
  br i1 %1289, label %1290, label %1292

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

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

1295:                                             ; preds = %1292, %1290
  %1296 = phi double [ %1291, %1290 ], [ %1294, %1292 ]
  %1297 = fcmp olt double %1271, %1296
  br i1 %1297, label %1298, label %1309

1298:                                             ; preds = %1295
  %1299 = load ptr, ptr %24, align 8, !tbaa !5
  %1300 = load i32, ptr %48, align 4, !tbaa !9
  %1301 = sext i32 %1300 to i64
  %1302 = getelementptr inbounds double, ptr %1299, i64 %1301
  %1303 = load double, ptr %1302, align 8, !tbaa !11
  %1304 = load ptr, ptr %24, align 8, !tbaa !5
  %1305 = load i32, ptr %48, align 4, !tbaa !9
  %1306 = sub nsw i32 %1305, 1
  %1307 = sext i32 %1306 to i64
  %1308 = getelementptr inbounds double, ptr %1304, i64 %1307
  store double %1303, ptr %1308, align 8, !tbaa !11
  br label %1320

1309:                                             ; preds = %1295
  %1310 = load ptr, ptr %24, align 8, !tbaa !5
  %1311 = load i32, ptr %48, align 4, !tbaa !9
  %1312 = sub nsw i32 %1311, 1
  %1313 = sext i32 %1312 to i64
  %1314 = getelementptr inbounds double, ptr %1310, i64 %1313
  %1315 = load double, ptr %1314, align 8, !tbaa !11
  %1316 = load ptr, ptr %24, align 8, !tbaa !5
  %1317 = load i32, ptr %48, align 4, !tbaa !9
  %1318 = sext i32 %1317 to i64
  %1319 = getelementptr inbounds double, ptr %1316, i64 %1318
  store double %1315, ptr %1319, align 8, !tbaa !11
  br label %1320

1320:                                             ; preds = %1309, %1298
  br label %1321

1321:                                             ; preds = %1320, %1240
  br label %1322

1322:                                             ; preds = %1321, %1234
  %1323 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %1323, ptr %38, align 4, !tbaa !9
  %1324 = load i32, ptr %48, align 4, !tbaa !9
  %1325 = load i32, ptr %69, align 4, !tbaa !9
  %1326 = sub nsw i32 %1324, %1325
  %1327 = add nsw i32 %1326, 1
  store i32 %1327, ptr %39, align 4, !tbaa !9
  %1328 = load i32, ptr %38, align 4, !tbaa !9
  %1329 = load i32, ptr %39, align 4, !tbaa !9
  %1330 = icmp sle i32 %1328, %1329
  br i1 %1330, label %1331, label %1333

1331:                                             ; preds = %1322
  %1332 = load i32, ptr %38, align 4, !tbaa !9
  br label %1335

1333:                                             ; preds = %1322
  %1334 = load i32, ptr %39, align 4, !tbaa !9
  br label %1335

1335:                                             ; preds = %1333, %1331
  %1336 = phi i32 [ %1332, %1331 ], [ %1334, %1333 ]
  store i32 %1336, ptr %75, align 4, !tbaa !9
  %1337 = load i32, ptr %75, align 4, !tbaa !9
  %1338 = srem i32 %1337, 2
  %1339 = load i32, ptr %75, align 4, !tbaa !9
  %1340 = sub nsw i32 %1339, %1338
  store i32 %1340, ptr %75, align 4, !tbaa !9
  %1341 = load i32, ptr %48, align 4, !tbaa !9
  %1342 = load i32, ptr %75, align 4, !tbaa !9
  %1343 = sub nsw i32 %1341, %1342
  %1344 = add nsw i32 %1343, 1
  store i32 %1344, ptr %69, align 4, !tbaa !9
  %1345 = load i32, ptr %75, align 4, !tbaa !9
  %1346 = shl i32 %1345, 1
  store i32 %1346, ptr %83, align 4, !tbaa !9
  %1347 = load ptr, ptr %19, align 8, !tbaa !5
  %1348 = load i32, ptr %1347, align 4, !tbaa !9
  %1349 = load i32, ptr %83, align 4, !tbaa !9
  %1350 = sub nsw i32 %1348, %1349
  %1351 = add nsw i32 %1350, 1
  store i32 %1351, ptr %72, align 4, !tbaa !9
  %1352 = load i32, ptr %83, align 4, !tbaa !9
  %1353 = add nsw i32 %1352, 1
  store i32 %1353, ptr %86, align 4, !tbaa !9
  %1354 = load ptr, ptr %19, align 8, !tbaa !5
  %1355 = load i32, ptr %1354, align 4, !tbaa !9
  %1356 = load i32, ptr %83, align 4, !tbaa !9
  %1357 = sub nsw i32 %1355, %1356
  %1358 = sub nsw i32 %1357, 3
  %1359 = load i32, ptr %83, align 4, !tbaa !9
  %1360 = add nsw i32 %1359, 1
  %1361 = sub nsw i32 %1358, %1360
  %1362 = add nsw i32 %1361, 1
  store i32 %1362, ptr %84, align 4, !tbaa !9
  %1363 = load i32, ptr %83, align 4, !tbaa !9
  %1364 = add nsw i32 %1363, 4
  store i32 %1364, ptr %89, align 4, !tbaa !9
  %1365 = load ptr, ptr %19, align 8, !tbaa !5
  %1366 = load i32, ptr %1365, align 4, !tbaa !9
  %1367 = load i32, ptr %83, align 4, !tbaa !9
  %1368 = sub nsw i32 %1366, %1367
  %1369 = load i32, ptr %89, align 4, !tbaa !9
  %1370 = sub nsw i32 %1368, %1369
  %1371 = add nsw i32 %1370, 1
  store i32 %1371, ptr %85, align 4, !tbaa !9
  %1372 = load ptr, ptr %17, align 8, !tbaa !5
  %1373 = load ptr, ptr %18, align 8, !tbaa !5
  %1374 = load ptr, ptr %19, align 8, !tbaa !5
  %1375 = load ptr, ptr %24, align 8, !tbaa !5
  %1376 = load i32, ptr %69, align 4, !tbaa !9
  %1377 = sext i32 %1376 to i64
  %1378 = getelementptr inbounds double, ptr %1375, i64 %1377
  %1379 = load ptr, ptr %25, align 8, !tbaa !5
  %1380 = load i32, ptr %69, align 4, !tbaa !9
  %1381 = sext i32 %1380 to i64
  %1382 = getelementptr inbounds double, ptr %1379, i64 %1381
  %1383 = load ptr, ptr %22, align 8, !tbaa !5
  %1384 = load i32, ptr %34, align 4, !tbaa !9
  %1385 = sext i32 %1384 to i64
  %1386 = getelementptr inbounds double, ptr %1383, i64 %1385
  %1387 = load ptr, ptr %23, align 8, !tbaa !5
  %1388 = load ptr, ptr %26, align 8, !tbaa !5
  %1389 = load ptr, ptr %27, align 8, !tbaa !5
  %1390 = load ptr, ptr %28, align 8, !tbaa !5
  %1391 = load i32, ptr %36, align 4, !tbaa !9
  %1392 = sext i32 %1391 to i64
  %1393 = getelementptr inbounds double, ptr %1390, i64 %1392
  %1394 = load ptr, ptr %29, align 8, !tbaa !5
  %1395 = load ptr, ptr %30, align 8, !tbaa !5
  %1396 = getelementptr inbounds double, ptr %1395, i64 1
  %1397 = load ptr, ptr %22, align 8, !tbaa !5
  %1398 = load i32, ptr %72, align 4, !tbaa !9
  %1399 = load i32, ptr %33, align 4, !tbaa !9
  %1400 = add nsw i32 %1398, %1399
  %1401 = sext i32 %1400 to i64
  %1402 = getelementptr inbounds double, ptr %1397, i64 %1401
  %1403 = load ptr, ptr %23, align 8, !tbaa !5
  %1404 = load ptr, ptr %22, align 8, !tbaa !5
  %1405 = load i32, ptr %89, align 4, !tbaa !9
  %1406 = load i32, ptr %33, align 4, !tbaa !9
  %1407 = add nsw i32 %1405, %1406
  %1408 = sext i32 %1407 to i64
  %1409 = getelementptr inbounds double, ptr %1404, i64 %1408
  %1410 = load ptr, ptr %23, align 8, !tbaa !5
  %1411 = load ptr, ptr %22, align 8, !tbaa !5
  %1412 = load i32, ptr %72, align 4, !tbaa !9
  %1413 = load i32, ptr %86, align 4, !tbaa !9
  %1414 = load i32, ptr %33, align 4, !tbaa !9
  %1415 = mul nsw i32 %1413, %1414
  %1416 = add nsw i32 %1412, %1415
  %1417 = sext i32 %1416 to i64
  %1418 = getelementptr inbounds double, ptr %1411, i64 %1417
  %1419 = load ptr, ptr %23, align 8, !tbaa !5
  call void @dlaqr5_(ptr noundef %1372, ptr noundef %1373, ptr noundef %53, ptr noundef %1374, ptr noundef %51, ptr noundef %48, ptr noundef %75, ptr noundef %1378, ptr noundef %1382, ptr noundef %1386, ptr noundef %1387, ptr noundef %1388, ptr noundef %1389, ptr noundef %1393, ptr noundef %1394, ptr noundef %1396, ptr noundef @c__3, ptr noundef %1402, ptr noundef %1403, ptr noundef %85, ptr noundef %1409, ptr noundef %1410, ptr noundef %84, ptr noundef %1418, ptr noundef %1419)
  br label %1420

1420:                                             ; preds = %1335, %694, %675
  %1421 = load i32, ptr %64, align 4, !tbaa !9
  %1422 = icmp sgt i32 %1421, 0
  br i1 %1422, label %1423, label %1424

1423:                                             ; preds = %1420
  store i32 1, ptr %47, align 4, !tbaa !9
  br label %1427

1424:                                             ; preds = %1420
  %1425 = load i32, ptr %47, align 4, !tbaa !9
  %1426 = add nsw i32 %1425, 1
  store i32 %1426, ptr %47, align 4, !tbaa !9
  br label %1427

1427:                                             ; preds = %1424, %1423
  br label %1428

1428:                                             ; preds = %1427
  %1429 = load i32, ptr %68, align 4, !tbaa !9
  %1430 = add nsw i32 %1429, 1
  store i32 %1430, ptr %68, align 4, !tbaa !9
  br label %432, !llvm.loop !20

1431:                                             ; preds = %432
  %1432 = load i32, ptr %48, align 4, !tbaa !9
  %1433 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 %1432, ptr %1433, align 4, !tbaa !9
  br label %1434

1434:                                             ; preds = %1431, %441
  br label %1435

1435:                                             ; preds = %1434, %155
  %1436 = load i32, ptr %81, align 4, !tbaa !9
  %1437 = sitofp i32 %1436 to double
  %1438 = load ptr, ptr %30, align 8, !tbaa !5
  %1439 = getelementptr inbounds double, ptr %1438, i64 1
  store double %1437, ptr %1439, align 8, !tbaa !11
  store i32 1, ptr %90, align 4
  br label %1440

1440:                                             ; preds = %1435, %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 @dlaqr2_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #3

declare 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 @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 @dlaqr4_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15) local_unnamed_addr #0 {
  %17 = alloca 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 %442, 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
  %.not521 = icmp eq i32 %46, -1
  br i1 %.not521, label %.loopexit534, 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 %.loopexit534

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
  %.not492 = icmp eq i32 %50, 0
  %spec.select = select i1 %.not492, 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 @dlaqr2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %17, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %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 %442

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 @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
  %88 = call i32 @llvm.smax.i32(i32 %87, i32 0)
  %89 = 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
  %90 = call i32 @llvm.smax.i32(i32 %89, i32 0)
  %91 = call i32 @llvm.umin.i32(i32 %90, i32 2)
  store i32 %91, ptr %21, align 4, !tbaa !5
  %92 = load i32, ptr %2, align 4, !tbaa !5
  %93 = add nsw i32 %92, -1
  %94 = sdiv i32 %93, 3
  %95 = load i32, ptr %14, align 4, !tbaa !5
  %96 = sdiv i32 %95, 2
  %97 = call i32 @llvm.smin.i32(i32 %94, i32 %96)
  store i32 %97, ptr %31, align 4, !tbaa !5
  %98 = load i32, ptr %4, align 4, !tbaa !5
  %99 = load i32, ptr %3, align 4, !tbaa !5
  %100 = sub nsw i32 %98, %99
  %101 = icmp slt i32 %100, 10
  %102 = mul i32 %100, 30
  %103 = add i32 %102, 30
  %104 = select i1 %101, i32 300, i32 %103
  store i32 %98, ptr %18, align 4, !tbaa !5
  store i32 %104, ptr %17, align 4, !tbaa !5
  %.not500543 = icmp slt i32 %104, 1
  br i1 %.not500543, label %._crit_edge549, label %.lr.ph548

.lr.ph548:                                        ; preds = %85
  %105 = add nsw i32 %92, -3
  %106 = sdiv i32 %105, 6
  %107 = shl i32 %95, 1
  %108 = sdiv i32 %107, 3
  %109 = call i32 @llvm.smin.i32(i32 %106, i32 %108)
  %110 = srem i32 %109, 2
  %111 = sub nsw i32 %109, %110
  %112 = call i32 @llvm.smax.i32(i32 %86, i32 15)
  %113 = call i32 @llvm.smin.i32(i32 %112, i32 %97)
  %114 = call i32 @llvm.smin.i32(i32 %111, i32 %74)
  %115 = add i32 %36, 1
  %116 = sext i32 %36 to i64
  br label %117

117:                                              ; preds = %.lr.ph548, %435
  %.0472546 = phi i32 [ 1, %.lr.ph548 ], [ %438, %435 ]
  %.0479545 = phi i32 [ 1, %.lr.ph548 ], [ %.1480, %435 ]
  %.0481544 = phi i32 [ undef, %.lr.ph548 ], [ %.1482, %435 ]
  %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 %.loopexit534, label %.preheader533.preheader

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

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

123:                                              ; preds = %.preheader533
  %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.exit572, label %.preheader533, !llvm.loop !12

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

.split.loop.exit:                                 ; preds = %.preheader533, %.split.loop.exit572
  %.1474 = phi i32 [ %129, %.split.loop.exit572 ], [ %119, %.preheader533 ]
  store i32 %.1474, ptr %19, align 4, !tbaa !5
  %130 = sub nsw i32 %118, %.1474
  %131 = add nsw i32 %130, 1
  %132 = call i32 @llvm.smin.i32(i32 %131, i32 %97)
  %133 = icmp slt i32 %.0479545, 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, %97
  br i1 %137, label %138, label %163

138:                                              ; preds = %.split.loop.exit
  %.not506 = icmp slt i32 %136, %130
  br i1 %.not506, 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 %.0481544, 0
  %.not507 = icmp slt i32 %164, %132
  %or.cond522 = select i1 %166, i1 %.not507, i1 false
  br i1 %or.cond522, label %172, label %167

167:                                              ; preds = %165
  %168 = add nsw i32 %.0481544, 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 ]
  %.1482 = phi i32 [ %spec.store.select, %167 ], [ -1, %163 ], [ %.0481544, %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
  %.neg524 = add i32 %174, 1
  %181 = shl i32 %173, 1
  %reass.sub = sub i32 %.neg524, %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 @dlaqr2_(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_edge565, label %200

._crit_edge565:                                   ; preds = %172
  %.pre = load i32, ptr %19, align 4, !tbaa !5
  %.pre570 = 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, %88
  %.not508 = icmp sgt i32 %201, %203
  br i1 %.not508, label %435, label %204

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

207:                                              ; preds = %._crit_edge565, %204
  %.pre-phi = phi i32 [ %.pre570, %._crit_edge565 ], [ %206, %204 ]
  %208 = phi i32 [ %.pre, %._crit_edge565 ], [ %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 %.0479545, 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)
  %.not519540 = icmp slt i32 %195, %221
  br i1 %.not519540, label %._crit_edge, label %.lr.ph542.preheader

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

.lr.ph542:                                        ; preds = %.lr.ph542.preheader, %.lr.ph542
  %indvars.iv562 = phi i64 [ %222, %.lr.ph542.preheader ], [ %indvars.iv.next563, %.lr.ph542 ]
  %indvars564 = trunc i64 %indvars.iv562 to i32
  %224 = add nsw i64 %indvars.iv562, -1
  %225 = add nsw i32 %indvars564, -1
  %226 = mul nsw i32 %225, %36
  %227 = sext i32 %226 to i64
  %228 = getelementptr double, ptr %38, i64 %indvars.iv562
  %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.next563 = add nsw i64 %indvars.iv562, -2
  %234 = mul nsw i64 %indvars.iv.next563, %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, %indvars564
  %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.iv562
  %251 = getelementptr inbounds double, ptr %40, i64 %indvars.iv562
  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
  %.not519 = icmp slt i64 %indvars.iv.next563, %223
  br i1 %.not519, label %._crit_edge.loopexit, label %.lr.ph542, !llvm.loop !14

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

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %216
  %252 = phi i32 [ %.pre567, %._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
  %.not513.not = icmp slt i32 %268, %212
  br i1 %.not513.not, label %269, label %314

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 = sext i32 %271 to i64
  %281 = getelementptr inbounds double, ptr %39, i64 %280
  %282 = getelementptr inbounds double, ptr %40, i64 %280
  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 %281, ptr noundef nonnull %282, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %20, ptr noundef nonnull @c__1, ptr noundef nonnull %33) #5
  %283 = load i32, ptr %33, align 4, !tbaa !5
  %284 = add nsw i32 %283, %271
  %285 = load i32, ptr %18, align 4, !tbaa !5
  %.not514 = icmp slt i32 %284, %285
  br i1 %.not514, label %314, label %286

286:                                              ; preds = %269
  %287 = add nsw i32 %285, -1
  %288 = mul i32 %287, %115
  %289 = sext i32 %288 to i64
  %290 = getelementptr inbounds double, ptr %38, i64 %289
  %291 = load double, ptr %290, align 8, !tbaa !10
  store double %291, ptr %22, align 8, !tbaa !10
  %292 = mul nsw i32 %287, %36
  %293 = add nsw i32 %292, %285
  %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 %24, align 8, !tbaa !10
  %297 = mul nsw i32 %285, %36
  %298 = add nsw i32 %287, %297
  %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 %23, align 8, !tbaa !10
  %302 = mul i32 %285, %115
  %303 = sext i32 %302 to i64
  %304 = getelementptr inbounds double, ptr %38, i64 %303
  %305 = load double, ptr %304, align 8, !tbaa !10
  store double %305, ptr %25, align 8, !tbaa !10
  %306 = sext i32 %287 to i64
  %307 = getelementptr inbounds double, ptr %39, i64 %306
  %308 = getelementptr inbounds double, ptr %40, i64 %306
  %309 = sext i32 %285 to i64
  %310 = getelementptr inbounds double, ptr %39, i64 %309
  %311 = getelementptr inbounds double, ptr %40, i64 %309
  call void @dlanv2_(ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef nonnull %307, ptr noundef nonnull %308, ptr noundef nonnull %310, ptr noundef nonnull %311, ptr noundef nonnull %27, ptr noundef nonnull %28) #5
  %312 = load i32, ptr %18, align 4, !tbaa !5
  %313 = add nsw i32 %312, -1
  br label %314

314:                                              ; preds = %269, %286, %267
  %315 = phi i32 [ %312, %286 ], [ %285, %269 ], [ %195, %267 ]
  %.0470 = phi i32 [ %313, %286 ], [ %284, %269 ], [ %198, %267 ]
  %316 = sub nsw i32 %315, %.0470
  %317 = load i32, ptr %30, align 4, !tbaa !5
  %.not515 = icmp slt i32 %316, %317
  %318 = icmp sle i32 %315, %.0470
  %or.cond550 = or i1 %.not515, %318
  br i1 %or.cond550, label %.loopexit532, label %.preheader.preheader

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

.preheader:                                       ; preds = %.preheader.preheader, %351
  %indvars.iv556 = phi i64 [ %320, %.preheader.preheader ], [ %indvars.iv.next557, %351 ]
  %.pre566 = load double, ptr %.phi.trans.insert, align 8, !tbaa !10
  br label %321

321:                                              ; preds = %.preheader, %349
  %322 = phi double [ %.pre566, %.preheader ], [ %350, %349 ]
  %indvars.iv553 = phi i64 [ %319, %.preheader ], [ %indvars.iv.next554, %349 ]
  %.1536 = phi i32 [ 1, %.preheader ], [ %.2, %349 ]
  %323 = getelementptr inbounds double, ptr %39, i64 %indvars.iv553
  %324 = load double, ptr %323, align 8, !tbaa !10
  %325 = insertelement <2 x double> poison, double %324, i64 0
  %326 = insertelement <2 x double> %325, double %322, i64 1
  %327 = fcmp oge <2 x double> %326, zeroinitializer
  %328 = fneg <2 x double> %326
  %329 = select <2 x i1> %327, <2 x double> %326, <2 x double> %328
  %shift = shufflevector <2 x double> %329, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %330 = fadd <2 x double> %329, %shift
  %331 = extractelement <2 x double> %330, i64 0
  %indvars.iv.next554 = add nsw i64 %indvars.iv553, 1
  %332 = getelementptr double, ptr %7, i64 %indvars.iv553
  %333 = load double, ptr %332, align 8, !tbaa !10
  %334 = fcmp oge double %333, 0.000000e+00
  %335 = fneg double %333
  %336 = select i1 %334, double %333, double %335
  %337 = getelementptr double, ptr %8, i64 %indvars.iv553
  %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 = fadd double %336, %341
  %343 = fcmp olt double %331, %342
  br i1 %343, label %344, label %349

344:                                              ; preds = %321
  %345 = getelementptr inbounds double, ptr %40, i64 %indvars.iv553
  store double %333, ptr %323, align 8, !tbaa !10
  store double %324, ptr %332, align 8, !tbaa !10
  %346 = load <2 x double>, ptr %345, align 8, !tbaa !10
  %347 = shufflevector <2 x double> %346, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  store <2 x double> %347, ptr %345, align 8, !tbaa !10
  %348 = extractelement <2 x double> %346, i64 0
  br label %349

349:                                              ; preds = %321, %344
  %350 = phi double [ %348, %344 ], [ %338, %321 ]
  %.2 = phi i32 [ 0, %344 ], [ %.1536, %321 ]
  %.not516.not = icmp slt i64 %indvars.iv.next554, %indvars.iv556
  br i1 %.not516.not, label %321, label %351, !llvm.loop !15

351:                                              ; preds = %349
  %indvars.iv.next557 = add nsw i64 %indvars.iv556, -1
  %352 = icmp sle i64 %indvars.iv.next557, %319
  %353 = icmp ne i32 %.2, 0
  %or.cond = select i1 %352, i1 true, i1 %353
  br i1 %or.cond, label %.loopexit532, label %.preheader, !llvm.loop !16

.loopexit532:                                     ; preds = %351, %314
  %354 = add nsw i32 %.0470, 2
  %.not517538 = icmp slt i32 %315, %354
  br i1 %.not517538, label %.loopexit, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.loopexit532
  %355 = sext i32 %315 to i64
  %356 = sext i32 %354 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %374
  %indvars.iv559 = phi i64 [ %355, %.lr.ph.preheader ], [ %indvars.iv.next560.pre-phi, %374 ]
  %357 = getelementptr inbounds double, ptr %40, i64 %indvars.iv559
  %358 = load double, ptr %357, align 8, !tbaa !10
  %359 = add nsw i64 %indvars.iv559, -1
  %360 = getelementptr inbounds double, ptr %40, i64 %359
  %361 = load double, ptr %360, align 8, !tbaa !10
  %362 = fneg double %361
  %363 = fcmp une double %358, %362
  br i1 %363, label %364, label %.lr.ph._crit_edge

.lr.ph._crit_edge:                                ; preds = %.lr.ph
  %.pre571 = add nsw i64 %indvars.iv559, -2
  br label %374

364:                                              ; preds = %.lr.ph
  %365 = getelementptr inbounds double, ptr %39, i64 %indvars.iv559
  %366 = load double, ptr %365, align 8, !tbaa !10
  %367 = getelementptr inbounds double, ptr %39, i64 %359
  %368 = add nsw i64 %indvars.iv559, -2
  %369 = getelementptr inbounds double, ptr %39, i64 %368
  %370 = load <2 x double>, ptr %369, align 8, !tbaa !10
  store <2 x double> %370, ptr %367, align 8, !tbaa !10
  store double %366, ptr %369, align 8, !tbaa !10
  %371 = load double, ptr %357, align 8, !tbaa !10
  %372 = getelementptr inbounds double, ptr %40, i64 %368
  %373 = load <2 x double>, ptr %372, align 8, !tbaa !10
  store <2 x double> %373, ptr %360, align 8, !tbaa !10
  store double %371, ptr %372, align 8, !tbaa !10
  br label %374

374:                                              ; preds = %.lr.ph._crit_edge, %364
  %indvars.iv.next560.pre-phi = phi i64 [ %.pre571, %.lr.ph._crit_edge ], [ %368, %364 ]
  %.not517 = icmp slt i64 %indvars.iv.next560.pre-phi, %356
  br i1 %.not517, label %.loopexit, label %.lr.ph, !llvm.loop !17

.loopexit:                                        ; preds = %374, %.loopexit532, %._crit_edge, %254
  %.1471 = phi i32 [ %218, %254 ], [ %218, %._crit_edge ], [ %.0470, %.loopexit532 ], [ %.0470, %374 ]
  %375 = load i32, ptr %18, align 4, !tbaa !5
  %376 = sub nsw i32 %375, %.1471
  %377 = icmp eq i32 %376, 1
  br i1 %377, label %378, label %404

378:                                              ; preds = %.loopexit
  %379 = sext i32 %375 to i64
  %380 = getelementptr inbounds double, ptr %40, i64 %379
  %381 = load double, ptr %380, align 8, !tbaa !10
  %382 = fcmp oeq double %381, 0.000000e+00
  br i1 %382, label %383, label %404

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

400:                                              ; preds = %383
  %401 = extractelement <2 x double> %390, i64 1
  store double %401, ptr %389, align 8, !tbaa !10
  br label %404

402:                                              ; preds = %383
  %403 = extractelement <2 x double> %390, i64 0
  store double %403, ptr %384, align 8, !tbaa !10
  br label %404

404:                                              ; preds = %378, %402, %400, %.loopexit
  %405 = load i32, ptr %30, align 4, !tbaa !5
  %406 = add nsw i32 %376, 1
  %407 = call i32 @llvm.smin.i32(i32 %405, i32 %406)
  %408 = srem i32 %407, 2
  %409 = sub nsw i32 %407, %408
  store i32 %409, ptr %30, align 4, !tbaa !5
  %410 = add i32 %375, 1
  %411 = sub i32 %410, %409
  %412 = shl i32 %409, 1
  %413 = load i32, ptr %2, align 4, !tbaa !5
  %414 = sub nsw i32 %413, %412
  %415 = add nsw i32 %414, 1
  %416 = or disjoint i32 %412, 1
  %417 = add i32 %414, -2
  %418 = sub i32 %417, %416
  store i32 %418, ptr %34, align 4, !tbaa !5
  %419 = add nsw i32 %412, 4
  %.neg530 = add i32 %413, 1
  %420 = shl i32 %409, 2
  %reass.sub551 = sub i32 %.neg530, %420
  %421 = add i32 %reass.sub551, -4
  store i32 %421, ptr %35, align 4, !tbaa !5
  %422 = sext i32 %411 to i64
  %423 = getelementptr inbounds double, ptr %39, i64 %422
  %424 = getelementptr inbounds double, ptr %40, i64 %422
  %425 = add nsw i32 %415, %36
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds double, ptr %38, i64 %426
  %428 = add nsw i32 %419, %36
  %429 = sext i32 %428 to i64
  %430 = getelementptr inbounds double, ptr %38, i64 %429
  %431 = mul nsw i32 %416, %36
  %432 = add nsw i32 %415, %431
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds double, ptr %38, i64 %433
  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 %423, ptr noundef nonnull %424, 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 %427, ptr noundef nonnull %6, ptr noundef nonnull %35, ptr noundef %430, ptr noundef nonnull %6, ptr noundef nonnull %34, ptr noundef %434, ptr noundef nonnull %6) #5
  %.pre568 = load i32, ptr %26, align 4, !tbaa !5
  br label %435

435:                                              ; preds = %404, %204, %200
  %436 = phi i32 [ %.pre568, %404 ], [ %193, %204 ], [ %193, %200 ]
  %437 = add nsw i32 %.0479545, 1
  %.inv = icmp slt i32 %436, 1
  %.1480 = select i1 %.inv, i32 %437, i32 1
  %438 = add nuw nsw i32 %.0472546, 1
  %439 = load i32, ptr %17, align 4, !tbaa !5
  %.not500.not = icmp slt i32 %.0472546, %439
  br i1 %.not500.not, label %117, label %._crit_edge549.loopexit, !llvm.loop !18

._crit_edge549.loopexit:                          ; preds = %435
  %.pre569 = load i32, ptr %18, align 4, !tbaa !5
  br label %._crit_edge549

._crit_edge549:                                   ; preds = %._crit_edge549.loopexit, %85
  %440 = phi i32 [ %.pre569, %._crit_edge549.loopexit ], [ %98, %85 ]
  store i32 %440, ptr %15, align 4, !tbaa !5
  br label %.loopexit534

.loopexit534:                                     ; preds = %117, %._crit_edge549, %45, %47
  %.0 = phi i32 [ 1, %47 ], [ 1, %45 ], [ %80, %._crit_edge549 ], [ %80, %117 ]
  %441 = uitofp nneg i32 %.0 to double
  br label %442

442:                                              ; preds = %16, %.loopexit534, %83
  %.sink574 = phi double [ %441, %.loopexit534 ], [ %84, %83 ], [ 1.000000e+00, %16 ]
  store double %.sink574, 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 @dlaqr2_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #3

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