; LLVM IR from ERGO-Code/HiGHS :: src/util/HFactor.ll (ZN7HFactor11buildKernelEv)

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

%class.HFactor = type { double, double, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %struct.RefactorInfo, i32, i32, i32, i32, i32, i32, i32, double, i8, ptr, ptr, ptr, ptr, double, double, i32, double, %"class.std::unique_ptr", %struct.HighsLogOptions, i8, i8, i32, i32, ptr, i32, %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.15", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %class.HVectorBase }
%struct.RefactorInfo = type { i8, %"class.std::vector", %"class.std::vector", %"class.std::vector.3", double }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }
%struct.HighsLogOptions = type <{ ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::function", ptr, i8, [7 x i8] }>
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HVectorBase = type { i32, i32, %"class.std::vector", %"class.std::vector.10", double, %"class.std::vector.15", %"class.std::vector", ptr, i8, i32, %"class.std::vector", %"class.std::vector.10" }

@.str.52 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [14 x i8], align 1
@__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv = external hidden unnamed_addr constant [32 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [44 x i8], align 1
@_ZL15kPivotMarkowitz = external hidden constant i8, align 1

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7HFactor11buildKernelEv(ptr noundef nonnull align 8 dereferenceable(1912) %0) #3 align 2 {
  %2 = alloca i32, align 4
  %3 = alloca ptr, align 8
  %4 = alloca double, align 8
  %5 = alloca double, align 8
  %6 = alloca double, align 8
  %7 = alloca i8, align 1
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca i8, align 1
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca i8, align 1
  %32 = alloca i8, align 1
  %33 = alloca double, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca double, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca double, align 8
  %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 i32, align 4
  %50 = alloca double, align 8
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca double, align 8
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca double, align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %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 double, align 8
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca double, align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  %98 = load ptr, ptr %3, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #8
  store double 0.000000e+00, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #8
  store double 0.000000e+00, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #8
  store double 0.000000e+00, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #8
  store i8 0, ptr %7, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  store i32 10000, ptr %8, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #8
  store i32 100, ptr %9, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  store double 0.000000e+00, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  store double 0.000000e+00, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #8
  %99 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 23
  %100 = load double, ptr %99, align 8, !tbaa !15
  %101 = fcmp olt double %100, 0x7FF0000000000000
  %102 = zext i1 %101 to i8
  store i8 %102, ptr %12, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  store i32 0, ptr %13, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  store i32 -11, ptr %14, align 4, !tbaa !13
  br label %103

103:                                              ; preds = %1338, %1336, %1
  %104 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 31
  %105 = load i32, ptr %104, align 8, !tbaa !44
  %106 = add nsw i32 %105, -1
  store i32 %106, ptr %104, align 8, !tbaa !44
  %107 = icmp sgt i32 %105, 0
  br i1 %107, label %108, label %1339

108:                                              ; preds = %103
  %109 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 31
  %110 = load i32, ptr %109, align 8, !tbaa !44
  %111 = icmp eq i32 %110, -11
  br i1 %111, label %112, label %113

112:                                              ; preds = %108
  call void @_ZN7HFactor9reportAsmEv(ptr noundef nonnull align 8 dereferenceable(1912) %98)
  br label %113

113:                                              ; preds = %112, %108
  %114 = load i8, ptr %12, align 1, !tbaa !11, !range !45, !noundef !46
  %115 = trunc i8 %114 to i1
  br i1 %115, label %116, label %175

116:                                              ; preds = %113
  %117 = load i32, ptr %13, align 4, !tbaa !13
  %118 = load i32, ptr %9, align 4, !tbaa !13
  %119 = srem i32 %117, %118
  %120 = icmp eq i32 %119, 0
  br i1 %120, label %121, label %175

121:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  %122 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 30
  %123 = load ptr, ptr %122, align 8, !tbaa !47
  %124 = call noundef double @_ZNK10HighsTimer4readEi(ptr noundef nonnull align 8 dereferenceable(132) %123, i32 noundef 0)
  store double %124, ptr %15, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %125 = load double, ptr %15, align 8, !tbaa !9
  %126 = load double, ptr %10, align 8, !tbaa !9
  %127 = fsub double %125, %126
  store double %127, ptr %16, align 8, !tbaa !9
  %128 = load double, ptr %15, align 8, !tbaa !9
  store double %128, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  %129 = load double, ptr %16, align 8, !tbaa !9
  %130 = load i32, ptr %9, align 4, !tbaa !13
  %131 = sitofp i32 %130 to double
  %132 = fmul double 1.000000e+00, %131
  %133 = fdiv double %129, %132
  store double %133, ptr %17, align 8, !tbaa !9
  %134 = load double, ptr %11, align 8, !tbaa !9
  %135 = load double, ptr %17, align 8, !tbaa !9
  %136 = fmul double 1.000000e-01, %135
  %137 = call double @llvm.fmuladd.f64(double 9.000000e-01, double %134, double %136)
  store double %137, ptr %11, align 8, !tbaa !9
  %138 = load double, ptr %16, align 8, !tbaa !9
  %139 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 23
  %140 = load double, ptr %139, align 8, !tbaa !15
  %141 = fdiv double %140, 1.000000e+03
  %142 = fcmp ogt double %138, %141
  br i1 %142, label %143, label %148

143:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  store i32 1, ptr %18, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  %144 = load i32, ptr %9, align 4, !tbaa !13
  %145 = sdiv i32 %144, 10
  store i32 %145, ptr %19, align 4, !tbaa !13
  %146 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 4 dereferenceable(4) %19)
  %147 = load i32, ptr %146, align 4, !tbaa !13
  store i32 %147, ptr %9, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %148

148:                                              ; preds = %143, %121
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  %149 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 9
  %150 = load i32, ptr %149, align 8, !tbaa !48
  %151 = load i32, ptr %13, align 4, !tbaa !13
  %152 = sub nsw i32 %150, %151
  %153 = add nsw i32 %152, 1
  store i32 %153, ptr %20, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %154 = load double, ptr %11, align 8, !tbaa !9
  %155 = load i32, ptr %20, align 4, !tbaa !13
  %156 = sitofp i32 %155 to double
  %157 = fmul double %154, %156
  store double %157, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %158 = load double, ptr %15, align 8, !tbaa !9
  %159 = load double, ptr %21, align 8, !tbaa !9
  %160 = fadd double %158, %159
  store double %160, ptr %22, align 8, !tbaa !9
  %161 = load double, ptr %15, align 8, !tbaa !9
  %162 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 23
  %163 = load double, ptr %162, align 8, !tbaa !15
  %164 = fcmp ogt double %161, %163
  br i1 %164, label %170, label %165

165:                                              ; preds = %148
  %166 = load double, ptr %22, align 8, !tbaa !9
  %167 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 23
  %168 = load double, ptr %167, align 8, !tbaa !15
  %169 = fcmp ogt double %166, %168
  br i1 %169, label %170, label %171

170:                                              ; preds = %165, %148
  store i32 -1, ptr %2, align 4
  store i32 1, ptr %23, align 4
  br label %172

171:                                              ; preds = %165
  store i32 0, ptr %23, align 4
  br label %172

172:                                              ; preds = %171, %170
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  %173 = load i32, ptr %23, align 4
  switch i32 %173, label %1352 [
    i32 0, label %174
  ]

174:                                              ; preds = %172
  br label %175

175:                                              ; preds = %174, %116, %113
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  store i32 -1, ptr %24, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  store i32 -1, ptr %25, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  %176 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 31
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  store i32 8, ptr %27, align 4, !tbaa !13
  %177 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %176, ptr noundef nonnull align 4 dereferenceable(4) %27)
  %178 = load i32, ptr %177, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  store i32 %178, ptr %26, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  store i32 0, ptr %28, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  %179 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 13
  %180 = load i32, ptr %179, align 8, !tbaa !49
  %181 = sitofp i32 %180 to double
  %182 = fmul double 1.000000e+00, %181
  %183 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 11
  %184 = load i32, ptr %183, align 8, !tbaa !50
  %185 = sitofp i32 %184 to double
  %186 = fmul double %182, %185
  store double %186, ptr %29, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %187 = load double, ptr %29, align 8, !tbaa !9
  store double %187, ptr %30, align 8, !tbaa !9
  %188 = load i32, ptr %13, align 4, !tbaa !13
  %189 = add nsw i32 %188, 1
  store i32 %189, ptr %13, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #8
  store i8 0, ptr %31, align 1, !tbaa !11
  %190 = load i8, ptr %31, align 1, !tbaa !11, !range !45, !noundef !46
  %191 = trunc i8 %190 to i1
  br i1 %191, label %210, label %192

192:                                              ; preds = %175
  %193 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 55
  %194 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %193, i64 noundef 1) #8
  %195 = load i32, ptr %194, align 4, !tbaa !13
  %196 = icmp ne i32 %195, -1
  br i1 %196, label %197, label %210

197:                                              ; preds = %192
  %198 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 55
  %199 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %198, i64 noundef 1) #8
  %200 = load i32, ptr %199, align 4, !tbaa !13
  store i32 %200, ptr %24, align 4, !tbaa !13
  %201 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %202 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 40
  %203 = load i32, ptr %24, align 4, !tbaa !13
  %204 = sext i32 %203 to i64
  %205 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %202, i64 noundef %204) #8
  %206 = load i32, ptr %205, align 4, !tbaa !13
  %207 = sext i32 %206 to i64
  %208 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %201, i64 noundef %207) #8
  %209 = load i32, ptr %208, align 4, !tbaa !13
  store i32 %209, ptr %25, align 4, !tbaa !13
  store i8 1, ptr %31, align 1, !tbaa !11
  br label %210

210:                                              ; preds = %197, %192, %175
  %211 = load i8, ptr %31, align 1, !tbaa !11, !range !45, !noundef !46
  %212 = trunc i8 %211 to i1
  br i1 %212, label %231, label %213

213:                                              ; preds = %210
  %214 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 58
  %215 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %214, i64 noundef 1) #8
  %216 = load i32, ptr %215, align 4, !tbaa !13
  %217 = icmp ne i32 %216, -1
  br i1 %217, label %218, label %231

218:                                              ; preds = %213
  %219 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 58
  %220 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %219, i64 noundef 1) #8
  %221 = load i32, ptr %220, align 4, !tbaa !13
  store i32 %221, ptr %25, align 4, !tbaa !13
  %222 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 51
  %223 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 47
  %224 = load i32, ptr %25, align 4, !tbaa !13
  %225 = sext i32 %224 to i64
  %226 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %223, i64 noundef %225) #8
  %227 = load i32, ptr %226, align 4, !tbaa !13
  %228 = sext i32 %227 to i64
  %229 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %222, i64 noundef %228) #8
  %230 = load i32, ptr %229, align 4, !tbaa !13
  store i32 %230, ptr %24, align 4, !tbaa !13
  store i8 1, ptr %31, align 1, !tbaa !11
  br label %231

231:                                              ; preds = %218, %213, %210
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #8
  %232 = load i8, ptr %31, align 1, !tbaa !11, !range !45, !noundef !46
  %233 = trunc i8 %232 to i1
  %234 = zext i1 %233 to i8
  store i8 %234, ptr %32, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  store double 0.000000e+00, ptr %33, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %235 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 11
  %236 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 13
  %237 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %235, ptr noundef nonnull align 4 dereferenceable(4) %236)
  %238 = load i32, ptr %237, align 4, !tbaa !13
  store i32 %238, ptr %34, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  store i32 2, ptr %35, align 4, !tbaa !13
  br label %239

239:                                              ; preds = %514, %231
  %240 = load i8, ptr %31, align 1, !tbaa !11, !range !45, !noundef !46
  %241 = trunc i8 %240 to i1
  br i1 %241, label %246, label %242

242:                                              ; preds = %239
  %243 = load i32, ptr %35, align 4, !tbaa !13
  %244 = load i32, ptr %34, align 4, !tbaa !13
  %245 = icmp sle i32 %243, %244
  br label %246

246:                                              ; preds = %242, %239
  %247 = phi i1 [ false, %239 ], [ %245, %242 ]
  br i1 %247, label %249, label %248

248:                                              ; preds = %246
  store i32 4, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %517

249:                                              ; preds = %246
  %250 = load i32, ptr %35, align 4, !tbaa !13
  %251 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 11
  %252 = load i32, ptr %251, align 8, !tbaa !50
  %253 = icmp sle i32 %250, %252
  br i1 %253, label %254, label %373

254:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %255 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 55
  %256 = load i32, ptr %35, align 4, !tbaa !13
  %257 = sext i32 %256 to i64
  %258 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %255, i64 noundef %257) #8
  %259 = load i32, ptr %258, align 4, !tbaa !13
  store i32 %259, ptr %36, align 4, !tbaa !13
  br label %260

260:                                              ; preds = %365, %254
  %261 = load i32, ptr %36, align 4, !tbaa !13
  %262 = icmp ne i32 %261, -1
  br i1 %262, label %264, label %263

263:                                              ; preds = %260
  store i32 7, ptr %23, align 4
  br label %371

264:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  %265 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 46
  %266 = load i32, ptr %36, align 4, !tbaa !13
  %267 = sext i32 %266 to i64
  %268 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %265, i64 noundef %267) #8
  %269 = load double, ptr %268, align 8, !tbaa !9
  store double %269, ptr %37, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %270 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 40
  %271 = load i32, ptr %36, align 4, !tbaa !13
  %272 = sext i32 %271 to i64
  %273 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %270, i64 noundef %272) #8
  %274 = load i32, ptr %273, align 4, !tbaa !13
  store i32 %274, ptr %38, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %275 = load i32, ptr %38, align 4, !tbaa !13
  %276 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 41
  %277 = load i32, ptr %36, align 4, !tbaa !13
  %278 = sext i32 %277 to i64
  %279 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %276, i64 noundef %278) #8
  %280 = load i32, ptr %279, align 4, !tbaa !13
  %281 = add nsw i32 %275, %280
  store i32 %281, ptr %39, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %282 = load i32, ptr %38, align 4, !tbaa !13
  store i32 %282, ptr %40, align 4, !tbaa !13
  br label %283

283:                                              ; preds = %340, %264
  %284 = load i32, ptr %40, align 4, !tbaa !13
  %285 = load i32, ptr %39, align 4, !tbaa !13
  %286 = icmp slt i32 %284, %285
  br i1 %286, label %288, label %287

287:                                              ; preds = %283
  store i32 10, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %343

288:                                              ; preds = %283
  %289 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %290 = load i32, ptr %40, align 4, !tbaa !13
  %291 = sext i32 %290 to i64
  %292 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %289, i64 noundef %291) #8
  %293 = load double, ptr %292, align 8, !tbaa !9
  %294 = call double @llvm.fabs.f64(double %293)
  %295 = load double, ptr %37, align 8, !tbaa !9
  %296 = fcmp oge double %294, %295
  br i1 %296, label %297, label %339

297:                                              ; preds = %288
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  %298 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %299 = load i32, ptr %40, align 4, !tbaa !13
  %300 = sext i32 %299 to i64
  %301 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %298, i64 noundef %300) #8
  %302 = load i32, ptr %301, align 4, !tbaa !13
  store i32 %302, ptr %41, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  %303 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 48
  %304 = load i32, ptr %41, align 4, !tbaa !13
  %305 = sext i32 %304 to i64
  %306 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %303, i64 noundef %305) #8
  %307 = load i32, ptr %306, align 4, !tbaa !13
  store i32 %307, ptr %42, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  %308 = load i32, ptr %35, align 4, !tbaa !13
  %309 = sub nsw i32 %308, 1
  %310 = sitofp i32 %309 to double
  %311 = fmul double 1.000000e+00, %310
  %312 = load i32, ptr %42, align 4, !tbaa !13
  %313 = sub nsw i32 %312, 1
  %314 = sitofp i32 %313 to double
  %315 = fmul double %311, %314
  store double %315, ptr %43, align 8, !tbaa !9
  %316 = load double, ptr %30, align 8, !tbaa !9
  %317 = load double, ptr %43, align 8, !tbaa !9
  %318 = fcmp ogt double %316, %317
  br i1 %318, label %319, label %338

319:                                              ; preds = %297
  %320 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %321 = load i32, ptr %40, align 4, !tbaa !13
  %322 = sext i32 %321 to i64
  %323 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %320, i64 noundef %322) #8
  %324 = load double, ptr %323, align 8, !tbaa !9
  %325 = call double @llvm.fabs.f64(double %324)
  store double %325, ptr %33, align 8, !tbaa !9
  %326 = load double, ptr %43, align 8, !tbaa !9
  store double %326, ptr %30, align 8, !tbaa !9
  %327 = load i32, ptr %36, align 4, !tbaa !13
  store i32 %327, ptr %24, align 4, !tbaa !13
  %328 = load i32, ptr %41, align 4, !tbaa !13
  store i32 %328, ptr %25, align 4, !tbaa !13
  %329 = load i8, ptr %31, align 1, !tbaa !11, !range !45, !noundef !46
  %330 = trunc i8 %329 to i1
  br i1 %330, label %335, label %331

331:                                              ; preds = %319
  %332 = load i32, ptr %42, align 4, !tbaa !13
  %333 = load i32, ptr %35, align 4, !tbaa !13
  %334 = icmp slt i32 %332, %333
  br label %335

335:                                              ; preds = %331, %319
  %336 = phi i1 [ true, %319 ], [ %334, %331 ]
  %337 = zext i1 %336 to i8
  store i8 %337, ptr %31, align 1, !tbaa !11
  br label %338

338:                                              ; preds = %335, %297
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %339

339:                                              ; preds = %338, %288
  br label %340

340:                                              ; preds = %339
  %341 = load i32, ptr %40, align 4, !tbaa !13
  %342 = add nsw i32 %341, 1
  store i32 %342, ptr %40, align 4, !tbaa !13
  br label %283, !llvm.loop !51

343:                                              ; preds = %287
  %344 = load i32, ptr %28, align 4, !tbaa !13
  %345 = add nsw i32 %344, 1
  store i32 %345, ptr %28, align 4, !tbaa !13
  %346 = load i32, ptr %26, align 4, !tbaa !13
  %347 = icmp sge i32 %344, %346
  br i1 %347, label %348, label %353

348:                                              ; preds = %343
  %349 = load double, ptr %30, align 8, !tbaa !9
  %350 = load double, ptr %29, align 8, !tbaa !9
  %351 = fcmp olt double %349, %350
  br i1 %351, label %352, label %353

352:                                              ; preds = %348
  store i8 1, ptr %31, align 1, !tbaa !11
  br label %353

353:                                              ; preds = %352, %348, %343
  %354 = load i8, ptr %31, align 1, !tbaa !11, !range !45, !noundef !46
  %355 = trunc i8 %354 to i1
  br i1 %355, label %356, label %357

356:                                              ; preds = %353
  store i32 7, ptr %23, align 4
  br label %362

357:                                              ; preds = %353
  %358 = load i32, ptr %35, align 4, !tbaa !13
  %359 = sitofp i32 %358 to double
  %360 = load double, ptr %4, align 8, !tbaa !9
  %361 = fadd double %360, %359
  store double %361, ptr %4, align 8, !tbaa !9
  store i32 0, ptr %23, align 4
  br label %362

362:                                              ; preds = %357, %356
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  %363 = load i32, ptr %23, align 4
  switch i32 %363, label %371 [
    i32 0, label %364
  ]

364:                                              ; preds = %362
  br label %365

365:                                              ; preds = %364
  %366 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 56
  %367 = load i32, ptr %36, align 4, !tbaa !13
  %368 = sext i32 %367 to i64
  %369 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %366, i64 noundef %368) #8
  %370 = load i32, ptr %369, align 4, !tbaa !13
  store i32 %370, ptr %36, align 4, !tbaa !13
  br label %260, !llvm.loop !53

