; LLVM IR from ERGO-Code/HiGHS :: src/presolve/HPresolve.ll (ZN8presolve9HPresolve5debugERK7HighsLpRK12HighsOptions)

; 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.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.HighsSolution = type { i8, i8, %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20" }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = 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 }
%struct.HighsBasis = type { i8, i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::vector.211", %"class.std::vector.211" }
%"class.std::vector.211" = type { %"struct.std::_Vector_base.212" }
%"struct.std::_Vector_base.212" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsLp = type { i32, i32, %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %class.HighsSparseMatrix, i32, double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.67", %"class.std::vector.67", %"class.std::vector.72", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%class.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20" }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = 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.67" = type { %"struct.std::_Vector_base.68" }
%"struct.std::_Vector_base.68" = 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.72" = type { %"struct.std::_Vector_base.73" }
%"struct.std::_Vector_base.73" = 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.77" }
%"class.std::unordered_map.77" = type { %"class.std::_Hashtable.78" }
%"class.std::_Hashtable.78" = 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.20", %"class.std::vector.20" }
%struct.HighsLpMods = type { %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.72", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20" }
%"class.presolve::HighsPostsolveStack" = type { i64, double, double, double, double, %class.HighsDataStack, %"class.std::vector.0", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.10", %"class.std::vector.15", %"class.std::vector.15", i32, i32 }
%class.HighsDataStack = type { %"class.std::vector", i64 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl" }
%"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl" = type { %"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl_data" }
%"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.presolve::HPresolve" = type { ptr, ptr, ptr, ptr, double, %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.25", %"class.std::vector.25", %class.HighsLinearSumBounds, %class.HighsLinearSumBounds, %"class.std::vector.5", %"class.std::vector.10", %"class.std::vector.5", %"class.std::vector.10", %"class.std::vector.35", %"class.std::unordered_map", %"class.std::set", %"class.std::vector.48", i8, i64, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.10", %"class.std::vector.10", %"class.std::vector.53", i64, i32, i32, i32, i32, i32, i32, i8, i32, %class.HPresolveAnalysis }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = type { %"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsLinearSumBounds = type { %"class.std::vector.30", %"class.std::vector.30", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.30", %"class.std::vector.30", %"class.std::vector.5", %"class.std::vector.5", ptr, ptr, ptr, ptr, ptr, ptr }
%"class.std::vector.30" = type { %"struct.std::_Vector_base.31" }
%"struct.std::_Vector_base.31" = type { %"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.35" = type { %"struct.std::_Vector_base.36" }
%"struct.std::_Vector_base.36" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"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 }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int>>, std::less<std::pair<int, int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int>>, std::less<std::pair<int, int>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.48" = type { %"struct.std::_Vector_base.49" }
%"struct.std::_Vector_base.49" = type { %"struct.std::_Vector_base<std::_Rb_tree_const_iterator<std::pair<int, int>>, std::allocator<std::_Rb_tree_const_iterator<std::pair<int, int>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::_Rb_tree_const_iterator<std::pair<int, int>>, std::allocator<std::_Rb_tree_const_iterator<std::pair<int, int>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::_Rb_tree_const_iterator<std::pair<int, int>>, std::allocator<std::_Rb_tree_const_iterator<std::pair<int, int>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::_Rb_tree_const_iterator<std::pair<int, int>>, std::allocator<std::_Rb_tree_const_iterator<std::pair<int, int>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.53" = type { %"struct.std::_Vector_base.54" }
%"struct.std::_Vector_base.54" = type { %"struct.std::_Vector_base<unsigned short, std::allocator<unsigned short>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned short, std::allocator<unsigned short>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned short, std::allocator<unsigned short>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned short, std::allocator<unsigned short>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HPresolveAnalysis = type { ptr, ptr, ptr, ptr, ptr, i32, i32, %"class.std::vector.58", i8, i8, i32, i32, i32, %struct.HighsPresolveLog }
%"class.std::vector.58" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%struct.HighsPresolveLog = type { %"class.std::vector.62" }
%"class.std::vector.62" = type { %"struct.std::_Vector_base.63" }
%"struct.std::_Vector_base.63" = type { %"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.Highs = type { ptr, %struct.HighsSolution, %struct.HighsBasis, %struct.ICrashInfo, %class.HighsModel, %"class.std::vector.221", %class.HighsModel, %class.HighsTimer, %struct.HighsCallback, %class.HighsOptions, %class.HighsInfo, %struct.HighsRanging, %class.HighsIis, %"class.std::vector.110", i32, i32, i8, double, %"class.std::vector.20", %"class.std::vector.20", %class.HighsSparseMatrix, %class.HEkk, %struct.HighsPresolveLog, i32, i8, i32, i8, %class.PresolveComponent }
%struct.ICrashInfo = type { i32, double, double, double, double, double, %"class.std::vector.216", %"class.std::vector.20", double }
%"class.std::vector.216" = type { %"struct.std::_Vector_base.217" }
%"struct.std::_Vector_base.217" = type { %"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl" }
%"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl" = type { %"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.221" = type { %"struct.std::_Vector_base.222" }
%"struct.std::_Vector_base.222" = type { %"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsModel = type { %class.HighsLp, %class.HighsHessian }
%class.HighsHessian = type { i32, i32, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20" }
%class.HighsTimer = type <{ ptr, double, i32, [4 x i8], %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.67", i32, i32, i32, [4 x i8] }>
%struct.HighsCallback = type { %"class.std::function", ptr, ptr, %"class.std::vector.58", %struct.HighsCallbackDataOut, %struct.HighsCallbackDataIn }
%"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 } }
%struct.HighsCallbackDataOut = type { i32, double, i32, i32, i32, double, i64, i64, double, double, double, ptr, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, i32 }
%struct.HighsCallbackDataIn = type { i32, ptr }
%class.HighsOptions = type <{ %struct.HighsOptionsStruct, %"class.std::vector.97", i32, [4 x i8] }>
%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 }
%struct.HighsLogOptions = type <{ ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::function", ptr, i8, [7 x i8] }>
%"class.std::vector.97" = type { %"struct.std::_Vector_base.98" }
%"struct.std::_Vector_base.98" = type { %"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl" }
%"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl" = type { %"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsInfo = type { ptr, %struct.HighsInfoStruct, %"class.std::vector.226" }
%struct.HighsInfoStruct = type { i8, i64, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, i32, double, double, i32, double, double, double, double, double }
%"class.std::vector.226" = type { %"struct.std::_Vector_base.227" }
%"struct.std::_Vector_base.227" = type { %"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl" }
%"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl" = type { %"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsRanging = type { i8, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord }
%struct.HighsRangingRecord = type { %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5" }
%class.HighsIis = type { i8, i32, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.231" }
%"class.std::vector.231" = type { %"struct.std::_Vector_base.232" }
%"struct.std::_Vector_base.232" = type { %"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.110" = type { %"struct.std::_Vector_base.111" }
%"struct.std::_Vector_base.111" = type { %"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_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.259, %class.HighsRandom, %"class.std::vector.20", %"class.std::vector.20", i8, %class.HighsSparseMatrix, %class.HighsSparseMatrix, %class.HSimplexNla, %struct.HotStart, double, double, double, i32, i32, i32, i32, i8, i8, i32, i32, i32, %"class.std::vector.5", %"class.std::vector.20", %struct.HighsRayRecord, %struct.HighsRayRecord, i32, i32, i32, double, %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", double, double, double, i32, i32, i8, i32, i8, i8, i8, i8, double, %"class.std::vector.276", %"class.std::vector.20", %struct.HighsSimplexStats }
%class.HighsSimplexAnalysis = type { ptr, %"class.std::vector.236", %"class.std::vector.236", 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.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.241", %"class.std::unique_ptr.246", 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.236" = type { %"struct.std::_Vector_base.237" }
%"struct.std::_Vector_base.237" = 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 }
%"class.std::vector.241" = type { %"struct.std::_Vector_base.242" }
%"struct.std::_Vector_base.242" = 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.246" = type { %"struct.std::__uniq_ptr_data.247" }
%"struct.std::__uniq_ptr_data.247" = type { %"class.std::__uniq_ptr_impl.248" }
%"class.std::__uniq_ptr_impl.248" = type { %"class.std::tuple.249" }
%"class.std::tuple.249" = type { %"struct.std::_Tuple_impl.250" }
%"struct.std::_Tuple_impl.250" = type { %"struct.std::_Head_base.253" }
%"struct.std::_Head_base.253" = 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.20", %"class.std::vector.5", i32, [4 x i8] }>
%struct.HighsSimplexStatus = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
%struct.HighsSimplexInfo = type <{ %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", i32, i32, i8, i8, [6 x i8], %struct.SimplexBasis, i32, i32, i32, [4 x i8], %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", 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.5", %"class.std::vector.254", %"class.std::vector.254", i64, i32, i32, %"class.std::__cxx11::basic_string" }
%"class.std::vector.254" = type { %"struct.std::_Vector_base.255" }
%"struct.std::_Vector_base.255" = 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.259 = type { %"class.std::unique_ptr.260", %"class.std::unique_ptr.203", i64, i64, i64 }
%"class.std::unique_ptr.260" = type { %"struct.std::__uniq_ptr_data.261" }
%"struct.std::__uniq_ptr_data.261" = type { %"class.std::__uniq_ptr_impl.262" }
%"class.std::__uniq_ptr_impl.262" = type { %"class.std::tuple.263" }
%"class.std::tuple.263" = type { %"struct.std::_Tuple_impl.264" }
%"struct.std::_Tuple_impl.264" = type { %"struct.std::_Head_base.267" }
%"struct.std::_Head_base.267" = type { ptr }
%"class.std::unique_ptr.203" = type { %"struct.std::__uniq_ptr_data.204" }
%"struct.std::__uniq_ptr_data.204" = type { %"class.std::__uniq_ptr_impl.205" }
%"class.std::__uniq_ptr_impl.205" = type { %"class.std::tuple.206" }
%"class.std::tuple.206" = type { %"struct.std::_Tuple_impl.207" }
%"struct.std::_Tuple_impl.207" = type { %"struct.std::_Head_base.210" }
%"struct.std::_Head_base.210" = 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.5", %"class.std::vector.5", %"class.std::vector.5", %struct.RefactorInfo, i32, i32, i32, i32, i32, i32, i32, double, i8, ptr, ptr, ptr, ptr, double, double, i32, double, %"class.std::unique_ptr.268", %struct.HighsLogOptions, i8, i8, i32, i32, ptr, i32, %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", i32, i32, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %class.HVectorBase }
%struct.RefactorInfo = type { i8, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.254", double }
%"class.std::unique_ptr.268" = type { %"struct.std::__uniq_ptr_data.269" }
%"struct.std::__uniq_ptr_data.269" = type { %"class.std::__uniq_ptr_impl.270" }
%"class.std::__uniq_ptr_impl.270" = type { %"class.std::tuple.271" }
%"class.std::tuple.271" = type { %"struct.std::_Tuple_impl.272" }
%"struct.std::_Tuple_impl.272" = type { %"struct.std::_Head_base.275" }
%"struct.std::_Head_base.275" = type { ptr }
%class.HVectorBase = type { i32, i32, %"class.std::vector.5", %"class.std::vector.20", double, %"class.std::vector", %"class.std::vector.5", ptr, i8, i32, %"class.std::vector.5", %"class.std::vector.20" }
%struct.ProductFormUpdate = type { i8, i32, i32, %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20" }
%struct.SimplexIterate = type { i8, %struct.SimplexBasis, %struct.InvertibleRepresentation, %"class.std::vector.20" }
%struct.InvertibleRepresentation = type { %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.20" }
%struct.HotStart = type { i8, %struct.RefactorInfo, %"class.std::vector.254" }
%struct.HighsRayRecord = type { i32, i32, %"class.std::vector.20" }
%"class.std::vector.276" = type { %"struct.std::_Vector_base.277" }
%"struct.std::_Vector_base.277" = 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 }
%class.PresolveComponent = type { %class.HighsComponent.base, %struct.PresolveComponentInfo, %struct.PresolveComponentData, ptr, ptr, i32, i32 }
%class.HighsComponent.base = type <{ ptr, %struct.HighsComponentInfo, %struct.HighsComponentData, %struct.HighsComponentOptions }>
%struct.HighsComponentInfo = type { i8 }
%struct.HighsComponentData = type { i8 }
%struct.HighsComponentOptions = type { i8 }
%struct.PresolveComponentInfo = type { ptr, %struct.HighsComponentInfo, i32, i32, i32, double, double }
%struct.PresolveComponentData = type { ptr, %struct.HighsComponentData, %class.HighsLp, %"class.presolve::HighsPostsolveStack", %struct.HighsSolution, %struct.HighsBasis, %struct.HighsPresolveLog }
%"class.std::allocator" = type { i8 }
%"class.std::allocator.7" = type { i8 }
%"struct.presolve::dev_kkt_check::KktInfo" = type <{ %"class.std::map.533", i8, i8, i8, i8, i8, i8, [2 x i8] }>
%"class.std::map.533" = type { %"class.std::_Rb_tree.534" }
%"class.std::_Rb_tree.534" = type { %"struct.std::_Rb_tree<presolve::dev_kkt_check::KktCondition, std::pair<const presolve::dev_kkt_check::KktCondition, presolve::dev_kkt_check::KktConditionDetails>, std::_Select1st<std::pair<const presolve::dev_kkt_check::KktCondition, presolve::dev_kkt_check::KktConditionDetails>>, std::less<presolve::dev_kkt_check::KktCondition>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<presolve::dev_kkt_check::KktCondition, std::pair<const presolve::dev_kkt_check::KktCondition, presolve::dev_kkt_check::KktConditionDetails>, std::_Select1st<std::pair<const presolve::dev_kkt_check::KktCondition, presolve::dev_kkt_check::KktConditionDetails>>, std::less<presolve::dev_kkt_check::KktCondition>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.presolve::dev_kkt_check::State" = type { i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@_ZL15kHighsOffStringB5cxx11 = external hidden global %"class.std::__cxx11::basic_string", align 8
@.str.9 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [6 x i8], align 1
@__PRETTY_FUNCTION__._ZN8presolve9HPresolve5debugERK7HighsLpRK12HighsOptions = external hidden unnamed_addr constant [78 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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

declare i32 @printf(ptr noundef, ...) #3

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN8presolve9HPresolve10okSetInputER7HighsLpRK12HighsOptionsiP10HighsTimer(ptr noundef nonnull align 8 dereferenceable(1720), ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(1020), i32 noundef, ptr noundef) #2 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN8presolve9HPresolve3runERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720), ptr noundef nonnull align 8 dereferenceable(224)) #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8presolve19HighsPostsolveStackC2Ev(ptr noundef nonnull align 8 dereferenceable(224)) unnamed_addr #6 align 2

declare void @_ZN8presolve19HighsPostsolveStack19initializeIndexMapsEii(ptr noundef nonnull align 8 dereferenceable(224), i32 noundef, i32 noundef) #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8presolve19HighsPostsolveStackD2Ev(ptr noundef nonnull align 8 dereferenceable(224)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8presolve9HPresolve5debugERK7HighsLpRK12HighsOptions(ptr noundef nonnull align 8 dereferenceable(920) %0, ptr noundef nonnull align 8 dereferenceable(1020) %1) #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca %struct.HighsSolution, align 8
  %6 = alloca %struct.HighsBasis, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %struct.HighsSolution, align 8
  %10 = alloca %struct.HighsBasis, align 8
  %11 = alloca %class.HighsLp, align 8
  %12 = alloca i8, align 1
  %13 = alloca %"class.presolve::HighsPostsolveStack", align 8
  %14 = alloca %"class.presolve::HPresolve", align 8
  %15 = alloca i32, align 4
  %16 = alloca %class.Highs, align 8
  %17 = alloca %class.HighsLp, align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca %"class.std::vector.5", align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.std::allocator.7", align 1
  %23 = alloca %"class.std::vector.5", align 8
  %24 = alloca i32, align 4
  %25 = alloca %"class.std::allocator.7", align 1
  %26 = alloca %"class.std::vector.5", align 8
  %27 = alloca %"class.std::vector.5", align 8
  %28 = alloca %"class.std::vector.5", align 8
  %29 = alloca %"class.std::vector.20", align 8
  %30 = alloca %"struct.presolve::dev_kkt_check::KktInfo", align 8
  %31 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %34 = alloca %"struct.presolve::dev_kkt_check::State", align 8
  %35 = alloca i8, align 1
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i8, align 1
  %40 = alloca %"class.presolve::HPresolve", align 8
  %41 = alloca i8, align 1
  %42 = alloca %"class.presolve::HPresolve", align 8
  %43 = alloca %"class.presolve::HighsPostsolveStack", align 8
  %44 = alloca %struct.HighsBasis, align 8
  %45 = alloca %struct.HighsSolution, align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca %class.Highs, align 8
  %49 = alloca %class.HighsLp, align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator", align 1
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 104, ptr %5) #7
  call void @_ZN13HighsSolutionC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %5) #7
  call void @llvm.lifetime.start.p0(i64 96, ptr %6) #7
  invoke void @_ZN10HighsBasisC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %6)
          to label %52 unwind label %79

52:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 104, ptr %9) #7
  call void @_ZN13HighsSolutionC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %9) #7
  call void @llvm.lifetime.start.p0(i64 96, ptr %10) #7
  invoke void @_ZN10HighsBasisC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %10)
          to label %53 unwind label %83

53:                                               ; preds = %52
  call void @llvm.lifetime.start.p0(i64 920, ptr %11) #7
  %54 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN7HighsLpC2ERKS_(ptr noundef nonnull align 8 dereferenceable(920) %11, ptr noundef nonnull align 8 dereferenceable(920) %54)
          to label %55 unwind label %87

55:                                               ; preds = %53
  %56 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 16
  %57 = load ptr, ptr %3, align 8, !tbaa !5
  %58 = getelementptr inbounds %class.HighsLp, ptr %57, i32 0, i32 0
  %59 = load i32, ptr %58, align 8, !tbaa !9
  %60 = sext i32 %59 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #7
  store i8 0, ptr %12, align 1, !tbaa !44
  invoke void @_ZNSt6vectorI12HighsVarTypeSaIS0_EE6assignEmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %56, i64 noundef %60, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %61 unwind label %91

61:                                               ; preds = %55
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #7
  call void @llvm.lifetime.start.p0(i64 224, ptr %13) #7
  call void @_ZN8presolve19HighsPostsolveStackC2Ev(ptr noundef nonnull align 8 dereferenceable(224) %13) #7
  %62 = load ptr, ptr %3, align 8, !tbaa !5
  %63 = getelementptr inbounds %class.HighsLp, ptr %62, i32 0, i32 1
  %64 = load i32, ptr %63, align 4, !tbaa !46
  %65 = load ptr, ptr %3, align 8, !tbaa !5
  %66 = getelementptr inbounds %class.HighsLp, ptr %65, i32 0, i32 0
  %67 = load i32, ptr %66, align 8, !tbaa !9
  invoke void @_ZN8presolve19HighsPostsolveStack19initializeIndexMapsEii(ptr noundef nonnull align 8 dereferenceable(224) %13, i32 noundef %64, i32 noundef %67)
          to label %68 unwind label %95

68:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 1720, ptr %14) #7
  call void @_ZN8presolve9HPresolveC2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %14) #7
  %69 = load ptr, ptr %4, align 8, !tbaa !5
  %70 = load ptr, ptr %4, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %70, i32 0, i32 74
  %72 = load i32, ptr %71, align 8, !tbaa !47
  %73 = invoke noundef zeroext i1 @_ZN8presolve9HPresolve10okSetInputER7HighsLpRK12HighsOptionsiP10HighsTimer(ptr noundef nonnull align 8 dereferenceable(1720) %14, ptr noundef nonnull align 8 dereferenceable(920) %11, ptr noundef nonnull align 8 dereferenceable(1020) %69, i32 noundef %72, ptr noundef null)
          to label %74 unwind label %99

74:                                               ; preds = %68
  %75 = invoke noundef i32 @_ZN8presolve9HPresolve3runERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720) %14, ptr noundef nonnull align 8 dereferenceable(224) %13)
          to label %76 unwind label %99

76:                                               ; preds = %74
  %77 = icmp ne i32 %75, 0
  br i1 %77, label %78, label %103

78:                                               ; preds = %76
  store i32 1, ptr %15, align 4
  br label %152

79:                                               ; preds = %2
  %80 = landingpad { ptr, i32 }
          cleanup
  %81 = extractvalue { ptr, i32 } %80, 0
  store ptr %81, ptr %7, align 8
  %82 = extractvalue { ptr, i32 } %80, 1
  store i32 %82, ptr %8, align 4
  br label %582

83:                                               ; preds = %52
  %84 = landingpad { ptr, i32 }
          cleanup
  %85 = extractvalue { ptr, i32 } %84, 0
  store ptr %85, ptr %7, align 8
  %86 = extractvalue { ptr, i32 } %84, 1
  store i32 %86, ptr %8, align 4
  br label %581

87:                                               ; preds = %53
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %7, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %8, align 4
  br label %580

91:                                               ; preds = %55
  %92 = landingpad { ptr, i32 }
          cleanup
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %7, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #7
  br label %579

95:                                               ; preds = %165, %163, %161, %159, %157, %154, %61
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %7, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %8, align 4
  br label %578

99:                                               ; preds = %74, %68
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %7, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %8, align 4
  br label %241

103:                                              ; preds = %76
  call void @llvm.lifetime.start.p0(i64 20928, ptr %16) #7
  invoke void @_ZN5HighsC1Ev(ptr noundef nonnull align 8 dereferenceable(20928) %16)
          to label %104 unwind label %121

104:                                              ; preds = %103
  invoke void @_ZN7HighsLpC2ERKS_(ptr noundef nonnull align 8 dereferenceable(920) %17, ptr noundef nonnull align 8 dereferenceable(920) %11)
          to label %105 unwind label %125

105:                                              ; preds = %104
  %106 = invoke noundef i32 @_ZN5Highs9passModelE7HighsLp(ptr noundef nonnull align 8 dereferenceable(20928) %16, ptr noundef %17)
          to label %107 unwind label %129

107:                                              ; preds = %105
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %17) #7
  %108 = load ptr, ptr %4, align 8, !tbaa !5
  %109 = invoke noundef i32 @_ZN5Highs11passOptionsERK12HighsOptions(ptr noundef nonnull align 8 dereferenceable(20928) %16, ptr noundef nonnull align 8 dereferenceable(1020) %108)
          to label %110 unwind label %125

110:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %111 unwind label %133

111:                                              ; preds = %110
  %112 = invoke noundef i32 @_ZN5Highs14setOptionValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr noundef nonnull align 8 dereferenceable(20928) %16, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) @_ZL15kHighsOffStringB5cxx11)
          to label %113 unwind label %137

113:                                              ; preds = %111
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #7
  %114 = invoke noundef i32 @_ZN5Highs3runEv(ptr noundef nonnull align 8 dereferenceable(20928) %16)
          to label %115 unwind label %125

115:                                              ; preds = %113
  %116 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5Highs14getModelStatusEv(ptr noundef nonnull align 8 dereferenceable(20928) %16)
          to label %117 unwind label %125

117:                                              ; preds = %115
  %118 = load i32, ptr %116, align 4, !tbaa !52
  %119 = icmp ne i32 %118, 7
  br i1 %119, label %120, label %142

120:                                              ; preds = %117
  store i32 1, ptr %15, align 4
  br label %151

121:                                              ; preds = %103
  %122 = landingpad { ptr, i32 }
          cleanup
  %123 = extractvalue { ptr, i32 } %122, 0
  store ptr %123, ptr %7, align 8
  %124 = extractvalue { ptr, i32 } %122, 1
  store i32 %124, ptr %8, align 4
  br label %240

125:                                              ; preds = %148, %146, %144, %142, %115, %113, %107, %104
  %126 = landingpad { ptr, i32 }
          cleanup
  %127 = extractvalue { ptr, i32 } %126, 0
  store ptr %127, ptr %7, align 8
  %128 = extractvalue { ptr, i32 } %126, 1
  store i32 %128, ptr %8, align 4
  br label %239

129:                                              ; preds = %105
  %130 = landingpad { ptr, i32 }
          cleanup
  %131 = extractvalue { ptr, i32 } %130, 0
  store ptr %131, ptr %7, align 8
  %132 = extractvalue { ptr, i32 } %130, 1
  store i32 %132, ptr %8, align 4
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %17) #7
  br label %239

133:                                              ; preds = %110
  %134 = landingpad { ptr, i32 }
          cleanup
  %135 = extractvalue { ptr, i32 } %134, 0
  store ptr %135, ptr %7, align 8
  %136 = extractvalue { ptr, i32 } %134, 1
  store i32 %136, ptr %8, align 4
  br label %141

137:                                              ; preds = %111
  %138 = landingpad { ptr, i32 }
          cleanup
  %139 = extractvalue { ptr, i32 } %138, 0
  store ptr %139, ptr %7, align 8
  %140 = extractvalue { ptr, i32 } %138, 1
  store i32 %140, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %141

141:                                              ; preds = %137, %133
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #7
  br label %239

142:                                              ; preds = %117
  %143 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZNK5Highs11getSolutionEv(ptr noundef nonnull align 8 dereferenceable(20928) %16)
          to label %144 unwind label %125

144:                                              ; preds = %142
  %145 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZN13HighsSolutionaSERKS_(ptr noundef nonnull align 8 dereferenceable(104) %5, ptr noundef nonnull align 8 dereferenceable(104) %143)
          to label %146 unwind label %125

146:                                              ; preds = %144
  %147 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZNK5Highs8getBasisEv(ptr noundef nonnull align 8 dereferenceable(20928) %16)
          to label %148 unwind label %125

148:                                              ; preds = %146
  %149 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN10HighsBasisaSERKS_(ptr noundef nonnull align 8 dereferenceable(96) %6, ptr noundef nonnull align 8 dereferenceable(96) %147)
          to label %150 unwind label %125

150:                                              ; preds = %148
  store i32 0, ptr %15, align 4
  br label %151

151:                                              ; preds = %150, %120
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %16) #7
  call void @llvm.lifetime.end.p0(i64 20928, ptr %16) #7
  br label %152

152:                                              ; preds = %151, %78
  call void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %14) #7
  call void @llvm.lifetime.end.p0(i64 1720, ptr %14) #7
  %153 = load i32, ptr %15, align 4
  switch i32 %153, label %577 [
    i32 0, label %154
  ]

154:                                              ; preds = %152
  %155 = load ptr, ptr %3, align 8, !tbaa !5
  %156 = invoke noundef nonnull align 8 dereferenceable(920) ptr @_ZN7HighsLpaSERKS_(ptr noundef nonnull align 8 dereferenceable(920) %11, ptr noundef nonnull align 8 dereferenceable(920) %155)
          to label %157 unwind label %95

157:                                              ; preds = %154
  %158 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZN13HighsSolutionaSERKS_(ptr noundef nonnull align 8 dereferenceable(104) %9, ptr noundef nonnull align 8 dereferenceable(104) %5)
          to label %159 unwind label %95

159:                                              ; preds = %157
  %160 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN10HighsBasisaSERKS_(ptr noundef nonnull align 8 dereferenceable(96) %10, ptr noundef nonnull align 8 dereferenceable(96) %6)
          to label %161 unwind label %95

161:                                              ; preds = %159
  %162 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZN8presolve19HighsPostsolveStack4undoERK12HighsOptionsR13HighsSolutionR10HighsBasisi(ptr noundef nonnull align 8 dereferenceable(224) %13, ptr noundef nonnull align 8 dereferenceable(1020) %162, ptr noundef nonnull align 8 dereferenceable(104) %9, ptr noundef nonnull align 8 dereferenceable(96) %10, i32 noundef -1)
          to label %163 unwind label %95

163:                                              ; preds = %161
  %164 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_Z11refineBasisRK7HighsLpRK13HighsSolutionR10HighsBasis(ptr noundef nonnull align 8 dereferenceable(920) %164, ptr noundef nonnull align 8 dereferenceable(104) %9, ptr noundef nonnull align 8 dereferenceable(96) %10)
          to label %165 unwind label %95

165:                                              ; preds = %163
  %166 = invoke noundef i32 @_Z22calculateRowValuesQuadRK7HighsLpR13HighsSolutioni(ptr noundef nonnull align 8 dereferenceable(920) %11, ptr noundef nonnull align 8 dereferenceable(104) %9, i32 noundef -1)
          to label %167 unwind label %95

167:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #7
  %168 = load ptr, ptr %3, align 8, !tbaa !5
  %169 = getelementptr inbounds %class.HighsLp, ptr %168, i32 0, i32 0
  %170 = load i32, ptr %169, align 8, !tbaa !9
  %171 = sext i32 %170 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  store i32 1, ptr %21, align 4, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %171, ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %172 unwind label %242

172:                                              ; preds = %167
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #7
  %173 = load ptr, ptr %3, align 8, !tbaa !5
  %174 = getelementptr inbounds %class.HighsLp, ptr %173, i32 0, i32 1
  %175 = load i32, ptr %174, align 4, !tbaa !46
  %176 = sext i32 %175 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  store i32 1, ptr %24, align 4, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %176, ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %177 unwind label %246

177:                                              ; preds = %172
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %27) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #7
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr %30) #7
  invoke void @_ZN8presolve13dev_kkt_check8initInfoEv(ptr dead_on_unwind writable sret(%"struct.presolve::dev_kkt_check::KktInfo") align 8 %30)
          to label %178 unwind label %250

178:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  %179 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 7
  %180 = getelementptr inbounds %class.HighsSparseMatrix, ptr %179, i32 0, i32 3
  %181 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %180) #7
  %182 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %32, i32 0, i32 0
  store ptr %181, ptr %182, align 8
  %183 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %32, i64 noundef 1) #7
  %184 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %31, i32 0, i32 0
  store ptr %183, ptr %184, align 8
  %185 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 7
  %186 = getelementptr inbounds %class.HighsSparseMatrix, ptr %185, i32 0, i32 3
  %187 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %186) #7
  %188 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %33, i32 0, i32 0
  store ptr %187, ptr %188, align 8
  %189 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %31, i32 0, i32 0
  %190 = load ptr, ptr %189, align 8
  %191 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %33, i32 0, i32 0
  %192 = load ptr, ptr %191, align 8
  invoke void @_ZNSt6vectorIiSaIiEE6assignIN9__gnu_cxx17__normal_iteratorIPiS1_EEvEEvT_S7_(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr %190, ptr %192)
          to label %193 unwind label %254

193:                                              ; preds = %178
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  %194 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 1
  %195 = load i32, ptr %194, align 4, !tbaa !46
  %196 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 0
  %197 = load i32, ptr %196, align 8, !tbaa !9
  %198 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 7
  %199 = getelementptr inbounds %class.HighsSparseMatrix, ptr %198, i32 0, i32 3
  %200 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 7
  %201 = getelementptr inbounds %class.HighsSparseMatrix, ptr %200, i32 0, i32 5
  %202 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 7
  %203 = getelementptr inbounds %class.HighsSparseMatrix, ptr %202, i32 0, i32 6
  invoke void @_Z20highsSparseTransposeiiRKSt6vectorIiSaIiEES3_RKS_IdSaIdEERS1_S8_RS5_(i32 noundef %195, i32 noundef %197, ptr noundef nonnull align 8 dereferenceable(24) %199, ptr noundef nonnull align 8 dereferenceable(24) %201, ptr noundef nonnull align 8 dereferenceable(24) %203, ptr noundef nonnull align 8 dereferenceable(24) %27, ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(24) %29)
          to label %204 unwind label %258

204:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 168, ptr %34) #7
  %205 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 0
  %206 = load i32, ptr %205, align 8, !tbaa !9
  %207 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 1
  %208 = load i32, ptr %207, align 4, !tbaa !46
  %209 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 7
  %210 = getelementptr inbounds %class.HighsSparseMatrix, ptr %209, i32 0, i32 3
  %211 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 7
  %212 = getelementptr inbounds %class.HighsSparseMatrix, ptr %211, i32 0, i32 5
  %213 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 7
  %214 = getelementptr inbounds %class.HighsSparseMatrix, ptr %213, i32 0, i32 6
  %215 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 2
  %216 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 3
  %217 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 4
  %218 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 5
  %219 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 6
  %220 = getelementptr inbounds %struct.HighsSolution, ptr %9, i32 0, i32 2
  %221 = getelementptr inbounds %struct.HighsSolution, ptr %9, i32 0, i32 3
  %222 = getelementptr inbounds %struct.HighsSolution, ptr %9, i32 0, i32 4
  %223 = getelementptr inbounds %struct.HighsSolution, ptr %9, i32 0, i32 5
  %224 = getelementptr inbounds %struct.HighsBasis, ptr %10, i32 0, i32 7
  %225 = getelementptr inbounds %struct.HighsBasis, ptr %10, i32 0, i32 8
  invoke void @_ZN8presolve13dev_kkt_check5StateC2EiiRKSt6vectorIiSaIiEES6_S6_RKS2_IdSaIdEES6_S6_SA_SA_SA_SA_SA_SA_S6_S6_SA_SA_SA_SA_RKS2_I16HighsBasisStatusSaISB_EESF_(ptr noundef nonnull align 8 dereferenceable(168) %34, i32 noundef %206, i32 noundef %208, ptr noundef nonnull align 8 dereferenceable(24) %210, ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(24) %212, ptr noundef nonnull align 8 dereferenceable(24) %214, ptr noundef nonnull align 8 dereferenceable(24) %27, ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(24) %215, ptr noundef nonnull align 8 dereferenceable(24) %216, ptr noundef nonnull align 8 dereferenceable(24) %217, ptr noundef nonnull align 8 dereferenceable(24) %218, ptr noundef nonnull align 8 dereferenceable(24) %219, ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(24) %220, ptr noundef nonnull align 8 dereferenceable(24) %221, ptr noundef nonnull align 8 dereferenceable(24) %222, ptr noundef nonnull align 8 dereferenceable(24) %223, ptr noundef nonnull align 8 dereferenceable(24) %224, ptr noundef nonnull align 8 dereferenceable(24) %225)
          to label %226 unwind label %262

226:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #7
  %227 = invoke noundef zeroext i1 @_ZN8presolve13dev_kkt_check8checkKktERKNS0_5StateERNS0_7KktInfoE(ptr noundef nonnull align 8 dereferenceable(168) %34, ptr noundef nonnull align 8 dereferenceable(54) %30)
          to label %228 unwind label %266

228:                                              ; preds = %226
  %229 = zext i1 %227 to i8
  store i8 %229, ptr %35, align 1, !tbaa !55
  %230 = load i8, ptr %35, align 1, !tbaa !55, !range !56, !noundef !57
  %231 = trunc i8 %230 to i1
  br i1 %231, label %232, label %270

232:                                              ; preds = %228
  %233 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktInfo", ptr %30, i32 0, i32 6
  %234 = load i8, ptr %233, align 1, !tbaa !58, !range !56, !noundef !57
  %235 = trunc i8 %234 to i1
  br i1 %235, label %236, label %270

236:                                              ; preds = %232
  %237 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.165)
          to label %238 unwind label %266

238:                                              ; preds = %236
  store i32 1, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 168, ptr %34) #7
  call void @_ZN8presolve13dev_kkt_check7KktInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(54) %30) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %30) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %27) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #7
  br label %577

239:                                              ; preds = %141, %129, %125
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %16) #7
  br label %240

240:                                              ; preds = %239, %121
  call void @llvm.lifetime.end.p0(i64 20928, ptr %16) #7
  br label %241

241:                                              ; preds = %240, %99
  call void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %14) #7
  call void @llvm.lifetime.end.p0(i64 1720, ptr %14) #7
  br label %578

