; LLVM IR from ERGO-Code/HiGHS :: src/simplex/HEkk.ll (ZN4HEkk7dualizeEv)

; 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.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3" }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = 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.HEkk = type { ptr, ptr, ptr, %class.HighsSimplexAnalysis, %class.HighsLp, %"class.std::__cxx11::basic_string", %struct.HighsSimplexStatus, [3 x i8], %struct.HighsSimplexInfo, i32, %struct.SimplexBasis, %class.HighsHashTable, %class.HighsRandom, %"class.std::vector.3", %"class.std::vector.3", i8, %class.HighsSparseMatrix, %class.HighsSparseMatrix, %class.HSimplexNla, %struct.HotStart, double, double, double, i32, i32, i32, i32, i8, i8, i32, i32, i32, %"class.std::vector.8", %"class.std::vector.3", %struct.HighsRayRecord, %struct.HighsRayRecord, i32, i32, i32, double, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", double, double, double, i32, i32, i8, i32, i8, i8, i8, i8, double, %"class.std::vector.66", %"class.std::vector.3", %struct.HighsSimplexStats }
%class.HighsSimplexAnalysis = type { ptr, %"class.std::vector", %"class.std::vector", ptr, i32, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %struct.HighsLogOptions, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", double, double, double, double, double, double, double, double, double, double, double, double, i32, i32, double, double, i32, double, double, i32, double, double, double, double, double, double, double, double, double, double, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, [4 x i8], %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, double, double, i32, double, double, i32, i32, double, double, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.13", %"class.std::unique_ptr", i32, i32, i32, i32, double, double, double, double, double, double, double, double, double, double, i32, i32, double, double, double, i8, double, double, i32, i32, i32, i32, i32, double, double, double, double, double, double, double, double, double, i32, i32, [10 x %"struct.HighsSimplexAnalysis::AnIterOpRec"], i32, i32, [22 x %"struct.HighsSimplexAnalysis::AnIterTraceRec"], [12 x i32], [3 x i32], [4 x i8], %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl_data" = type { ptr, ptr, 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.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<TranStageAnalysis, std::allocator<TranStageAnalysis>>::_Vector_impl" }
%"struct.std::_Vector_base<TranStageAnalysis, std::allocator<TranStageAnalysis>>::_Vector_impl" = type { %"struct.std::_Vector_base<TranStageAnalysis, std::allocator<TranStageAnalysis>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TranStageAnalysis, std::allocator<TranStageAnalysis>>::_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.19" }
%"struct.std::_Head_base.19" = type { ptr }
%"struct.HighsSimplexAnalysis::AnIterOpRec" = type { double, double, i32, i32, i32, i32, double, i32, %"class.std::__cxx11::basic_string", %struct.HighsValueDistribution }
%"struct.HighsSimplexAnalysis::AnIterTraceRec" = type { double, double, [10 x double], double, i32, i32, i32 }
%struct.HighsValueDistribution = type <{ %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, i32, [4 x i8], double, double, %"class.std::vector.3", %"class.std::vector.8", i32, [4 x i8] }>
%class.HighsLp = type { i32, i32, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %class.HighsSparseMatrix, i32, double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.25", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = type { %"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsNameHash = type { %"class.std::unordered_map" }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%struct.HighsScale = type { i32, i8, i32, i32, double, %"class.std::vector.3", %"class.std::vector.3" }
%struct.HighsLpMods = type { %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.25", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%struct.HighsSimplexStatus = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
%struct.HighsSimplexInfo = type <{ %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", i32, i32, i8, i8, [6 x i8], %struct.SimplexBasis, i32, i32, i32, [4 x i8], %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", i32, i32, i32, i32, double, double, double, double, i32, i32, double, double, double, double, double, double, double, double, double, double, i8, [7 x i8], double, double, i32, [4 x i8], double, double, double, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, [4 x i8], double, double, i32, [4 x i8], double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, i32, [4 x i8] }>
%struct.SimplexBasis = type { %"class.std::vector.8", %"class.std::vector.35", %"class.std::vector.35", i64, i32, i32, %"class.std::__cxx11::basic_string" }
%"class.std::vector.35" = type { %"struct.std::_Vector_base.36" }
%"struct.std::_Vector_base.36" = 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.HighsHashTable = type { %"class.std::unique_ptr.40", %"class.std::unique_ptr.48", i64, i64, i64 }
%"class.std::unique_ptr.40" = type { %"struct.std::__uniq_ptr_data.41" }
%"struct.std::__uniq_ptr_data.41" = type { %"class.std::__uniq_ptr_impl.42" }
%"class.std::__uniq_ptr_impl.42" = type { %"class.std::tuple.43" }
%"class.std::tuple.43" = type { %"struct.std::_Tuple_impl.44" }
%"struct.std::_Tuple_impl.44" = type { %"struct.std::_Head_base.47" }
%"struct.std::_Head_base.47" = type { ptr }
%"class.std::unique_ptr.48" = type { %"struct.std::__uniq_ptr_data.49" }
%"struct.std::__uniq_ptr_data.49" = type { %"class.std::__uniq_ptr_impl.50" }
%"class.std::__uniq_ptr_impl.50" = type { %"class.std::tuple.51" }
%"class.std::tuple.51" = type { %"struct.std::_Tuple_impl.52" }
%"struct.std::_Tuple_impl.52" = type { %"struct.std::_Head_base.55" }
%"struct.std::_Head_base.55" = type { ptr }
%class.HighsRandom = type { i64 }
%class.HSimplexNla = type { ptr, ptr, ptr, ptr, ptr, ptr, %class.HFactor, i8, double, %struct.ProductFormUpdate, %struct.SimplexIterate }
%class.HFactor = type { double, double, i32, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %struct.RefactorInfo, i32, i32, i32, i32, i32, i32, i32, double, i8, ptr, ptr, ptr, ptr, double, double, i32, double, %"class.std::unique_ptr.56", %struct.HighsLogOptions, i8, i8, i32, i32, ptr, i32, %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.64", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", i32, i32, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %class.HVectorBase }
%struct.RefactorInfo = type { i8, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.35", double }
%"class.std::unique_ptr.56" = type { %"struct.std::__uniq_ptr_data.57" }
%"struct.std::__uniq_ptr_data.57" = type { %"class.std::__uniq_ptr_impl.58" }
%"class.std::__uniq_ptr_impl.58" = type { %"class.std::tuple.59" }
%"class.std::tuple.59" = type { %"struct.std::_Tuple_impl.60" }
%"struct.std::_Tuple_impl.60" = type { %"struct.std::_Head_base.63" }
%"struct.std::_Head_base.63" = type { ptr }
%"class.std::vector.64" = type { %"struct.std::_Vector_base.65" }
%"struct.std::_Vector_base.65" = 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.HVectorBase = type { i32, i32, %"class.std::vector.8", %"class.std::vector.3", double, %"class.std::vector.64", %"class.std::vector.8", ptr, i8, i32, %"class.std::vector.8", %"class.std::vector.3" }
%struct.ProductFormUpdate = type { i8, i32, i32, %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3" }
%struct.SimplexIterate = type { i8, %struct.SimplexBasis, %struct.InvertibleRepresentation, %"class.std::vector.3" }
%struct.InvertibleRepresentation = type { %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.3" }
%struct.HotStart = type { i8, %struct.RefactorInfo, %"class.std::vector.35" }
%struct.HighsRayRecord = type { i32, i32, %"class.std::vector.3" }
%"class.std::vector.66" = type { %"struct.std::_Vector_base.67" }
%"struct.std::_Vector_base.67" = type { %"struct.std::_Vector_base<HighsSimplexBadBasisChangeRecord, std::allocator<HighsSimplexBadBasisChangeRecord>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsSimplexBadBasisChangeRecord, std::allocator<HighsSimplexBadBasisChangeRecord>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsSimplexBadBasisChangeRecord, std::allocator<HighsSimplexBadBasisChangeRecord>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsSimplexBadBasisChangeRecord, std::allocator<HighsSimplexBadBasisChangeRecord>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsSimplexStats = type { i8, i32, i32, i32, i32, double, double, double, double }
%struct.HighsOptionsStruct = type { ptr, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, %"class.std::__cxx11::basic_string", double, double, double, double, double, double, double, double, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i32, i8, i8, i32, i32, double, i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, double, double, double, double, double, double, double, double, double, double, double, i8, i8, i8, i8, i32, double, i8, i8, %"class.std::__cxx11::basic_string", double, i32, i32, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, i8, i8, %"class.std::__cxx11::basic_string", i8, i32, %struct.HighsLogOptions }

@.str.52 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [26 x i8], align 1
@__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv = external hidden unnamed_addr constant [28 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [14 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZN17HighsSparseMatrixaSERKS_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(112)) #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN4HEkk7dualizeEv(ptr noundef nonnull align 8 dereferenceable(14568) %0) #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %class.HighsSparseMatrix, align 8
  %4 = alloca %"class.std::vector.3", align 8
  %5 = alloca %"class.std::vector.8", align 8
  %6 = alloca double, align 8
  %7 = alloca i32, align 4
  %8 = alloca double, align 8
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %class.HighsSparseMatrix, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca double, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca i32, align 4
  %35 = alloca %"class.std::vector.8", align 8
  %36 = alloca %"class.std::vector.8", align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %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 i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca double, align 8
  %53 = alloca i64, align 8
  %54 = alloca i32, align 4
  %55 = alloca double, align 8
  %56 = alloca i32, align 4
  %57 = alloca %"class.std::vector.3", align 8
  %58 = alloca double, align 8
  %59 = alloca i64, align 8
  %60 = alloca i32, align 4
  %61 = alloca double, align 8
  %62 = alloca i32, align 4
  %63 = alloca %class.HighsSparseMatrix, align 8
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i8, align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  %67 = load ptr, ptr %2, align 8
  %68 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %69 = getelementptr inbounds %class.HighsLp, ptr %68, i32 0, i32 7
  %70 = call noundef zeroext i1 @_ZNK17HighsSparseMatrix9isColwiseEv(ptr noundef nonnull align 8 dereferenceable(112) %69)
  br i1 %70, label %71, label %72

71:                                               ; preds = %1
  br label %74

72:                                               ; preds = %1
  call void @__assert_fail(ptr noundef @.str.57, ptr noundef @.str.52, i32 noundef 451, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

73:                                               ; No predecessors!
  br label %74

74:                                               ; preds = %73, %71
  %75 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %76 = getelementptr inbounds %class.HighsLp, ptr %75, i32 0, i32 0
  %77 = load i32, ptr %76, align 8, !tbaa !9
  %78 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 36
  store i32 %77, ptr %78, align 8, !tbaa !112
  %79 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %80 = getelementptr inbounds %class.HighsLp, ptr %79, i32 0, i32 1
  %81 = load i32, ptr %80, align 4, !tbaa !113
  %82 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 37
  store i32 %81, ptr %82, align 4, !tbaa !114
  %83 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %84 = getelementptr inbounds %class.HighsLp, ptr %83, i32 0, i32 7
  %85 = call noundef i32 @_ZNK17HighsSparseMatrix5numNzEv(ptr noundef nonnull align 8 dereferenceable(112) %84)
  %86 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 38
  store i32 %85, ptr %86, align 8, !tbaa !115
  %87 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %88 = getelementptr inbounds %class.HighsLp, ptr %87, i32 0, i32 9
  %89 = load double, ptr %88, align 8, !tbaa !116
  %90 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 39
  store double %89, ptr %90, align 8, !tbaa !117
  %91 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %92 = getelementptr inbounds %class.HighsLp, ptr %91, i32 0, i32 2
  %93 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 40
  %94 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %93, ptr noundef nonnull align 8 dereferenceable(24) %92)
  %95 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %96 = getelementptr inbounds %class.HighsLp, ptr %95, i32 0, i32 3
  %97 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 41
  %98 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %97, ptr noundef nonnull align 8 dereferenceable(24) %96)
  %99 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %100 = getelementptr inbounds %class.HighsLp, ptr %99, i32 0, i32 4
  %101 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 42
  %102 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %101, ptr noundef nonnull align 8 dereferenceable(24) %100)
  %103 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %104 = getelementptr inbounds %class.HighsLp, ptr %103, i32 0, i32 5
  %105 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 43
  %106 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %105, ptr noundef nonnull align 8 dereferenceable(24) %104)
  %107 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %108 = getelementptr inbounds %class.HighsLp, ptr %107, i32 0, i32 6
  %109 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 44
  %110 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %109, ptr noundef nonnull align 8 dereferenceable(24) %108)
  %111 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %112 = getelementptr inbounds %class.HighsLp, ptr %111, i32 0, i32 2
  %113 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 37
  %114 = load i32, ptr %113, align 4, !tbaa !114
  %115 = sext i32 %114 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %112, i64 noundef %115)
  %116 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %117 = getelementptr inbounds %class.HighsLp, ptr %116, i32 0, i32 3
  %118 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 37
  %119 = load i32, ptr %118, align 4, !tbaa !114
  %120 = sext i32 %119 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %117, i64 noundef %120)
  %121 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %122 = getelementptr inbounds %class.HighsLp, ptr %121, i32 0, i32 4
  %123 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 37
  %124 = load i32, ptr %123, align 4, !tbaa !114
  %125 = sext i32 %124 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %122, i64 noundef %125)
  %126 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %127 = getelementptr inbounds %class.HighsLp, ptr %126, i32 0, i32 5
  %128 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 36
  %129 = load i32, ptr %128, align 8, !tbaa !112
  %130 = sext i32 %129 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %127, i64 noundef %130)
  %131 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %132 = getelementptr inbounds %class.HighsLp, ptr %131, i32 0, i32 6
  %133 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 36
  %134 = load i32, ptr %133, align 8, !tbaa !112
  %135 = sext i32 %134 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %135)
  %136 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %137 = getelementptr inbounds %class.HighsLp, ptr %136, i32 0, i32 2
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %137, i64 noundef 0)
  %138 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %139 = getelementptr inbounds %class.HighsLp, ptr %138, i32 0, i32 3
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %139, i64 noundef 0)
  %140 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %141 = getelementptr inbounds %class.HighsLp, ptr %140, i32 0, i32 4
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %141, i64 noundef 0)
  %142 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %143 = getelementptr inbounds %class.HighsLp, ptr %142, i32 0, i32 5
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %143, i64 noundef 0)
  %144 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %145 = getelementptr inbounds %class.HighsLp, ptr %144, i32 0, i32 6
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %145, i64 noundef 0)
  call void @llvm.lifetime.start.p0(i64 112, ptr %3) #9
  %146 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %147 = getelementptr inbounds %class.HighsLp, ptr %146, i32 0, i32 7
  call void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112) %3, ptr noundef nonnull align 8 dereferenceable(112) %147)
  %148 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 36
  %149 = load i32, ptr %148, align 8, !tbaa !112
  %150 = getelementptr inbounds %class.HighsSparseMatrix, ptr %3, i32 0, i32 2
  store i32 %149, ptr %150, align 8, !tbaa !118
  %151 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 37
  %152 = load i32, ptr %151, align 4, !tbaa !114
  %153 = getelementptr inbounds %class.HighsSparseMatrix, ptr %3, i32 0, i32 1
  store i32 %152, ptr %153, align 4, !tbaa !119
  %154 = getelementptr inbounds %class.HighsSparseMatrix, ptr %3, i32 0, i32 0
  store i32 2, ptr %154, align 8, !tbaa !120
  call void @llvm.lifetime.start.p0(i64 24, ptr %4) #9
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %5) #9
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #9
  store double 0x7FF0000000000000, ptr %6, align 8, !tbaa !121
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  store i32 0, ptr %7, align 4, !tbaa !122
  br label %155

155:                                              ; preds = %247, %74
  %156 = load i32, ptr %7, align 4, !tbaa !122
  %157 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 36
  %158 = load i32, ptr %157, align 8, !tbaa !112
  %159 = icmp slt i32 %156, %158
  br i1 %159, label %161, label %160

160:                                              ; preds = %155
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %250

161:                                              ; preds = %155
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #9
  %162 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 40
  %163 = load i32, ptr %7, align 4, !tbaa !122
  %164 = sext i32 %163 to i64
  %165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef %164) #9
  %166 = load double, ptr %165, align 8, !tbaa !121
  store double %166, ptr %8, align 8, !tbaa !121
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  %167 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 41
  %168 = load i32, ptr %7, align 4, !tbaa !122
  %169 = sext i32 %168 to i64
  %170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %167, i64 noundef %169) #9
  %171 = load double, ptr %170, align 8, !tbaa !121
  store double %171, ptr %9, align 8, !tbaa !121
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  %172 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 42
  %173 = load i32, ptr %7, align 4, !tbaa !122
  %174 = sext i32 %173 to i64
  %175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %172, i64 noundef %174) #9
  %176 = load double, ptr %175, align 8, !tbaa !121
  store double %176, ptr %10, align 8, !tbaa !121
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  store double 0x7FF0000000000000, ptr %11, align 8, !tbaa !121
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  store double 0x7FF0000000000000, ptr %12, align 8, !tbaa !121
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  store double 0xFFF0000000000000, ptr %13, align 8, !tbaa !121
  %177 = load double, ptr %9, align 8, !tbaa !121
  %178 = load double, ptr %10, align 8, !tbaa !121
  %179 = fcmp oeq double %177, %178
  br i1 %179, label %180, label %182

180:                                              ; preds = %161
  %181 = load double, ptr %9, align 8, !tbaa !121
  store double %181, ptr %11, align 8, !tbaa !121
  store double 0xFFF0000000000000, ptr %12, align 8, !tbaa !121
  store double 0x7FF0000000000000, ptr %13, align 8, !tbaa !121
  br label %216

182:                                              ; preds = %161
  %183 = load double, ptr %9, align 8, !tbaa !121
  %184 = fneg double %183
  %185 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %184)
          to label %186 unwind label %196

186:                                              ; preds = %182
  br i1 %185, label %204, label %187

187:                                              ; preds = %186
  %188 = load double, ptr %10, align 8, !tbaa !121
  %189 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %188)
          to label %190 unwind label %196

190:                                              ; preds = %187
  br i1 %189, label %200, label %191

191:                                              ; preds = %190
  %192 = load double, ptr %9, align 8, !tbaa !121
  store double %192, ptr %11, align 8, !tbaa !121
  store double 0xFFF0000000000000, ptr %12, align 8, !tbaa !121
  %193 = load double, ptr %8, align 8, !tbaa !121
  store double %193, ptr %13, align 8, !tbaa !121
  %194 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 45
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %194, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %195 unwind label %196

195:                                              ; preds = %191
  br label %203

196:                                              ; preds = %244, %243, %237, %234, %204, %191, %187, %182
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %14, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %945

200:                                              ; preds = %190
  %201 = load double, ptr %9, align 8, !tbaa !121
  store double %201, ptr %11, align 8, !tbaa !121
  store double 0xFFF0000000000000, ptr %12, align 8, !tbaa !121
  %202 = load double, ptr %8, align 8, !tbaa !121
  store double %202, ptr %13, align 8, !tbaa !121
  br label %203

203:                                              ; preds = %200, %195
  br label %215

204:                                              ; preds = %186
  %205 = load double, ptr %10, align 8, !tbaa !121
  %206 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %205)
          to label %207 unwind label %196

