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

; 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__10 = external hidden global i32, align 4
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@c__2 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4
@c__4 = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [14 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1

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

142:                                              ; preds = %21
  %143 = load ptr, ptr %41, align 8, !tbaa !5
  %144 = load i32, ptr %143, align 4, !tbaa !9
  %145 = icmp eq i32 %144, -1
  br label %146

146:                                              ; preds = %142, %21
  %147 = phi i1 [ true, %21 ], [ %145, %142 ]
  %148 = zext i1 %147 to i32
  store i32 %148, ptr %93, align 4, !tbaa !9
  %149 = load ptr, ptr %22, align 8, !tbaa !5
  %150 = load ptr, ptr %25, align 8, !tbaa !5
  %151 = call i32 @ilaenv2stage_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef %149, ptr noundef %150, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1)
  store i32 %151, ptr %71, align 4, !tbaa !9
  %152 = load ptr, ptr %22, align 8, !tbaa !5
  %153 = load ptr, ptr %25, align 8, !tbaa !5
  %154 = call i32 @ilaenv2stage_(ptr noundef @c__2, ptr noundef @.str.6, ptr noundef %152, ptr noundef %153, ptr noundef %71, ptr noundef @c_n1, ptr noundef @c_n1)
  store i32 %154, ptr %70, align 4, !tbaa !9
  %155 = load ptr, ptr %22, align 8, !tbaa !5
  %156 = load ptr, ptr %25, align 8, !tbaa !5
  %157 = call i32 @ilaenv2stage_(ptr noundef @c__3, ptr noundef @.str.6, ptr noundef %155, ptr noundef %156, ptr noundef %71, ptr noundef %70, ptr noundef @c_n1)
  store i32 %157, ptr %65, align 4, !tbaa !9
  %158 = load ptr, ptr %22, align 8, !tbaa !5
  %159 = load ptr, ptr %25, align 8, !tbaa !5
  %160 = call i32 @ilaenv2stage_(ptr noundef @c__4, ptr noundef @.str.6, ptr noundef %158, ptr noundef %159, ptr noundef %71, ptr noundef %70, ptr noundef @c_n1)
  store i32 %160, ptr %68, align 4, !tbaa !9
  %161 = load ptr, ptr %25, align 8, !tbaa !5
  %162 = load i32, ptr %161, align 4, !tbaa !9
  %163 = mul nsw i32 %162, 26
  store i32 %163, ptr %47, align 4, !tbaa !9
  %164 = load ptr, ptr %25, align 8, !tbaa !5
  %165 = load i32, ptr %164, align 4, !tbaa !9
  %166 = mul nsw i32 %165, 5
  %167 = load i32, ptr %65, align 4, !tbaa !9
  %168 = add nsw i32 %166, %167
  %169 = load i32, ptr %68, align 4, !tbaa !9
  %170 = add nsw i32 %168, %169
  store i32 %170, ptr %48, align 4, !tbaa !9
  %171 = load i32, ptr %47, align 4, !tbaa !9
  %172 = load i32, ptr %48, align 4, !tbaa !9
  %173 = icmp sge i32 %171, %172
  br i1 %173, label %174, label %176

174:                                              ; preds = %146
  %175 = load i32, ptr %47, align 4, !tbaa !9
  br label %178

176:                                              ; preds = %146
  %177 = load i32, ptr %48, align 4, !tbaa !9
  br label %178

178:                                              ; preds = %176, %174
  %179 = phi i32 [ %175, %174 ], [ %177, %176 ]
  store i32 %179, ptr %66, align 4, !tbaa !9
  store i32 1, ptr %47, align 4, !tbaa !9
  %180 = load ptr, ptr %25, align 8, !tbaa !5
  %181 = load i32, ptr %180, align 4, !tbaa !9
  %182 = mul nsw i32 %181, 10
  store i32 %182, ptr %48, align 4, !tbaa !9
  %183 = load i32, ptr %47, align 4, !tbaa !9
  %184 = load i32, ptr %48, align 4, !tbaa !9
  %185 = icmp sge i32 %183, %184
  br i1 %185, label %186, label %188

186:                                              ; preds = %178
  %187 = load i32, ptr %47, align 4, !tbaa !9
  br label %190

188:                                              ; preds = %178
  %189 = load i32, ptr %48, align 4, !tbaa !9
  br label %190

190:                                              ; preds = %188, %186
  %191 = phi i32 [ %187, %186 ], [ %189, %188 ]
  store i32 %191, ptr %87, align 4, !tbaa !9
  %192 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 0, ptr %192, align 4, !tbaa !9
  %193 = load ptr, ptr %22, align 8, !tbaa !5
  %194 = call i32 @lsame_(ptr noundef %193, ptr noundef @.str.1)
  %195 = icmp ne i32 %194, 0
  br i1 %195, label %198, label %196

196:                                              ; preds = %190
  %197 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -1, ptr %197, align 4, !tbaa !9
  br label %310

198:                                              ; preds = %190
  %199 = load i32, ptr %73, align 4, !tbaa !9
  %200 = icmp ne i32 %199, 0
  br i1 %200, label %209, label %201

201:                                              ; preds = %198
  %202 = load i32, ptr %79, align 4, !tbaa !9
  %203 = icmp ne i32 %202, 0
  br i1 %203, label %209, label %204

204:                                              ; preds = %201
  %205 = load i32, ptr %74, align 4, !tbaa !9
  %206 = icmp ne i32 %205, 0
  br i1 %206, label %209, label %207

207:                                              ; preds = %204
  %208 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -2, ptr %208, align 4, !tbaa !9
  br label %309

209:                                              ; preds = %204, %201, %198
  %210 = load i32, ptr %67, align 4, !tbaa !9
  %211 = icmp ne i32 %210, 0
  br i1 %211, label %218, label %212

212:                                              ; preds = %209
  %213 = load ptr, ptr %24, align 8, !tbaa !5
  %214 = call i32 @lsame_(ptr noundef %213, ptr noundef @.str.7)
  %215 = icmp ne i32 %214, 0
  br i1 %215, label %218, label %216

216:                                              ; preds = %212
  %217 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -3, ptr %217, align 4, !tbaa !9
  br label %308

218:                                              ; preds = %212, %209
  %219 = load ptr, ptr %25, align 8, !tbaa !5
  %220 = load i32, ptr %219, align 4, !tbaa !9
  %221 = icmp slt i32 %220, 0
  br i1 %221, label %222, label %224

222:                                              ; preds = %218
  %223 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -4, ptr %223, align 4, !tbaa !9
  br label %307

224:                                              ; preds = %218
  %225 = load ptr, ptr %27, align 8, !tbaa !5
  %226 = load i32, ptr %225, align 4, !tbaa !9
  %227 = load ptr, ptr %25, align 8, !tbaa !5
  %228 = load i32, ptr %227, align 4, !tbaa !9
  %229 = icmp sge i32 1, %228
  br i1 %229, label %230, label %231

230:                                              ; preds = %224
  br label %234

231:                                              ; preds = %224
  %232 = load ptr, ptr %25, align 8, !tbaa !5
  %233 = load i32, ptr %232, align 4, !tbaa !9
  br label %234

234:                                              ; preds = %231, %230
  %235 = phi i32 [ 1, %230 ], [ %233, %231 ]
  %236 = icmp slt i32 %226, %235
  br i1 %236, label %237, label %239

237:                                              ; preds = %234
  %238 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -6, ptr %238, align 4, !tbaa !9
  br label %306

239:                                              ; preds = %234
  %240 = load i32, ptr %79, align 4, !tbaa !9
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %242, label %255

242:                                              ; preds = %239
  %243 = load ptr, ptr %25, align 8, !tbaa !5
  %244 = load i32, ptr %243, align 4, !tbaa !9
  %245 = icmp sgt i32 %244, 0
  br i1 %245, label %246, label %254

246:                                              ; preds = %242
  %247 = load ptr, ptr %29, align 8, !tbaa !5
  %248 = load double, ptr %247, align 8, !tbaa !11
  %249 = load ptr, ptr %28, align 8, !tbaa !5
  %250 = load double, ptr %249, align 8, !tbaa !11
  %251 = fcmp ole double %248, %250
  br i1 %251, label %252, label %254

252:                                              ; preds = %246
  %253 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -8, ptr %253, align 4, !tbaa !9
  br label %254

254:                                              ; preds = %252, %246, %242
  br label %305

255:                                              ; preds = %239
  %256 = load i32, ptr %74, align 4, !tbaa !9
  %257 = icmp ne i32 %256, 0
  br i1 %257, label %258, label %304

258:                                              ; preds = %255
  %259 = load ptr, ptr %30, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = icmp slt i32 %260, 1
  br i1 %261, label %275, label %262

262:                                              ; preds = %258
  %263 = load ptr, ptr %30, align 8, !tbaa !5
  %264 = load i32, ptr %263, align 4, !tbaa !9
  %265 = load ptr, ptr %25, align 8, !tbaa !5
  %266 = load i32, ptr %265, align 4, !tbaa !9
  %267 = icmp sge i32 1, %266
  br i1 %267, label %268, label %269

268:                                              ; preds = %262
  br label %272

269:                                              ; preds = %262
  %270 = load ptr, ptr %25, align 8, !tbaa !5
  %271 = load i32, ptr %270, align 4, !tbaa !9
  br label %272

272:                                              ; preds = %269, %268
  %273 = phi i32 [ 1, %268 ], [ %271, %269 ]
  %274 = icmp sgt i32 %264, %273
  br i1 %274, label %275, label %277

275:                                              ; preds = %272, %258
  %276 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -9, ptr %276, align 4, !tbaa !9
  br label %303

277:                                              ; preds = %272
  %278 = load ptr, ptr %31, align 8, !tbaa !5
  %279 = load i32, ptr %278, align 4, !tbaa !9
  %280 = load ptr, ptr %25, align 8, !tbaa !5
  %281 = load i32, ptr %280, align 4, !tbaa !9
  %282 = load ptr, ptr %30, align 8, !tbaa !5
  %283 = load i32, ptr %282, align 4, !tbaa !9
  %284 = icmp sle i32 %281, %283
  br i1 %284, label %285, label %288

285:                                              ; preds = %277
  %286 = load ptr, ptr %25, align 8, !tbaa !5
  %287 = load i32, ptr %286, align 4, !tbaa !9
  br label %291

288:                                              ; preds = %277
  %289 = load ptr, ptr %30, align 8, !tbaa !5
  %290 = load i32, ptr %289, align 4, !tbaa !9
  br label %291

291:                                              ; preds = %288, %285
  %292 = phi i32 [ %287, %285 ], [ %290, %288 ]
  %293 = icmp slt i32 %279, %292
  br i1 %293, label %300, label %294

294:                                              ; preds = %291
  %295 = load ptr, ptr %31, align 8, !tbaa !5
  %296 = load i32, ptr %295, align 4, !tbaa !9
  %297 = load ptr, ptr %25, align 8, !tbaa !5
  %298 = load i32, ptr %297, align 4, !tbaa !9
  %299 = icmp sgt i32 %296, %298
  br i1 %299, label %300, label %302

300:                                              ; preds = %294, %291
  %301 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -10, ptr %301, align 4, !tbaa !9
  br label %302

302:                                              ; preds = %300, %294
  br label %303

303:                                              ; preds = %302, %275
  br label %304

304:                                              ; preds = %303, %255
  br label %305

305:                                              ; preds = %304, %254
  br label %306

306:                                              ; preds = %305, %237
  br label %307

307:                                              ; preds = %306, %222
  br label %308

308:                                              ; preds = %307, %216
  br label %309

309:                                              ; preds = %308, %207
  br label %310

310:                                              ; preds = %309, %196
  %311 = load ptr, ptr %42, align 8, !tbaa !5
  %312 = load i32, ptr %311, align 4, !tbaa !9
  %313 = icmp eq i32 %312, 0
  br i1 %313, label %314, label %352