242:                                              ; preds = %167
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %7, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %576

246:                                              ; preds = %172
  %247 = landingpad { ptr, i32 }
          cleanup
  %248 = extractvalue { ptr, i32 } %247, 0
  store ptr %248, ptr %7, align 8
  %249 = extractvalue { ptr, i32 } %247, 1
  store i32 %249, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %575

250:                                              ; preds = %177
  %251 = landingpad { ptr, i32 }
          cleanup
  %252 = extractvalue { ptr, i32 } %251, 0
  store ptr %252, ptr %7, align 8
  %253 = extractvalue { ptr, i32 } %251, 1
  store i32 %253, ptr %8, align 4
  br label %574

254:                                              ; preds = %178
  %255 = landingpad { ptr, i32 }
          cleanup
  %256 = extractvalue { ptr, i32 } %255, 0
  store ptr %256, ptr %7, align 8
  %257 = extractvalue { ptr, i32 } %255, 1
  store i32 %257, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %573

258:                                              ; preds = %193
  %259 = landingpad { ptr, i32 }
          cleanup
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %7, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %8, align 4
  br label %573

262:                                              ; preds = %204
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %7, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %8, align 4
  br label %572

266:                                              ; preds = %236, %226
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %7, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %8, align 4
  br label %571

270:                                              ; preds = %232, %228
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  %271 = invoke noundef i64 @_ZNK8presolve19HighsPostsolveStack13numReductionsEv(ptr noundef nonnull align 8 dereferenceable(224) %13)
          to label %272 unwind label %348

272:                                              ; preds = %270
  store i64 %271, ptr %36, align 8, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #7
  store i64 0, ptr %37, align 8, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  %273 = load i64, ptr %36, align 8, !tbaa !68
  %274 = load i64, ptr %37, align 8, !tbaa !68
  %275 = add i64 %273, %274
  %276 = udiv i64 %275, 2
  store i64 %276, ptr %38, align 8, !tbaa !68
  br label %277

277:                                              ; preds = %557, %272
  %278 = load ptr, ptr %3, align 8, !tbaa !5
  %279 = invoke noundef nonnull align 8 dereferenceable(920) ptr @_ZN7HighsLpaSERKS_(ptr noundef nonnull align 8 dereferenceable(920) %11, ptr noundef nonnull align 8 dereferenceable(920) %278)
          to label %280 unwind label %352

280:                                              ; preds = %277
  %281 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 16
  %282 = load ptr, ptr %3, align 8, !tbaa !5
  %283 = getelementptr inbounds %class.HighsLp, ptr %282, i32 0, i32 0
  %284 = load i32, ptr %283, align 8, !tbaa !9
  %285 = sext i32 %284 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #7
  store i8 0, ptr %39, align 1, !tbaa !44
  invoke void @_ZNSt6vectorI12HighsVarTypeSaIS0_EE6assignEmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %281, i64 noundef %285, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %286 unwind label %356

286:                                              ; preds = %280
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 1720, ptr %40) #7
  call void @_ZN8presolve9HPresolveC2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %40) #7
  %287 = load ptr, ptr %4, align 8, !tbaa !5
  %288 = load ptr, ptr %4, align 8, !tbaa !5
  %289 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %288, i32 0, i32 74
  %290 = load i32, ptr %289, align 8, !tbaa !47
  %291 = invoke noundef zeroext i1 @_ZN8presolve9HPresolve10okSetInputER7HighsLpRK12HighsOptionsiP10HighsTimer(ptr noundef nonnull align 8 dereferenceable(1720) %40, ptr noundef nonnull align 8 dereferenceable(920) %11, ptr noundef nonnull align 8 dereferenceable(1020) %287, i32 noundef %290, ptr noundef null)
          to label %292 unwind label %360

292:                                              ; preds = %286
  invoke void @_ZN8presolve9HPresolve25computeIntermediateMatrixERSt6vectorIiSaIiEES4_Rm(ptr noundef nonnull align 8 dereferenceable(1720) %40, ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %293 unwind label %360

293:                                              ; preds = %292
  call void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %40) #7
  call void @llvm.lifetime.end.p0(i64 1720, ptr %40) #7
  %294 = load ptr, ptr %3, align 8, !tbaa !5
  %295 = invoke noundef nonnull align 8 dereferenceable(920) ptr @_ZN7HighsLpaSERKS_(ptr noundef nonnull align 8 dereferenceable(920) %11, ptr noundef nonnull align 8 dereferenceable(920) %294)
          to label %296 unwind label %352

296:                                              ; preds = %293
  %297 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 16
  %298 = load ptr, ptr %3, align 8, !tbaa !5
  %299 = getelementptr inbounds %class.HighsLp, ptr %298, i32 0, i32 0
  %300 = load i32, ptr %299, align 8, !tbaa !9
  %301 = sext i32 %300 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #7
  store i8 0, ptr %41, align 1, !tbaa !44
  invoke void @_ZNSt6vectorI12HighsVarTypeSaIS0_EE6assignEmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %297, i64 noundef %301, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %302 unwind label %364

302:                                              ; preds = %296
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #7
  call void @llvm.lifetime.start.p0(i64 1720, ptr %42) #7
  call void @_ZN8presolve9HPresolveC2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %42) #7
  %303 = load ptr, ptr %4, align 8, !tbaa !5
  %304 = load ptr, ptr %4, align 8, !tbaa !5
  %305 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %304, i32 0, i32 74
  %306 = load i32, ptr %305, align 8, !tbaa !47
  %307 = invoke noundef zeroext i1 @_ZN8presolve9HPresolve10okSetInputER7HighsLpRK12HighsOptionsiP10HighsTimer(ptr noundef nonnull align 8 dereferenceable(1720) %42, ptr noundef nonnull align 8 dereferenceable(920) %11, ptr noundef nonnull align 8 dereferenceable(1020) %303, i32 noundef %306, ptr noundef null)
          to label %308 unwind label %368

308:                                              ; preds = %302
  call void @llvm.lifetime.start.p0(i64 224, ptr %43) #7
  call void @_ZN8presolve19HighsPostsolveStackC2Ev(ptr noundef nonnull align 8 dereferenceable(224) %43) #7
  %309 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 1
  %310 = load i32, ptr %309, align 4, !tbaa !46
  %311 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 0
  %312 = load i32, ptr %311, align 8, !tbaa !9
  invoke void @_ZN8presolve19HighsPostsolveStack19initializeIndexMapsEii(ptr noundef nonnull align 8 dereferenceable(224) %43, i32 noundef %310, i32 noundef %312)
          to label %313 unwind label %372

313:                                              ; preds = %308
  %314 = load i64, ptr %38, align 8, !tbaa !68
  invoke void @_ZN8presolve9HPresolve17setReductionLimitEm(ptr noundef nonnull align 8 dereferenceable(1720) %42, i64 noundef %314)
          to label %315 unwind label %372

315:                                              ; preds = %313
  %316 = invoke noundef i32 @_ZN8presolve9HPresolve3runERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720) %42, ptr noundef nonnull align 8 dereferenceable(224) %43)
          to label %317 unwind label %372

317:                                              ; preds = %315
  %318 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZN13HighsSolutionaSERKS_(ptr noundef nonnull align 8 dereferenceable(104) %9, ptr noundef nonnull align 8 dereferenceable(104) %5)
          to label %319 unwind label %372

319:                                              ; preds = %317
  %320 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN10HighsBasisaSERKS_(ptr noundef nonnull align 8 dereferenceable(96) %10, ptr noundef nonnull align 8 dereferenceable(96) %6)
          to label %321 unwind label %372

321:                                              ; preds = %319
  %322 = load ptr, ptr %4, align 8, !tbaa !5
  %323 = invoke noundef i64 @_ZNK8presolve19HighsPostsolveStack13numReductionsEv(ptr noundef nonnull align 8 dereferenceable(224) %43)
          to label %324 unwind label %372

324:                                              ; preds = %321
  invoke void @_ZN8presolve19HighsPostsolveStack9undoUntilERK12HighsOptionsR13HighsSolutionR10HighsBasism(ptr noundef nonnull align 8 dereferenceable(224) %13, ptr noundef nonnull align 8 dereferenceable(1020) %322, ptr noundef nonnull align 8 dereferenceable(104) %9, ptr noundef nonnull align 8 dereferenceable(96) %10, i64 noundef %323)
          to label %325 unwind label %372

325:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 96, ptr %44) #7
  invoke void @_ZN10HighsBasisC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %44)
          to label %326 unwind label %376

326:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 104, ptr %45) #7
  call void @_ZN13HighsSolutionC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %45) #7
  %327 = getelementptr inbounds %struct.HighsBasis, ptr %44, i32 0, i32 7
  %328 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 0
  %329 = load i32, ptr %328, align 8, !tbaa !9
  %330 = sext i32 %329 to i64
  invoke void @_ZNSt6vectorI16HighsBasisStatusSaIS0_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %327, i64 noundef %330)
          to label %331 unwind label %380

331:                                              ; preds = %326
  %332 = getelementptr inbounds %struct.HighsSolution, ptr %45, i32 0, i32 3
  %333 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 0
  %334 = load i32, ptr %333, align 8, !tbaa !9
  %335 = sext i32 %334 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %332, i64 noundef %335)
          to label %336 unwind label %380

336:                                              ; preds = %331
  %337 = getelementptr inbounds %struct.HighsSolution, ptr %45, i32 0, i32 2
  %338 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 0
  %339 = load i32, ptr %338, align 8, !tbaa !9
  %340 = sext i32 %339 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %337, i64 noundef %340)
          to label %341 unwind label %380

341:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  store i32 0, ptr %46, align 4, !tbaa !54
  br label %342

342:                                              ; preds = %418, %341
  %343 = load i32, ptr %46, align 4, !tbaa !54
  %344 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 0
  %345 = load i32, ptr %344, align 8, !tbaa !9
  %346 = icmp ne i32 %343, %345
  br i1 %346, label %384, label %347

347:                                              ; preds = %342
  store i32 4, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %425

348:                                              ; preds = %270
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %7, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %8, align 4
  br label %570

352:                                              ; preds = %558, %293, %277
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %7, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %8, align 4
  br label %569

356:                                              ; preds = %280
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %7, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  br label %569

360:                                              ; preds = %292, %286
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %7, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %8, align 4
  call void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %40) #7
  call void @llvm.lifetime.end.p0(i64 1720, ptr %40) #7
  br label %569

364:                                              ; preds = %296
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %7, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #7
  br label %569

368:                                              ; preds = %302
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %7, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %8, align 4
  br label %568

372:                                              ; preds = %324, %321, %319, %317, %315, %313, %308
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %7, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %8, align 4
  br label %567

376:                                              ; preds = %325
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %7, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %8, align 4
  br label %566

380:                                              ; preds = %479, %477, %472, %430, %425, %336, %331, %326
  %381 = landingpad { ptr, i32 }
          cleanup
  %382 = extractvalue { ptr, i32 } %381, 0
  store ptr %382, ptr %7, align 8
  %383 = extractvalue { ptr, i32 } %381, 1
  store i32 %383, ptr %8, align 4
  br label %565

384:                                              ; preds = %342
  %385 = getelementptr inbounds %struct.HighsSolution, ptr %9, i32 0, i32 3
  %386 = load i32, ptr %46, align 4, !tbaa !54
  %387 = invoke noundef i32 @_ZNK8presolve19HighsPostsolveStack15getOrigColIndexEi(ptr noundef nonnull align 8 dereferenceable(224) %43, i32 noundef %386)
          to label %388 unwind label %421

388:                                              ; preds = %384
  %389 = sext i32 %387 to i64
  %390 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %385, i64 noundef %389) #7
  %391 = load double, ptr %390, align 8, !tbaa !69
  %392 = getelementptr inbounds %struct.HighsSolution, ptr %45, i32 0, i32 3
  %393 = load i32, ptr %46, align 4, !tbaa !54
  %394 = sext i32 %393 to i64
  %395 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %392, i64 noundef %394) #7
  store double %391, ptr %395, align 8, !tbaa !69
  %396 = getelementptr inbounds %struct.HighsSolution, ptr %9, i32 0, i32 2
  %397 = load i32, ptr %46, align 4, !tbaa !54
  %398 = invoke noundef i32 @_ZNK8presolve19HighsPostsolveStack15getOrigColIndexEi(ptr noundef nonnull align 8 dereferenceable(224) %43, i32 noundef %397)
          to label %399 unwind label %421

399:                                              ; preds = %388
  %400 = sext i32 %398 to i64
  %401 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %396, i64 noundef %400) #7
  %402 = load double, ptr %401, align 8, !tbaa !69
  %403 = getelementptr inbounds %struct.HighsSolution, ptr %45, i32 0, i32 2
  %404 = load i32, ptr %46, align 4, !tbaa !54
  %405 = sext i32 %404 to i64
  %406 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %403, i64 noundef %405) #7
  store double %402, ptr %406, align 8, !tbaa !69
  %407 = getelementptr inbounds %struct.HighsBasis, ptr %10, i32 0, i32 7
  %408 = load i32, ptr %46, align 4, !tbaa !54
  %409 = invoke noundef i32 @_ZNK8presolve19HighsPostsolveStack15getOrigColIndexEi(ptr noundef nonnull align 8 dereferenceable(224) %43, i32 noundef %408)
          to label %410 unwind label %421

410:                                              ; preds = %399
  %411 = sext i32 %409 to i64
  %412 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %407, i64 noundef %411) #7
  %413 = load i8, ptr %412, align 1, !tbaa !70
  %414 = getelementptr inbounds %struct.HighsBasis, ptr %44, i32 0, i32 7
  %415 = load i32, ptr %46, align 4, !tbaa !54
  %416 = sext i32 %415 to i64
  %417 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %414, i64 noundef %416) #7
  store i8 %413, ptr %417, align 1, !tbaa !70
  br label %418

418:                                              ; preds = %410
  %419 = load i32, ptr %46, align 4, !tbaa !54
  %420 = add nsw i32 %419, 1
  store i32 %420, ptr %46, align 4, !tbaa !54
  br label %342, !llvm.loop !72

421:                                              ; preds = %399, %388, %384
  %422 = landingpad { ptr, i32 }
          cleanup
  %423 = extractvalue { ptr, i32 } %422, 0
  store ptr %423, ptr %7, align 8
  %424 = extractvalue { ptr, i32 } %422, 1
  store i32 %424, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %565

425:                                              ; preds = %347
  %426 = getelementptr inbounds %struct.HighsBasis, ptr %44, i32 0, i32 8
  %427 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 1
  %428 = load i32, ptr %427, align 4, !tbaa !46
  %429 = sext i32 %428 to i64
  invoke void @_ZNSt6vectorI16HighsBasisStatusSaIS0_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %426, i64 noundef %429)
          to label %430 unwind label %380

430:                                              ; preds = %425
  %431 = getelementptr inbounds %struct.HighsSolution, ptr %45, i32 0, i32 5
  %432 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 1
  %433 = load i32, ptr %432, align 4, !tbaa !46
  %434 = sext i32 %433 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %431, i64 noundef %434)
          to label %435 unwind label %380

435:                                              ; preds = %430
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #7
  store i32 0, ptr %47, align 4, !tbaa !54
  br label %436

436:                                              ; preds = %465, %435
  %437 = load i32, ptr %47, align 4, !tbaa !54
  %438 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 1
  %439 = load i32, ptr %438, align 4, !tbaa !46
  %440 = icmp ne i32 %437, %439
  br i1 %440, label %442, label %441

441:                                              ; preds = %436
  store i32 7, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br label %472

442:                                              ; preds = %436
  %443 = getelementptr inbounds %struct.HighsSolution, ptr %9, i32 0, i32 5
  %444 = load i32, ptr %47, align 4, !tbaa !54
  %445 = invoke noundef i32 @_ZNK8presolve19HighsPostsolveStack15getOrigRowIndexEi(ptr noundef nonnull align 8 dereferenceable(224) %43, i32 noundef %444)
          to label %446 unwind label %468

446:                                              ; preds = %442
  %447 = sext i32 %445 to i64
  %448 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %443, i64 noundef %447) #7
  %449 = load double, ptr %448, align 8, !tbaa !69
  %450 = getelementptr inbounds %struct.HighsSolution, ptr %45, i32 0, i32 5
  %451 = load i32, ptr %47, align 4, !tbaa !54
  %452 = sext i32 %451 to i64
  %453 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %450, i64 noundef %452) #7
  store double %449, ptr %453, align 8, !tbaa !69
  %454 = getelementptr inbounds %struct.HighsBasis, ptr %10, i32 0, i32 8
  %455 = load i32, ptr %47, align 4, !tbaa !54
  %456 = invoke noundef i32 @_ZNK8presolve19HighsPostsolveStack15getOrigRowIndexEi(ptr noundef nonnull align 8 dereferenceable(224) %43, i32 noundef %455)
          to label %457 unwind label %468

457:                                              ; preds = %446
  %458 = sext i32 %456 to i64
  %459 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %454, i64 noundef %458) #7
  %460 = load i8, ptr %459, align 1, !tbaa !70
  %461 = getelementptr inbounds %struct.HighsBasis, ptr %44, i32 0, i32 8
  %462 = load i32, ptr %47, align 4, !tbaa !54
  %463 = sext i32 %462 to i64
  %464 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %461, i64 noundef %463) #7
  store i8 %460, ptr %464, align 1, !tbaa !70
  br label %465

465:                                              ; preds = %457
  %466 = load i32, ptr %47, align 4, !tbaa !54
  %467 = add nsw i32 %466, 1
  store i32 %467, ptr %47, align 4, !tbaa !54
  br label %436, !llvm.loop !74

468:                                              ; preds = %446, %442
  %469 = landingpad { ptr, i32 }
          cleanup
  %470 = extractvalue { ptr, i32 } %469, 0
  store ptr %470, ptr %7, align 8
  %471 = extractvalue { ptr, i32 } %469, 1
  store i32 %471, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br label %565