207:                                              ; preds = %204
  br i1 %206, label %211, label %208

208:                                              ; preds = %207
  %209 = load double, ptr %10, align 8, !tbaa !121
  store double %209, ptr %11, align 8, !tbaa !121
  %210 = load double, ptr %8, align 8, !tbaa !121
  store double %210, ptr %12, align 8, !tbaa !121
  store double 0x7FF0000000000000, ptr %13, align 8, !tbaa !121
  br label %214

211:                                              ; preds = %207
  store double 0.000000e+00, ptr %11, align 8, !tbaa !121
  %212 = load double, ptr %8, align 8, !tbaa !121
  store double %212, ptr %12, align 8, !tbaa !121
  %213 = load double, ptr %8, align 8, !tbaa !121
  store double %213, ptr %13, align 8, !tbaa !121
  br label %214

214:                                              ; preds = %211, %208
  br label %215

215:                                              ; preds = %214, %203
  br label %216

216:                                              ; preds = %215, %180
  %217 = load double, ptr %12, align 8, !tbaa !121
  %218 = fcmp olt double %217, 0x7FF0000000000000
  br i1 %218, label %219, label %220

219:                                              ; preds = %216
  br label %222

220:                                              ; preds = %216
  call void @__assert_fail(ptr noundef @.str.58, ptr noundef @.str.52, i32 noundef 540, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

221:                                              ; No predecessors!
  br label %222

222:                                              ; preds = %221, %219
  %223 = load double, ptr %13, align 8, !tbaa !121
  %224 = fcmp ogt double %223, 0xFFF0000000000000
  br i1 %224, label %225, label %226

225:                                              ; preds = %222
  br label %228

226:                                              ; preds = %222
  call void @__assert_fail(ptr noundef @.str.59, ptr noundef @.str.52, i32 noundef 541, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

227:                                              ; No predecessors!
  br label %228

228:                                              ; preds = %227, %225
  %229 = load double, ptr %11, align 8, !tbaa !121
  %230 = fcmp olt double %229, 0x7FF0000000000000
  br i1 %230, label %231, label %232

231:                                              ; preds = %228
  br label %234

232:                                              ; preds = %228
  call void @__assert_fail(ptr noundef @.str.60, ptr noundef @.str.52, i32 noundef 542, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

233:                                              ; No predecessors!
  br label %234

234:                                              ; preds = %233, %231
  %235 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %236 = getelementptr inbounds %class.HighsLp, ptr %235, i32 0, i32 5
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %236, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %237 unwind label %196

237:                                              ; preds = %234
  %238 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %239 = getelementptr inbounds %class.HighsLp, ptr %238, i32 0, i32 6
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %239, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %240 unwind label %196

240:                                              ; preds = %237
  %241 = load double, ptr %11, align 8, !tbaa !121
  %242 = fcmp une double %241, 0.000000e+00
  br i1 %242, label %243, label %246

243:                                              ; preds = %240
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %244 unwind label %196

244:                                              ; preds = %243
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %245 unwind label %196

245:                                              ; preds = %244
  br label %246

246:                                              ; preds = %245, %240
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  br label %247

247:                                              ; preds = %246
  %248 = load i32, ptr %7, align 4, !tbaa !122
  %249 = add nsw i32 %248, 1
  store i32 %249, ptr %7, align 4, !tbaa !122
  br label %155, !llvm.loop !123

250:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  store i32 0, ptr %16, align 4, !tbaa !122
  br label %251

251:                                              ; preds = %330, %250
  %252 = load i32, ptr %16, align 4, !tbaa !122
  %253 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 37
  %254 = load i32, ptr %253, align 4, !tbaa !114
  %255 = icmp slt i32 %252, %254
  br i1 %255, label %257, label %256

256:                                              ; preds = %251
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %333

257:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  %258 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 43
  %259 = load i32, ptr %16, align 4, !tbaa !122
  %260 = sext i32 %259 to i64
  %261 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %258, i64 noundef %260) #9
  %262 = load double, ptr %261, align 8, !tbaa !121
  store double %262, ptr %17, align 8, !tbaa !121
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  %263 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 44
  %264 = load i32, ptr %16, align 4, !tbaa !122
  %265 = sext i32 %264 to i64
  %266 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %263, i64 noundef %265) #9
  %267 = load double, ptr %266, align 8, !tbaa !121
  store double %267, ptr %18, align 8, !tbaa !121
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  store double 0x7FF0000000000000, ptr %19, align 8, !tbaa !121
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #9
  store double 0x7FF0000000000000, ptr %20, align 8, !tbaa !121
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  store double 0xFFF0000000000000, ptr %21, align 8, !tbaa !121
  %268 = load double, ptr %17, align 8, !tbaa !121
  %269 = load double, ptr %18, align 8, !tbaa !121
  %270 = fcmp oeq double %268, %269
  br i1 %270, label %271, label %273

271:                                              ; preds = %257
  %272 = load double, ptr %17, align 8, !tbaa !121
  store double %272, ptr %19, align 8, !tbaa !121
  store double 0xFFF0000000000000, ptr %20, align 8, !tbaa !121
  store double 0x7FF0000000000000, ptr %21, align 8, !tbaa !121
  br label %302

273:                                              ; preds = %257
  %274 = load double, ptr %17, align 8, !tbaa !121
  %275 = fneg double %274
  %276 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %275)
          to label %277 unwind label %286

277:                                              ; preds = %273
  br i1 %276, label %293, label %278

278:                                              ; preds = %277
  %279 = load double, ptr %18, align 8, !tbaa !121
  %280 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %279)
          to label %281 unwind label %286

281:                                              ; preds = %278
  br i1 %280, label %290, label %282

282:                                              ; preds = %281
  %283 = load double, ptr %17, align 8, !tbaa !121
  store double %283, ptr %19, align 8, !tbaa !121
  store double 0.000000e+00, ptr %20, align 8, !tbaa !121
  store double 0x7FF0000000000000, ptr %21, align 8, !tbaa !121
  %284 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 46
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %284, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %285 unwind label %286

285:                                              ; preds = %282
  br label %292

286:                                              ; preds = %326, %323, %320, %293, %282, %278, %273
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %14, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %945

290:                                              ; preds = %281
  %291 = load double, ptr %17, align 8, !tbaa !121
  store double %291, ptr %19, align 8, !tbaa !121
  store double 0.000000e+00, ptr %20, align 8, !tbaa !121
  store double 0x7FF0000000000000, ptr %21, align 8, !tbaa !121
  br label %292

292:                                              ; preds = %290, %285
  br label %301

293:                                              ; preds = %277
  %294 = load double, ptr %18, align 8, !tbaa !121
  %295 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %294)
          to label %296 unwind label %286

296:                                              ; preds = %293
  br i1 %295, label %299, label %297

297:                                              ; preds = %296
  %298 = load double, ptr %18, align 8, !tbaa !121
  store double %298, ptr %19, align 8, !tbaa !121
  store double 0xFFF0000000000000, ptr %20, align 8, !tbaa !121
  store double 0.000000e+00, ptr %21, align 8, !tbaa !121
  br label %300

299:                                              ; preds = %296
  store double 0.000000e+00, ptr %19, align 8, !tbaa !121
  store double 0.000000e+00, ptr %20, align 8, !tbaa !121
  store double 0.000000e+00, ptr %21, align 8, !tbaa !121
  br label %300

300:                                              ; preds = %299, %297
  br label %301

301:                                              ; preds = %300, %292
  br label %302

302:                                              ; preds = %301, %271
  %303 = load double, ptr %20, align 8, !tbaa !121
  %304 = fcmp olt double %303, 0x7FF0000000000000
  br i1 %304, label %305, label %306

305:                                              ; preds = %302
  br label %308

306:                                              ; preds = %302
  call void @__assert_fail(ptr noundef @.str.61, ptr noundef @.str.52, i32 noundef 592, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

307:                                              ; No predecessors!
  br label %308

308:                                              ; preds = %307, %305
  %309 = load double, ptr %21, align 8, !tbaa !121
  %310 = fcmp ogt double %309, 0xFFF0000000000000
  br i1 %310, label %311, label %312

311:                                              ; preds = %308
  br label %314

312:                                              ; preds = %308
  call void @__assert_fail(ptr noundef @.str.62, ptr noundef @.str.52, i32 noundef 593, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

313:                                              ; No predecessors!
  br label %314

314:                                              ; preds = %313, %311
  %315 = load double, ptr %19, align 8, !tbaa !121
  %316 = fcmp olt double %315, 0x7FF0000000000000
  br i1 %316, label %317, label %318

317:                                              ; preds = %314
  br label %320

318:                                              ; preds = %314
  call void @__assert_fail(ptr noundef @.str.63, ptr noundef @.str.52, i32 noundef 594, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

319:                                              ; No predecessors!
  br label %320

320:                                              ; preds = %319, %317
  %321 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %322 = getelementptr inbounds %class.HighsLp, ptr %321, i32 0, i32 2
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %322, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %323 unwind label %286

323:                                              ; preds = %320
  %324 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %325 = getelementptr inbounds %class.HighsLp, ptr %324, i32 0, i32 3
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %325, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %326 unwind label %286

326:                                              ; preds = %323
  %327 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %328 = getelementptr inbounds %class.HighsLp, ptr %327, i32 0, i32 4
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %328, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %329 unwind label %286

329:                                              ; preds = %326
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  br label %330

330:                                              ; preds = %329
  %331 = load i32, ptr %16, align 4, !tbaa !122
  %332 = add nsw i32 %331, 1
  store i32 %332, ptr %16, align 4, !tbaa !122
  br label %251, !llvm.loop !125

333:                                              ; preds = %256
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  %334 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %335 = getelementptr inbounds %class.HighsLp, ptr %334, i32 0, i32 7
  %336 = getelementptr inbounds %class.HighsSparseMatrix, ptr %335, i32 0, i32 3
  store ptr %336, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %337 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %338 = getelementptr inbounds %class.HighsLp, ptr %337, i32 0, i32 7
  %339 = getelementptr inbounds %class.HighsSparseMatrix, ptr %338, i32 0, i32 5
  store ptr %339, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  %340 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %341 = getelementptr inbounds %class.HighsLp, ptr %340, i32 0, i32 7
  %342 = getelementptr inbounds %class.HighsSparseMatrix, ptr %341, i32 0, i32 6
  store ptr %342, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 112, ptr %25) #9
  invoke void @_ZN17HighsSparseMatrixC2Ev(ptr noundef nonnull align 8 dereferenceable(112) %25)
          to label %343 unwind label %359

343:                                              ; preds = %333
  invoke void @_ZN17HighsSparseMatrix13ensureColwiseEv(ptr noundef nonnull align 8 dereferenceable(112) %25)
          to label %344 unwind label %363

344:                                              ; preds = %343
  %345 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 36
  %346 = load i32, ptr %345, align 8, !tbaa !112
  %347 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 2
  store i32 %346, ptr %347, align 8, !tbaa !118
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  %348 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 45
  %349 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %348) #9
  %350 = trunc i64 %349 to i32
  store i32 %350, ptr %26, align 4, !tbaa !122
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %351 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 46
  %352 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %351) #9
  %353 = trunc i64 %352 to i32
  store i32 %353, ptr %27, align 4, !tbaa !122
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  store double 1.000000e+00, ptr %28, align 8, !tbaa !121
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  store i32 0, ptr %29, align 4, !tbaa !122
  br label %354

354:                                              ; preds = %388, %344
  %355 = load i32, ptr %29, align 4, !tbaa !122
  %356 = load i32, ptr %26, align 4, !tbaa !122
  %357 = icmp slt i32 %355, %356
  br i1 %357, label %367, label %358

358:                                              ; preds = %354
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %404

359:                                              ; preds = %333
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %14, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %15, align 4
  br label %944

363:                                              ; preds = %343
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %14, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %15, align 4
  br label %943

367:                                              ; preds = %354
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %368 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 45
  %369 = load i32, ptr %29, align 4, !tbaa !122
  %370 = sext i32 %369 to i64
  %371 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %368, i64 noundef %370) #9
  %372 = load i32, ptr %371, align 4, !tbaa !122
  store i32 %372, ptr %30, align 4, !tbaa !122
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %373 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 42
  %374 = load i32, ptr %30, align 4, !tbaa !122
  %375 = sext i32 %374 to i64
  %376 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %373, i64 noundef %375) #9
  %377 = load double, ptr %376, align 8, !tbaa !121
  store double %377, ptr %31, align 8, !tbaa !121
  invoke void @_ZN17HighsSparseMatrix6addVecEiPKiPKdd(ptr noundef nonnull align 8 dereferenceable(112) %25, i32 noundef 1, ptr noundef %30, ptr noundef %28, double noundef 1.000000e+00)
          to label %378 unwind label %391

378:                                              ; preds = %367
  %379 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %380 = getelementptr inbounds %class.HighsLp, ptr %379, i32 0, i32 2
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %380, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %381 unwind label %391

381:                                              ; preds = %378
  %382 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %383 = getelementptr inbounds %class.HighsLp, ptr %382, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  store double 0xFFF0000000000000, ptr %32, align 8, !tbaa !121
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %383, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %384 unwind label %395

384:                                              ; preds = %381
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  %385 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %386 = getelementptr inbounds %class.HighsLp, ptr %385, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  store double 0.000000e+00, ptr %33, align 8, !tbaa !121
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %386, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %387 unwind label %399

387:                                              ; preds = %384
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %388

388:                                              ; preds = %387
  %389 = load i32, ptr %29, align 4, !tbaa !122
  %390 = add nsw i32 %389, 1
  store i32 %390, ptr %29, align 4, !tbaa !122
  br label %354, !llvm.loop !126

391:                                              ; preds = %378, %367
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %14, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %15, align 4
  br label %403

395:                                              ; preds = %381
  %396 = landingpad { ptr, i32 }
          cleanup
  %397 = extractvalue { ptr, i32 } %396, 0
  store ptr %397, ptr %14, align 8
  %398 = extractvalue { ptr, i32 } %396, 1
  store i32 %398, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  br label %403

399:                                              ; preds = %384
  %400 = landingpad { ptr, i32 }
          cleanup
  %401 = extractvalue { ptr, i32 } %400, 0
  store ptr %401, ptr %14, align 8
  %402 = extractvalue { ptr, i32 } %400, 1
  store i32 %402, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  br label %403

403:                                              ; preds = %399, %395, %391
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %942

404:                                              ; preds = %358
  %405 = load i32, ptr %27, align 4, !tbaa !122
  %406 = icmp ne i32 %405, 0
  br i1 %406, label %407, label %644

407:                                              ; preds = %404
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %408 = load i32, ptr %27, align 4, !tbaa !122
  store i32 %408, ptr %34, align 4, !tbaa !122
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #9
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %36) #9
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #9
  %409 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 37
  %410 = load i32, ptr %409, align 4, !tbaa !114
  %411 = sext i32 %410 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6assignEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %411, ptr noundef nonnull align 4 dereferenceable(4) %34)
          to label %412 unwind label %422

412:                                              ; preds = %407
  %413 = load i32, ptr %27, align 4, !tbaa !122
  %414 = add nsw i32 %413, 1
  %415 = sext i32 %414 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  store i32 0, ptr %37, align 4, !tbaa !122
  invoke void @_ZNSt6vectorIiSaIiEE6assignEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %415, ptr noundef nonnull align 4 dereferenceable(4) %37)
          to label %416 unwind label %426

416:                                              ; preds = %412
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  store i32 0, ptr %38, align 4, !tbaa !122
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  store i32 0, ptr %39, align 4, !tbaa !122
  br label %417

417:                                              ; preds = %455, %416
  %418 = load i32, ptr %39, align 4, !tbaa !122
  %419 = load i32, ptr %27, align 4, !tbaa !122
  %420 = icmp slt i32 %418, %419
  br i1 %420, label %430, label %421

421:                                              ; preds = %417
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %471

422:                                              ; preds = %407
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %14, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %15, align 4
  br label %643

426:                                              ; preds = %412
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %14, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %643

430:                                              ; preds = %417
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  %431 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 46
  %432 = load i32, ptr %39, align 4, !tbaa !122
  %433 = sext i32 %432 to i64
  %434 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %431, i64 noundef %433) #9
  %435 = load i32, ptr %434, align 4, !tbaa !122
  store i32 %435, ptr %40, align 4, !tbaa !122
  %436 = load i32, ptr %38, align 4, !tbaa !122
  %437 = add nsw i32 %436, 1
  store i32 %437, ptr %38, align 4, !tbaa !122
  %438 = load i32, ptr %40, align 4, !tbaa !122
  %439 = sext i32 %438 to i64
  %440 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %439) #9
  store i32 %436, ptr %440, align 4, !tbaa !122
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  %441 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 44
  %442 = load i32, ptr %40, align 4, !tbaa !122
  %443 = sext i32 %442 to i64
  %444 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %441, i64 noundef %443) #9
  %445 = load double, ptr %444, align 8, !tbaa !121
  store double %445, ptr %41, align 8, !tbaa !121
  %446 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %447 = getelementptr inbounds %class.HighsLp, ptr %446, i32 0, i32 2
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %447, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %448 unwind label %458

448:                                              ; preds = %430
  %449 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %450 = getelementptr inbounds %class.HighsLp, ptr %449, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  store double 0xFFF0000000000000, ptr %42, align 8, !tbaa !121
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %450, ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %451 unwind label %462

451:                                              ; preds = %448
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  %452 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %453 = getelementptr inbounds %class.HighsLp, ptr %452, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  store double 0.000000e+00, ptr %43, align 8, !tbaa !121
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %453, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %454 unwind label %466

454:                                              ; preds = %451
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %455

455:                                              ; preds = %454
  %456 = load i32, ptr %39, align 4, !tbaa !122
  %457 = add nsw i32 %456, 1
  store i32 %457, ptr %39, align 4, !tbaa !122
  br label %417, !llvm.loop !127

458:                                              ; preds = %430
  %459 = landingpad { ptr, i32 }
          cleanup
  %460 = extractvalue { ptr, i32 } %459, 0
  store ptr %460, ptr %14, align 8
  %461 = extractvalue { ptr, i32 } %459, 1
  store i32 %461, ptr %15, align 4
  br label %470

462:                                              ; preds = %448
  %463 = landingpad { ptr, i32 }
          cleanup
  %464 = extractvalue { ptr, i32 } %463, 0
  store ptr %464, ptr %14, align 8
  %465 = extractvalue { ptr, i32 } %463, 1
  store i32 %465, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  br label %470

466:                                              ; preds = %451
  %467 = landingpad { ptr, i32 }
          cleanup
  %468 = extractvalue { ptr, i32 } %467, 0
  store ptr %468, ptr %14, align 8
  %469 = extractvalue { ptr, i32 } %467, 1
  store i32 %469, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  br label %470

470:                                              ; preds = %466, %462, %458
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %642

471:                                              ; preds = %421
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  store i32 0, ptr %44, align 4, !tbaa !122
  br label %472

472:                                              ; preds = %491, %471
  %473 = load i32, ptr %44, align 4, !tbaa !122
  %474 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 38
  %475 = load i32, ptr %474, align 8, !tbaa !115
  %476 = icmp slt i32 %473, %475
  br i1 %476, label %478, label %477

477:                                              ; preds = %472
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %494