371:                                              ; preds = %362, %263
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %372

372:                                              ; preds = %371
  br label %373

373:                                              ; preds = %372, %249
  %374 = load i32, ptr %35, align 4, !tbaa !13
  %375 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 13
  %376 = load i32, ptr %375, align 8, !tbaa !49
  %377 = icmp sle i32 %374, %376
  br i1 %377, label %378, label %513

378:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  %379 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 58
  %380 = load i32, ptr %35, align 4, !tbaa !13
  %381 = sext i32 %380 to i64
  %382 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %379, i64 noundef %381) #8
  %383 = load i32, ptr %382, align 4, !tbaa !13
  store i32 %383, ptr %44, align 4, !tbaa !13
  br label %384

384:                                              ; preds = %501, %378
  %385 = load i32, ptr %44, align 4, !tbaa !13
  %386 = icmp ne i32 %385, -1
  br i1 %386, label %388, label %387

387:                                              ; preds = %384
  store i32 13, ptr %23, align 4
  br label %507

388:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  %389 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 47
  %390 = load i32, ptr %44, align 4, !tbaa !13
  %391 = sext i32 %390 to i64
  %392 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %389, i64 noundef %391) #8
  %393 = load i32, ptr %392, align 4, !tbaa !13
  store i32 %393, ptr %45, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  %394 = load i32, ptr %45, align 4, !tbaa !13
  %395 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 48
  %396 = load i32, ptr %44, align 4, !tbaa !13
  %397 = sext i32 %396 to i64
  %398 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %395, i64 noundef %397) #8
  %399 = load i32, ptr %398, align 4, !tbaa !13
  %400 = add nsw i32 %394, %399
  store i32 %400, ptr %46, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  %401 = load i32, ptr %45, align 4, !tbaa !13
  store i32 %401, ptr %47, align 4, !tbaa !13
  br label %402

402:                                              ; preds = %480, %388
  %403 = load i32, ptr %47, align 4, !tbaa !13
  %404 = load i32, ptr %46, align 4, !tbaa !13
  %405 = icmp slt i32 %403, %404
  br i1 %405, label %407, label %406

406:                                              ; preds = %402
  store i32 16, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %483

407:                                              ; preds = %402
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  %408 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 51
  %409 = load i32, ptr %47, align 4, !tbaa !13
  %410 = sext i32 %409 to i64
  %411 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %408, i64 noundef %410) #8
  %412 = load i32, ptr %411, align 4, !tbaa !13
  store i32 %412, ptr %48, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #8
  %413 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 41
  %414 = load i32, ptr %48, align 4, !tbaa !13
  %415 = sext i32 %414 to i64
  %416 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %413, i64 noundef %415) #8
  %417 = load i32, ptr %416, align 4, !tbaa !13
  store i32 %417, ptr %49, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  %418 = load i32, ptr %35, align 4, !tbaa !13
  %419 = sub nsw i32 %418, 1
  %420 = sitofp i32 %419 to double
  %421 = fmul double 1.000000e+00, %420
  %422 = load i32, ptr %49, align 4, !tbaa !13
  %423 = sub nsw i32 %422, 1
  %424 = sitofp i32 %423 to double
  %425 = fmul double %421, %424
  store double %425, ptr %50, align 8, !tbaa !9
  %426 = load double, ptr %50, align 8, !tbaa !9
  %427 = load double, ptr %30, align 8, !tbaa !9
  %428 = fcmp olt double %426, %427
  br i1 %428, label %429, label %479

429:                                              ; preds = %407
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  %430 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 40
  %431 = load i32, ptr %48, align 4, !tbaa !13
  %432 = sext i32 %431 to i64
  %433 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %430, i64 noundef %432) #8
  %434 = load i32, ptr %433, align 4, !tbaa !13
  store i32 %434, ptr %51, align 4, !tbaa !13
  br label %435

435:                                              ; preds = %443, %429
  %436 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %437 = load i32, ptr %51, align 4, !tbaa !13
  %438 = sext i32 %437 to i64
  %439 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %436, i64 noundef %438) #8
  %440 = load i32, ptr %439, align 4, !tbaa !13
  %441 = load i32, ptr %44, align 4, !tbaa !13
  %442 = icmp ne i32 %440, %441
  br i1 %442, label %443, label %446

443:                                              ; preds = %435
  %444 = load i32, ptr %51, align 4, !tbaa !13
  %445 = add nsw i32 %444, 1
  store i32 %445, ptr %51, align 4, !tbaa !13
  br label %435, !llvm.loop !54

446:                                              ; preds = %435
  %447 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %448 = load i32, ptr %51, align 4, !tbaa !13
  %449 = sext i32 %448 to i64
  %450 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %447, i64 noundef %449) #8
  %451 = load double, ptr %450, align 8, !tbaa !9
  %452 = call double @llvm.fabs.f64(double %451)
  %453 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 46
  %454 = load i32, ptr %48, align 4, !tbaa !13
  %455 = sext i32 %454 to i64
  %456 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %453, i64 noundef %455) #8
  %457 = load double, ptr %456, align 8, !tbaa !9
  %458 = fcmp oge double %452, %457
  br i1 %458, label %459, label %478

459:                                              ; preds = %446
  %460 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %461 = load i32, ptr %51, align 4, !tbaa !13
  %462 = sext i32 %461 to i64
  %463 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %460, i64 noundef %462) #8
  %464 = load double, ptr %463, align 8, !tbaa !9
  %465 = call double @llvm.fabs.f64(double %464)
  store double %465, ptr %33, align 8, !tbaa !9
  %466 = load double, ptr %50, align 8, !tbaa !9
  store double %466, ptr %30, align 8, !tbaa !9
  %467 = load i32, ptr %48, align 4, !tbaa !13
  store i32 %467, ptr %24, align 4, !tbaa !13
  %468 = load i32, ptr %44, align 4, !tbaa !13
  store i32 %468, ptr %25, align 4, !tbaa !13
  %469 = load i8, ptr %31, align 1, !tbaa !11, !range !45, !noundef !46
  %470 = trunc i8 %469 to i1
  br i1 %470, label %475, label %471

471:                                              ; preds = %459
  %472 = load i32, ptr %49, align 4, !tbaa !13
  %473 = load i32, ptr %35, align 4, !tbaa !13
  %474 = icmp sle i32 %472, %473
  br label %475

475:                                              ; preds = %471, %459
  %476 = phi i1 [ true, %459 ], [ %474, %471 ]
  %477 = zext i1 %476 to i8
  store i8 %477, ptr %31, align 1, !tbaa !11
  br label %478

478:                                              ; preds = %475, %446
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %479

479:                                              ; preds = %478, %407
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %480

480:                                              ; preds = %479
  %481 = load i32, ptr %47, align 4, !tbaa !13
  %482 = add nsw i32 %481, 1
  store i32 %482, ptr %47, align 4, !tbaa !13
  br label %402, !llvm.loop !55

483:                                              ; preds = %406
  %484 = load i32, ptr %28, align 4, !tbaa !13
  %485 = add nsw i32 %484, 1
  store i32 %485, ptr %28, align 4, !tbaa !13
  %486 = load i32, ptr %26, align 4, !tbaa !13
  %487 = icmp sge i32 %484, %486
  br i1 %487, label %488, label %493

488:                                              ; preds = %483
  %489 = load double, ptr %30, align 8, !tbaa !9
  %490 = load double, ptr %29, align 8, !tbaa !9
  %491 = fcmp olt double %489, %490
  br i1 %491, label %492, label %493

492:                                              ; preds = %488
  store i8 1, ptr %31, align 1, !tbaa !11
  br label %493

493:                                              ; preds = %492, %488, %483
  %494 = load i8, ptr %31, align 1, !tbaa !11, !range !45, !noundef !46
  %495 = trunc i8 %494 to i1
  br i1 %495, label %496, label %497

496:                                              ; preds = %493
  store i32 13, ptr %23, align 4
  br label %498

497:                                              ; preds = %493
  store i32 0, ptr %23, align 4
  br label %498

498:                                              ; preds = %497, %496
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  %499 = load i32, ptr %23, align 4
  switch i32 %499, label %507 [
    i32 0, label %500
  ]

500:                                              ; preds = %498
  br label %501

501:                                              ; preds = %500
  %502 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 59
  %503 = load i32, ptr %44, align 4, !tbaa !13
  %504 = sext i32 %503 to i64
  %505 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %502, i64 noundef %504) #8
  %506 = load i32, ptr %505, align 4, !tbaa !13
  store i32 %506, ptr %44, align 4, !tbaa !13
  br label %384, !llvm.loop !56

507:                                              ; preds = %498, %387
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %508

508:                                              ; preds = %507
  %509 = load i32, ptr %35, align 4, !tbaa !13
  %510 = sitofp i32 %509 to double
  %511 = load double, ptr %4, align 8, !tbaa !9
  %512 = fadd double %511, %510
  store double %512, ptr %4, align 8, !tbaa !9
  br label %513

513:                                              ; preds = %508, %373
  br label %514

514:                                              ; preds = %513
  %515 = load i32, ptr %35, align 4, !tbaa !13
  %516 = add nsw i32 %515, 1
  store i32 %516, ptr %35, align 4, !tbaa !13
  br label %239, !llvm.loop !57

517:                                              ; preds = %248
  %518 = load i32, ptr %25, align 4, !tbaa !13
  %519 = icmp slt i32 %518, 0
  br i1 %519, label %520, label %543

520:                                              ; preds = %517
  %521 = load i32, ptr %24, align 4, !tbaa !13
  %522 = icmp slt i32 %521, 0
  br i1 %522, label %523, label %524

523:                                              ; preds = %520
  br label %526

524:                                              ; preds = %520
  call void @__assert_fail(ptr noundef @.str.59, ptr noundef @.str.52, i32 noundef 1044, ptr noundef @__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv) #9
  unreachable

525:                                              ; No predecessors!
  br label %526

526:                                              ; preds = %525, %523
  %527 = load i8, ptr %31, align 1, !tbaa !11, !range !45, !noundef !46
  %528 = trunc i8 %527 to i1
  %529 = xor i1 %528, true
  br i1 %529, label %530, label %531

530:                                              ; preds = %526
  br label %533

531:                                              ; preds = %526
  call void @__assert_fail(ptr noundef @.str.60, ptr noundef @.str.52, i32 noundef 1045, ptr noundef @__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv) #9
  unreachable

532:                                              ; No predecessors!
  br label %533

533:                                              ; preds = %532, %530
  %534 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 31
  %535 = load i32, ptr %534, align 8, !tbaa !44
  %536 = add nsw i32 %535, 1
  %537 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 2
  store i32 %536, ptr %537, align 8, !tbaa !58
  %538 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 25
  %539 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 2
  %540 = load i32, ptr %539, align 8, !tbaa !58
  call void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %538, i32 noundef 4, ptr noundef @.str.61, i32 noundef %540)
  %541 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 2
  %542 = load i32, ptr %541, align 8, !tbaa !58
  store i32 %542, ptr %2, align 4
  store i32 1, ptr %23, align 4
  br label %1336

543:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #8
  %544 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 48
  %545 = load i32, ptr %25, align 4, !tbaa !13
  %546 = sext i32 %545 to i64
  %547 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %544, i64 noundef %546) #8
  %548 = load i32, ptr %547, align 4, !tbaa !13
  store i32 %548, ptr %52, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #8
  %549 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 41
  %550 = load i32, ptr %24, align 4, !tbaa !13
  %551 = sext i32 %550 to i64
  %552 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %549, i64 noundef %551) #8
  %553 = load i32, ptr %552, align 4, !tbaa !13
  store i32 %553, ptr %53, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  %554 = load i32, ptr %24, align 4, !tbaa !13
  %555 = load i32, ptr %25, align 4, !tbaa !13
  %556 = call noundef double @_ZN7HFactor9colDeleteEii(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %554, i32 noundef %555)
  store double %556, ptr %54, align 8, !tbaa !9
  %557 = load i32, ptr %24, align 4, !tbaa !13
  %558 = load i32, ptr %25, align 4, !tbaa !13
  call void @_ZN7HFactor9rowDeleteEii(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %557, i32 noundef %558)
  %559 = load i32, ptr %24, align 4, !tbaa !13
  call void @_ZN7HFactor8clinkDelEi(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %559)
  %560 = load i32, ptr %25, align 4, !tbaa !13
  call void @_ZN7HFactor8rlinkDelEi(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %560)
  %561 = load i8, ptr %32, align 1, !tbaa !11, !range !45, !noundef !46
  %562 = trunc i8 %561 to i1
  br i1 %562, label %572, label %563

563:                                              ; preds = %543
  %564 = load double, ptr %33, align 8, !tbaa !9
  %565 = load double, ptr %54, align 8, !tbaa !9
  %566 = call double @llvm.fabs.f64(double %565)
  %567 = fcmp oeq double %564, %566
  br i1 %567, label %568, label %569

568:                                              ; preds = %563
  br label %571

569:                                              ; preds = %563
  call void @__assert_fail(ptr noundef @.str.62, ptr noundef @.str.52, i32 noundef 1075, ptr noundef @__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv) #9
  unreachable

570:                                              ; No predecessors!
  br label %571

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

572:                                              ; preds = %571, %543
  %573 = load double, ptr %54, align 8, !tbaa !9
  %574 = call double @llvm.fabs.f64(double %573)
  %575 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 21
  %576 = load double, ptr %575, align 8, !tbaa !59
  %577 = fcmp olt double %574, %576
  br i1 %577, label %578, label %642

578:                                              ; preds = %572
  %579 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 25
  %580 = load double, ptr %54, align 8, !tbaa !9
  call void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %579, i32 noundef 4, ptr noundef @.str.63, double noundef %580)
  %581 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 48
  %582 = load i32, ptr %25, align 4, !tbaa !13
  %583 = sext i32 %582 to i64
  %584 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %581, i64 noundef %583) #8
  %585 = load i32, ptr %584, align 4, !tbaa !13
  %586 = load i32, ptr %52, align 4, !tbaa !13
  %587 = sub nsw i32 %586, 1
  %588 = icmp eq i32 %585, %587
  br i1 %588, label %589, label %590

589:                                              ; preds = %578
  br label %592

590:                                              ; preds = %578
  call void @__assert_fail(ptr noundef @.str.64, ptr noundef @.str.52, i32 noundef 1081, ptr noundef @__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv) #9
  unreachable

591:                                              ; No predecessors!
  br label %592

592:                                              ; preds = %591, %589
  %593 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 48
  %594 = load i32, ptr %25, align 4, !tbaa !13
  %595 = sext i32 %594 to i64
  %596 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %593, i64 noundef %595) #8
  %597 = load i32, ptr %596, align 4, !tbaa !13
  %598 = icmp eq i32 %597, 0
  br i1 %598, label %599, label %618

599:                                              ; preds = %592
  %600 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 41
  %601 = load i32, ptr %24, align 4, !tbaa !13
  %602 = sext i32 %601 to i64
  %603 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %600, i64 noundef %602) #8
  %604 = load i32, ptr %603, align 4, !tbaa !13
  %605 = load i32, ptr %53, align 4, !tbaa !13
  %606 = sub nsw i32 %605, 1
  %607 = icmp eq i32 %604, %606
  br i1 %607, label %608, label %609

608:                                              ; preds = %599
  br label %611

609:                                              ; preds = %599
  call void @__assert_fail(ptr noundef @.str.65, ptr noundef @.str.52, i32 noundef 1089, ptr noundef @__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv) #9
  unreachable

610:                                              ; No predecessors!
  br label %611

611:                                              ; preds = %610, %608
  %612 = load i32, ptr %24, align 4, !tbaa !13
  %613 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 41
  %614 = load i32, ptr %24, align 4, !tbaa !13
  %615 = sext i32 %614 to i64
  %616 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %613, i64 noundef %615) #8
  %617 = load i32, ptr %616, align 4, !tbaa !13
  call void @_ZN7HFactor8clinkAddEii(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %612, i32 noundef %617)
  br label %638

618:                                              ; preds = %592
  %619 = load i32, ptr %24, align 4, !tbaa !13
  call void @_ZN7HFactor7zeroColEi(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %619)
  %620 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 48
  %621 = load i32, ptr %25, align 4, !tbaa !13
  %622 = sext i32 %621 to i64
  %623 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %620, i64 noundef %622) #8
  %624 = load i32, ptr %623, align 4, !tbaa !13
  %625 = load i32, ptr %52, align 4, !tbaa !13
  %626 = sub nsw i32 %625, 1
  %627 = icmp eq i32 %624, %626
  br i1 %627, label %628, label %629

628:                                              ; preds = %618
  br label %631

629:                                              ; preds = %618
  call void @__assert_fail(ptr noundef @.str.64, ptr noundef @.str.52, i32 noundef 1097, ptr noundef @__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv) #9
  unreachable

630:                                              ; No predecessors!
  br label %631

631:                                              ; preds = %630, %628
  %632 = load i32, ptr %25, align 4, !tbaa !13
  %633 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 48
  %634 = load i32, ptr %25, align 4, !tbaa !13
  %635 = sext i32 %634 to i64
  %636 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %633, i64 noundef %635) #8
  %637 = load i32, ptr %636, align 4, !tbaa !13
  call void @_ZN7HFactor8rlinkAddEii(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %632, i32 noundef %637)
  br label %638

638:                                              ; preds = %631, %611
  %639 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 31
  %640 = load i32, ptr %639, align 8, !tbaa !44
  %641 = add nsw i32 %640, 1
  store i32 %641, ptr %639, align 8, !tbaa !44
  store i32 2, ptr %23, align 4
  br label %1335, !llvm.loop !60

642:                                              ; preds = %572
  %643 = load i32, ptr %25, align 4, !tbaa !13
  %644 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 38
  %645 = load i32, ptr %24, align 4, !tbaa !13
  %646 = sext i32 %645 to i64
  %647 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %644, i64 noundef %646) #8
  store i32 %643, ptr %647, align 4, !tbaa !13
  %648 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 39
  %649 = load i32, ptr %24, align 4, !tbaa !13
  %650 = sext i32 %649 to i64
  %651 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %648, i64 noundef %650) #8
  %652 = load i32, ptr %651, align 4, !tbaa !13
  %653 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 19
  %654 = load ptr, ptr %653, align 8, !tbaa !61
  %655 = load i32, ptr %24, align 4, !tbaa !13
  %656 = sext i32 %655 to i64
  %657 = getelementptr inbounds i32, ptr %654, i64 %656
  %658 = load i32, ptr %657, align 4, !tbaa !13
  %659 = icmp eq i32 %652, %658
  br i1 %659, label %660, label %661

660:                                              ; preds = %642
  br label %663

661:                                              ; preds = %642
  call void @__assert_fail(ptr noundef @.str.66, ptr noundef @.str.52, i32 noundef 1105, ptr noundef @__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv) #9
  unreachable

662:                                              ; No predecessors!
  br label %663