314:                                              ; preds = %310
  %315 = load ptr, ptr %36, align 8, !tbaa !5
  %316 = load i32, ptr %315, align 4, !tbaa !9
  %317 = icmp slt i32 %316, 1
  br i1 %317, label %327, label %318

318:                                              ; preds = %314
  %319 = load i32, ptr %69, align 4, !tbaa !9
  %320 = icmp ne i32 %319, 0
  br i1 %320, label %321, label %329

321:                                              ; preds = %318
  %322 = load ptr, ptr %36, align 8, !tbaa !5
  %323 = load i32, ptr %322, align 4, !tbaa !9
  %324 = load ptr, ptr %25, align 8, !tbaa !5
  %325 = load i32, ptr %324, align 4, !tbaa !9
  %326 = icmp slt i32 %323, %325
  br i1 %326, label %327, label %329

327:                                              ; preds = %321, %314
  %328 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -15, ptr %328, align 4, !tbaa !9
  br label %351

329:                                              ; preds = %321, %318
  %330 = load ptr, ptr %39, align 8, !tbaa !5
  %331 = load i32, ptr %330, align 4, !tbaa !9
  %332 = load i32, ptr %66, align 4, !tbaa !9
  %333 = icmp slt i32 %331, %332
  br i1 %333, label %334, label %339

334:                                              ; preds = %329
  %335 = load i32, ptr %93, align 4, !tbaa !9
  %336 = icmp ne i32 %335, 0
  br i1 %336, label %339, label %337

337:                                              ; preds = %334
  %338 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -18, ptr %338, align 4, !tbaa !9
  br label %350

339:                                              ; preds = %334, %329
  %340 = load ptr, ptr %41, align 8, !tbaa !5
  %341 = load i32, ptr %340, align 4, !tbaa !9
  %342 = load i32, ptr %87, align 4, !tbaa !9
  %343 = icmp slt i32 %341, %342
  br i1 %343, label %344, label %349

344:                                              ; preds = %339
  %345 = load i32, ptr %93, align 4, !tbaa !9
  %346 = icmp ne i32 %345, 0
  br i1 %346, label %349, label %347

347:                                              ; preds = %344
  %348 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -20, ptr %348, align 4, !tbaa !9
  br label %349

349:                                              ; preds = %347, %344, %339
  br label %350

350:                                              ; preds = %349, %337
  br label %351

351:                                              ; preds = %350, %327
  br label %352

352:                                              ; preds = %351, %310
  %353 = load ptr, ptr %42, align 8, !tbaa !5
  %354 = load i32, ptr %353, align 4, !tbaa !9
  %355 = icmp eq i32 %354, 0
  br i1 %355, label %356, label %364

356:                                              ; preds = %352
  %357 = load i32, ptr %66, align 4, !tbaa !9
  %358 = sitofp i32 %357 to double
  %359 = load ptr, ptr %38, align 8, !tbaa !5
  %360 = getelementptr inbounds double, ptr %359, i64 1
  store double %358, ptr %360, align 8, !tbaa !11
  %361 = load i32, ptr %87, align 4, !tbaa !9
  %362 = load ptr, ptr %40, align 8, !tbaa !5
  %363 = getelementptr inbounds i32, ptr %362, i64 1
  store i32 %361, ptr %363, align 4, !tbaa !9
  br label %364

364:                                              ; preds = %356, %352
  %365 = load ptr, ptr %42, align 8, !tbaa !5
  %366 = load i32, ptr %365, align 4, !tbaa !9
  %367 = icmp ne i32 %366, 0
  br i1 %367, label %368, label %373

368:                                              ; preds = %364
  %369 = load ptr, ptr %42, align 8, !tbaa !5
  %370 = load i32, ptr %369, align 4, !tbaa !9
  %371 = sub nsw i32 0, %370
  store i32 %371, ptr %47, align 4, !tbaa !9
  %372 = call i32 @xerbla_(ptr noundef @.str.8, ptr noundef %47, i32 noundef 13)
  store i32 1, ptr %99, align 4
  br label %1037

373:                                              ; preds = %364
  %374 = load i32, ptr %93, align 4, !tbaa !9
  %375 = icmp ne i32 %374, 0
  br i1 %375, label %376, label %377

376:                                              ; preds = %373
  store i32 1, ptr %99, align 4
  br label %1037

377:                                              ; preds = %373
  br label %378

378:                                              ; preds = %377
  %379 = load ptr, ptr %33, align 8, !tbaa !5
  store i32 0, ptr %379, align 4, !tbaa !9
  %380 = load ptr, ptr %25, align 8, !tbaa !5
  %381 = load i32, ptr %380, align 4, !tbaa !9
  %382 = icmp eq i32 %381, 0
  br i1 %382, label %383, label %386

383:                                              ; preds = %378
  %384 = load ptr, ptr %38, align 8, !tbaa !5
  %385 = getelementptr inbounds double, ptr %384, i64 1
  store double 1.000000e+00, ptr %385, align 8, !tbaa !11
  store i32 1, ptr %99, align 4
  br label %1037

386:                                              ; preds = %378
  %387 = load ptr, ptr %25, align 8, !tbaa !5
  %388 = load i32, ptr %387, align 4, !tbaa !9
  %389 = icmp eq i32 %388, 1
  br i1 %389, label %390, label %453

390:                                              ; preds = %386
  %391 = load ptr, ptr %38, align 8, !tbaa !5
  %392 = getelementptr inbounds double, ptr %391, i64 1
  store double 7.000000e+00, ptr %392, align 8, !tbaa !11
  %393 = load i32, ptr %73, align 4, !tbaa !9
  %394 = icmp ne i32 %393, 0
  br i1 %394, label %398, label %395

395:                                              ; preds = %390
  %396 = load i32, ptr %74, align 4, !tbaa !9
  %397 = icmp ne i32 %396, 0
  br i1 %397, label %398, label %408

398:                                              ; preds = %395, %390
  %399 = load ptr, ptr %33, align 8, !tbaa !5
  store i32 1, ptr %399, align 4, !tbaa !9
  %400 = load ptr, ptr %26, align 8, !tbaa !5
  %401 = load i32, ptr %43, align 4, !tbaa !9
  %402 = add nsw i32 %401, 1
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds double, ptr %400, i64 %403
  %405 = load double, ptr %404, align 8, !tbaa !11
  %406 = load ptr, ptr %34, align 8, !tbaa !5
  %407 = getelementptr inbounds double, ptr %406, i64 1
  store double %405, ptr %407, align 8, !tbaa !11
  br label %439

408:                                              ; preds = %395
  %409 = load ptr, ptr %28, align 8, !tbaa !5
  %410 = load double, ptr %409, align 8, !tbaa !11
  %411 = load ptr, ptr %26, align 8, !tbaa !5
  %412 = load i32, ptr %43, align 4, !tbaa !9
  %413 = add nsw i32 %412, 1
  %414 = sext i32 %413 to i64
  %415 = getelementptr inbounds double, ptr %411, i64 %414
  %416 = load double, ptr %415, align 8, !tbaa !11
  %417 = fcmp olt double %410, %416
  br i1 %417, label %418, label %438

418:                                              ; preds = %408
  %419 = load ptr, ptr %29, align 8, !tbaa !5
  %420 = load double, ptr %419, align 8, !tbaa !11
  %421 = load ptr, ptr %26, align 8, !tbaa !5
  %422 = load i32, ptr %43, align 4, !tbaa !9
  %423 = add nsw i32 %422, 1
  %424 = sext i32 %423 to i64
  %425 = getelementptr inbounds double, ptr %421, i64 %424
  %426 = load double, ptr %425, align 8, !tbaa !11
  %427 = fcmp oge double %420, %426
  br i1 %427, label %428, label %438

428:                                              ; preds = %418
  %429 = load ptr, ptr %33, align 8, !tbaa !5
  store i32 1, ptr %429, align 4, !tbaa !9
  %430 = load ptr, ptr %26, align 8, !tbaa !5
  %431 = load i32, ptr %43, align 4, !tbaa !9
  %432 = add nsw i32 %431, 1
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds double, ptr %430, i64 %433
  %435 = load double, ptr %434, align 8, !tbaa !11
  %436 = load ptr, ptr %34, align 8, !tbaa !5
  %437 = getelementptr inbounds double, ptr %436, i64 1
  store double %435, ptr %437, align 8, !tbaa !11
  br label %438

438:                                              ; preds = %428, %418, %408
  br label %439

439:                                              ; preds = %438, %398
  %440 = load i32, ptr %69, align 4, !tbaa !9
  %441 = icmp ne i32 %440, 0
  br i1 %441, label %442, label %452

442:                                              ; preds = %439
  %443 = load ptr, ptr %35, align 8, !tbaa !5
  %444 = load i32, ptr %45, align 4, !tbaa !9
  %445 = add nsw i32 %444, 1
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds double, ptr %443, i64 %446
  store double 1.000000e+00, ptr %447, align 8, !tbaa !11
  %448 = load ptr, ptr %37, align 8, !tbaa !5
  %449 = getelementptr inbounds i32, ptr %448, i64 1
  store i32 1, ptr %449, align 4, !tbaa !9
  %450 = load ptr, ptr %37, align 8, !tbaa !5
  %451 = getelementptr inbounds i32, ptr %450, i64 2
  store i32 1, ptr %451, align 4, !tbaa !9
  br label %452

452:                                              ; preds = %442, %439
  store i32 1, ptr %99, align 4
  br label %1037

453:                                              ; preds = %386
  %454 = call double @dlamch_(ptr noundef @.str.9)
  store double %454, ptr %80, align 8, !tbaa !11
  %455 = call double @dlamch_(ptr noundef @.str.10)
  store double %455, ptr %94, align 8, !tbaa !11
  %456 = load double, ptr %80, align 8, !tbaa !11
  %457 = load double, ptr %94, align 8, !tbaa !11
  %458 = fdiv double %456, %457
  store double %458, ptr %92, align 8, !tbaa !11
  %459 = load double, ptr %92, align 8, !tbaa !11
  %460 = fdiv double 1.000000e+00, %459
  store double %460, ptr %82, align 8, !tbaa !11
  %461 = load double, ptr %92, align 8, !tbaa !11
  %462 = call double @sqrt(double noundef %461) #4
  store double %462, ptr %55, align 8, !tbaa !11
  %463 = load double, ptr %82, align 8, !tbaa !11
  %464 = call double @sqrt(double noundef %463) #4
  store double %464, ptr %49, align 8, !tbaa !11
  %465 = load double, ptr %80, align 8, !tbaa !11
  %466 = call double @sqrt(double noundef %465) #4
  %467 = call double @sqrt(double noundef %466) #4
  %468 = fdiv double 1.000000e+00, %467
  store double %468, ptr %50, align 8, !tbaa !11
  %469 = load double, ptr %49, align 8, !tbaa !11
  %470 = load double, ptr %50, align 8, !tbaa !11
  %471 = fcmp ole double %469, %470
  br i1 %471, label %472, label %474

472:                                              ; preds = %453
  %473 = load double, ptr %49, align 8, !tbaa !11
  br label %476

474:                                              ; preds = %453
  %475 = load double, ptr %50, align 8, !tbaa !11
  br label %476

476:                                              ; preds = %474, %472
  %477 = phi double [ %473, %472 ], [ %475, %474 ]
  store double %477, ptr %56, align 8, !tbaa !11
  store i32 0, ptr %75, align 4, !tbaa !9
  %478 = load ptr, ptr %32, align 8, !tbaa !5
  %479 = load double, ptr %478, align 8, !tbaa !11
  store double %479, ptr %81, align 8, !tbaa !11
  %480 = load i32, ptr %79, align 4, !tbaa !9
  %481 = icmp ne i32 %480, 0
  br i1 %481, label %482, label %487

482:                                              ; preds = %476
  %483 = load ptr, ptr %28, align 8, !tbaa !5
  %484 = load double, ptr %483, align 8, !tbaa !11
  store double %484, ptr %95, align 8, !tbaa !11
  %485 = load ptr, ptr %29, align 8, !tbaa !5
  %486 = load double, ptr %485, align 8, !tbaa !11
  store double %486, ptr %96, align 8, !tbaa !11
  br label %487