478:                                              ; preds = %472
  %479 = load ptr, ptr %23, align 8, !tbaa !5
  %480 = load i32, ptr %44, align 4, !tbaa !122
  %481 = sext i32 %480 to i64
  %482 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %479, i64 noundef %481) #9
  %483 = load i32, ptr %482, align 4, !tbaa !122
  %484 = sext i32 %483 to i64
  %485 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %484) #9
  %486 = load i32, ptr %485, align 4, !tbaa !122
  %487 = sext i32 %486 to i64
  %488 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %487) #9
  %489 = load i32, ptr %488, align 4, !tbaa !122
  %490 = add nsw i32 %489, 1
  store i32 %490, ptr %488, align 4, !tbaa !122
  br label %491

491:                                              ; preds = %478
  %492 = load i32, ptr %44, align 4, !tbaa !122
  %493 = add nsw i32 %492, 1
  store i32 %493, ptr %44, align 4, !tbaa !122
  br label %472, !llvm.loop !128

494:                                              ; preds = %477
  %495 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 3
  %496 = load i32, ptr %26, align 4, !tbaa !122
  %497 = load i32, ptr %27, align 4, !tbaa !122
  %498 = add nsw i32 %496, %497
  %499 = add nsw i32 %498, 1
  %500 = sext i32 %499 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %495, i64 noundef %500)
          to label %501 unwind label %507

501:                                              ; preds = %494
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  store i32 0, ptr %45, align 4, !tbaa !122
  br label %502

502:                                              ; preds = %541, %501
  %503 = load i32, ptr %45, align 4, !tbaa !122
  %504 = load i32, ptr %27, align 4, !tbaa !122
  %505 = icmp slt i32 %503, %504
  br i1 %505, label %511, label %506

506:                                              ; preds = %502
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %544

507:                                              ; preds = %494
  %508 = landingpad { ptr, i32 }
          cleanup
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %14, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %15, align 4
  br label %642

511:                                              ; preds = %502
  %512 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 3
  %513 = load i32, ptr %26, align 4, !tbaa !122
  %514 = load i32, ptr %45, align 4, !tbaa !122
  %515 = add nsw i32 %513, %514
  %516 = sext i32 %515 to i64
  %517 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %512, i64 noundef %516) #9
  %518 = load i32, ptr %517, align 4, !tbaa !122
  %519 = load i32, ptr %45, align 4, !tbaa !122
  %520 = sext i32 %519 to i64
  %521 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %520) #9
  %522 = load i32, ptr %521, align 4, !tbaa !122
  %523 = add nsw i32 %518, %522
  %524 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 3
  %525 = load i32, ptr %26, align 4, !tbaa !122
  %526 = load i32, ptr %45, align 4, !tbaa !122
  %527 = add nsw i32 %525, %526
  %528 = add nsw i32 %527, 1
  %529 = sext i32 %528 to i64
  %530 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %524, i64 noundef %529) #9
  store i32 %523, ptr %530, align 4, !tbaa !122
  %531 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 3
  %532 = load i32, ptr %26, align 4, !tbaa !122
  %533 = load i32, ptr %45, align 4, !tbaa !122
  %534 = add nsw i32 %532, %533
  %535 = sext i32 %534 to i64
  %536 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %531, i64 noundef %535) #9
  %537 = load i32, ptr %536, align 4, !tbaa !122
  %538 = load i32, ptr %45, align 4, !tbaa !122
  %539 = sext i32 %538 to i64
  %540 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %539) #9
  store i32 %537, ptr %540, align 4, !tbaa !122
  br label %541

541:                                              ; preds = %511
  %542 = load i32, ptr %45, align 4, !tbaa !122
  %543 = add nsw i32 %542, 1
  store i32 %543, ptr %45, align 4, !tbaa !122
  br label %502, !llvm.loop !129

544:                                              ; preds = %506
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  %545 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 3
  %546 = load i32, ptr %26, align 4, !tbaa !122
  %547 = load i32, ptr %27, align 4, !tbaa !122
  %548 = add nsw i32 %546, %547
  %549 = sext i32 %548 to i64
  %550 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %545, i64 noundef %549) #9
  %551 = load i32, ptr %550, align 4, !tbaa !122
  store i32 %551, ptr %46, align 4, !tbaa !122
  %552 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 5
  %553 = load i32, ptr %46, align 4, !tbaa !122
  %554 = sext i32 %553 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %552, i64 noundef %554)
          to label %555 unwind label %566

555:                                              ; preds = %544
  %556 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 6
  %557 = load i32, ptr %46, align 4, !tbaa !122
  %558 = sext i32 %557 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %556, i64 noundef %558)
          to label %559 unwind label %566

559:                                              ; preds = %555
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  store i32 0, ptr %47, align 4, !tbaa !122
  br label %560

560:                                              ; preds = %634, %559
  %561 = load i32, ptr %47, align 4, !tbaa !122
  %562 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 36
  %563 = load i32, ptr %562, align 8, !tbaa !112
  %564 = icmp slt i32 %561, %563
  br i1 %564, label %570, label %565

565:                                              ; preds = %560
  store i32 20, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %637

566:                                              ; preds = %555, %544
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %14, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %642

570:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  %571 = load ptr, ptr %22, align 8, !tbaa !5
  %572 = load i32, ptr %47, align 4, !tbaa !122
  %573 = sext i32 %572 to i64
  %574 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %571, i64 noundef %573) #9
  %575 = load i32, ptr %574, align 4, !tbaa !122
  store i32 %575, ptr %49, align 4, !tbaa !122
  br label %576

576:                                              ; preds = %630, %570
  %577 = load i32, ptr %49, align 4, !tbaa !122
  %578 = load ptr, ptr %22, align 8, !tbaa !5
  %579 = load i32, ptr %47, align 4, !tbaa !122
  %580 = add nsw i32 %579, 1
  %581 = sext i32 %580 to i64
  %582 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %578, i64 noundef %581) #9
  %583 = load i32, ptr %582, align 4, !tbaa !122
  %584 = icmp slt i32 %577, %583
  br i1 %584, label %586, label %585

585:                                              ; preds = %576
  store i32 23, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  br label %633

586:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  %587 = load ptr, ptr %23, align 8, !tbaa !5
  %588 = load i32, ptr %49, align 4, !tbaa !122
  %589 = sext i32 %588 to i64
  %590 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %587, i64 noundef %589) #9
  %591 = load i32, ptr %590, align 4, !tbaa !122
  %592 = sext i32 %591 to i64
  %593 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %592) #9
  %594 = load i32, ptr %593, align 4, !tbaa !122
  store i32 %594, ptr %50, align 4, !tbaa !122
  %595 = load i32, ptr %50, align 4, !tbaa !122
  %596 = load i32, ptr %27, align 4, !tbaa !122
  %597 = icmp slt i32 %595, %596
  br i1 %597, label %598, label %629

598:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  %599 = load i32, ptr %50, align 4, !tbaa !122
  %600 = sext i32 %599 to i64
  %601 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %600) #9
  %602 = load i32, ptr %601, align 4, !tbaa !122
  store i32 %602, ptr %51, align 4, !tbaa !122
  %603 = load i32, ptr %51, align 4, !tbaa !122
  %604 = load i32, ptr %46, align 4, !tbaa !122
  %605 = icmp slt i32 %603, %604
  br i1 %605, label %606, label %607

606:                                              ; preds = %598
  br label %609

607:                                              ; preds = %598
  call void @__assert_fail(ptr noundef @.str.64, ptr noundef @.str.52, i32 noundef 655, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

608:                                              ; No predecessors!
  br label %609

609:                                              ; preds = %608, %606
  %610 = load i32, ptr %47, align 4, !tbaa !122
  %611 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 5
  %612 = load i32, ptr %51, align 4, !tbaa !122
  %613 = sext i32 %612 to i64
  %614 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %611, i64 noundef %613) #9
  store i32 %610, ptr %614, align 4, !tbaa !122
  %615 = load ptr, ptr %24, align 8, !tbaa !5
  %616 = load i32, ptr %49, align 4, !tbaa !122
  %617 = sext i32 %616 to i64
  %618 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %615, i64 noundef %617) #9
  %619 = load double, ptr %618, align 8, !tbaa !121
  %620 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 6
  %621 = load i32, ptr %51, align 4, !tbaa !122
  %622 = sext i32 %621 to i64
  %623 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %620, i64 noundef %622) #9
  store double %619, ptr %623, align 8, !tbaa !121
  %624 = load i32, ptr %50, align 4, !tbaa !122
  %625 = sext i32 %624 to i64
  %626 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %625) #9
  %627 = load i32, ptr %626, align 4, !tbaa !122
  %628 = add nsw i32 %627, 1
  store i32 %628, ptr %626, align 4, !tbaa !122
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %629

629:                                              ; preds = %609, %586
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %630

630:                                              ; preds = %629
  %631 = load i32, ptr %49, align 4, !tbaa !122
  %632 = add nsw i32 %631, 1
  store i32 %632, ptr %49, align 4, !tbaa !122
  br label %576, !llvm.loop !130

633:                                              ; preds = %585
  br label %634

634:                                              ; preds = %633
  %635 = load i32, ptr %47, align 4, !tbaa !122
  %636 = add nsw i32 %635, 1
  store i32 %636, ptr %47, align 4, !tbaa !122
  br label %560, !llvm.loop !131

637:                                              ; preds = %565
  %638 = load i32, ptr %27, align 4, !tbaa !122
  %639 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 1
  %640 = load i32, ptr %639, align 4, !tbaa !119
  %641 = add nsw i32 %640, %638
  store i32 %641, ptr %639, align 4, !tbaa !119
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %644

642:                                              ; preds = %566, %507, %470
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %643

643:                                              ; preds = %642, %426, %422
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %942

644:                                              ; preds = %637, %404
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  store double 0.000000e+00, ptr %52, align 8, !tbaa !121
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  store i64 0, ptr %53, align 8, !tbaa !132
  br label %645

645:                                              ; preds = %703, %644
  %646 = load i64, ptr %53, align 8, !tbaa !132
  %647 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #9
  %648 = icmp ult i64 %646, %647
  br i1 %648, label %650, label %649

649:                                              ; preds = %645
  store i32 26, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  br label %706

650:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %651 = load i64, ptr %53, align 8, !tbaa !132
  %652 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %651) #9
  %653 = load i32, ptr %652, align 4, !tbaa !122
  store i32 %653, ptr %54, align 4, !tbaa !122
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #9
  %654 = load i64, ptr %53, align 8, !tbaa !132
  %655 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %654) #9
  %656 = load double, ptr %655, align 8, !tbaa !121
  store double %656, ptr %55, align 8, !tbaa !121
  %657 = load double, ptr %55, align 8, !tbaa !121
  %658 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 40
  %659 = load i32, ptr %54, align 4, !tbaa !122
  %660 = sext i32 %659 to i64
  %661 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %658, i64 noundef %660) #9
  %662 = load double, ptr %661, align 8, !tbaa !121
  %663 = load double, ptr %52, align 8, !tbaa !121
  %664 = call double @llvm.fmuladd.f64(double %657, double %662, double %663)
  store double %664, ptr %52, align 8, !tbaa !121
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  %665 = load ptr, ptr %22, align 8, !tbaa !5
  %666 = load i32, ptr %54, align 4, !tbaa !122
  %667 = sext i32 %666 to i64
  %668 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %665, i64 noundef %667) #9
  %669 = load i32, ptr %668, align 4, !tbaa !122
  store i32 %669, ptr %56, align 4, !tbaa !122
  br label %670

670:                                              ; preds = %699, %650
  %671 = load i32, ptr %56, align 4, !tbaa !122
  %672 = load ptr, ptr %22, align 8, !tbaa !5
  %673 = load i32, ptr %54, align 4, !tbaa !122
  %674 = add nsw i32 %673, 1
  %675 = sext i32 %674 to i64
  %676 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %672, i64 noundef %675) #9
  %677 = load i32, ptr %676, align 4, !tbaa !122
  %678 = icmp slt i32 %671, %677
  br i1 %678, label %680, label %679

679:                                              ; preds = %670
  store i32 29, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %702

680:                                              ; preds = %670
  %681 = load double, ptr %55, align 8, !tbaa !121
  %682 = load ptr, ptr %24, align 8, !tbaa !5
  %683 = load i32, ptr %56, align 4, !tbaa !122
  %684 = sext i32 %683 to i64
  %685 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %682, i64 noundef %684) #9
  %686 = load double, ptr %685, align 8, !tbaa !121
  %687 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %688 = getelementptr inbounds %class.HighsLp, ptr %687, i32 0, i32 2
  %689 = load ptr, ptr %23, align 8, !tbaa !5
  %690 = load i32, ptr %56, align 4, !tbaa !122
  %691 = sext i32 %690 to i64
  %692 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %689, i64 noundef %691) #9
  %693 = load i32, ptr %692, align 4, !tbaa !122
  %694 = sext i32 %693 to i64
  %695 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %688, i64 noundef %694) #9
  %696 = load double, ptr %695, align 8, !tbaa !121
  %697 = fneg double %681
  %698 = call double @llvm.fmuladd.f64(double %697, double %686, double %696)
  store double %698, ptr %695, align 8, !tbaa !121
  br label %699

699:                                              ; preds = %680
  %700 = load i32, ptr %56, align 4, !tbaa !122
  %701 = add nsw i32 %700, 1
  store i32 %701, ptr %56, align 4, !tbaa !122
  br label %670, !llvm.loop !133

702:                                              ; preds = %679
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %703

703:                                              ; preds = %702
  %704 = load i64, ptr %53, align 8, !tbaa !132
  %705 = add i64 %704, 1
  store i64 %705, ptr %53, align 8, !tbaa !132
  br label %645, !llvm.loop !134

706:                                              ; preds = %649
  %707 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 1
  %708 = load i32, ptr %707, align 4, !tbaa !119
  %709 = icmp ne i32 %708, 0
  br i1 %709, label %710, label %802

710:                                              ; preds = %706
  call void @llvm.lifetime.start.p0(i64 24, ptr %57) #9
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #9
  %711 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 36
  %712 = load i32, ptr %711, align 8, !tbaa !112
  %713 = sext i32 %712 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #9
  store double 0.000000e+00, ptr %58, align 8, !tbaa !121
  invoke void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %713, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %714 unwind label %720

714:                                              ; preds = %710
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #9
  store i64 0, ptr %59, align 8, !tbaa !132
  br label %715

715:                                              ; preds = %733, %714
  %716 = load i64, ptr %59, align 8, !tbaa !132
  %717 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #9
  %718 = icmp ult i64 %716, %717
  br i1 %718, label %724, label %719

719:                                              ; preds = %715
  store i32 32, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  br label %736

720:                                              ; preds = %710
  %721 = landingpad { ptr, i32 }
          cleanup
  %722 = extractvalue { ptr, i32 } %721, 0
  store ptr %722, ptr %14, align 8
  %723 = extractvalue { ptr, i32 } %721, 1
  store i32 %723, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %57) #9
  br label %941

724:                                              ; preds = %715
  %725 = load i64, ptr %59, align 8, !tbaa !132
  %726 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %725) #9
  %727 = load double, ptr %726, align 8, !tbaa !121
  %728 = load i64, ptr %59, align 8, !tbaa !132
  %729 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %728) #9
  %730 = load i32, ptr %729, align 4, !tbaa !122
  %731 = sext i32 %730 to i64
  %732 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %731) #9
  store double %727, ptr %732, align 8, !tbaa !121
  br label %733

733:                                              ; preds = %724
  %734 = load i64, ptr %59, align 8, !tbaa !132
  %735 = add i64 %734, 1
  store i64 %735, ptr %59, align 8, !tbaa !132
  br label %715, !llvm.loop !135

736:                                              ; preds = %719
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  store i32 0, ptr %60, align 4, !tbaa !122
  br label %737

737:                                              ; preds = %798, %736
  %738 = load i32, ptr %60, align 4, !tbaa !122
  %739 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 1
  %740 = load i32, ptr %739, align 4, !tbaa !119
  %741 = icmp slt i32 %738, %740
  br i1 %741, label %743, label %742

742:                                              ; preds = %737
  store i32 35, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %801

743:                                              ; preds = %737
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #9
  %744 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %745 = getelementptr inbounds %class.HighsLp, ptr %744, i32 0, i32 2
  %746 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 37
  %747 = load i32, ptr %746, align 4, !tbaa !114
  %748 = load i32, ptr %60, align 4, !tbaa !122
  %749 = add nsw i32 %747, %748
  %750 = sext i32 %749 to i64
  %751 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %745, i64 noundef %750) #9
  %752 = load double, ptr %751, align 8, !tbaa !121
  store double %752, ptr %61, align 8, !tbaa !121
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %753 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 3
  %754 = load i32, ptr %60, align 4, !tbaa !122
  %755 = sext i32 %754 to i64
  %756 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %753, i64 noundef %755) #9
  %757 = load i32, ptr %756, align 4, !tbaa !122
  store i32 %757, ptr %62, align 4, !tbaa !122
  br label %758

758:                                              ; preds = %785, %743
  %759 = load i32, ptr %62, align 4, !tbaa !122
  %760 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 3
  %761 = load i32, ptr %60, align 4, !tbaa !122
  %762 = add nsw i32 %761, 1
  %763 = sext i32 %762 to i64
  %764 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %760, i64 noundef %763) #9
  %765 = load i32, ptr %764, align 4, !tbaa !122
  %766 = icmp slt i32 %759, %765
  br i1 %766, label %768, label %767

767:                                              ; preds = %758
  store i32 38, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %788

768:                                              ; preds = %758
  %769 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 5
  %770 = load i32, ptr %62, align 4, !tbaa !122
  %771 = sext i32 %770 to i64
  %772 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %769, i64 noundef %771) #9
  %773 = load i32, ptr %772, align 4, !tbaa !122
  %774 = sext i32 %773 to i64
  %775 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %774) #9
  %776 = load double, ptr %775, align 8, !tbaa !121
  %777 = getelementptr inbounds %class.HighsSparseMatrix, ptr %25, i32 0, i32 6
  %778 = load i32, ptr %62, align 4, !tbaa !122
  %779 = sext i32 %778 to i64
  %780 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %777, i64 noundef %779) #9
  %781 = load double, ptr %780, align 8, !tbaa !121
  %782 = load double, ptr %61, align 8, !tbaa !121
  %783 = fneg double %776
  %784 = call double @llvm.fmuladd.f64(double %783, double %781, double %782)
  store double %784, ptr %61, align 8, !tbaa !121
  br label %785

785:                                              ; preds = %768
  %786 = load i32, ptr %62, align 4, !tbaa !122
  %787 = add nsw i32 %786, 1
  store i32 %787, ptr %62, align 4, !tbaa !122
  br label %758, !llvm.loop !136

788:                                              ; preds = %767
  %789 = load double, ptr %61, align 8, !tbaa !121
  %790 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %791 = getelementptr inbounds %class.HighsLp, ptr %790, i32 0, i32 2
  %792 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 37
  %793 = load i32, ptr %792, align 4, !tbaa !114
  %794 = load i32, ptr %60, align 4, !tbaa !122
  %795 = add nsw i32 %793, %794
  %796 = sext i32 %795 to i64
  %797 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %791, i64 noundef %796) #9
  store double %789, ptr %797, align 8, !tbaa !121
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  br label %798