663:                                              ; preds = %662, %660
  %664 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 6
  %665 = getelementptr inbounds %struct.RefactorInfo, ptr %664, i32 0, i32 1
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %665, ptr noundef nonnull align 4 dereferenceable(4) %25)
  %666 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 6
  %667 = getelementptr inbounds %struct.RefactorInfo, ptr %666, i32 0, i32 2
  %668 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 19
  %669 = load ptr, ptr %668, align 8, !tbaa !61
  %670 = load i32, ptr %24, align 4, !tbaa !13
  %671 = sext i32 %670 to i64
  %672 = getelementptr inbounds i32, ptr %669, i64 %671
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %667, ptr noundef nonnull align 4 dereferenceable(4) %672)
  %673 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 6
  %674 = getelementptr inbounds %struct.RefactorInfo, ptr %673, i32 0, i32 3
  call void @_ZNSt6vectorIaSaIaEE9push_backERKa(ptr noundef nonnull align 8 dereferenceable(24) %674, ptr noundef nonnull align 1 dereferenceable(1) @_ZL15kPivotMarkowitz)
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #8
  %675 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 40
  %676 = load i32, ptr %24, align 4, !tbaa !13
  %677 = sext i32 %676 to i64
  %678 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %675, i64 noundef %677) #8
  %679 = load i32, ptr %678, align 4, !tbaa !13
  store i32 %679, ptr %55, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  %680 = load i32, ptr %55, align 4, !tbaa !13
  %681 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 41
  %682 = load i32, ptr %24, align 4, !tbaa !13
  %683 = sext i32 %682 to i64
  %684 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %681, i64 noundef %683) #8
  %685 = load i32, ptr %684, align 4, !tbaa !13
  %686 = add nsw i32 %680, %685
  store i32 %686, ptr %56, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #8
  store i32 0, ptr %57, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #8
  %687 = load i32, ptr %55, align 4, !tbaa !13
  store i32 %687, ptr %58, align 4, !tbaa !13
  br label %688

688:                                              ; preds = %734, %663
  %689 = load i32, ptr %58, align 4, !tbaa !13
  %690 = load i32, ptr %56, align 4, !tbaa !13
  %691 = icmp slt i32 %689, %690
  br i1 %691, label %693, label %692

692:                                              ; preds = %688
  store i32 21, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #8
  br label %737

693:                                              ; preds = %688
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #8
  %694 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %695 = load i32, ptr %58, align 4, !tbaa !13
  %696 = sext i32 %695 to i64
  %697 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %694, i64 noundef %696) #8
  %698 = load i32, ptr %697, align 4, !tbaa !13
  store i32 %698, ptr %59, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #8
  %699 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %700 = load i32, ptr %58, align 4, !tbaa !13
  %701 = sext i32 %700 to i64
  %702 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %699, i64 noundef %701) #8
  %703 = load double, ptr %702, align 8, !tbaa !9
  %704 = load double, ptr %54, align 8, !tbaa !9
  %705 = fdiv double %703, %704
  store double %705, ptr %60, align 8, !tbaa !9
  %706 = load i32, ptr %59, align 4, !tbaa !13
  %707 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 52
  %708 = load i32, ptr %57, align 4, !tbaa !13
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr %57, align 4, !tbaa !13
  %710 = sext i32 %708 to i64
  %711 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %707, i64 noundef %710) #8
  store i32 %706, ptr %711, align 4, !tbaa !13
  %712 = load double, ptr %60, align 8, !tbaa !9
  %713 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 54
  %714 = load i32, ptr %59, align 4, !tbaa !13
  %715 = sext i32 %714 to i64
  %716 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %713, i64 noundef %715) #8
  store double %712, ptr %716, align 8, !tbaa !9
  %717 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 53
  %718 = load i32, ptr %59, align 4, !tbaa !13
  %719 = sext i32 %718 to i64
  %720 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %717, i64 noundef %719) #8
  store i8 1, ptr %720, align 1, !tbaa !62
  %721 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 64
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %721, ptr noundef nonnull align 4 dereferenceable(4) %59)
  %722 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 65
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %722, ptr noundef nonnull align 8 dereferenceable(8) %60)
  %723 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 48
  %724 = load i32, ptr %59, align 4, !tbaa !13
  %725 = sext i32 %724 to i64
  %726 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %723, i64 noundef %725) #8
  %727 = load i32, ptr %726, align 4, !tbaa !13
  %728 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 50
  %729 = load i32, ptr %59, align 4, !tbaa !13
  %730 = sext i32 %729 to i64
  %731 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %728, i64 noundef %730) #8
  store i32 %727, ptr %731, align 4, !tbaa !13
  %732 = load i32, ptr %24, align 4, !tbaa !13
  %733 = load i32, ptr %59, align 4, !tbaa !13
  call void @_ZN7HFactor9rowDeleteEii(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %732, i32 noundef %733)
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  br label %734

734:                                              ; preds = %693
  %735 = load i32, ptr %58, align 4, !tbaa !13
  %736 = add nsw i32 %735, 1
  store i32 %736, ptr %58, align 4, !tbaa !13
  br label %688, !llvm.loop !63

737:                                              ; preds = %692
  %738 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 63
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #8
  %739 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 64
  %740 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %739) #8
  %741 = trunc i64 %740 to i32
  store i32 %741, ptr %61, align 4, !tbaa !13
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %738, ptr noundef nonnull align 4 dereferenceable(4) %61)
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  %742 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 41
  %743 = load i32, ptr %24, align 4, !tbaa !13
  %744 = sext i32 %743 to i64
  %745 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %742, i64 noundef %744) #8
  %746 = load i32, ptr %745, align 4, !tbaa !13
  %747 = mul nsw i32 2, %746
  %748 = sitofp i32 %747 to double
  %749 = load double, ptr %5, align 8, !tbaa !9
  %750 = fadd double %749, %748
  store double %750, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #8
  %751 = load i32, ptr %55, align 4, !tbaa !13
  %752 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 43
  %753 = load i32, ptr %24, align 4, !tbaa !13
  %754 = sext i32 %753 to i64
  %755 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %752, i64 noundef %754) #8
  %756 = load i32, ptr %755, align 4, !tbaa !13
  %757 = add nsw i32 %751, %756
  store i32 %757, ptr %62, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #8
  %758 = load i32, ptr %62, align 4, !tbaa !13
  %759 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 42
  %760 = load i32, ptr %24, align 4, !tbaa !13
  %761 = sext i32 %760 to i64
  %762 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %759, i64 noundef %761) #8
  %763 = load i32, ptr %762, align 4, !tbaa !13
  %764 = sub nsw i32 %758, %763
  store i32 %764, ptr %63, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #8
  %765 = load i32, ptr %63, align 4, !tbaa !13
  store i32 %765, ptr %64, align 4, !tbaa !13
  br label %766

766:                                              ; preds = %782, %737
  %767 = load i32, ptr %64, align 4, !tbaa !13
  %768 = load i32, ptr %62, align 4, !tbaa !13
  %769 = icmp slt i32 %767, %768
  br i1 %769, label %771, label %770

770:                                              ; preds = %766
  store i32 24, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #8
  br label %785

771:                                              ; preds = %766
  %772 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 76
  %773 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %774 = load i32, ptr %64, align 4, !tbaa !13
  %775 = sext i32 %774 to i64
  %776 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %773, i64 noundef %775) #8
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %772, ptr noundef nonnull align 4 dereferenceable(4) %776)
  %777 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 77
  %778 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %779 = load i32, ptr %64, align 4, !tbaa !13
  %780 = sext i32 %779 to i64
  %781 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %778, i64 noundef %780) #8
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %777, ptr noundef nonnull align 8 dereferenceable(8) %781)
  br label %782

782:                                              ; preds = %771
  %783 = load i32, ptr %64, align 4, !tbaa !13
  %784 = add nsw i32 %783, 1
  store i32 %784, ptr %64, align 4, !tbaa !13
  br label %766, !llvm.loop !64

785:                                              ; preds = %770
  %786 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 70
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %786, ptr noundef nonnull align 4 dereferenceable(4) %25)
  %787 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 71
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %787, ptr noundef nonnull align 8 dereferenceable(8) %54)
  %788 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 74
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #8
  %789 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 76
  %790 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %789) #8
  %791 = trunc i64 %790 to i32
  store i32 %791, ptr %65, align 4, !tbaa !13
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %788, ptr noundef nonnull align 4 dereferenceable(4) %65)
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #8
  %792 = load i32, ptr %62, align 4, !tbaa !13
  %793 = load i32, ptr %63, align 4, !tbaa !13
  %794 = sub nsw i32 %792, %793
  %795 = sitofp i32 %794 to double
  %796 = load double, ptr %5, align 8, !tbaa !9
  %797 = fadd double %796, %795
  store double %797, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #8
  %798 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 47
  %799 = load i32, ptr %25, align 4, !tbaa !13
  %800 = sext i32 %799 to i64
  %801 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %798, i64 noundef %800) #8
  %802 = load i32, ptr %801, align 4, !tbaa !13
  store i32 %802, ptr %66, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #8
  %803 = load i32, ptr %66, align 4, !tbaa !13
  %804 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 48
  %805 = load i32, ptr %25, align 4, !tbaa !13
  %806 = sext i32 %805 to i64
  %807 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %804, i64 noundef %806) #8
  %808 = load i32, ptr %807, align 4, !tbaa !13
  %809 = add nsw i32 %803, %808
  store i32 %809, ptr %67, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #8
  %810 = load i32, ptr %66, align 4, !tbaa !13
  store i32 %810, ptr %68, align 4, !tbaa !13
  br label %811

811:                                              ; preds = %1277, %785
  %812 = load i32, ptr %68, align 4, !tbaa !13
  %813 = load i32, ptr %67, align 4, !tbaa !13
  %814 = icmp slt i32 %812, %813
  br i1 %814, label %816, label %815

815:                                              ; preds = %811
  store i32 27, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #8
  br label %1280

816:                                              ; preds = %811
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #8
  %817 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 51
  %818 = load i32, ptr %68, align 4, !tbaa !13
  %819 = sext i32 %818 to i64
  %820 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %817, i64 noundef %819) #8
  %821 = load i32, ptr %820, align 4, !tbaa !13
  store i32 %821, ptr %69, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #8
  %822 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 41
  %823 = load i32, ptr %69, align 4, !tbaa !13
  %824 = sext i32 %823 to i64
  %825 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %822, i64 noundef %824) #8
  %826 = load i32, ptr %825, align 4, !tbaa !13
  store i32 %826, ptr %70, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #8
  %827 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 40
  %828 = load i32, ptr %69, align 4, !tbaa !13
  %829 = sext i32 %828 to i64
  %830 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %827, i64 noundef %829) #8
  %831 = load i32, ptr %830, align 4, !tbaa !13
  store i32 %831, ptr %71, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #8
  %832 = load i32, ptr %71, align 4, !tbaa !13
  %833 = load i32, ptr %70, align 4, !tbaa !13
  %834 = add nsw i32 %832, %833
  %835 = sub nsw i32 %834, 1
  store i32 %835, ptr %72, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #8
  %836 = load i32, ptr %69, align 4, !tbaa !13
  %837 = load i32, ptr %25, align 4, !tbaa !13
  %838 = call noundef double @_ZN7HFactor9colDeleteEii(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %836, i32 noundef %837)
  store double %838, ptr %73, align 8, !tbaa !9
  %839 = load i32, ptr %69, align 4, !tbaa !13
  %840 = load i32, ptr %25, align 4, !tbaa !13
  %841 = load double, ptr %73, align 8, !tbaa !9
  call void @_ZN7HFactor9colStoreNEiid(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %839, i32 noundef %840, double noundef %841)
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #8
  %842 = load i32, ptr %57, align 4, !tbaa !13
  store i32 %842, ptr %74, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #8
  store i32 0, ptr %75, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #8
  %843 = load i32, ptr %71, align 4, !tbaa !13
  store i32 %843, ptr %76, align 4, !tbaa !13
  br label %844

844:                                              ; preds = %895, %816
  %845 = load i32, ptr %76, align 4, !tbaa !13
  %846 = load i32, ptr %72, align 4, !tbaa !13
  %847 = icmp slt i32 %845, %846
  br i1 %847, label %849, label %848

848:                                              ; preds = %844
  store i32 30, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  br label %898

849:                                              ; preds = %844
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #8
  %850 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %851 = load i32, ptr %76, align 4, !tbaa !13
  %852 = sext i32 %851 to i64
  %853 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %850, i64 noundef %852) #8
  %854 = load i32, ptr %853, align 4, !tbaa !13
  store i32 %854, ptr %77, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #8
  %855 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %856 = load i32, ptr %76, align 4, !tbaa !13
  %857 = sext i32 %856 to i64
  %858 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %855, i64 noundef %857) #8
  %859 = load double, ptr %858, align 8, !tbaa !9
  store double %859, ptr %78, align 8, !tbaa !9
  %860 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 53
  %861 = load i32, ptr %77, align 4, !tbaa !13
  %862 = sext i32 %861 to i64
  %863 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %860, i64 noundef %862) #8
  %864 = load i8, ptr %863, align 1, !tbaa !62
  %865 = icmp ne i8 %864, 0
  br i1 %865, label %866, label %894

866:                                              ; preds = %849
  %867 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 53
  %868 = load i32, ptr %77, align 4, !tbaa !13
  %869 = sext i32 %868 to i64
  %870 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %867, i64 noundef %869) #8
  store i8 0, ptr %870, align 1, !tbaa !62
  %871 = load i32, ptr %74, align 4, !tbaa !13
  %872 = add nsw i32 %871, -1
  store i32 %872, ptr %74, align 4, !tbaa !13
  %873 = load double, ptr %73, align 8, !tbaa !9
  %874 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 54
  %875 = load i32, ptr %77, align 4, !tbaa !13
  %876 = sext i32 %875 to i64
  %877 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %874, i64 noundef %876) #8
  %878 = load double, ptr %877, align 8, !tbaa !9
  %879 = load double, ptr %78, align 8, !tbaa !9
  %880 = fneg double %873
  %881 = call double @llvm.fmuladd.f64(double %880, double %878, double %879)
  store double %881, ptr %78, align 8, !tbaa !9
  %882 = load double, ptr %78, align 8, !tbaa !9
  %883 = call double @llvm.fabs.f64(double %882)
  %884 = fcmp olt double %883, 0x3D06849B86A12B9B
  br i1 %884, label %885, label %888

885:                                              ; preds = %866
  store double 0.000000e+00, ptr %78, align 8, !tbaa !9
  %886 = load i32, ptr %75, align 4, !tbaa !13
  %887 = add nsw i32 %886, 1
  store i32 %887, ptr %75, align 4, !tbaa !13
  br label %888

888:                                              ; preds = %885, %866
  %889 = load double, ptr %78, align 8, !tbaa !9
  %890 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %891 = load i32, ptr %76, align 4, !tbaa !13
  %892 = sext i32 %891 to i64
  %893 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %890, i64 noundef %892) #8
  store double %889, ptr %893, align 8, !tbaa !9
  br label %894

894:                                              ; preds = %888, %849
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #8
  br label %895

895:                                              ; preds = %894
  %896 = load i32, ptr %76, align 4, !tbaa !13
  %897 = add nsw i32 %896, 1
  store i32 %897, ptr %76, align 4, !tbaa !13
  br label %844, !llvm.loop !65

898:                                              ; preds = %848
  %899 = load i32, ptr %57, align 4, !tbaa !13
  %900 = sitofp i32 %899 to double
  %901 = load double, ptr %6, align 8, !tbaa !9
  %902 = fadd double %901, %900
  store double %902, ptr %6, align 8, !tbaa !9
  %903 = load i32, ptr %74, align 4, !tbaa !13
  %904 = mul nsw i32 %903, 2
  %905 = sitofp i32 %904 to double
  %906 = load double, ptr %6, align 8, !tbaa !9
  %907 = fadd double %906, %905
  store double %907, ptr %6, align 8, !tbaa !9
  %908 = load i32, ptr %75, align 4, !tbaa !13
  %909 = icmp sgt i32 %908, 0
  br i1 %909, label %910, label %964

910:                                              ; preds = %898
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #8
  %911 = load i32, ptr %71, align 4, !tbaa !13
  store i32 %911, ptr %79, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #8
  %912 = load i32, ptr %71, align 4, !tbaa !13
  store i32 %912, ptr %80, align 4, !tbaa !13
  br label %913

913:                                              ; preds = %953, %910
  %914 = load i32, ptr %80, align 4, !tbaa !13
  %915 = load i32, ptr %72, align 4, !tbaa !13
  %916 = icmp slt i32 %914, %915
  br i1 %916, label %918, label %917

917:                                              ; preds = %913
  store i32 33, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #8
  br label %956

918:                                              ; preds = %913
  %919 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %920 = load i32, ptr %80, align 4, !tbaa !13
  %921 = sext i32 %920 to i64
  %922 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %919, i64 noundef %921) #8
  %923 = load double, ptr %922, align 8, !tbaa !9
  %924 = fcmp une double %923, 0.000000e+00
  br i1 %924, label %925, label %945

925:                                              ; preds = %918
  %926 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %927 = load i32, ptr %80, align 4, !tbaa !13
  %928 = sext i32 %927 to i64
  %929 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %926, i64 noundef %928) #8
  %930 = load i32, ptr %929, align 4, !tbaa !13
  %931 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %932 = load i32, ptr %79, align 4, !tbaa !13
  %933 = sext i32 %932 to i64
  %934 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %931, i64 noundef %933) #8
  store i32 %930, ptr %934, align 4, !tbaa !13
  %935 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %936 = load i32, ptr %80, align 4, !tbaa !13
  %937 = sext i32 %936 to i64
  %938 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %935, i64 noundef %937) #8
  %939 = load double, ptr %938, align 8, !tbaa !9
  %940 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %941 = load i32, ptr %79, align 4, !tbaa !13
  %942 = add nsw i32 %941, 1
  store i32 %942, ptr %79, align 4, !tbaa !13
  %943 = sext i32 %941 to i64
  %944 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %940, i64 noundef %943) #8
  store double %939, ptr %944, align 8, !tbaa !9
  br label %952

945:                                              ; preds = %918
  %946 = load i32, ptr %69, align 4, !tbaa !13
  %947 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %948 = load i32, ptr %80, align 4, !tbaa !13
  %949 = sext i32 %948 to i64
  %950 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %947, i64 noundef %949) #8
  %951 = load i32, ptr %950, align 4, !tbaa !13
  call void @_ZN7HFactor9rowDeleteEii(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %946, i32 noundef %951)
  br label %952

952:                                              ; preds = %945, %925
  br label %953

953:                                              ; preds = %952
  %954 = load i32, ptr %80, align 4, !tbaa !13
  %955 = add nsw i32 %954, 1
  store i32 %955, ptr %80, align 4, !tbaa !13
  br label %913, !llvm.loop !66

956:                                              ; preds = %917
  %957 = load i32, ptr %79, align 4, !tbaa !13
  %958 = load i32, ptr %71, align 4, !tbaa !13
  %959 = sub nsw i32 %957, %958
  %960 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 41
  %961 = load i32, ptr %69, align 4, !tbaa !13
  %962 = sext i32 %961 to i64
  %963 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %960, i64 noundef %962) #8
  store i32 %959, ptr %963, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #8
  br label %964

964:                                              ; preds = %956, %898
  %965 = load i32, ptr %74, align 4, !tbaa !13
  %966 = icmp sgt i32 %965, 0
  br i1 %966, label %967, label %1241

967:                                              ; preds = %964
  %968 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 41
  %969 = load i32, ptr %69, align 4, !tbaa !13
  %970 = sext i32 %969 to i64
  %971 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %968, i64 noundef %970) #8
  %972 = load i32, ptr %971, align 4, !tbaa !13
  %973 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 42
  %974 = load i32, ptr %69, align 4, !tbaa !13
  %975 = sext i32 %974 to i64
  %976 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %973, i64 noundef %975) #8
  %977 = load i32, ptr %976, align 4, !tbaa !13
  %978 = add nsw i32 %972, %977
  %979 = load i32, ptr %74, align 4, !tbaa !13
  %980 = add nsw i32 %978, %979
  %981 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 43
  %982 = load i32, ptr %69, align 4, !tbaa !13
  %983 = sext i32 %982 to i64
  %984 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %981, i64 noundef %983) #8
  %985 = load i32, ptr %984, align 4, !tbaa !13
  %986 = icmp sgt i32 %980, %985
  br i1 %986, label %987, label %1122