487:                                              ; preds = %482, %476
  %488 = load ptr, ptr %24, align 8, !tbaa !5
  %489 = load ptr, ptr %25, align 8, !tbaa !5
  %490 = load ptr, ptr %26, align 8, !tbaa !5
  %491 = load i32, ptr %44, align 4, !tbaa !9
  %492 = sext i32 %491 to i64
  %493 = getelementptr inbounds double, ptr %490, i64 %492
  %494 = load ptr, ptr %27, align 8, !tbaa !5
  %495 = load ptr, ptr %38, align 8, !tbaa !5
  %496 = getelementptr inbounds double, ptr %495, i64 1
  %497 = call double @dlansy_(ptr noundef @.str.11, ptr noundef %488, ptr noundef %489, ptr noundef %493, ptr noundef %494, ptr noundef %496)
  store double %497, ptr %53, align 8, !tbaa !11
  %498 = load double, ptr %53, align 8, !tbaa !11
  %499 = fcmp ogt double %498, 0.000000e+00
  br i1 %499, label %500, label %508

500:                                              ; preds = %487
  %501 = load double, ptr %53, align 8, !tbaa !11
  %502 = load double, ptr %55, align 8, !tbaa !11
  %503 = fcmp olt double %501, %502
  br i1 %503, label %504, label %508

504:                                              ; preds = %500
  store i32 1, ptr %75, align 4, !tbaa !9
  %505 = load double, ptr %55, align 8, !tbaa !11
  %506 = load double, ptr %53, align 8, !tbaa !11
  %507 = fdiv double %505, %506
  store double %507, ptr %61, align 8, !tbaa !11
  br label %517

508:                                              ; preds = %500, %487
  %509 = load double, ptr %53, align 8, !tbaa !11
  %510 = load double, ptr %56, align 8, !tbaa !11
  %511 = fcmp ogt double %509, %510
  br i1 %511, label %512, label %516

512:                                              ; preds = %508
  store i32 1, ptr %75, align 4, !tbaa !9
  %513 = load double, ptr %56, align 8, !tbaa !11
  %514 = load double, ptr %53, align 8, !tbaa !11
  %515 = fdiv double %513, %514
  store double %515, ptr %61, align 8, !tbaa !11
  br label %516

516:                                              ; preds = %512, %508
  br label %517

517:                                              ; preds = %516, %504
  %518 = load i32, ptr %75, align 4, !tbaa !9
  %519 = icmp eq i32 %518, 1
  br i1 %519, label %520, label %589

520:                                              ; preds = %517
  %521 = load i32, ptr %67, align 4, !tbaa !9
  %522 = icmp ne i32 %521, 0
  br i1 %522, label %523, label %548

523:                                              ; preds = %520
  %524 = load ptr, ptr %25, align 8, !tbaa !5
  %525 = load i32, ptr %524, align 4, !tbaa !9
  store i32 %525, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %526

526:                                              ; preds = %544, %523
  %527 = load i32, ptr %58, align 4, !tbaa !9
  %528 = load i32, ptr %47, align 4, !tbaa !9
  %529 = icmp sle i32 %527, %528
  br i1 %529, label %530, label %547

530:                                              ; preds = %526
  %531 = load ptr, ptr %25, align 8, !tbaa !5
  %532 = load i32, ptr %531, align 4, !tbaa !9
  %533 = load i32, ptr %58, align 4, !tbaa !9
  %534 = sub nsw i32 %532, %533
  %535 = add nsw i32 %534, 1
  store i32 %535, ptr %48, align 4, !tbaa !9
  %536 = load ptr, ptr %26, align 8, !tbaa !5
  %537 = load i32, ptr %58, align 4, !tbaa !9
  %538 = load i32, ptr %58, align 4, !tbaa !9
  %539 = load i32, ptr %43, align 4, !tbaa !9
  %540 = mul nsw i32 %538, %539
  %541 = add nsw i32 %537, %540
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds double, ptr %536, i64 %542
  call void @dscal_(ptr noundef %48, ptr noundef %61, ptr noundef %543, ptr noundef @c__1)
  br label %544

544:                                              ; preds = %530
  %545 = load i32, ptr %58, align 4, !tbaa !9
  %546 = add nsw i32 %545, 1
  store i32 %546, ptr %58, align 4, !tbaa !9
  br label %526, !llvm.loop !13

547:                                              ; preds = %526
  br label %567

548:                                              ; preds = %520
  %549 = load ptr, ptr %25, align 8, !tbaa !5
  %550 = load i32, ptr %549, align 4, !tbaa !9
  store i32 %550, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %551

551:                                              ; preds = %563, %548
  %552 = load i32, ptr %58, align 4, !tbaa !9
  %553 = load i32, ptr %47, align 4, !tbaa !9
  %554 = icmp sle i32 %552, %553
  br i1 %554, label %555, label %566

555:                                              ; preds = %551
  %556 = load ptr, ptr %26, align 8, !tbaa !5
  %557 = load i32, ptr %58, align 4, !tbaa !9
  %558 = load i32, ptr %43, align 4, !tbaa !9
  %559 = mul nsw i32 %557, %558
  %560 = add nsw i32 %559, 1
  %561 = sext i32 %560 to i64
  %562 = getelementptr inbounds double, ptr %556, i64 %561
  call void @dscal_(ptr noundef %58, ptr noundef %61, ptr noundef %562, ptr noundef @c__1)
  br label %563

563:                                              ; preds = %555
  %564 = load i32, ptr %58, align 4, !tbaa !9
  %565 = add nsw i32 %564, 1
  store i32 %565, ptr %58, align 4, !tbaa !9
  br label %551, !llvm.loop !15

566:                                              ; preds = %551
  br label %567

567:                                              ; preds = %566, %547
  %568 = load ptr, ptr %32, align 8, !tbaa !5
  %569 = load double, ptr %568, align 8, !tbaa !11
  %570 = fcmp ogt double %569, 0.000000e+00
  br i1 %570, label %571, label %576

571:                                              ; preds = %567
  %572 = load ptr, ptr %32, align 8, !tbaa !5
  %573 = load double, ptr %572, align 8, !tbaa !11
  %574 = load double, ptr %61, align 8, !tbaa !11
  %575 = fmul double %573, %574
  store double %575, ptr %81, align 8, !tbaa !11
  br label %576

576:                                              ; preds = %571, %567
  %577 = load i32, ptr %79, align 4, !tbaa !9
  %578 = icmp ne i32 %577, 0
  br i1 %578, label %579, label %588

579:                                              ; preds = %576
  %580 = load ptr, ptr %28, align 8, !tbaa !5
  %581 = load double, ptr %580, align 8, !tbaa !11
  %582 = load double, ptr %61, align 8, !tbaa !11
  %583 = fmul double %581, %582
  store double %583, ptr %95, align 8, !tbaa !11
  %584 = load ptr, ptr %29, align 8, !tbaa !5
  %585 = load double, ptr %584, align 8, !tbaa !11
  %586 = load double, ptr %61, align 8, !tbaa !11
  %587 = fmul double %585, %586
  store double %587, ptr %96, align 8, !tbaa !11
  br label %588

588:                                              ; preds = %579, %576
  br label %589

589:                                              ; preds = %588, %517
  store i32 1, ptr %83, align 4, !tbaa !9
  %590 = load i32, ptr %83, align 4, !tbaa !9
  %591 = load ptr, ptr %25, align 8, !tbaa !5
  %592 = load i32, ptr %591, align 4, !tbaa !9
  %593 = add nsw i32 %590, %592
  store i32 %593, ptr %51, align 4, !tbaa !9
  %594 = load i32, ptr %51, align 4, !tbaa !9
  %595 = load ptr, ptr %25, align 8, !tbaa !5
  %596 = load i32, ptr %595, align 4, !tbaa !9
  %597 = add nsw i32 %594, %596
  store i32 %597, ptr %52, align 4, !tbaa !9
  %598 = load i32, ptr %52, align 4, !tbaa !9
  %599 = load ptr, ptr %25, align 8, !tbaa !5
  %600 = load i32, ptr %599, align 4, !tbaa !9
  %601 = add nsw i32 %598, %600
  store i32 %601, ptr %59, align 4, !tbaa !9
  %602 = load i32, ptr %59, align 4, !tbaa !9
  %603 = load ptr, ptr %25, align 8, !tbaa !5
  %604 = load i32, ptr %603, align 4, !tbaa !9
  %605 = add nsw i32 %602, %604
  store i32 %605, ptr %60, align 4, !tbaa !9
  %606 = load i32, ptr %60, align 4, !tbaa !9
  %607 = load ptr, ptr %25, align 8, !tbaa !5
  %608 = load i32, ptr %607, align 4, !tbaa !9
  %609 = add nsw i32 %606, %608
  store i32 %609, ptr %97, align 4, !tbaa !9
  %610 = load i32, ptr %97, align 4, !tbaa !9
  %611 = load i32, ptr %65, align 4, !tbaa !9
  %612 = add nsw i32 %610, %611
  store i32 %612, ptr %64, align 4, !tbaa !9
  %613 = load ptr, ptr %39, align 8, !tbaa !5
  %614 = load i32, ptr %613, align 4, !tbaa !9
  %615 = load i32, ptr %64, align 4, !tbaa !9
  %616 = sub nsw i32 %614, %615
  %617 = add nsw i32 %616, 1
  store i32 %617, ptr %90, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  %618 = load i32, ptr %77, align 4, !tbaa !9
  %619 = load ptr, ptr %25, align 8, !tbaa !5
  %620 = load i32, ptr %619, align 4, !tbaa !9
  %621 = add nsw i32 %618, %620
  store i32 %621, ptr %84, align 4, !tbaa !9
  %622 = load i32, ptr %84, align 4, !tbaa !9
  %623 = load ptr, ptr %25, align 8, !tbaa !5
  %624 = load i32, ptr %623, align 4, !tbaa !9
  %625 = add nsw i32 %622, %624
  store i32 %625, ptr %78, align 4, !tbaa !9
  %626 = load i32, ptr %78, align 4, !tbaa !9
  %627 = load ptr, ptr %25, align 8, !tbaa !5
  %628 = load i32, ptr %627, align 4, !tbaa !9
  %629 = add nsw i32 %626, %628
  store i32 %629, ptr %85, align 4, !tbaa !9
  %630 = load ptr, ptr %22, align 8, !tbaa !5
  %631 = load ptr, ptr %24, align 8, !tbaa !5
  %632 = load ptr, ptr %25, align 8, !tbaa !5
  %633 = load ptr, ptr %26, align 8, !tbaa !5
  %634 = load i32, ptr %44, align 4, !tbaa !9
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds double, ptr %633, i64 %635
  %637 = load ptr, ptr %27, align 8, !tbaa !5
  %638 = load ptr, ptr %38, align 8, !tbaa !5
  %639 = load i32, ptr %51, align 4, !tbaa !9
  %640 = sext i32 %639 to i64
  %641 = getelementptr inbounds double, ptr %638, i64 %640
  %642 = load ptr, ptr %38, align 8, !tbaa !5
  %643 = load i32, ptr %52, align 4, !tbaa !9
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds double, ptr %642, i64 %644
  %646 = load ptr, ptr %38, align 8, !tbaa !5
  %647 = load i32, ptr %83, align 4, !tbaa !9
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds double, ptr %646, i64 %648
  %650 = load ptr, ptr %38, align 8, !tbaa !5
  %651 = load i32, ptr %97, align 4, !tbaa !9
  %652 = sext i32 %651 to i64
  %653 = getelementptr inbounds double, ptr %650, i64 %652
  %654 = load ptr, ptr %38, align 8, !tbaa !5
  %655 = load i32, ptr %64, align 4, !tbaa !9
  %656 = sext i32 %655 to i64
  %657 = getelementptr inbounds double, ptr %654, i64 %656
  call void @dsytrd_2stage_(ptr noundef %630, ptr noundef %631, ptr noundef %632, ptr noundef %636, ptr noundef %637, ptr noundef %641, ptr noundef %645, ptr noundef %649, ptr noundef %653, ptr noundef %65, ptr noundef %657, ptr noundef %90, ptr noundef %62)
  %658 = load i32, ptr %73, align 4, !tbaa !9
  %659 = icmp ne i32 %658, 0
  br i1 %659, label %673, label %660