472:                                              ; preds = %441
  %473 = getelementptr inbounds %struct.HighsSolution, ptr %45, i32 0, i32 4
  %474 = getelementptr inbounds %class.HighsLp, ptr %11, i32 0, i32 1
  %475 = load i32, ptr %474, align 4, !tbaa !46
  %476 = sext i32 %475 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %473, i64 noundef %476)
          to label %477 unwind label %380

477:                                              ; preds = %472
  %478 = invoke noundef i32 @_Z22calculateRowValuesQuadRK7HighsLpR13HighsSolutioni(ptr noundef nonnull align 8 dereferenceable(920) %11, ptr noundef nonnull align 8 dereferenceable(104) %9, i32 noundef -1)
          to label %479 unwind label %380

479:                                              ; preds = %477
  %480 = getelementptr inbounds %struct.HighsBasis, ptr %44, i32 0, i32 0
  store i8 1, ptr %480, align 8, !tbaa !75
  %481 = getelementptr inbounds %struct.HighsBasis, ptr %44, i32 0, i32 2
  store i8 1, ptr %481, align 2, !tbaa !81
  invoke void @_Z11refineBasisRK7HighsLpRK13HighsSolutionR10HighsBasis(ptr noundef nonnull align 8 dereferenceable(920) %11, ptr noundef nonnull align 8 dereferenceable(104) %45, ptr noundef nonnull align 8 dereferenceable(96) %44)
          to label %482 unwind label %380

482:                                              ; preds = %479
  call void @llvm.lifetime.start.p0(i64 20928, ptr %48) #7
  invoke void @_ZN5HighsC1Ev(ptr noundef nonnull align 8 dereferenceable(20928) %48)
          to label %483 unwind label %517

483:                                              ; preds = %482
  %484 = load ptr, ptr %4, align 8, !tbaa !5
  %485 = invoke noundef i32 @_ZN5Highs11passOptionsERK12HighsOptions(ptr noundef nonnull align 8 dereferenceable(20928) %48, ptr noundef nonnull align 8 dereferenceable(1020) %484)
          to label %486 unwind label %521

486:                                              ; preds = %483
  invoke void @_ZN7HighsLpC2ERKS_(ptr noundef nonnull align 8 dereferenceable(920) %49, ptr noundef nonnull align 8 dereferenceable(920) %11)
          to label %487 unwind label %521

487:                                              ; preds = %486
  %488 = invoke noundef i32 @_ZN5Highs9passModelE7HighsLp(ptr noundef nonnull align 8 dereferenceable(20928) %48, ptr noundef %49)
          to label %489 unwind label %525

489:                                              ; preds = %487
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %49) #7
  %490 = getelementptr inbounds %struct.HighsBasis, ptr %44, i32 0, i32 6
  %491 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %490, ptr noundef @.str.166)
          to label %492 unwind label %521

492:                                              ; preds = %489
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %493 unwind label %529

493:                                              ; preds = %492
  %494 = invoke noundef i32 @_ZN5Highs8setBasisERK10HighsBasisRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(20928) %48, ptr noundef nonnull align 8 dereferenceable(96) %44, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %495 unwind label %533

495:                                              ; preds = %493
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #7
  %496 = invoke noundef i32 @_ZN5Highs3runEv(ptr noundef nonnull align 8 dereferenceable(20928) %48)
          to label %497 unwind label %521

497:                                              ; preds = %495
  %498 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK5Highs7getInfoEv(ptr noundef nonnull align 8 dereferenceable(20928) %48)
          to label %499 unwind label %521

499:                                              ; preds = %497
  %500 = getelementptr inbounds i8, ptr %498, i64 8
  %501 = getelementptr inbounds %struct.HighsInfoStruct, ptr %500, i32 0, i32 2
  %502 = load i32, ptr %501, align 8, !tbaa !82
  %503 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.167, i32 noundef %502)
          to label %504 unwind label %521

504:                                              ; preds = %499
  %505 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK5Highs7getInfoEv(ptr noundef nonnull align 8 dereferenceable(20928) %48)
          to label %506 unwind label %521

506:                                              ; preds = %504
  %507 = getelementptr inbounds i8, ptr %505, i64 8
  %508 = getelementptr inbounds %struct.HighsInfoStruct, ptr %507, i32 0, i32 2
  %509 = load i32, ptr %508, align 8, !tbaa !82
  %510 = icmp eq i32 %509, 0
  %511 = zext i1 %510 to i8
  store i8 %511, ptr %35, align 1, !tbaa !55
  %512 = load i64, ptr %37, align 8, !tbaa !68
  %513 = load i64, ptr %36, align 8, !tbaa !68
  %514 = sub i64 %513, 1
  %515 = icmp eq i64 %512, %514
  br i1 %515, label %516, label %538

516:                                              ; preds = %506
  store i32 2, ptr %15, align 4
  br label %554

517:                                              ; preds = %482
  %518 = landingpad { ptr, i32 }
          cleanup
  %519 = extractvalue { ptr, i32 } %518, 0
  store ptr %519, ptr %7, align 8
  %520 = extractvalue { ptr, i32 } %518, 1
  store i32 %520, ptr %8, align 4
  br label %564

521:                                              ; preds = %545, %504, %499, %497, %495, %489, %486, %483
  %522 = landingpad { ptr, i32 }
          cleanup
  %523 = extractvalue { ptr, i32 } %522, 0
  store ptr %523, ptr %7, align 8
  %524 = extractvalue { ptr, i32 } %522, 1
  store i32 %524, ptr %8, align 4
  br label %563

525:                                              ; preds = %487
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %7, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %8, align 4
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %49) #7
  br label %563

529:                                              ; preds = %492
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %7, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %8, align 4
  br label %537

533:                                              ; preds = %493
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %7, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %537

537:                                              ; preds = %533, %529
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #7
  br label %563

538:                                              ; preds = %506
  %539 = load i8, ptr %35, align 1, !tbaa !55, !range !56, !noundef !57
  %540 = trunc i8 %539 to i1
  br i1 %540, label %541, label %543

541:                                              ; preds = %538
  %542 = load i64, ptr %38, align 8, !tbaa !68
  store i64 %542, ptr %36, align 8, !tbaa !68
  br label %545

543:                                              ; preds = %538
  %544 = load i64, ptr %38, align 8, !tbaa !68
  store i64 %544, ptr %37, align 8, !tbaa !68
  br label %545

545:                                              ; preds = %543, %541
  %546 = load i64, ptr %37, align 8, !tbaa !68
  %547 = load i64, ptr %36, align 8, !tbaa !68
  %548 = add i64 %546, %547
  %549 = udiv i64 %548, 2
  store i64 %549, ptr %38, align 8, !tbaa !68
  %550 = load i64, ptr %36, align 8, !tbaa !68
  %551 = load i64, ptr %37, align 8, !tbaa !68
  %552 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.168, i64 noundef %550, i64 noundef %551)
          to label %553 unwind label %521

553:                                              ; preds = %545
  store i32 0, ptr %15, align 4
  br label %554

554:                                              ; preds = %553, %516
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %48) #7
  call void @llvm.lifetime.end.p0(i64 20928, ptr %48) #7
  call void @_ZN13HighsSolutionD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %45) #7
  call void @llvm.lifetime.end.p0(i64 104, ptr %45) #7
  call void @_ZN10HighsBasisD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %44) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr %44) #7
  call void @_ZN8presolve19HighsPostsolveStackD2Ev(ptr noundef nonnull align 8 dereferenceable(224) %43) #7
  call void @llvm.lifetime.end.p0(i64 224, ptr %43) #7
  call void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %42) #7
  call void @llvm.lifetime.end.p0(i64 1720, ptr %42) #7
  %555 = load i32, ptr %15, align 4
  switch i32 %555, label %588 [
    i32 0, label %556
    i32 2, label %558
  ]

556:                                              ; preds = %554
  br label %557

557:                                              ; preds = %556
  br i1 true, label %277, label %558, !llvm.loop !84

558:                                              ; preds = %557, %554
  %559 = load i64, ptr %36, align 8, !tbaa !68
  %560 = load i64, ptr %37, align 8, !tbaa !68
  %561 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.169, i64 noundef %559, i64 noundef %560)
          to label %562 unwind label %352

562:                                              ; preds = %558
  call void @__assert_fail(ptr noundef @.str.170, ptr noundef @.str.55, i32 noundef 6632, ptr noundef @__PRETTY_FUNCTION__._ZN8presolve9HPresolve5debugERK7HighsLpRK12HighsOptions) #8
  unreachable

563:                                              ; preds = %537, %525, %521
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %48) #7
  br label %564

564:                                              ; preds = %563, %517
  call void @llvm.lifetime.end.p0(i64 20928, ptr %48) #7
  br label %565

565:                                              ; preds = %564, %468, %421, %380
  call void @_ZN13HighsSolutionD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %45) #7
  call void @llvm.lifetime.end.p0(i64 104, ptr %45) #7
  call void @_ZN10HighsBasisD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %44) #7
  br label %566

566:                                              ; preds = %565, %376
  call void @llvm.lifetime.end.p0(i64 96, ptr %44) #7
  br label %567

567:                                              ; preds = %566, %372
  call void @_ZN8presolve19HighsPostsolveStackD2Ev(ptr noundef nonnull align 8 dereferenceable(224) %43) #7
  call void @llvm.lifetime.end.p0(i64 224, ptr %43) #7
  br label %568

568:                                              ; preds = %567, %368
  call void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %42) #7
  call void @llvm.lifetime.end.p0(i64 1720, ptr %42) #7
  br label %569

569:                                              ; preds = %568, %364, %360, %356, %352
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  br label %570

570:                                              ; preds = %569, %348
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  br label %571

571:                                              ; preds = %570, %266
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  br label %572

572:                                              ; preds = %571, %262
  call void @llvm.lifetime.end.p0(i64 168, ptr %34) #7
  br label %573

573:                                              ; preds = %572, %258, %254
  call void @_ZN8presolve13dev_kkt_check7KktInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(54) %30) #7
  br label %574

574:                                              ; preds = %573, %250
  call void @llvm.lifetime.end.p0(i64 56, ptr %30) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %27) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  br label %575

575:                                              ; preds = %574, %246
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #7
  br label %576

576:                                              ; preds = %575, %242
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #7
  br label %578

577:                                              ; preds = %238, %152
  call void @_ZN8presolve19HighsPostsolveStackD2Ev(ptr noundef nonnull align 8 dereferenceable(224) %13) #7
  call void @llvm.lifetime.end.p0(i64 224, ptr %13) #7
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %11) #7
  call void @llvm.lifetime.end.p0(i64 920, ptr %11) #7
  call void @_ZN10HighsBasisD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %10) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr %10) #7
  call void @_ZN13HighsSolutionD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %9) #7
  call void @llvm.lifetime.end.p0(i64 104, ptr %9) #7
  call void @_ZN10HighsBasisD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %6) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr %6) #7
  call void @_ZN13HighsSolutionD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %5) #7
  call void @llvm.lifetime.end.p0(i64 104, ptr %5) #7
  ret void

578:                                              ; preds = %576, %241, %95
  call void @_ZN8presolve19HighsPostsolveStackD2Ev(ptr noundef nonnull align 8 dereferenceable(224) %13) #7
  call void @llvm.lifetime.end.p0(i64 224, ptr %13) #7
  br label %579

579:                                              ; preds = %578, %91
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %11) #7
  br label %580

580:                                              ; preds = %579, %87
  call void @llvm.lifetime.end.p0(i64 920, ptr %11) #7
  call void @_ZN10HighsBasisD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %10) #7
  br label %581

581:                                              ; preds = %580, %83
  call void @llvm.lifetime.end.p0(i64 96, ptr %10) #7
  call void @_ZN13HighsSolutionD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %9) #7
  call void @llvm.lifetime.end.p0(i64 104, ptr %9) #7
  call void @_ZN10HighsBasisD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %6) #7
  br label %582

582:                                              ; preds = %581, %79
  call void @llvm.lifetime.end.p0(i64 96, ptr %6) #7
  call void @_ZN13HighsSolutionD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %5) #7
  call void @llvm.lifetime.end.p0(i64 104, ptr %5) #7
  br label %583

583:                                              ; preds = %582
  %584 = load ptr, ptr %7, align 8
  %585 = load i32, ptr %8, align 4
  %586 = insertvalue { ptr, i32 } poison, ptr %584, 0
  %587 = insertvalue { ptr, i32 } %586, i32 %585, 1
  resume { ptr, i32 } %587