987:                                              ; preds = %967
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #8
  %988 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 40
  %989 = load i32, ptr %69, align 4, !tbaa !13
  %990 = sext i32 %989 to i64
  %991 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %988, i64 noundef %990) #8
  %992 = load i32, ptr %991, align 4, !tbaa !13
  store i32 %992, ptr %81, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #8
  %993 = load i32, ptr %81, align 4, !tbaa !13
  %994 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 41
  %995 = load i32, ptr %69, align 4, !tbaa !13
  %996 = sext i32 %995 to i64
  %997 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %994, i64 noundef %996) #8
  %998 = load i32, ptr %997, align 4, !tbaa !13
  %999 = add nsw i32 %993, %998
  store i32 %999, ptr %82, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #8
  %1000 = load i32, ptr %81, align 4, !tbaa !13
  %1001 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 43
  %1002 = load i32, ptr %69, align 4, !tbaa !13
  %1003 = sext i32 %1002 to i64
  %1004 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1001, i64 noundef %1003) #8
  %1005 = load i32, ptr %1004, align 4, !tbaa !13
  %1006 = add nsw i32 %1000, %1005
  %1007 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 42
  %1008 = load i32, ptr %69, align 4, !tbaa !13
  %1009 = sext i32 %1008 to i64
  %1010 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1007, i64 noundef %1009) #8
  %1011 = load i32, ptr %1010, align 4, !tbaa !13
  %1012 = sub nsw i32 %1006, %1011
  store i32 %1012, ptr %83, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #8
  %1013 = load i32, ptr %81, align 4, !tbaa !13
  %1014 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 43
  %1015 = load i32, ptr %69, align 4, !tbaa !13
  %1016 = sext i32 %1015 to i64
  %1017 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1014, i64 noundef %1016) #8
  %1018 = load i32, ptr %1017, align 4, !tbaa !13
  %1019 = add nsw i32 %1013, %1018
  store i32 %1019, ptr %84, align 4, !tbaa !13
  %1020 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 43
  %1021 = load i32, ptr %69, align 4, !tbaa !13
  %1022 = sext i32 %1021 to i64
  %1023 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1020, i64 noundef %1022) #8
  %1024 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %1023, ptr noundef nonnull align 4 dereferenceable(4) %74)
  %1025 = load i32, ptr %1024, align 4, !tbaa !13
  %1026 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 43
  %1027 = load i32, ptr %69, align 4, !tbaa !13
  %1028 = sext i32 %1027 to i64
  %1029 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1026, i64 noundef %1028) #8
  %1030 = load i32, ptr %1029, align 4, !tbaa !13
  %1031 = add nsw i32 %1030, %1025
  store i32 %1031, ptr %1029, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #8
  %1032 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %1033 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1032) #8
  %1034 = trunc i64 %1033 to i32
  %1035 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 40
  %1036 = load i32, ptr %69, align 4, !tbaa !13
  %1037 = sext i32 %1036 to i64
  %1038 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1035, i64 noundef %1037) #8
  store i32 %1034, ptr %1038, align 4, !tbaa !13
  store i32 %1034, ptr %85, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #8
  %1039 = load i32, ptr %85, align 4, !tbaa !13
  %1040 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 43
  %1041 = load i32, ptr %69, align 4, !tbaa !13
  %1042 = sext i32 %1041 to i64
  %1043 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1040, i64 noundef %1042) #8
  %1044 = load i32, ptr %1043, align 4, !tbaa !13
  %1045 = add nsw i32 %1039, %1044
  %1046 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 42
  %1047 = load i32, ptr %69, align 4, !tbaa !13
  %1048 = sext i32 %1047 to i64
  %1049 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1046, i64 noundef %1048) #8
  %1050 = load i32, ptr %1049, align 4, !tbaa !13
  %1051 = sub nsw i32 %1045, %1050
  store i32 %1051, ptr %86, align 4, !tbaa !13
  %1052 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %1053 = load i32, ptr %85, align 4, !tbaa !13
  %1054 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 43
  %1055 = load i32, ptr %69, align 4, !tbaa !13
  %1056 = sext i32 %1055 to i64
  %1057 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1054, i64 noundef %1056) #8
  %1058 = load i32, ptr %1057, align 4, !tbaa !13
  %1059 = add nsw i32 %1053, %1058
  %1060 = sext i32 %1059 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %1052, i64 noundef %1060)
  %1061 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %1062 = load i32, ptr %85, align 4, !tbaa !13
  %1063 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 43
  %1064 = load i32, ptr %69, align 4, !tbaa !13
  %1065 = sext i32 %1064 to i64
  %1066 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1063, i64 noundef %1065) #8
  %1067 = load i32, ptr %1066, align 4, !tbaa !13
  %1068 = add nsw i32 %1062, %1067
  %1069 = sext i32 %1068 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %1061, i64 noundef %1069)
  %1070 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %1071 = load i32, ptr %81, align 4, !tbaa !13
  %1072 = sext i32 %1071 to i64
  %1073 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1070, i64 noundef %1072) #8
  %1074 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %1075 = load i32, ptr %82, align 4, !tbaa !13
  %1076 = sext i32 %1075 to i64
  %1077 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1074, i64 noundef %1076) #8
  %1078 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %1079 = load i32, ptr %85, align 4, !tbaa !13
  %1080 = sext i32 %1079 to i64
  %1081 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1078, i64 noundef %1080) #8
  %1082 = call noundef ptr @_ZSt4copyIPiS0_ET0_T_S2_S1_(ptr noundef %1073, ptr noundef %1077, ptr noundef %1081)
  %1083 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %1084 = load i32, ptr %81, align 4, !tbaa !13
  %1085 = sext i32 %1084 to i64
  %1086 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1083, i64 noundef %1085) #8
  %1087 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %1088 = load i32, ptr %82, align 4, !tbaa !13
  %1089 = sext i32 %1088 to i64
  %1090 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1087, i64 noundef %1089) #8
  %1091 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %1092 = load i32, ptr %85, align 4, !tbaa !13
  %1093 = sext i32 %1092 to i64
  %1094 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1091, i64 noundef %1093) #8
  %1095 = call noundef ptr @_ZSt4copyIPdS0_ET0_T_S2_S1_(ptr noundef %1086, ptr noundef %1090, ptr noundef %1094)
  %1096 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %1097 = load i32, ptr %83, align 4, !tbaa !13
  %1098 = sext i32 %1097 to i64
  %1099 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1096, i64 noundef %1098) #8
  %1100 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %1101 = load i32, ptr %84, align 4, !tbaa !13
  %1102 = sext i32 %1101 to i64
  %1103 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1100, i64 noundef %1102) #8
  %1104 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %1105 = load i32, ptr %86, align 4, !tbaa !13
  %1106 = sext i32 %1105 to i64
  %1107 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1104, i64 noundef %1106) #8
  %1108 = call noundef ptr @_ZSt4copyIPiS0_ET0_T_S2_S1_(ptr noundef %1099, ptr noundef %1103, ptr noundef %1107)
  %1109 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %1110 = load i32, ptr %83, align 4, !tbaa !13
  %1111 = sext i32 %1110 to i64
  %1112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1109, i64 noundef %1111) #8
  %1113 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %1114 = load i32, ptr %84, align 4, !tbaa !13
  %1115 = sext i32 %1114 to i64
  %1116 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1113, i64 noundef %1115) #8
  %1117 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 45
  %1118 = load i32, ptr %86, align 4, !tbaa !13
  %1119 = sext i32 %1118 to i64
  %1120 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1117, i64 noundef %1119) #8
  %1121 = call noundef ptr @_ZSt4copyIPdS0_ET0_T_S2_S1_(ptr noundef %1112, ptr noundef %1116, ptr noundef %1120)
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #8
  br label %1122

1122:                                             ; preds = %987, %967
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #8
  store i32 0, ptr %87, align 4, !tbaa !13
  br label %1123

1123:                                             ; preds = %1152, %1122
  %1124 = load i32, ptr %87, align 4, !tbaa !13
  %1125 = load i32, ptr %57, align 4, !tbaa !13
  %1126 = icmp slt i32 %1124, %1125
  br i1 %1126, label %1128, label %1127

1127:                                             ; preds = %1123
  store i32 36, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  br label %1155

1128:                                             ; preds = %1123
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #8
  %1129 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 52
  %1130 = load i32, ptr %87, align 4, !tbaa !13
  %1131 = sext i32 %1130 to i64
  %1132 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1129, i64 noundef %1131) #8
  %1133 = load i32, ptr %1132, align 4, !tbaa !13
  store i32 %1133, ptr %88, align 4, !tbaa !13
  %1134 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 53
  %1135 = load i32, ptr %88, align 4, !tbaa !13
  %1136 = sext i32 %1135 to i64
  %1137 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1134, i64 noundef %1136) #8
  %1138 = load i8, ptr %1137, align 1, !tbaa !62
  %1139 = icmp ne i8 %1138, 0
  br i1 %1139, label %1140, label %1151

1140:                                             ; preds = %1128
  %1141 = load i32, ptr %69, align 4, !tbaa !13
  %1142 = load i32, ptr %88, align 4, !tbaa !13
  %1143 = load double, ptr %73, align 8, !tbaa !9
  %1144 = fneg double %1143
  %1145 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 54
  %1146 = load i32, ptr %88, align 4, !tbaa !13
  %1147 = sext i32 %1146 to i64
  %1148 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1145, i64 noundef %1147) #8
  %1149 = load double, ptr %1148, align 8, !tbaa !9
  %1150 = fmul double %1144, %1149
  call void @_ZN7HFactor9colInsertEiid(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %1141, i32 noundef %1142, double noundef %1150)
  br label %1151

1151:                                             ; preds = %1140, %1128
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #8
  br label %1152

1152:                                             ; preds = %1151
  %1153 = load i32, ptr %87, align 4, !tbaa !13
  %1154 = add nsw i32 %1153, 1
  store i32 %1154, ptr %87, align 4, !tbaa !13
  br label %1123, !llvm.loop !67

1155:                                             ; preds = %1127
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #8
  store i32 0, ptr %89, align 4, !tbaa !13
  br label %1156

1156:                                             ; preds = %1237, %1155
  %1157 = load i32, ptr %89, align 4, !tbaa !13
  %1158 = load i32, ptr %57, align 4, !tbaa !13
  %1159 = icmp slt i32 %1157, %1158
  br i1 %1159, label %1161, label %1160

1160:                                             ; preds = %1156
  store i32 39, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #8
  br label %1240

1161:                                             ; preds = %1156
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #8
  %1162 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 52
  %1163 = load i32, ptr %89, align 4, !tbaa !13
  %1164 = sext i32 %1163 to i64
  %1165 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1162, i64 noundef %1164) #8
  %1166 = load i32, ptr %1165, align 4, !tbaa !13
  store i32 %1166, ptr %90, align 4, !tbaa !13
  %1167 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 53
  %1168 = load i32, ptr %90, align 4, !tbaa !13
  %1169 = sext i32 %1168 to i64
  %1170 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1167, i64 noundef %1169) #8
  %1171 = load i8, ptr %1170, align 1, !tbaa !62
  %1172 = icmp ne i8 %1171, 0
  br i1 %1172, label %1173, label %1236

1173:                                             ; preds = %1161
  %1174 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 48
  %1175 = load i32, ptr %90, align 4, !tbaa !13
  %1176 = sext i32 %1175 to i64
  %1177 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1174, i64 noundef %1176) #8
  %1178 = load i32, ptr %1177, align 4, !tbaa !13
  %1179 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 49
  %1180 = load i32, ptr %90, align 4, !tbaa !13
  %1181 = sext i32 %1180 to i64
  %1182 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1179, i64 noundef %1181) #8
  %1183 = load i32, ptr %1182, align 4, !tbaa !13
  %1184 = icmp eq i32 %1178, %1183
  br i1 %1184, label %1185, label %1233

1185:                                             ; preds = %1173
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #8
  %1186 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 47
  %1187 = load i32, ptr %90, align 4, !tbaa !13
  %1188 = sext i32 %1187 to i64
  %1189 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1186, i64 noundef %1188) #8
  %1190 = load i32, ptr %1189, align 4, !tbaa !13
  store i32 %1190, ptr %91, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #8
  %1191 = load i32, ptr %91, align 4, !tbaa !13
  %1192 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 48
  %1193 = load i32, ptr %90, align 4, !tbaa !13
  %1194 = sext i32 %1193 to i64
  %1195 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1192, i64 noundef %1194) #8
  %1196 = load i32, ptr %1195, align 4, !tbaa !13
  %1197 = add nsw i32 %1191, %1196
  store i32 %1197, ptr %92, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #8
  %1198 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 51
  %1199 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1198) #8
  %1200 = trunc i64 %1199 to i32
  %1201 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 47
  %1202 = load i32, ptr %90, align 4, !tbaa !13
  %1203 = sext i32 %1202 to i64
  %1204 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1201, i64 noundef %1203) #8
  store i32 %1200, ptr %1204, align 4, !tbaa !13
  store i32 %1200, ptr %93, align 4, !tbaa !13
  %1205 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 49
  %1206 = load i32, ptr %90, align 4, !tbaa !13
  %1207 = sext i32 %1206 to i64
  %1208 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1205, i64 noundef %1207) #8
  %1209 = load i32, ptr %1208, align 4, !tbaa !13
  %1210 = mul nsw i32 %1209, 2
  store i32 %1210, ptr %1208, align 4, !tbaa !13
  %1211 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 51
  %1212 = load i32, ptr %93, align 4, !tbaa !13
  %1213 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 49
  %1214 = load i32, ptr %90, align 4, !tbaa !13
  %1215 = sext i32 %1214 to i64
  %1216 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1213, i64 noundef %1215) #8
  %1217 = load i32, ptr %1216, align 4, !tbaa !13
  %1218 = add nsw i32 %1212, %1217
  %1219 = sext i32 %1218 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %1211, i64 noundef %1219)
  %1220 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 51
  %1221 = load i32, ptr %91, align 4, !tbaa !13
  %1222 = sext i32 %1221 to i64
  %1223 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1220, i64 noundef %1222) #8
  %1224 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 51
  %1225 = load i32, ptr %92, align 4, !tbaa !13
  %1226 = sext i32 %1225 to i64
  %1227 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1224, i64 noundef %1226) #8
  %1228 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 51
  %1229 = load i32, ptr %93, align 4, !tbaa !13
  %1230 = sext i32 %1229 to i64
  %1231 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1228, i64 noundef %1230) #8
  %1232 = call noundef ptr @_ZSt4copyIPiS0_ET0_T_S2_S1_(ptr noundef %1223, ptr noundef %1227, ptr noundef %1231)
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #8
  br label %1233

1233:                                             ; preds = %1185, %1173
  %1234 = load i32, ptr %69, align 4, !tbaa !13
  %1235 = load i32, ptr %90, align 4, !tbaa !13
  call void @_ZN7HFactor9rowInsertEii(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %1234, i32 noundef %1235)
  br label %1236

1236:                                             ; preds = %1233, %1161
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #8
  br label %1237

1237:                                             ; preds = %1236
  %1238 = load i32, ptr %89, align 4, !tbaa !13
  %1239 = add nsw i32 %1238, 1
  store i32 %1239, ptr %89, align 4, !tbaa !13
  br label %1156, !llvm.loop !68

1240:                                             ; preds = %1160
  br label %1241

1241:                                             ; preds = %1240, %964
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #8
  store i32 0, ptr %94, align 4, !tbaa !13
  br label %1242

1242:                                             ; preds = %1256, %1241
  %1243 = load i32, ptr %94, align 4, !tbaa !13
  %1244 = load i32, ptr %57, align 4, !tbaa !13
  %1245 = icmp slt i32 %1243, %1244
  br i1 %1245, label %1247, label %1246

1246:                                             ; preds = %1242
  store i32 42, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #8
  br label %1259

1247:                                             ; preds = %1242
  %1248 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 53
  %1249 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 52
  %1250 = load i32, ptr %94, align 4, !tbaa !13
  %1251 = sext i32 %1250 to i64
  %1252 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1249, i64 noundef %1251) #8
  %1253 = load i32, ptr %1252, align 4, !tbaa !13
  %1254 = sext i32 %1253 to i64
  %1255 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1248, i64 noundef %1254) #8
  store i8 1, ptr %1255, align 1, !tbaa !62
  br label %1256

1256:                                             ; preds = %1247
  %1257 = load i32, ptr %94, align 4, !tbaa !13
  %1258 = add nsw i32 %1257, 1
  store i32 %1258, ptr %94, align 4, !tbaa !13
  br label %1242, !llvm.loop !69

1259:                                             ; preds = %1246
  %1260 = load i32, ptr %69, align 4, !tbaa !13
  call void @_ZN7HFactor9colFixMaxEi(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %1260)
  %1261 = load i32, ptr %70, align 4, !tbaa !13
  %1262 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 41
  %1263 = load i32, ptr %69, align 4, !tbaa !13
  %1264 = sext i32 %1263 to i64
  %1265 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1262, i64 noundef %1264) #8
  %1266 = load i32, ptr %1265, align 4, !tbaa !13
  %1267 = icmp ne i32 %1261, %1266
  br i1 %1267, label %1268, label %1276

1268:                                             ; preds = %1259
  %1269 = load i32, ptr %69, align 4, !tbaa !13
  call void @_ZN7HFactor8clinkDelEi(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %1269)
  %1270 = load i32, ptr %69, align 4, !tbaa !13
  %1271 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 41
  %1272 = load i32, ptr %69, align 4, !tbaa !13
  %1273 = sext i32 %1272 to i64
  %1274 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1271, i64 noundef %1273) #8
  %1275 = load i32, ptr %1274, align 4, !tbaa !13
  call void @_ZN7HFactor8clinkAddEii(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %1270, i32 noundef %1275)
  br label %1276

1276:                                             ; preds = %1268, %1259
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #8
  br label %1277

1277:                                             ; preds = %1276
  %1278 = load i32, ptr %68, align 4, !tbaa !13
  %1279 = add nsw i32 %1278, 1
  store i32 %1279, ptr %68, align 4, !tbaa !13
  br label %811, !llvm.loop !70

1280:                                             ; preds = %815
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #8
  store i32 0, ptr %95, align 4, !tbaa !13
  br label %1281

1281:                                             ; preds = %1295, %1280
  %1282 = load i32, ptr %95, align 4, !tbaa !13
  %1283 = load i32, ptr %57, align 4, !tbaa !13
  %1284 = icmp slt i32 %1282, %1283
  br i1 %1284, label %1286, label %1285

1285:                                             ; preds = %1281
  store i32 45, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #8
  br label %1298

1286:                                             ; preds = %1281
  %1287 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 53
  %1288 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 52
  %1289 = load i32, ptr %95, align 4, !tbaa !13
  %1290 = sext i32 %1289 to i64
  %1291 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1288, i64 noundef %1290) #8
  %1292 = load i32, ptr %1291, align 4, !tbaa !13
  %1293 = sext i32 %1292 to i64
  %1294 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1287, i64 noundef %1293) #8
  store i8 0, ptr %1294, align 1, !tbaa !62
  br label %1295

1295:                                             ; preds = %1286
  %1296 = load i32, ptr %95, align 4, !tbaa !13
  %1297 = add nsw i32 %1296, 1
  store i32 %1297, ptr %95, align 4, !tbaa !13
  br label %1281, !llvm.loop !71