798:                                              ; preds = %788
  %799 = load i32, ptr %60, align 4, !tbaa !122
  %800 = add nsw i32 %799, 1
  store i32 %800, ptr %60, align 4, !tbaa !122
  br label %737, !llvm.loop !137

801:                                              ; preds = %742
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %57) #9
  br label %802

802:                                              ; preds = %801, %706
  %803 = load double, ptr %52, align 8, !tbaa !121
  %804 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %805 = getelementptr inbounds %class.HighsLp, ptr %804, i32 0, i32 9
  %806 = load double, ptr %805, align 8, !tbaa !116
  %807 = fadd double %806, %803
  store double %807, ptr %805, align 8, !tbaa !116
  %808 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %809 = getelementptr inbounds %class.HighsLp, ptr %808, i32 0, i32 7
  %810 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZN17HighsSparseMatrixaSERKS_(ptr noundef nonnull align 8 dereferenceable(112) %809, ptr noundef nonnull align 8 dereferenceable(112) %3)
          to label %811 unwind label %835

811:                                              ; preds = %802
  %812 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %813 = getelementptr inbounds %class.HighsLp, ptr %812, i32 0, i32 7
  invoke void @_ZN17HighsSparseMatrix13ensureColwiseEv(ptr noundef nonnull align 8 dereferenceable(112) %813)
          to label %814 unwind label %835

814:                                              ; preds = %811
  %815 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %816 = getelementptr inbounds %class.HighsLp, ptr %815, i32 0, i32 7
  invoke void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112) %63, ptr noundef nonnull align 8 dereferenceable(112) %25)
          to label %817 unwind label %835

817:                                              ; preds = %814
  invoke void @_ZN17HighsSparseMatrix7addColsES_PKa(ptr noundef nonnull align 8 dereferenceable(112) %816, ptr noundef %63, ptr noundef null)
          to label %818 unwind label %839

818:                                              ; preds = %817
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %63) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  %819 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 37
  %820 = load i32, ptr %819, align 4, !tbaa !114
  %821 = load i32, ptr %26, align 4, !tbaa !122
  %822 = add nsw i32 %820, %821
  %823 = load i32, ptr %27, align 4, !tbaa !122
  %824 = add nsw i32 %822, %823
  store i32 %824, ptr %64, align 4, !tbaa !122
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %825 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 36
  %826 = load i32, ptr %825, align 8, !tbaa !112
  store i32 %826, ptr %65, align 4, !tbaa !122
  %827 = load i32, ptr %64, align 4, !tbaa !122
  %828 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %829 = getelementptr inbounds %class.HighsLp, ptr %828, i32 0, i32 2
  %830 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %829) #9
  %831 = trunc i64 %830 to i32
  %832 = icmp eq i32 %827, %831
  br i1 %832, label %833, label %834

833:                                              ; preds = %818
  br label %844

834:                                              ; preds = %818
  call void @__assert_fail(ptr noundef @.str.65, ptr noundef @.str.52, i32 noundef 708, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

835:                                              ; preds = %814, %811, %802
  %836 = landingpad { ptr, i32 }
          cleanup
  %837 = extractvalue { ptr, i32 } %836, 0
  store ptr %837, ptr %14, align 8
  %838 = extractvalue { ptr, i32 } %836, 1
  store i32 %838, ptr %15, align 4
  br label %941

839:                                              ; preds = %817
  %840 = landingpad { ptr, i32 }
          cleanup
  %841 = extractvalue { ptr, i32 } %840, 0
  store ptr %841, ptr %14, align 8
  %842 = extractvalue { ptr, i32 } %840, 1
  store i32 %842, ptr %15, align 4
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %63) #9
  br label %941

843:                                              ; No predecessors!
  br label %844

844:                                              ; preds = %843, %833
  %845 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %846 = getelementptr inbounds %class.HighsLp, ptr %845, i32 0, i32 7
  %847 = getelementptr inbounds %class.HighsSparseMatrix, ptr %846, i32 0, i32 1
  %848 = load i32, ptr %847, align 4, !tbaa !138
  %849 = load i32, ptr %64, align 4, !tbaa !122
  %850 = icmp eq i32 %848, %849
  br i1 %850, label %851, label %852

851:                                              ; preds = %844
  br label %854

852:                                              ; preds = %844
  call void @__assert_fail(ptr noundef @.str.66, ptr noundef @.str.52, i32 noundef 709, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

853:                                              ; No predecessors!
  br label %854

854:                                              ; preds = %853, %851
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #9
  store i8 1, ptr %66, align 1, !tbaa !139
  %855 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %856 = getelementptr inbounds %class.HighsLp, ptr %855, i32 0, i32 8
  %857 = load i32, ptr %856, align 8, !tbaa !140
  %858 = icmp eq i32 %857, 1
  br i1 %858, label %859, label %862

859:                                              ; preds = %854
  %860 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %861 = getelementptr inbounds %class.HighsLp, ptr %860, i32 0, i32 8
  store i32 -1, ptr %861, align 8, !tbaa !140
  br label %865

862:                                              ; preds = %854
  %863 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %864 = getelementptr inbounds %class.HighsLp, ptr %863, i32 0, i32 8
  store i32 1, ptr %864, align 8, !tbaa !140
  br label %865

865:                                              ; preds = %862, %859
  %866 = load i32, ptr %64, align 4, !tbaa !122
  %867 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %868 = getelementptr inbounds %class.HighsLp, ptr %867, i32 0, i32 0
  store i32 %866, ptr %868, align 8, !tbaa !9
  %869 = load i32, ptr %65, align 4, !tbaa !122
  %870 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 4
  %871 = getelementptr inbounds %class.HighsLp, ptr %870, i32 0, i32 1
  store i32 %869, ptr %871, align 4, !tbaa !113
  %872 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 6
  %873 = getelementptr inbounds %struct.HighsSimplexStatus, ptr %872, i32 0, i32 1
  store i8 1, ptr %873, align 1, !tbaa !141
  %874 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 6
  %875 = getelementptr inbounds %struct.HighsSimplexStatus, ptr %874, i32 0, i32 4
  store i8 0, ptr %875, align 4, !tbaa !142
  %876 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 6
  %877 = getelementptr inbounds %struct.HighsSimplexStatus, ptr %876, i32 0, i32 5
  store i8 0, ptr %877, align 1, !tbaa !143
  %878 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 6
  %879 = getelementptr inbounds %struct.HighsSimplexStatus, ptr %878, i32 0, i32 6
  store i8 0, ptr %879, align 2, !tbaa !144
  %880 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 1
  %881 = load ptr, ptr %880, align 8, !tbaa !145
  %882 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %881, i32 0, i32 130
  %883 = load i32, ptr %64, align 4, !tbaa !122
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %882, i32 noundef 1, ptr noundef @.str.67, i32 noundef %883)
          to label %884 unwind label %906

884:                                              ; preds = %865
  %885 = load i32, ptr %26, align 4, !tbaa !122
  %886 = load i32, ptr %27, align 4, !tbaa !122
  %887 = add nsw i32 %885, %886
  %888 = icmp ne i32 %887, 0
  br i1 %888, label %889, label %935

889:                                              ; preds = %884
  %890 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 1
  %891 = load ptr, ptr %890, align 8, !tbaa !145
  %892 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %891, i32 0, i32 130
  %893 = load i32, ptr %64, align 4, !tbaa !122
  %894 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 37
  %895 = load i32, ptr %894, align 4, !tbaa !114
  %896 = sub nsw i32 %893, %895
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %892, i32 noundef 1, ptr noundef @.str.68, i32 noundef %896)
          to label %897 unwind label %906

897:                                              ; preds = %889
  %898 = load i32, ptr %26, align 4, !tbaa !122
  %899 = icmp ne i32 %898, 0
  br i1 %899, label %900, label %910

900:                                              ; preds = %897
  %901 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 1
  %902 = load ptr, ptr %901, align 8, !tbaa !145
  %903 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %902, i32 0, i32 130
  %904 = load i32, ptr %26, align 4, !tbaa !122
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %903, i32 noundef 1, ptr noundef @.str.69, i32 noundef %904)
          to label %905 unwind label %906

905:                                              ; preds = %900
  br label %910

906:                                              ; preds = %935, %930, %924, %916, %900, %889, %865
  %907 = landingpad { ptr, i32 }
          cleanup
  %908 = extractvalue { ptr, i32 } %907, 0
  store ptr %908, ptr %14, align 8
  %909 = extractvalue { ptr, i32 } %907, 1
  store i32 %909, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %941

910:                                              ; preds = %905, %897
  %911 = load i32, ptr %26, align 4, !tbaa !122
  %912 = icmp ne i32 %911, 0
  br i1 %912, label %913, label %921

913:                                              ; preds = %910
  %914 = load i32, ptr %27, align 4, !tbaa !122
  %915 = icmp ne i32 %914, 0
  br i1 %915, label %916, label %921

916:                                              ; preds = %913
  %917 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 1
  %918 = load ptr, ptr %917, align 8, !tbaa !145
  %919 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %918, i32 0, i32 130
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %919, i32 noundef 1, ptr noundef @.str.70)
          to label %920 unwind label %906

920:                                              ; preds = %916
  br label %921

921:                                              ; preds = %920, %913, %910
  %922 = load i32, ptr %27, align 4, !tbaa !122
  %923 = icmp ne i32 %922, 0
  br i1 %923, label %924, label %930

924:                                              ; preds = %921
  %925 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 1
  %926 = load ptr, ptr %925, align 8, !tbaa !145
  %927 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %926, i32 0, i32 130
  %928 = load i32, ptr %27, align 4, !tbaa !122
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %927, i32 noundef 1, ptr noundef @.str.71, i32 noundef %928)
          to label %929 unwind label %906

929:                                              ; preds = %924
  br label %930

930:                                              ; preds = %929, %921
  %931 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 1
  %932 = load ptr, ptr %931, align 8, !tbaa !145
  %933 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %932, i32 0, i32 130
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %933, i32 noundef 1, ptr noundef @.str.72)
          to label %934 unwind label %906

934:                                              ; preds = %930
  br label %935

935:                                              ; preds = %934, %884
  %936 = getelementptr inbounds %class.HEkk, ptr %67, i32 0, i32 1
  %937 = load ptr, ptr %936, align 8, !tbaa !145
  %938 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %937, i32 0, i32 130
  %939 = load i32, ptr %65, align 4, !tbaa !122
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %938, i32 noundef 1, ptr noundef @.str.73, i32 noundef %939)
          to label %940 unwind label %906

940:                                              ; preds = %935
  store i32 1, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %25) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %5) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %4) #9
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %3) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %3) #9
  ret i32 0

941:                                              ; preds = %906, %839, %835, %720
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  br label %942

942:                                              ; preds = %941, %643, %403
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %943

943:                                              ; preds = %942, %363
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %25) #9
  br label %944

944:                                              ; preds = %943, %359
  call void @llvm.lifetime.end.p0(i64 112, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  br label %945

945:                                              ; preds = %944, %286, %196
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %5) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %4) #9
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %3) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %3) #9
  br label %946

946:                                              ; preds = %945
  %947 = load ptr, ptr %14, align 8
  %948 = load i32, ptr %15, align 4
  %949 = insertvalue { ptr, i32 } poison, ptr %947, 0
  %950 = insertvalue { ptr, i32 } %949, i32 %948, 1
  resume { ptr, i32 } %950
}

declare noundef zeroext i1 @_ZNK17HighsSparseMatrix9isColwiseEv(ptr noundef nonnull align 8 dereferenceable(112)) #4

declare noundef i32 @_ZNK17HighsSparseMatrix5numNzEv(ptr noundef nonnull align 8 dereferenceable(112)) #4

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE7reserveEm(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: inlinehint mustprogress uwtable
declare dso_local void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 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) #5 align 2

declare noundef zeroext i1 @_Z16highs_isInfinityd(double noundef) #4

; 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 @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN17HighsSparseMatrixC2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #3 align 2

declare void @_ZN17HighsSparseMatrix13ensureColwiseEv(ptr noundef nonnull align 8 dereferenceable(112)) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #5 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) #5 align 2

declare void @_ZN17HighsSparseMatrix6addVecEiPKiPKdd(ptr noundef nonnull align 8 dereferenceable(112), i32 noundef, ptr noundef, ptr noundef, double noundef) #4

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE6assignEmRKi(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 4 dereferenceable(4)) #3 align 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 nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 align 2