588:                                              ; preds = %554
  unreachable
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN13HighsSolutionC2Ev(ptr noundef nonnull align 8 dereferenceable(104)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10HighsBasisC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7HighsLpC2ERKS_(ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(920)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8presolve9HPresolveC2Ev(ptr noundef nonnull align 8 dereferenceable(1720)) unnamed_addr #6 align 2

declare void @_ZN5HighsC1Ev(ptr noundef nonnull align 8 dereferenceable(20928)) unnamed_addr #3

declare noundef i32 @_ZN5Highs9passModelE7HighsLp(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920)) unnamed_addr #6 align 2

declare noundef i32 @_ZN5Highs11passOptionsERK12HighsOptions(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef nonnull align 8 dereferenceable(1020)) #3

declare noundef i32 @_ZN5Highs14setOptionValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #3

declare noundef i32 @_ZN5Highs3runEv(ptr noundef nonnull align 8 dereferenceable(20928)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5Highs14getModelStatusEv(ptr noundef nonnull align 8 dereferenceable(20928)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(104) ptr @_ZNK5Highs11getSolutionEv(ptr noundef nonnull align 8 dereferenceable(20928)) #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(96) ptr @_ZNK5Highs8getBasisEv(ptr noundef nonnull align 8 dereferenceable(20928)) #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8presolve19HighsPostsolveStack4undoERK12HighsOptionsR13HighsSolutionR10HighsBasisi(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(1020), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(96), i32 noundef) #2 align 2

declare void @_Z11refineBasisRK7HighsLpRK13HighsSolutionR10HighsBasis(ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(96)) #3

declare noundef i32 @_Z22calculateRowValuesQuadRK7HighsLpR13HighsSolutioni(ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(104), i32 noundef) #3

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

declare void @_ZN8presolve13dev_kkt_check8initInfoEv(ptr dead_on_unwind writable sret(%"struct.presolve::dev_kkt_check::KktInfo") align 8) #3

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

declare void @_Z20highsSparseTransposeiiRKSt6vectorIiSaIiEES3_RKS_IdSaIdEERS1_S8_RS5_(i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #3

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

declare noundef zeroext i1 @_ZN8presolve13dev_kkt_check8checkKktERKNS0_5StateERNS0_7KktInfoE(ptr noundef nonnull align 8 dereferenceable(168), ptr noundef nonnull align 8 dereferenceable(54)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8presolve19HighsPostsolveStack9undoUntilERK12HighsOptionsR13HighsSolutionR10HighsBasism(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(1020), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(96), i64 noundef) #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #2 align 2

declare noundef i32 @_ZN5Highs8setBasisERK10HighsBasisRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(32)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(184) ptr @_ZNK5Highs7getInfoEv(ptr noundef nonnull align 8 dereferenceable(20928)) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN13HighsSolutionD2Ev(ptr noundef nonnull align 8 dereferenceable(104)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN10HighsBasisD2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8presolve13dev_kkt_check7KktInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(54)) unnamed_addr #6 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #6 = { 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 #7 = { nounwind }
attributes #8 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTS7HighsLp", !11, i64 0, !11, i64 4, !12, i64 8, !12, i64 32, !12, i64 56, !12, i64 80, !12, i64 104, !16, i64 128, !22, i64 240, !23, i64 248, !24, i64 256, !24, i64 288, !11, i64 320, !11, i64 324, !27, i64 328, !27, i64 352, !31, i64 376, !35, i64 400, !35, i64 456, !11, i64 512, !11, i64 516, !41, i64 520, !42, i64 592, !42, i64 593, !11, i64 596, !42, i64 600, !43, i64 608}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTSSt6vectorIdSaIdEE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!16 = !{!"_ZTS17HighsSparseMatrix", !17, i64 0, !11, i64 4, !11, i64 8, !18, i64 16, !18, i64 40, !18, i64 64, !12, i64 88}
!17 = !{!"_ZTS12MatrixFormat", !7, i64 0}
!18 = !{!"_ZTSSt6vectorIiSaIiEE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!22 = !{!"_ZTS8ObjSense", !7, i64 0}
!23 = !{!"double", !7, i64 0}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !25, i64 0, !26, i64 8, !7, i64 16}
!25 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!26 = !{!"long", !7, i64 0}
!27 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!31 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!35 = !{!"_ZTS13HighsNameHash", !36, i64 0}
!36 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !37, i64 0}
!37 = !{!"_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, !26, i64 8, !38, i64 16, !26, i64 24, !39, i64 32, !6, i64 48}
!38 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!39 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !40, i64 0, !26, i64 8}
!40 = !{!"float", !7, i64 0}
!41 = !{!"_ZTS10HighsScale", !11, i64 0, !42, i64 4, !11, i64 8, !11, i64 12, !23, i64 16, !12, i64 24, !12, i64 48}
!42 = !{!"bool", !7, i64 0}
!43 = !{!"_ZTS11HighsLpMods", !18, i64 0, !18, i64 24, !12, i64 48, !12, i64 72, !31, i64 96, !18, i64 120, !12, i64 144, !18, i64 168, !12, i64 192, !18, i64 216, !12, i64 240, !12, i64 264, !12, i64 288}
!44 = !{!45, !45, i64 0}
!45 = !{!"_ZTS12HighsVarType", !7, i64 0}
!46 = !{!10, !11, i64 4}
!47 = !{!48, !11, i64 576}
!48 = !{!"_ZTS18HighsOptionsStruct", !24, i64 8, !24, i64 40, !24, i64 72, !24, i64 104, !23, i64 136, !24, i64 144, !24, i64 176, !11, i64 208, !24, i64 216, !23, i64 248, !23, i64 256, !23, i64 264, !23, i64 272, !23, i64 280, !23, i64 288, !23, i64 296, !23, i64 304, !23, i64 312, !23, i64 320, !23, i64 328, !11, i64 336, !11, i64 340, !11, i64 344, !11, i64 348, !11, i64 352, !11, i64 356, !11, i64 360, !11, i64 364, !11, i64 368, !11, i64 372, !11, i64 376, !11, i64 380, !11, i64 384, !11, i64 388, !24, i64 392, !42, i64 424, !42, i64 425, !42, i64 426, !11, i64 428, !11, i64 432, !24, i64 440, !42, i64 472, !42, i64 473, !42, i64 474, !11, i64 476, !42, i64 480, !42, i64 481, !11, i64 484, !11, i64 488, !23, i64 496, !11, i64 504, !11, i64 508, !11, i64 512, !42, i64 516, !11, i64 520, !42, i64 524, !42, i64 525, !42, i64 526, !42, i64 527, !42, i64 528, !42, i64 529, !42, i64 530, !11, i64 532, !11, i64 536, !11, i64 540, !11, i64 544, !11, i64 548, !11, i64 552, !11, i64 556, !11, i64 560, !11, i64 564, !11, i64 568, !11, i64 572, !11, i64 576, !11, i64 580, !11, i64 584, !11, i64 588, !42, i64 592, !42, i64 593, !42, i64 594, !42, i64 595, !23, i64 600, !23, i64 608, !23, i64 616, !23, i64 624, !23, i64 632, !23, i64 640, !23, i64 648, !23, i64 656, !23, i64 664, !23, i64 672, !23, i64 680, !42, i64 688, !42, i64 689, !42, i64 690, !42, i64 691, !11, i64 692, !23, i64 696, !42, i64 704, !42, i64 705, !24, i64 712, !23, i64 744, !11, i64 752, !11, i64 756, !42, i64 760, !42, i64 761, !42, i64 762, !42, i64 763, !11, i64 764, !11, i64 768, !11, i64 772, !11, i64 776, !11, i64 780, !11, i64 784, !11, i64 788, !11, i64 792, !11, i64 796, !11, i64 800, !11, i64 804, !23, i64 808, !23, i64 816, !23, i64 824, !23, i64 832, !23, i64 840, !42, i64 848, !42, i64 849, !24, i64 856, !42, i64 888, !11, i64 892, !49, i64 896}
!49 = !{!"_ZTS15HighsLogOptions", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !50, i64 48, !6, i64 80, !42, i64 88}
!50 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !51, i64 0, !6, i64 24}
!51 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!52 = !{!53, !53, i64 0}
!53 = !{!"_ZTS16HighsModelStatus", !7, i64 0}
!54 = !{!11, !11, i64 0}
!55 = !{!42, !42, i64 0}
!56 = !{i8 0, i8 2}
!57 = !{}
!58 = !{!59, !42, i64 53}
!59 = !{!"_ZTSN8presolve13dev_kkt_check7KktInfoE", !60, i64 0, !42, i64 48, !42, i64 49, !42, i64 50, !42, i64 51, !42, i64 52, !42, i64 53}
!60 = !{!"_ZTSSt3mapIN8presolve13dev_kkt_check12KktConditionENS1_19KktConditionDetailsESt4lessIS2_ESaISt4pairIKS2_S3_EEE", !61, i64 0}
!61 = !{!"_ZTSSt8_Rb_treeIN8presolve13dev_kkt_check12KktConditionESt4pairIKS2_NS1_19KktConditionDetailsEESt10_Select1stIS6_ESt4lessIS2_ESaIS6_EE", !62, i64 0}
!62 = !{!"_ZTSNSt8_Rb_treeIN8presolve13dev_kkt_check12KktConditionESt4pairIKS2_NS1_19KktConditionDetailsEESt10_Select1stIS6_ESt4lessIS2_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !63, i64 0, !65, i64 8}
!63 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN8presolve13dev_kkt_check12KktConditionEEE", !64, i64 0}
!64 = !{!"_ZTSSt4lessIN8presolve13dev_kkt_check12KktConditionEE"}
!65 = !{!"_ZTSSt15_Rb_tree_header", !66, i64 0, !26, i64 32}
!66 = !{!"_ZTSSt18_Rb_tree_node_base", !67, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!67 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!68 = !{!26, !26, i64 0}
!69 = !{!23, !23, i64 0}
!70 = !{!71, !71, i64 0}
!71 = !{!"_ZTS16HighsBasisStatus", !7, i64 0}
!72 = distinct !{!72, !73}
!73 = !{!"llvm.loop.mustprogress"}
!74 = distinct !{!74, !73}
!75 = !{!76, !42, i64 0}
!76 = !{!"_ZTS10HighsBasis", !42, i64 0, !42, i64 1, !42, i64 2, !42, i64 3, !11, i64 4, !11, i64 8, !24, i64 16, !77, i64 48, !77, i64 72}
!77 = !{!"_ZTSSt6vectorI16HighsBasisStatusSaIS0_EE", !78, i64 0}
!78 = !{!"_ZTSSt12_Vector_baseI16HighsBasisStatusSaIS0_EE", !79, i64 0}
!79 = !{!"_ZTSNSt12_Vector_baseI16HighsBasisStatusSaIS0_EE12_Vector_implE", !80, i64 0}
!80 = !{!"_ZTSNSt12_Vector_baseI16HighsBasisStatusSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!81 = !{!76, !42, i64 2}
!82 = !{!83, !11, i64 16}
!83 = !{!"_ZTS15HighsInfoStruct", !42, i64 0, !26, i64 8, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !11, i64 44, !23, i64 48, !23, i64 56, !23, i64 64, !23, i64 72, !11, i64 80, !23, i64 88, !23, i64 96, !11, i64 104, !23, i64 112, !23, i64 120, !23, i64 128, !23, i64 136, !23, i64 144}
!84 = distinct !{!84, !73}


; 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.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.HighsSolution = type { i8, i8, %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20" }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = 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 }
%struct.HighsBasis = type { i8, i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::vector.211", %"class.std::vector.211" }
%"class.std::vector.211" = type { %"struct.std::_Vector_base.212" }
%"struct.std::_Vector_base.212" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsLp = type { i32, i32, %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %class.HighsSparseMatrix, i32, double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.67", %"class.std::vector.67", %"class.std::vector.72", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%class.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20" }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = 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.67" = type { %"struct.std::_Vector_base.68" }
%"struct.std::_Vector_base.68" = 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.72" = type { %"struct.std::_Vector_base.73" }
%"struct.std::_Vector_base.73" = 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.77" }
%"class.std::unordered_map.77" = type { %"class.std::_Hashtable.78" }
%"class.std::_Hashtable.78" = 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.20", %"class.std::vector.20" }
%struct.HighsLpMods = type { %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.72", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20" }
%"class.presolve::HighsPostsolveStack" = type { i64, double, double, double, double, %class.HighsDataStack, %"class.std::vector.0", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.10", %"class.std::vector.15", %"class.std::vector.15", i32, i32 }
%class.HighsDataStack = type { %"class.std::vector", i64 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl" }
%"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl" = type { %"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl_data" }
%"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.presolve::HPresolve" = type { ptr, ptr, ptr, ptr, double, %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.25", %"class.std::vector.25", %class.HighsLinearSumBounds, %class.HighsLinearSumBounds, %"class.std::vector.5", %"class.std::vector.10", %"class.std::vector.5", %"class.std::vector.10", %"class.std::vector.35", %"class.std::unordered_map", %"class.std::set", %"class.std::vector.48", i8, i64, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.10", %"class.std::vector.10", %"class.std::vector.53", i64, i32, i32, i32, i32, i32, i32, i8, i32, %class.HPresolveAnalysis }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = type { %"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsLinearSumBounds = type { %"class.std::vector.30", %"class.std::vector.30", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.30", %"class.std::vector.30", %"class.std::vector.5", %"class.std::vector.5", ptr, ptr, ptr, ptr, ptr, ptr }
%"class.std::vector.30" = type { %"struct.std::_Vector_base.31" }
%"struct.std::_Vector_base.31" = type { %"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.35" = type { %"struct.std::_Vector_base.36" }
%"struct.std::_Vector_base.36" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"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 }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int>>, std::less<std::pair<int, int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int>>, std::less<std::pair<int, int>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.48" = type { %"struct.std::_Vector_base.49" }
%"struct.std::_Vector_base.49" = type { %"struct.std::_Vector_base<std::_Rb_tree_const_iterator<std::pair<int, int>>, std::allocator<std::_Rb_tree_const_iterator<std::pair<int, int>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::_Rb_tree_const_iterator<std::pair<int, int>>, std::allocator<std::_Rb_tree_const_iterator<std::pair<int, int>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::_Rb_tree_const_iterator<std::pair<int, int>>, std::allocator<std::_Rb_tree_const_iterator<std::pair<int, int>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::_Rb_tree_const_iterator<std::pair<int, int>>, std::allocator<std::_Rb_tree_const_iterator<std::pair<int, int>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.53" = type { %"struct.std::_Vector_base.54" }
%"struct.std::_Vector_base.54" = type { %"struct.std::_Vector_base<unsigned short, std::allocator<unsigned short>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned short, std::allocator<unsigned short>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned short, std::allocator<unsigned short>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned short, std::allocator<unsigned short>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HPresolveAnalysis = type { ptr, ptr, ptr, ptr, ptr, i32, i32, %"class.std::vector.58", i8, i8, i32, i32, i32, %struct.HighsPresolveLog }
%"class.std::vector.58" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%struct.HighsPresolveLog = type { %"class.std::vector.62" }
%"class.std::vector.62" = type { %"struct.std::_Vector_base.63" }
%"struct.std::_Vector_base.63" = type { %"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.Highs = type { ptr, %struct.HighsSolution, %struct.HighsBasis, %struct.ICrashInfo, %class.HighsModel, %"class.std::vector.221", %class.HighsModel, %class.HighsTimer, %struct.HighsCallback, %class.HighsOptions, %class.HighsInfo, %struct.HighsRanging, %class.HighsIis, %"class.std::vector.110", i32, i32, i8, double, %"class.std::vector.20", %"class.std::vector.20", %class.HighsSparseMatrix, %class.HEkk, %struct.HighsPresolveLog, i32, i8, i32, i8, %class.PresolveComponent }
%struct.ICrashInfo = type { i32, double, double, double, double, double, %"class.std::vector.216", %"class.std::vector.20", double }
%"class.std::vector.216" = type { %"struct.std::_Vector_base.217" }
%"struct.std::_Vector_base.217" = type { %"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl" }
%"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl" = type { %"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.221" = type { %"struct.std::_Vector_base.222" }
%"struct.std::_Vector_base.222" = type { %"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsModel = type { %class.HighsLp, %class.HighsHessian }
%class.HighsHessian = type { i32, i32, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20" }
%class.HighsTimer = type <{ ptr, double, i32, [4 x i8], %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.67", i32, i32, i32, [4 x i8] }>
%struct.HighsCallback = type { %"class.std::function", ptr, ptr, %"class.std::vector.58", %struct.HighsCallbackDataOut, %struct.HighsCallbackDataIn }
%"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 } }
%struct.HighsCallbackDataOut = type { i32, double, i32, i32, i32, double, i64, i64, double, double, double, ptr, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, i32 }
%struct.HighsCallbackDataIn = type { i32, ptr }
%class.HighsOptions = type <{ %struct.HighsOptionsStruct, %"class.std::vector.97", i32, [4 x i8] }>
%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 }
%struct.HighsLogOptions = type <{ ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::function", ptr, i8, [7 x i8] }>
%"class.std::vector.97" = type { %"struct.std::_Vector_base.98" }
%"struct.std::_Vector_base.98" = type { %"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl" }
%"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl" = type { %"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsInfo = type { ptr, %struct.HighsInfoStruct, %"class.std::vector.226" }
%struct.HighsInfoStruct = type { i8, i64, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, i32, double, double, i32, double, double, double, double, double }
%"class.std::vector.226" = type { %"struct.std::_Vector_base.227" }
%"struct.std::_Vector_base.227" = type { %"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl" }
%"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl" = type { %"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsRanging = type { i8, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord }
%struct.HighsRangingRecord = type { %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5" }
%class.HighsIis = type { i8, i32, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.231" }
%"class.std::vector.231" = type { %"struct.std::_Vector_base.232" }
%"struct.std::_Vector_base.232" = type { %"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.110" = type { %"struct.std::_Vector_base.111" }
%"struct.std::_Vector_base.111" = type { %"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_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.259, %class.HighsRandom, %"class.std::vector.20", %"class.std::vector.20", i8, %class.HighsSparseMatrix, %class.HighsSparseMatrix, %class.HSimplexNla, %struct.HotStart, double, double, double, i32, i32, i32, i32, i8, i8, i32, i32, i32, %"class.std::vector.5", %"class.std::vector.20", %struct.HighsRayRecord, %struct.HighsRayRecord, i32, i32, i32, double, %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", double, double, double, i32, i32, i8, i32, i8, i8, i8, i8, double, %"class.std::vector.276", %"class.std::vector.20", %struct.HighsSimplexStats }
%class.HighsSimplexAnalysis = type { ptr, %"class.std::vector.236", %"class.std::vector.236", 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.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.241", %"class.std::unique_ptr.246", 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.236" = type { %"struct.std::_Vector_base.237" }
%"struct.std::_Vector_base.237" = 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 }
%"class.std::vector.241" = type { %"struct.std::_Vector_base.242" }
%"struct.std::_Vector_base.242" = 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.246" = type { %"struct.std::__uniq_ptr_data.247" }
%"struct.std::__uniq_ptr_data.247" = type { %"class.std::__uniq_ptr_impl.248" }
%"class.std::__uniq_ptr_impl.248" = type { %"class.std::tuple.249" }
%"class.std::tuple.249" = type { %"struct.std::_Tuple_impl.250" }
%"struct.std::_Tuple_impl.250" = type { %"struct.std::_Head_base.253" }
%"struct.std::_Head_base.253" = 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.20", %"class.std::vector.5", i32, [4 x i8] }>
%struct.HighsSimplexStatus = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
%struct.HighsSimplexInfo = type <{ %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", i32, i32, i8, i8, [6 x i8], %struct.SimplexBasis, i32, i32, i32, [4 x i8], %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", 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.5", %"class.std::vector.254", %"class.std::vector.254", i64, i32, i32, %"class.std::__cxx11::basic_string" }
%"class.std::vector.254" = type { %"struct.std::_Vector_base.255" }
%"struct.std::_Vector_base.255" = 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.259 = type { %"class.std::unique_ptr.260", %"class.std::unique_ptr.203", i64, i64, i64 }
%"class.std::unique_ptr.260" = type { %"struct.std::__uniq_ptr_data.261" }
%"struct.std::__uniq_ptr_data.261" = type { %"class.std::__uniq_ptr_impl.262" }
%"class.std::__uniq_ptr_impl.262" = type { %"class.std::tuple.263" }
%"class.std::tuple.263" = type { %"struct.std::_Tuple_impl.264" }
%"struct.std::_Tuple_impl.264" = type { %"struct.std::_Head_base.267" }
%"struct.std::_Head_base.267" = type { ptr }
%"class.std::unique_ptr.203" = type { %"struct.std::__uniq_ptr_data.204" }
%"struct.std::__uniq_ptr_data.204" = type { %"class.std::__uniq_ptr_impl.205" }
%"class.std::__uniq_ptr_impl.205" = type { %"class.std::tuple.206" }
%"class.std::tuple.206" = type { %"struct.std::_Tuple_impl.207" }
%"struct.std::_Tuple_impl.207" = type { %"struct.std::_Head_base.210" }
%"struct.std::_Head_base.210" = 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.5", %"class.std::vector.5", %"class.std::vector.5", %struct.RefactorInfo, i32, i32, i32, i32, i32, i32, i32, double, i8, ptr, ptr, ptr, ptr, double, double, i32, double, %"class.std::unique_ptr.268", %struct.HighsLogOptions, i8, i8, i32, i32, ptr, i32, %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", i32, i32, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %class.HVectorBase }
%struct.RefactorInfo = type { i8, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.254", double }
%"class.std::unique_ptr.268" = type { %"struct.std::__uniq_ptr_data.269" }
%"struct.std::__uniq_ptr_data.269" = type { %"class.std::__uniq_ptr_impl.270" }
%"class.std::__uniq_ptr_impl.270" = type { %"class.std::tuple.271" }
%"class.std::tuple.271" = type { %"struct.std::_Tuple_impl.272" }
%"struct.std::_Tuple_impl.272" = type { %"struct.std::_Head_base.275" }
%"struct.std::_Head_base.275" = type { ptr }
%class.HVectorBase = type { i32, i32, %"class.std::vector.5", %"class.std::vector.20", double, %"class.std::vector", %"class.std::vector.5", ptr, i8, i32, %"class.std::vector.5", %"class.std::vector.20" }
%struct.ProductFormUpdate = type { i8, i32, i32, %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20" }
%struct.SimplexIterate = type { i8, %struct.SimplexBasis, %struct.InvertibleRepresentation, %"class.std::vector.20" }
%struct.InvertibleRepresentation = type { %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.20" }
%struct.HotStart = type { i8, %struct.RefactorInfo, %"class.std::vector.254" }
%struct.HighsRayRecord = type { i32, i32, %"class.std::vector.20" }
%"class.std::vector.276" = type { %"struct.std::_Vector_base.277" }
%"struct.std::_Vector_base.277" = 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 }
%class.PresolveComponent = type { %class.HighsComponent.base, %struct.PresolveComponentInfo, %struct.PresolveComponentData, ptr, ptr, i32, i32 }
%class.HighsComponent.base = type <{ ptr, %struct.HighsComponentInfo, %struct.HighsComponentData, %struct.HighsComponentOptions }>
%struct.HighsComponentInfo = type { i8 }
%struct.HighsComponentData = type { i8 }
%struct.HighsComponentOptions = type { i8 }
%struct.PresolveComponentInfo = type { ptr, %struct.HighsComponentInfo, i32, i32, i32, double, double }
%struct.PresolveComponentData = type { ptr, %struct.HighsComponentData, %class.HighsLp, %"class.presolve::HighsPostsolveStack", %struct.HighsSolution, %struct.HighsBasis, %struct.HighsPresolveLog }
%"class.std::allocator" = type { i8 }
%"class.std::allocator.7" = type { i8 }
%"struct.presolve::dev_kkt_check::KktInfo" = type <{ %"class.std::map.533", i8, i8, i8, i8, i8, i8, [2 x i8] }>
%"class.std::map.533" = type { %"class.std::_Rb_tree.534" }
%"class.std::_Rb_tree.534" = type { %"struct.std::_Rb_tree<presolve::dev_kkt_check::KktCondition, std::pair<const presolve::dev_kkt_check::KktCondition, presolve::dev_kkt_check::KktConditionDetails>, std::_Select1st<std::pair<const presolve::dev_kkt_check::KktCondition, presolve::dev_kkt_check::KktConditionDetails>>, std::less<presolve::dev_kkt_check::KktCondition>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<presolve::dev_kkt_check::KktCondition, std::pair<const presolve::dev_kkt_check::KktCondition, presolve::dev_kkt_check::KktConditionDetails>, std::_Select1st<std::pair<const presolve::dev_kkt_check::KktCondition, presolve::dev_kkt_check::KktConditionDetails>>, std::less<presolve::dev_kkt_check::KktCondition>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.presolve::dev_kkt_check::State" = type { i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@_ZL15kHighsOffStringB5cxx11 = external hidden global %"class.std::__cxx11::basic_string", align 8
@.str.9 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [6 x i8], align 1
@__PRETTY_FUNCTION__._ZN8presolve9HPresolve5debugERK7HighsLpRK12HighsOptions = external hidden unnamed_addr constant [78 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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN8presolve9HPresolve10okSetInputER7HighsLpRK12HighsOptionsiP10HighsTimer(ptr noundef nonnull align 8 dereferenceable(1720), ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(1020), i32 noundef, ptr noundef) local_unnamed_addr #2 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN8presolve9HPresolve3runERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720), ptr noundef nonnull align 8 dereferenceable(224)) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8presolve19HighsPostsolveStackC2Ev(ptr noundef nonnull align 8 dereferenceable(224)) unnamed_addr #6 align 2

declare void @_ZN8presolve19HighsPostsolveStack19initializeIndexMapsEii(ptr noundef nonnull align 8 dereferenceable(224), i32 noundef, i32 noundef) local_unnamed_addr #7

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8presolve19HighsPostsolveStackD2Ev(ptr noundef nonnull align 8 dereferenceable(224)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8presolve9HPresolve5debugERK7HighsLpRK12HighsOptions(ptr noundef nonnull align 8 dereferenceable(920) %0, ptr noundef nonnull align 8 dereferenceable(1020) %1) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %struct.HighsSolution, align 8
  %4 = alloca %struct.HighsBasis, align 8
  %5 = alloca %struct.HighsSolution, align 8
  %6 = alloca %struct.HighsBasis, align 8
  %7 = alloca %class.HighsLp, align 8
  %8 = alloca i8, align 1
  %9 = alloca %"class.presolve::HighsPostsolveStack", align 8
  %10 = alloca %"class.presolve::HPresolve", align 8
  %11 = alloca %class.Highs, align 8
  %12 = alloca %class.HighsLp, align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.std::vector.5", align 8
  %16 = alloca i32, align 4
  %17 = alloca %"class.std::allocator.7", align 1
  %18 = alloca %"class.std::vector.5", align 8
  %19 = alloca i32, align 4
  %20 = alloca %"class.std::allocator.7", align 1
  %21 = alloca %"class.std::vector.5", align 8
  %22 = alloca %"class.std::vector.5", align 8
  %23 = alloca %"class.std::vector.5", align 8
  %24 = alloca %"class.std::vector.20", align 8
  %25 = alloca %"struct.presolve::dev_kkt_check::KktInfo", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %27 = alloca %"struct.presolve::dev_kkt_check::State", align 8
  %28 = alloca i64, align 8
  %29 = alloca i8, align 1
  %30 = alloca %"class.presolve::HPresolve", align 8
  %31 = alloca i8, align 1
  %32 = alloca %"class.presolve::HPresolve", align 8
  %33 = alloca %"class.presolve::HighsPostsolveStack", align 8
  %34 = alloca %struct.HighsBasis, align 8
  %35 = alloca %struct.HighsSolution, align 8
  %36 = alloca %class.Highs, align 8
  %37 = alloca %class.HighsLp, align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %3) #8
  call void @_ZN13HighsSolutionC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %3) #8
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %4) #8
  invoke void @_ZN10HighsBasisC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %4)
          to label %40 unwind label %57

40:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %5) #8
  call void @_ZN13HighsSolutionC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %5) #8
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %6) #8
  invoke void @_ZN10HighsBasisC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %6)
          to label %41 unwind label %59

41:                                               ; preds = %40
  call void @llvm.lifetime.start.p0(i64 920, ptr nonnull %7) #8
  invoke void @_ZN7HighsLpC2ERKS_(ptr noundef nonnull align 8 dereferenceable(920) %7, ptr noundef nonnull align 8 dereferenceable(920) %0)
          to label %42 unwind label %61

42:                                               ; preds = %41
  %43 = getelementptr inbounds i8, ptr %7, i64 376
  %44 = load i32, ptr %0, align 8, !tbaa !5
  %45 = sext i32 %44 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #8
  store i8 0, ptr %8, align 1, !tbaa !43
  invoke void @_ZNSt6vectorI12HighsVarTypeSaIS0_EE6assignEmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %45, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %46 unwind label %63

46:                                               ; preds = %42
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 224, ptr nonnull %9) #8
  call void @_ZN8presolve19HighsPostsolveStackC2Ev(ptr noundef nonnull align 8 dereferenceable(224) %9) #8
  %47 = getelementptr inbounds i8, ptr %0, i64 4
  %48 = load i32, ptr %47, align 4, !tbaa !45
  %49 = load i32, ptr %0, align 8, !tbaa !5
  invoke void @_ZN8presolve19HighsPostsolveStack19initializeIndexMapsEii(ptr noundef nonnull align 8 dereferenceable(224) %9, i32 noundef %48, i32 noundef %49)
          to label %50 unwind label %65

50:                                               ; preds = %46
  call void @llvm.lifetime.start.p0(i64 1720, ptr nonnull %10) #8
  call void @_ZN8presolve9HPresolveC2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %10) #8
  %51 = getelementptr inbounds i8, ptr %1, i64 576
  %52 = load i32, ptr %51, align 8, !tbaa !46
  %53 = invoke noundef zeroext i1 @_ZN8presolve9HPresolve10okSetInputER7HighsLpRK12HighsOptionsiP10HighsTimer(ptr noundef nonnull align 8 dereferenceable(1720) %10, ptr noundef nonnull align 8 dereferenceable(920) %7, ptr noundef nonnull align 8 dereferenceable(1020) %1, i32 noundef %52, ptr noundef null)
          to label %54 unwind label %67

54:                                               ; preds = %50
  %55 = invoke noundef i32 @_ZN8presolve9HPresolve3runERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720) %10, ptr noundef nonnull align 8 dereferenceable(224) %9)
          to label %56 unwind label %67

56:                                               ; preds = %54
  %.not = icmp eq i32 %55, 0
  br i1 %.not, label %69, label %.thread

.thread:                                          ; preds = %56
  call void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %10) #8
  call void @llvm.lifetime.end.p0(i64 1720, ptr nonnull %10) #8
  br label %327

57:                                               ; preds = %2
  %58 = landingpad { ptr, i32 }
          cleanup
  br label %332

59:                                               ; preds = %40
  %60 = landingpad { ptr, i32 }
          cleanup
  br label %331

61:                                               ; preds = %41
  %62 = landingpad { ptr, i32 }
          cleanup
  br label %330

63:                                               ; preds = %42
  %64 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #8
  br label %329

65:                                               ; preds = %108, %107, %106, %104, %102, %100, %46
  %66 = landingpad { ptr, i32 }
          cleanup
  br label %328

67:                                               ; preds = %54, %50
  %68 = landingpad { ptr, i32 }
          cleanup
  br label %152

69:                                               ; preds = %56
  call void @llvm.lifetime.start.p0(i64 20928, ptr nonnull %11) #8
  invoke void @_ZN5HighsC1Ev(ptr noundef nonnull align 8 dereferenceable(20928) %11)
          to label %70 unwind label %83

70:                                               ; preds = %69
  invoke void @_ZN7HighsLpC2ERKS_(ptr noundef nonnull align 8 dereferenceable(920) %12, ptr noundef nonnull align 8 dereferenceable(920) %7)
          to label %71 unwind label %85

71:                                               ; preds = %70
  %72 = invoke noundef i32 @_ZN5Highs9passModelE7HighsLp(ptr noundef nonnull align 8 dereferenceable(20928) %11, ptr noundef nonnull %12)
          to label %73 unwind label %87

73:                                               ; preds = %71
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %12) #8
  %74 = invoke noundef i32 @_ZN5Highs11passOptionsERK12HighsOptions(ptr noundef nonnull align 8 dereferenceable(20928) %11, ptr noundef nonnull align 8 dereferenceable(1020) %1)
          to label %75 unwind label %85

75:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %76 unwind label %89

76:                                               ; preds = %75
  %77 = invoke noundef i32 @_ZN5Highs14setOptionValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr noundef nonnull align 8 dereferenceable(20928) %11, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) @_ZL15kHighsOffStringB5cxx11)
          to label %78 unwind label %91

78:                                               ; preds = %76
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  %79 = invoke noundef i32 @_ZN5Highs3runEv(ptr noundef nonnull align 8 dereferenceable(20928) %11)
          to label %80 unwind label %85

80:                                               ; preds = %78
  %81 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5Highs14getModelStatusEv(ptr noundef nonnull align 8 dereferenceable(20928) %11)
  %82 = load i32, ptr %81, align 4, !tbaa !51
  %.not87 = icmp eq i32 %82, 7
  br i1 %.not87, label %94, label %.critedge

83:                                               ; preds = %69
  %84 = landingpad { ptr, i32 }
          cleanup
  br label %151

85:                                               ; preds = %97, %94, %78, %73, %70
  %86 = landingpad { ptr, i32 }
          cleanup
  br label %150

87:                                               ; preds = %71
  %88 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %12) #8
  br label %150

89:                                               ; preds = %75
  %90 = landingpad { ptr, i32 }
          cleanup
  br label %93

91:                                               ; preds = %76
  %92 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %93

93:                                               ; preds = %91, %89
  %.pn = phi { ptr, i32 } [ %92, %91 ], [ %90, %89 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  br label %150

94:                                               ; preds = %80
  %95 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNK5Highs11getSolutionEv(ptr noundef nonnull align 8 dereferenceable(20928) %11)
  %96 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZN13HighsSolutionaSERKS_(ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(104) %95)
          to label %97 unwind label %85

97:                                               ; preds = %94
  %98 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNK5Highs8getBasisEv(ptr noundef nonnull align 8 dereferenceable(20928) %11)
  %99 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN10HighsBasisaSERKS_(ptr noundef nonnull align 8 dereferenceable(96) %4, ptr noundef nonnull align 8 dereferenceable(96) %98)
          to label %100 unwind label %85

100:                                              ; preds = %97
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %11) #8
  call void @llvm.lifetime.end.p0(i64 20928, ptr nonnull %11) #8
  call void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %10) #8
  call void @llvm.lifetime.end.p0(i64 1720, ptr nonnull %10) #8
  %101 = invoke noundef nonnull align 8 dereferenceable(920) ptr @_ZN7HighsLpaSERKS_(ptr noundef nonnull align 8 dereferenceable(920) %7, ptr noundef nonnull align 8 dereferenceable(920) %0)
          to label %102 unwind label %65

102:                                              ; preds = %100
  %103 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZN13HighsSolutionaSERKS_(ptr noundef nonnull align 8 dereferenceable(104) %5, ptr noundef nonnull align 8 dereferenceable(104) %3)
          to label %104 unwind label %65

104:                                              ; preds = %102
  %105 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN10HighsBasisaSERKS_(ptr noundef nonnull align 8 dereferenceable(96) %6, ptr noundef nonnull align 8 dereferenceable(96) %4)
          to label %106 unwind label %65

106:                                              ; preds = %104
  invoke void @_ZN8presolve19HighsPostsolveStack4undoERK12HighsOptionsR13HighsSolutionR10HighsBasisi(ptr noundef nonnull align 8 dereferenceable(224) %9, ptr noundef nonnull align 8 dereferenceable(1020) %1, ptr noundef nonnull align 8 dereferenceable(104) %5, ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef -1)
          to label %107 unwind label %65

107:                                              ; preds = %106
  invoke void @_Z11refineBasisRK7HighsLpRK13HighsSolutionR10HighsBasis(ptr noundef nonnull align 8 dereferenceable(920) %0, ptr noundef nonnull align 8 dereferenceable(104) %5, ptr noundef nonnull align 8 dereferenceable(96) %6)
          to label %108 unwind label %65

108:                                              ; preds = %107
  %109 = invoke noundef i32 @_Z22calculateRowValuesQuadRK7HighsLpR13HighsSolutioni(ptr noundef nonnull align 8 dereferenceable(920) %7, ptr noundef nonnull align 8 dereferenceable(104) %5, i32 noundef -1)
          to label %110 unwind label %65

110:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #8
  %111 = load i32, ptr %0, align 8, !tbaa !5
  %112 = sext i32 %111 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #8
  store i32 1, ptr %16, align 4, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #8
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #8
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %112, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %113 unwind label %153

113:                                              ; preds = %110
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #8
  %114 = load i32, ptr %47, align 4, !tbaa !45
  %115 = sext i32 %114 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #8
  store i32 1, ptr %19, align 4, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #8
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef %115, ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %116 unwind label %155

116:                                              ; preds = %113
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #8
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #8
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #8
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #8
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %25) #8
  invoke void @_ZN8presolve13dev_kkt_check8initInfoEv(ptr dead_on_unwind nonnull writable sret(%"struct.presolve::dev_kkt_check::KktInfo") align 8 %25)
          to label %117 unwind label %157

117:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #8
  %118 = getelementptr inbounds i8, ptr %7, i64 144
  %119 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %118) #8
  store ptr %119, ptr %26, align 8
  %120 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %26, i64 noundef 1) #8
  %121 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %118) #8
  invoke void @_ZNSt6vectorIiSaIiEE6assignIN9__gnu_cxx17__normal_iteratorIPiS1_EEvEEvT_S7_(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr %120, ptr %121)
          to label %122 unwind label %159

122:                                              ; preds = %117
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  %123 = getelementptr inbounds i8, ptr %7, i64 4
  %124 = load i32, ptr %123, align 4, !tbaa !45
  %125 = load i32, ptr %7, align 8, !tbaa !5
  %126 = getelementptr inbounds i8, ptr %7, i64 192
  %127 = getelementptr inbounds i8, ptr %7, i64 216
  invoke void @_Z20highsSparseTransposeiiRKSt6vectorIiSaIiEES3_RKS_IdSaIdEERS1_S8_RS5_(i32 noundef %124, i32 noundef %125, ptr noundef nonnull align 8 dereferenceable(24) %118, ptr noundef nonnull align 8 dereferenceable(24) %126, ptr noundef nonnull align 8 dereferenceable(24) %127, ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %128 unwind label %161

128:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 168, ptr nonnull %27) #8
  %129 = load i32, ptr %7, align 8, !tbaa !5
  %130 = load i32, ptr %123, align 4, !tbaa !45
  %131 = getelementptr inbounds i8, ptr %7, i64 8
  %132 = getelementptr inbounds i8, ptr %7, i64 32
  %133 = getelementptr inbounds i8, ptr %7, i64 56
  %134 = getelementptr inbounds i8, ptr %7, i64 80
  %135 = getelementptr inbounds i8, ptr %7, i64 104
  %136 = getelementptr inbounds i8, ptr %5, i64 8
  %137 = getelementptr inbounds i8, ptr %5, i64 32
  %138 = getelementptr inbounds i8, ptr %5, i64 56
  %139 = getelementptr inbounds i8, ptr %5, i64 80
  %140 = getelementptr inbounds i8, ptr %6, i64 48
  %141 = getelementptr inbounds i8, ptr %6, i64 72
  call void @_ZN8presolve13dev_kkt_check5StateC2EiiRKSt6vectorIiSaIiEES6_S6_RKS2_IdSaIdEES6_S6_SA_SA_SA_SA_SA_SA_S6_S6_SA_SA_SA_SA_RKS2_I16HighsBasisStatusSaISB_EESF_(ptr noundef nonnull align 8 dereferenceable(168) %27, i32 noundef %129, i32 noundef %130, ptr noundef nonnull align 8 dereferenceable(24) %118, ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 8 dereferenceable(24) %126, ptr noundef nonnull align 8 dereferenceable(24) %127, ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(24) %131, ptr noundef nonnull align 8 dereferenceable(24) %132, ptr noundef nonnull align 8 dereferenceable(24) %133, ptr noundef nonnull align 8 dereferenceable(24) %134, ptr noundef nonnull align 8 dereferenceable(24) %135, ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(24) %136, ptr noundef nonnull align 8 dereferenceable(24) %137, ptr noundef nonnull align 8 dereferenceable(24) %138, ptr noundef nonnull align 8 dereferenceable(24) %139, ptr noundef nonnull align 8 dereferenceable(24) %140, ptr noundef nonnull align 8 dereferenceable(24) %141)
  %142 = invoke noundef zeroext i1 @_ZN8presolve13dev_kkt_check8checkKktERKNS0_5StateERNS0_7KktInfoE(ptr noundef nonnull align 8 dereferenceable(168) %27, ptr noundef nonnull align 8 dereferenceable(54) %25)
          to label %143 unwind label %163

143:                                              ; preds = %128
  br i1 %142, label %144, label %165

144:                                              ; preds = %143
  %145 = getelementptr inbounds i8, ptr %25, i64 53
  %146 = load i8, ptr %145, align 1, !tbaa !54, !range !64, !noundef !65
  %147 = trunc nuw i8 %146 to i1
  br i1 %147, label %148, label %165

148:                                              ; preds = %144
  %149 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.165)
  call void @llvm.lifetime.end.p0(i64 168, ptr nonnull %27) #8
  call void @_ZN8presolve13dev_kkt_check7KktInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(54) %25) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %25) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #8
  br label %327

150:                                              ; preds = %93, %87, %85
  %.pn88 = phi { ptr, i32 } [ %86, %85 ], [ %.pn, %93 ], [ %88, %87 ]
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %11) #8
  br label %151

151:                                              ; preds = %150, %83
  %.pn88.pn = phi { ptr, i32 } [ %.pn88, %150 ], [ %84, %83 ]
  call void @llvm.lifetime.end.p0(i64 20928, ptr nonnull %11) #8
  br label %152

152:                                              ; preds = %151, %67
  %.pn88.pn.pn = phi { ptr, i32 } [ %.pn88.pn, %151 ], [ %68, %67 ]
  call void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %10) #8
  call void @llvm.lifetime.end.p0(i64 1720, ptr nonnull %10) #8
  br label %328

153:                                              ; preds = %110
  %154 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #8
  br label %326

155:                                              ; preds = %113
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #8
  br label %325

157:                                              ; preds = %116
  %158 = landingpad { ptr, i32 }
          cleanup
  br label %324

159:                                              ; preds = %117
  %160 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  br label %323

161:                                              ; preds = %122
  %162 = landingpad { ptr, i32 }
          cleanup
  br label %323

163:                                              ; preds = %128
  %164 = landingpad { ptr, i32 }
          cleanup
  br label %322

165:                                              ; preds = %144, %143
  %166 = call noundef i64 @_ZNK8presolve19HighsPostsolveStack13numReductionsEv(ptr noundef nonnull align 8 dereferenceable(224) %9)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #8
  %167 = lshr i64 %166, 1
  store i64 %167, ptr %28, align 8, !tbaa !66
  %168 = getelementptr inbounds i8, ptr %34, i64 48
  %169 = getelementptr inbounds i8, ptr %35, i64 32
  %170 = getelementptr inbounds i8, ptr %35, i64 8
  %171 = getelementptr inbounds i8, ptr %34, i64 72
  %172 = getelementptr inbounds i8, ptr %35, i64 80
  %173 = getelementptr inbounds i8, ptr %35, i64 56
  %174 = getelementptr inbounds i8, ptr %34, i64 2
  %175 = getelementptr inbounds i8, ptr %34, i64 16
  br label %176

176:                                              ; preds = %312, %165
  %.054 = phi i64 [ %166, %165 ], [ %.256, %312 ]
  %.053 = phi i64 [ 0, %165 ], [ %.2, %312 ]
  %177 = invoke noundef nonnull align 8 dereferenceable(920) ptr @_ZN7HighsLpaSERKS_(ptr noundef nonnull align 8 dereferenceable(920) %7, ptr noundef nonnull align 8 dereferenceable(920) %0)
          to label %178 unwind label %218

178:                                              ; preds = %176
  %179 = load i32, ptr %0, align 8, !tbaa !5
  %180 = sext i32 %179 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #8
  store i8 0, ptr %29, align 1, !tbaa !43
  invoke void @_ZNSt6vectorI12HighsVarTypeSaIS0_EE6assignEmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %180, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %181 unwind label %220

181:                                              ; preds = %178
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #8
  call void @llvm.lifetime.start.p0(i64 1720, ptr nonnull %30) #8
  call void @_ZN8presolve9HPresolveC2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %30) #8
  %182 = load i32, ptr %51, align 8, !tbaa !46
  %183 = invoke noundef zeroext i1 @_ZN8presolve9HPresolve10okSetInputER7HighsLpRK12HighsOptionsiP10HighsTimer(ptr noundef nonnull align 8 dereferenceable(1720) %30, ptr noundef nonnull align 8 dereferenceable(920) %7, ptr noundef nonnull align 8 dereferenceable(1020) %1, i32 noundef %182, ptr noundef null)
          to label %184 unwind label %222

184:                                              ; preds = %181
  invoke void @_ZN8presolve9HPresolve25computeIntermediateMatrixERSt6vectorIiSaIiEES4_Rm(ptr noundef nonnull align 8 dereferenceable(1720) %30, ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %185 unwind label %222

185:                                              ; preds = %184
  call void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %30) #8
  call void @llvm.lifetime.end.p0(i64 1720, ptr nonnull %30) #8
  %186 = invoke noundef nonnull align 8 dereferenceable(920) ptr @_ZN7HighsLpaSERKS_(ptr noundef nonnull align 8 dereferenceable(920) %7, ptr noundef nonnull align 8 dereferenceable(920) %0)
          to label %187 unwind label %218

187:                                              ; preds = %185
  %188 = load i32, ptr %0, align 8, !tbaa !5
  %189 = sext i32 %188 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #8
  store i8 0, ptr %31, align 1, !tbaa !43
  invoke void @_ZNSt6vectorI12HighsVarTypeSaIS0_EE6assignEmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %189, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %190 unwind label %224

190:                                              ; preds = %187
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #8
  call void @llvm.lifetime.start.p0(i64 1720, ptr nonnull %32) #8
  call void @_ZN8presolve9HPresolveC2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %32) #8
  %191 = load i32, ptr %51, align 8, !tbaa !46
  %192 = invoke noundef zeroext i1 @_ZN8presolve9HPresolve10okSetInputER7HighsLpRK12HighsOptionsiP10HighsTimer(ptr noundef nonnull align 8 dereferenceable(1720) %32, ptr noundef nonnull align 8 dereferenceable(920) %7, ptr noundef nonnull align 8 dereferenceable(1020) %1, i32 noundef %191, ptr noundef null)
          to label %193 unwind label %226