1298:                                             ; preds = %1285
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #8
  %1299 = load i32, ptr %55, align 4, !tbaa !13
  store i32 %1299, ptr %96, align 4, !tbaa !13
  br label %1300

1300:                                             ; preds = %1331, %1298
  %1301 = load i32, ptr %96, align 4, !tbaa !13
  %1302 = load i32, ptr %56, align 4, !tbaa !13
  %1303 = icmp slt i32 %1301, %1302
  br i1 %1303, label %1305, label %1304

1304:                                             ; preds = %1300
  store i32 48, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #8
  br label %1334

1305:                                             ; preds = %1300
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #8
  %1306 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 44
  %1307 = load i32, ptr %96, align 4, !tbaa !13
  %1308 = sext i32 %1307 to i64
  %1309 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1306, i64 noundef %1308) #8
  %1310 = load i32, ptr %1309, align 4, !tbaa !13
  store i32 %1310, ptr %97, align 4, !tbaa !13
  %1311 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 50
  %1312 = load i32, ptr %97, align 4, !tbaa !13
  %1313 = sext i32 %1312 to i64
  %1314 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1311, i64 noundef %1313) #8
  %1315 = load i32, ptr %1314, align 4, !tbaa !13
  %1316 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 48
  %1317 = load i32, ptr %97, align 4, !tbaa !13
  %1318 = sext i32 %1317 to i64
  %1319 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1316, i64 noundef %1318) #8
  %1320 = load i32, ptr %1319, align 4, !tbaa !13
  %1321 = icmp ne i32 %1315, %1320
  br i1 %1321, label %1322, label %1330

1322:                                             ; preds = %1305
  %1323 = load i32, ptr %97, align 4, !tbaa !13
  call void @_ZN7HFactor8rlinkDelEi(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %1323)
  %1324 = load i32, ptr %97, align 4, !tbaa !13
  %1325 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 48
  %1326 = load i32, ptr %97, align 4, !tbaa !13
  %1327 = sext i32 %1326 to i64
  %1328 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1325, i64 noundef %1327) #8
  %1329 = load i32, ptr %1328, align 4, !tbaa !13
  call void @_ZN7HFactor8rlinkAddEii(ptr noundef nonnull align 8 dereferenceable(1912) %98, i32 noundef %1324, i32 noundef %1329)
  br label %1330

1330:                                             ; preds = %1322, %1305
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #8
  br label %1331

1331:                                             ; preds = %1330
  %1332 = load i32, ptr %96, align 4, !tbaa !13
  %1333 = add nsw i32 %1332, 1
  store i32 %1333, ptr %96, align 4, !tbaa !13
  br label %1300, !llvm.loop !72

1334:                                             ; preds = %1304
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  store i32 0, ptr %23, align 4
  br label %1335

1335:                                             ; preds = %1334, %638
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  br label %1336

1336:                                             ; preds = %1335, %533
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  %1337 = load i32, ptr %23, align 4
  switch i32 %1337, label %1352 [
    i32 0, label %1338
    i32 2, label %103
  ]

1338:                                             ; preds = %1336
  br label %103, !llvm.loop !60

1339:                                             ; preds = %103
  %1340 = load double, ptr %4, align 8, !tbaa !9
  %1341 = load double, ptr %5, align 8, !tbaa !9
  %1342 = fmul double %1341, 1.600000e+02
  %1343 = call double @llvm.fmuladd.f64(double %1340, double 2.000000e+01, double %1342)
  %1344 = load double, ptr %6, align 8, !tbaa !9
  %1345 = call double @llvm.fmuladd.f64(double %1344, double 8.000000e+01, double %1343)
  %1346 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 1
  %1347 = load double, ptr %1346, align 8, !tbaa !73
  %1348 = fadd double %1347, %1345
  store double %1348, ptr %1346, align 8, !tbaa !73
  %1349 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 2
  store i32 0, ptr %1349, align 8, !tbaa !58
  %1350 = getelementptr inbounds %class.HFactor, ptr %98, i32 0, i32 2
  %1351 = load i32, ptr %1350, align 8, !tbaa !58
  store i32 %1351, ptr %2, align 4
  store i32 1, ptr %23, align 4
  br label %1352

1352:                                             ; preds = %1339, %1336, %172
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #8
  %1353 = load i32, ptr %2, align 4
  ret i32 %1353
}

declare void @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89), i32 noundef, ptr noundef, ...) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIaSaIaEE9push_backERKa(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(1)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor8rlinkAddEii(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef, i32 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor9colInsertEiid(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef, i32 noundef, double noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor9rowInsertEii(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef, i32 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor9colStoreNEiid(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef, i32 noundef, double noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor9colFixMaxEi(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor8clinkAddEii(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef, i32 noundef) #1 align 2

declare void @_ZN7HFactor9reportAsmEv(ptr noundef nonnull align 8 dereferenceable(1912)) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK10HighsTimer4readEi(ptr noundef nonnull align 8 dereferenceable(132), i32 noundef) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN7HFactor9colDeleteEii(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef, i32 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor9rowDeleteEii(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef, i32 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor8clinkDelEi(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor8rlinkDelEi(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7HFactor7zeroColEi(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZSt4copyIPiS0_ET0_T_S2_S1_(ptr noundef, ptr noundef, ptr noundef) #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZSt4copyIPdS0_ET0_T_S2_S1_(ptr noundef, ptr noundef, ptr noundef) #7

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress 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 #2 = { inlinehint mustprogress 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 #3 = { mustprogress 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 #4 = { noreturn 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 #5 = { "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 #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { inlinehint mustprogress 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 #8 = { nounwind }
attributes #9 = { noreturn 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++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{!16, !10, i64 288}
!16 = !{!"_ZTS7HFactor", !10, i64 0, !10, i64 8, !14, i64 16, !17, i64 24, !17, i64 48, !17, i64 72, !21, i64 96, !14, i64 184, !14, i64 188, !14, i64 192, !14, i64 196, !14, i64 200, !14, i64 204, !14, i64 208, !10, i64 216, !12, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !10, i64 264, !10, i64 272, !14, i64 280, !10, i64 288, !26, i64 296, !32, i64 304, !12, i64 400, !12, i64 401, !14, i64 404, !14, i64 408, !6, i64 416, !14, i64 424, !17, i64 432, !35, i64 456, !17, i64 480, !17, i64 504, !17, i64 528, !35, i64 552, !17, i64 576, !17, i64 600, !17, i64 624, !17, i64 648, !17, i64 672, !17, i64 696, !17, i64 720, !35, i64 744, !35, i64 768, !17, i64 792, !17, i64 816, !17, i64 840, !17, i64 864, !17, i64 888, !17, i64 912, !39, i64 936, !35, i64 960, !17, i64 984, !17, i64 1008, !17, i64 1032, !17, i64 1056, !17, i64 1080, !17, i64 1104, !17, i64 1128, !17, i64 1152, !17, i64 1176, !17, i64 1200, !35, i64 1224, !17, i64 1248, !17, i64 1272, !35, i64 1296, !17, i64 1320, !17, i64 1344, !35, i64 1368, !14, i64 1392, !14, i64 1396, !17, i64 1400, !17, i64 1424, !17, i64 1448, !35, i64 1472, !17, i64 1496, !17, i64 1520, !17, i64 1544, !17, i64 1568, !35, i64 1592, !35, i64 1616, !17, i64 1640, !17, i64 1664, !17, i64 1688, !35, i64 1712, !43, i64 1736}
!17 = !{!"_ZTSSt6vectorIiSaIiEE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!21 = !{!"_ZTS12RefactorInfo", !12, i64 0, !17, i64 8, !17, i64 32, !22, i64 56, !10, i64 80}
!22 = !{!"_ZTSSt6vectorIaSaIaEE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseIaSaIaEE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!26 = !{!"_ZTSSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EE", !27, i64 0}
!27 = !{!"_ZTSSt15__uniq_ptr_dataIN7HFactor7LogDataESt14default_deleteIS1_ELb1ELb1EE", !28, i64 0}
!28 = !{!"_ZTSSt15__uniq_ptr_implIN7HFactor7LogDataESt14default_deleteIS1_EE", !29, i64 0}
!29 = !{!"_ZTSSt5tupleIJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !30, i64 0}
!30 = !{!"_ZTSSt11_Tuple_implILm0EJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !31, i64 0}
!31 = !{!"_ZTSSt10_Head_baseILm0EPN7HFactor7LogDataELb0EE", !6, i64 0}
!32 = !{!"_ZTS15HighsLogOptions", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !33, i64 48, !6, i64 80, !12, i64 88}
!33 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !34, i64 0, !6, i64 24}
!34 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!35 = !{!"_ZTSSt6vectorIdSaIdEE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!39 = !{!"_ZTSSt6vectorIcSaIcEE", !40, i64 0}
!40 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!43 = !{!"_ZTS11HVectorBaseIdE", !14, i64 0, !14, i64 4, !17, i64 8, !35, i64 32, !10, i64 56, !39, i64 64, !17, i64 88, !6, i64 112, !12, i64 120, !14, i64 124, !17, i64 128, !35, i64 152}
!44 = !{!16, !14, i64 424}
!45 = !{i8 0, i8 2}
!46 = !{}
!47 = !{!16, !6, i64 416}
!48 = !{!16, !14, i64 192}
!49 = !{!16, !14, i64 208}
!50 = !{!16, !14, i64 200}
!51 = distinct !{!51, !52}
!52 = !{!"llvm.loop.mustprogress"}
!53 = distinct !{!53, !52}
!54 = distinct !{!54, !52}
!55 = distinct !{!55, !52}
!56 = distinct !{!56, !52}
!57 = distinct !{!57, !52}
!58 = !{!16, !14, i64 16}
!59 = !{!16, !10, i64 272}
!60 = distinct !{!60, !52}
!61 = !{!16, !6, i64 256}
!62 = !{!7, !7, i64 0}
!63 = distinct !{!63, !52}
!64 = distinct !{!64, !52}
!65 = distinct !{!65, !52}
!66 = distinct !{!66, !52}
!67 = distinct !{!67, !52}
!68 = distinct !{!68, !52}
!69 = distinct !{!69, !52}
!70 = distinct !{!70, !52}
!71 = distinct !{!71, !52}
!72 = distinct !{!72, !52}
!73 = !{!16, !10, i64 8}


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

@.str.52 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [14 x i8], align 1
@__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv = external hidden unnamed_addr constant [32 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [44 x i8], align 1
@_ZL15kPivotMarkowitz = external hidden constant i8, align 1

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7HFactor11buildKernelEv(ptr noundef nonnull align 8 dereferenceable(1912) %0) local_unnamed_addr #3 align 2 {
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca double, align 8
  %7 = alloca i32, align 4
  %8 = alloca double, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = getelementptr inbounds i8, ptr %0, i64 288
  %13 = load double, ptr %12, align 8, !tbaa !5
  %14 = fcmp ueq double %13, 0x7FF0000000000000
  %15 = getelementptr inbounds i8, ptr %0, i64 424
  %16 = load i32, ptr %15, align 8, !tbaa !40
  %17 = add nsw i32 %16, -1
  store i32 %17, ptr %15, align 8, !tbaa !40
  %18 = icmp sgt i32 %16, 0
  br i1 %18, label %.lr.ph600, label %._crit_edge601

.lr.ph600:                                        ; preds = %1
  %19 = getelementptr inbounds i8, ptr %0, i64 416
  %20 = getelementptr inbounds i8, ptr %0, i64 192
  %21 = getelementptr inbounds i8, ptr %0, i64 208
  %22 = getelementptr inbounds i8, ptr %0, i64 200
  %23 = getelementptr inbounds i8, ptr %0, i64 984
  %24 = getelementptr inbounds i8, ptr %0, i64 720
  %25 = getelementptr inbounds i8, ptr %0, i64 624
  %26 = getelementptr inbounds i8, ptr %0, i64 1056
  %27 = getelementptr inbounds i8, ptr %0, i64 888
  %28 = getelementptr inbounds i8, ptr %0, i64 792
  %29 = getelementptr inbounds i8, ptr %0, i64 768
  %30 = getelementptr inbounds i8, ptr %0, i64 648
  %31 = getelementptr inbounds i8, ptr %0, i64 744
  %32 = getelementptr inbounds i8, ptr %0, i64 816
  %33 = getelementptr inbounds i8, ptr %0, i64 1008
  %34 = getelementptr inbounds i8, ptr %0, i64 1080
  %35 = getelementptr inbounds i8, ptr %0, i64 272
  %36 = getelementptr inbounds i8, ptr %0, i64 576
  %37 = getelementptr inbounds i8, ptr %0, i64 600
  %38 = getelementptr inbounds i8, ptr %0, i64 256
  %39 = getelementptr inbounds i8, ptr %0, i64 104
  %40 = getelementptr inbounds i8, ptr %0, i64 128
  %41 = getelementptr inbounds i8, ptr %0, i64 152
  %42 = getelementptr inbounds i8, ptr %0, i64 912
  %43 = getelementptr inbounds i8, ptr %0, i64 960
  %44 = getelementptr inbounds i8, ptr %0, i64 936
  %45 = getelementptr inbounds i8, ptr %0, i64 1200
  %46 = getelementptr inbounds i8, ptr %0, i64 1224
  %47 = getelementptr inbounds i8, ptr %0, i64 864
  %48 = getelementptr inbounds i8, ptr %0, i64 1176
  %49 = getelementptr inbounds i8, ptr %0, i64 696
  %50 = getelementptr inbounds i8, ptr %0, i64 672
  %51 = getelementptr inbounds i8, ptr %0, i64 1448
  %52 = getelementptr inbounds i8, ptr %0, i64 1472
  %53 = getelementptr inbounds i8, ptr %0, i64 1344
  %54 = getelementptr inbounds i8, ptr %0, i64 1368
  %55 = getelementptr inbounds i8, ptr %0, i64 1400
  %56 = getelementptr inbounds i8, ptr %0, i64 840
  %57 = getelementptr inbounds i8, ptr %0, i64 304
  br label %58

58:                                               ; preds = %.lr.ph600, %.loopexit429
  %.0291598 = phi double [ 0.000000e+00, %.lr.ph600 ], [ %.1292.lcssa, %.loopexit429 ]
  %.0296597 = phi double [ 0.000000e+00, %.lr.ph600 ], [ %.1297, %.loopexit429 ]
  %.0299596 = phi double [ 0.000000e+00, %.lr.ph600 ], [ %.2301, %.loopexit429 ]
  %.0303595 = phi i32 [ 100, %.lr.ph600 ], [ %.2305, %.loopexit429 ]
  %.0307594 = phi double [ 0.000000e+00, %.lr.ph600 ], [ %.1308, %.loopexit429 ]
  %.0310593 = phi double [ 0.000000e+00, %.lr.ph600 ], [ %.1311, %.loopexit429 ]
  %.0312592 = phi i32 [ 0, %.lr.ph600 ], [ %95, %.loopexit429 ]
  br i1 %14, label %87, label %59

59:                                               ; preds = %58
  %60 = srem i32 %.0312592, %.0303595
  %61 = icmp eq i32 %60, 0
  br i1 %61, label %62, label %87

62:                                               ; preds = %59
  %63 = load ptr, ptr %19, align 8, !tbaa !41
  %64 = call noundef double @_ZNK10HighsTimer4readEi(ptr noundef nonnull align 8 dereferenceable(132) %63, i32 noundef 0)
  %65 = fsub double %64, %.0307594
  %66 = sitofp i32 %.0303595 to double
  %67 = fdiv double %65, %66
  %68 = fmul double %67, 1.000000e-01
  %69 = call double @llvm.fmuladd.f64(double %.0310593, double 9.000000e-01, double %68)
  %70 = load double, ptr %12, align 8, !tbaa !5
  %71 = fdiv double %70, 1.000000e+03
  %72 = fcmp ogt double %65, %71
  br i1 %72, label %73, label %77

73:                                               ; preds = %62
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #8
  store i32 1, ptr %2, align 4, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #8
  %74 = sdiv i32 %.0303595, 10
  store i32 %74, ptr %3, align 4, !tbaa !42
  %75 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 4 dereferenceable(4) %3)
  %76 = load i32, ptr %75, align 4, !tbaa !42
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #8
  %.pre = load double, ptr %12, align 8, !tbaa !5
  br label %77

77:                                               ; preds = %73, %62
  %78 = phi double [ %.pre, %73 ], [ %70, %62 ]
  %.1304 = phi i32 [ %76, %73 ], [ %.0303595, %62 ]
  %79 = fcmp ogt double %64, %78
  br i1 %79, label %.thread, label %80

80:                                               ; preds = %77
  %81 = load i32, ptr %20, align 8, !tbaa !43
  %reass.sub = sub i32 %81, %.0312592
  %82 = add i32 %reass.sub, 1
  %83 = sitofp i32 %82 to double
  %84 = fmul double %69, %83
  %85 = fadd double %64, %84
  %86 = fcmp ogt double %85, %78
  br i1 %86, label %.thread, label %87

87:                                               ; preds = %80, %59, %58
  %.1311 = phi double [ %.0310593, %59 ], [ %.0310593, %58 ], [ %69, %80 ]
  %.1308 = phi double [ %.0307594, %59 ], [ %.0307594, %58 ], [ %64, %80 ]
  %.2305 = phi i32 [ %.0303595, %59 ], [ %.0303595, %58 ], [ %.1304, %80 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #8
  store i32 -1, ptr %4, align 4, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #8
  store i32 8, ptr %5, align 4, !tbaa !42
  %88 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 4 dereferenceable(4) %5)
  %89 = load i32, ptr %88, align 4, !tbaa !42
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #8
  %90 = load i32, ptr %21, align 8, !tbaa !44
  %91 = sitofp i32 %90 to double
  %92 = load i32, ptr %22, align 8, !tbaa !45
  %93 = sitofp i32 %92 to double
  %94 = fmul double %91, %93
  %95 = add nuw nsw i32 %.0312592, 1
  %96 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef 1) #8
  %97 = load i32, ptr %96, align 4, !tbaa !42
  %.not = icmp eq i32 %97, -1
  br i1 %.not, label %106, label %.thread417

.thread417:                                       ; preds = %87
  %98 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef 1) #8
  %99 = load i32, ptr %98, align 4, !tbaa !42
  %100 = sext i32 %99 to i64
  %101 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %100) #8
  %102 = load i32, ptr %101, align 4, !tbaa !42
  %103 = sext i32 %102 to i64
  %104 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %103) #8
  %105 = load i32, ptr %104, align 4, !tbaa !42
  store i32 %105, ptr %4, align 4, !tbaa !42
  br label %118

106:                                              ; preds = %87
  %107 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef 1) #8
  %108 = load i32, ptr %107, align 4, !tbaa !42
  %.not398 = icmp eq i32 %108, -1
  br i1 %.not398, label %118, label %109

109:                                              ; preds = %106
  %110 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef 1) #8
  %111 = load i32, ptr %110, align 4, !tbaa !42
  store i32 %111, ptr %4, align 4, !tbaa !42
  %112 = sext i32 %111 to i64
  %113 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %112) #8
  %114 = load i32, ptr %113, align 4, !tbaa !42
  %115 = sext i32 %114 to i64
  %116 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %115) #8
  %117 = load i32, ptr %116, align 4, !tbaa !42
  br label %118

118:                                              ; preds = %.thread417, %109, %106
  %.1350 = phi i8 [ 1, %109 ], [ 0, %106 ], [ 1, %.thread417 ]
  %.1319 = phi i32 [ %117, %109 ], [ -1, %106 ], [ %99, %.thread417 ]
  %119 = trunc nuw i8 %.1350 to i1
  %120 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %21)
  %121 = load i32, ptr %120, align 4, !tbaa !42
  %122 = icmp slt i32 %121, 2
  %.not400537 = select i1 %119, i1 true, i1 %122
  br i1 %.not400537, label %._crit_edge548, label %.lr.ph547.preheader

.lr.ph547.preheader:                              ; preds = %118
  %123 = zext nneg i32 %121 to i64
  br label %.lr.ph547

._crit_edge548:                                   ; preds = %237, %118
  %.0368.lcssa = phi double [ 0.000000e+00, %118 ], [ %.12380, %237 ]
  %.2320.lcssa = phi i32 [ %.1319, %118 ], [ %.14, %237 ]
  %.1292.lcssa = phi double [ %.0291598, %118 ], [ %.6, %237 ]
  %.lcssa431 = phi i1 [ %119, %118 ], [ %238, %237 ]
  %124 = load i32, ptr %4, align 4, !tbaa !42
  %125 = icmp slt i32 %124, 0
  br i1 %125, label %240, label %249

.lr.ph547:                                        ; preds = %.lr.ph547.preheader, %237
  %indvars.iv637 = phi i64 [ 2, %.lr.ph547.preheader ], [ %indvars.iv.next638, %237 ]
  %.1292545 = phi double [ %.0291598, %.lr.ph547.preheader ], [ %.6, %237 ]
  %.2320544 = phi i32 [ %.1319, %.lr.ph547.preheader ], [ %.14, %237 ]
  %.0325543 = phi i32 [ 0, %.lr.ph547.preheader ], [ %.6331, %237 ]
  %.0332542 = phi double [ %94, %.lr.ph547.preheader ], [ %.12344, %237 ]
  %.2351541 = phi i8 [ %.1350, %.lr.ph547.preheader ], [ %.16, %237 ]
  %.0368540 = phi double [ 0.000000e+00, %.lr.ph547.preheader ], [ %.12380, %237 ]
  %126 = load i32, ptr %22, align 8, !tbaa !45
  %127 = sext i32 %126 to i64
  %.not407 = icmp sgt i64 %indvars.iv637, %127
  br i1 %.not407, label %.loopexit427, label %128

128:                                              ; preds = %.lr.ph547
  %129 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %indvars.iv637) #8
  %.0382479 = load i32, ptr %129, align 4, !tbaa !42
  %.not408480 = icmp eq i32 %.0382479, -1
  br i1 %.not408480, label %.loopexit427, label %.lr.ph489

.lr.ph489:                                        ; preds = %128
  %130 = trunc i64 %indvars.iv637 to i32
  %131 = add i32 %130, -1
  %132 = sitofp i32 %131 to double
  %133 = trunc nuw nsw i64 %indvars.iv637 to i32
  %134 = uitofp nneg i32 %133 to double
  br label %135

135:                                              ; preds = %.lr.ph489, %175
  %.0382487 = phi i32 [ %.0382479, %.lr.ph489 ], [ %.0382, %175 ]
  %.2293486 = phi double [ %.1292545, %.lr.ph489 ], [ %176, %175 ]
  %.3321485 = phi i32 [ %.2320544, %.lr.ph489 ], [ %.4322.lcssa, %175 ]
  %.1326484 = phi i32 [ %.0325543, %.lr.ph489 ], [ %147, %175 ]
  %.1333483 = phi double [ %.0332542, %.lr.ph489 ], [ %.2334.lcssa, %175 ]
  %.3352482 = phi i8 [ %.2351541, %.lr.ph489 ], [ %.7356, %175 ]
  %.1369481 = phi double [ %.0368540, %.lr.ph489 ], [ %.2370.lcssa, %175 ]
  %136 = sext i32 %.0382487 to i64
  %137 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %136) #8
  %138 = load double, ptr %137, align 8, !tbaa !46
  %139 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %136) #8
  %140 = load i32, ptr %139, align 4, !tbaa !42
  %141 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %136) #8
  %142 = load i32, ptr %141, align 4, !tbaa !42
  %143 = icmp sgt i32 %142, 0
  br i1 %143, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %135
  %144 = add nsw i32 %142, %140
  %145 = sext i32 %140 to i64
  %146 = sext i32 %144 to i64
  br label %.lr.ph

._crit_edge:                                      ; preds = %173, %135
  %.2370.lcssa = phi double [ %.1369481, %135 ], [ %.4372, %173 ]
  %.4353.lcssa = phi i8 [ %.3352482, %135 ], [ %.6355, %173 ]
  %.2334.lcssa = phi double [ %.1333483, %135 ], [ %.4336, %173 ]
  %.4322.lcssa = phi i32 [ %.3321485, %135 ], [ %.6324, %173 ]
  %147 = add nsw i32 %.1326484, 1
  %.not409 = icmp sge i32 %.1326484, %89
  %148 = fcmp olt double %.2334.lcssa, %94
  %or.cond = select i1 %.not409, i1 %148, i1 false
  %.7356 = select i1 %or.cond, i8 1, i8 %.4353.lcssa
  %149 = trunc nuw i8 %.7356 to i1
  br i1 %149, label %.loopexit427, label %175

.lr.ph:                                           ; preds = %.lr.ph.preheader, %173
  %indvars.iv = phi i64 [ %145, %.lr.ph.preheader ], [ %indvars.iv.next, %173 ]
  %.4322475 = phi i32 [ %.3321485, %.lr.ph.preheader ], [ %.6324, %173 ]
  %.2334474 = phi double [ %.1333483, %.lr.ph.preheader ], [ %.4336, %173 ]
  %.4353473 = phi i8 [ %.3352482, %.lr.ph.preheader ], [ %.6355, %173 ]
  %.2370472 = phi double [ %.1369481, %.lr.ph.preheader ], [ %.4372, %173 ]
  %150 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv) #8
  %151 = load double, ptr %150, align 8, !tbaa !46
  %152 = call double @llvm.fabs.f64(double %151)
  %153 = fcmp ult double %152, %138
  br i1 %153, label %173, label %154

154:                                              ; preds = %.lr.ph
  %155 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %indvars.iv) #8
  %156 = load i32, ptr %155, align 4, !tbaa !42
  %157 = sext i32 %156 to i64
  %158 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %157) #8
  %159 = load i32, ptr %158, align 4, !tbaa !42
  %160 = add nsw i32 %159, -1
  %161 = sitofp i32 %160 to double
  %162 = fmul double %132, %161
  %163 = fcmp ogt double %.2334474, %162
  br i1 %163, label %164, label %173