declare void @_ZN17HighsSparseMatrix7addColsES_PKa(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef, ptr noundef) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #7 align 2

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #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 = { "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 = { 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 #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { 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 #8 = { noreturn nounwind }
attributes #9 = { 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, !16, i64 8600}
!10 = !{!"_ZTS4HEkk", !6, i64 0, !6, i64 8, !6, i64 16, !11, i64 24, !45, i64 8600, !17, i64 9520, !65, i64 9552, !66, i64 9568, !72, i64 10608, !67, i64 10616, !73, i64 10736, !86, i64 10776, !27, i64 10784, !27, i64 10808, !23, i64 10832, !46, i64 10840, !46, i64 10952, !87, i64 11064, !104, i64 13928, !25, i64 14048, !25, i64 14056, !25, i64 14064, !16, i64 14072, !16, i64 14076, !16, i64 14080, !16, i64 14084, !23, i64 14088, !23, i64 14089, !105, i64 14092, !16, i64 14096, !16, i64 14100, !31, i64 14104, !27, i64 14128, !106, i64 14152, !106, i64 14184, !16, i64 14216, !16, i64 14220, !16, i64 14224, !25, i64 14232, !27, i64 14240, !27, i64 14264, !27, i64 14288, !27, i64 14312, !27, i64 14336, !31, i64 14360, !31, i64 14384, !25, i64 14408, !25, i64 14416, !25, i64 14424, !16, i64 14432, !16, i64 14436, !23, i64 14440, !16, i64 14444, !23, i64 14448, !23, i64 14449, !23, i64 14450, !23, i64 14451, !25, i64 14456, !107, i64 14464, !27, i64 14488, !111, i64 14512}
!11 = !{!"_ZTS20HighsSimplexAnalysis", !6, i64 0, !12, i64 8, !12, i64 32, !6, i64 56, !16, i64 64, !16, i64 68, !16, i64 72, !17, i64 80, !17, i64 112, !20, i64 144, !23, i64 240, !23, i64 241, !23, i64 242, !23, i64 243, !23, i64 244, !23, i64 245, !23, i64 246, !16, i64 248, !24, i64 252, !16, i64 256, !16, i64 260, !16, i64 264, !16, i64 268, !16, i64 272, !16, i64 276, !16, i64 280, !17, i64 288, !25, i64 320, !25, i64 328, !25, i64 336, !25, i64 344, !25, i64 352, !25, i64 360, !25, i64 368, !25, i64 376, !25, i64 384, !25, i64 392, !25, i64 400, !25, i64 408, !16, i64 416, !16, i64 420, !25, i64 424, !25, i64 432, !16, i64 440, !25, i64 448, !25, i64 456, !16, i64 464, !25, i64 472, !25, i64 480, !25, i64 488, !25, i64 496, !25, i64 504, !25, i64 512, !25, i64 520, !25, i64 528, !25, i64 536, !25, i64 544, !16, i64 552, !25, i64 560, !16, i64 568, !16, i64 572, !16, i64 576, !16, i64 580, !16, i64 584, !16, i64 588, !16, i64 592, !16, i64 596, !16, i64 600, !26, i64 608, !26, i64 760, !26, i64 912, !26, i64 1064, !26, i64 1216, !26, i64 1368, !26, i64 1520, !26, i64 1672, !26, i64 1824, !26, i64 1976, !16, i64 2128, !16, i64 2132, !16, i64 2136, !16, i64 2140, !25, i64 2144, !25, i64 2152, !16, i64 2160, !16, i64 2164, !16, i64 2168, !16, i64 2172, !16, i64 2176, !25, i64 2184, !25, i64 2192, !16, i64 2200, !25, i64 2208, !25, i64 2216, !16, i64 2224, !16, i64 2228, !25, i64 2232, !25, i64 2240, !27, i64 2248, !27, i64 2272, !27, i64 2296, !27, i64 2320, !35, i64 2344, !39, i64 2368, !16, i64 2376, !16, i64 2380, !16, i64 2384, !16, i64 2388, !25, i64 2392, !25, i64 2400, !25, i64 2408, !25, i64 2416, !25, i64 2424, !25, i64 2432, !25, i64 2440, !25, i64 2448, !25, i64 2456, !25, i64 2464, !16, i64 2472, !16, i64 2476, !25, i64 2480, !25, i64 2488, !25, i64 2496, !23, i64 2504, !25, i64 2512, !25, i64 2520, !16, i64 2528, !16, i64 2532, !16, i64 2536, !16, i64 2540, !16, i64 2544, !25, i64 2552, !25, i64 2560, !25, i64 2568, !25, i64 2576, !25, i64 2584, !25, i64 2592, !25, i64 2600, !25, i64 2608, !25, i64 2616, !16, i64 2624, !16, i64 2628, !7, i64 2632, !16, i64 4952, !16, i64 4956, !7, i64 4960, !7, i64 7600, !7, i64 7648, !26, i64 7664, !26, i64 7816, !26, i64 7968, !26, i64 8120, !26, i64 8272, !26, i64 8424}
!12 = !{!"_ZTSSt6vectorI15HighsTimerClockSaIS0_EE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseI15HighsTimerClockSaIS0_EE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseI15HighsTimerClockSaIS0_EE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseI15HighsTimerClockSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!16 = !{!"int", !7, i64 0}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !18, i64 0, !19, i64 8, !7, i64 16}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!19 = !{!"long", !7, i64 0}
!20 = !{!"_ZTS15HighsLogOptions", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !21, i64 48, !6, i64 80, !23, i64 88}
!21 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !22, i64 0, !6, i64 24}
!22 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!23 = !{!"bool", !7, i64 0}
!24 = !{!"_ZTS14EdgeWeightMode", !7, i64 0}
!25 = !{!"double", !7, i64 0}
!26 = !{!"_ZTS22HighsValueDistribution", !17, i64 0, !17, i64 32, !16, i64 64, !16, i64 68, !16, i64 72, !25, i64 80, !25, i64 88, !27, i64 96, !31, i64 120, !16, i64 144}
!27 = !{!"_ZTSSt6vectorIdSaIdEE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!31 = !{!"_ZTSSt6vectorIiSaIiEE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!35 = !{!"_ZTSSt6vectorI17TranStageAnalysisSaIS0_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseI17TranStageAnalysisSaIS0_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseI17TranStageAnalysisSaIS0_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseI17TranStageAnalysisSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!39 = !{!"_ZTSSt10unique_ptrINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EE", !40, i64 0}
!40 = !{!"_ZTSSt15__uniq_ptr_dataINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_ELb1ELb1EE", !41, i64 0}
!41 = !{!"_ZTSSt15__uniq_ptr_implINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EE", !42, i64 0}
!42 = !{!"_ZTSSt5tupleIJPNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EEE", !43, i64 0}
!43 = !{!"_ZTSSt11_Tuple_implILm0EJPNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EEE", !44, i64 0}
!44 = !{!"_ZTSSt10_Head_baseILm0EPNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEELb0EE", !6, i64 0}
!45 = !{!"_ZTS7HighsLp", !16, i64 0, !16, i64 4, !27, i64 8, !27, i64 32, !27, i64 56, !27, i64 80, !27, i64 104, !46, i64 128, !48, i64 240, !25, i64 248, !17, i64 256, !17, i64 288, !16, i64 320, !16, i64 324, !49, i64 328, !49, i64 352, !53, i64 376, !57, i64 400, !57, i64 456, !16, i64 512, !16, i64 516, !63, i64 520, !23, i64 592, !23, i64 593, !16, i64 596, !23, i64 600, !64, i64 608}
!46 = !{!"_ZTS17HighsSparseMatrix", !47, i64 0, !16, i64 4, !16, i64 8, !31, i64 16, !31, i64 40, !31, i64 64, !27, i64 88}
!47 = !{!"_ZTS12MatrixFormat", !7, i64 0}
!48 = !{!"_ZTS8ObjSense", !7, i64 0}
!49 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!53 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!57 = !{!"_ZTS13HighsNameHash", !58, i64 0}
!58 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !59, i64 0}
!59 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !19, i64 8, !60, i64 16, !19, i64 24, !61, i64 32, !6, i64 48}
!60 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!61 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !62, i64 0, !19, i64 8}
!62 = !{!"float", !7, i64 0}
!63 = !{!"_ZTS10HighsScale", !16, i64 0, !23, i64 4, !16, i64 8, !16, i64 12, !25, i64 16, !27, i64 24, !27, i64 48}
!64 = !{!"_ZTS11HighsLpMods", !31, i64 0, !31, i64 24, !27, i64 48, !27, i64 72, !53, i64 96, !31, i64 120, !27, i64 144, !31, i64 168, !27, i64 192, !31, i64 216, !27, i64 240, !27, i64 264, !27, i64 288}
!65 = !{!"_ZTS18HighsSimplexStatus", !23, i64 0, !23, i64 1, !23, i64 2, !23, i64 3, !23, i64 4, !23, i64 5, !23, i64 6, !23, i64 7, !23, i64 8, !23, i64 9, !23, i64 10, !23, i64 11, !23, i64 12}
!66 = !{!"_ZTS16HighsSimplexInfo", !27, i64 0, !27, i64 24, !27, i64 48, !27, i64 72, !27, i64 96, !27, i64 120, !27, i64 144, !27, i64 168, !27, i64 192, !27, i64 216, !27, i64 240, !27, i64 264, !27, i64 288, !31, i64 312, !31, i64 336, !31, i64 360, !31, i64 384, !27, i64 408, !16, i64 432, !16, i64 436, !23, i64 440, !23, i64 441, !67, i64 448, !16, i64 568, !16, i64 572, !16, i64 576, !27, i64 584, !27, i64 608, !27, i64 632, !27, i64 656, !16, i64 680, !16, i64 684, !16, i64 688, !16, i64 692, !25, i64 696, !25, i64 704, !25, i64 712, !25, i64 720, !16, i64 728, !16, i64 732, !25, i64 736, !25, i64 744, !25, i64 752, !25, i64 760, !25, i64 768, !25, i64 776, !25, i64 784, !25, i64 792, !25, i64 800, !25, i64 808, !23, i64 816, !25, i64 824, !25, i64 832, !16, i64 840, !25, i64 848, !25, i64 856, !25, i64 864, !23, i64 872, !23, i64 873, !23, i64 874, !23, i64 875, !23, i64 876, !23, i64 877, !23, i64 878, !23, i64 879, !23, i64 880, !23, i64 881, !23, i64 882, !23, i64 883, !23, i64 884, !23, i64 885, !23, i64 886, !16, i64 888, !25, i64 896, !25, i64 904, !16, i64 912, !25, i64 920, !25, i64 928, !16, i64 936, !16, i64 940, !16, i64 944, !16, i64 948, !16, i64 952, !16, i64 956, !16, i64 960, !16, i64 964, !16, i64 968, !16, i64 972, !16, i64 976, !16, i64 980, !16, i64 984, !16, i64 988, !16, i64 992, !16, i64 996, !25, i64 1000, !25, i64 1008, !25, i64 1016, !25, i64 1024, !16, i64 1032}
!67 = !{!"_ZTS12SimplexBasis", !31, i64 0, !68, i64 24, !68, i64 48, !19, i64 72, !16, i64 80, !16, i64 84, !17, i64 88}
!68 = !{!"_ZTSSt6vectorIaSaIaEE", !69, i64 0}
!69 = !{!"_ZTSSt12_Vector_baseIaSaIaEE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE12_Vector_implE", !71, i64 0}
!71 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!72 = !{!"_ZTS16HighsModelStatus", !7, i64 0}
!73 = !{!"_ZTS14HighsHashTableImvE", !74, i64 0, !80, i64 8, !19, i64 16, !19, i64 24, !19, i64 32}
!74 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEE", !75, i64 0}
!75 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterELb1ELb1EE", !76, i64 0}
!76 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEE", !77, i64 0}
!77 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEEE", !78, i64 0}
!78 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEEE", !79, i64 0}
!79 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryImvELb0EE", !6, i64 0}
!80 = !{!"_ZTSSt10unique_ptrIA_hSt14default_deleteIS0_EE", !81, i64 0}
!81 = !{!"_ZTSSt15__uniq_ptr_dataIhSt14default_deleteIA_hELb1ELb1EE", !82, i64 0}
!82 = !{!"_ZTSSt15__uniq_ptr_implIhSt14default_deleteIA_hEE", !83, i64 0}
!83 = !{!"_ZTSSt5tupleIJPhSt14default_deleteIA_hEEE", !84, i64 0}
!84 = !{!"_ZTSSt11_Tuple_implILm0EJPhSt14default_deleteIA_hEEE", !85, i64 0}
!85 = !{!"_ZTSSt10_Head_baseILm0EPhLb0EE", !6, i64 0}
!86 = !{!"_ZTS11HighsRandom", !19, i64 0}
!87 = !{!"_ZTS11HSimplexNla", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !88, i64 48, !23, i64 1960, !25, i64 1968, !101, i64 1976, !102, i64 2112}
!88 = !{!"_ZTS7HFactor", !25, i64 0, !25, i64 8, !16, i64 16, !31, i64 24, !31, i64 48, !31, i64 72, !89, i64 96, !16, i64 184, !16, i64 188, !16, i64 192, !16, i64 196, !16, i64 200, !16, i64 204, !16, i64 208, !25, i64 216, !23, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !25, i64 264, !25, i64 272, !16, i64 280, !25, i64 288, !90, i64 296, !20, i64 304, !23, i64 400, !23, i64 401, !16, i64 404, !16, i64 408, !6, i64 416, !16, i64 424, !31, i64 432, !27, i64 456, !31, i64 480, !31, i64 504, !31, i64 528, !27, i64 552, !31, i64 576, !31, i64 600, !31, i64 624, !31, i64 648, !31, i64 672, !31, i64 696, !31, i64 720, !27, i64 744, !27, i64 768, !31, i64 792, !31, i64 816, !31, i64 840, !31, i64 864, !31, i64 888, !31, i64 912, !96, i64 936, !27, i64 960, !31, i64 984, !31, i64 1008, !31, i64 1032, !31, i64 1056, !31, i64 1080, !31, i64 1104, !31, i64 1128, !31, i64 1152, !31, i64 1176, !31, i64 1200, !27, i64 1224, !31, i64 1248, !31, i64 1272, !27, i64 1296, !31, i64 1320, !31, i64 1344, !27, i64 1368, !16, i64 1392, !16, i64 1396, !31, i64 1400, !31, i64 1424, !31, i64 1448, !27, i64 1472, !31, i64 1496, !31, i64 1520, !31, i64 1544, !31, i64 1568, !27, i64 1592, !27, i64 1616, !31, i64 1640, !31, i64 1664, !31, i64 1688, !27, i64 1712, !100, i64 1736}
!89 = !{!"_ZTS12RefactorInfo", !23, i64 0, !31, i64 8, !31, i64 32, !68, i64 56, !25, i64 80}
!90 = !{!"_ZTSSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EE", !91, i64 0}
!91 = !{!"_ZTSSt15__uniq_ptr_dataIN7HFactor7LogDataESt14default_deleteIS1_ELb1ELb1EE", !92, i64 0}
!92 = !{!"_ZTSSt15__uniq_ptr_implIN7HFactor7LogDataESt14default_deleteIS1_EE", !93, i64 0}
!93 = !{!"_ZTSSt5tupleIJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !94, i64 0}
!94 = !{!"_ZTSSt11_Tuple_implILm0EJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !95, i64 0}
!95 = !{!"_ZTSSt10_Head_baseILm0EPN7HFactor7LogDataELb0EE", !6, i64 0}
!96 = !{!"_ZTSSt6vectorIcSaIcEE", !97, i64 0}
!97 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !98, i64 0}
!98 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !99, i64 0}
!99 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!100 = !{!"_ZTS11HVectorBaseIdE", !16, i64 0, !16, i64 4, !31, i64 8, !27, i64 32, !25, i64 56, !96, i64 64, !31, i64 88, !6, i64 112, !23, i64 120, !16, i64 124, !31, i64 128, !27, i64 152}
!101 = !{!"_ZTS17ProductFormUpdate", !23, i64 0, !16, i64 4, !16, i64 8, !31, i64 16, !27, i64 40, !31, i64 64, !31, i64 88, !27, i64 112}
!102 = !{!"_ZTS14SimplexIterate", !23, i64 0, !67, i64 8, !103, i64 128, !27, i64 728}
!103 = !{!"_ZTS24InvertibleRepresentation", !31, i64 0, !31, i64 24, !31, i64 48, !31, i64 72, !27, i64 96, !31, i64 120, !31, i64 144, !27, i64 168, !31, i64 192, !31, i64 216, !27, i64 240, !31, i64 264, !31, i64 288, !31, i64 312, !27, i64 336, !31, i64 360, !31, i64 384, !31, i64 408, !31, i64 432, !27, i64 456, !31, i64 480, !31, i64 504, !27, i64 528, !31, i64 552, !27, i64 576}
!104 = !{!"_ZTS8HotStart", !23, i64 0, !89, i64 8, !68, i64 96}
!105 = !{!"_ZTS16SimplexAlgorithm", !7, i64 0}
!106 = !{!"_ZTS14HighsRayRecord", !16, i64 0, !16, i64 4, !27, i64 8}
!107 = !{!"_ZTSSt6vectorI32HighsSimplexBadBasisChangeRecordSaIS0_EE", !108, i64 0}
!108 = !{!"_ZTSSt12_Vector_baseI32HighsSimplexBadBasisChangeRecordSaIS0_EE", !109, i64 0}
!109 = !{!"_ZTSNSt12_Vector_baseI32HighsSimplexBadBasisChangeRecordSaIS0_EE12_Vector_implE", !110, i64 0}
!110 = !{!"_ZTSNSt12_Vector_baseI32HighsSimplexBadBasisChangeRecordSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!111 = !{!"_ZTS17HighsSimplexStats", !23, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !25, i64 24, !25, i64 32, !25, i64 40, !25, i64 48}
!112 = !{!10, !16, i64 14216}
!113 = !{!10, !16, i64 8604}
!114 = !{!10, !16, i64 14220}
!115 = !{!10, !16, i64 14224}
!116 = !{!10, !25, i64 8848}
!117 = !{!10, !25, i64 14232}
!118 = !{!46, !16, i64 8}
!119 = !{!46, !16, i64 4}
!120 = !{!46, !47, i64 0}
!121 = !{!25, !25, i64 0}
!122 = !{!16, !16, i64 0}
!123 = distinct !{!123, !124}
!124 = !{!"llvm.loop.mustprogress"}
!125 = distinct !{!125, !124}
!126 = distinct !{!126, !124}
!127 = distinct !{!127, !124}
!128 = distinct !{!128, !124}
!129 = distinct !{!129, !124}
!130 = distinct !{!130, !124}
!131 = distinct !{!131, !124}
!132 = !{!19, !19, i64 0}
!133 = distinct !{!133, !124}
!134 = distinct !{!134, !124}
!135 = distinct !{!135, !124}
!136 = distinct !{!136, !124}
!137 = distinct !{!137, !124}
!138 = !{!10, !16, i64 8732}
!139 = !{!23, !23, i64 0}
!140 = !{!10, !48, i64 8840}
!141 = !{!10, !23, i64 9553}
!142 = !{!10, !23, i64 9556}
!143 = !{!10, !23, i64 9557}
!144 = !{!10, !23, i64 9558}
!145 = !{!10, !6, 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"

%class.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3" }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = 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 }

@.str.52 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [26 x i8], align 1
@__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv = external hidden unnamed_addr constant [28 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [14 x 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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZN17HighsSparseMatrixaSERKS_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN4HEkk7dualizeEv(ptr noundef nonnull align 8 dereferenceable(14568) %0) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %class.HighsSparseMatrix, align 8
  %3 = alloca %"class.std::vector.3", align 8
  %4 = alloca %"class.std::vector.8", align 8
  %5 = alloca i32, align 4
  %6 = alloca double, align 8
  %7 = alloca double, align 8
  %8 = alloca double, align 8
  %9 = alloca i32, align 4
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca %class.HighsSparseMatrix, align 8
  %14 = alloca double, align 8
  %15 = alloca i32, align 4
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca i32, align 4
  %20 = alloca %"class.std::vector.8", align 8
  %21 = alloca %"class.std::vector.8", align 8
  %22 = alloca i32, align 4
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca %"class.std::vector.3", align 8
  %27 = alloca double, align 8
  %28 = alloca %class.HighsSparseMatrix, align 8
  %29 = getelementptr inbounds i8, ptr %0, i64 8600
  %30 = getelementptr inbounds i8, ptr %0, i64 8728
  %31 = tail call noundef zeroext i1 @_ZNK17HighsSparseMatrix9isColwiseEv(ptr noundef nonnull align 8 dereferenceable(112) %30)
  br i1 %31, label %33, label %32

32:                                               ; preds = %1
  tail call void @__assert_fail(ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.52, i32 noundef 451, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

33:                                               ; preds = %1
  %34 = getelementptr inbounds i8, ptr %0, i64 14216
  %35 = getelementptr inbounds i8, ptr %0, i64 8604
  %36 = getelementptr inbounds i8, ptr %0, i64 14220
  %37 = load <2 x i32>, ptr %29, align 8, !tbaa !5
  store <2 x i32> %37, ptr %34, align 8, !tbaa !5
  %38 = tail call noundef i32 @_ZNK17HighsSparseMatrix5numNzEv(ptr noundef nonnull align 8 dereferenceable(112) %30)
  %39 = getelementptr inbounds i8, ptr %0, i64 14224
  store i32 %38, ptr %39, align 8, !tbaa !9
  %40 = getelementptr inbounds i8, ptr %0, i64 8848
  %41 = load double, ptr %40, align 8, !tbaa !112
  %42 = getelementptr inbounds i8, ptr %0, i64 14232
  store double %41, ptr %42, align 8, !tbaa !113
  %43 = getelementptr inbounds i8, ptr %0, i64 8608
  %44 = getelementptr inbounds i8, ptr %0, i64 14240
  %45 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %44, ptr noundef nonnull align 8 dereferenceable(24) %43)
  %46 = getelementptr inbounds i8, ptr %0, i64 8632
  %47 = getelementptr inbounds i8, ptr %0, i64 14264
  %48 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 8 dereferenceable(24) %46)
  %49 = getelementptr inbounds i8, ptr %0, i64 8656
  %50 = getelementptr inbounds i8, ptr %0, i64 14288
  %51 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %50, ptr noundef nonnull align 8 dereferenceable(24) %49)
  %52 = getelementptr inbounds i8, ptr %0, i64 8680
  %53 = getelementptr inbounds i8, ptr %0, i64 14312
  %54 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef nonnull align 8 dereferenceable(24) %52)
  %55 = getelementptr inbounds i8, ptr %0, i64 8704
  %56 = getelementptr inbounds i8, ptr %0, i64 14336
  %57 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %56, ptr noundef nonnull align 8 dereferenceable(24) %55)
  %58 = load i32, ptr %36, align 4, !tbaa !114
  %59 = sext i32 %58 to i64
  tail call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %59)
  %60 = load i32, ptr %36, align 4, !tbaa !114
  %61 = sext i32 %60 to i64
  tail call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %61)
  %62 = load i32, ptr %36, align 4, !tbaa !114
  %63 = sext i32 %62 to i64
  tail call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %63)
  %64 = load i32, ptr %34, align 8, !tbaa !115
  %65 = sext i32 %64 to i64
  tail call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %52, i64 noundef %65)
  %66 = load i32, ptr %34, align 8, !tbaa !115
  %67 = sext i32 %66 to i64
  tail call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %55, i64 noundef %67)
  tail call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef 0)
  tail call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef 0)
  tail call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef 0)
  tail call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %52, i64 noundef 0)
  tail call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %55, i64 noundef 0)
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %2) #9
  call void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112) %2, ptr noundef nonnull align 8 dereferenceable(112) %30)
  %68 = getelementptr inbounds i8, ptr %2, i64 4
  %69 = load <2 x i32>, ptr %34, align 8, !tbaa !5
  %70 = shufflevector <2 x i32> %69, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
  store <2 x i32> %70, ptr %68, align 4, !tbaa !5
  store i32 2, ptr %2, align 8, !tbaa !116
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #9
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #9
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #9
  store i32 0, ptr %5, align 4, !tbaa !5
  %71 = load i32, ptr %34, align 8, !tbaa !115
  %72 = icmp sgt i32 %71, 0
  br i1 %72, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %33
  %73 = getelementptr inbounds i8, ptr %0, i64 14360
  br label %77

._crit_edge:                                      ; preds = %123, %33
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #9
  store i32 0, ptr %9, align 4, !tbaa !5
  %74 = load i32, ptr %36, align 4, !tbaa !114
  %75 = icmp sgt i32 %74, 0
  br i1 %75, label %.lr.ph207, label %._crit_edge208

.lr.ph207:                                        ; preds = %._crit_edge
  %76 = getelementptr inbounds i8, ptr %0, i64 14384
  br label %131

77:                                               ; preds = %.lr.ph, %123
  %storemerge204 = phi i32 [ 0, %.lr.ph ], [ %125, %123 ]
  %78 = sext i32 %storemerge204 to i64
  %79 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %78) #9
  %80 = load double, ptr %79, align 8, !tbaa !117
  %81 = load i32, ptr %5, align 4, !tbaa !5
  %82 = sext i32 %81 to i64
  %83 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %47, i64 noundef %82) #9
  %84 = load double, ptr %83, align 8, !tbaa !117
  %85 = load i32, ptr %5, align 4, !tbaa !5
  %86 = sext i32 %85 to i64
  %87 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %50, i64 noundef %86) #9
  %88 = load double, ptr %87, align 8, !tbaa !117
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  store double 0x7FF0000000000000, ptr %6, align 8, !tbaa !117
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  store double 0x7FF0000000000000, ptr %7, align 8, !tbaa !117
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  store double 0xFFF0000000000000, ptr %8, align 8, !tbaa !117
  %89 = fcmp oeq double %84, %88
  br i1 %89, label %.thread.thread, label %90

.thread.thread:                                   ; preds = %77
  store double %84, ptr %6, align 8, !tbaa !117
  store double 0xFFF0000000000000, ptr %7, align 8, !tbaa !117
  store double 0x7FF0000000000000, ptr %8, align 8, !tbaa !117
  br label %112