660:                                              ; preds = %589
  %661 = load i32, ptr %74, align 4, !tbaa !9
  %662 = icmp ne i32 %661, 0
  br i1 %662, label %663, label %818

663:                                              ; preds = %660
  %664 = load ptr, ptr %30, align 8, !tbaa !5
  %665 = load i32, ptr %664, align 4, !tbaa !9
  %666 = icmp eq i32 %665, 1
  br i1 %666, label %667, label %818

667:                                              ; preds = %663
  %668 = load ptr, ptr %31, align 8, !tbaa !5
  %669 = load i32, ptr %668, align 4, !tbaa !9
  %670 = load ptr, ptr %25, align 8, !tbaa !5
  %671 = load i32, ptr %670, align 4, !tbaa !9
  %672 = icmp eq i32 %669, %671
  br i1 %672, label %673, label %818

673:                                              ; preds = %667, %589
  %674 = load i32, ptr %76, align 4, !tbaa !9
  %675 = icmp eq i32 %674, 1
  br i1 %675, label %676, label %818

676:                                              ; preds = %673
  %677 = load i32, ptr %69, align 4, !tbaa !9
  %678 = icmp ne i32 %677, 0
  br i1 %678, label %706, label %679

679:                                              ; preds = %676
  %680 = load ptr, ptr %25, align 8, !tbaa !5
  %681 = load ptr, ptr %38, align 8, !tbaa !5
  %682 = load i32, ptr %51, align 4, !tbaa !9
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds double, ptr %681, i64 %683
  %685 = load ptr, ptr %34, align 8, !tbaa !5
  %686 = getelementptr inbounds double, ptr %685, i64 1
  call void @dcopy_(ptr noundef %680, ptr noundef %684, ptr noundef @c__1, ptr noundef %686, ptr noundef @c__1)
  %687 = load ptr, ptr %25, align 8, !tbaa !5
  %688 = load i32, ptr %687, align 4, !tbaa !9
  %689 = sub nsw i32 %688, 1
  store i32 %689, ptr %47, align 4, !tbaa !9
  %690 = load ptr, ptr %38, align 8, !tbaa !5
  %691 = load i32, ptr %52, align 4, !tbaa !9
  %692 = sext i32 %691 to i64
  %693 = getelementptr inbounds double, ptr %690, i64 %692
  %694 = load ptr, ptr %38, align 8, !tbaa !5
  %695 = load i32, ptr %60, align 4, !tbaa !9
  %696 = sext i32 %695 to i64
  %697 = getelementptr inbounds double, ptr %694, i64 %696
  call void @dcopy_(ptr noundef %47, ptr noundef %693, ptr noundef @c__1, ptr noundef %697, ptr noundef @c__1)
  %698 = load ptr, ptr %25, align 8, !tbaa !5
  %699 = load ptr, ptr %34, align 8, !tbaa !5
  %700 = getelementptr inbounds double, ptr %699, i64 1
  %701 = load ptr, ptr %38, align 8, !tbaa !5
  %702 = load i32, ptr %60, align 4, !tbaa !9
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds double, ptr %701, i64 %703
  %705 = load ptr, ptr %42, align 8, !tbaa !5
  call void @dsterf_(ptr noundef %698, ptr noundef %700, ptr noundef %704, ptr noundef %705)
  br label %808

706:                                              ; preds = %676
  %707 = load ptr, ptr %25, align 8, !tbaa !5
  %708 = load i32, ptr %707, align 4, !tbaa !9
  %709 = sub nsw i32 %708, 1
  store i32 %709, ptr %47, align 4, !tbaa !9
  %710 = load ptr, ptr %38, align 8, !tbaa !5
  %711 = load i32, ptr %52, align 4, !tbaa !9
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds double, ptr %710, i64 %712
  %714 = load ptr, ptr %38, align 8, !tbaa !5
  %715 = load i32, ptr %60, align 4, !tbaa !9
  %716 = sext i32 %715 to i64
  %717 = getelementptr inbounds double, ptr %714, i64 %716
  call void @dcopy_(ptr noundef %47, ptr noundef %713, ptr noundef @c__1, ptr noundef %717, ptr noundef @c__1)
  %718 = load ptr, ptr %25, align 8, !tbaa !5
  %719 = load ptr, ptr %38, align 8, !tbaa !5
  %720 = load i32, ptr %51, align 4, !tbaa !9
  %721 = sext i32 %720 to i64
  %722 = getelementptr inbounds double, ptr %719, i64 %721
  %723 = load ptr, ptr %38, align 8, !tbaa !5
  %724 = load i32, ptr %59, align 4, !tbaa !9
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds double, ptr %723, i64 %725
  call void @dcopy_(ptr noundef %718, ptr noundef %722, ptr noundef @c__1, ptr noundef %726, ptr noundef @c__1)
  %727 = load ptr, ptr %32, align 8, !tbaa !5
  %728 = load double, ptr %727, align 8, !tbaa !11
  %729 = load ptr, ptr %25, align 8, !tbaa !5
  %730 = load i32, ptr %729, align 4, !tbaa !9
  %731 = sitofp i32 %730 to double
  %732 = fmul double %731, 2.000000e+00
  %733 = load double, ptr %94, align 8, !tbaa !11
  %734 = fmul double %732, %733
  %735 = fcmp ole double %728, %734
  br i1 %735, label %736, label %737

736:                                              ; preds = %706
  store i32 1, ptr %88, align 4, !tbaa !9
  br label %738

737:                                              ; preds = %706
  store i32 0, ptr %88, align 4, !tbaa !9
  br label %738

738:                                              ; preds = %737, %736
  %739 = load ptr, ptr %22, align 8, !tbaa !5
  %740 = load ptr, ptr %25, align 8, !tbaa !5
  %741 = load ptr, ptr %38, align 8, !tbaa !5
  %742 = load i32, ptr %59, align 4, !tbaa !9
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds double, ptr %741, i64 %743
  %745 = load ptr, ptr %38, align 8, !tbaa !5
  %746 = load i32, ptr %60, align 4, !tbaa !9
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds double, ptr %745, i64 %747
  %749 = load ptr, ptr %28, align 8, !tbaa !5
  %750 = load ptr, ptr %29, align 8, !tbaa !5
  %751 = load ptr, ptr %30, align 8, !tbaa !5
  %752 = load ptr, ptr %31, align 8, !tbaa !5
  %753 = load ptr, ptr %33, align 8, !tbaa !5
  %754 = load ptr, ptr %34, align 8, !tbaa !5
  %755 = getelementptr inbounds double, ptr %754, i64 1
  %756 = load ptr, ptr %35, align 8, !tbaa !5
  %757 = load i32, ptr %46, align 4, !tbaa !9
  %758 = sext i32 %757 to i64
  %759 = getelementptr inbounds double, ptr %756, i64 %758
  %760 = load ptr, ptr %36, align 8, !tbaa !5
  %761 = load ptr, ptr %25, align 8, !tbaa !5
  %762 = load ptr, ptr %37, align 8, !tbaa !5
  %763 = getelementptr inbounds i32, ptr %762, i64 1
  %764 = load ptr, ptr %38, align 8, !tbaa !5
  %765 = load i32, ptr %64, align 4, !tbaa !9
  %766 = sext i32 %765 to i64
  %767 = getelementptr inbounds double, ptr %764, i64 %766
  %768 = load ptr, ptr %39, align 8, !tbaa !5
  %769 = load ptr, ptr %40, align 8, !tbaa !5
  %770 = getelementptr inbounds i32, ptr %769, i64 1
  %771 = load ptr, ptr %41, align 8, !tbaa !5
  %772 = load ptr, ptr %42, align 8, !tbaa !5
  call void @dstemr_(ptr noundef %739, ptr noundef @.str.4, ptr noundef %740, ptr noundef %744, ptr noundef %748, ptr noundef %749, ptr noundef %750, ptr noundef %751, ptr noundef %752, ptr noundef %753, ptr noundef %755, ptr noundef %759, ptr noundef %760, ptr noundef %761, ptr noundef %763, ptr noundef %88, ptr noundef %767, ptr noundef %768, ptr noundef %770, ptr noundef %771, ptr noundef %772)
  %773 = load i32, ptr %69, align 4, !tbaa !9
  %774 = icmp ne i32 %773, 0
  br i1 %774, label %775, label %807

775:                                              ; preds = %738
  %776 = load ptr, ptr %42, align 8, !tbaa !5
  %777 = load i32, ptr %776, align 4, !tbaa !9
  %778 = icmp eq i32 %777, 0
  br i1 %778, label %779, label %807

779:                                              ; preds = %775
  %780 = load i32, ptr %52, align 4, !tbaa !9
  store i32 %780, ptr %86, align 4, !tbaa !9
  %781 = load ptr, ptr %39, align 8, !tbaa !5
  %782 = load i32, ptr %781, align 4, !tbaa !9
  %783 = load i32, ptr %86, align 4, !tbaa !9
  %784 = sub nsw i32 %782, %783
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr %89, align 4, !tbaa !9
  %786 = load ptr, ptr %24, align 8, !tbaa !5
  %787 = load ptr, ptr %25, align 8, !tbaa !5
  %788 = load ptr, ptr %33, align 8, !tbaa !5
  %789 = load ptr, ptr %26, align 8, !tbaa !5
  %790 = load i32, ptr %44, align 4, !tbaa !9
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds double, ptr %789, i64 %791
  %793 = load ptr, ptr %27, align 8, !tbaa !5
  %794 = load ptr, ptr %38, align 8, !tbaa !5
  %795 = load i32, ptr %83, align 4, !tbaa !9
  %796 = sext i32 %795 to i64
  %797 = getelementptr inbounds double, ptr %794, i64 %796
  %798 = load ptr, ptr %35, align 8, !tbaa !5
  %799 = load i32, ptr %46, align 4, !tbaa !9
  %800 = sext i32 %799 to i64
  %801 = getelementptr inbounds double, ptr %798, i64 %800
  %802 = load ptr, ptr %36, align 8, !tbaa !5
  %803 = load ptr, ptr %38, align 8, !tbaa !5
  %804 = load i32, ptr %86, align 4, !tbaa !9
  %805 = sext i32 %804 to i64
  %806 = getelementptr inbounds double, ptr %803, i64 %805
  call void @dormtr_(ptr noundef @.str.2, ptr noundef %786, ptr noundef @.str.1, ptr noundef %787, ptr noundef %788, ptr noundef %792, ptr noundef %793, ptr noundef %797, ptr noundef %801, ptr noundef %802, ptr noundef %806, ptr noundef %89, ptr noundef %62)
  br label %807

807:                                              ; preds = %779, %775, %738
  br label %808

808:                                              ; preds = %807, %679
  %809 = load ptr, ptr %42, align 8, !tbaa !5
  %810 = load i32, ptr %809, align 4, !tbaa !9
  %811 = icmp eq i32 %810, 0
  br i1 %811, label %812, label %816

812:                                              ; preds = %808
  %813 = load ptr, ptr %25, align 8, !tbaa !5
  %814 = load i32, ptr %813, align 4, !tbaa !9
  %815 = load ptr, ptr %33, align 8, !tbaa !5
  store i32 %814, ptr %815, align 4, !tbaa !9
  br label %928

816:                                              ; preds = %808
  %817 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 0, ptr %817, align 4, !tbaa !9
  br label %818

818:                                              ; preds = %816, %673, %667, %663, %660
  %819 = load i32, ptr %69, align 4, !tbaa !9
  %820 = icmp ne i32 %819, 0
  br i1 %820, label %821, label %823