164:                                              ; preds = %154
  %165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv) #8
  %166 = load double, ptr %165, align 8, !tbaa !46
  %167 = call double @llvm.fabs.f64(double %166)
  store i32 %156, ptr %4, align 4, !tbaa !42
  %168 = trunc nuw i8 %.4353473 to i1
  %169 = sext i32 %159 to i64
  %170 = icmp sgt i64 %indvars.iv637, %169
  %171 = or i1 %170, %168
  %172 = zext i1 %171 to i8
  br label %173

173:                                              ; preds = %154, %164, %.lr.ph
  %.4372 = phi double [ %.2370472, %.lr.ph ], [ %167, %164 ], [ %.2370472, %154 ]
  %.6355 = phi i8 [ %.4353473, %.lr.ph ], [ %172, %164 ], [ %.4353473, %154 ]
  %.4336 = phi double [ %.2334474, %.lr.ph ], [ %162, %164 ], [ %.2334474, %154 ]
  %.6324 = phi i32 [ %.4322475, %.lr.ph ], [ %.0382487, %164 ], [ %.4322475, %154 ]
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %174 = icmp slt i64 %indvars.iv.next, %146
  br i1 %174, label %.lr.ph, label %._crit_edge, !llvm.loop !47

175:                                              ; preds = %._crit_edge
  %176 = fadd double %.2293486, %134
  %177 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %136) #8
  %.0382 = load i32, ptr %177, align 4, !tbaa !42
  %.not408 = icmp eq i32 %.0382, -1
  br i1 %.not408, label %.loopexit427, label %135, !llvm.loop !49

.loopexit427:                                     ; preds = %175, %._crit_edge, %128, %.lr.ph547
  %.6374 = phi double [ %.0368540, %.lr.ph547 ], [ %.0368540, %128 ], [ %.2370.lcssa, %._crit_edge ], [ %.2370.lcssa, %175 ]
  %.9358 = phi i8 [ %.2351541, %.lr.ph547 ], [ %.2351541, %128 ], [ %.7356, %._crit_edge ], [ %.7356, %175 ]
  %.6338 = phi double [ %.0332542, %.lr.ph547 ], [ %.0332542, %128 ], [ %.2334.lcssa, %._crit_edge ], [ %.2334.lcssa, %175 ]
  %.3328 = phi i32 [ %.0325543, %.lr.ph547 ], [ %.0325543, %128 ], [ %147, %._crit_edge ], [ %147, %175 ]
  %.8 = phi i32 [ %.2320544, %.lr.ph547 ], [ %.2320544, %128 ], [ %.4322.lcssa, %._crit_edge ], [ %.4322.lcssa, %175 ]
  %.5 = phi double [ %.1292545, %.lr.ph547 ], [ %.1292545, %128 ], [ %176, %175 ], [ %.2293486, %._crit_edge ]
  %178 = load i32, ptr %21, align 8, !tbaa !44
  %179 = sext i32 %178 to i64
  %.not410 = icmp sgt i64 %indvars.iv637, %179
  br i1 %.not410, label %237, label %180

180:                                              ; preds = %.loopexit427
  %181 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv637) #8
  %.0384515 = load i32, ptr %181, align 4, !tbaa !42
  %.not411516 = icmp eq i32 %.0384515, -1
  br i1 %.not411516, label %._crit_edge525, label %.lr.ph524

.lr.ph524:                                        ; preds = %180
  %182 = trunc i64 %indvars.iv637 to i32
  %183 = add i32 %182, -1
  %184 = sitofp i32 %183 to double
  br label %185

185:                                              ; preds = %.lr.ph524, %232
  %.0384522 = phi i32 [ %.0384515, %.lr.ph524 ], [ %.0384, %232 ]
  %.9521 = phi i32 [ %.8, %.lr.ph524 ], [ %.10.lcssa, %232 ]
  %.4329520 = phi i32 [ %.3328, %.lr.ph524 ], [ %195, %232 ]
  %.7339519 = phi double [ %.6338, %.lr.ph524 ], [ %.8340.lcssa, %232 ]
  %.10359518 = phi i8 [ %.9358, %.lr.ph524 ], [ %.14363, %232 ]
  %.7375517 = phi double [ %.6374, %.lr.ph524 ], [ %.8376.lcssa, %232 ]
  %186 = sext i32 %.0384522 to i64
  %187 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %186) #8
  %188 = load i32, ptr %187, align 4, !tbaa !42
  %189 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %186) #8
  %190 = load i32, ptr %189, align 4, !tbaa !42
  %191 = icmp sgt i32 %190, 0
  br i1 %191, label %.lr.ph509.preheader, label %._crit_edge510

.lr.ph509.preheader:                              ; preds = %185
  %192 = add nsw i32 %190, %188
  %193 = sext i32 %188 to i64
  %194 = sext i32 %192 to i64
  br label %.lr.ph509

._crit_edge510:                                   ; preds = %230, %185
  %.8376.lcssa = phi double [ %.7375517, %185 ], [ %.10378, %230 ]
  %.11360.lcssa = phi i8 [ %.10359518, %185 ], [ %.13362, %230 ]
  %.8340.lcssa = phi double [ %.7339519, %185 ], [ %.10342, %230 ]
  %.10.lcssa = phi i32 [ %.9521, %185 ], [ %.12, %230 ]
  %195 = add nsw i32 %.4329520, 1
  %.not412 = icmp sge i32 %.4329520, %89
  %196 = fcmp olt double %.8340.lcssa, %94
  %or.cond414 = select i1 %.not412, i1 %196, i1 false
  %.14363 = select i1 %or.cond414, i8 1, i8 %.11360.lcssa
  %197 = trunc nuw i8 %.14363 to i1
  br i1 %197, label %._crit_edge525, label %232

.lr.ph509:                                        ; preds = %.lr.ph509.preheader, %230
  %indvars.iv635 = phi i64 [ %193, %.lr.ph509.preheader ], [ %indvars.iv.next636, %230 ]
  %.10507 = phi i32 [ %.9521, %.lr.ph509.preheader ], [ %.12, %230 ]
  %.8340506 = phi double [ %.7339519, %.lr.ph509.preheader ], [ %.10342, %230 ]
  %.11360505 = phi i8 [ %.10359518, %.lr.ph509.preheader ], [ %.13362, %230 ]
  %.8376504 = phi double [ %.7375517, %.lr.ph509.preheader ], [ %.10378, %230 ]
  %198 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %indvars.iv635) #8
  %199 = load i32, ptr %198, align 4, !tbaa !42
  %200 = sext i32 %199 to i64
  %201 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %200) #8
  %202 = load i32, ptr %201, align 4, !tbaa !42
  %203 = add nsw i32 %202, -1
  %204 = sitofp i32 %203 to double
  %205 = fmul double %184, %204
  %206 = fcmp olt double %205, %.8340506
  br i1 %206, label %207, label %230

207:                                              ; preds = %.lr.ph509
  %208 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %200) #8
  %209 = load i32, ptr %208, align 4, !tbaa !42
  %210 = sext i32 %209 to i64
  br label %211

211:                                              ; preds = %211, %207
  %indvars.iv632 = phi i64 [ %indvars.iv.next633, %211 ], [ %210, %207 ]
  %212 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %indvars.iv632) #8
  %213 = load i32, ptr %212, align 4, !tbaa !42
  %.not413 = icmp eq i32 %213, %.0384522
  %indvars.iv.next633 = add nsw i64 %indvars.iv632, 1
  br i1 %.not413, label %214, label %211, !llvm.loop !50

214:                                              ; preds = %211
  %215 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv632) #8
  %216 = load double, ptr %215, align 8, !tbaa !46
  %217 = call double @llvm.fabs.f64(double %216)
  %218 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %200) #8
  %219 = load double, ptr %218, align 8, !tbaa !46
  %220 = fcmp ult double %217, %219
  br i1 %220, label %230, label %221

221:                                              ; preds = %214
  %222 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv632) #8
  %223 = load double, ptr %222, align 8, !tbaa !46
  %224 = call double @llvm.fabs.f64(double %223)
  store i32 %.0384522, ptr %4, align 4, !tbaa !42
  %225 = trunc nuw i8 %.11360505 to i1
  %226 = sext i32 %202 to i64
  %227 = icmp sge i64 %indvars.iv637, %226
  %228 = or i1 %227, %225
  %229 = zext i1 %228 to i8
  br label %230

230:                                              ; preds = %214, %221, %.lr.ph509
  %.10378 = phi double [ %.8376504, %.lr.ph509 ], [ %224, %221 ], [ %.8376504, %214 ]
  %.13362 = phi i8 [ %.11360505, %.lr.ph509 ], [ %229, %221 ], [ %.11360505, %214 ]
  %.10342 = phi double [ %.8340506, %.lr.ph509 ], [ %205, %221 ], [ %.8340506, %214 ]
  %.12 = phi i32 [ %.10507, %.lr.ph509 ], [ %199, %221 ], [ %.10507, %214 ]
  %indvars.iv.next636 = add nsw i64 %indvars.iv635, 1
  %231 = icmp slt i64 %indvars.iv.next636, %194
  br i1 %231, label %.lr.ph509, label %._crit_edge510, !llvm.loop !51

232:                                              ; preds = %._crit_edge510
  %233 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %186) #8
  %.0384 = load i32, ptr %233, align 4, !tbaa !42
  %.not411 = icmp eq i32 %.0384, -1
  br i1 %.not411, label %._crit_edge525, label %185, !llvm.loop !52

._crit_edge525:                                   ; preds = %._crit_edge510, %232, %180
  %.11379 = phi double [ %.6374, %180 ], [ %.8376.lcssa, %232 ], [ %.8376.lcssa, %._crit_edge510 ]
  %.15 = phi i8 [ %.9358, %180 ], [ %.14363, %232 ], [ %.14363, %._crit_edge510 ]
  %.11343 = phi double [ %.6338, %180 ], [ %.8340.lcssa, %232 ], [ %.8340.lcssa, %._crit_edge510 ]
  %.5330 = phi i32 [ %.3328, %180 ], [ %195, %232 ], [ %195, %._crit_edge510 ]
  %.13 = phi i32 [ %.8, %180 ], [ %.10.lcssa, %232 ], [ %.10.lcssa, %._crit_edge510 ]
  %234 = trunc nuw nsw i64 %indvars.iv637 to i32
  %235 = uitofp nneg i32 %234 to double
  %236 = fadd double %.5, %235
  br label %237

237:                                              ; preds = %.loopexit427, %._crit_edge525
  %.12380 = phi double [ %.11379, %._crit_edge525 ], [ %.6374, %.loopexit427 ]
  %.16 = phi i8 [ %.15, %._crit_edge525 ], [ %.9358, %.loopexit427 ]
  %.12344 = phi double [ %.11343, %._crit_edge525 ], [ %.6338, %.loopexit427 ]
  %.6331 = phi i32 [ %.5330, %._crit_edge525 ], [ %.3328, %.loopexit427 ]
  %.14 = phi i32 [ %.13, %._crit_edge525 ], [ %.8, %.loopexit427 ]
  %.6 = phi double [ %236, %._crit_edge525 ], [ %.5, %.loopexit427 ]
  %indvars.iv.next638 = add nuw nsw i64 %indvars.iv637, 1
  %238 = trunc nuw i8 %.16 to i1
  %239 = icmp uge i64 %indvars.iv637, %123
  %.not400 = select i1 %238, i1 true, i1 %239
  br i1 %.not400, label %._crit_edge548, label %.lr.ph547, !llvm.loop !53

240:                                              ; preds = %._crit_edge548
  %241 = icmp slt i32 %.2320.lcssa, 0
  br i1 %241, label %243, label %242

242:                                              ; preds = %240
  call void @__assert_fail(ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.52, i32 noundef 1044, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv) #9
  unreachable

243:                                              ; preds = %240
  br i1 %.lcssa431, label %244, label %.thread420

244:                                              ; preds = %243
  call void @__assert_fail(ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.52, i32 noundef 1045, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv) #9
  unreachable

.thread420:                                       ; preds = %243
  %245 = load i32, ptr %15, align 8, !tbaa !40
  %246 = add nsw i32 %245, 1
  %247 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 %246, ptr %247, align 8, !tbaa !54
  call void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %57, i32 noundef 4, ptr noundef nonnull @.str.61, i32 noundef %246)
  %248 = load i32, ptr %247, align 8, !tbaa !54
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #8
  br label %.thread

249:                                              ; preds = %._crit_edge548
  %250 = zext nneg i32 %124 to i64
  %251 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %250) #8
  %252 = load i32, ptr %251, align 4, !tbaa !42
  %253 = sext i32 %.2320.lcssa to i64
  %254 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %253) #8
  %255 = load i32, ptr %254, align 4, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #8
  %256 = load i32, ptr %4, align 4, !tbaa !42
  %257 = call noundef double @_ZN7HFactor9colDeleteEii(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %.2320.lcssa, i32 noundef %256)
  store double %257, ptr %6, align 8, !tbaa !46
  %258 = load i32, ptr %4, align 4, !tbaa !42
  call void @_ZN7HFactor9rowDeleteEii(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %.2320.lcssa, i32 noundef %258)
  call void @_ZN7HFactor8clinkDelEi(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %.2320.lcssa)
  %259 = load i32, ptr %4, align 4, !tbaa !42
  call void @_ZN7HFactor8rlinkDelEi(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %259)
  %.pre682 = load double, ptr %6, align 8, !tbaa !46
  %.pre685 = call double @llvm.fabs.f64(double %.pre682)
  %260 = fcmp oeq double %.0368.lcssa, %.pre685
  %or.cond709 = select i1 %119, i1 true, i1 %260
  br i1 %or.cond709, label %._crit_edge684, label %261