90:                                               ; preds = %77
  %91 = fneg double %84
  %92 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %91)
          to label %93 unwind label %98

93:                                               ; preds = %90
  br i1 %92, label %100, label %94

94:                                               ; preds = %93
  %95 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %88)
          to label %96 unwind label %98

96:                                               ; preds = %94
  store double %84, ptr %6, align 8, !tbaa !117
  store double 0xFFF0000000000000, ptr %7, align 8, !tbaa !117
  store double %80, ptr %8, align 8, !tbaa !117
  br i1 %95, label %.thread, label %97

97:                                               ; preds = %96
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %73, ptr noundef nonnull align 4 dereferenceable(4) %5)
          to label %thread-pre-split unwind label %98

98:                                               ; preds = %122, %121, %117, %116, %100, %97, %94, %90
  %99 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #9
  br label %468

100:                                              ; preds = %93
  %101 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %88)
          to label %102 unwind label %98

102:                                              ; preds = %100
  br i1 %101, label %104, label %103

103:                                              ; preds = %102
  store double %88, ptr %6, align 8, !tbaa !117
  store double %80, ptr %7, align 8, !tbaa !117
  store double 0x7FF0000000000000, ptr %8, align 8, !tbaa !117
  br label %105

104:                                              ; preds = %102
  store double 0.000000e+00, ptr %6, align 8, !tbaa !117
  store double %80, ptr %7, align 8, !tbaa !117
  store double %80, ptr %8, align 8, !tbaa !117
  br label %105

thread-pre-split:                                 ; preds = %97
  %.pr = load double, ptr %7, align 8, !tbaa !117
  br label %105

105:                                              ; preds = %thread-pre-split, %104, %103
  %106 = phi double [ %.pr, %thread-pre-split ], [ %80, %104 ], [ %80, %103 ]
  %107 = fcmp ueq double %106, 0x7FF0000000000000
  br i1 %107, label %108, label %.threadthread-pre-split

108:                                              ; preds = %105
  call void @__assert_fail(ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.52, i32 noundef 540, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

.threadthread-pre-split:                          ; preds = %105
  %.pr194 = load double, ptr %8, align 8, !tbaa !117
  br label %.thread

.thread:                                          ; preds = %96, %.threadthread-pre-split
  %109 = phi double [ %.pr194, %.threadthread-pre-split ], [ %80, %96 ]
  %110 = fcmp ueq double %109, 0xFFF0000000000000
  br i1 %110, label %111, label %thread-pre-split195

111:                                              ; preds = %.thread
  call void @__assert_fail(ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.52, i32 noundef 541, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

thread-pre-split195:                              ; preds = %.thread
  %.pr196 = load double, ptr %6, align 8, !tbaa !117
  br label %112

112:                                              ; preds = %thread-pre-split195, %.thread.thread
  %113 = phi double [ %.pr196, %thread-pre-split195 ], [ %84, %.thread.thread ]
  %114 = fcmp ueq double %113, 0x7FF0000000000000
  br i1 %114, label %115, label %116

115:                                              ; preds = %112
  call void @__assert_fail(ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.52, i32 noundef 542, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

116:                                              ; preds = %112
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %52, ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %117 unwind label %98

117:                                              ; preds = %116
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %55, ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %118 unwind label %98

118:                                              ; preds = %117
  %119 = load double, ptr %6, align 8, !tbaa !117
  %120 = fcmp une double %119, 0.000000e+00
  br i1 %120, label %121, label %123

121:                                              ; preds = %118
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %122 unwind label %98

122:                                              ; preds = %121
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 4 dereferenceable(4) %5)
          to label %123 unwind label %98

123:                                              ; preds = %122, %118
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  %124 = load i32, ptr %5, align 4, !tbaa !5
  %125 = add nsw i32 %124, 1
  store i32 %125, ptr %5, align 4, !tbaa !5
  %126 = load i32, ptr %34, align 8, !tbaa !115
  %127 = icmp slt i32 %125, %126
  br i1 %127, label %77, label %._crit_edge, !llvm.loop !118

._crit_edge208:                                   ; preds = %166, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #9
  %128 = getelementptr inbounds i8, ptr %0, i64 8744
  %129 = getelementptr inbounds i8, ptr %0, i64 8792
  %130 = getelementptr inbounds i8, ptr %0, i64 8816
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %13) #9
  invoke void @_ZN17HighsSparseMatrixC2Ev(ptr noundef nonnull align 8 dereferenceable(112) %13)
          to label %171 unwind label %182

131:                                              ; preds = %.lr.ph207, %166
  %storemerge172205 = phi i32 [ 0, %.lr.ph207 ], [ %168, %166 ]
  %132 = sext i32 %storemerge172205 to i64
  %133 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %132) #9
  %134 = load double, ptr %133, align 8, !tbaa !117
  %135 = load i32, ptr %9, align 4, !tbaa !5
  %136 = sext i32 %135 to i64
  %137 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %56, i64 noundef %136) #9
  %138 = load double, ptr %137, align 8, !tbaa !117
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #9
  store double 0x7FF0000000000000, ptr %10, align 8, !tbaa !117
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #9
  store double 0x7FF0000000000000, ptr %11, align 8, !tbaa !117
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  store double 0xFFF0000000000000, ptr %12, align 8, !tbaa !117
  %139 = fcmp oeq double %134, %138
  br i1 %139, label %140, label %141

140:                                              ; preds = %131
  store double %134, ptr %10, align 8, !tbaa !117
  store double 0xFFF0000000000000, ptr %11, align 8, !tbaa !117
  store double 0x7FF0000000000000, ptr %12, align 8, !tbaa !117
  br label %.thread190.thread

141:                                              ; preds = %131
  %142 = fneg double %134
  %143 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %142)
          to label %144 unwind label %149

144:                                              ; preds = %141
  br i1 %143, label %151, label %145

145:                                              ; preds = %144
  %146 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %138)
          to label %147 unwind label %149

147:                                              ; preds = %145
  store double %134, ptr %10, align 8, !tbaa !117
  store double 0.000000e+00, ptr %11, align 8, !tbaa !117
  store double 0x7FF0000000000000, ptr %12, align 8, !tbaa !117
  br i1 %146, label %.thread190.thread, label %148

148:                                              ; preds = %147
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %76, ptr noundef nonnull align 4 dereferenceable(4) %9)
          to label %155 unwind label %149

149:                                              ; preds = %165, %164, %163, %151, %148, %145, %141
  %150 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #9
  br label %468

151:                                              ; preds = %144
  %152 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %138)
          to label %153 unwind label %149

153:                                              ; preds = %151
  br i1 %152, label %.thread190.thread.thread, label %154

154:                                              ; preds = %153
  store double %138, ptr %10, align 8, !tbaa !117
  store double 0xFFF0000000000000, ptr %11, align 8, !tbaa !117
  store double 0.000000e+00, ptr %12, align 8, !tbaa !117
  br label %.thread190.thread

.thread190.thread.thread:                         ; preds = %153
  store double 0.000000e+00, ptr %10, align 8, !tbaa !117
  store double 0.000000e+00, ptr %11, align 8, !tbaa !117
  store double 0.000000e+00, ptr %12, align 8, !tbaa !117
  br label %163

155:                                              ; preds = %148
  %.pr188 = load double, ptr %11, align 8, !tbaa !117
  %156 = fcmp ueq double %.pr188, 0x7FF0000000000000
  br i1 %156, label %157, label %.thread190

157:                                              ; preds = %155
  call void @__assert_fail(ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.52, i32 noundef 592, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

.thread190:                                       ; preds = %155
  %.pr197 = load double, ptr %12, align 8, !tbaa !117
  %158 = fcmp ueq double %.pr197, 0xFFF0000000000000
  br i1 %158, label %159, label %.thread190.threadthread-pre-split

159:                                              ; preds = %.thread190
  call void @__assert_fail(ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.52, i32 noundef 593, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

.thread190.threadthread-pre-split:                ; preds = %.thread190
  %.pr198 = load double, ptr %10, align 8, !tbaa !117
  br label %.thread190.thread

.thread190.thread:                                ; preds = %147, %.thread190.threadthread-pre-split, %154, %140
  %160 = phi double [ %.pr198, %.thread190.threadthread-pre-split ], [ %138, %154 ], [ %134, %140 ], [ %134, %147 ]
  %161 = fcmp ueq double %160, 0x7FF0000000000000
  br i1 %161, label %162, label %163

162:                                              ; preds = %.thread190.thread
  call void @__assert_fail(ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.52, i32 noundef 594, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

163:                                              ; preds = %.thread190.thread.thread, %.thread190.thread
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %164 unwind label %149

164:                                              ; preds = %163
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %165 unwind label %149

165:                                              ; preds = %164
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %166 unwind label %149

166:                                              ; preds = %165
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #9
  %167 = load i32, ptr %9, align 4, !tbaa !5
  %168 = add nsw i32 %167, 1
  store i32 %168, ptr %9, align 4, !tbaa !5
  %169 = load i32, ptr %36, align 4, !tbaa !114
  %170 = icmp slt i32 %168, %169
  br i1 %170, label %131, label %._crit_edge208, !llvm.loop !120

171:                                              ; preds = %._crit_edge208
  invoke void @_ZN17HighsSparseMatrix13ensureColwiseEv(ptr noundef nonnull align 8 dereferenceable(112) %13)
          to label %172 unwind label %184

172:                                              ; preds = %171
  %173 = load i32, ptr %34, align 8, !tbaa !115
  %174 = getelementptr inbounds i8, ptr %13, i64 8
  store i32 %173, ptr %174, align 8, !tbaa !121
  %175 = getelementptr inbounds i8, ptr %0, i64 14360
  %176 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %175) #9
  %177 = trunc i64 %176 to i32
  %178 = getelementptr inbounds i8, ptr %0, i64 14384
  %179 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #9
  %180 = trunc i64 %179 to i32
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #9
  store double 1.000000e+00, ptr %14, align 8, !tbaa !117
  %181 = icmp sgt i32 %177, 0
  br i1 %181, label %.lr.ph211.preheader, label %._crit_edge212

.lr.ph211.preheader:                              ; preds = %172
  %wide.trip.count = and i64 %176, 2147483647
  br label %.lr.ph211

._crit_edge212:                                   ; preds = %194, %172
  %.not254 = icmp eq i32 %180, 0
  br i1 %.not254, label %313, label %202

182:                                              ; preds = %._crit_edge208
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %467

184:                                              ; preds = %171
  %185 = landingpad { ptr, i32 }
          cleanup
  br label %466

.lr.ph211:                                        ; preds = %.lr.ph211.preheader, %194
  %indvars.iv = phi i64 [ 0, %.lr.ph211.preheader ], [ %indvars.iv.next, %194 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #9
  %186 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %175, i64 noundef %indvars.iv) #9
  %187 = load i32, ptr %186, align 4, !tbaa !5
  store i32 %187, ptr %15, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #9
  %188 = sext i32 %187 to i64
  %189 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %50, i64 noundef %188) #9
  %190 = load double, ptr %189, align 8, !tbaa !117
  store double %190, ptr %16, align 8, !tbaa !117
  invoke void @_ZN17HighsSparseMatrix6addVecEiPKiPKdd(ptr noundef nonnull align 8 dereferenceable(112) %13, i32 noundef 1, ptr noundef nonnull %15, ptr noundef nonnull %14, double noundef 1.000000e+00)
          to label %191 unwind label %195

191:                                              ; preds = %.lr.ph211
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %192 unwind label %195

192:                                              ; preds = %191
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #9
  store double 0xFFF0000000000000, ptr %17, align 8, !tbaa !117
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %193 unwind label %197

193:                                              ; preds = %192
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #9
  store double 0.000000e+00, ptr %18, align 8, !tbaa !117
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %194 unwind label %199

194:                                              ; preds = %193
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge212, label %.lr.ph211, !llvm.loop !122

195:                                              ; preds = %191, %.lr.ph211
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %201

197:                                              ; preds = %192
  %198 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #9
  br label %201

199:                                              ; preds = %193
  %200 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  br label %201

201:                                              ; preds = %199, %197, %195
  %.pn180 = phi { ptr, i32 } [ %200, %199 ], [ %198, %197 ], [ %196, %195 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #9
  br label %465

202:                                              ; preds = %._crit_edge212
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #9
  store i32 %180, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #9
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #9
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #9
  %203 = load i32, ptr %36, align 4, !tbaa !114
  %204 = sext i32 %203 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6assignEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %204, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %205 unwind label %212

205:                                              ; preds = %202
  %206 = shl i64 %179, 32
  %sext = add i64 %206, 4294967296
  %207 = ashr exact i64 %sext, 32
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #9
  store i32 0, ptr %22, align 4, !tbaa !5
  invoke void @_ZNSt6vectorIiSaIiEE6assignEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %207, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %208 unwind label %214

208:                                              ; preds = %205
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #9
  %209 = icmp sgt i32 %180, 0
  br i1 %209, label %.lr.ph216.preheader, label %.preheader201

.lr.ph216.preheader:                              ; preds = %208
  %wide.trip.count262 = and i64 %179, 2147483647
  br label %.lr.ph216

.preheader201:                                    ; preds = %224, %208
  %210 = load i32, ptr %39, align 8, !tbaa !9
  %211 = icmp sgt i32 %210, 0
  br i1 %211, label %.lr.ph218, label %._crit_edge219

212:                                              ; preds = %202
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %312

214:                                              ; preds = %205
  %215 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #9
  br label %312

.lr.ph216:                                        ; preds = %.lr.ph216.preheader, %224
  %indvars.iv257 = phi i64 [ 0, %.lr.ph216.preheader ], [ %indvars.iv.next258, %224 ]
  %indvars259 = trunc i64 %indvars.iv257 to i32
  %216 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %178, i64 noundef %indvars.iv257) #9
  %217 = load i32, ptr %216, align 4, !tbaa !5
  %indvars.iv.next258 = add nuw nsw i64 %indvars.iv257, 1
  %218 = sext i32 %217 to i64
  %219 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %218) #9
  store i32 %indvars259, ptr %219, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %56, i64 noundef %218) #9
  %221 = load double, ptr %220, align 8, !tbaa !117
  store double %221, ptr %23, align 8, !tbaa !117
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %222 unwind label %225

222:                                              ; preds = %.lr.ph216
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #9
  store double 0xFFF0000000000000, ptr %24, align 8, !tbaa !117
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %223 unwind label %227

223:                                              ; preds = %222
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #9
  store double 0.000000e+00, ptr %25, align 8, !tbaa !117
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %224 unwind label %229

224:                                              ; preds = %223
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  %exitcond263.not = icmp eq i64 %indvars.iv.next258, %wide.trip.count262
  br i1 %exitcond263.not, label %.preheader201, label %.lr.ph216, !llvm.loop !123

225:                                              ; preds = %.lr.ph216
  %226 = landingpad { ptr, i32 }
          cleanup
  br label %231

227:                                              ; preds = %222
  %228 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  br label %231

229:                                              ; preds = %223
  %230 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #9
  br label %231

231:                                              ; preds = %229, %227, %225
  %.pn176 = phi { ptr, i32 } [ %230, %229 ], [ %228, %227 ], [ %226, %225 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  br label %312

._crit_edge219:                                   ; preds = %.lr.ph218, %.preheader201
  %232 = getelementptr inbounds i8, ptr %13, i64 16
  %233 = add nsw i32 %180, %177
  %234 = add nsw i32 %233, 1
  %235 = sext i32 %234 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %232, i64 noundef %235)
          to label %.preheader200 unwind label %254

.preheader200:                                    ; preds = %._crit_edge219
  br i1 %209, label %.lr.ph221.preheader, label %._crit_edge222

.lr.ph221.preheader:                              ; preds = %.preheader200
  %sext287 = shl i64 %176, 32
  %236 = ashr exact i64 %sext287, 32
  %wide.trip.count270 = and i64 %179, 2147483647
  br label %.lr.ph221

.lr.ph218:                                        ; preds = %.preheader201, %.lr.ph218
  %indvars.iv264 = phi i64 [ %indvars.iv.next265, %.lr.ph218 ], [ 0, %.preheader201 ]
  %237 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %129, i64 noundef %indvars.iv264) #9
  %238 = load i32, ptr %237, align 4, !tbaa !5
  %239 = sext i32 %238 to i64
  %240 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %239) #9
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = sext i32 %241 to i64
  %243 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %242) #9
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = add nsw i32 %244, 1
  store i32 %245, ptr %243, align 4, !tbaa !5
  %indvars.iv.next265 = add nuw nsw i64 %indvars.iv264, 1
  %246 = load i32, ptr %39, align 8, !tbaa !9
  %247 = sext i32 %246 to i64
  %248 = icmp slt i64 %indvars.iv.next265, %247
  br i1 %248, label %.lr.ph218, label %._crit_edge219, !llvm.loop !124

._crit_edge222:                                   ; preds = %.lr.ph221, %.preheader200
  %249 = sext i32 %233 to i64
  %250 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %232, i64 noundef %249) #9
  %251 = load i32, ptr %250, align 4, !tbaa !5
  %252 = getelementptr inbounds i8, ptr %13, i64 64
  %253 = sext i32 %251 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %252, i64 noundef %253)
          to label %267 unwind label %277

254:                                              ; preds = %._crit_edge219
  %255 = landingpad { ptr, i32 }
          cleanup
  br label %312

.lr.ph221:                                        ; preds = %.lr.ph221.preheader, %.lr.ph221
  %indvars.iv267 = phi i64 [ 0, %.lr.ph221.preheader ], [ %indvars.iv.next268, %.lr.ph221 ]
  %256 = add nsw i64 %indvars.iv267, %236
  %257 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %232, i64 noundef %256) #9
  %258 = load i32, ptr %257, align 4, !tbaa !5
  %259 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv267) #9
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = add nsw i32 %260, %258
  %262 = add nsw i64 %256, 1
  %263 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %232, i64 noundef %262) #9
  store i32 %261, ptr %263, align 4, !tbaa !5
  %264 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %232, i64 noundef %256) #9
  %265 = load i32, ptr %264, align 4, !tbaa !5
  %266 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv267) #9
  store i32 %265, ptr %266, align 4, !tbaa !5
  %indvars.iv.next268 = add nuw nsw i64 %indvars.iv267, 1
  %exitcond271.not = icmp eq i64 %indvars.iv.next268, %wide.trip.count270
  br i1 %exitcond271.not, label %._crit_edge222, label %.lr.ph221, !llvm.loop !125

267:                                              ; preds = %._crit_edge222
  %268 = getelementptr inbounds i8, ptr %13, i64 88
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %268, i64 noundef %253)
          to label %.preheader199 unwind label %277

.preheader199:                                    ; preds = %267
  %269 = load i32, ptr %34, align 8, !tbaa !115
  %270 = icmp sgt i32 %269, 0
  br i1 %270, label %.lr.ph227, label %._crit_edge228

.loopexit:                                        ; preds = %307, %.lr.ph227
  %271 = load i32, ptr %34, align 8, !tbaa !115
  %272 = sext i32 %271 to i64
  %273 = icmp slt i64 %indvars.iv.next276, %272
  br i1 %273, label %.lr.ph227, label %._crit_edge228, !llvm.loop !126