821:                                              ; preds = %818
  %822 = getelementptr inbounds [1 x i8], ptr %63, i64 0, i64 0
  store i8 66, ptr %822, align 1, !tbaa !16
  br label %825

823:                                              ; preds = %818
  %824 = getelementptr inbounds [1 x i8], ptr %63, i64 0, i64 0
  store i8 69, ptr %824, align 1, !tbaa !16
  br label %825

825:                                              ; preds = %823, %821
  %826 = load ptr, ptr %23, align 8, !tbaa !5
  %827 = getelementptr inbounds [1 x i8], ptr %63, i64 0, i64 0
  %828 = load ptr, ptr %25, align 8, !tbaa !5
  %829 = load ptr, ptr %30, align 8, !tbaa !5
  %830 = load ptr, ptr %31, align 8, !tbaa !5
  %831 = load ptr, ptr %38, align 8, !tbaa !5
  %832 = load i32, ptr %51, align 4, !tbaa !9
  %833 = sext i32 %832 to i64
  %834 = getelementptr inbounds double, ptr %831, i64 %833
  %835 = load ptr, ptr %38, align 8, !tbaa !5
  %836 = load i32, ptr %52, align 4, !tbaa !9
  %837 = sext i32 %836 to i64
  %838 = getelementptr inbounds double, ptr %835, i64 %837
  %839 = load ptr, ptr %33, align 8, !tbaa !5
  %840 = load ptr, ptr %34, align 8, !tbaa !5
  %841 = getelementptr inbounds double, ptr %840, i64 1
  %842 = load ptr, ptr %40, align 8, !tbaa !5
  %843 = load i32, ptr %77, align 4, !tbaa !9
  %844 = sext i32 %843 to i64
  %845 = getelementptr inbounds i32, ptr %842, i64 %844
  %846 = load ptr, ptr %40, align 8, !tbaa !5
  %847 = load i32, ptr %84, align 4, !tbaa !9
  %848 = sext i32 %847 to i64
  %849 = getelementptr inbounds i32, ptr %846, i64 %848
  %850 = load ptr, ptr %38, align 8, !tbaa !5
  %851 = load i32, ptr %64, align 4, !tbaa !9
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds double, ptr %850, i64 %852
  %854 = load ptr, ptr %40, align 8, !tbaa !5
  %855 = load i32, ptr %85, align 4, !tbaa !9
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds i32, ptr %854, i64 %856
  %858 = load ptr, ptr %42, align 8, !tbaa !5
  call void @dstebz_(ptr noundef %826, ptr noundef %827, ptr noundef %828, ptr noundef %95, ptr noundef %96, ptr noundef %829, ptr noundef %830, ptr noundef %81, ptr noundef %834, ptr noundef %838, ptr noundef %839, ptr noundef %91, ptr noundef %841, ptr noundef %845, ptr noundef %849, ptr noundef %853, ptr noundef %857, ptr noundef %858)
  %859 = load i32, ptr %69, align 4, !tbaa !9
  %860 = icmp ne i32 %859, 0
  br i1 %860, label %861, label %927

861:                                              ; preds = %825
  %862 = load ptr, ptr %25, align 8, !tbaa !5
  %863 = load ptr, ptr %38, align 8, !tbaa !5
  %864 = load i32, ptr %51, align 4, !tbaa !9
  %865 = sext i32 %864 to i64
  %866 = getelementptr inbounds double, ptr %863, i64 %865
  %867 = load ptr, ptr %38, align 8, !tbaa !5
  %868 = load i32, ptr %52, align 4, !tbaa !9
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds double, ptr %867, i64 %869
  %871 = load ptr, ptr %33, align 8, !tbaa !5
  %872 = load ptr, ptr %34, align 8, !tbaa !5
  %873 = getelementptr inbounds double, ptr %872, i64 1
  %874 = load ptr, ptr %40, align 8, !tbaa !5
  %875 = load i32, ptr %77, align 4, !tbaa !9
  %876 = sext i32 %875 to i64
  %877 = getelementptr inbounds i32, ptr %874, i64 %876
  %878 = load ptr, ptr %40, align 8, !tbaa !5
  %879 = load i32, ptr %84, align 4, !tbaa !9
  %880 = sext i32 %879 to i64
  %881 = getelementptr inbounds i32, ptr %878, i64 %880
  %882 = load ptr, ptr %35, align 8, !tbaa !5
  %883 = load i32, ptr %46, align 4, !tbaa !9
  %884 = sext i32 %883 to i64
  %885 = getelementptr inbounds double, ptr %882, i64 %884
  %886 = load ptr, ptr %36, align 8, !tbaa !5
  %887 = load ptr, ptr %38, align 8, !tbaa !5
  %888 = load i32, ptr %64, align 4, !tbaa !9
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds double, ptr %887, i64 %889
  %891 = load ptr, ptr %40, align 8, !tbaa !5
  %892 = load i32, ptr %85, align 4, !tbaa !9
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds i32, ptr %891, i64 %893
  %895 = load ptr, ptr %40, align 8, !tbaa !5
  %896 = load i32, ptr %78, align 4, !tbaa !9
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds i32, ptr %895, i64 %897
  %899 = load ptr, ptr %42, align 8, !tbaa !5
  call void @dstein_(ptr noundef %862, ptr noundef %866, ptr noundef %870, ptr noundef %871, ptr noundef %873, ptr noundef %877, ptr noundef %881, ptr noundef %885, ptr noundef %886, ptr noundef %890, ptr noundef %894, ptr noundef %898, ptr noundef %899)
  %900 = load i32, ptr %52, align 4, !tbaa !9
  store i32 %900, ptr %86, align 4, !tbaa !9
  %901 = load ptr, ptr %39, align 8, !tbaa !5
  %902 = load i32, ptr %901, align 4, !tbaa !9
  %903 = load i32, ptr %86, align 4, !tbaa !9
  %904 = sub nsw i32 %902, %903
  %905 = add nsw i32 %904, 1
  store i32 %905, ptr %89, align 4, !tbaa !9
  %906 = load ptr, ptr %24, align 8, !tbaa !5
  %907 = load ptr, ptr %25, align 8, !tbaa !5
  %908 = load ptr, ptr %33, align 8, !tbaa !5
  %909 = load ptr, ptr %26, align 8, !tbaa !5
  %910 = load i32, ptr %44, align 4, !tbaa !9
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds double, ptr %909, i64 %911
  %913 = load ptr, ptr %27, align 8, !tbaa !5
  %914 = load ptr, ptr %38, align 8, !tbaa !5
  %915 = load i32, ptr %83, align 4, !tbaa !9
  %916 = sext i32 %915 to i64
  %917 = getelementptr inbounds double, ptr %914, i64 %916
  %918 = load ptr, ptr %35, align 8, !tbaa !5
  %919 = load i32, ptr %46, align 4, !tbaa !9
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds double, ptr %918, i64 %920
  %922 = load ptr, ptr %36, align 8, !tbaa !5
  %923 = load ptr, ptr %38, align 8, !tbaa !5
  %924 = load i32, ptr %86, align 4, !tbaa !9
  %925 = sext i32 %924 to i64
  %926 = getelementptr inbounds double, ptr %923, i64 %925
  call void @dormtr_(ptr noundef @.str.2, ptr noundef %906, ptr noundef @.str.1, ptr noundef %907, ptr noundef %908, ptr noundef %912, ptr noundef %913, ptr noundef %917, ptr noundef %921, ptr noundef %922, ptr noundef %926, ptr noundef %89, ptr noundef %62)
  br label %927

927:                                              ; preds = %861, %825
  br label %928

928:                                              ; preds = %927, %812
  %929 = load i32, ptr %75, align 4, !tbaa !9
  %930 = icmp eq i32 %929, 1
  br i1 %930, label %931, label %947

931:                                              ; preds = %928
  %932 = load ptr, ptr %42, align 8, !tbaa !5
  %933 = load i32, ptr %932, align 4, !tbaa !9
  %934 = icmp eq i32 %933, 0
  br i1 %934, label %935, label %938

935:                                              ; preds = %931
  %936 = load ptr, ptr %33, align 8, !tbaa !5
  %937 = load i32, ptr %936, align 4, !tbaa !9
  store i32 %937, ptr %54, align 4, !tbaa !9
  br label %942

938:                                              ; preds = %931
  %939 = load ptr, ptr %42, align 8, !tbaa !5
  %940 = load i32, ptr %939, align 4, !tbaa !9
  %941 = sub nsw i32 %940, 1
  store i32 %941, ptr %54, align 4, !tbaa !9
  br label %942

942:                                              ; preds = %938, %935
  %943 = load double, ptr %61, align 8, !tbaa !11
  %944 = fdiv double 1.000000e+00, %943
  store double %944, ptr %49, align 8, !tbaa !11
  %945 = load ptr, ptr %34, align 8, !tbaa !5
  %946 = getelementptr inbounds double, ptr %945, i64 1
  call void @dscal_(ptr noundef %54, ptr noundef %49, ptr noundef %946, ptr noundef @c__1)
  br label %947

947:                                              ; preds = %942, %928
  %948 = load i32, ptr %69, align 4, !tbaa !9
  %949 = icmp ne i32 %948, 0
  br i1 %949, label %950, label %1029

950:                                              ; preds = %947
  %951 = load ptr, ptr %33, align 8, !tbaa !5
  %952 = load i32, ptr %951, align 4, !tbaa !9
  %953 = sub nsw i32 %952, 1
  store i32 %953, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %954

954:                                              ; preds = %1025, %950
  %955 = load i32, ptr %58, align 4, !tbaa !9
  %956 = load i32, ptr %47, align 4, !tbaa !9
  %957 = icmp sle i32 %955, %956
  br i1 %957, label %958, label %1028

958:                                              ; preds = %954
  store i32 0, ptr %57, align 4, !tbaa !9
  %959 = load ptr, ptr %34, align 8, !tbaa !5
  %960 = load i32, ptr %58, align 4, !tbaa !9
  %961 = sext i32 %960 to i64
  %962 = getelementptr inbounds double, ptr %959, i64 %961
  %963 = load double, ptr %962, align 8, !tbaa !11
  store double %963, ptr %98, align 8, !tbaa !11
  %964 = load ptr, ptr %33, align 8, !tbaa !5
  %965 = load i32, ptr %964, align 4, !tbaa !9
  store i32 %965, ptr %48, align 4, !tbaa !9
  %966 = load i32, ptr %58, align 4, !tbaa !9
  %967 = add nsw i32 %966, 1
  store i32 %967, ptr %72, align 4, !tbaa !9
  br label %968

968:                                              ; preds = %988, %958
  %969 = load i32, ptr %72, align 4, !tbaa !9
  %970 = load i32, ptr %48, align 4, !tbaa !9
  %971 = icmp sle i32 %969, %970
  br i1 %971, label %972, label %991

972:                                              ; preds = %968
  %973 = load ptr, ptr %34, align 8, !tbaa !5
  %974 = load i32, ptr %72, align 4, !tbaa !9
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds double, ptr %973, i64 %975
  %977 = load double, ptr %976, align 8, !tbaa !11
  %978 = load double, ptr %98, align 8, !tbaa !11
  %979 = fcmp olt double %977, %978
  br i1 %979, label %980, label %987

980:                                              ; preds = %972
  %981 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %981, ptr %57, align 4, !tbaa !9
  %982 = load ptr, ptr %34, align 8, !tbaa !5
  %983 = load i32, ptr %72, align 4, !tbaa !9
  %984 = sext i32 %983 to i64
  %985 = getelementptr inbounds double, ptr %982, i64 %984
  %986 = load double, ptr %985, align 8, !tbaa !11
  store double %986, ptr %98, align 8, !tbaa !11
  br label %987

987:                                              ; preds = %980, %972
  br label %988

988:                                              ; preds = %987
  %989 = load i32, ptr %72, align 4, !tbaa !9
  %990 = add nsw i32 %989, 1
  store i32 %990, ptr %72, align 4, !tbaa !9
  br label %968, !llvm.loop !17