261:                                              ; preds = %249
  call void @__assert_fail(ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.52, i32 noundef 1075, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv) #9
  unreachable

._crit_edge684:                                   ; preds = %249
  %262 = load double, ptr %35, align 8, !tbaa !55
  %263 = fcmp olt double %.pre685, %262
  br i1 %263, label %264, label %302

264:                                              ; preds = %._crit_edge684
  call void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %57, i32 noundef 4, ptr noundef nonnull @.str.63, double noundef %.pre682)
  %265 = load i32, ptr %4, align 4, !tbaa !42
  %266 = sext i32 %265 to i64
  %267 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %266) #8
  %268 = load i32, ptr %267, align 4, !tbaa !42
  %269 = add nsw i32 %252, -1
  %270 = icmp eq i32 %268, %269
  br i1 %270, label %272, label %271

271:                                              ; preds = %264
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.52, i32 noundef 1081, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv) #9
  unreachable

272:                                              ; preds = %264
  %273 = load i32, ptr %4, align 4, !tbaa !42
  %274 = sext i32 %273 to i64
  %275 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %274) #8
  %276 = load i32, ptr %275, align 4, !tbaa !42
  %277 = icmp eq i32 %276, 0
  br i1 %277, label %278, label %287

278:                                              ; preds = %272
  %279 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %253) #8
  %280 = load i32, ptr %279, align 4, !tbaa !42
  %281 = add nsw i32 %255, -1
  %282 = icmp eq i32 %280, %281
  br i1 %282, label %284, label %283

283:                                              ; preds = %278
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.52, i32 noundef 1089, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv) #9
  unreachable

284:                                              ; preds = %278
  %285 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %253) #8
  %286 = load i32, ptr %285, align 4, !tbaa !42
  call void @_ZN7HFactor8clinkAddEii(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %.2320.lcssa, i32 noundef %286)
  br label %299

287:                                              ; preds = %272
  call void @_ZN7HFactor7zeroColEi(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %.2320.lcssa)
  %288 = load i32, ptr %4, align 4, !tbaa !42
  %289 = sext i32 %288 to i64
  %290 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %289) #8
  %291 = load i32, ptr %290, align 4, !tbaa !42
  %292 = icmp eq i32 %291, %268
  br i1 %292, label %294, label %293

293:                                              ; preds = %287
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.52, i32 noundef 1097, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv) #9
  unreachable

294:                                              ; preds = %287
  %295 = load i32, ptr %4, align 4, !tbaa !42
  %296 = sext i32 %295 to i64
  %297 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %296) #8
  %298 = load i32, ptr %297, align 4, !tbaa !42
  call void @_ZN7HFactor8rlinkAddEii(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %295, i32 noundef %298)
  br label %299

299:                                              ; preds = %294, %284
  %300 = load i32, ptr %15, align 8, !tbaa !40
  %301 = add nsw i32 %300, 1
  br label %.loopexit429, !llvm.loop !56

302:                                              ; preds = %._crit_edge684
  %303 = load i32, ptr %4, align 4, !tbaa !42
  %304 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %253) #8
  store i32 %303, ptr %304, align 4, !tbaa !42
  %305 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef %253) #8
  %306 = load i32, ptr %305, align 4, !tbaa !42
  %307 = load ptr, ptr %38, align 8, !tbaa !57
  %308 = getelementptr inbounds i32, ptr %307, i64 %253
  %309 = load i32, ptr %308, align 4, !tbaa !42
  %310 = icmp eq i32 %306, %309
  br i1 %310, label %312, label %311

311:                                              ; preds = %302
  call void @__assert_fail(ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.52, i32 noundef 1105, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7HFactor11buildKernelEv) #9
  unreachable

312:                                              ; preds = %302
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %39, ptr noundef nonnull align 4 dereferenceable(4) %4)
  %313 = load ptr, ptr %38, align 8, !tbaa !57
  %314 = getelementptr inbounds i32, ptr %313, i64 %253
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %40, ptr noundef nonnull align 4 dereferenceable(4) %314)
  call void @_ZNSt6vectorIaSaIaEE9push_backERKa(ptr noundef nonnull align 8 dereferenceable(24) %41, ptr noundef nonnull align 1 dereferenceable(1) @_ZL15kPivotMarkowitz)
  %315 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %253) #8
  %316 = load i32, ptr %315, align 4, !tbaa !42
  %317 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %253) #8
  %318 = load i32, ptr %317, align 4, !tbaa !42
  %319 = add nsw i32 %318, %316
  %320 = icmp sgt i32 %318, 0
  br i1 %320, label %.lr.ph556.preheader, label %._crit_edge557

.lr.ph556.preheader:                              ; preds = %312
  %321 = sext i32 %316 to i64
  %322 = sext i32 %319 to i64
  br label %.lr.ph556

._crit_edge557.loopexit:                          ; preds = %.lr.ph556
  %323 = trunc nuw i64 %indvars.iv.next640 to i32
  br label %._crit_edge557

._crit_edge557:                                   ; preds = %._crit_edge557.loopexit, %312
  %.0389.lcssa = phi i32 [ 0, %312 ], [ %323, %._crit_edge557.loopexit ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #8
  %324 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #8
  %325 = trunc i64 %324 to i32
  store i32 %325, ptr %9, align 4, !tbaa !42
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %48, ptr noundef nonnull align 4 dereferenceable(4) %9)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #8
  %326 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %253) #8
  %327 = load i32, ptr %326, align 4, !tbaa !42
  %328 = shl nsw i32 %327, 1
  %329 = sitofp i32 %328 to double
  %330 = fadd double %.0296597, %329
  %331 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %253) #8
  %332 = load i32, ptr %331, align 4, !tbaa !42
  %333 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %50, i64 noundef %253) #8
  %334 = load i32, ptr %333, align 4, !tbaa !42
  %335 = icmp sgt i32 %334, 0
  br i1 %335, label %.lr.ph561.preheader, label %._crit_edge562

.lr.ph561.preheader:                              ; preds = %._crit_edge557
  %336 = add i32 %332, %316
  %337 = sub i32 %336, %334
  %338 = sext i32 %337 to i64
  %339 = sext i32 %336 to i64
  br label %.lr.ph561

.lr.ph556:                                        ; preds = %.lr.ph556.preheader, %.lr.ph556
  %indvars.iv641 = phi i64 [ %321, %.lr.ph556.preheader ], [ %indvars.iv.next642, %.lr.ph556 ]
  %indvars.iv639 = phi i64 [ 0, %.lr.ph556.preheader ], [ %indvars.iv.next640, %.lr.ph556 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #8
  %340 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %indvars.iv641) #8
  %341 = load i32, ptr %340, align 4, !tbaa !42
  store i32 %341, ptr %7, align 4, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #8
  %342 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv641) #8
  %343 = load double, ptr %342, align 8, !tbaa !46
  %344 = load double, ptr %6, align 8, !tbaa !46
  %345 = fdiv double %343, %344
  store double %345, ptr %8, align 8, !tbaa !46
  %346 = load i32, ptr %7, align 4, !tbaa !42
  %indvars.iv.next640 = add nuw nsw i64 %indvars.iv639, 1
  %347 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %indvars.iv639) #8
  store i32 %346, ptr %347, align 4, !tbaa !42
  %348 = load double, ptr %8, align 8, !tbaa !46
  %349 = load i32, ptr %7, align 4, !tbaa !42
  %350 = sext i32 %349 to i64
  %351 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %350) #8
  store double %348, ptr %351, align 8, !tbaa !46
  %352 = load i32, ptr %7, align 4, !tbaa !42
  %353 = sext i32 %352 to i64
  %354 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %353) #8
  store i8 1, ptr %354, align 1, !tbaa !58
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %45, ptr noundef nonnull align 4 dereferenceable(4) %7)
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %355 = load i32, ptr %7, align 4, !tbaa !42
  %356 = sext i32 %355 to i64
  %357 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %356) #8
  %358 = load i32, ptr %357, align 4, !tbaa !42
  %359 = load i32, ptr %7, align 4, !tbaa !42
  %360 = sext i32 %359 to i64
  %361 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %47, i64 noundef %360) #8
  store i32 %358, ptr %361, align 4, !tbaa !42
  %362 = load i32, ptr %7, align 4, !tbaa !42
  call void @_ZN7HFactor9rowDeleteEii(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %.2320.lcssa, i32 noundef %362)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #8
  %indvars.iv.next642 = add nsw i64 %indvars.iv641, 1
  %363 = icmp slt i64 %indvars.iv.next642, %322
  br i1 %363, label %.lr.ph556, label %._crit_edge557.loopexit, !llvm.loop !59

._crit_edge562:                                   ; preds = %.lr.ph561, %._crit_edge557
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef nonnull align 4 dereferenceable(4) %4)
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %54, ptr noundef nonnull align 8 dereferenceable(8) %6)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #8
  %364 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %51) #8
  %365 = trunc i64 %364 to i32
  store i32 %365, ptr %10, align 4, !tbaa !42
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %55, ptr noundef nonnull align 4 dereferenceable(4) %10)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8
  %366 = sitofp i32 %334 to double
  %367 = fadd double %330, %366
  %368 = load i32, ptr %4, align 4, !tbaa !42
  %369 = sext i32 %368 to i64
  %370 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %369) #8
  %371 = load i32, ptr %370, align 4, !tbaa !42
  %372 = load i32, ptr %4, align 4, !tbaa !42
  %373 = sext i32 %372 to i64
  %374 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %373) #8
  %375 = load i32, ptr %374, align 4, !tbaa !42
  %376 = icmp sgt i32 %375, 0
  br i1 %376, label %.lr.ph586, label %.preheader430

.lr.ph586:                                        ; preds = %._crit_edge562
  %377 = add nsw i32 %375, %371
  %378 = uitofp nneg i32 %.0389.lcssa to double
  %.not605 = icmp eq i32 %.0389.lcssa, 0
  %379 = sext i32 %371 to i64
  %380 = sext i32 %377 to i64
  %381 = shl nsw i32 %.0389.lcssa, 1
  %382 = sitofp i32 %381 to double
  %wide.trip.count = zext i32 %.0389.lcssa to i64
  %wide.trip.count664 = zext i32 %.0389.lcssa to i64
  %wide.trip.count669 = zext i32 %.0389.lcssa to i64
  br label %386

.lr.ph561:                                        ; preds = %.lr.ph561.preheader, %.lr.ph561
  %indvars.iv646 = phi i64 [ %338, %.lr.ph561.preheader ], [ %indvars.iv.next647, %.lr.ph561 ]
  %383 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %indvars.iv646) #8
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %51, ptr noundef nonnull align 4 dereferenceable(4) %383)
  %384 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv646) #8
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %52, ptr noundef nonnull align 8 dereferenceable(8) %384)
  %indvars.iv.next647 = add nsw i64 %indvars.iv646, 1
  %385 = icmp slt i64 %indvars.iv.next647, %339
  br i1 %385, label %.lr.ph561, label %._crit_edge562, !llvm.loop !60

.preheader430:                                    ; preds = %579, %._crit_edge562
  %.1300.lcssa = phi double [ %.0299596, %._crit_edge562 ], [ %447, %579 ]
  %.not608 = icmp eq i32 %.0389.lcssa, 0
  br i1 %.not608, label %.preheader428, label %.lr.ph589.preheader

.lr.ph589.preheader:                              ; preds = %.preheader430
  %wide.trip.count677 = zext i32 %.0389.lcssa to i64
  br label %.lr.ph589

386:                                              ; preds = %.lr.ph586, %579
  %indvars.iv671 = phi i64 [ %379, %.lr.ph586 ], [ %indvars.iv.next672, %579 ]
  %.1300584 = phi double [ %.0299596, %.lr.ph586 ], [ %447, %579 ]
  %387 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %indvars.iv671) #8
  %388 = load i32, ptr %387, align 4, !tbaa !42
  %389 = sext i32 %388 to i64
  %390 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %389) #8
  %391 = load i32, ptr %390, align 4, !tbaa !42
  %392 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %389) #8
  %393 = load i32, ptr %392, align 4, !tbaa !42
  %394 = add i32 %391, -1
  %395 = add i32 %394, %393
  %396 = load i32, ptr %4, align 4, !tbaa !42
  %397 = call noundef double @_ZN7HFactor9colDeleteEii(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %388, i32 noundef %396)
  %398 = load i32, ptr %4, align 4, !tbaa !42
  call void @_ZN7HFactor9colStoreNEiid(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %388, i32 noundef %398, double noundef %397)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #8
  store i32 %.0389.lcssa, ptr %11, align 4, !tbaa !42
  %399 = icmp slt i32 %393, %395
  br i1 %399, label %.lr.ph566, label %._crit_edge567.thread

._crit_edge567.thread:                            ; preds = %386
  %400 = fadd double %.1300584, %378
  %401 = fadd double %400, %382
  br label %446

.lr.ph566:                                        ; preds = %386
  %402 = fneg double %397
  %403 = sext i32 %393 to i64
  br label %410

._crit_edge567:                                   ; preds = %429
  %.pre683 = load i32, ptr %11, align 4, !tbaa !42
  %404 = fadd double %.1300584, %378
  %405 = shl nsw i32 %.pre683, 1
  %406 = sitofp i32 %405 to double
  %407 = fadd double %404, %406
  %408 = icmp sgt i32 %.2367, 0
  br i1 %408, label %.preheader426, label %446

.preheader426:                                    ; preds = %._crit_edge567
  br i1 %399, label %.lr.ph571.preheader, label %._crit_edge572

.lr.ph571.preheader:                              ; preds = %.preheader426
  %409 = sext i32 %393 to i64
  br label %.lr.ph571

410:                                              ; preds = %.lr.ph566, %429
  %indvars.iv649 = phi i64 [ %403, %.lr.ph566 ], [ %indvars.iv.next650, %429 ]
  %.0365563 = phi i32 [ 0, %.lr.ph566 ], [ %.2367, %429 ]
  %411 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %indvars.iv649) #8
  %412 = load i32, ptr %411, align 4, !tbaa !42
  %413 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv649) #8
  %414 = load double, ptr %413, align 8, !tbaa !46
  %415 = sext i32 %412 to i64
  %416 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %415) #8
  %417 = load i8, ptr %416, align 1, !tbaa !58
  %.not406 = icmp eq i8 %417, 0
  br i1 %.not406, label %429, label %418

418:                                              ; preds = %410
  %419 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %415) #8
  store i8 0, ptr %419, align 1, !tbaa !58
  %420 = load i32, ptr %11, align 4, !tbaa !42
  %421 = add nsw i32 %420, -1
  store i32 %421, ptr %11, align 4, !tbaa !42
  %422 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %415) #8
  %423 = load double, ptr %422, align 8, !tbaa !46
  %424 = call double @llvm.fmuladd.f64(double %402, double %423, double %414)
  %425 = call double @llvm.fabs.f64(double %424)
  %426 = fcmp olt double %425, 0x3D06849B86A12B9B
  %427 = zext i1 %426 to i32
  %.1366 = add nsw i32 %.0365563, %427
  %.0348 = select i1 %426, double 0.000000e+00, double %424
  %428 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv649) #8
  store double %.0348, ptr %428, align 8, !tbaa !46
  br label %429

429:                                              ; preds = %418, %410
  %.2367 = phi i32 [ %.1366, %418 ], [ %.0365563, %410 ]
  %indvars.iv.next650 = add nsw i64 %indvars.iv649, 1
  %lftr.wideiv = trunc i64 %indvars.iv.next650 to i32
  %exitcond.not = icmp eq i32 %395, %lftr.wideiv
  br i1 %exitcond.not, label %._crit_edge567, label %410, !llvm.loop !61

._crit_edge572:                                   ; preds = %445, %.preheader426
  %.0346.lcssa = phi i32 [ %393, %.preheader426 ], [ %.1347, %445 ]
  %430 = sub nsw i32 %.0346.lcssa, %393
  %431 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %389) #8
  store i32 %430, ptr %431, align 4, !tbaa !42
  %.pr = load i32, ptr %11, align 4, !tbaa !42
  br label %446

.lr.ph571:                                        ; preds = %.lr.ph571.preheader, %445
  %indvars.iv652 = phi i64 [ %409, %.lr.ph571.preheader ], [ %indvars.iv.next653, %445 ]
  %.0346569 = phi i32 [ %393, %.lr.ph571.preheader ], [ %.1347, %445 ]
  %432 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv652) #8
  %433 = load double, ptr %432, align 8, !tbaa !46
  %434 = fcmp une double %433, 0.000000e+00
  %435 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %indvars.iv652) #8
  %436 = load i32, ptr %435, align 4, !tbaa !42
  br i1 %434, label %437, label %444

437:                                              ; preds = %.lr.ph571
  %438 = sext i32 %.0346569 to i64
  %439 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %438) #8
  store i32 %436, ptr %439, align 4, !tbaa !42
  %440 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv652) #8
  %441 = load double, ptr %440, align 8, !tbaa !46
  %442 = add nsw i32 %.0346569, 1
  %443 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %438) #8
  store double %441, ptr %443, align 8, !tbaa !46
  br label %445

444:                                              ; preds = %.lr.ph571
  call void @_ZN7HFactor9rowDeleteEii(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %388, i32 noundef %436)
  br label %445

445:                                              ; preds = %437, %444
  %.1347 = phi i32 [ %442, %437 ], [ %.0346569, %444 ]
  %indvars.iv.next653 = add nsw i64 %indvars.iv652, 1
  %lftr.wideiv655 = trunc i64 %indvars.iv.next653 to i32
  %exitcond656.not = icmp eq i32 %395, %lftr.wideiv655
  br i1 %exitcond656.not, label %._crit_edge572, label %.lr.ph571, !llvm.loop !62

446:                                              ; preds = %._crit_edge567.thread, %._crit_edge572, %._crit_edge567
  %447 = phi double [ %407, %._crit_edge572 ], [ %407, %._crit_edge567 ], [ %401, %._crit_edge567.thread ]
  %448 = phi i32 [ %.pr, %._crit_edge572 ], [ %.pre683, %._crit_edge567 ], [ %.0389.lcssa, %._crit_edge567.thread ]
  %449 = icmp sgt i32 %448, 0
  br i1 %449, label %450, label %.loopexit

450:                                              ; preds = %446
  %451 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %389) #8
  %452 = load i32, ptr %451, align 4, !tbaa !42
  %453 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %50, i64 noundef %389) #8
  %454 = load i32, ptr %453, align 4, !tbaa !42
  %455 = add nsw i32 %454, %452
  %456 = load i32, ptr %11, align 4, !tbaa !42
  %457 = add nsw i32 %455, %456
  %458 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %389) #8
  %459 = load i32, ptr %458, align 4, !tbaa !42
  %460 = icmp sgt i32 %457, %459
  br i1 %460, label %461, label %521