._crit_edge228:                                   ; preds = %.loopexit, %.preheader199
  %274 = getelementptr inbounds i8, ptr %13, i64 4
  %275 = load i32, ptr %274, align 4, !tbaa !127
  %276 = add nsw i32 %275, %180
  store i32 %276, ptr %274, align 4, !tbaa !127
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #9
  br label %313

277:                                              ; preds = %267, %._crit_edge222
  %278 = landingpad { ptr, i32 }
          cleanup
  br label %312

.lr.ph227:                                        ; preds = %.preheader199, %.loopexit
  %indvars.iv275 = phi i64 [ %indvars.iv.next276, %.loopexit ], [ 0, %.preheader199 ]
  %279 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %128, i64 noundef %indvars.iv275) #9
  %280 = load i32, ptr %279, align 4, !tbaa !5
  %indvars.iv.next276 = add nuw nsw i64 %indvars.iv275, 1
  %281 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %128, i64 noundef %indvars.iv.next276) #9
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = icmp slt i32 %280, %282
  br i1 %283, label %.lr.ph225.preheader, label %.loopexit

.lr.ph225.preheader:                              ; preds = %.lr.ph227
  %284 = sext i32 %280 to i64
  %285 = trunc nuw nsw i64 %indvars.iv275 to i32
  br label %.lr.ph225

.lr.ph225:                                        ; preds = %.lr.ph225.preheader, %307
  %indvars.iv272 = phi i64 [ %284, %.lr.ph225.preheader ], [ %indvars.iv.next273, %307 ]
  %286 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %129, i64 noundef %indvars.iv272) #9
  %287 = load i32, ptr %286, align 4, !tbaa !5
  %288 = sext i32 %287 to i64
  %289 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %288) #9
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = icmp slt i32 %290, %180
  br i1 %291, label %292, label %307

292:                                              ; preds = %.lr.ph225
  %293 = sext i32 %290 to i64
  %294 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %293) #9
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = icmp slt i32 %295, %251
  br i1 %296, label %298, label %297

297:                                              ; preds = %292
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.52, i32 noundef 655, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

298:                                              ; preds = %292
  %299 = sext i32 %295 to i64
  %300 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %252, i64 noundef %299) #9
  store i32 %285, ptr %300, align 4, !tbaa !5
  %301 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %indvars.iv272) #9
  %302 = load double, ptr %301, align 8, !tbaa !117
  %303 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %268, i64 noundef %299) #9
  store double %302, ptr %303, align 8, !tbaa !117
  %304 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %293) #9
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = add nsw i32 %305, 1
  store i32 %306, ptr %304, align 4, !tbaa !5
  br label %307

307:                                              ; preds = %298, %.lr.ph225
  %indvars.iv.next273 = add nsw i64 %indvars.iv272, 1
  %308 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %128, i64 noundef %indvars.iv.next276) #9
  %309 = load i32, ptr %308, align 4, !tbaa !5
  %310 = sext i32 %309 to i64
  %311 = icmp slt i64 %indvars.iv.next273, %310
  br i1 %311, label %.lr.ph225, label %.loopexit, !llvm.loop !128

312:                                              ; preds = %231, %254, %277, %214, %212
  %.pn176.pn.pn = phi { ptr, i32 } [ %215, %214 ], [ %213, %212 ], [ %.pn176, %231 ], [ %278, %277 ], [ %255, %254 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #9
  br label %465

313:                                              ; preds = %._crit_edge228, %._crit_edge212
  %314 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  %.not251 = icmp eq i64 %314, 0
  br i1 %.not251, label %._crit_edge237, label %.lr.ph236

._crit_edge237:                                   ; preds = %._crit_edge232, %313
  %.0153.lcssa = phi double [ 0.000000e+00, %313 ], [ %324, %._crit_edge232 ]
  %315 = getelementptr inbounds i8, ptr %13, i64 4
  %316 = load i32, ptr %315, align 4, !tbaa !127
  %.not = icmp eq i32 %316, 0
  br i1 %.not, label %404, label %350

.lr.ph236:                                        ; preds = %313, %._crit_edge232
  %.0152234 = phi i64 [ %334, %._crit_edge232 ], [ 0, %313 ]
  %.0153233 = phi double [ %324, %._crit_edge232 ], [ 0.000000e+00, %313 ]
  %317 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %.0152234) #9
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %.0152234) #9
  %320 = load double, ptr %319, align 8, !tbaa !117
  %321 = sext i32 %318 to i64
  %322 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %321) #9
  %323 = load double, ptr %322, align 8, !tbaa !117
  %324 = call double @llvm.fmuladd.f64(double %320, double %323, double %.0153233)
  %325 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %128, i64 noundef %321) #9
  %326 = load i32, ptr %325, align 4, !tbaa !5
  %327 = add nsw i32 %318, 1
  %328 = sext i32 %327 to i64
  %329 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %128, i64 noundef %328) #9
  %330 = load i32, ptr %329, align 4, !tbaa !5
  %331 = icmp slt i32 %326, %330
  br i1 %331, label %.lr.ph231, label %._crit_edge232

.lr.ph231:                                        ; preds = %.lr.ph236
  %332 = fneg double %320
  %333 = sext i32 %326 to i64
  br label %337

._crit_edge232:                                   ; preds = %337, %.lr.ph236
  %334 = add nuw i64 %.0152234, 1
  %335 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  %336 = icmp ult i64 %334, %335
  br i1 %336, label %.lr.ph236, label %._crit_edge237, !llvm.loop !129

337:                                              ; preds = %.lr.ph231, %337
  %indvars.iv278 = phi i64 [ %333, %.lr.ph231 ], [ %indvars.iv.next279, %337 ]
  %338 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %indvars.iv278) #9
  %339 = load double, ptr %338, align 8, !tbaa !117
  %340 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %129, i64 noundef %indvars.iv278) #9
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = sext i32 %341 to i64
  %343 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %342) #9
  %344 = load double, ptr %343, align 8, !tbaa !117
  %345 = call double @llvm.fmuladd.f64(double %332, double %339, double %344)
  store double %345, ptr %343, align 8, !tbaa !117
  %indvars.iv.next279 = add nsw i64 %indvars.iv278, 1
  %346 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %128, i64 noundef %328) #9
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = sext i32 %347 to i64
  %349 = icmp slt i64 %indvars.iv.next279, %348
  br i1 %349, label %337, label %._crit_edge232, !llvm.loop !130

350:                                              ; preds = %._crit_edge237
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #9
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #9
  %351 = load i32, ptr %34, align 8, !tbaa !115
  %352 = sext i32 %351 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #9
  store double 0.000000e+00, ptr %27, align 8, !tbaa !117
  invoke void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %352, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %353 unwind label %360

353:                                              ; preds = %350
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  %354 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  %.not252 = icmp eq i64 %354, 0
  br i1 %.not252, label %.preheader, label %.lr.ph240

.preheader:                                       ; preds = %.lr.ph240, %353
  %355 = load i32, ptr %315, align 4, !tbaa !127
  %356 = icmp sgt i32 %355, 0
  br i1 %356, label %.lr.ph249, label %._crit_edge250

.lr.ph249:                                        ; preds = %.preheader
  %357 = getelementptr inbounds i8, ptr %13, i64 16
  %358 = getelementptr inbounds i8, ptr %13, i64 64
  %359 = getelementptr inbounds i8, ptr %13, i64 88
  br label %371

360:                                              ; preds = %350
  %361 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #9
  br label %465

.lr.ph240:                                        ; preds = %353, %.lr.ph240
  %.0148238 = phi i64 [ %368, %.lr.ph240 ], [ 0, %353 ]
  %362 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %.0148238) #9
  %363 = load double, ptr %362, align 8, !tbaa !117
  %364 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %.0148238) #9
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = sext i32 %365 to i64
  %367 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %366) #9
  store double %363, ptr %367, align 8, !tbaa !117
  %368 = add nuw i64 %.0148238, 1
  %369 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  %370 = icmp ult i64 %368, %369
  br i1 %370, label %.lr.ph240, label %.preheader, !llvm.loop !131

._crit_edge250:                                   ; preds = %._crit_edge245, %.preheader
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #9
  br label %404

371:                                              ; preds = %.lr.ph249, %._crit_edge245
  %indvars.iv284 = phi i64 [ 0, %.lr.ph249 ], [ %indvars.iv.next285, %._crit_edge245 ]
  %372 = load i32, ptr %36, align 4, !tbaa !114
  %373 = trunc nuw nsw i64 %indvars.iv284 to i32
  %374 = add nsw i32 %372, %373
  %375 = sext i32 %374 to i64
  %376 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %375) #9
  %377 = load double, ptr %376, align 8, !tbaa !117
  %378 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %357, i64 noundef %indvars.iv284) #9
  %379 = load i32, ptr %378, align 4, !tbaa !5
  %indvars.iv.next285 = add nuw nsw i64 %indvars.iv284, 1
  %380 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %357, i64 noundef %indvars.iv.next285) #9
  %381 = load i32, ptr %380, align 4, !tbaa !5
  %382 = icmp slt i32 %379, %381
  br i1 %382, label %.lr.ph244.preheader, label %._crit_edge245

.lr.ph244.preheader:                              ; preds = %371
  %383 = sext i32 %379 to i64
  br label %.lr.ph244

._crit_edge245:                                   ; preds = %.lr.ph244, %371
  %.0146.lcssa = phi double [ %377, %371 ], [ %399, %.lr.ph244 ]
  %384 = load i32, ptr %36, align 4, !tbaa !114
  %385 = add nsw i32 %384, %373
  %386 = sext i32 %385 to i64
  %387 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %386) #9
  store double %.0146.lcssa, ptr %387, align 8, !tbaa !117
  %388 = load i32, ptr %315, align 4, !tbaa !127
  %389 = sext i32 %388 to i64
  %390 = icmp slt i64 %indvars.iv.next285, %389
  br i1 %390, label %371, label %._crit_edge250, !llvm.loop !132

.lr.ph244:                                        ; preds = %.lr.ph244.preheader, %.lr.ph244
  %indvars.iv281 = phi i64 [ %383, %.lr.ph244.preheader ], [ %indvars.iv.next282, %.lr.ph244 ]
  %.0146241 = phi double [ %377, %.lr.ph244.preheader ], [ %399, %.lr.ph244 ]
  %391 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %358, i64 noundef %indvars.iv281) #9
  %392 = load i32, ptr %391, align 4, !tbaa !5
  %393 = sext i32 %392 to i64
  %394 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %393) #9
  %395 = load double, ptr %394, align 8, !tbaa !117
  %396 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %359, i64 noundef %indvars.iv281) #9
  %397 = load double, ptr %396, align 8, !tbaa !117
  %398 = fneg double %395
  %399 = call double @llvm.fmuladd.f64(double %398, double %397, double %.0146241)
  %indvars.iv.next282 = add nsw i64 %indvars.iv281, 1
  %400 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %357, i64 noundef %indvars.iv.next285) #9
  %401 = load i32, ptr %400, align 4, !tbaa !5
  %402 = sext i32 %401 to i64
  %403 = icmp slt i64 %indvars.iv.next282, %402
  br i1 %403, label %.lr.ph244, label %._crit_edge245, !llvm.loop !133

404:                                              ; preds = %._crit_edge250, %._crit_edge237
  %405 = load double, ptr %40, align 8, !tbaa !112
  %406 = fadd double %.0153.lcssa, %405
  store double %406, ptr %40, align 8, !tbaa !112
  %407 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZN17HighsSparseMatrixaSERKS_(ptr noundef nonnull align 8 dereferenceable(112) %30, ptr noundef nonnull align 8 dereferenceable(112) %2)
          to label %408 unwind label %420

408:                                              ; preds = %404
  invoke void @_ZN17HighsSparseMatrix13ensureColwiseEv(ptr noundef nonnull align 8 dereferenceable(112) %30)
          to label %409 unwind label %420

409:                                              ; preds = %408
  invoke void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112) %28, ptr noundef nonnull align 8 dereferenceable(112) %13)
          to label %410 unwind label %420

410:                                              ; preds = %409
  invoke void @_ZN17HighsSparseMatrix7addColsES_PKa(ptr noundef nonnull align 8 dereferenceable(112) %30, ptr noundef nonnull %28, ptr noundef null)
          to label %411 unwind label %422

411:                                              ; preds = %410
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %28) #9
  %412 = load i32, ptr %36, align 4, !tbaa !114
  %413 = add i32 %180, %177
  %414 = add i32 %413, %412
  %415 = load i32, ptr %34, align 8, !tbaa !115
  %416 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %43) #9
  %417 = trunc i64 %416 to i32
  %418 = icmp eq i32 %414, %417
  br i1 %418, label %424, label %419

419:                                              ; preds = %411
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.52, i32 noundef 708, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

420:                                              ; preds = %409, %408, %404
  %421 = landingpad { ptr, i32 }
          cleanup
  br label %465

422:                                              ; preds = %410
  %423 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %28) #9
  br label %465

424:                                              ; preds = %411
  %425 = getelementptr inbounds i8, ptr %0, i64 8732
  %426 = load i32, ptr %425, align 4, !tbaa !134
  %427 = icmp eq i32 %426, %414
  br i1 %427, label %429, label %428

428:                                              ; preds = %424
  call void @__assert_fail(ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.52, i32 noundef 709, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk7dualizeEv) #8
  unreachable

429:                                              ; preds = %424
  %430 = getelementptr inbounds i8, ptr %0, i64 8840
  %431 = load i32, ptr %430, align 8, !tbaa !135
  %432 = icmp eq i32 %431, 1
  %. = select i1 %432, i32 -1, i32 1
  store i32 %., ptr %430, align 8, !tbaa !135
  store i32 %414, ptr %29, align 8, !tbaa !136
  store i32 %415, ptr %35, align 4, !tbaa !137
  %433 = getelementptr inbounds i8, ptr %0, i64 9553
  store i8 1, ptr %433, align 1, !tbaa !138
  %434 = getelementptr inbounds i8, ptr %0, i64 9556
  store i8 0, ptr %434, align 4, !tbaa !139
  %435 = getelementptr inbounds i8, ptr %0, i64 9557
  store i8 0, ptr %435, align 1, !tbaa !140
  %436 = getelementptr inbounds i8, ptr %0, i64 9558
  store i8 0, ptr %436, align 2, !tbaa !141
  %437 = getelementptr inbounds i8, ptr %0, i64 8
  %438 = load ptr, ptr %437, align 8, !tbaa !142
  %439 = getelementptr inbounds i8, ptr %438, i64 896
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %439, i32 noundef 1, ptr noundef nonnull @.str.67, i32 noundef %414)
          to label %440 unwind label %451

440:                                              ; preds = %429
  %441 = sub i32 0, %180
  %.not174 = icmp eq i32 %177, %441
  br i1 %.not174, label %461, label %442

442:                                              ; preds = %440
  %443 = load ptr, ptr %437, align 8, !tbaa !142
  %444 = getelementptr inbounds i8, ptr %443, i64 896
  %445 = load i32, ptr %36, align 4, !tbaa !114
  %446 = sub nsw i32 %414, %445
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %444, i32 noundef 1, ptr noundef nonnull @.str.68, i32 noundef %446)
          to label %447 unwind label %451

447:                                              ; preds = %442
  %.not253 = icmp eq i32 %177, 0
  br i1 %.not253, label %.thread191, label %448

448:                                              ; preds = %447
  %449 = load ptr, ptr %437, align 8, !tbaa !142
  %450 = getelementptr inbounds i8, ptr %449, i64 896
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %450, i32 noundef 1, ptr noundef nonnull @.str.69, i32 noundef %177)
          to label %453 unwind label %451

451:                                              ; preds = %461, %.thread191.thread, %.thread193, %454, %448, %442, %429
  %452 = landingpad { ptr, i32 }
          cleanup
  br label %465

453:                                              ; preds = %448
  br i1 %.not254, label %.thread191.thread, label %454

454:                                              ; preds = %453
  %455 = load ptr, ptr %437, align 8, !tbaa !142
  %456 = getelementptr inbounds i8, ptr %455, i64 896
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %456, i32 noundef 1, ptr noundef nonnull @.str.70)
          to label %.thread193 unwind label %451

.thread191:                                       ; preds = %447
  br i1 %.not254, label %.thread191.thread, label %.thread193

.thread193:                                       ; preds = %454, %.thread191
  %457 = load ptr, ptr %437, align 8, !tbaa !142
  %458 = getelementptr inbounds i8, ptr %457, i64 896
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %458, i32 noundef 1, ptr noundef nonnull @.str.71, i32 noundef %180)
          to label %.thread191.thread unwind label %451

.thread191.thread:                                ; preds = %453, %.thread193, %.thread191
  %459 = load ptr, ptr %437, align 8, !tbaa !142
  %460 = getelementptr inbounds i8, ptr %459, i64 896
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %460, i32 noundef 1, ptr noundef nonnull @.str.72)
          to label %461 unwind label %451

461:                                              ; preds = %.thread191.thread, %440
  %462 = load ptr, ptr %437, align 8, !tbaa !142
  %463 = getelementptr inbounds i8, ptr %462, i64 896
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %463, i32 noundef 1, ptr noundef nonnull @.str.73, i32 noundef %415)
          to label %464 unwind label %451

464:                                              ; preds = %461
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %13) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %13) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #9
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %2) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %2) #9
  ret i32 0

465:                                              ; preds = %360, %420, %422, %451, %312, %201
  %.pn180.pn = phi { ptr, i32 } [ %.pn180, %201 ], [ %.pn176.pn.pn, %312 ], [ %452, %451 ], [ %423, %422 ], [ %421, %420 ], [ %361, %360 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  br label %466

466:                                              ; preds = %465, %184
  %.pn180.pn.pn = phi { ptr, i32 } [ %.pn180.pn, %465 ], [ %185, %184 ]
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %13) #9
  br label %467

467:                                              ; preds = %466, %182
  %.pn180.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn, %466 ], [ %183, %182 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %13) #9
  br label %468

468:                                              ; preds = %467, %149, %98
  %.pn185 = phi { ptr, i32 } [ %99, %98 ], [ %150, %149 ], [ %.pn180.pn.pn.pn, %467 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #9
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %2) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %2) #9
  resume { ptr, i32 } %.pn185
}