991:                                              ; preds = %968
  %992 = load i32, ptr %57, align 4, !tbaa !9
  %993 = icmp ne i32 %992, 0
  br i1 %993, label %994, label %1024

994:                                              ; preds = %991
  %995 = load ptr, ptr %34, align 8, !tbaa !5
  %996 = load i32, ptr %58, align 4, !tbaa !9
  %997 = sext i32 %996 to i64
  %998 = getelementptr inbounds double, ptr %995, i64 %997
  %999 = load double, ptr %998, align 8, !tbaa !11
  %1000 = load ptr, ptr %34, align 8, !tbaa !5
  %1001 = load i32, ptr %57, align 4, !tbaa !9
  %1002 = sext i32 %1001 to i64
  %1003 = getelementptr inbounds double, ptr %1000, i64 %1002
  store double %999, ptr %1003, align 8, !tbaa !11
  %1004 = load double, ptr %98, align 8, !tbaa !11
  %1005 = load ptr, ptr %34, align 8, !tbaa !5
  %1006 = load i32, ptr %58, align 4, !tbaa !9
  %1007 = sext i32 %1006 to i64
  %1008 = getelementptr inbounds double, ptr %1005, i64 %1007
  store double %1004, ptr %1008, align 8, !tbaa !11
  %1009 = load ptr, ptr %25, align 8, !tbaa !5
  %1010 = load ptr, ptr %35, align 8, !tbaa !5
  %1011 = load i32, ptr %57, align 4, !tbaa !9
  %1012 = load i32, ptr %45, align 4, !tbaa !9
  %1013 = mul nsw i32 %1011, %1012
  %1014 = add nsw i32 %1013, 1
  %1015 = sext i32 %1014 to i64
  %1016 = getelementptr inbounds double, ptr %1010, i64 %1015
  %1017 = load ptr, ptr %35, align 8, !tbaa !5
  %1018 = load i32, ptr %58, align 4, !tbaa !9
  %1019 = load i32, ptr %45, align 4, !tbaa !9
  %1020 = mul nsw i32 %1018, %1019
  %1021 = add nsw i32 %1020, 1
  %1022 = sext i32 %1021 to i64
  %1023 = getelementptr inbounds double, ptr %1017, i64 %1022
  call void @dswap_(ptr noundef %1009, ptr noundef %1016, ptr noundef @c__1, ptr noundef %1023, ptr noundef @c__1)
  br label %1024

1024:                                             ; preds = %994, %991
  br label %1025

1025:                                             ; preds = %1024
  %1026 = load i32, ptr %58, align 4, !tbaa !9
  %1027 = add nsw i32 %1026, 1
  store i32 %1027, ptr %58, align 4, !tbaa !9
  br label %954, !llvm.loop !18

1028:                                             ; preds = %954
  br label %1029

1029:                                             ; preds = %1028, %947
  %1030 = load i32, ptr %66, align 4, !tbaa !9
  %1031 = sitofp i32 %1030 to double
  %1032 = load ptr, ptr %38, align 8, !tbaa !5
  %1033 = getelementptr inbounds double, ptr %1032, i64 1
  store double %1031, ptr %1033, align 8, !tbaa !11
  %1034 = load i32, ptr %87, align 4, !tbaa !9
  %1035 = load ptr, ptr %40, align 8, !tbaa !5
  %1036 = getelementptr inbounds i32, ptr %1035, i64 1
  store i32 %1034, ptr %1036, align 4, !tbaa !9
  store i32 1, ptr %99, align 4
  br label %1037

1037:                                             ; preds = %1029, %452, %383, %376, %368
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  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 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, 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 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 8, 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 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #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 i32 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #2

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

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

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

declare double @dlamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

declare void @dswap_(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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind }

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

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


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@c__10 = external hidden global i32, align 4
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@c__2 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4
@c__4 = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [14 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @dsyevr_2stage_(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 nocapture noundef readonly %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20) local_unnamed_addr #0 {
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca double, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca double, align 8
  %28 = alloca i32, align 4
  %29 = alloca [1 x i8], align 1
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca double, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 4, 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 4, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 1, 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 4, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 8, 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
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #5
  %40 = load i32, ptr %5, align 4, !tbaa !5
  %narrow = xor i32 %40, -1
  %41 = sext i32 %narrow to i64
  %42 = getelementptr inbounds double, ptr %4, i64 %41
  %43 = getelementptr inbounds i8, ptr %12, i64 -8
  %44 = load i32, ptr %14, align 4, !tbaa !5
  %narrow416 = xor i32 %44, -1
  %45 = sext i32 %narrow416 to i64
  %46 = getelementptr inbounds double, ptr %13, i64 %45
  %47 = getelementptr inbounds i8, ptr %16, i64 -8
  %48 = getelementptr inbounds i8, ptr %18, i64 -4
  %49 = tail call i32 @ilaenv_(ptr noundef nonnull @c__10, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull @c__1, ptr noundef nonnull @c__2, ptr noundef nonnull @c__3, ptr noundef nonnull @c__4, i32 noundef 6, i32 noundef 1) #5
  %50 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.2) #5
  %51 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #5
  %52 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #5
  %53 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #5
  %54 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.5) #5
  %55 = load i32, ptr %17, align 4, !tbaa !5
  %56 = icmp eq i32 %55, -1
  br i1 %56, label %60, label %57

57:                                               ; preds = %21
  %58 = load i32, ptr %19, align 4, !tbaa !5
  %59 = icmp eq i32 %58, -1
  br label %60

60:                                               ; preds = %57, %21
  %61 = phi i1 [ true, %21 ], [ %59, %57 ]
  %62 = tail call i32 @ilaenv2stage_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.6, ptr noundef %0, ptr noundef %3, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #5
  store i32 %62, ptr %32, align 4, !tbaa !5
  %63 = call i32 @ilaenv2stage_(ptr noundef nonnull @c__2, ptr noundef nonnull @.str.6, ptr noundef %0, ptr noundef %3, ptr noundef nonnull %32, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #5
  store i32 %63, ptr %31, align 4, !tbaa !5
  %64 = call i32 @ilaenv2stage_(ptr noundef nonnull @c__3, ptr noundef nonnull @.str.6, ptr noundef %0, ptr noundef %3, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef nonnull @c_n1) #5
  store i32 %64, ptr %30, align 4, !tbaa !5
  %65 = call i32 @ilaenv2stage_(ptr noundef nonnull @c__4, ptr noundef nonnull @.str.6, ptr noundef %0, ptr noundef %3, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef nonnull @c_n1) #5
  %66 = load i32, ptr %3, align 4, !tbaa !5
  %67 = mul nsw i32 %66, 26
  %68 = mul nsw i32 %66, 5
  %69 = load i32, ptr %30, align 4, !tbaa !5
  %70 = add i32 %68, %65
  %71 = add i32 %70, %69
  %72 = call i32 @llvm.smax.i32(i32 %67, i32 %71)
  store i32 1, ptr %22, align 4, !tbaa !5
  %73 = mul nsw i32 %66, 10
  store i32 %73, ptr %23, align 4, !tbaa !5
  %74 = icmp slt i32 %66, 1
  %75 = select i1 %74, i32 1, i32 %73
  store i32 0, ptr %20, align 4, !tbaa !5
  %76 = call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not = icmp eq i32 %76, 0
  br i1 %.not, label %.thread427.sink.split, label %77

77:                                               ; preds = %60
  %78 = icmp ne i32 %52, 0
  %79 = icmp ne i32 %53, 0
  %or.cond = select i1 %78, i1 true, i1 %79
  %80 = icmp ne i32 %54, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %80
  br i1 %or.cond3, label %81, label %.thread427.sink.split

81:                                               ; preds = %77
  %.not393 = icmp eq i32 %50, 0
  br i1 %.not393, label %82, label %84

82:                                               ; preds = %81
  %83 = call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.7) #5
  %.not394 = icmp eq i32 %83, 0
  br i1 %.not394, label %.thread427.sink.split, label %84

84:                                               ; preds = %82, %81
  %85 = load i32, ptr %3, align 4, !tbaa !5
  %86 = icmp slt i32 %85, 0
  br i1 %86, label %.thread427.sink.split, label %87

87:                                               ; preds = %84
  %88 = load i32, ptr %5, align 4, !tbaa !5
  %spec.select = call i32 @llvm.umax.i32(i32 %85, i32 1)
  %89 = icmp slt i32 %88, %spec.select
  br i1 %89, label %.thread427.sink.split, label %90

90:                                               ; preds = %87
  br i1 %79, label %91, label %96

91:                                               ; preds = %90
  %.not440 = icmp eq i32 %85, 0
  br i1 %.not440, label %105, label %92

92:                                               ; preds = %91
  %93 = load double, ptr %7, align 8, !tbaa !9
  %94 = load double, ptr %6, align 8, !tbaa !9
  %95 = fcmp ugt double %93, %94
  br i1 %95, label %105, label %.thread427.sink.split

96:                                               ; preds = %90
  br i1 %80, label %97, label %105

97:                                               ; preds = %96
  %98 = load i32, ptr %8, align 4, !tbaa !5
  %99 = icmp slt i32 %98, 1
  %100 = icmp ugt i32 %98, %spec.select
  %or.cond438 = or i1 %99, %100
  br i1 %or.cond438, label %.thread427.sink.split, label %101

101:                                              ; preds = %97
  %102 = load i32, ptr %9, align 4, !tbaa !5
  %. = call i32 @llvm.umin.i32(i32 %85, i32 %98)
  %103 = icmp slt i32 %102, %.
  %104 = icmp ugt i32 %102, %85
  %or.cond439 = or i1 %103, %104
  br i1 %or.cond439, label %.thread427.sink.split, label %105

105:                                              ; preds = %101, %92, %91, %96
  %.pr = load i32, ptr %20, align 4, !tbaa !5
  %106 = icmp eq i32 %.pr, 0
  br i1 %106, label %107, label %.thread427

107:                                              ; preds = %105
  %108 = load i32, ptr %14, align 4, !tbaa !5
  %109 = icmp slt i32 %108, 1
  br i1 %109, label %.thread427.sink.split, label %110

110:                                              ; preds = %107
  %.not396 = icmp ne i32 %51, 0
  %111 = icmp ult i32 %108, %85
  %or.cond473 = and i1 %.not396, %111
  br i1 %or.cond473, label %.thread427.sink.split, label %112

112:                                              ; preds = %110
  %113 = load i32, ptr %17, align 4, !tbaa !5
  %114 = icmp sge i32 %113, %72
  %or.cond5 = select i1 %114, i1 true, i1 %61
  br i1 %or.cond5, label %115, label %.thread427.sink.split

115:                                              ; preds = %112
  %116 = load i32, ptr %19, align 4, !tbaa !5
  %117 = icmp sge i32 %116, %75
  %or.cond7 = select i1 %117, i1 true, i1 %61
  br i1 %or.cond7, label %.thread424, label %.thread427.sink.split

.thread424:                                       ; preds = %115
  %118 = sitofp i32 %72 to double
  store double %118, ptr %16, align 8, !tbaa !9
  store i32 %75, ptr %18, align 4, !tbaa !5
  %.pr426.pr = load i32, ptr %20, align 4, !tbaa !5
  %.not397 = icmp eq i32 %.pr426.pr, 0
  br i1 %.not397, label %122, label %.thread427

.thread427.sink.split:                            ; preds = %115, %112, %107, %110, %101, %97, %92, %87, %84, %82, %77, %60
  %.sink = phi i32 [ -1, %60 ], [ -2, %77 ], [ -3, %82 ], [ -4, %84 ], [ -6, %87 ], [ -8, %92 ], [ -9, %97 ], [ -10, %101 ], [ -15, %110 ], [ -15, %107 ], [ -18, %112 ], [ -20, %115 ]
  store i32 %.sink, ptr %20, align 4, !tbaa !5
  br label %.thread427