461:                                              ; preds = %450
  %462 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %389) #8
  %463 = load i32, ptr %462, align 4, !tbaa !42
  %464 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %389) #8
  %465 = load i32, ptr %464, align 4, !tbaa !42
  %466 = add nsw i32 %465, %463
  %467 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %389) #8
  %468 = load i32, ptr %467, align 4, !tbaa !42
  %469 = add nsw i32 %468, %463
  %470 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %50, i64 noundef %389) #8
  %471 = load i32, ptr %470, align 4, !tbaa !42
  %472 = sub i32 %469, %471
  %473 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %389) #8
  %474 = load i32, ptr %473, align 4, !tbaa !42
  %475 = add nsw i32 %474, %463
  %476 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %389) #8
  %477 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %476, ptr noundef nonnull align 4 dereferenceable(4) %11)
  %478 = load i32, ptr %477, align 4, !tbaa !42
  %479 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %389) #8
  %480 = load i32, ptr %479, align 4, !tbaa !42
  %481 = add nsw i32 %480, %478
  store i32 %481, ptr %479, align 4, !tbaa !42
  %482 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #8
  %483 = trunc i64 %482 to i32
  %484 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %389) #8
  store i32 %483, ptr %484, align 4, !tbaa !42
  %485 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %389) #8
  %486 = load i32, ptr %485, align 4, !tbaa !42
  %487 = add nsw i32 %486, %483
  %488 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %50, i64 noundef %389) #8
  %489 = load i32, ptr %488, align 4, !tbaa !42
  %490 = sub i32 %487, %489
  %491 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %389) #8
  %492 = load i32, ptr %491, align 4, !tbaa !42
  %493 = add nsw i32 %492, %483
  %494 = sext i32 %493 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %494)
  %495 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %389) #8
  %496 = load i32, ptr %495, align 4, !tbaa !42
  %497 = add nsw i32 %496, %483
  %498 = sext i32 %497 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %498)
  %499 = sext i32 %463 to i64
  %500 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %499) #8
  %501 = sext i32 %466 to i64
  %502 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %501) #8
  %sext = shl i64 %482, 32
  %503 = ashr exact i64 %sext, 32
  %504 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %503) #8
  %505 = call noundef ptr @_ZSt4copyIPiS0_ET0_T_S2_S1_(ptr noundef nonnull %500, ptr noundef nonnull %502, ptr noundef nonnull %504)
  %506 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %499) #8
  %507 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %501) #8
  %508 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %503) #8
  %509 = call noundef ptr @_ZSt4copyIPdS0_ET0_T_S2_S1_(ptr noundef nonnull %506, ptr noundef nonnull %507, ptr noundef nonnull %508)
  %510 = sext i32 %472 to i64
  %511 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %510) #8
  %512 = sext i32 %475 to i64
  %513 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %512) #8
  %514 = sext i32 %490 to i64
  %515 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %514) #8
  %516 = call noundef ptr @_ZSt4copyIPiS0_ET0_T_S2_S1_(ptr noundef nonnull %511, ptr noundef nonnull %513, ptr noundef nonnull %515)
  %517 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %510) #8
  %518 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %512) #8
  %519 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %514) #8
  %520 = call noundef ptr @_ZSt4copyIPdS0_ET0_T_S2_S1_(ptr noundef nonnull %517, ptr noundef nonnull %518, ptr noundef nonnull %519)
  br label %521

521:                                              ; preds = %461, %450
  br i1 %.not605, label %._crit_edge582, label %.lr.ph576

.lr.ph576:                                        ; preds = %521
  %522 = fneg double %397
  br label %523

.preheader:                                       ; preds = %533
  br i1 %.not605, label %._crit_edge582, label %.lr.ph578

523:                                              ; preds = %.lr.ph576, %533
  %indvars.iv657 = phi i64 [ 0, %.lr.ph576 ], [ %indvars.iv.next658, %533 ]
  %524 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %indvars.iv657) #8
  %525 = load i32, ptr %524, align 4, !tbaa !42
  %526 = sext i32 %525 to i64
  %527 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %526) #8
  %528 = load i8, ptr %527, align 1, !tbaa !58
  %.not405 = icmp eq i8 %528, 0
  br i1 %.not405, label %533, label %529

529:                                              ; preds = %523
  %530 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %526) #8
  %531 = load double, ptr %530, align 8, !tbaa !46
  %532 = fmul double %531, %522
  call void @_ZN7HFactor9colInsertEiid(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %388, i32 noundef %525, double noundef %532)
  br label %533

533:                                              ; preds = %529, %523
  %indvars.iv.next658 = add nuw nsw i64 %indvars.iv657, 1
  %exitcond660.not = icmp eq i64 %indvars.iv.next658, %wide.trip.count
  br i1 %exitcond660.not, label %.preheader, label %523, !llvm.loop !63

.lr.ph578:                                        ; preds = %.preheader, %569
  %indvars.iv661 = phi i64 [ %indvars.iv.next662, %569 ], [ 0, %.preheader ]
  %534 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %indvars.iv661) #8
  %535 = load i32, ptr %534, align 4, !tbaa !42
  %536 = sext i32 %535 to i64
  %537 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %536) #8
  %538 = load i8, ptr %537, align 1, !tbaa !58
  %.not403 = icmp eq i8 %538, 0
  br i1 %.not403, label %569, label %539

539:                                              ; preds = %.lr.ph578
  %540 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %536) #8
  %541 = load i32, ptr %540, align 4, !tbaa !42
  %542 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %56, i64 noundef %536) #8
  %543 = load i32, ptr %542, align 4, !tbaa !42
  %544 = icmp eq i32 %541, %543
  br i1 %544, label %545, label %568

545:                                              ; preds = %539
  %546 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %536) #8
  %547 = load i32, ptr %546, align 4, !tbaa !42
  %548 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %536) #8
  %549 = load i32, ptr %548, align 4, !tbaa !42
  %550 = add nsw i32 %549, %547
  %551 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %27) #8
  %552 = trunc i64 %551 to i32
  %553 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %536) #8
  store i32 %552, ptr %553, align 4, !tbaa !42
  %554 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %56, i64 noundef %536) #8
  %555 = load i32, ptr %554, align 4, !tbaa !42
  %556 = shl nsw i32 %555, 1
  store i32 %556, ptr %554, align 4, !tbaa !42
  %557 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %56, i64 noundef %536) #8
  %558 = load i32, ptr %557, align 4, !tbaa !42
  %559 = add nsw i32 %558, %552
  %560 = sext i32 %559 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %560)
  %561 = sext i32 %547 to i64
  %562 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %561) #8
  %563 = sext i32 %550 to i64
  %564 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %563) #8
  %sext404 = shl i64 %551, 32
  %565 = ashr exact i64 %sext404, 32
  %566 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %565) #8
  %567 = call noundef ptr @_ZSt4copyIPiS0_ET0_T_S2_S1_(ptr noundef nonnull %562, ptr noundef nonnull %564, ptr noundef nonnull %566)
  br label %568

568:                                              ; preds = %545, %539
  call void @_ZN7HFactor9rowInsertEii(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %388, i32 noundef %535)
  br label %569

569:                                              ; preds = %568, %.lr.ph578
  %indvars.iv.next662 = add nuw nsw i64 %indvars.iv661, 1
  %exitcond665.not = icmp eq i64 %indvars.iv.next662, %wide.trip.count664
  br i1 %exitcond665.not, label %.loopexit, label %.lr.ph578, !llvm.loop !64

.loopexit:                                        ; preds = %569, %446
  br i1 %.not605, label %._crit_edge582, label %.lr.ph581

._crit_edge582:                                   ; preds = %.lr.ph581, %521, %.preheader, %.loopexit
  call void @_ZN7HFactor9colFixMaxEi(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %388)
  %570 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %389) #8
  %571 = load i32, ptr %570, align 4, !tbaa !42
  %.not402 = icmp eq i32 %391, %571
  br i1 %.not402, label %579, label %576

.lr.ph581:                                        ; preds = %.loopexit, %.lr.ph581
  %indvars.iv666 = phi i64 [ %indvars.iv.next667, %.lr.ph581 ], [ 0, %.loopexit ]
  %572 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %indvars.iv666) #8
  %573 = load i32, ptr %572, align 4, !tbaa !42
  %574 = sext i32 %573 to i64
  %575 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %574) #8
  store i8 1, ptr %575, align 1, !tbaa !58
  %indvars.iv.next667 = add nuw nsw i64 %indvars.iv666, 1
  %exitcond670.not = icmp eq i64 %indvars.iv.next667, %wide.trip.count669
  br i1 %exitcond670.not, label %._crit_edge582, label %.lr.ph581, !llvm.loop !65

576:                                              ; preds = %._crit_edge582
  call void @_ZN7HFactor8clinkDelEi(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %388)
  %577 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %389) #8
  %578 = load i32, ptr %577, align 4, !tbaa !42
  call void @_ZN7HFactor8clinkAddEii(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %388, i32 noundef %578)
  br label %579

579:                                              ; preds = %576, %._crit_edge582
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #8
  %indvars.iv.next672 = add nsw i64 %indvars.iv671, 1
  %580 = icmp slt i64 %indvars.iv.next672, %380
  br i1 %580, label %386, label %.preheader430, !llvm.loop !66

.preheader428:                                    ; preds = %.lr.ph589, %.preheader430
  br i1 %320, label %.lr.ph591.preheader, label %.loopexit429thread-pre-split

.lr.ph591.preheader:                              ; preds = %.preheader428
  %581 = sext i32 %316 to i64
  %582 = sext i32 %319 to i64
  br label %.lr.ph591

.lr.ph589:                                        ; preds = %.lr.ph589.preheader, %.lr.ph589
  %indvars.iv674 = phi i64 [ 0, %.lr.ph589.preheader ], [ %indvars.iv.next675, %.lr.ph589 ]
  %583 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %indvars.iv674) #8
  %584 = load i32, ptr %583, align 4, !tbaa !42
  %585 = sext i32 %584 to i64
  %586 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %585) #8
  store i8 0, ptr %586, align 1, !tbaa !58
  %indvars.iv.next675 = add nuw nsw i64 %indvars.iv674, 1
  %exitcond678.not = icmp eq i64 %indvars.iv.next675, %wide.trip.count677
  br i1 %exitcond678.not, label %.preheader428, label %.lr.ph589, !llvm.loop !67

.lr.ph591:                                        ; preds = %.lr.ph591.preheader, %597
  %indvars.iv679 = phi i64 [ %581, %.lr.ph591.preheader ], [ %indvars.iv.next680, %597 ]
  %587 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %indvars.iv679) #8
  %588 = load i32, ptr %587, align 4, !tbaa !42
  %589 = sext i32 %588 to i64
  %590 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %47, i64 noundef %589) #8
  %591 = load i32, ptr %590, align 4, !tbaa !42
  %592 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %589) #8
  %593 = load i32, ptr %592, align 4, !tbaa !42
  %.not401 = icmp eq i32 %591, %593
  br i1 %.not401, label %597, label %594

594:                                              ; preds = %.lr.ph591
  call void @_ZN7HFactor8rlinkDelEi(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %588)
  %595 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %589) #8
  %596 = load i32, ptr %595, align 4, !tbaa !42
  call void @_ZN7HFactor8rlinkAddEii(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %588, i32 noundef %596)
  br label %597

597:                                              ; preds = %594, %.lr.ph591
  %indvars.iv.next680 = add nsw i64 %indvars.iv679, 1
  %598 = icmp slt i64 %indvars.iv.next680, %582
  br i1 %598, label %.lr.ph591, label %.loopexit429thread-pre-split, !llvm.loop !68

.loopexit429thread-pre-split:                     ; preds = %597, %.preheader428
  %.pr687 = load i32, ptr %15, align 8, !tbaa !40
  br label %.loopexit429

.loopexit429:                                     ; preds = %.loopexit429thread-pre-split, %299
  %599 = phi i32 [ %.pr687, %.loopexit429thread-pre-split ], [ %301, %299 ]
  %.2301 = phi double [ %.1300.lcssa, %.loopexit429thread-pre-split ], [ %.0299596, %299 ]
  %.1297 = phi double [ %367, %.loopexit429thread-pre-split ], [ %.0296597, %299 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #8
  %600 = add nsw i32 %599, -1
  store i32 %600, ptr %15, align 8, !tbaa !40
  %601 = icmp sgt i32 %599, 0
  br i1 %601, label %58, label %._crit_edge601.loopexit

._crit_edge601.loopexit:                          ; preds = %.loopexit429
  %602 = fmul double %.1297, 1.600000e+02
  br label %._crit_edge601

._crit_edge601:                                   ; preds = %._crit_edge601.loopexit, %1
  %.0299.lcssa = phi double [ 0.000000e+00, %1 ], [ %.2301, %._crit_edge601.loopexit ]
  %.0296.lcssa = phi double [ 0.000000e+00, %1 ], [ %602, %._crit_edge601.loopexit ]
  %.0291.lcssa = phi double [ 0.000000e+00, %1 ], [ %.1292.lcssa, %._crit_edge601.loopexit ]
  %603 = call double @llvm.fmuladd.f64(double %.0291.lcssa, double 2.000000e+01, double %.0296.lcssa)
  %604 = call double @llvm.fmuladd.f64(double %.0299.lcssa, double 8.000000e+01, double %603)
  %605 = getelementptr inbounds i8, ptr %0, i64 8
  %606 = load double, ptr %605, align 8, !tbaa !69
  %607 = fadd double %604, %606
  store double %607, ptr %605, align 8, !tbaa !69
  %608 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 0, ptr %608, align 8, !tbaa !54
  br label %.thread

.thread:                                          ; preds = %77, %80, %.thread420, %._crit_edge601
  %.4 = phi i32 [ 0, %._crit_edge601 ], [ %248, %.thread420 ], [ -1, %80 ], [ -1, %77 ]
  ret i32 %.4
}

declare void @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89), i32 noundef, ptr noundef, ...) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIaSaIaEE9push_backERKa(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor8rlinkAddEii(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef, i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor9colInsertEiid(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef, i32 noundef, double noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor9rowInsertEii(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef, i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor9colStoreNEiid(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef, i32 noundef, double noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor9colFixMaxEi(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor8clinkAddEii(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef, i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK10HighsTimer4readEi(ptr noundef nonnull align 8 dereferenceable(132), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN7HFactor9colDeleteEii(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef, i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor9rowDeleteEii(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef, i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor8clinkDelEi(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7HFactor8rlinkDelEi(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7HFactor7zeroColEi(ptr noundef nonnull align 8 dereferenceable(1912), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZSt4copyIPiS0_ET0_T_S2_S1_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZSt4copyIPdS0_ET0_T_S2_S1_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress 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 #2 = { inlinehint mustprogress 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 #3 = { mustprogress 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 #4 = { noreturn 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 #5 = { "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 #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { inlinehint mustprogress 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 #8 = { nounwind }
attributes #9 = { noreturn 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, !7, i64 288}
!6 = !{!"_ZTS7HFactor", !7, i64 0, !7, i64 8, !10, i64 16, !11, i64 24, !11, i64 48, !11, i64 72, !16, i64 96, !10, i64 184, !10, i64 188, !10, i64 192, !10, i64 196, !10, i64 200, !10, i64 204, !10, i64 208, !7, i64 216, !17, i64 224, !15, i64 232, !15, i64 240, !15, i64 248, !15, i64 256, !7, i64 264, !7, i64 272, !10, i64 280, !7, i64 288, !22, i64 296, !28, i64 304, !17, i64 400, !17, i64 401, !10, i64 404, !10, i64 408, !15, i64 416, !10, i64 424, !11, i64 432, !31, i64 456, !11, i64 480, !11, i64 504, !11, i64 528, !31, i64 552, !11, i64 576, !11, i64 600, !11, i64 624, !11, i64 648, !11, i64 672, !11, i64 696, !11, i64 720, !31, i64 744, !31, i64 768, !11, i64 792, !11, i64 816, !11, i64 840, !11, i64 864, !11, i64 888, !11, i64 912, !35, i64 936, !31, i64 960, !11, i64 984, !11, i64 1008, !11, i64 1032, !11, i64 1056, !11, i64 1080, !11, i64 1104, !11, i64 1128, !11, i64 1152, !11, i64 1176, !11, i64 1200, !31, i64 1224, !11, i64 1248, !11, i64 1272, !31, i64 1296, !11, i64 1320, !11, i64 1344, !31, i64 1368, !10, i64 1392, !10, i64 1396, !11, i64 1400, !11, i64 1424, !11, i64 1448, !31, i64 1472, !11, i64 1496, !11, i64 1520, !11, i64 1544, !11, i64 1568, !31, i64 1592, !31, i64 1616, !11, i64 1640, !11, i64 1664, !11, i64 1688, !31, i64 1712, !39, i64 1736}
!7 = !{!"double", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!"_ZTSSt6vectorIiSaIiEE", !12, i64 0}
!12 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !13, i64 0}
!13 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!15 = !{!"any pointer", !8, i64 0}
!16 = !{!"_ZTS12RefactorInfo", !17, i64 0, !11, i64 8, !11, i64 32, !18, i64 56, !7, i64 80}
!17 = !{!"bool", !8, i64 0}
!18 = !{!"_ZTSSt6vectorIaSaIaEE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseIaSaIaEE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!22 = !{!"_ZTSSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EE", !23, i64 0}
!23 = !{!"_ZTSSt15__uniq_ptr_dataIN7HFactor7LogDataESt14default_deleteIS1_ELb1ELb1EE", !24, i64 0}
!24 = !{!"_ZTSSt15__uniq_ptr_implIN7HFactor7LogDataESt14default_deleteIS1_EE", !25, i64 0}
!25 = !{!"_ZTSSt5tupleIJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !26, i64 0}
!26 = !{!"_ZTSSt11_Tuple_implILm0EJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !27, i64 0}
!27 = !{!"_ZTSSt10_Head_baseILm0EPN7HFactor7LogDataELb0EE", !15, i64 0}
!28 = !{!"_ZTS15HighsLogOptions", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24, !15, i64 32, !15, i64 40, !29, i64 48, !15, i64 80, !17, i64 88}
!29 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !30, i64 0, !15, i64 24}
!30 = !{!"_ZTSSt14_Function_base", !8, i64 0, !15, i64 16}
!31 = !{!"_ZTSSt6vectorIdSaIdEE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!35 = !{!"_ZTSSt6vectorIcSaIcEE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!39 = !{!"_ZTS11HVectorBaseIdE", !10, i64 0, !10, i64 4, !11, i64 8, !31, i64 32, !7, i64 56, !35, i64 64, !11, i64 88, !15, i64 112, !17, i64 120, !10, i64 124, !11, i64 128, !31, i64 152}
!40 = !{!6, !10, i64 424}
!41 = !{!6, !15, i64 416}
!42 = !{!10, !10, i64 0}
!43 = !{!6, !10, i64 192}
!44 = !{!6, !10, i64 208}
!45 = !{!6, !10, i64 200}
!46 = !{!7, !7, i64 0}
!47 = distinct !{!47, !48}
!48 = !{!"llvm.loop.mustprogress"}
!49 = distinct !{!49, !48}
!50 = distinct !{!50, !48}
!51 = distinct !{!51, !48}
!52 = distinct !{!52, !48}
!53 = distinct !{!53, !48}
!54 = !{!6, !10, i64 16}
!55 = !{!6, !7, i64 272}
!56 = distinct !{!56, !48}
!57 = !{!6, !15, i64 256}
!58 = !{!8, !8, i64 0}
!59 = distinct !{!59, !48}
!60 = distinct !{!60, !48}
!61 = distinct !{!61, !48}
!62 = distinct !{!62, !48}
!63 = distinct !{!63, !48}
!64 = distinct !{!64, !48}
!65 = distinct !{!65, !48}
!66 = distinct !{!66, !48}
!67 = distinct !{!67, !48}
!68 = distinct !{!68, !48}
!69 = !{!6, !7, i64 8}


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