193:                                              ; preds = %190
  call void @llvm.lifetime.start.p0(i64 224, ptr nonnull %33) #8
  call void @_ZN8presolve19HighsPostsolveStackC2Ev(ptr noundef nonnull align 8 dereferenceable(224) %33) #8
  %194 = load i32, ptr %123, align 4, !tbaa !45
  %195 = load i32, ptr %7, align 8, !tbaa !5
  invoke void @_ZN8presolve19HighsPostsolveStack19initializeIndexMapsEii(ptr noundef nonnull align 8 dereferenceable(224) %33, i32 noundef %194, i32 noundef %195)
          to label %196 unwind label %228

196:                                              ; preds = %193
  %197 = load i64, ptr %28, align 8, !tbaa !66
  call void @_ZN8presolve9HPresolve17setReductionLimitEm(ptr noundef nonnull align 8 dereferenceable(1720) %32, i64 noundef %197)
  %198 = invoke noundef i32 @_ZN8presolve9HPresolve3runERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720) %32, ptr noundef nonnull align 8 dereferenceable(224) %33)
          to label %199 unwind label %228

199:                                              ; preds = %196
  %200 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZN13HighsSolutionaSERKS_(ptr noundef nonnull align 8 dereferenceable(104) %5, ptr noundef nonnull align 8 dereferenceable(104) %3)
          to label %201 unwind label %228