.thread427:                                       ; preds = %.thread427.sink.split, %105, %.thread424
  %119 = phi i32 [ %.pr426.pr, %.thread424 ], [ %.pr, %105 ], [ %.sink, %.thread427.sink.split ]
  %120 = sub nsw i32 0, %119
  store i32 %120, ptr %22, align 4, !tbaa !5
  %121 = call i32 @xerbla_(ptr noundef nonnull @.str.8, ptr noundef nonnull %22, i32 noundef 13) #5
  br label %306

122:                                              ; preds = %.thread424
  br i1 %61, label %306, label %123

123:                                              ; preds = %122
  store i32 0, ptr %11, align 4, !tbaa !5
  %124 = load i32, ptr %3, align 4, !tbaa !5
  switch i32 %124, label %140 [
    i32 0, label %125
    i32 1, label %126
  ]

125:                                              ; preds = %123
  store double 1.000000e+00, ptr %16, align 8, !tbaa !9
  br label %306

126:                                              ; preds = %123
  store double 7.000000e+00, ptr %16, align 8, !tbaa !9
  %or.cond9 = select i1 %78, i1 true, i1 %80
  br i1 %or.cond9, label %127, label %129

127:                                              ; preds = %126
  store i32 1, ptr %11, align 4, !tbaa !5
  %128 = load double, ptr %4, align 8, !tbaa !9
  br label %.sink.split

129:                                              ; preds = %126
  %130 = load double, ptr %6, align 8, !tbaa !9
  %131 = load double, ptr %4, align 8, !tbaa !9
  %132 = fcmp olt double %130, %131
  br i1 %132, label %133, label %137

133:                                              ; preds = %129
  %134 = load double, ptr %7, align 8, !tbaa !9
  %135 = fcmp ult double %134, %131
  br i1 %135, label %137, label %136

136:                                              ; preds = %133
  store i32 1, ptr %11, align 4, !tbaa !5
  br label %.sink.split

.sink.split:                                      ; preds = %127, %136
  %.sink474 = phi double [ %131, %136 ], [ %128, %127 ]
  store double %.sink474, ptr %12, align 8, !tbaa !9
  br label %137

137:                                              ; preds = %.sink.split, %129, %133
  br i1 %.not396, label %138, label %306

138:                                              ; preds = %137
  store double 1.000000e+00, ptr %13, align 8, !tbaa !9
  store i32 1, ptr %15, align 4, !tbaa !5
  %139 = getelementptr inbounds i8, ptr %15, i64 4
  store i32 1, ptr %139, align 4, !tbaa !5
  br label %306

140:                                              ; preds = %123
  %141 = call double @dlamch_(ptr noundef nonnull @.str.9) #5
  %142 = call double @dlamch_(ptr noundef nonnull @.str.10) #5
  %143 = fdiv double %141, %142
  %144 = fdiv double 1.000000e+00, %143
  %145 = call double @sqrt(double noundef %143) #5
  %146 = call double @sqrt(double noundef %144) #5
  store double %146, ptr %24, align 8, !tbaa !9
  %147 = call double @sqrt(double noundef %141) #5
  %148 = call double @sqrt(double noundef %147) #5
  %149 = fdiv double 1.000000e+00, %148
  %150 = fcmp ole double %146, %149
  %151 = select i1 %150, double %146, double %149
  %152 = load double, ptr %10, align 8, !tbaa !9
  store double %152, ptr %33, align 8, !tbaa !9
  %.not398 = icmp eq i32 %53, 0
  br i1 %.not398, label %156, label %153

153:                                              ; preds = %140
  %154 = load double, ptr %6, align 8, !tbaa !9
  store double %154, ptr %38, align 8, !tbaa !9
  %155 = load double, ptr %7, align 8, !tbaa !9
  store double %155, ptr %39, align 8, !tbaa !9
  br label %156

156:                                              ; preds = %153, %140
  %157 = call double @dlansy_(ptr noundef nonnull @.str.11, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %16) #5
  %158 = fcmp ogt double %157, 0.000000e+00
  %159 = fcmp olt double %157, %145
  %or.cond418 = select i1 %158, i1 %159, i1 false
  br i1 %or.cond418, label %162, label %160

160:                                              ; preds = %156
  %161 = fcmp ogt double %157, %151
  br i1 %161, label %162, label %193

162:                                              ; preds = %160, %156
  %.pn = phi double [ %145, %156 ], [ %151, %160 ]
  %storemerge441 = fdiv double %.pn, %157
  store double %storemerge441, ptr %27, align 8, !tbaa !9
  %163 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %163, ptr %22, align 4, !tbaa !5
  br i1 %.not393, label %175, label %164

164:                                              ; preds = %162
  store i32 1, ptr %26, align 4, !tbaa !5
  %.not402445 = icmp slt i32 %163, 1
  br i1 %.not402445, label %.loopexit443, label %.lr.ph

.lr.ph:                                           ; preds = %164
  %165 = add i32 %40, 1
  br label %166

166:                                              ; preds = %.lr.ph, %166
  %storemerge401446 = phi i32 [ 1, %.lr.ph ], [ %173, %166 ]
  %167 = load i32, ptr %3, align 4, !tbaa !5
  %reass.sub = sub i32 %167, %storemerge401446
  %168 = add i32 %reass.sub, 1
  store i32 %168, ptr %23, align 4, !tbaa !5
  %169 = mul i32 %storemerge401446, %165
  %170 = sext i32 %169 to i64
  %171 = getelementptr inbounds double, ptr %42, i64 %170
  call void @dscal_(ptr noundef nonnull %23, ptr noundef nonnull %27, ptr noundef %171, ptr noundef nonnull @c__1) #5
  %172 = load i32, ptr %26, align 4, !tbaa !5
  %173 = add nsw i32 %172, 1
  store i32 %173, ptr %26, align 4, !tbaa !5
  %174 = load i32, ptr %22, align 4, !tbaa !5
  %.not402.not = icmp slt i32 %172, %174
  br i1 %.not402.not, label %166, label %.loopexit443, !llvm.loop !11

175:                                              ; preds = %162
  %invariant.gep = getelementptr i8, ptr %42, i64 8
  store i32 1, ptr %26, align 4, !tbaa !5
  %.not400447 = icmp slt i32 %163, 1
  br i1 %.not400447, label %.loopexit443, label %.lr.ph449

.lr.ph449:                                        ; preds = %175, %.lr.ph449
  %storemerge448 = phi i32 [ %179, %.lr.ph449 ], [ 1, %175 ]
  %176 = mul nsw i32 %storemerge448, %40
  %177 = sext i32 %176 to i64
  %gep = getelementptr double, ptr %invariant.gep, i64 %177
  call void @dscal_(ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef %gep, ptr noundef nonnull @c__1) #5
  %178 = load i32, ptr %26, align 4, !tbaa !5
  %179 = add nsw i32 %178, 1
  store i32 %179, ptr %26, align 4, !tbaa !5
  %180 = load i32, ptr %22, align 4, !tbaa !5
  %.not400.not = icmp slt i32 %178, %180
  br i1 %.not400.not, label %.lr.ph449, label %.loopexit443, !llvm.loop !13

.loopexit443:                                     ; preds = %166, %.lr.ph449, %164, %175
  %181 = load double, ptr %10, align 8, !tbaa !9
  %182 = fcmp ogt double %181, 0.000000e+00
  br i1 %182, label %183, label %186

183:                                              ; preds = %.loopexit443
  %184 = load double, ptr %27, align 8, !tbaa !9
  %185 = fmul double %181, %184
  store double %185, ptr %33, align 8, !tbaa !9
  br label %186

186:                                              ; preds = %183, %.loopexit443
  br i1 %.not398, label %193, label %187

187:                                              ; preds = %186
  %188 = load double, ptr %6, align 8, !tbaa !9
  %189 = load double, ptr %27, align 8, !tbaa !9
  %190 = fmul double %188, %189
  store double %190, ptr %38, align 8, !tbaa !9
  %191 = load double, ptr %7, align 8, !tbaa !9
  %192 = fmul double %189, %191
  store double %192, ptr %39, align 8, !tbaa !9
  br label %193

193:                                              ; preds = %160, %186, %187
  %194 = phi i1 [ true, %186 ], [ true, %187 ], [ false, %160 ]
  %195 = load i32, ptr %3, align 4, !tbaa !5
  %196 = add nsw i32 %195, 1
  %197 = add nsw i32 %196, %195
  %198 = add nsw i32 %197, %195
  %199 = add nsw i32 %198, %195
  %200 = add nsw i32 %199, %195
  %201 = load i32, ptr %30, align 4, !tbaa !5
  %202 = add nsw i32 %200, %201
  %203 = load i32, ptr %17, align 4, !tbaa !5
  %204 = add i32 %203, 1
  %205 = sub i32 %204, %202
  store i32 %205, ptr %36, align 4, !tbaa !5
  %206 = sext i32 %196 to i64
  %207 = getelementptr inbounds double, ptr %47, i64 %206
  %208 = sext i32 %197 to i64
  %209 = getelementptr inbounds double, ptr %47, i64 %208
  %210 = sext i32 %200 to i64
  %211 = getelementptr inbounds double, ptr %47, i64 %210
  %212 = sext i32 %202 to i64
  %213 = getelementptr inbounds double, ptr %47, i64 %212
  call void @dsytrd_2stage_(ptr noundef %0, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %207, ptr noundef nonnull %209, ptr noundef nonnull %16, ptr noundef nonnull %211, ptr noundef nonnull %30, ptr noundef nonnull %213, ptr noundef nonnull %36, ptr noundef nonnull %28) #5
  %.not403 = icmp eq i32 %52, 0
  br i1 %.not403, label %214, label %223

214:                                              ; preds = %193
  %.not404 = icmp eq i32 %54, 0
  br i1 %.not404, label %252, label %215

215:                                              ; preds = %214
  %216 = load i32, ptr %8, align 4, !tbaa !5
  %217 = icmp eq i32 %216, 1
  br i1 %217, label %218, label %252

218:                                              ; preds = %215
  %219 = load i32, ptr %9, align 4, !tbaa !5
  %220 = load i32, ptr %3, align 4, !tbaa !5
  %221 = icmp eq i32 %219, %220
  %222 = icmp eq i32 %49, 1
  %or.cond11 = select i1 %221, i1 %222, i1 false
  br i1 %or.cond11, label %224, label %252

223:                                              ; preds = %193
  %.old10 = icmp eq i32 %49, 1
  br i1 %.old10, label %224, label %252

224:                                              ; preds = %218, %223
  br i1 %.not396, label %230, label %225

225:                                              ; preds = %224
  call void @dcopy_(ptr noundef nonnull %3, ptr noundef nonnull %207, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull @c__1) #5
  %226 = load i32, ptr %3, align 4, !tbaa !5
  %227 = add nsw i32 %226, -1
  store i32 %227, ptr %22, align 4, !tbaa !5
  %228 = sext i32 %199 to i64
  %229 = getelementptr inbounds double, ptr %47, i64 %228
  call void @dcopy_(ptr noundef nonnull %22, ptr noundef nonnull %209, ptr noundef nonnull @c__1, ptr noundef nonnull %229, ptr noundef nonnull @c__1) #5
  call void @dsterf_(ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %229, ptr noundef nonnull %20) #5
  br label %248

230:                                              ; preds = %224
  %231 = load i32, ptr %3, align 4, !tbaa !5
  %232 = add nsw i32 %231, -1
  store i32 %232, ptr %22, align 4, !tbaa !5
  %233 = sext i32 %199 to i64
  %234 = getelementptr inbounds double, ptr %47, i64 %233
  call void @dcopy_(ptr noundef nonnull %22, ptr noundef nonnull %209, ptr noundef nonnull @c__1, ptr noundef nonnull %234, ptr noundef nonnull @c__1) #5
  %235 = sext i32 %198 to i64
  %236 = getelementptr inbounds double, ptr %47, i64 %235
  call void @dcopy_(ptr noundef nonnull %3, ptr noundef nonnull %207, ptr noundef nonnull @c__1, ptr noundef nonnull %236, ptr noundef nonnull @c__1) #5
  %237 = load double, ptr %10, align 8, !tbaa !9
  %238 = load i32, ptr %3, align 4, !tbaa !5
  %239 = sitofp i32 %238 to double
  %240 = fmul double %239, 2.000000e+00
  %241 = fmul double %142, %240
  %242 = fcmp ole double %237, %241
  %.419 = zext i1 %242 to i32
  store i32 %.419, ptr %34, align 4, !tbaa !5
  call void @dstemr_(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull %3, ptr noundef nonnull %236, ptr noundef nonnull %234, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %11, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %3, ptr noundef %15, ptr noundef nonnull %34, ptr noundef nonnull %213, ptr noundef nonnull %17, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %20) #5
  %243 = load i32, ptr %20, align 4, !tbaa !5
  %244 = icmp eq i32 %243, 0
  br i1 %244, label %245, label %.thread433

245:                                              ; preds = %230
  %246 = load i32, ptr %17, align 4, !tbaa !5
  %reass.sub464 = sub i32 %246, %197
  %247 = add i32 %reass.sub464, 1
  store i32 %247, ptr %35, align 4, !tbaa !5
  call void @dormtr_(ptr noundef nonnull @.str.2, ptr noundef %2, ptr noundef nonnull @.str.1, ptr noundef nonnull %3, ptr noundef nonnull %11, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %16, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %209, ptr noundef nonnull %35, ptr noundef nonnull %28) #5
  br label %248

248:                                              ; preds = %245, %225
  %.pr432 = load i32, ptr %20, align 4, !tbaa !5
  %249 = icmp eq i32 %.pr432, 0
  br i1 %249, label %250, label %.thread433

250:                                              ; preds = %248
  %251 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %251, ptr %11, align 4, !tbaa !5
  br label %260

.thread433:                                       ; preds = %230, %248
  store i32 0, ptr %20, align 4, !tbaa !5
  br label %252

252:                                              ; preds = %.thread433, %223, %218, %215, %214
  %.420 = select i1 %.not396, i8 66, i8 69
  store i8 %.420, ptr %29, align 1, !tbaa !14
  %253 = getelementptr inbounds i32, ptr %48, i64 %206
  %254 = sext i32 %198 to i64
  %255 = getelementptr inbounds i32, ptr %48, i64 %254
  call void @dstebz_(ptr noundef %1, ptr noundef nonnull %29, ptr noundef nonnull %3, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %33, ptr noundef nonnull %207, ptr noundef nonnull %209, ptr noundef nonnull %11, ptr noundef nonnull %37, ptr noundef %12, ptr noundef nonnull %18, ptr noundef nonnull %253, ptr noundef nonnull %213, ptr noundef nonnull %255, ptr noundef nonnull %20) #5
  br i1 %.not396, label %256, label %260

256:                                              ; preds = %252
  %257 = getelementptr inbounds i32, ptr %48, i64 %208
  call void @dstein_(ptr noundef nonnull %3, ptr noundef nonnull %207, ptr noundef nonnull %209, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %18, ptr noundef nonnull %253, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %213, ptr noundef nonnull %255, ptr noundef nonnull %257, ptr noundef nonnull %20) #5
  %258 = load i32, ptr %17, align 4, !tbaa !5
  %reass.sub465 = sub i32 %258, %197
  %259 = add i32 %reass.sub465, 1
  store i32 %259, ptr %35, align 4, !tbaa !5
  call void @dormtr_(ptr noundef nonnull @.str.2, ptr noundef %2, ptr noundef nonnull @.str.1, ptr noundef nonnull %3, ptr noundef nonnull %11, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %16, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %209, ptr noundef nonnull %35, ptr noundef nonnull %28) #5
  br label %260

260:                                              ; preds = %252, %256, %250
  br i1 %194, label %261, label %271

261:                                              ; preds = %260
  %262 = load i32, ptr %20, align 4, !tbaa !5
  %263 = icmp eq i32 %262, 0
  br i1 %263, label %264, label %266

264:                                              ; preds = %261
  %265 = load i32, ptr %11, align 4, !tbaa !5
  br label %268

266:                                              ; preds = %261
  %267 = add nsw i32 %262, -1
  br label %268

268:                                              ; preds = %266, %264
  %storemerge409 = phi i32 [ %267, %266 ], [ %265, %264 ]
  store i32 %storemerge409, ptr %25, align 4, !tbaa !5
  %269 = load double, ptr %27, align 8, !tbaa !9
  %270 = fdiv double 1.000000e+00, %269
  store double %270, ptr %24, align 8, !tbaa !9
  call void @dscal_(ptr noundef nonnull %25, ptr noundef nonnull %24, ptr noundef %12, ptr noundef nonnull @c__1) #5
  br label %271

271:                                              ; preds = %268, %260
  br i1 %.not396, label %272, label %.loopexit

272:                                              ; preds = %271
  %273 = load i32, ptr %11, align 4, !tbaa !5
  %274 = add nsw i32 %273, -1
  store i32 %274, ptr %22, align 4, !tbaa !5
  %invariant.gep456 = getelementptr i8, ptr %46, i64 8
  store i32 1, ptr %26, align 4, !tbaa !5
  %.not412460 = icmp slt i32 %273, 2
  br i1 %.not412460, label %.loopexit, label %.lr.ph463

.lr.ph463:                                        ; preds = %272, %._crit_edge.thread
  %275 = phi i32 [ %303, %._crit_edge.thread ], [ %274, %272 ]
  %storemerge411461 = phi i32 [ %305, %._crit_edge.thread ], [ 1, %272 ]
  %276 = sext i32 %storemerge411461 to i64
  %277 = getelementptr inbounds double, ptr %43, i64 %276
  %278 = load double, ptr %277, align 8, !tbaa !9
  %279 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %279, ptr %23, align 4, !tbaa !5
  %.not413.not450 = icmp slt i32 %storemerge411461, %279
  br i1 %.not413.not450, label %.lr.ph454.preheader, label %._crit_edge.thread

.lr.ph454.preheader:                              ; preds = %.lr.ph463
  %wide.trip.count = sext i32 %279 to i64
  %280 = sub nsw i64 %wide.trip.count, %276
  %xtraiter = and i64 %280, 1
  %281 = add nsw i64 %wide.trip.count, -1
  %282 = icmp eq i64 %281, %276
  br i1 %282, label %._crit_edge.unr-lcssa, label %.lr.ph454.preheader.new

.lr.ph454.preheader.new:                          ; preds = %.lr.ph454.preheader
  %unroll_iter = and i64 %280, -2
  br label %.lr.ph454

.lr.ph454:                                        ; preds = %.lr.ph454, %.lr.ph454.preheader.new
  %indvars.iv = phi i64 [ %276, %.lr.ph454.preheader.new ], [ %indvars.iv.next.1, %.lr.ph454 ]
  %.0453 = phi double [ %278, %.lr.ph454.preheader.new ], [ %.1.1, %.lr.ph454 ]
  %.0371452 = phi i32 [ 0, %.lr.ph454.preheader.new ], [ %.1372.1, %.lr.ph454 ]
  %niter = phi i64 [ 0, %.lr.ph454.preheader.new ], [ %niter.next.1, %.lr.ph454 ]
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %283 = getelementptr double, ptr %12, i64 %indvars.iv
  %284 = load double, ptr %283, align 8, !tbaa !9
  %285 = fcmp olt double %284, %.0453
  %286 = trunc nsw i64 %indvars.iv.next to i32
  %.1372 = select i1 %285, i32 %286, i32 %.0371452
  %.1 = select i1 %285, double %284, double %.0453
  %indvars.iv.next.1 = add nsw i64 %indvars.iv, 2
  %287 = getelementptr double, ptr %12, i64 %indvars.iv.next
  %288 = load double, ptr %287, align 8, !tbaa !9
  %289 = fcmp olt double %288, %.1
  %290 = trunc nsw i64 %indvars.iv.next.1 to i32
  %.1372.1 = select i1 %289, i32 %290, i32 %.1372
  %.1.1 = select i1 %289, double %288, double %.1
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.unr-lcssa, label %.lr.ph454, !llvm.loop !15

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph454, %.lr.ph454.preheader
  %.1372.lcssa.ph = phi i32 [ poison, %.lr.ph454.preheader ], [ %.1372.1, %.lr.ph454 ]
  %.1.lcssa.ph = phi double [ poison, %.lr.ph454.preheader ], [ %.1.1, %.lr.ph454 ]
  %indvars.iv.unr = phi i64 [ %276, %.lr.ph454.preheader ], [ %indvars.iv.next.1, %.lr.ph454 ]
  %.0453.unr = phi double [ %278, %.lr.ph454.preheader ], [ %.1.1, %.lr.ph454 ]
  %.0371452.unr = phi i32 [ 0, %.lr.ph454.preheader ], [ %.1372.1, %.lr.ph454 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph454.epil

.lr.ph454.epil:                                   ; preds = %._crit_edge.unr-lcssa
  %291 = getelementptr double, ptr %12, i64 %indvars.iv.unr
  %292 = load double, ptr %291, align 8, !tbaa !9
  %293 = fcmp olt double %292, %.0453.unr
  %294 = trunc i64 %indvars.iv.unr to i32
  %295 = add i32 %294, 1
  %.1372.epil = select i1 %293, i32 %295, i32 %.0371452.unr
  %.1.epil = select i1 %293, double %292, double %.0453.unr
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.unr-lcssa, %.lr.ph454.epil
  %.1372.lcssa = phi i32 [ %.1372.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.1372.epil, %.lr.ph454.epil ]
  %.1.lcssa = phi double [ %.1.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.1.epil, %.lr.ph454.epil ]
  %.not414 = icmp eq i32 %.1372.lcssa, 0
  br i1 %.not414, label %._crit_edge.thread, label %296

296:                                              ; preds = %._crit_edge
  %297 = sext i32 %.1372.lcssa to i64
  %298 = getelementptr inbounds double, ptr %43, i64 %297
  store double %278, ptr %298, align 8, !tbaa !9
  store double %.1.lcssa, ptr %277, align 8, !tbaa !9
  %299 = mul nsw i32 %.1372.lcssa, %44
  %300 = sext i32 %299 to i64
  %gep457 = getelementptr double, ptr %invariant.gep456, i64 %300
  %301 = mul nsw i32 %storemerge411461, %44
  %302 = sext i32 %301 to i64
  %gep459 = getelementptr double, ptr %invariant.gep456, i64 %302
  call void @dswap_(ptr noundef nonnull %3, ptr noundef %gep457, ptr noundef nonnull @c__1, ptr noundef %gep459, ptr noundef nonnull @c__1) #5
  %.pre = load i32, ptr %26, align 4, !tbaa !5
  %.pre468 = load i32, ptr %22, align 4, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph463, %._crit_edge, %296
  %303 = phi i32 [ %275, %._crit_edge ], [ %.pre468, %296 ], [ %275, %.lr.ph463 ]
  %304 = phi i32 [ %storemerge411461, %._crit_edge ], [ %.pre, %296 ], [ %storemerge411461, %.lr.ph463 ]
  %305 = add nsw i32 %304, 1
  store i32 %305, ptr %26, align 4, !tbaa !5
  %.not412.not = icmp slt i32 %304, %303
  br i1 %.not412.not, label %.lr.ph463, label %.loopexit, !llvm.loop !16

.loopexit:                                        ; preds = %._crit_edge.thread, %272, %271
  store double %118, ptr %16, align 8, !tbaa !9
  store i32 %75, ptr %18, align 4, !tbaa !5
  br label %306

306:                                              ; preds = %137, %138, %122, %.loopexit, %125, %.thread427
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  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 8, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 1, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #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 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 i32 @lsame_(ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

declare double @dlamch_(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #3

declare double @dlansy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @dscal_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @dsytrd_2stage_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare void @dsterf_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @dstemr_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @dormtr_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @dstebz_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @dstein_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @dswap_(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.umax.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 nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = !{!7, !7, i64 0}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}


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