declare noundef zeroext i1 @_ZNK17HighsSparseMatrix9isColwiseEv(ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #4

declare noundef i32 @_ZNK17HighsSparseMatrix5numNzEv(ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE7reserveEm(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: inlinehint mustprogress uwtable
declare dso_local void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 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 #5 align 2

declare noundef zeroext i1 @_Z16highs_isInfinityd(double noundef) local_unnamed_addr #4

; 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 @_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 uwtable
declare dso_local void @_ZN17HighsSparseMatrixC2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #3 align 2

declare void @_ZN17HighsSparseMatrix13ensureColwiseEv(ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5 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 #5 align 2

declare void @_ZN17HighsSparseMatrix6addVecEiPKiPKdd(ptr noundef nonnull align 8 dereferenceable(112), i32 noundef, ptr noundef, ptr noundef, double noundef) local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE6assignEmRKi(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 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 nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 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 uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 align 2

declare void @_ZN17HighsSparseMatrix7addColsES_PKa(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #7 align 2

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #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 = { "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 = { 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 #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { 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 #8 = { noreturn nounwind }
attributes #9 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 14224}
!10 = !{!"_ZTS4HEkk", !11, i64 0, !11, i64 8, !11, i64 16, !12, i64 24, !45, i64 8600, !17, i64 9520, !65, i64 9552, !66, i64 9568, !72, i64 10608, !67, i64 10616, !73, i64 10736, !86, i64 10776, !27, i64 10784, !27, i64 10808, !23, i64 10832, !46, i64 10840, !46, i64 10952, !87, i64 11064, !104, i64 13928, !25, i64 14048, !25, i64 14056, !25, i64 14064, !6, i64 14072, !6, i64 14076, !6, i64 14080, !6, i64 14084, !23, i64 14088, !23, i64 14089, !105, i64 14092, !6, i64 14096, !6, i64 14100, !31, i64 14104, !27, i64 14128, !106, i64 14152, !106, i64 14184, !6, i64 14216, !6, i64 14220, !6, i64 14224, !25, i64 14232, !27, i64 14240, !27, i64 14264, !27, i64 14288, !27, i64 14312, !27, i64 14336, !31, i64 14360, !31, i64 14384, !25, i64 14408, !25, i64 14416, !25, i64 14424, !6, i64 14432, !6, i64 14436, !23, i64 14440, !6, i64 14444, !23, i64 14448, !23, i64 14449, !23, i64 14450, !23, i64 14451, !25, i64 14456, !107, i64 14464, !27, i64 14488, !111, i64 14512}
!11 = !{!"any pointer", !7, i64 0}
!12 = !{!"_ZTS20HighsSimplexAnalysis", !11, i64 0, !13, i64 8, !13, i64 32, !11, i64 56, !6, i64 64, !6, i64 68, !6, i64 72, !17, i64 80, !17, i64 112, !20, i64 144, !23, i64 240, !23, i64 241, !23, i64 242, !23, i64 243, !23, i64 244, !23, i64 245, !23, i64 246, !6, i64 248, !24, i64 252, !6, i64 256, !6, i64 260, !6, i64 264, !6, i64 268, !6, i64 272, !6, i64 276, !6, i64 280, !17, i64 288, !25, i64 320, !25, i64 328, !25, i64 336, !25, i64 344, !25, i64 352, !25, i64 360, !25, i64 368, !25, i64 376, !25, i64 384, !25, i64 392, !25, i64 400, !25, i64 408, !6, i64 416, !6, i64 420, !25, i64 424, !25, i64 432, !6, i64 440, !25, i64 448, !25, i64 456, !6, i64 464, !25, i64 472, !25, i64 480, !25, i64 488, !25, i64 496, !25, i64 504, !25, i64 512, !25, i64 520, !25, i64 528, !25, i64 536, !25, i64 544, !6, i64 552, !25, i64 560, !6, i64 568, !6, i64 572, !6, i64 576, !6, i64 580, !6, i64 584, !6, i64 588, !6, i64 592, !6, i64 596, !6, i64 600, !26, i64 608, !26, i64 760, !26, i64 912, !26, i64 1064, !26, i64 1216, !26, i64 1368, !26, i64 1520, !26, i64 1672, !26, i64 1824, !26, i64 1976, !6, i64 2128, !6, i64 2132, !6, i64 2136, !6, i64 2140, !25, i64 2144, !25, i64 2152, !6, i64 2160, !6, i64 2164, !6, i64 2168, !6, i64 2172, !6, i64 2176, !25, i64 2184, !25, i64 2192, !6, i64 2200, !25, i64 2208, !25, i64 2216, !6, i64 2224, !6, i64 2228, !25, i64 2232, !25, i64 2240, !27, i64 2248, !27, i64 2272, !27, i64 2296, !27, i64 2320, !35, i64 2344, !39, i64 2368, !6, i64 2376, !6, i64 2380, !6, i64 2384, !6, i64 2388, !25, i64 2392, !25, i64 2400, !25, i64 2408, !25, i64 2416, !25, i64 2424, !25, i64 2432, !25, i64 2440, !25, i64 2448, !25, i64 2456, !25, i64 2464, !6, i64 2472, !6, i64 2476, !25, i64 2480, !25, i64 2488, !25, i64 2496, !23, i64 2504, !25, i64 2512, !25, i64 2520, !6, i64 2528, !6, i64 2532, !6, i64 2536, !6, i64 2540, !6, i64 2544, !25, i64 2552, !25, i64 2560, !25, i64 2568, !25, i64 2576, !25, i64 2584, !25, i64 2592, !25, i64 2600, !25, i64 2608, !25, i64 2616, !6, i64 2624, !6, i64 2628, !7, i64 2632, !6, i64 4952, !6, i64 4956, !7, i64 4960, !7, i64 7600, !7, i64 7648, !26, i64 7664, !26, i64 7816, !26, i64 7968, !26, i64 8120, !26, i64 8272, !26, i64 8424}
!13 = !{!"_ZTSSt6vectorI15HighsTimerClockSaIS0_EE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseI15HighsTimerClockSaIS0_EE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseI15HighsTimerClockSaIS0_EE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseI15HighsTimerClockSaIS0_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !18, i64 0, !19, i64 8, !7, i64 16}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !11, i64 0}
!19 = !{!"long", !7, i64 0}
!20 = !{!"_ZTS15HighsLogOptions", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !21, i64 48, !11, i64 80, !23, i64 88}
!21 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !22, i64 0, !11, i64 24}
!22 = !{!"_ZTSSt14_Function_base", !7, i64 0, !11, i64 16}
!23 = !{!"bool", !7, i64 0}
!24 = !{!"_ZTS14EdgeWeightMode", !7, i64 0}
!25 = !{!"double", !7, i64 0}
!26 = !{!"_ZTS22HighsValueDistribution", !17, i64 0, !17, i64 32, !6, i64 64, !6, i64 68, !6, i64 72, !25, i64 80, !25, i64 88, !27, i64 96, !31, i64 120, !6, i64 144}
!27 = !{!"_ZTSSt6vectorIdSaIdEE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!31 = !{!"_ZTSSt6vectorIiSaIiEE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!35 = !{!"_ZTSSt6vectorI17TranStageAnalysisSaIS0_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseI17TranStageAnalysisSaIS0_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseI17TranStageAnalysisSaIS0_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseI17TranStageAnalysisSaIS0_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!39 = !{!"_ZTSSt10unique_ptrINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EE", !40, i64 0}
!40 = !{!"_ZTSSt15__uniq_ptr_dataINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_ELb1ELb1EE", !41, i64 0}
!41 = !{!"_ZTSSt15__uniq_ptr_implINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EE", !42, i64 0}
!42 = !{!"_ZTSSt5tupleIJPNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EEE", !43, i64 0}
!43 = !{!"_ZTSSt11_Tuple_implILm0EJPNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EEE", !44, i64 0}
!44 = !{!"_ZTSSt10_Head_baseILm0EPNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEELb0EE", !11, i64 0}
!45 = !{!"_ZTS7HighsLp", !6, i64 0, !6, i64 4, !27, i64 8, !27, i64 32, !27, i64 56, !27, i64 80, !27, i64 104, !46, i64 128, !48, i64 240, !25, i64 248, !17, i64 256, !17, i64 288, !6, i64 320, !6, i64 324, !49, i64 328, !49, i64 352, !53, i64 376, !57, i64 400, !57, i64 456, !6, i64 512, !6, i64 516, !63, i64 520, !23, i64 592, !23, i64 593, !6, i64 596, !23, i64 600, !64, i64 608}
!46 = !{!"_ZTS17HighsSparseMatrix", !47, i64 0, !6, i64 4, !6, i64 8, !31, i64 16, !31, i64 40, !31, i64 64, !27, i64 88}
!47 = !{!"_ZTS12MatrixFormat", !7, i64 0}
!48 = !{!"_ZTS8ObjSense", !7, i64 0}
!49 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!53 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!57 = !{!"_ZTS13HighsNameHash", !58, i64 0}
!58 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !59, i64 0}
!59 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE", !11, i64 0, !19, i64 8, !60, i64 16, !19, i64 24, !61, i64 32, !11, i64 48}
!60 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !11, i64 0}
!61 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !62, i64 0, !19, i64 8}
!62 = !{!"float", !7, i64 0}
!63 = !{!"_ZTS10HighsScale", !6, i64 0, !23, i64 4, !6, i64 8, !6, i64 12, !25, i64 16, !27, i64 24, !27, i64 48}
!64 = !{!"_ZTS11HighsLpMods", !31, i64 0, !31, i64 24, !27, i64 48, !27, i64 72, !53, i64 96, !31, i64 120, !27, i64 144, !31, i64 168, !27, i64 192, !31, i64 216, !27, i64 240, !27, i64 264, !27, i64 288}
!65 = !{!"_ZTS18HighsSimplexStatus", !23, i64 0, !23, i64 1, !23, i64 2, !23, i64 3, !23, i64 4, !23, i64 5, !23, i64 6, !23, i64 7, !23, i64 8, !23, i64 9, !23, i64 10, !23, i64 11, !23, i64 12}
!66 = !{!"_ZTS16HighsSimplexInfo", !27, i64 0, !27, i64 24, !27, i64 48, !27, i64 72, !27, i64 96, !27, i64 120, !27, i64 144, !27, i64 168, !27, i64 192, !27, i64 216, !27, i64 240, !27, i64 264, !27, i64 288, !31, i64 312, !31, i64 336, !31, i64 360, !31, i64 384, !27, i64 408, !6, i64 432, !6, i64 436, !23, i64 440, !23, i64 441, !67, i64 448, !6, i64 568, !6, i64 572, !6, i64 576, !27, i64 584, !27, i64 608, !27, i64 632, !27, i64 656, !6, i64 680, !6, i64 684, !6, i64 688, !6, i64 692, !25, i64 696, !25, i64 704, !25, i64 712, !25, i64 720, !6, i64 728, !6, i64 732, !25, i64 736, !25, i64 744, !25, i64 752, !25, i64 760, !25, i64 768, !25, i64 776, !25, i64 784, !25, i64 792, !25, i64 800, !25, i64 808, !23, i64 816, !25, i64 824, !25, i64 832, !6, i64 840, !25, i64 848, !25, i64 856, !25, i64 864, !23, i64 872, !23, i64 873, !23, i64 874, !23, i64 875, !23, i64 876, !23, i64 877, !23, i64 878, !23, i64 879, !23, i64 880, !23, i64 881, !23, i64 882, !23, i64 883, !23, i64 884, !23, i64 885, !23, i64 886, !6, i64 888, !25, i64 896, !25, i64 904, !6, i64 912, !25, i64 920, !25, i64 928, !6, i64 936, !6, i64 940, !6, i64 944, !6, i64 948, !6, i64 952, !6, i64 956, !6, i64 960, !6, i64 964, !6, i64 968, !6, i64 972, !6, i64 976, !6, i64 980, !6, i64 984, !6, i64 988, !6, i64 992, !6, i64 996, !25, i64 1000, !25, i64 1008, !25, i64 1016, !25, i64 1024, !6, i64 1032}
!67 = !{!"_ZTS12SimplexBasis", !31, i64 0, !68, i64 24, !68, i64 48, !19, i64 72, !6, i64 80, !6, i64 84, !17, i64 88}
!68 = !{!"_ZTSSt6vectorIaSaIaEE", !69, i64 0}
!69 = !{!"_ZTSSt12_Vector_baseIaSaIaEE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE12_Vector_implE", !71, i64 0}
!71 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!72 = !{!"_ZTS16HighsModelStatus", !7, i64 0}
!73 = !{!"_ZTS14HighsHashTableImvE", !74, i64 0, !80, i64 8, !19, i64 16, !19, i64 24, !19, i64 32}
!74 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEE", !75, i64 0}
!75 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterELb1ELb1EE", !76, i64 0}
!76 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEE", !77, i64 0}
!77 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEEE", !78, i64 0}
!78 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEEE", !79, i64 0}
!79 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryImvELb0EE", !11, i64 0}
!80 = !{!"_ZTSSt10unique_ptrIA_hSt14default_deleteIS0_EE", !81, i64 0}
!81 = !{!"_ZTSSt15__uniq_ptr_dataIhSt14default_deleteIA_hELb1ELb1EE", !82, i64 0}
!82 = !{!"_ZTSSt15__uniq_ptr_implIhSt14default_deleteIA_hEE", !83, i64 0}
!83 = !{!"_ZTSSt5tupleIJPhSt14default_deleteIA_hEEE", !84, i64 0}
!84 = !{!"_ZTSSt11_Tuple_implILm0EJPhSt14default_deleteIA_hEEE", !85, i64 0}
!85 = !{!"_ZTSSt10_Head_baseILm0EPhLb0EE", !11, i64 0}
!86 = !{!"_ZTS11HighsRandom", !19, i64 0}
!87 = !{!"_ZTS11HSimplexNla", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !88, i64 48, !23, i64 1960, !25, i64 1968, !101, i64 1976, !102, i64 2112}
!88 = !{!"_ZTS7HFactor", !25, i64 0, !25, i64 8, !6, i64 16, !31, i64 24, !31, i64 48, !31, i64 72, !89, i64 96, !6, i64 184, !6, i64 188, !6, i64 192, !6, i64 196, !6, i64 200, !6, i64 204, !6, i64 208, !25, i64 216, !23, i64 224, !11, i64 232, !11, i64 240, !11, i64 248, !11, i64 256, !25, i64 264, !25, i64 272, !6, i64 280, !25, i64 288, !90, i64 296, !20, i64 304, !23, i64 400, !23, i64 401, !6, i64 404, !6, i64 408, !11, i64 416, !6, i64 424, !31, i64 432, !27, i64 456, !31, i64 480, !31, i64 504, !31, i64 528, !27, i64 552, !31, i64 576, !31, i64 600, !31, i64 624, !31, i64 648, !31, i64 672, !31, i64 696, !31, i64 720, !27, i64 744, !27, i64 768, !31, i64 792, !31, i64 816, !31, i64 840, !31, i64 864, !31, i64 888, !31, i64 912, !96, i64 936, !27, i64 960, !31, i64 984, !31, i64 1008, !31, i64 1032, !31, i64 1056, !31, i64 1080, !31, i64 1104, !31, i64 1128, !31, i64 1152, !31, i64 1176, !31, i64 1200, !27, i64 1224, !31, i64 1248, !31, i64 1272, !27, i64 1296, !31, i64 1320, !31, i64 1344, !27, i64 1368, !6, i64 1392, !6, i64 1396, !31, i64 1400, !31, i64 1424, !31, i64 1448, !27, i64 1472, !31, i64 1496, !31, i64 1520, !31, i64 1544, !31, i64 1568, !27, i64 1592, !27, i64 1616, !31, i64 1640, !31, i64 1664, !31, i64 1688, !27, i64 1712, !100, i64 1736}
!89 = !{!"_ZTS12RefactorInfo", !23, i64 0, !31, i64 8, !31, i64 32, !68, i64 56, !25, i64 80}
!90 = !{!"_ZTSSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EE", !91, i64 0}
!91 = !{!"_ZTSSt15__uniq_ptr_dataIN7HFactor7LogDataESt14default_deleteIS1_ELb1ELb1EE", !92, i64 0}
!92 = !{!"_ZTSSt15__uniq_ptr_implIN7HFactor7LogDataESt14default_deleteIS1_EE", !93, i64 0}
!93 = !{!"_ZTSSt5tupleIJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !94, i64 0}
!94 = !{!"_ZTSSt11_Tuple_implILm0EJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !95, i64 0}
!95 = !{!"_ZTSSt10_Head_baseILm0EPN7HFactor7LogDataELb0EE", !11, i64 0}
!96 = !{!"_ZTSSt6vectorIcSaIcEE", !97, i64 0}
!97 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !98, i64 0}
!98 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !99, i64 0}
!99 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!100 = !{!"_ZTS11HVectorBaseIdE", !6, i64 0, !6, i64 4, !31, i64 8, !27, i64 32, !25, i64 56, !96, i64 64, !31, i64 88, !11, i64 112, !23, i64 120, !6, i64 124, !31, i64 128, !27, i64 152}
!101 = !{!"_ZTS17ProductFormUpdate", !23, i64 0, !6, i64 4, !6, i64 8, !31, i64 16, !27, i64 40, !31, i64 64, !31, i64 88, !27, i64 112}
!102 = !{!"_ZTS14SimplexIterate", !23, i64 0, !67, i64 8, !103, i64 128, !27, i64 728}
!103 = !{!"_ZTS24InvertibleRepresentation", !31, i64 0, !31, i64 24, !31, i64 48, !31, i64 72, !27, i64 96, !31, i64 120, !31, i64 144, !27, i64 168, !31, i64 192, !31, i64 216, !27, i64 240, !31, i64 264, !31, i64 288, !31, i64 312, !27, i64 336, !31, i64 360, !31, i64 384, !31, i64 408, !31, i64 432, !27, i64 456, !31, i64 480, !31, i64 504, !27, i64 528, !31, i64 552, !27, i64 576}
!104 = !{!"_ZTS8HotStart", !23, i64 0, !89, i64 8, !68, i64 96}
!105 = !{!"_ZTS16SimplexAlgorithm", !7, i64 0}
!106 = !{!"_ZTS14HighsRayRecord", !6, i64 0, !6, i64 4, !27, i64 8}
!107 = !{!"_ZTSSt6vectorI32HighsSimplexBadBasisChangeRecordSaIS0_EE", !108, i64 0}
!108 = !{!"_ZTSSt12_Vector_baseI32HighsSimplexBadBasisChangeRecordSaIS0_EE", !109, i64 0}
!109 = !{!"_ZTSNSt12_Vector_baseI32HighsSimplexBadBasisChangeRecordSaIS0_EE12_Vector_implE", !110, i64 0}
!110 = !{!"_ZTSNSt12_Vector_baseI32HighsSimplexBadBasisChangeRecordSaIS0_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!111 = !{!"_ZTS17HighsSimplexStats", !23, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !25, i64 24, !25, i64 32, !25, i64 40, !25, i64 48}
!112 = !{!10, !25, i64 8848}
!113 = !{!10, !25, i64 14232}
!114 = !{!10, !6, i64 14220}
!115 = !{!10, !6, i64 14216}
!116 = !{!46, !47, i64 0}
!117 = !{!25, !25, i64 0}
!118 = distinct !{!118, !119}
!119 = !{!"llvm.loop.mustprogress"}
!120 = distinct !{!120, !119}
!121 = !{!46, !6, i64 8}
!122 = distinct !{!122, !119}
!123 = distinct !{!123, !119}
!124 = distinct !{!124, !119}
!125 = distinct !{!125, !119}
!126 = distinct !{!126, !119}
!127 = !{!46, !6, i64 4}
!128 = distinct !{!128, !119}
!129 = distinct !{!129, !119}
!130 = distinct !{!130, !119}
!131 = distinct !{!131, !119}
!132 = distinct !{!132, !119}
!133 = distinct !{!133, !119}
!134 = !{!10, !6, i64 8732}
!135 = !{!10, !48, i64 8840}
!136 = !{!10, !6, i64 8600}
!137 = !{!10, !6, i64 8604}
!138 = !{!10, !23, i64 9553}
!139 = !{!10, !23, i64 9556}
!140 = !{!10, !23, i64 9557}
!141 = !{!10, !23, i64 9558}
!142 = !{!10, !11, i64 8}


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