201:                                              ; preds = %199
  %202 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN10HighsBasisaSERKS_(ptr noundef nonnull align 8 dereferenceable(96) %6, ptr noundef nonnull align 8 dereferenceable(96) %4)
          to label %203 unwind label %228

203:                                              ; preds = %201
  %204 = call noundef i64 @_ZNK8presolve19HighsPostsolveStack13numReductionsEv(ptr noundef nonnull align 8 dereferenceable(224) %33)
  invoke void @_ZN8presolve19HighsPostsolveStack9undoUntilERK12HighsOptionsR13HighsSolutionR10HighsBasism(ptr noundef nonnull align 8 dereferenceable(224) %9, ptr noundef nonnull align 8 dereferenceable(1020) %1, ptr noundef nonnull align 8 dereferenceable(104) %5, ptr noundef nonnull align 8 dereferenceable(96) %6, i64 noundef %204)
          to label %205 unwind label %228

205:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %34) #8
  invoke void @_ZN10HighsBasisC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %34)
          to label %206 unwind label %230

206:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %35) #8
  call void @_ZN13HighsSolutionC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %35) #8
  %207 = load i32, ptr %7, align 8, !tbaa !5
  %208 = sext i32 %207 to i64
  invoke void @_ZNSt6vectorI16HighsBasisStatusSaIS0_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %168, i64 noundef %208)
          to label %209 unwind label %232

209:                                              ; preds = %206
  %210 = load i32, ptr %7, align 8, !tbaa !5
  %211 = sext i32 %210 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %169, i64 noundef %211)
          to label %212 unwind label %232

212:                                              ; preds = %209
  %213 = load i32, ptr %7, align 8, !tbaa !5
  %214 = sext i32 %213 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef %214)
          to label %.preheader117 unwind label %232

.preheader117:                                    ; preds = %212
  %215 = load i32, ptr %7, align 8, !tbaa !5
  %.not92118 = icmp eq i32 %215, 0
  br i1 %.not92118, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %.lr.ph, %.preheader117
  %216 = load i32, ptr %123, align 4, !tbaa !45
  %217 = sext i32 %216 to i64
  invoke void @_ZNSt6vectorI16HighsBasisStatusSaIS0_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %171, i64 noundef %217)
          to label %252 unwind label %232

218:                                              ; preds = %185, %176
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %321

220:                                              ; preds = %178
  %221 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #8
  br label %321

222:                                              ; preds = %184, %181
  %223 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %30) #8
  call void @llvm.lifetime.end.p0(i64 1720, ptr nonnull %30) #8
  br label %321

224:                                              ; preds = %187
  %225 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #8
  br label %321

226:                                              ; preds = %190
  %227 = landingpad { ptr, i32 }
          cleanup
  br label %320

228:                                              ; preds = %203, %201, %199, %196, %193
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %319

230:                                              ; preds = %205
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %318

232:                                              ; preds = %272, %270, %._crit_edge123, %252, %._crit_edge, %212, %209, %206
  %233 = landingpad { ptr, i32 }
          cleanup
  br label %317

.lr.ph:                                           ; preds = %.preheader117, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %.preheader117 ]
  %234 = trunc nuw nsw i64 %indvars.iv to i32
  %235 = call noundef i32 @_ZNK8presolve19HighsPostsolveStack15getOrigColIndexEi(ptr noundef nonnull align 8 dereferenceable(224) %33, i32 noundef %234)
  %236 = sext i32 %235 to i64
  %237 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %137, i64 noundef %236) #8
  %238 = load double, ptr %237, align 8, !tbaa !67
  %239 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %169, i64 noundef %indvars.iv) #8
  store double %238, ptr %239, align 8, !tbaa !67
  %240 = call noundef i32 @_ZNK8presolve19HighsPostsolveStack15getOrigColIndexEi(ptr noundef nonnull align 8 dereferenceable(224) %33, i32 noundef %234)
  %241 = sext i32 %240 to i64
  %242 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %136, i64 noundef %241) #8
  %243 = load double, ptr %242, align 8, !tbaa !67
  %244 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef %indvars.iv) #8
  store double %243, ptr %244, align 8, !tbaa !67
  %245 = call noundef i32 @_ZNK8presolve19HighsPostsolveStack15getOrigColIndexEi(ptr noundef nonnull align 8 dereferenceable(224) %33, i32 noundef %234)
  %246 = sext i32 %245 to i64
  %247 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %140, i64 noundef %246) #8
  %248 = load i8, ptr %247, align 1, !tbaa !68
  %249 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %168, i64 noundef %indvars.iv) #8
  store i8 %248, ptr %249, align 1, !tbaa !68
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %250 = load i32, ptr %7, align 8, !tbaa !5
  %251 = zext i32 %250 to i64
  %.not92 = icmp eq i64 %indvars.iv.next, %251
  br i1 %.not92, label %._crit_edge, label %.lr.ph, !llvm.loop !70

252:                                              ; preds = %._crit_edge
  %253 = load i32, ptr %123, align 4, !tbaa !45
  %254 = sext i32 %253 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %172, i64 noundef %254)
          to label %.preheader unwind label %232

.preheader:                                       ; preds = %252
  %255 = load i32, ptr %123, align 4, !tbaa !45
  %.not93120 = icmp eq i32 %255, 0
  br i1 %.not93120, label %._crit_edge123, label %.lr.ph122

._crit_edge123:                                   ; preds = %.lr.ph122, %.preheader
  %.lcssa = phi i32 [ 0, %.preheader ], [ %268, %.lr.ph122 ]
  %256 = sext i32 %.lcssa to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %173, i64 noundef %256)
          to label %270 unwind label %232

.lr.ph122:                                        ; preds = %.preheader, %.lr.ph122
  %indvars.iv126 = phi i64 [ %indvars.iv.next127, %.lr.ph122 ], [ 0, %.preheader ]
  %257 = trunc nuw nsw i64 %indvars.iv126 to i32
  %258 = call noundef i32 @_ZNK8presolve19HighsPostsolveStack15getOrigRowIndexEi(ptr noundef nonnull align 8 dereferenceable(224) %33, i32 noundef %257)
  %259 = sext i32 %258 to i64
  %260 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %139, i64 noundef %259) #8
  %261 = load double, ptr %260, align 8, !tbaa !67
  %262 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %172, i64 noundef %indvars.iv126) #8
  store double %261, ptr %262, align 8, !tbaa !67
  %263 = call noundef i32 @_ZNK8presolve19HighsPostsolveStack15getOrigRowIndexEi(ptr noundef nonnull align 8 dereferenceable(224) %33, i32 noundef %257)
  %264 = sext i32 %263 to i64
  %265 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %141, i64 noundef %264) #8
  %266 = load i8, ptr %265, align 1, !tbaa !68
  %267 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %171, i64 noundef %indvars.iv126) #8
  store i8 %266, ptr %267, align 1, !tbaa !68
  %indvars.iv.next127 = add nuw nsw i64 %indvars.iv126, 1
  %268 = load i32, ptr %123, align 4, !tbaa !45
  %269 = zext i32 %268 to i64
  %.not93 = icmp eq i64 %indvars.iv.next127, %269
  br i1 %.not93, label %._crit_edge123, label %.lr.ph122, !llvm.loop !72

270:                                              ; preds = %._crit_edge123
  %271 = invoke noundef i32 @_Z22calculateRowValuesQuadRK7HighsLpR13HighsSolutioni(ptr noundef nonnull align 8 dereferenceable(920) %7, ptr noundef nonnull align 8 dereferenceable(104) %5, i32 noundef -1)
          to label %272 unwind label %232

272:                                              ; preds = %270
  store i8 1, ptr %34, align 8, !tbaa !73
  store i8 1, ptr %174, align 2, !tbaa !79
  invoke void @_Z11refineBasisRK7HighsLpRK13HighsSolutionR10HighsBasis(ptr noundef nonnull align 8 dereferenceable(920) %7, ptr noundef nonnull align 8 dereferenceable(104) %35, ptr noundef nonnull align 8 dereferenceable(96) %34)
          to label %273 unwind label %232

273:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 20928, ptr nonnull %36) #8
  invoke void @_ZN5HighsC1Ev(ptr noundef nonnull align 8 dereferenceable(20928) %36)
          to label %274 unwind label %293

274:                                              ; preds = %273
  %275 = invoke noundef i32 @_ZN5Highs11passOptionsERK12HighsOptions(ptr noundef nonnull align 8 dereferenceable(20928) %36, ptr noundef nonnull align 8 dereferenceable(1020) %1)
          to label %276 unwind label %295

276:                                              ; preds = %274
  invoke void @_ZN7HighsLpC2ERKS_(ptr noundef nonnull align 8 dereferenceable(920) %37, ptr noundef nonnull align 8 dereferenceable(920) %7)
          to label %277 unwind label %295

277:                                              ; preds = %276
  %278 = invoke noundef i32 @_ZN5Highs9passModelE7HighsLp(ptr noundef nonnull align 8 dereferenceable(20928) %36, ptr noundef nonnull %37)
          to label %279 unwind label %297

279:                                              ; preds = %277
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %37) #8
  %280 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %175, ptr noundef nonnull @.str.166)
          to label %281 unwind label %295

281:                                              ; preds = %279
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %282 unwind label %299

282:                                              ; preds = %281
  %283 = invoke noundef i32 @_ZN5Highs8setBasisERK10HighsBasisRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(20928) %36, ptr noundef nonnull align 8 dereferenceable(96) %34, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %284 unwind label %301

284:                                              ; preds = %282
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #8
  %285 = invoke noundef i32 @_ZN5Highs3runEv(ptr noundef nonnull align 8 dereferenceable(20928) %36)
          to label %286 unwind label %295

286:                                              ; preds = %284
  %287 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK5Highs7getInfoEv(ptr noundef nonnull align 8 dereferenceable(20928) %36)
  %288 = getelementptr inbounds i8, ptr %287, i64 24
  %289 = load i32, ptr %288, align 8, !tbaa !80
  %290 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.167, i32 noundef %289)
  %291 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK5Highs7getInfoEv(ptr noundef nonnull align 8 dereferenceable(20928) %36)
  %292 = add i64 %.054, -1
  %.not116 = icmp eq i64 %.053, %292
  br i1 %.not116, label %312, label %304

293:                                              ; preds = %273
  %294 = landingpad { ptr, i32 }
          cleanup
  br label %316

295:                                              ; preds = %284, %279, %276, %274
  %296 = landingpad { ptr, i32 }
          cleanup
  br label %315

297:                                              ; preds = %277
  %298 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %37) #8
  br label %315

299:                                              ; preds = %281
  %300 = landingpad { ptr, i32 }
          cleanup
  br label %303

301:                                              ; preds = %282
  %302 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %303

303:                                              ; preds = %301, %299
  %.pn94 = phi { ptr, i32 } [ %302, %301 ], [ %300, %299 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #8
  br label %315

304:                                              ; preds = %286
  %305 = getelementptr inbounds i8, ptr %291, i64 24
  %306 = load i32, ptr %305, align 8, !tbaa !80
  %307 = icmp eq i32 %306, 0
  %308 = load i64, ptr %28, align 8
  %.155 = select i1 %307, i64 %308, i64 %.054
  %.1 = select i1 %307, i64 %.053, i64 %308
  %309 = add i64 %.1, %.155
  %310 = lshr i64 %309, 1
  store i64 %310, ptr %28, align 8, !tbaa !66
  %311 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.168, i64 noundef %.155, i64 noundef %.1)
  br label %312

312:                                              ; preds = %286, %304
  %.256 = phi i64 [ %.155, %304 ], [ %.054, %286 ]
  %.2 = phi i64 [ %.1, %304 ], [ %.053, %286 ]
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %36) #8
  call void @llvm.lifetime.end.p0(i64 20928, ptr nonnull %36) #8
  call void @_ZN13HighsSolutionD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %35) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %35) #8
  call void @_ZN10HighsBasisD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %34) #8
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %34) #8
  call void @_ZN8presolve19HighsPostsolveStackD2Ev(ptr noundef nonnull align 8 dereferenceable(224) %33) #8
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %33) #8
  call void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %32) #8
  call void @llvm.lifetime.end.p0(i64 1720, ptr nonnull %32) #8
  br i1 %.not116, label %313, label %176

313:                                              ; preds = %312
  %314 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.169, i64 noundef %.256, i64 noundef %.2)
  call void @__assert_fail(ptr noundef nonnull @.str.170, ptr noundef nonnull @.str.55, i32 noundef 6632, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8presolve9HPresolve5debugERK7HighsLpRK12HighsOptions) #9
  unreachable

315:                                              ; preds = %303, %297, %295
  %.pn96 = phi { ptr, i32 } [ %296, %295 ], [ %.pn94, %303 ], [ %298, %297 ]
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %36) #8
  br label %316

316:                                              ; preds = %315, %293
  %.pn96.pn = phi { ptr, i32 } [ %.pn96, %315 ], [ %294, %293 ]
  call void @llvm.lifetime.end.p0(i64 20928, ptr nonnull %36) #8
  br label %317

317:                                              ; preds = %316, %232
  %.pn96.pn.pn = phi { ptr, i32 } [ %.pn96.pn, %316 ], [ %233, %232 ]
  call void @_ZN13HighsSolutionD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %35) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %35) #8
  call void @_ZN10HighsBasisD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %34) #8
  br label %318

318:                                              ; preds = %317, %230
  %.pn96.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn, %317 ], [ %231, %230 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %34) #8
  br label %319

319:                                              ; preds = %318, %228
  %.pn96.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn, %318 ], [ %229, %228 ]
  call void @_ZN8presolve19HighsPostsolveStackD2Ev(ptr noundef nonnull align 8 dereferenceable(224) %33) #8
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %33) #8
  br label %320

320:                                              ; preds = %319, %226
  %.pn96.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn, %319 ], [ %227, %226 ]
  call void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %32) #8
  call void @llvm.lifetime.end.p0(i64 1720, ptr nonnull %32) #8
  br label %321

321:                                              ; preds = %320, %224, %222, %220, %218
  %.pn96.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn, %320 ], [ %225, %224 ], [ %219, %218 ], [ %223, %222 ], [ %221, %220 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  br label %322

322:                                              ; preds = %321, %163
  %.pn96.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn.pn, %321 ], [ %164, %163 ]
  call void @llvm.lifetime.end.p0(i64 168, ptr nonnull %27) #8
  br label %323

323:                                              ; preds = %322, %161, %159
  %.pn96.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn.pn.pn, %322 ], [ %162, %161 ], [ %160, %159 ]
  call void @_ZN8presolve13dev_kkt_check7KktInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(54) %25) #8
  br label %324

324:                                              ; preds = %323, %157
  %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn.pn.pn.pn, %323 ], [ %158, %157 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %25) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #8
  br label %325

325:                                              ; preds = %324, %155
  %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn, %324 ], [ %156, %155 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #8
  br label %326

326:                                              ; preds = %325, %153
  %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %325 ], [ %154, %153 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #8
  br label %328

.critedge:                                        ; preds = %80
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %11) #8
  call void @llvm.lifetime.end.p0(i64 20928, ptr nonnull %11) #8
  call void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720) %10) #8
  call void @llvm.lifetime.end.p0(i64 1720, ptr nonnull %10) #8
  br label %327

327:                                              ; preds = %.critedge, %.thread, %148
  call void @_ZN8presolve19HighsPostsolveStackD2Ev(ptr noundef nonnull align 8 dereferenceable(224) %9) #8
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %9) #8
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %7) #8
  call void @llvm.lifetime.end.p0(i64 920, ptr nonnull %7) #8
  call void @_ZN10HighsBasisD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %6) #8
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %6) #8
  call void @_ZN13HighsSolutionD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %5) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %5) #8
  call void @_ZN10HighsBasisD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %4) #8
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %4) #8
  call void @_ZN13HighsSolutionD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %3) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %3) #8
  ret void

328:                                              ; preds = %326, %152, %65
  %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %326 ], [ %66, %65 ], [ %.pn88.pn.pn, %152 ]
  call void @_ZN8presolve19HighsPostsolveStackD2Ev(ptr noundef nonnull align 8 dereferenceable(224) %9) #8
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %9) #8
  br label %329

329:                                              ; preds = %328, %63
  %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %328 ], [ %64, %63 ]
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %7) #8
  br label %330

330:                                              ; preds = %329, %61
  %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %329 ], [ %62, %61 ]
  call void @llvm.lifetime.end.p0(i64 920, ptr nonnull %7) #8
  call void @_ZN10HighsBasisD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %6) #8
  br label %331

331:                                              ; preds = %330, %59
  %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %330 ], [ %60, %59 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %6) #8
  call void @_ZN13HighsSolutionD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %5) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %5) #8
  call void @_ZN10HighsBasisD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %4) #8
  br label %332

332:                                              ; preds = %331, %57
  %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %331 ], [ %58, %57 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %4) #8
  call void @_ZN13HighsSolutionD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %3) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %3) #8
  resume { ptr, i32 } %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN13HighsSolutionC2Ev(ptr noundef nonnull align 8 dereferenceable(104)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10HighsBasisC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7HighsLpC2ERKS_(ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(920)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8presolve9HPresolveC2Ev(ptr noundef nonnull align 8 dereferenceable(1720)) unnamed_addr #6 align 2

declare void @_ZN5HighsC1Ev(ptr noundef nonnull align 8 dereferenceable(20928)) unnamed_addr #7

declare noundef i32 @_ZN5Highs9passModelE7HighsLp(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920)) unnamed_addr #6 align 2

declare noundef i32 @_ZN5Highs11passOptionsERK12HighsOptions(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef nonnull align 8 dereferenceable(1020)) local_unnamed_addr #7

declare noundef i32 @_ZN5Highs14setOptionValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #7

declare noundef i32 @_ZN5Highs3runEv(ptr noundef nonnull align 8 dereferenceable(20928)) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5Highs14getModelStatusEv(ptr noundef nonnull align 8 dereferenceable(20928)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(104) ptr @_ZNK5Highs11getSolutionEv(ptr noundef nonnull align 8 dereferenceable(20928)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(96) ptr @_ZNK5Highs8getBasisEv(ptr noundef nonnull align 8 dereferenceable(20928)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8presolve9HPresolveD2Ev(ptr noundef nonnull align 8 dereferenceable(1720)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8presolve19HighsPostsolveStack4undoERK12HighsOptionsR13HighsSolutionR10HighsBasisi(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(1020), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(96), i32 noundef) local_unnamed_addr #2 align 2

declare void @_Z11refineBasisRK7HighsLpRK13HighsSolutionR10HighsBasis(ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #7

declare noundef i32 @_Z22calculateRowValuesQuadRK7HighsLpR13HighsSolutioni(ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(104), i32 noundef) local_unnamed_addr #7

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

declare void @_ZN8presolve13dev_kkt_check8initInfoEv(ptr dead_on_unwind writable sret(%"struct.presolve::dev_kkt_check::KktInfo") align 8) local_unnamed_addr #7

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

declare void @_Z20highsSparseTransposeiiRKSt6vectorIiSaIiEES3_RKS_IdSaIdEERS1_S8_RS5_(i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #7

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

declare noundef zeroext i1 @_ZN8presolve13dev_kkt_check8checkKktERKNS0_5StateERNS0_7KktInfoE(ptr noundef nonnull align 8 dereferenceable(168), ptr noundef nonnull align 8 dereferenceable(54)) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8presolve19HighsPostsolveStack9undoUntilERK12HighsOptionsR13HighsSolutionR10HighsBasism(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(1020), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(96), i64 noundef) local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #2 align 2

declare noundef i32 @_ZN5Highs8setBasisERK10HighsBasisRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(184) ptr @_ZNK5Highs7getInfoEv(ptr noundef nonnull align 8 dereferenceable(20928)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN13HighsSolutionD2Ev(ptr noundef nonnull align 8 dereferenceable(104)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN10HighsBasisD2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8presolve13dev_kkt_check7KktInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(54)) unnamed_addr #6 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #6 = { 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 #7 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTS7HighsLp", !7, i64 0, !7, i64 4, !10, i64 8, !10, i64 32, !10, i64 56, !10, i64 80, !10, i64 104, !15, i64 128, !21, i64 240, !22, i64 248, !23, i64 256, !23, i64 288, !7, i64 320, !7, i64 324, !26, i64 328, !26, i64 352, !30, i64 376, !34, i64 400, !34, i64 456, !7, i64 512, !7, i64 516, !40, i64 520, !41, i64 592, !41, i64 593, !7, i64 596, !41, i64 600, !42, i64 608}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSSt6vectorIdSaIdEE", !11, i64 0}
!11 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !12, i64 0}
!12 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !13, i64 0}
!13 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!14 = !{!"any pointer", !8, i64 0}
!15 = !{!"_ZTS17HighsSparseMatrix", !16, i64 0, !7, i64 4, !7, i64 8, !17, i64 16, !17, i64 40, !17, i64 64, !10, i64 88}
!16 = !{!"_ZTS12MatrixFormat", !8, i64 0}
!17 = !{!"_ZTSSt6vectorIiSaIiEE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!21 = !{!"_ZTS8ObjSense", !8, i64 0}
!22 = !{!"double", !8, i64 0}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !25, i64 8, !8, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !14, i64 0}
!25 = !{!"long", !8, i64 0}
!26 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!30 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!34 = !{!"_ZTS13HighsNameHash", !35, i64 0}
!35 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !36, i64 0}
!36 = !{!"_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", !14, i64 0, !25, i64 8, !37, i64 16, !25, i64 24, !38, i64 32, !14, i64 48}
!37 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !14, i64 0}
!38 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !39, i64 0, !25, i64 8}
!39 = !{!"float", !8, i64 0}
!40 = !{!"_ZTS10HighsScale", !7, i64 0, !41, i64 4, !7, i64 8, !7, i64 12, !22, i64 16, !10, i64 24, !10, i64 48}
!41 = !{!"bool", !8, i64 0}
!42 = !{!"_ZTS11HighsLpMods", !17, i64 0, !17, i64 24, !10, i64 48, !10, i64 72, !30, i64 96, !17, i64 120, !10, i64 144, !17, i64 168, !10, i64 192, !17, i64 216, !10, i64 240, !10, i64 264, !10, i64 288}
!43 = !{!44, !44, i64 0}
!44 = !{!"_ZTS12HighsVarType", !8, i64 0}
!45 = !{!6, !7, i64 4}
!46 = !{!47, !7, i64 576}
!47 = !{!"_ZTS18HighsOptionsStruct", !23, i64 8, !23, i64 40, !23, i64 72, !23, i64 104, !22, i64 136, !23, i64 144, !23, i64 176, !7, i64 208, !23, i64 216, !22, i64 248, !22, i64 256, !22, i64 264, !22, i64 272, !22, i64 280, !22, i64 288, !22, i64 296, !22, i64 304, !22, i64 312, !22, i64 320, !22, i64 328, !7, i64 336, !7, i64 340, !7, i64 344, !7, i64 348, !7, i64 352, !7, i64 356, !7, i64 360, !7, i64 364, !7, i64 368, !7, i64 372, !7, i64 376, !7, i64 380, !7, i64 384, !7, i64 388, !23, i64 392, !41, i64 424, !41, i64 425, !41, i64 426, !7, i64 428, !7, i64 432, !23, i64 440, !41, i64 472, !41, i64 473, !41, i64 474, !7, i64 476, !41, i64 480, !41, i64 481, !7, i64 484, !7, i64 488, !22, i64 496, !7, i64 504, !7, i64 508, !7, i64 512, !41, i64 516, !7, i64 520, !41, i64 524, !41, i64 525, !41, i64 526, !41, i64 527, !41, i64 528, !41, i64 529, !41, i64 530, !7, i64 532, !7, i64 536, !7, i64 540, !7, i64 544, !7, i64 548, !7, i64 552, !7, i64 556, !7, i64 560, !7, i64 564, !7, i64 568, !7, i64 572, !7, i64 576, !7, i64 580, !7, i64 584, !7, i64 588, !41, i64 592, !41, i64 593, !41, i64 594, !41, i64 595, !22, i64 600, !22, i64 608, !22, i64 616, !22, i64 624, !22, i64 632, !22, i64 640, !22, i64 648, !22, i64 656, !22, i64 664, !22, i64 672, !22, i64 680, !41, i64 688, !41, i64 689, !41, i64 690, !41, i64 691, !7, i64 692, !22, i64 696, !41, i64 704, !41, i64 705, !23, i64 712, !22, i64 744, !7, i64 752, !7, i64 756, !41, i64 760, !41, i64 761, !41, i64 762, !41, i64 763, !7, i64 764, !7, i64 768, !7, i64 772, !7, i64 776, !7, i64 780, !7, i64 784, !7, i64 788, !7, i64 792, !7, i64 796, !7, i64 800, !7, i64 804, !22, i64 808, !22, i64 816, !22, i64 824, !22, i64 832, !22, i64 840, !41, i64 848, !41, i64 849, !23, i64 856, !41, i64 888, !7, i64 892, !48, i64 896}
!48 = !{!"_ZTS15HighsLogOptions", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !49, i64 48, !14, i64 80, !41, i64 88}
!49 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !50, i64 0, !14, i64 24}
!50 = !{!"_ZTSSt14_Function_base", !8, i64 0, !14, i64 16}
!51 = !{!52, !52, i64 0}
!52 = !{!"_ZTS16HighsModelStatus", !8, i64 0}
!53 = !{!7, !7, i64 0}
!54 = !{!55, !41, i64 53}
!55 = !{!"_ZTSN8presolve13dev_kkt_check7KktInfoE", !56, i64 0, !41, i64 48, !41, i64 49, !41, i64 50, !41, i64 51, !41, i64 52, !41, i64 53}
!56 = !{!"_ZTSSt3mapIN8presolve13dev_kkt_check12KktConditionENS1_19KktConditionDetailsESt4lessIS2_ESaISt4pairIKS2_S3_EEE", !57, i64 0}
!57 = !{!"_ZTSSt8_Rb_treeIN8presolve13dev_kkt_check12KktConditionESt4pairIKS2_NS1_19KktConditionDetailsEESt10_Select1stIS6_ESt4lessIS2_ESaIS6_EE", !58, i64 0}
!58 = !{!"_ZTSNSt8_Rb_treeIN8presolve13dev_kkt_check12KktConditionESt4pairIKS2_NS1_19KktConditionDetailsEESt10_Select1stIS6_ESt4lessIS2_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !59, i64 0, !61, i64 8}
!59 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN8presolve13dev_kkt_check12KktConditionEEE", !60, i64 0}
!60 = !{!"_ZTSSt4lessIN8presolve13dev_kkt_check12KktConditionEE"}
!61 = !{!"_ZTSSt15_Rb_tree_header", !62, i64 0, !25, i64 32}
!62 = !{!"_ZTSSt18_Rb_tree_node_base", !63, i64 0, !14, i64 8, !14, i64 16, !14, i64 24}
!63 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!64 = !{i8 0, i8 2}
!65 = !{}
!66 = !{!25, !25, i64 0}
!67 = !{!22, !22, i64 0}
!68 = !{!69, !69, i64 0}
!69 = !{!"_ZTS16HighsBasisStatus", !8, i64 0}
!70 = distinct !{!70, !71}
!71 = !{!"llvm.loop.mustprogress"}
!72 = distinct !{!72, !71}
!73 = !{!74, !41, i64 0}
!74 = !{!"_ZTS10HighsBasis", !41, i64 0, !41, i64 1, !41, i64 2, !41, i64 3, !7, i64 4, !7, i64 8, !23, i64 16, !75, i64 48, !75, i64 72}
!75 = !{!"_ZTSSt6vectorI16HighsBasisStatusSaIS0_EE", !76, i64 0}
!76 = !{!"_ZTSSt12_Vector_baseI16HighsBasisStatusSaIS0_EE", !77, i64 0}
!77 = !{!"_ZTSNSt12_Vector_baseI16HighsBasisStatusSaIS0_EE12_Vector_implE", !78, i64 0}
!78 = !{!"_ZTSNSt12_Vector_baseI16HighsBasisStatusSaIS0_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!79 = !{!74, !41, i64 2}
!80 = !{!81, !7, i64 16}
!81 = !{!"_ZTS15HighsInfoStruct", !41, i64 0, !25, i64 8, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !22, i64 48, !22, i64 56, !22, i64 64, !22, i64 72, !7, i64 80, !22, i64 88, !22, i64 96, !7, i64 104, !22, i64 112, !22, i64 120, !22, i64 128, !22, i64 136, !22, i64 144}


; Effective O3 passes: ConstraintEliminationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass