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

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

%struct.HighsTripletTreeSlicePreOrder = type { %class.HighsMatrixSlice.base.109, [4 x i8] }
%class.HighsMatrixSlice.base.109 = type <{ ptr, ptr, ptr, ptr, i32 }>
%"class.HighsMatrixSlice<HighsTripletTreeSlicePreOrder>::iterator" = type <{ %class.HighsSliceNonzero, ptr, ptr, %"class.std::vector.5", i32, [4 x i8] }>
%class.HighsSliceNonzero = type { ptr, ptr }
%"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 }
%struct.HighsTripletPositionSlice = type { %class.HighsMatrixSlice.base.420, [4 x i8] }
%class.HighsMatrixSlice.base.420 = type <{ ptr, ptr, ptr, i32 }>
%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator" = type <{ %class.HighsSliceNonzero, ptr, i32, [4 x i8] }>
%class.anon.497 = type { ptr }
%"struct.std::_Bit_reference" = type { ptr, i64 }
%struct.HighsEmptySlice = type { i8 }
%class.anon.498 = type { ptr, ptr }
%"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 }
%"class.__gnu_cxx::__normal_iterator.404" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%class.anon.499 = type { ptr }
%class.anon.500 = type { ptr, ptr, ptr, ptr }
%class.anon.501 = type { ptr, ptr, ptr }
%class.anon.502 = type { ptr }
%class.HighsCDouble = type { double, double }
%class.anon.503 = type { ptr, ptr }
%class.anon.504 = 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 }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"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.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.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.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::__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] }
%"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.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" }
%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::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.HighsMipSolver = type { ptr, ptr, ptr, ptr, i32, %"class.std::vector.20", double, double, double, double, double, double, double, i64, i64, double, ptr, %"class.std::vector.110", i8, i32, i32, ptr, ptr, ptr, ptr, %"class.std::unique_ptr", %class.HighsMipAnalysis, %class.HighsTimer }
%"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.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.116" }
%"struct.std::_Head_base.116" = type { ptr }
%class.HighsMipAnalysis = type { ptr, %"class.std::__cxx11::basic_string", %struct.HighsTimerClock, i8, %"class.std::vector.20", %"class.std::vector.20" }
%struct.HighsTimerClock = type { ptr, %"class.std::vector.5" }
%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.HighsMipSolverData = type <{ ptr, %class.HighsCutPool, %class.HighsConflictPool, %class.HighsDomain, %class.HighsLpRelaxation, %class.HighsPseudocost, %class.HighsCliqueTable, %class.HighsImplications, %class.HighsPrimalHeuristics, %class.HighsRedcostFixing, %class.HighsObjectiveFunction, %"class.presolve::HighsPostsolveStack", i32, [4 x i8], %class.HighsLp, i8, i8, i8, i8, i32, i8, [3 x i8], i32, i32, i32, i32, [4 x i8], %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.10", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %struct.HighsSymmetries, %"class.std::shared_ptr.361", double, double, double, i64, %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", double, %struct.HighsBasis, double, i32, i32, %class.HighsCDouble, double, double, double, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, [4 x i8], double, double, double, double, %"class.std::vector.20", %class.HighsNodeQueue, %struct.HighsPrimaDualIntegral, [8 x i8] }>
%class.HighsCutPool = type { %class.HighsDynamicRowMatrix, %"class.std::vector.20", %"class.std::vector.117", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.10", %"class.std::unordered_multimap", %"class.std::vector.141", %"class.std::set", double, double, double, i32, i32, i32, i32, i32, %"class.std::vector.5", %"class.std::vector.146" }
%class.HighsDynamicRowMatrix = type { %"class.std::vector.35", %"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.10", %"class.std::set", %"class.std::vector.5" }
%"class.std::vector.117" = type { %"struct.std::_Vector_base.118" }
%"struct.std::_Vector_base.118" = type { %"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl" }
%"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl" = type { %"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl_data" }
%"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_multimap" = type { %"class.std::_Hashtable.122" }
%"class.std::_Hashtable.122" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.141" = type { %"struct.std::_Vector_base.142" }
%"struct.std::_Vector_base.142" = type { %"struct.std::_Vector_base<HighsDomain::CutpoolPropagation *, std::allocator<HighsDomain::CutpoolPropagation *>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsDomain::CutpoolPropagation *, std::allocator<HighsDomain::CutpoolPropagation *>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsDomain::CutpoolPropagation *, std::allocator<HighsDomain::CutpoolPropagation *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsDomain::CutpoolPropagation *, std::allocator<HighsDomain::CutpoolPropagation *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.146" = type { %"struct.std::_Vector_base.147" }
%"struct.std::_Vector_base.147" = type { %"struct.std::_Vector_base<std::pair<int, double>, std::allocator<std::pair<int, double>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, double>, std::allocator<std::pair<int, double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, double>, std::allocator<std::pair<int, double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, double>, std::allocator<std::pair<int, double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsConflictPool = type { i32, i32, %"class.std::vector.5", %"class.std::vector.117", %"class.std::vector.151", %"class.std::vector.156", %"class.std::vector.35", %"class.std::set", %"class.std::vector.5", %"class.std::vector.161" }
%"class.std::vector.151" = type { %"struct.std::_Vector_base.152" }
%"struct.std::_Vector_base.152" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.156" = type { %"struct.std::_Vector_base.157" }
%"struct.std::_Vector_base.157" = type { %"struct.std::_Vector_base<HighsDomainChange, std::allocator<HighsDomainChange>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsDomainChange, std::allocator<HighsDomainChange>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsDomainChange, std::allocator<HighsDomainChange>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsDomainChange, std::allocator<HighsDomainChange>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.161" = type { %"struct.std::_Vector_base.162" }
%"struct.std::_Vector_base.162" = type { %"struct.std::_Vector_base<HighsDomain::ConflictPoolPropagation *, std::allocator<HighsDomain::ConflictPoolPropagation *>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsDomain::ConflictPoolPropagation *, std::allocator<HighsDomain::ConflictPoolPropagation *>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsDomain::ConflictPoolPropagation *, std::allocator<HighsDomain::ConflictPoolPropagation *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsDomain::ConflictPoolPropagation *, std::allocator<HighsDomain::ConflictPoolPropagation *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsDomain = type { %"class.std::vector.10", %"class.std::vector.5", %"class.std::vector.35", %"class.std::vector.156", %"class.std::vector.166", %"class.std::vector.171", %"class.std::vector.30", %"class.std::vector.30", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.10", %"class.std::vector.5", %"struct.HighsDomain::ObjectivePropagation", ptr, %"class.std::deque", %"class.std::deque.189", i8, %"struct.HighsDomain::Reason", i32, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %class.HighsHashTable, i8, %"class.std::vector.20", %"class.std::vector.20" }
%"class.std::vector.166" = type { %"struct.std::_Vector_base.167" }
%"struct.std::_Vector_base.167" = type { %"struct.std::_Vector_base<HighsDomain::Reason, std::allocator<HighsDomain::Reason>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsDomain::Reason, std::allocator<HighsDomain::Reason>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsDomain::Reason, std::allocator<HighsDomain::Reason>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsDomain::Reason, std::allocator<HighsDomain::Reason>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.171" = type { %"struct.std::_Vector_base.172" }
%"struct.std::_Vector_base.172" = type { %"struct.std::_Vector_base<std::pair<double, int>, std::allocator<std::pair<double, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<double, int>, std::allocator<std::pair<double, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<double, int>, std::allocator<std::pair<double, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<double, int>, std::allocator<std::pair<double, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HighsDomain::ObjectivePropagation" = type { ptr, ptr, ptr, %class.HighsCDouble, i32, double, i8, %"class.std::vector.176", %"class.std::vector.35", %"class.std::vector.20", %"class.std::vector.181" }
%"class.std::vector.176" = type { %"struct.std::_Vector_base.177" }
%"struct.std::_Vector_base.177" = type { %"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::ObjectiveContribution, std::allocator<HighsDomain::ObjectivePropagation::ObjectiveContribution>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::ObjectiveContribution, std::allocator<HighsDomain::ObjectivePropagation::ObjectiveContribution>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::ObjectiveContribution, std::allocator<HighsDomain::ObjectivePropagation::ObjectiveContribution>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::ObjectiveContribution, std::allocator<HighsDomain::ObjectivePropagation::ObjectiveContribution>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.181" = type { %"struct.std::_Vector_base.182" }
%"struct.std::_Vector_base.182" = type { %"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::PartitionCliqueData, std::allocator<HighsDomain::ObjectivePropagation::PartitionCliqueData>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::PartitionCliqueData, std::allocator<HighsDomain::ObjectivePropagation::PartitionCliqueData>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::PartitionCliqueData, std::allocator<HighsDomain::ObjectivePropagation::PartitionCliqueData>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::PartitionCliqueData, std::allocator<HighsDomain::ObjectivePropagation::PartitionCliqueData>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<HighsDomain::CutpoolPropagation, std::allocator<HighsDomain::CutpoolPropagation>>::_Deque_impl" }
%"struct.std::_Deque_base<HighsDomain::CutpoolPropagation, std::allocator<HighsDomain::CutpoolPropagation>>::_Deque_impl" = type { %"struct.std::_Deque_base<HighsDomain::CutpoolPropagation, std::allocator<HighsDomain::CutpoolPropagation>>::_Deque_impl_data" }
%"struct.std::_Deque_base<HighsDomain::CutpoolPropagation, std::allocator<HighsDomain::CutpoolPropagation>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"class.std::deque.189" = type { %"class.std::_Deque_base.190" }
%"class.std::_Deque_base.190" = type { %"struct.std::_Deque_base<HighsDomain::ConflictPoolPropagation, std::allocator<HighsDomain::ConflictPoolPropagation>>::_Deque_impl" }
%"struct.std::_Deque_base<HighsDomain::ConflictPoolPropagation, std::allocator<HighsDomain::ConflictPoolPropagation>>::_Deque_impl" = type { %"struct.std::_Deque_base<HighsDomain::ConflictPoolPropagation, std::allocator<HighsDomain::ConflictPoolPropagation>>::_Deque_impl_data" }
%"struct.std::_Deque_base<HighsDomain::ConflictPoolPropagation, std::allocator<HighsDomain::ConflictPoolPropagation>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator.194", %"struct.std::_Deque_iterator.194" }
%"struct.std::_Deque_iterator.194" = type { ptr, ptr, ptr, ptr }
%"struct.HighsDomain::Reason" = type { i32, i32 }
%class.HighsHashTable = type { %"class.std::unique_ptr.195", %"class.std::unique_ptr.203", i64, i64, i64 }
%"class.std::unique_ptr.195" = type { %"struct.std::__uniq_ptr_data.196" }
%"struct.std::__uniq_ptr_data.196" = type { %"class.std::__uniq_ptr_impl.197" }
%"class.std::__uniq_ptr_impl.197" = type { %"class.std::tuple.198" }
%"class.std::tuple.198" = type { %"struct.std::_Tuple_impl.199" }
%"struct.std::_Tuple_impl.199" = type { %"struct.std::_Head_base.202" }
%"struct.std::_Head_base.202" = 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.HighsLpRelaxation = type <{ ptr, %class.Highs, %"class.std::vector.281", %"class.std::vector.146", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %class.HVectorBase, %class.HighsSparseVectorSum, double, i8, [7 x i8], double, %"class.std::shared_ptr", i8, [7 x i8], i64, i64, double, i64, i64, i32, i32, i8, [7 x i8] }>
%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.HighsSolution = type { i8, i8, %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20" }
%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" }
%struct.HighsCallback = type { %"class.std::function", ptr, ptr, %"class.std::vector.58", %struct.HighsCallbackDataOut, %struct.HighsCallbackDataIn }
%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] }>
%"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.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.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.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 }
%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::vector.281" = type { %"struct.std::_Vector_base.282" }
%"struct.std::_Vector_base.282" = type { %"struct.std::_Vector_base<HighsLpRelaxation::LpRow, std::allocator<HighsLpRelaxation::LpRow>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsLpRelaxation::LpRow, std::allocator<HighsLpRelaxation::LpRow>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsLpRelaxation::LpRow, std::allocator<HighsLpRelaxation::LpRow>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsLpRelaxation::LpRow, std::allocator<HighsLpRelaxation::LpRow>>::_Vector_impl_data" = type { ptr, ptr, 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" }
%class.HighsSparseVectorSum = type { %"class.std::vector.30", %"class.std::vector.5" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%class.HighsPseudocost = type { %"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.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.20", double, double, double, double, i64, i64, i64, i32, double }
%class.HighsCliqueTable = type { %"class.std::vector.286", %"class.std::vector.291", %"class.std::vector.296", %class.HighsHashTable.301, %"class.std::set", %"class.std::vector.5", %"class.std::vector.310", %"class.std::vector.5", %"class.std::vector.286", %"class.std::vector.5", %"class.std::vector.315", %"class.std::vector.5", %"class.std::vector.320", %"class.std::vector.10", %"class.std::vector.10", %"class.std::vector.151", %"class.std::vector.5", %class.HighsRandom, i32, i32, i32, i32, i8, i64 }
%"class.std::vector.291" = type { %"struct.std::_Vector_base.292" }
%"struct.std::_Vector_base.292" = type { %"struct.std::_Vector_base<HighsHashTree<int, int>, std::allocator<HighsHashTree<int, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsHashTree<int, int>, std::allocator<HighsHashTree<int, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsHashTree<int, int>, std::allocator<HighsHashTree<int, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsHashTree<int, int>, std::allocator<HighsHashTree<int, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.296" = type { %"struct.std::_Vector_base.297" }
%"struct.std::_Vector_base.297" = type { %"struct.std::_Vector_base<HighsHashTree<int>, std::allocator<HighsHashTree<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsHashTree<int>, std::allocator<HighsHashTree<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsHashTree<int>, std::allocator<HighsHashTree<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsHashTree<int>, std::allocator<HighsHashTree<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsHashTable.301 = type { %"class.std::unique_ptr.302", %"class.std::unique_ptr.203", i64, i64, i64 }
%"class.std::unique_ptr.302" = type { %"struct.std::__uniq_ptr_data.303" }
%"struct.std::__uniq_ptr_data.303" = type { %"class.std::__uniq_ptr_impl.304" }
%"class.std::__uniq_ptr_impl.304" = type { %"class.std::tuple.305" }
%"class.std::tuple.305" = type { %"struct.std::_Tuple_impl.306" }
%"struct.std::_Tuple_impl.306" = type { %"struct.std::_Head_base.309" }
%"struct.std::_Head_base.309" = type { ptr }
%"class.std::vector.310" = type { %"struct.std::_Vector_base.311" }
%"struct.std::_Vector_base.311" = type { %"struct.std::_Vector_base<HighsCliqueTable::Clique, std::allocator<HighsCliqueTable::Clique>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsCliqueTable::Clique, std::allocator<HighsCliqueTable::Clique>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsCliqueTable::Clique, std::allocator<HighsCliqueTable::Clique>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsCliqueTable::Clique, std::allocator<HighsCliqueTable::Clique>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.286" = type { %"struct.std::_Vector_base.287" }
%"struct.std::_Vector_base.287" = type { %"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.315" = type { %"struct.std::_Vector_base.316" }
%"struct.std::_Vector_base.316" = type { %"struct.std::_Vector_base<HighsCliqueTable::Substitution, std::allocator<HighsCliqueTable::Substitution>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsCliqueTable::Substitution, std::allocator<HighsCliqueTable::Substitution>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsCliqueTable::Substitution, std::allocator<HighsCliqueTable::Substitution>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsCliqueTable::Substitution, std::allocator<HighsCliqueTable::Substitution>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.320" = type { %"struct.std::_Vector_base.321" }
%"struct.std::_Vector_base.321" = type { %"struct.std::_Vector_base<std::pair<int, HighsCliqueTable::CliqueVar>, std::allocator<std::pair<int, HighsCliqueTable::CliqueVar>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, HighsCliqueTable::CliqueVar>, std::allocator<std::pair<int, HighsCliqueTable::CliqueVar>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, HighsCliqueTable::CliqueVar>, std::allocator<std::pair<int, HighsCliqueTable::CliqueVar>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, HighsCliqueTable::CliqueVar>, std::allocator<std::pair<int, HighsCliqueTable::CliqueVar>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsImplications = type { i32, %"class.std::vector.325", i64, %"class.std::vector.330", %"class.std::vector.330", ptr, %"class.std::vector.335", %"class.std::vector.10", %"class.std::function.340" }
%"class.std::vector.325" = type { %"struct.std::_Vector_base.326" }
%"struct.std::_Vector_base.326" = type { %"struct.std::_Vector_base<HighsImplications::Implics, std::allocator<HighsImplications::Implics>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsImplications::Implics, std::allocator<HighsImplications::Implics>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsImplications::Implics, std::allocator<HighsImplications::Implics>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsImplications::Implics, std::allocator<HighsImplications::Implics>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.330" = type { %"struct.std::_Vector_base.331" }
%"struct.std::_Vector_base.331" = type { %"struct.std::_Vector_base<HighsHashTree<int, HighsImplications::VarBound>, std::allocator<HighsHashTree<int, HighsImplications::VarBound>>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsHashTree<int, HighsImplications::VarBound>, std::allocator<HighsHashTree<int, HighsImplications::VarBound>>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsHashTree<int, HighsImplications::VarBound>, std::allocator<HighsHashTree<int, HighsImplications::VarBound>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsHashTree<int, HighsImplications::VarBound>, std::allocator<HighsHashTree<int, HighsImplications::VarBound>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.335" = type { %"struct.std::_Vector_base.336" }
%"struct.std::_Vector_base.336" = type { %"struct.std::_Vector_base<HighsSubstitution, std::allocator<HighsSubstitution>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsSubstitution, std::allocator<HighsSubstitution>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsSubstitution, std::allocator<HighsSubstitution>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsSubstitution, std::allocator<HighsSubstitution>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function.340" = type { %"class.std::_Function_base", ptr }
%class.HighsPrimalHeuristics = type { ptr, i64, i64, i64, i64, double, i32, double, i32, %class.HighsRandom, %"class.std::vector.5" }
%class.HighsRedcostFixing = type { %"class.std::vector.342", %"class.std::vector.342" }
%"class.std::vector.342" = type { %"struct.std::_Vector_base.343" }
%"struct.std::_Vector_base.343" = type { %"struct.std::_Vector_base<std::multimap<double, int>, std::allocator<std::multimap<double, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::multimap<double, int>, std::allocator<std::multimap<double, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::multimap<double, int>, std::allocator<std::multimap<double, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::multimap<double, int>, std::allocator<std::multimap<double, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsObjectiveFunction = type { ptr, double, i32, i32, %"class.std::vector.5", %"class.std::vector.20", %"class.std::vector.5", %"class.std::vector.5" }
%"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.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.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 }
%struct.HighsSymmetries = type { %"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.347", %class.HighsHashTable.352, i32, i32 }
%"class.std::vector.347" = type { %"struct.std::_Vector_base.348" }
%"struct.std::_Vector_base.348" = type { %"struct.std::_Vector_base<HighsOrbitopeMatrix, std::allocator<HighsOrbitopeMatrix>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsOrbitopeMatrix, std::allocator<HighsOrbitopeMatrix>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsOrbitopeMatrix, std::allocator<HighsOrbitopeMatrix>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsOrbitopeMatrix, std::allocator<HighsOrbitopeMatrix>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsHashTable.352 = type { %"class.std::unique_ptr.353", %"class.std::unique_ptr.203", i64, i64, i64 }
%"class.std::unique_ptr.353" = type { %"struct.std::__uniq_ptr_data.354" }
%"struct.std::__uniq_ptr_data.354" = type { %"class.std::__uniq_ptr_impl.355" }
%"class.std::__uniq_ptr_impl.355" = type { %"class.std::tuple.356" }
%"class.std::tuple.356" = type { %"struct.std::_Tuple_impl.357" }
%"struct.std::_Tuple_impl.357" = type { %"struct.std::_Head_base.360" }
%"struct.std::_Head_base.360" = type { ptr }
%"class.std::shared_ptr.361" = type { %"class.std::__shared_ptr.362" }
%"class.std::__shared_ptr.362" = type { ptr, %"class.std::__shared_count" }
%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.HighsNodeQueue = type <{ %"class.std::unique_ptr.364", %"class.std::vector.372", %"class.std::priority_queue", %"class.std::unique_ptr.382", %"class.std::unique_ptr.382", i64, i64, i64, i64, i64, i64, i64, double, i32, [4 x i8] }>
%"class.std::unique_ptr.364" = type { %"struct.std::__uniq_ptr_data.365" }
%"struct.std::__uniq_ptr_data.365" = type { %"class.std::__uniq_ptr_impl.366" }
%"class.std::__uniq_ptr_impl.366" = type { %"class.std::tuple.367" }
%"class.std::tuple.367" = type { %"struct.std::_Tuple_impl.368" }
%"struct.std::_Tuple_impl.368" = type { %"struct.std::_Head_base.371" }
%"struct.std::_Head_base.371" = type { ptr }
%"class.std::vector.372" = type { %"struct.std::_Vector_base.373" }
%"struct.std::_Vector_base.373" = type { %"struct.std::_Vector_base<HighsNodeQueue::OpenNode, std::allocator<HighsNodeQueue::OpenNode>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsNodeQueue::OpenNode, std::allocator<HighsNodeQueue::OpenNode>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsNodeQueue::OpenNode, std::allocator<HighsNodeQueue::OpenNode>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsNodeQueue::OpenNode, std::allocator<HighsNodeQueue::OpenNode>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::priority_queue" = type <{ %"class.std::vector.377", [8 x i8] }>
%"class.std::vector.377" = type { %"struct.std::_Vector_base.378" }
%"struct.std::_Vector_base.378" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unique_ptr.382" = type { %"struct.std::__uniq_ptr_data.383" }
%"struct.std::__uniq_ptr_data.383" = type { %"class.std::__uniq_ptr_impl.384" }
%"class.std::__uniq_ptr_impl.384" = type { %"class.std::tuple.385" }
%"class.std::tuple.385" = type { %"struct.std::_Tuple_impl.386" }
%"struct.std::_Tuple_impl.386" = type { %"struct.std::_Head_base.389" }
%"struct.std::_Head_base.389" = type { ptr }
%struct.HighsPrimaDualIntegral = type { double, double, double, double, double }

@.str.55 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [17 x i8], align 1
@__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi = external hidden unnamed_addr constant [84 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [20 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) #3

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK8presolve9HPresolve12getRowVectorEi(ptr dead_on_unwind noalias writable sret(%struct.HighsTripletTreeSlicePreOrder) align 8, ptr noundef nonnull align 8 dereferenceable(1720), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE5beginEv(ptr dead_on_unwind noalias writable sret(%"class.HighsMatrixSlice<HighsTripletTreeSlicePreOrder>::iterator") align 8, ptr noundef nonnull align 8 dereferenceable(36)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE3endEv(ptr dead_on_unwind noalias writable sret(%"class.HighsMatrixSlice<HighsTripletTreeSlicePreOrder>::iterator") align 8, ptr noundef nonnull align 8 dereferenceable(36)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(60), ptr noundef nonnull align 8 dereferenceable(60)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(60) ptr @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(60)) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(60)) unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_Z13fractionalityIdET_S0_PS0_(double noundef, ptr noundef) #3

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8presolve9HPresolve22updateColImpliedBoundsEiid(ptr noundef nonnull align 8 dereferenceable(1720), i32 noundef, i32 noundef, double 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 void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1 align 2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #6

; 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 uwtable
declare dso_local void @_ZN8presolve9HPresolve8storeRowEi(ptr noundef nonnull align 8 dereferenceable(1720), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK8presolve9HPresolve12getStoredRowEv(ptr dead_on_unwind noalias writable sret(%struct.HighsTripletPositionSlice) align 8, ptr noundef nonnull align 8 dereferenceable(1720)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE5beginEv(ptr dead_on_unwind noalias writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8, ptr noundef nonnull align 8 dereferenceable(28)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE3endEv(ptr dead_on_unwind noalias writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8, ptr noundef nonnull align 8 dereferenceable(28)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28), ptr noundef nonnull align 8 dereferenceable(28)) #1 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN8presolve9HPresolve11checkLimitsERNS_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 @_ZN8presolve19HighsPostsolveStack12redundantRowEi(ptr noundef nonnull align 8 dereferenceable(224), i32 noundef) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK12HighsCDoublegtEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) #2 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

declare void @_ZN17HPresolveAnalysis20startPresolveRuleLogEi(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt7signbitd(double noundef) #1

declare void @_ZN17HPresolveAnalysis19stopPresolveRuleLogEi(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) #7

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %2) #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i8, align 1
  %9 = alloca i32, align 4
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca %class.anon.497, align 8
  %13 = alloca double, align 8
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca %"struct.std::_Bit_reference", align 8
  %18 = alloca i32, align 4
  %19 = alloca double, align 8
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca %struct.HighsTripletPositionSlice, align 8
  %23 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %24 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %25 = alloca ptr, align 8
  %26 = alloca i8, align 1
  %27 = alloca ptr, align 8
  %28 = alloca %struct.HighsTripletPositionSlice, align 8
  %29 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %30 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca %struct.HighsTripletPositionSlice, align 8
  %34 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %35 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %36 = alloca ptr, align 8
  %37 = alloca %struct.HighsEmptySlice, align 1
  %38 = alloca %class.anon.498, align 8
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca double, align 8
  %42 = alloca %"class.std::vector.20", align 8
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca %struct.HighsTripletPositionSlice, align 8
  %47 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %48 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %49 = alloca ptr, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i64, align 8
  %58 = alloca i32, align 4
  %59 = alloca i64, align 8
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca double, align 8
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca double, align 8
  %66 = alloca double, align 8
  %67 = alloca double, align 8
  %68 = alloca double, align 8
  %69 = alloca %"class.__gnu_cxx::__normal_iterator.404", align 8
  %70 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %71 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %72 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %73 = alloca %"class.std::vector.20", align 8
  %74 = alloca %"class.std::vector.5", align 8
  %75 = alloca double, align 8
  %76 = alloca double, align 8
  %77 = alloca ptr, align 8
  %78 = alloca %struct.HighsTripletPositionSlice, align 8
  %79 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %80 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %81 = alloca ptr, align 8
  %82 = alloca double, align 8
  %83 = alloca i32, align 4
  %84 = alloca double, align 8
  %85 = alloca %class.anon.499, align 8
  %86 = alloca %class.anon.500, align 8
  %87 = alloca %class.anon.501, align 8
  %88 = alloca %class.anon.502, align 8
  %89 = alloca %class.HighsCDouble, align 8
  %90 = alloca %class.HighsCDouble, align 8
  %91 = alloca %class.HighsCDouble, align 8
  %92 = alloca %class.HighsCDouble, align 8
  %93 = alloca double, align 8
  %94 = alloca double, align 8
  %95 = alloca double, align 8
  %96 = alloca i8, align 1
  %97 = alloca i8, align 1
  %98 = alloca i8, align 1
  %99 = alloca i8, align 1
  %100 = alloca %class.HighsCDouble, align 8
  %101 = alloca %class.HighsCDouble, align 8
  %102 = alloca %class.HighsCDouble, align 8
  %103 = alloca %class.HighsCDouble, align 8
  %104 = alloca %class.anon.503, align 8
  %105 = alloca %class.HighsCDouble, align 8
  %106 = alloca %class.HighsCDouble, align 8
  %107 = alloca %class.anon.504, align 8
  %108 = alloca %"struct.std::_Bit_reference", align 8
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca ptr, align 8
  %112 = alloca %struct.HighsTripletTreeSlicePreOrder, align 8
  %113 = alloca %"class.HighsMatrixSlice<HighsTripletTreeSlicePreOrder>::iterator", align 8
  %114 = alloca %"class.HighsMatrixSlice<HighsTripletTreeSlicePreOrder>::iterator", align 8
  %115 = alloca ptr, align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store i32 %2, ptr %7, align 4, !tbaa !9
  %116 = load ptr, ptr %5, align 8
  %117 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 46
  %118 = load i32, ptr %7, align 4, !tbaa !9
  %119 = sext i32 %118 to i64
  %120 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %117, i64 noundef %119) #9
  %121 = load i8, ptr %120, align 1, !tbaa !11
  %122 = icmp ne i8 %121, 0
  %123 = xor i1 %122, true
  br i1 %123, label %124, label %125

124:                                              ; preds = %3
  br label %127

125:                                              ; preds = %3
  call void @__assert_fail(ptr noundef @.str.79, ptr noundef @.str.55, i32 noundef 3211, ptr noundef @__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi) #10
  unreachable

126:                                              ; No predecessors!
  br label %127

127:                                              ; preds = %126, %124
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #9
  %128 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 58
  %129 = getelementptr inbounds %class.HPresolveAnalysis, ptr %128, i32 0, i32 9
  %130 = load i8, ptr %129, align 1, !tbaa !12, !range !76, !noundef !77
  %131 = trunc i8 %130 to i1
  %132 = zext i1 %131 to i8
  store i8 %132, ptr %8, align 1, !tbaa !78
  %133 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 14
  %134 = load i32, ptr %7, align 4, !tbaa !9
  %135 = sext i32 %134 to i64
  %136 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %133, i64 noundef %135) #9
  %137 = load i32, ptr %136, align 4, !tbaa !9
  switch i32 %137, label %138 [
    i32 0, label %139
    i32 1, label %184
  ]

138:                                              ; preds = %127
  br label %188

139:                                              ; preds = %127
  %140 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %141 = load ptr, ptr %140, align 8, !tbaa !79
  %142 = getelementptr inbounds %class.HighsLp, ptr %141, i32 0, i32 6
  %143 = load i32, ptr %7, align 4, !tbaa !9
  %144 = sext i32 %143 to i64
  %145 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %142, i64 noundef %144) #9
  %146 = load double, ptr %145, align 8, !tbaa !80
  %147 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %148 = load double, ptr %147, align 8, !tbaa !81
  %149 = fneg double %148
  %150 = fcmp olt double %146, %149
  br i1 %150, label %162, label %151

151:                                              ; preds = %139
  %152 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %153 = load ptr, ptr %152, align 8, !tbaa !79
  %154 = getelementptr inbounds %class.HighsLp, ptr %153, i32 0, i32 5
  %155 = load i32, ptr %7, align 4, !tbaa !9
  %156 = sext i32 %155 to i64
  %157 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %154, i64 noundef %156) #9
  %158 = load double, ptr %157, align 8, !tbaa !80
  %159 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %160 = load double, ptr %159, align 8, !tbaa !81
  %161 = fcmp ogt double %158, %160
  br i1 %161, label %162, label %163

162:                                              ; preds = %151, %139
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1818

163:                                              ; preds = %151
  %164 = load i8, ptr %8, align 1, !tbaa !78, !range !76, !noundef !77
  %165 = trunc i8 %164 to i1
  br i1 %165, label %166, label %168

166:                                              ; preds = %163
  %167 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 58
  call void @_ZN17HPresolveAnalysis20startPresolveRuleLogEi(ptr noundef nonnull align 8 dereferenceable(128) %167, i32 noundef 0)
  br label %168

168:                                              ; preds = %166, %163
  %169 = load ptr, ptr %6, align 8, !tbaa !5
  %170 = load i32, ptr %7, align 4, !tbaa !9
  call void @_ZN8presolve19HighsPostsolveStack12redundantRowEi(ptr noundef nonnull align 8 dereferenceable(224) %169, i32 noundef %170)
  %171 = load i32, ptr %7, align 4, !tbaa !9
  call void @_ZN8presolve9HPresolve14markRowDeletedEi(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %171)
  %172 = load i8, ptr %8, align 1, !tbaa !78, !range !76, !noundef !77
  %173 = trunc i8 %172 to i1
  %174 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 58
  %175 = getelementptr inbounds %class.HPresolveAnalysis, ptr %174, i32 0, i32 9
  %176 = zext i1 %173 to i8
  store i8 %176, ptr %175, align 1, !tbaa !12
  %177 = load i8, ptr %8, align 1, !tbaa !78, !range !76, !noundef !77
  %178 = trunc i8 %177 to i1
  br i1 %178, label %179, label %181

179:                                              ; preds = %168
  %180 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 58
  call void @_ZN17HPresolveAnalysis19stopPresolveRuleLogEi(ptr noundef nonnull align 8 dereferenceable(128) %180, i32 noundef 0)
  br label %181

181:                                              ; preds = %179, %168
  %182 = load ptr, ptr %6, align 8, !tbaa !5
  %183 = call noundef i32 @_ZN8presolve9HPresolve11checkLimitsERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720) %116, ptr noundef nonnull align 8 dereferenceable(224) %182)
  store i32 %183, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1818

184:                                              ; preds = %127
  %185 = load ptr, ptr %6, align 8, !tbaa !5
  %186 = load i32, ptr %7, align 4, !tbaa !9
  %187 = call noundef i32 @_ZN8presolve9HPresolve12singletonRowERNS_19HighsPostsolveStackEi(ptr noundef nonnull align 8 dereferenceable(1720) %116, ptr noundef nonnull align 8 dereferenceable(224) %185, i32 noundef %186)
  store i32 %187, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1818

188:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  %189 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 32
  %190 = load i32, ptr %7, align 4, !tbaa !9
  %191 = call noundef double @_ZNK20HighsLinearSumBounds11getSumUpperEi(ptr noundef nonnull align 8 dereferenceable(240) %189, i32 noundef %190)
  store double %191, ptr %10, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  %192 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 32
  %193 = load i32, ptr %7, align 4, !tbaa !9
  %194 = call noundef double @_ZNK20HighsLinearSumBounds11getSumLowerEi(ptr noundef nonnull align 8 dereferenceable(240) %192, i32 noundef %193)
  store double %194, ptr %11, align 8, !tbaa !80
  %195 = load double, ptr %11, align 8, !tbaa !80
  %196 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %197 = load ptr, ptr %196, align 8, !tbaa !79
  %198 = getelementptr inbounds %class.HighsLp, ptr %197, i32 0, i32 6
  %199 = load i32, ptr %7, align 4, !tbaa !9
  %200 = sext i32 %199 to i64
  %201 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %198, i64 noundef %200) #9
  %202 = load double, ptr %201, align 8, !tbaa !80
  %203 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %204 = load double, ptr %203, align 8, !tbaa !81
  %205 = fadd double %202, %204
  %206 = fcmp ogt double %195, %205
  br i1 %206, label %220, label %207

207:                                              ; preds = %188
  %208 = load double, ptr %10, align 8, !tbaa !80
  %209 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %210 = load ptr, ptr %209, align 8, !tbaa !79
  %211 = getelementptr inbounds %class.HighsLp, ptr %210, i32 0, i32 5
  %212 = load i32, ptr %7, align 4, !tbaa !9
  %213 = sext i32 %212 to i64
  %214 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %211, i64 noundef %213) #9
  %215 = load double, ptr %214, align 8, !tbaa !80
  %216 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %217 = load double, ptr %216, align 8, !tbaa !81
  %218 = fsub double %215, %217
  %219 = fcmp olt double %208, %218
  br i1 %219, label %220, label %221

220:                                              ; preds = %207, %188
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1817

221:                                              ; preds = %207
  %222 = load double, ptr %11, align 8, !tbaa !80
  %223 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %224 = load ptr, ptr %223, align 8, !tbaa !79
  %225 = getelementptr inbounds %class.HighsLp, ptr %224, i32 0, i32 5
  %226 = load i32, ptr %7, align 4, !tbaa !9
  %227 = sext i32 %226 to i64
  %228 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %225, i64 noundef %227) #9
  %229 = load double, ptr %228, align 8, !tbaa !80
  %230 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %231 = load double, ptr %230, align 8, !tbaa !81
  %232 = fsub double %229, %231
  %233 = fcmp oge double %222, %232
  br i1 %233, label %234, label %268

234:                                              ; preds = %221
  %235 = load double, ptr %10, align 8, !tbaa !80
  %236 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %237 = load ptr, ptr %236, align 8, !tbaa !79
  %238 = getelementptr inbounds %class.HighsLp, ptr %237, i32 0, i32 6
  %239 = load i32, ptr %7, align 4, !tbaa !9
  %240 = sext i32 %239 to i64
  %241 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %238, i64 noundef %240) #9
  %242 = load double, ptr %241, align 8, !tbaa !80
  %243 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %244 = load double, ptr %243, align 8, !tbaa !81
  %245 = fadd double %242, %244
  %246 = fcmp ole double %235, %245
  br i1 %246, label %247, label %268

247:                                              ; preds = %234
  %248 = load i8, ptr %8, align 1, !tbaa !78, !range !76, !noundef !77
  %249 = trunc i8 %248 to i1
  br i1 %249, label %250, label %252

250:                                              ; preds = %247
  %251 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 58
  call void @_ZN17HPresolveAnalysis20startPresolveRuleLogEi(ptr noundef nonnull align 8 dereferenceable(128) %251, i32 noundef 2)
  br label %252

252:                                              ; preds = %250, %247
  %253 = load ptr, ptr %6, align 8, !tbaa !5
  %254 = load i32, ptr %7, align 4, !tbaa !9
  call void @_ZN8presolve19HighsPostsolveStack12redundantRowEi(ptr noundef nonnull align 8 dereferenceable(224) %253, i32 noundef %254)
  %255 = load i32, ptr %7, align 4, !tbaa !9
  call void @_ZN8presolve9HPresolve9removeRowEi(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %255)
  %256 = load i8, ptr %8, align 1, !tbaa !78, !range !76, !noundef !77
  %257 = trunc i8 %256 to i1
  %258 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 58
  %259 = getelementptr inbounds %class.HPresolveAnalysis, ptr %258, i32 0, i32 9
  %260 = zext i1 %257 to i8
  store i8 %260, ptr %259, align 1, !tbaa !12
  %261 = load i8, ptr %8, align 1, !tbaa !78, !range !76, !noundef !77
  %262 = trunc i8 %261 to i1
  br i1 %262, label %263, label %265

263:                                              ; preds = %252
  %264 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 58
  call void @_ZN17HPresolveAnalysis19stopPresolveRuleLogEi(ptr noundef nonnull align 8 dereferenceable(128) %264, i32 noundef 2)
  br label %265

265:                                              ; preds = %263, %252
  %266 = load ptr, ptr %6, align 8, !tbaa !5
  %267 = call noundef i32 @_ZN8presolve9HPresolve11checkLimitsERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720) %116, ptr noundef nonnull align 8 dereferenceable(224) %266)
  store i32 %267, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1817

268:                                              ; preds = %234, %221
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  %269 = getelementptr inbounds %class.anon.497, ptr %12, i32 0, i32 0
  store ptr %116, ptr %269, align 8, !tbaa !82
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %270 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %271 = load ptr, ptr %270, align 8, !tbaa !79
  %272 = getelementptr inbounds %class.HighsLp, ptr %271, i32 0, i32 6
  %273 = load i32, ptr %7, align 4, !tbaa !9
  %274 = sext i32 %273 to i64
  %275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %272, i64 noundef %274) #9
  %276 = load double, ptr %275, align 8, !tbaa !80
  store double %276, ptr %13, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %277 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %278 = load ptr, ptr %277, align 8, !tbaa !79
  %279 = getelementptr inbounds %class.HighsLp, ptr %278, i32 0, i32 5
  %280 = load i32, ptr %7, align 4, !tbaa !9
  %281 = sext i32 %280 to i64
  %282 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %279, i64 noundef %281) #9
  %283 = load double, ptr %282, align 8, !tbaa !80
  store double %283, ptr %14, align 8, !tbaa !80
  %284 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %285 = load ptr, ptr %284, align 8, !tbaa !79
  %286 = getelementptr inbounds %class.HighsLp, ptr %285, i32 0, i32 5
  %287 = load i32, ptr %7, align 4, !tbaa !9
  %288 = sext i32 %287 to i64
  %289 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %286, i64 noundef %288) #9
  %290 = load double, ptr %289, align 8, !tbaa !80
  %291 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %292 = load ptr, ptr %291, align 8, !tbaa !79
  %293 = getelementptr inbounds %class.HighsLp, ptr %292, i32 0, i32 6
  %294 = load i32, ptr %7, align 4, !tbaa !9
  %295 = sext i32 %294 to i64
  %296 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %293, i64 noundef %295) #9
  %297 = load double, ptr %296, align 8, !tbaa !80
  %298 = fcmp une double %290, %297
  br i1 %298, label %299, label %359

299:                                              ; preds = %268
  %300 = load i32, ptr %7, align 4, !tbaa !9
  %301 = call noundef zeroext i1 @_ZNK8presolve9HPresolve24isImpliedEquationAtLowerEi(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %300)
  br i1 %301, label %302, label %328

302:                                              ; preds = %299
  %303 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %304 = load ptr, ptr %303, align 8, !tbaa !79
  %305 = getelementptr inbounds %class.HighsLp, ptr %304, i32 0, i32 5
  %306 = load i32, ptr %7, align 4, !tbaa !9
  %307 = sext i32 %306 to i64
  %308 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %305, i64 noundef %307) #9
  %309 = load double, ptr %308, align 8, !tbaa !80
  %310 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %311 = load ptr, ptr %310, align 8, !tbaa !79
  %312 = getelementptr inbounds %class.HighsLp, ptr %311, i32 0, i32 6
  %313 = load i32, ptr %7, align 4, !tbaa !9
  %314 = sext i32 %313 to i64
  %315 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %312, i64 noundef %314) #9
  store double %309, ptr %315, align 8, !tbaa !80
  %316 = load i32, ptr %7, align 4, !tbaa !9
  call void @_ZN8presolve9HPresolve18changeRowDualLowerEid(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %316, double noundef 0xFFF0000000000000)
  %317 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 3
  %318 = load ptr, ptr %317, align 8, !tbaa !84
  %319 = icmp eq ptr %318, null
  br i1 %319, label %320, label %327

320:                                              ; preds = %302
  %321 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 28
  %322 = load i32, ptr %7, align 4, !tbaa !9
  %323 = sext i32 %322 to i64
  %324 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %321, i64 noundef %323) #9
  %325 = load i32, ptr %324, align 4, !tbaa !9
  %326 = load i32, ptr %7, align 4, !tbaa !9
  call void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_0clEii"(ptr noundef nonnull align 8 dereferenceable(8) %12, i32 noundef %325, i32 noundef %326)
  br label %327

327:                                              ; preds = %320, %302
  br label %358

328:                                              ; preds = %299
  %329 = load i32, ptr %7, align 4, !tbaa !9
  %330 = call noundef zeroext i1 @_ZNK8presolve9HPresolve24isImpliedEquationAtUpperEi(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %329)
  br i1 %330, label %331, label %357

331:                                              ; preds = %328
  %332 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %333 = load ptr, ptr %332, align 8, !tbaa !79
  %334 = getelementptr inbounds %class.HighsLp, ptr %333, i32 0, i32 6
  %335 = load i32, ptr %7, align 4, !tbaa !9
  %336 = sext i32 %335 to i64
  %337 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %334, i64 noundef %336) #9
  %338 = load double, ptr %337, align 8, !tbaa !80
  %339 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %340 = load ptr, ptr %339, align 8, !tbaa !79
  %341 = getelementptr inbounds %class.HighsLp, ptr %340, i32 0, i32 5
  %342 = load i32, ptr %7, align 4, !tbaa !9
  %343 = sext i32 %342 to i64
  %344 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %341, i64 noundef %343) #9
  store double %338, ptr %344, align 8, !tbaa !80
  %345 = load i32, ptr %7, align 4, !tbaa !9
  call void @_ZN8presolve9HPresolve18changeRowDualUpperEid(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %345, double noundef 0x7FF0000000000000)
  %346 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 3
  %347 = load ptr, ptr %346, align 8, !tbaa !84
  %348 = icmp eq ptr %347, null
  br i1 %348, label %349, label %356

349:                                              ; preds = %331
  %350 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 29
  %351 = load i32, ptr %7, align 4, !tbaa !9
  %352 = sext i32 %351 to i64
  %353 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %350, i64 noundef %352) #9
  %354 = load i32, ptr %353, align 4, !tbaa !9
  %355 = load i32, ptr %7, align 4, !tbaa !9
  call void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_0clEii"(ptr noundef nonnull align 8 dereferenceable(8) %12, i32 noundef %354, i32 noundef %355)
  br label %356

356:                                              ; preds = %349, %331
  br label %357

357:                                              ; preds = %356, %328
  br label %358

358:                                              ; preds = %357, %327
  br label %359

359:                                              ; preds = %358, %268
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  %360 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %361 = load ptr, ptr %360, align 8, !tbaa !79
  %362 = getelementptr inbounds %class.HighsLp, ptr %361, i32 0, i32 6
  %363 = load i32, ptr %7, align 4, !tbaa !9
  %364 = sext i32 %363 to i64
  %365 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %362, i64 noundef %364) #9
  %366 = load double, ptr %365, align 8, !tbaa !80
  store double %366, ptr %15, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %367 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %368 = load ptr, ptr %367, align 8, !tbaa !79
  %369 = getelementptr inbounds %class.HighsLp, ptr %368, i32 0, i32 5
  %370 = load i32, ptr %7, align 4, !tbaa !9
  %371 = sext i32 %370 to i64
  %372 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %369, i64 noundef %371) #9
  %373 = load double, ptr %372, align 8, !tbaa !80
  store double %373, ptr %16, align 8, !tbaa !80
  %374 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 14
  %375 = load i32, ptr %7, align 4, !tbaa !9
  %376 = sext i32 %375 to i64
  %377 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %374, i64 noundef %376) #9
  %378 = load i32, ptr %377, align 4, !tbaa !9
  %379 = icmp eq i32 %378, 2
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #9
  br i1 %379, label %380, label %393

380:                                              ; preds = %359
  %381 = load double, ptr %16, align 8, !tbaa !80
  %382 = load double, ptr %15, align 8, !tbaa !80
  %383 = fcmp oeq double %381, %382
  br i1 %383, label %384, label %393

384:                                              ; preds = %380
  %385 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 58
  %386 = getelementptr inbounds %class.HPresolveAnalysis, ptr %385, i32 0, i32 7
  %387 = call { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %386, i64 noundef 9)
  %388 = getelementptr inbounds { ptr, i64 }, ptr %17, i32 0, i32 0
  %389 = extractvalue { ptr, i64 } %387, 0
  store ptr %389, ptr %388, align 8
  %390 = getelementptr inbounds { ptr, i64 }, ptr %17, i32 0, i32 1
  %391 = extractvalue { ptr, i64 } %387, 1
  store i64 %391, ptr %390, align 8
  %392 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %17) #9
  br label %393

393:                                              ; preds = %384, %380, %359
  %394 = phi i1 [ false, %380 ], [ false, %359 ], [ %392, %384 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #9
  br i1 %394, label %395, label %417

395:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  %396 = load double, ptr %14, align 8, !tbaa !80
  %397 = load double, ptr %13, align 8, !tbaa !80
  %398 = fcmp oeq double %396, %397
  br i1 %398, label %399, label %400

399:                                              ; preds = %395
  store i32 2, ptr %18, align 4, !tbaa !85
  br label %412

400:                                              ; preds = %395
  %401 = load double, ptr %13, align 8, !tbaa !80
  %402 = fcmp une double %401, 0x7FF0000000000000
  br i1 %402, label %403, label %404

403:                                              ; preds = %400
  store i32 1, ptr %18, align 4, !tbaa !85
  br label %411

404:                                              ; preds = %400
  %405 = load double, ptr %14, align 8, !tbaa !80
  %406 = fcmp une double %405, 0xFFF0000000000000
  br i1 %406, label %407, label %408

407:                                              ; preds = %404
  br label %410

408:                                              ; preds = %404
  call void @__assert_fail(ptr noundef @.str.111, ptr noundef @.str.55, i32 noundef 3312, ptr noundef @__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi) #10
  unreachable

409:                                              ; No predecessors!
  br label %410

410:                                              ; preds = %409, %407
  store i32 0, ptr %18, align 4, !tbaa !85
  br label %411

411:                                              ; preds = %410, %403
  br label %412

412:                                              ; preds = %411, %399
  %413 = load ptr, ptr %6, align 8, !tbaa !5
  %414 = load i32, ptr %7, align 4, !tbaa !9
  %415 = load i32, ptr %18, align 4, !tbaa !85
  %416 = call noundef i32 @_ZN8presolve9HPresolve11doubletonEqERNS_19HighsPostsolveStackEiNS1_7RowTypeE(ptr noundef nonnull align 8 dereferenceable(1720) %116, ptr noundef nonnull align 8 dereferenceable(224) %413, i32 noundef %414, i32 noundef %415)
  store i32 %416, ptr %4, align 4
  store i32 1, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %1815

417:                                              ; preds = %393
  %418 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 15
  %419 = load i32, ptr %7, align 4, !tbaa !9
  %420 = sext i32 %419 to i64
  %421 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %418, i64 noundef %420) #9
  %422 = load i32, ptr %421, align 4, !tbaa !9
  %423 = icmp ne i32 %422, 0
  br i1 %423, label %431, label %424

424:                                              ; preds = %417
  %425 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 16
  %426 = load i32, ptr %7, align 4, !tbaa !9
  %427 = sext i32 %426 to i64
  %428 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %425, i64 noundef %427) #9
  %429 = load i32, ptr %428, align 4, !tbaa !9
  %430 = icmp ne i32 %429, 0
  br i1 %430, label %431, label %1634

431:                                              ; preds = %424, %417
  %432 = load double, ptr %16, align 8, !tbaa !80
  %433 = load double, ptr %15, align 8, !tbaa !80
  %434 = fcmp oeq double %432, %433
  br i1 %434, label %435, label %1229

435:                                              ; preds = %431
  %436 = load double, ptr %11, align 8, !tbaa !80
  %437 = fcmp une double %436, 0xFFF0000000000000
  br i1 %437, label %438, label %655

438:                                              ; preds = %435
  %439 = load double, ptr %10, align 8, !tbaa !80
  %440 = fcmp une double %439, 0x7FF0000000000000
  br i1 %440, label %441, label %655

441:                                              ; preds = %438
  %442 = load double, ptr %11, align 8, !tbaa !80
  %443 = load double, ptr %10, align 8, !tbaa !80
  %444 = fadd double %442, %443
  %445 = load double, ptr %15, align 8, !tbaa !80
  %446 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %445, double %444)
  %447 = call noundef double @_ZSt3absd(double noundef %446)
  %448 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 1
  %449 = load ptr, ptr %448, align 8, !tbaa !87
  %450 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %449, i32 0, i32 12
  %451 = load double, ptr %450, align 8, !tbaa !88
  %452 = fcmp ole double %447, %451
  br i1 %452, label %453, label %655

453:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  %454 = load double, ptr %10, align 8, !tbaa !80
  %455 = load double, ptr %15, align 8, !tbaa !80
  %456 = fsub double %454, %455
  %457 = call noundef double @_ZSt3absd(double noundef %456)
  store double %457, ptr %19, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  store i32 -1, ptr %20, align 4, !tbaa !9
  %458 = load i32, ptr %7, align 4, !tbaa !9
  call void @_ZN8presolve9HPresolve8storeRowEi(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %458)
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #9
  call void @_ZNK8presolve9HPresolve12getStoredRowEv(ptr dead_on_unwind writable sret(%struct.HighsTripletPositionSlice) align 8 %22, ptr noundef nonnull align 8 dereferenceable(1720) %116)
  store ptr %22, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #9
  %459 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE5beginEv(ptr dead_on_unwind writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %23, ptr noundef nonnull align 8 dereferenceable(28) %459)
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #9
  %460 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE3endEv(ptr dead_on_unwind writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %24, ptr noundef nonnull align 8 dereferenceable(28) %460)
  br label %461

461:                                              ; preds = %519, %453
  %462 = call noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %23, ptr noundef nonnull align 8 dereferenceable(28) %24)
  br i1 %462, label %464, label %463

463:                                              ; preds = %461
  store i32 3, ptr %9, align 4
  br label %521

464:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %465 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratordeEv(ptr noundef nonnull align 8 dereferenceable(28) %23)
  store ptr %465, ptr %25, align 8, !tbaa !5
  %466 = load ptr, ptr %25, align 8, !tbaa !5
  %467 = call noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %466)
  %468 = call noundef double @_ZSt3absd(double noundef %467)
  %469 = load double, ptr %19, align 8, !tbaa !80
  %470 = fsub double %468, %469
  %471 = call noundef double @_ZSt3absd(double noundef %470)
  %472 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 1
  %473 = load ptr, ptr %472, align 8, !tbaa !87
  %474 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %473, i32 0, i32 12
  %475 = load double, ptr %474, align 8, !tbaa !88
  %476 = fcmp ole double %471, %475
  br i1 %476, label %477, label %515

477:                                              ; preds = %464
  %478 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %479 = load ptr, ptr %478, align 8, !tbaa !79
  %480 = getelementptr inbounds %class.HighsLp, ptr %479, i32 0, i32 16
  %481 = load ptr, ptr %25, align 8, !tbaa !5
  %482 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %481)
  %483 = sext i32 %482 to i64
  %484 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %480, i64 noundef %483) #9
  %485 = load i8, ptr %484, align 1, !tbaa !95
  %486 = icmp eq i8 %485, 1
  br i1 %486, label %487, label %515

487:                                              ; preds = %477
  %488 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %489 = load ptr, ptr %488, align 8, !tbaa !79
  %490 = getelementptr inbounds %class.HighsLp, ptr %489, i32 0, i32 4
  %491 = load ptr, ptr %25, align 8, !tbaa !5
  %492 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %491)
  %493 = sext i32 %492 to i64
  %494 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %490, i64 noundef %493) #9
  %495 = load double, ptr %494, align 8, !tbaa !80
  %496 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %497 = load ptr, ptr %496, align 8, !tbaa !79
  %498 = getelementptr inbounds %class.HighsLp, ptr %497, i32 0, i32 3
  %499 = load ptr, ptr %25, align 8, !tbaa !5
  %500 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %499)
  %501 = sext i32 %500 to i64
  %502 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %498, i64 noundef %501) #9
  %503 = load double, ptr %502, align 8, !tbaa !80
  %504 = fsub double %495, %503
  %505 = fsub double %504, 1.000000e+00
  %506 = call noundef double @_ZSt3absd(double noundef %505)
  %507 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %508 = load double, ptr %507, align 8, !tbaa !81
  %509 = fcmp ole double %506, %508
  br i1 %509, label %510, label %515

510:                                              ; preds = %487
  %511 = load ptr, ptr %25, align 8, !tbaa !5
  %512 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %511)
  store i32 %512, ptr %20, align 4, !tbaa !9
  %513 = load ptr, ptr %25, align 8, !tbaa !5
  %514 = call noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %513)
  store double %514, ptr %19, align 8, !tbaa !80
  store i32 3, ptr %9, align 4
  br label %516

515:                                              ; preds = %487, %477, %464
  store i32 0, ptr %9, align 4
  br label %516

516:                                              ; preds = %515, %510
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  %517 = load i32, ptr %9, align 4
  switch i32 %517, label %521 [
    i32 0, label %518
  ]

518:                                              ; preds = %516
  br label %519

519:                                              ; preds = %518
  %520 = call noundef nonnull align 8 dereferenceable(28) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(28) %23)
  br label %461

521:                                              ; preds = %516, %463
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  br label %522

522:                                              ; preds = %521
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #9
  store i8 1, ptr %26, align 1, !tbaa !78
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #9
  call void @_ZNK8presolve9HPresolve12getStoredRowEv(ptr dead_on_unwind writable sret(%struct.HighsTripletPositionSlice) align 8 %28, ptr noundef nonnull align 8 dereferenceable(1720) %116)
  store ptr %28, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #9
  %523 = load ptr, ptr %27, align 8, !tbaa !5
  call void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE5beginEv(ptr dead_on_unwind writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %29, ptr noundef nonnull align 8 dereferenceable(28) %523)
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #9
  %524 = load ptr, ptr %27, align 8, !tbaa !5
  call void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE3endEv(ptr dead_on_unwind writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %30, ptr noundef nonnull align 8 dereferenceable(28) %524)
  br label %525

525:                                              ; preds = %554, %522
  %526 = call noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %29, ptr noundef nonnull align 8 dereferenceable(28) %30)
  br i1 %526, label %528, label %527

527:                                              ; preds = %525
  store i32 5, ptr %9, align 4
  br label %556

528:                                              ; preds = %525
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %529 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratordeEv(ptr noundef nonnull align 8 dereferenceable(28) %29)
  store ptr %529, ptr %31, align 8, !tbaa !5
  %530 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %531 = load ptr, ptr %530, align 8, !tbaa !79
  %532 = getelementptr inbounds %class.HighsLp, ptr %531, i32 0, i32 3
  %533 = load ptr, ptr %31, align 8, !tbaa !5
  %534 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %533)
  %535 = sext i32 %534 to i64
  %536 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %532, i64 noundef %535) #9
  %537 = load double, ptr %536, align 8, !tbaa !80
  %538 = fcmp ole double %537, 0xFFF0000000000000
  br i1 %538, label %549, label %539

539:                                              ; preds = %528
  %540 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %541 = load ptr, ptr %540, align 8, !tbaa !79
  %542 = getelementptr inbounds %class.HighsLp, ptr %541, i32 0, i32 4
  %543 = load ptr, ptr %31, align 8, !tbaa !5
  %544 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %543)
  %545 = sext i32 %544 to i64
  %546 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %542, i64 noundef %545) #9
  %547 = load double, ptr %546, align 8, !tbaa !80
  %548 = fcmp oge double %547, 0x7FF0000000000000
  br i1 %548, label %549, label %550

549:                                              ; preds = %539, %528
  store i8 0, ptr %26, align 1, !tbaa !78
  store i32 5, ptr %9, align 4
  br label %551

550:                                              ; preds = %539
  store i32 0, ptr %9, align 4
  br label %551

551:                                              ; preds = %550, %549
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  %552 = load i32, ptr %9, align 4
  switch i32 %552, label %556 [
    i32 0, label %553
  ]

553:                                              ; preds = %551
  br label %554

554:                                              ; preds = %553
  %555 = call noundef nonnull align 8 dereferenceable(28) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(28) %29)
  br label %525

556:                                              ; preds = %551, %527
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  br label %557

557:                                              ; preds = %556
  %558 = load i32, ptr %20, align 4, !tbaa !9
  %559 = icmp ne i32 %558, -1
  br i1 %559, label %560, label %651

560:                                              ; preds = %557
  %561 = load i8, ptr %26, align 1, !tbaa !78, !range !76, !noundef !77
  %562 = trunc i8 %561 to i1
  br i1 %562, label %563, label %651

563:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #9
  call void @_ZNK8presolve9HPresolve12getStoredRowEv(ptr dead_on_unwind writable sret(%struct.HighsTripletPositionSlice) align 8 %33, ptr noundef nonnull align 8 dereferenceable(1720) %116)
  store ptr %33, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #9
  %564 = load ptr, ptr %32, align 8, !tbaa !5
  call void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE5beginEv(ptr dead_on_unwind writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %34, ptr noundef nonnull align 8 dereferenceable(28) %564)
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #9
  %565 = load ptr, ptr %32, align 8, !tbaa !5
  call void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE3endEv(ptr dead_on_unwind writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %35, ptr noundef nonnull align 8 dereferenceable(28) %565)
  br label %566

566:                                              ; preds = %632, %563
  %567 = call noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %34, ptr noundef nonnull align 8 dereferenceable(28) %35)
  br i1 %567, label %569, label %568

568:                                              ; preds = %566
  store i32 7, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  br label %634

569:                                              ; preds = %566
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  %570 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratordeEv(ptr noundef nonnull align 8 dereferenceable(28) %34)
  store ptr %570, ptr %36, align 8, !tbaa !5
  %571 = load ptr, ptr %36, align 8, !tbaa !5
  %572 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %571)
  %573 = load i32, ptr %20, align 4, !tbaa !9
  %574 = icmp eq i32 %572, %573
  br i1 %574, label %575, label %576

575:                                              ; preds = %569
  store i32 8, ptr %9, align 4
  br label %629

576:                                              ; preds = %569
  %577 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %578 = load ptr, ptr %577, align 8, !tbaa !79
  %579 = getelementptr inbounds %class.HighsLp, ptr %578, i32 0, i32 3
  %580 = load ptr, ptr %36, align 8, !tbaa !5
  %581 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %580)
  %582 = sext i32 %581 to i64
  %583 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %579, i64 noundef %582) #9
  %584 = load double, ptr %583, align 8, !tbaa !80
  %585 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %586 = load ptr, ptr %585, align 8, !tbaa !79
  %587 = getelementptr inbounds %class.HighsLp, ptr %586, i32 0, i32 4
  %588 = load ptr, ptr %36, align 8, !tbaa !5
  %589 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %588)
  %590 = sext i32 %589 to i64
  %591 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %587, i64 noundef %590) #9
  %592 = load double, ptr %591, align 8, !tbaa !80
  %593 = fcmp oeq double %584, %592
  br i1 %593, label %594, label %608

594:                                              ; preds = %576
  %595 = load ptr, ptr %6, align 8, !tbaa !5
  %596 = load ptr, ptr %36, align 8, !tbaa !5
  %597 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %596)
  %598 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %599 = load ptr, ptr %598, align 8, !tbaa !79
  %600 = getelementptr inbounds %class.HighsLp, ptr %599, i32 0, i32 3
  %601 = load ptr, ptr %36, align 8, !tbaa !5
  %602 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %601)
  %603 = sext i32 %602 to i64
  %604 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %600, i64 noundef %603) #9
  %605 = load double, ptr %604, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #9
  call void @_ZN8presolve19HighsPostsolveStack15removedFixedColI15HighsEmptySliceEEviddRK16HighsMatrixSliceIT_E(ptr noundef nonnull align 8 dereferenceable(224) %595, i32 noundef %597, double noundef %605, double noundef 0.000000e+00, ptr noundef nonnull align 1 dereferenceable(1) %37)
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #9
  %606 = load ptr, ptr %36, align 8, !tbaa !5
  %607 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %606)
  call void @_ZN8presolve9HPresolve14removeFixedColEi(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %607)
  store i32 8, ptr %9, align 4
  br label %629

608:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 16, ptr %38) #9
  %609 = getelementptr inbounds %class.anon.498, ptr %38, i32 0, i32 0
  store ptr %116, ptr %609, align 8, !tbaa !97
  %610 = getelementptr inbounds %class.anon.498, ptr %38, i32 0, i32 1
  %611 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %611, ptr %610, align 8, !tbaa !5
  %612 = load double, ptr %19, align 8, !tbaa !80
  %613 = call noundef zeroext i1 @_ZSt7signbitd(double noundef %612)
  %614 = zext i1 %613 to i32
  %615 = load ptr, ptr %36, align 8, !tbaa !5
  %616 = call noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %615)
  %617 = call noundef zeroext i1 @_ZSt7signbitd(double noundef %616)
  %618 = zext i1 %617 to i32
  %619 = icmp eq i32 %614, %618
  br i1 %619, label %620, label %624

620:                                              ; preds = %608
  %621 = load ptr, ptr %36, align 8, !tbaa !5
  %622 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %621)
  %623 = load i32, ptr %20, align 4, !tbaa !9
  call void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_1clEiii"(ptr noundef nonnull align 8 dereferenceable(16) %38, i32 noundef %622, i32 noundef %623, i32 noundef 1)
  br label %628

624:                                              ; preds = %608
  %625 = load ptr, ptr %36, align 8, !tbaa !5
  %626 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %625)
  %627 = load i32, ptr %20, align 4, !tbaa !9
  call void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_1clEiii"(ptr noundef nonnull align 8 dereferenceable(16) %38, i32 noundef %626, i32 noundef %627, i32 noundef -1)
  br label %628

628:                                              ; preds = %624, %620
  call void @llvm.lifetime.end.p0(i64 16, ptr %38) #9
  store i32 0, ptr %9, align 4
  br label %629

629:                                              ; preds = %628, %594, %575
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  %630 = load i32, ptr %9, align 4
  switch i32 %630, label %1825 [
    i32 0, label %631
    i32 8, label %632
  ]

631:                                              ; preds = %629
  br label %632

632:                                              ; preds = %631, %629
  %633 = call noundef nonnull align 8 dereferenceable(28) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(28) %34)
  br label %566

634:                                              ; preds = %568
  %635 = load i32, ptr %7, align 4, !tbaa !9
  call void @_ZN8presolve9HPresolve9removeRowEi(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %635)
  br label %636

636:                                              ; preds = %634
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %637 = load ptr, ptr %6, align 8, !tbaa !5
  %638 = call noundef i32 @_ZN8presolve9HPresolve11checkLimitsERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720) %116, ptr noundef nonnull align 8 dereferenceable(224) %637)
  store i32 %638, ptr %39, align 4, !tbaa !99
  %639 = load i32, ptr %39, align 4, !tbaa !99
  %640 = icmp ne i32 %639, 0
  br i1 %640, label %641, label %643

641:                                              ; preds = %636
  %642 = load i32, ptr %39, align 4, !tbaa !99
  store i32 %642, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %644

643:                                              ; preds = %636
  store i32 0, ptr %9, align 4
  br label %644

644:                                              ; preds = %643, %641
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  %645 = load i32, ptr %9, align 4
  switch i32 %645, label %652 [
    i32 0, label %646
  ]

646:                                              ; preds = %644
  br label %647

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647
  %649 = load ptr, ptr %6, align 8, !tbaa !5
  %650 = call noundef i32 @_ZN8presolve9HPresolve19removeRowSingletonsERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720) %116, ptr noundef nonnull align 8 dereferenceable(224) %649)
  store i32 %650, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %652

651:                                              ; preds = %560, %557
  store i32 0, ptr %9, align 4
  br label %652

652:                                              ; preds = %651, %648, %644
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  %653 = load i32, ptr %9, align 4
  switch i32 %653, label %1815 [
    i32 0, label %654
  ]

654:                                              ; preds = %652
  br label %655

655:                                              ; preds = %654, %441, %438, %435
  %656 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 15
  %657 = load i32, ptr %7, align 4, !tbaa !9
  %658 = sext i32 %657 to i64
  %659 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %656, i64 noundef %658) #9
  %660 = load i32, ptr %659, align 4, !tbaa !9
  %661 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 16
  %662 = load i32, ptr %7, align 4, !tbaa !9
  %663 = sext i32 %662 to i64
  %664 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %661, i64 noundef %663) #9
  %665 = load i32, ptr %664, align 4, !tbaa !9
  %666 = add nsw i32 %660, %665
  %667 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 14
  %668 = load i32, ptr %7, align 4, !tbaa !9
  %669 = sext i32 %668 to i64
  %670 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %667, i64 noundef %669) #9
  %671 = load i32, ptr %670, align 4, !tbaa !9
  %672 = sub nsw i32 %671, 1
  %673 = icmp sge i32 %666, %672
  br i1 %673, label %674, label %1228

674:                                              ; preds = %655
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  store i32 -1, ptr %40, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  store double 0.000000e+00, ptr %41, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #9
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #9
  %675 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 14
  %676 = load i32, ptr %7, align 4, !tbaa !9
  %677 = sext i32 %676 to i64
  %678 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %675, i64 noundef %677) #9
  %679 = load i32, ptr %678, align 4, !tbaa !9
  %680 = sext i32 %679 to i64
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %680)
          to label %681 unwind label %693

681:                                              ; preds = %674
  %682 = load i32, ptr %7, align 4, !tbaa !9
  invoke void @_ZN8presolve9HPresolve8storeRowEi(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %682)
          to label %683 unwind label %693

683:                                              ; preds = %681
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #9
  invoke void @_ZNK8presolve9HPresolve12getStoredRowEv(ptr dead_on_unwind writable sret(%struct.HighsTripletPositionSlice) align 8 %46, ptr noundef nonnull align 8 dereferenceable(1720) %116)
          to label %684 unwind label %697

684:                                              ; preds = %683
  store ptr %46, ptr %45, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #9
  %685 = load ptr, ptr %45, align 8, !tbaa !5
  invoke void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE5beginEv(ptr dead_on_unwind writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %47, ptr noundef nonnull align 8 dereferenceable(28) %685)
          to label %686 unwind label %701

686:                                              ; preds = %684
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #9
  %687 = load ptr, ptr %45, align 8, !tbaa !5
  invoke void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE3endEv(ptr dead_on_unwind writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %48, ptr noundef nonnull align 8 dereferenceable(28) %687)
          to label %688 unwind label %705

688:                                              ; preds = %686
  br label %689

689:                                              ; preds = %749, %688
  %690 = invoke noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %47, ptr noundef nonnull align 8 dereferenceable(28) %48)
          to label %691 unwind label %705

691:                                              ; preds = %689
  br i1 %690, label %709, label %692

692:                                              ; preds = %691
  store i32 11, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  br label %758

693:                                              ; preds = %761, %681, %674
  %694 = landingpad { ptr, i32 }
          cleanup
  %695 = extractvalue { ptr, i32 } %694, 0
  store ptr %695, ptr %43, align 8
  %696 = extractvalue { ptr, i32 } %694, 1
  store i32 %696, ptr %44, align 4
  br label %1227

697:                                              ; preds = %683
  %698 = landingpad { ptr, i32 }
          cleanup
  %699 = extractvalue { ptr, i32 } %698, 0
  store ptr %699, ptr %43, align 8
  %700 = extractvalue { ptr, i32 } %698, 1
  store i32 %700, ptr %44, align 4
  br label %757

701:                                              ; preds = %684
  %702 = landingpad { ptr, i32 }
          cleanup
  %703 = extractvalue { ptr, i32 } %702, 0
  store ptr %703, ptr %43, align 8
  %704 = extractvalue { ptr, i32 } %702, 1
  store i32 %704, ptr %44, align 4
  br label %756

705:                                              ; preds = %747, %689, %686
  %706 = landingpad { ptr, i32 }
          cleanup
  %707 = extractvalue { ptr, i32 } %706, 0
  store ptr %707, ptr %43, align 8
  %708 = extractvalue { ptr, i32 } %706, 1
  store i32 %708, ptr %44, align 4
  br label %755

709:                                              ; preds = %691
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  %710 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratordeEv(ptr noundef nonnull align 8 dereferenceable(28) %47)
          to label %711 unwind label %727

711:                                              ; preds = %709
  store ptr %710, ptr %49, align 8, !tbaa !5
  %712 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %713 = load ptr, ptr %712, align 8, !tbaa !79
  %714 = getelementptr inbounds %class.HighsLp, ptr %713, i32 0, i32 16
  %715 = load ptr, ptr %49, align 8, !tbaa !5
  %716 = invoke noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %715)
          to label %717 unwind label %727

717:                                              ; preds = %711
  %718 = sext i32 %716 to i64
  %719 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %714, i64 noundef %718) #9
  %720 = load i8, ptr %719, align 1, !tbaa !95
  %721 = icmp eq i8 %720, 0
  br i1 %721, label %722, label %739

722:                                              ; preds = %717
  %723 = load double, ptr %41, align 8, !tbaa !80
  %724 = fcmp oeq double %723, 0.000000e+00
  br i1 %724, label %725, label %726

725:                                              ; preds = %722
  br label %732

726:                                              ; preds = %722
  call void @__assert_fail(ptr noundef @.str.112, ptr noundef @.str.55, i32 noundef 3432, ptr noundef @__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi) #10
  unreachable

727:                                              ; preds = %735, %732, %711, %709
  %728 = landingpad { ptr, i32 }
          cleanup
  %729 = extractvalue { ptr, i32 } %728, 0
  store ptr %729, ptr %43, align 8
  %730 = extractvalue { ptr, i32 } %728, 1
  store i32 %730, ptr %44, align 4
  br label %754

731:                                              ; No predecessors!
  br label %732

732:                                              ; preds = %731, %725
  %733 = load ptr, ptr %49, align 8, !tbaa !5
  %734 = invoke noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %733)
          to label %735 unwind label %727

735:                                              ; preds = %732
  store double %734, ptr %41, align 8, !tbaa !80
  %736 = load ptr, ptr %49, align 8, !tbaa !5
  %737 = invoke noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %736)
          to label %738 unwind label %727

738:                                              ; preds = %735
  store i32 %737, ptr %40, align 4, !tbaa !9
  store i32 12, ptr %9, align 4
  br label %744

739:                                              ; preds = %717
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %740 = load ptr, ptr %49, align 8, !tbaa !5
  %741 = invoke noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %740)
          to label %742 unwind label %750

742:                                              ; preds = %739
  store double %741, ptr %50, align 8, !tbaa !80
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %42, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %743 unwind label %750

743:                                              ; preds = %742
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  store i32 0, ptr %9, align 4
  br label %744

744:                                              ; preds = %743, %738
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  %745 = load i32, ptr %9, align 4
  switch i32 %745, label %1825 [
    i32 0, label %746
    i32 12, label %747
  ]

746:                                              ; preds = %744
  br label %747

747:                                              ; preds = %746, %744
  %748 = invoke noundef nonnull align 8 dereferenceable(28) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(28) %47)
          to label %749 unwind label %705

749:                                              ; preds = %747
  br label %689

750:                                              ; preds = %742, %739
  %751 = landingpad { ptr, i32 }
          cleanup
  %752 = extractvalue { ptr, i32 } %751, 0
  store ptr %752, ptr %43, align 8
  %753 = extractvalue { ptr, i32 } %751, 1
  store i32 %753, ptr %44, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  br label %754

754:                                              ; preds = %750, %727
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br label %755

755:                                              ; preds = %754, %705
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  br label %756

756:                                              ; preds = %755, %701
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #9
  br label %757

757:                                              ; preds = %756, %697
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  br label %1227

758:                                              ; preds = %692
  %759 = load double, ptr %41, align 8, !tbaa !80
  %760 = fcmp une double %759, 0.000000e+00
  br i1 %760, label %761, label %813

761:                                              ; preds = %758
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %42, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %762 unwind label %693

762:                                              ; preds = %761
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  %763 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 1
  %764 = load ptr, ptr %763, align 8, !tbaa !87
  %765 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %764, i32 0, i32 12
  %766 = load double, ptr %765, align 8, !tbaa !88
  %767 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 1
  %768 = load ptr, ptr %767, align 8, !tbaa !87
  %769 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %768, i32 0, i32 12
  %770 = load double, ptr %769, align 8, !tbaa !88
  %771 = invoke noundef double @_ZN13HighsIntegers13integralScaleERKSt6vectorIdSaIdEEdd(ptr noundef nonnull align 8 dereferenceable(24) %42, double noundef %766, double noundef %770)
          to label %772 unwind label %801

772:                                              ; preds = %762
  store double %771, ptr %51, align 8, !tbaa !80
  %773 = load double, ptr %51, align 8, !tbaa !80
  %774 = fcmp une double %773, 0.000000e+00
  br i1 %774, label %775, label %811

775:                                              ; preds = %772
  %776 = load double, ptr %51, align 8, !tbaa !80
  %777 = fcmp ole double %776, 1.000000e+03
  br i1 %777, label %778, label %811

778:                                              ; preds = %775
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  %779 = load double, ptr %41, align 8, !tbaa !80
  %780 = load double, ptr %51, align 8, !tbaa !80
  %781 = fmul double %779, %780
  %782 = invoke noundef double @_ZSt3absd(double noundef %781)
          to label %783 unwind label %805

783:                                              ; preds = %778
  %784 = fdiv double 1.000000e+00, %782
  store double %784, ptr %52, align 8, !tbaa !80
  %785 = load double, ptr %52, align 8, !tbaa !80
  %786 = fcmp une double %785, 1.000000e+00
  br i1 %786, label %787, label %810

787:                                              ; preds = %783
  %788 = load ptr, ptr %6, align 8, !tbaa !5
  %789 = load i32, ptr %40, align 4, !tbaa !9
  %790 = load double, ptr %52, align 8, !tbaa !80
  invoke void @_ZN8presolve9HPresolve15transformColumnERNS_19HighsPostsolveStackEidd(ptr noundef nonnull align 8 dereferenceable(1720) %116, ptr noundef nonnull align 8 dereferenceable(224) %788, i32 noundef %789, double noundef %790, double noundef 0.000000e+00)
          to label %791 unwind label %805

791:                                              ; preds = %787
  %792 = load i32, ptr %40, align 4, !tbaa !9
  %793 = invoke noundef zeroext i1 @_ZN8presolve9HPresolve21convertImpliedIntegerEiib(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %792, i32 noundef -1, i1 noundef zeroext true)
          to label %794 unwind label %805

794:                                              ; preds = %791
  %795 = load double, ptr %51, align 8, !tbaa !80
  %796 = fcmp une double %795, 1.000000e+00
  br i1 %796, label %797, label %809

797:                                              ; preds = %794
  %798 = load i32, ptr %7, align 4, !tbaa !9
  %799 = load double, ptr %51, align 8, !tbaa !80
  invoke void @_ZN8presolve9HPresolve14scaleStoredRowEidb(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %798, double noundef %799, i1 noundef zeroext true)
          to label %800 unwind label %805

800:                                              ; preds = %797
  br label %809

801:                                              ; preds = %762
  %802 = landingpad { ptr, i32 }
          cleanup
  %803 = extractvalue { ptr, i32 } %802, 0
  store ptr %803, ptr %43, align 8
  %804 = extractvalue { ptr, i32 } %802, 1
  store i32 %804, ptr %44, align 4
  br label %812

805:                                              ; preds = %797, %791, %787, %778
  %806 = landingpad { ptr, i32 }
          cleanup
  %807 = extractvalue { ptr, i32 } %806, 0
  store ptr %807, ptr %43, align 8
  %808 = extractvalue { ptr, i32 } %806, 1
  store i32 %808, ptr %44, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  br label %812

809:                                              ; preds = %800, %794
  br label %810

810:                                              ; preds = %809, %783
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  br label %811

811:                                              ; preds = %810, %775, %772
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  br label %1223

812:                                              ; preds = %805, %801
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  br label %1227

813:                                              ; preds = %758
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  %814 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 1
  %815 = load ptr, ptr %814, align 8, !tbaa !87
  %816 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %815, i32 0, i32 12
  %817 = load double, ptr %816, align 8, !tbaa !88
  %818 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 1
  %819 = load ptr, ptr %818, align 8, !tbaa !87
  %820 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %819, i32 0, i32 12
  %821 = load double, ptr %820, align 8, !tbaa !88
  %822 = invoke noundef double @_ZN13HighsIntegers13integralScaleERKSt6vectorIdSaIdEEdd(ptr noundef nonnull align 8 dereferenceable(24) %42, double noundef %817, double noundef %821)
          to label %823 unwind label %840

823:                                              ; preds = %813
  store double %822, ptr %53, align 8, !tbaa !80
  %824 = load double, ptr %53, align 8, !tbaa !80
  %825 = fcmp une double %824, 0.000000e+00
  br i1 %825, label %826, label %1218

826:                                              ; preds = %823
  %827 = load double, ptr %53, align 8, !tbaa !80
  %828 = fcmp ole double %827, 1.000000e+03
  br i1 %828, label %829, label %1218

829:                                              ; preds = %826
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  %830 = load double, ptr %15, align 8, !tbaa !80
  %831 = load double, ptr %53, align 8, !tbaa !80
  %832 = fmul double %830, %831
  store double %832, ptr %54, align 8, !tbaa !80
  %833 = load double, ptr %54, align 8, !tbaa !80
  %834 = invoke noundef double @_Z13fractionalityIdET_S0_PS0_(double noundef %833, ptr noundef null)
          to label %835 unwind label %844

835:                                              ; preds = %829
  %836 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %837 = load double, ptr %836, align 8, !tbaa !81
  %838 = fcmp ogt double %834, %837
  br i1 %838, label %839, label %848

839:                                              ; preds = %835
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1213

840:                                              ; preds = %813
  %841 = landingpad { ptr, i32 }
          cleanup
  %842 = extractvalue { ptr, i32 } %841, 0
  store ptr %842, ptr %43, align 8
  %843 = extractvalue { ptr, i32 } %841, 1
  store i32 %843, ptr %44, align 4
  br label %1222

844:                                              ; preds = %829
  %845 = landingpad { ptr, i32 }
          cleanup
  %846 = extractvalue { ptr, i32 } %845, 0
  store ptr %846, ptr %43, align 8
  %847 = extractvalue { ptr, i32 } %845, 1
  store i32 %847, ptr %44, align 4
  br label %1217

848:                                              ; preds = %835
  %849 = load double, ptr %54, align 8, !tbaa !80
  %850 = call double @llvm.round.f64(double %849)
  store double %850, ptr %54, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  %851 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 18
  %852 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %851) #9
  %853 = trunc i64 %852 to i32
  store i32 %853, ptr %55, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  store i32 -1, ptr %56, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #9
  store i64 0, ptr %57, align 8, !tbaa !101
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  store i32 0, ptr %58, align 4, !tbaa !9
  br label %854

854:                                              ; preds = %917, %848
  %855 = load i32, ptr %58, align 4, !tbaa !9
  %856 = load i32, ptr %55, align 4, !tbaa !9
  %857 = icmp slt i32 %855, %856
  br i1 %857, label %859, label %858

858:                                              ; preds = %854
  store i32 13, ptr %9, align 4
  br label %920

859:                                              ; preds = %854
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #9
  %860 = load i64, ptr %57, align 8, !tbaa !101
  %861 = icmp eq i64 %860, 0
  br i1 %861, label %862, label %878

862:                                              ; preds = %859
  %863 = load double, ptr %53, align 8, !tbaa !80
  %864 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 5
  %865 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 18
  %866 = load i32, ptr %58, align 4, !tbaa !9
  %867 = sext i32 %866 to i64
  %868 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %865, i64 noundef %867) #9
  %869 = load i32, ptr %868, align 4, !tbaa !9
  %870 = sext i32 %869 to i64
  %871 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %864, i64 noundef %870) #9
  %872 = load double, ptr %871, align 8, !tbaa !80
  %873 = fmul double %863, %872
  %874 = call double @llvm.round.f64(double %873)
  %875 = invoke noundef double @_ZSt3absd(double noundef %874)
          to label %876 unwind label %905

876:                                              ; preds = %862
  %877 = fptosi double %875 to i64
  br label %897

878:                                              ; preds = %859
  %879 = load double, ptr %53, align 8, !tbaa !80
  %880 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 5
  %881 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 18
  %882 = load i32, ptr %58, align 4, !tbaa !9
  %883 = sext i32 %882 to i64
  %884 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %881, i64 noundef %883) #9
  %885 = load i32, ptr %884, align 4, !tbaa !9
  %886 = sext i32 %885 to i64
  %887 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %880, i64 noundef %886) #9
  %888 = load double, ptr %887, align 8, !tbaa !80
  %889 = fmul double %879, %888
  %890 = call double @llvm.round.f64(double %889)
  %891 = invoke noundef double @_ZSt3absd(double noundef %890)
          to label %892 unwind label %905

892:                                              ; preds = %878
  %893 = fptosi double %891 to i64
  %894 = load i64, ptr %57, align 8, !tbaa !101
  %895 = invoke noundef i64 @_ZN13HighsIntegers3gcdEll(i64 noundef %893, i64 noundef %894)
          to label %896 unwind label %905

896:                                              ; preds = %892
  br label %897

897:                                              ; preds = %896, %876
  %898 = phi i64 [ %877, %876 ], [ %895, %896 ]
  store i64 %898, ptr %59, align 8, !tbaa !101
  %899 = load i64, ptr %59, align 8, !tbaa !101
  %900 = icmp eq i64 %899, 1
  br i1 %900, label %901, label %911

901:                                              ; preds = %897
  %902 = load i32, ptr %56, align 4, !tbaa !9
  %903 = icmp ne i32 %902, -1
  br i1 %903, label %904, label %909

904:                                              ; preds = %901
  store i32 -1, ptr %56, align 4, !tbaa !9
  store i32 13, ptr %9, align 4
  br label %914

905:                                              ; preds = %892, %878, %862
  %906 = landingpad { ptr, i32 }
          cleanup
  %907 = extractvalue { ptr, i32 } %906, 0
  store ptr %907, ptr %43, align 8
  %908 = extractvalue { ptr, i32 } %906, 1
  store i32 %908, ptr %44, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %1216

909:                                              ; preds = %901
  %910 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %910, ptr %56, align 4, !tbaa !9
  br label %913

911:                                              ; preds = %897
  %912 = load i64, ptr %59, align 8, !tbaa !101
  store i64 %912, ptr %57, align 8, !tbaa !101
  br label %913

913:                                              ; preds = %911, %909
  store i32 0, ptr %9, align 4
  br label %914

914:                                              ; preds = %913, %904
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  %915 = load i32, ptr %9, align 4
  switch i32 %915, label %920 [
    i32 0, label %916
  ]

916:                                              ; preds = %914
  br label %917

917:                                              ; preds = %916
  %918 = load i32, ptr %58, align 4, !tbaa !9
  %919 = add nsw i32 %918, 1
  store i32 %919, ptr %58, align 4, !tbaa !9
  br label %854, !llvm.loop !102

920:                                              ; preds = %914, %858
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %921

921:                                              ; preds = %920
  %922 = load i32, ptr %56, align 4, !tbaa !9
  %923 = icmp ne i32 %922, -1
  br i1 %923, label %924, label %1200

924:                                              ; preds = %921
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  %925 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 18
  %926 = load i32, ptr %56, align 4, !tbaa !9
  %927 = sext i32 %926 to i64
  %928 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %925, i64 noundef %927) #9
  %929 = load i32, ptr %928, align 4, !tbaa !9
  store i32 %929, ptr %60, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %930 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 7
  %931 = load i32, ptr %60, align 4, !tbaa !9
  %932 = sext i32 %931 to i64
  %933 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %930, i64 noundef %932) #9
  %934 = load i32, ptr %933, align 4, !tbaa !9
  store i32 %934, ptr %61, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #9
  %935 = load double, ptr %54, align 8, !tbaa !80
  %936 = load i64, ptr %57, align 8, !tbaa !101
  %937 = sitofp i64 %936 to double
  %938 = fdiv double %935, %937
  store double %938, ptr %62, align 8, !tbaa !80
  %939 = load double, ptr %62, align 8, !tbaa !80
  %940 = invoke noundef double @_Z13fractionalityIdET_S0_PS0_(double noundef %939, ptr noundef null)
          to label %941 unwind label %955

941:                                              ; preds = %924
  %942 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 3
  %943 = load ptr, ptr %942, align 8, !tbaa !84
  %944 = getelementptr inbounds %class.HighsMipSolver, ptr %943, i32 0, i32 25
  %945 = call noundef ptr @_ZNKSt10unique_ptrI18HighsMipSolverDataSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %944) #9
  %946 = getelementptr inbounds %struct.HighsMipSolverData, ptr %945, i32 0, i32 41
  %947 = load double, ptr %946, align 8, !tbaa !104
  %948 = fcmp ole double %940, %947
  br i1 %948, label %949, label %959

949:                                              ; preds = %941
  %950 = load ptr, ptr %6, align 8, !tbaa !5
  %951 = load i32, ptr %61, align 4, !tbaa !9
  %952 = load i64, ptr %57, align 8, !tbaa !101
  %953 = sitofp i64 %952 to double
  invoke void @_ZN8presolve9HPresolve15transformColumnERNS_19HighsPostsolveStackEidd(ptr noundef nonnull align 8 dereferenceable(1720) %116, ptr noundef nonnull align 8 dereferenceable(224) %950, i32 noundef %951, double noundef %953, double noundef 0.000000e+00)
          to label %954 unwind label %955

954:                                              ; preds = %949
  br label %1191

955:                                              ; preds = %949, %924
  %956 = landingpad { ptr, i32 }
          cleanup
  %957 = extractvalue { ptr, i32 } %956, 0
  store ptr %957, ptr %43, align 8
  %958 = extractvalue { ptr, i32 } %956, 1
  store i32 %958, ptr %44, align 4
  br label %1199

959:                                              ; preds = %941
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  %960 = load double, ptr %53, align 8, !tbaa !80
  %961 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 5
  %962 = load i32, ptr %60, align 4, !tbaa !9
  %963 = sext i32 %962 to i64
  %964 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %961, i64 noundef %963) #9
  %965 = load double, ptr %964, align 8, !tbaa !80
  %966 = fmul double %960, %965
  %967 = call double @llvm.round.f64(double %966)
  %968 = fptosi double %967 to i64
  store i64 %968, ptr %63, align 8, !tbaa !101
  %969 = load i64, ptr %63, align 8, !tbaa !101
  %970 = load i64, ptr %57, align 8, !tbaa !101
  %971 = invoke noundef i64 @_ZN13HighsIntegers3modEll(i64 noundef %969, i64 noundef %970)
          to label %972 unwind label %1040

972:                                              ; preds = %959
  store i64 %971, ptr %63, align 8, !tbaa !101
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  %973 = load i64, ptr %63, align 8, !tbaa !101
  %974 = load i64, ptr %57, align 8, !tbaa !101
  %975 = invoke noundef i64 @_ZN13HighsIntegers14modularInverseEll(i64 noundef %973, i64 noundef %974)
          to label %976 unwind label %1044

976:                                              ; preds = %972
  store i64 %975, ptr %64, align 8, !tbaa !101
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  %977 = load i64, ptr %64, align 8, !tbaa !101
  %978 = sitofp i64 %977 to double
  %979 = load double, ptr %54, align 8, !tbaa !80
  %980 = fmul double %978, %979
  %981 = load i64, ptr %57, align 8, !tbaa !101
  %982 = sitofp i64 %981 to double
  %983 = invoke noundef double @_ZN13HighsIntegers3modEdd(double noundef %980, double noundef %982)
          to label %984 unwind label %1048

984:                                              ; preds = %976
  store double %983, ptr %65, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #9
  %985 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %986 = load ptr, ptr %985, align 8, !tbaa !79
  %987 = getelementptr inbounds %class.HighsLp, ptr %986, i32 0, i32 3
  %988 = load i32, ptr %61, align 4, !tbaa !9
  %989 = sext i32 %988 to i64
  %990 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %987, i64 noundef %989) #9
  %991 = load double, ptr %990, align 8, !tbaa !80
  %992 = load double, ptr %65, align 8, !tbaa !80
  %993 = fsub double %991, %992
  %994 = load i64, ptr %57, align 8, !tbaa !101
  %995 = sitofp i64 %994 to double
  %996 = fdiv double %993, %995
  %997 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %998 = load double, ptr %997, align 8, !tbaa !81
  %999 = fsub double %996, %998
  %1000 = call double @llvm.ceil.f64(double %999)
  store double %1000, ptr %66, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #9
  %1001 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1002 = load ptr, ptr %1001, align 8, !tbaa !79
  %1003 = getelementptr inbounds %class.HighsLp, ptr %1002, i32 0, i32 4
  %1004 = load i32, ptr %61, align 4, !tbaa !9
  %1005 = sext i32 %1004 to i64
  %1006 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1003, i64 noundef %1005) #9
  %1007 = load double, ptr %1006, align 8, !tbaa !80
  %1008 = load double, ptr %65, align 8, !tbaa !80
  %1009 = fsub double %1007, %1008
  %1010 = load i64, ptr %57, align 8, !tbaa !101
  %1011 = sitofp i64 %1010 to double
  %1012 = fdiv double %1009, %1011
  %1013 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %1014 = load double, ptr %1013, align 8, !tbaa !81
  %1015 = fadd double %1012, %1014
  %1016 = call double @llvm.floor.f64(double %1015)
  store double %1016, ptr %67, align 8, !tbaa !80
  %1017 = load double, ptr %66, align 8, !tbaa !80
  %1018 = load double, ptr %67, align 8, !tbaa !80
  %1019 = fcmp oeq double %1017, %1018
  br i1 %1019, label %1020, label %1172

1020:                                             ; preds = %984
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #9
  %1021 = load double, ptr %66, align 8, !tbaa !80
  %1022 = load i64, ptr %57, align 8, !tbaa !101
  %1023 = sitofp i64 %1022 to double
  %1024 = load double, ptr %65, align 8, !tbaa !80
  %1025 = call double @llvm.fmuladd.f64(double %1021, double %1023, double %1024)
  store double %1025, ptr %68, align 8, !tbaa !80
  %1026 = load double, ptr %68, align 8, !tbaa !80
  %1027 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1028 = load ptr, ptr %1027, align 8, !tbaa !79
  %1029 = getelementptr inbounds %class.HighsLp, ptr %1028, i32 0, i32 3
  %1030 = load i32, ptr %61, align 4, !tbaa !9
  %1031 = sext i32 %1030 to i64
  %1032 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1029, i64 noundef %1031) #9
  %1033 = load double, ptr %1032, align 8, !tbaa !80
  %1034 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %1035 = load double, ptr %1034, align 8, !tbaa !81
  %1036 = fsub double %1033, %1035
  %1037 = fcmp ogt double %1026, %1036
  br i1 %1037, label %1038, label %1039

1038:                                             ; preds = %1020
  br label %1053

1039:                                             ; preds = %1020
  call void @__assert_fail(ptr noundef @.str.113, ptr noundef @.str.55, i32 noundef 3548, ptr noundef @__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi) #10
  unreachable

1040:                                             ; preds = %959
  %1041 = landingpad { ptr, i32 }
          cleanup
  %1042 = extractvalue { ptr, i32 } %1041, 0
  store ptr %1042, ptr %43, align 8
  %1043 = extractvalue { ptr, i32 } %1041, 1
  store i32 %1043, ptr %44, align 4
  br label %1190

1044:                                             ; preds = %972
  %1045 = landingpad { ptr, i32 }
          cleanup
  %1046 = extractvalue { ptr, i32 } %1045, 0
  store ptr %1046, ptr %43, align 8
  %1047 = extractvalue { ptr, i32 } %1045, 1
  store i32 %1047, ptr %44, align 4
  br label %1189

1048:                                             ; preds = %976
  %1049 = landingpad { ptr, i32 }
          cleanup
  %1050 = extractvalue { ptr, i32 } %1049, 0
  store ptr %1050, ptr %43, align 8
  %1051 = extractvalue { ptr, i32 } %1049, 1
  store i32 %1051, ptr %44, align 4
  br label %1188

1052:                                             ; No predecessors!
  br label %1053

1053:                                             ; preds = %1052, %1038
  %1054 = load double, ptr %68, align 8, !tbaa !80
  %1055 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1056 = load ptr, ptr %1055, align 8, !tbaa !79
  %1057 = getelementptr inbounds %class.HighsLp, ptr %1056, i32 0, i32 4
  %1058 = load i32, ptr %61, align 4, !tbaa !9
  %1059 = sext i32 %1058 to i64
  %1060 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1057, i64 noundef %1059) #9
  %1061 = load double, ptr %1060, align 8, !tbaa !80
  %1062 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %1063 = load double, ptr %1062, align 8, !tbaa !81
  %1064 = fadd double %1061, %1063
  %1065 = fcmp olt double %1054, %1064
  br i1 %1065, label %1066, label %1067

1066:                                             ; preds = %1053
  br label %1069

1067:                                             ; preds = %1053
  call void @__assert_fail(ptr noundef @.str.114, ptr noundef @.str.55, i32 noundef 3549, ptr noundef @__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi) #10
  unreachable

1068:                                             ; No predecessors!
  br label %1069

1069:                                             ; preds = %1068, %1066
  %1070 = load double, ptr %68, align 8, !tbaa !80
  %1071 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1072 = load ptr, ptr %1071, align 8, !tbaa !79
  %1073 = getelementptr inbounds %class.HighsLp, ptr %1072, i32 0, i32 3
  %1074 = load i32, ptr %61, align 4, !tbaa !9
  %1075 = sext i32 %1074 to i64
  %1076 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1073, i64 noundef %1075) #9
  %1077 = load double, ptr %1076, align 8, !tbaa !80
  %1078 = fcmp ogt double %1070, %1077
  br i1 %1078, label %1079, label %1087

1079:                                             ; preds = %1069
  %1080 = load i32, ptr %61, align 4, !tbaa !9
  %1081 = load double, ptr %68, align 8, !tbaa !80
  invoke void @_ZN8presolve9HPresolve14changeColLowerEid(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %1080, double noundef %1081)
          to label %1082 unwind label %1083

1082:                                             ; preds = %1079
  br label %1087

1083:                                             ; preds = %1142, %1124, %1116, %1101, %1097, %1079
  %1084 = landingpad { ptr, i32 }
          cleanup
  %1085 = extractvalue { ptr, i32 } %1084, 0
  store ptr %1085, ptr %43, align 8
  %1086 = extractvalue { ptr, i32 } %1084, 1
  store i32 %1086, ptr %44, align 4
  br label %1171

1087:                                             ; preds = %1082, %1069
  %1088 = load double, ptr %68, align 8, !tbaa !80
  %1089 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1090 = load ptr, ptr %1089, align 8, !tbaa !79
  %1091 = getelementptr inbounds %class.HighsLp, ptr %1090, i32 0, i32 4
  %1092 = load i32, ptr %61, align 4, !tbaa !9
  %1093 = sext i32 %1092 to i64
  %1094 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1091, i64 noundef %1093) #9
  %1095 = load double, ptr %1094, align 8, !tbaa !80
  %1096 = fcmp olt double %1088, %1095
  br i1 %1096, label %1097, label %1101

1097:                                             ; preds = %1087
  %1098 = load i32, ptr %61, align 4, !tbaa !9
  %1099 = load double, ptr %68, align 8, !tbaa !80
  invoke void @_ZN8presolve9HPresolve14changeColUpperEid(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %1098, double noundef %1099)
          to label %1100 unwind label %1083

1100:                                             ; preds = %1097
  br label %1101

1101:                                             ; preds = %1100, %1087
  %1102 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1103 = load ptr, ptr %1102, align 8, !tbaa !79
  %1104 = getelementptr inbounds %class.HighsLp, ptr %1103, i32 0, i32 3
  %1105 = load i32, ptr %61, align 4, !tbaa !9
  %1106 = sext i32 %1105 to i64
  %1107 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1104, i64 noundef %1106) #9
  %1108 = load double, ptr %1107, align 8, !tbaa !80
  %1109 = load double, ptr %68, align 8, !tbaa !80
  %1110 = fsub double %1108, %1109
  %1111 = invoke noundef double @_ZSt3absd(double noundef %1110)
          to label %1112 unwind label %1083

1112:                                             ; preds = %1101
  %1113 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %1114 = load double, ptr %1113, align 8, !tbaa !81
  %1115 = fcmp ole double %1111, %1114
  br i1 %1115, label %1116, label %1124

1116:                                             ; preds = %1112
  %1117 = load ptr, ptr %6, align 8, !tbaa !5
  %1118 = load i32, ptr %61, align 4, !tbaa !9
  %1119 = invoke noundef zeroext i1 @_ZN8presolve9HPresolve24fixColToLowerOrUnboundedERNS_19HighsPostsolveStackEi(ptr noundef nonnull align 8 dereferenceable(1720) %116, ptr noundef nonnull align 8 dereferenceable(224) %1117, i32 noundef %1118)
          to label %1120 unwind label %1083

1120:                                             ; preds = %1116
  br i1 %1119, label %1121, label %1123

1121:                                             ; preds = %1120
  %1122 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 57
  store i32 2, ptr %1122, align 4, !tbaa !420
  store i32 2, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1164

1123:                                             ; preds = %1120
  br label %1150

1124:                                             ; preds = %1112
  %1125 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1126 = load ptr, ptr %1125, align 8, !tbaa !79
  %1127 = getelementptr inbounds %class.HighsLp, ptr %1126, i32 0, i32 4
  %1128 = load i32, ptr %61, align 4, !tbaa !9
  %1129 = sext i32 %1128 to i64
  %1130 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1127, i64 noundef %1129) #9
  %1131 = load double, ptr %1130, align 8, !tbaa !80
  %1132 = load double, ptr %68, align 8, !tbaa !80
  %1133 = fsub double %1131, %1132
  %1134 = invoke noundef double @_ZSt3absd(double noundef %1133)
          to label %1135 unwind label %1083

1135:                                             ; preds = %1124
  %1136 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %1137 = load double, ptr %1136, align 8, !tbaa !81
  %1138 = fcmp ole double %1134, %1137
  br i1 %1138, label %1139, label %1140

1139:                                             ; preds = %1135
  br label %1142

1140:                                             ; preds = %1135
  call void @__assert_fail(ptr noundef @.str.115, ptr noundef @.str.55, i32 noundef 3565, ptr noundef @__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi) #10
  unreachable

1141:                                             ; No predecessors!
  br label %1142

1142:                                             ; preds = %1141, %1139
  %1143 = load ptr, ptr %6, align 8, !tbaa !5
  %1144 = load i32, ptr %61, align 4, !tbaa !9
  %1145 = invoke noundef zeroext i1 @_ZN8presolve9HPresolve24fixColToUpperOrUnboundedERNS_19HighsPostsolveStackEi(ptr noundef nonnull align 8 dereferenceable(1720) %116, ptr noundef nonnull align 8 dereferenceable(224) %1143, i32 noundef %1144)
          to label %1146 unwind label %1083

1146:                                             ; preds = %1142
  br i1 %1145, label %1147, label %1149

1147:                                             ; preds = %1146
  %1148 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 57
  store i32 2, ptr %1148, align 4, !tbaa !420
  store i32 2, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1164

1149:                                             ; preds = %1146
  br label %1150

1150:                                             ; preds = %1149, %1123
  %1151 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 18
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  %1152 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 18
  %1153 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1152) #9
  %1154 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %71, i32 0, i32 0
  store ptr %1153, ptr %1154, align 8
  %1155 = load i32, ptr %56, align 4, !tbaa !9
  %1156 = sext i32 %1155 to i64
  %1157 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %71, i64 noundef %1156) #9
  %1158 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %70, i32 0, i32 0
  store ptr %1157, ptr %1158, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %70) #9
  %1159 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.404", ptr %69, i32 0, i32 0
  %1160 = load ptr, ptr %1159, align 8
  %1161 = invoke ptr @_ZNSt6vectorIiSaIiEE5eraseEN9__gnu_cxx17__normal_iteratorIPKiS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %1151, ptr %1160)
          to label %1162 unwind label %1167

1162:                                             ; preds = %1150
  %1163 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %72, i32 0, i32 0
  store ptr %1161, ptr %1163, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  store i32 0, ptr %9, align 4
  br label %1164

1164:                                             ; preds = %1162, %1147, %1121
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  %1165 = load i32, ptr %9, align 4
  switch i32 %1165, label %1184 [
    i32 0, label %1166
  ]

1166:                                             ; preds = %1164
  br label %1183

1167:                                             ; preds = %1150
  %1168 = landingpad { ptr, i32 }
          cleanup
  %1169 = extractvalue { ptr, i32 } %1168, 0
  store ptr %1169, ptr %43, align 8
  %1170 = extractvalue { ptr, i32 } %1168, 1
  store i32 %1170, ptr %44, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  br label %1171

1171:                                             ; preds = %1167, %1083
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  br label %1187

1172:                                             ; preds = %984
  %1173 = load ptr, ptr %6, align 8, !tbaa !5
  %1174 = load i32, ptr %61, align 4, !tbaa !9
  %1175 = load i64, ptr %57, align 8, !tbaa !101
  %1176 = sitofp i64 %1175 to double
  %1177 = load double, ptr %65, align 8, !tbaa !80
  invoke void @_ZN8presolve9HPresolve15transformColumnERNS_19HighsPostsolveStackEidd(ptr noundef nonnull align 8 dereferenceable(1720) %116, ptr noundef nonnull align 8 dereferenceable(224) %1173, i32 noundef %1174, double noundef %1176, double noundef %1177)
          to label %1178 unwind label %1179

1178:                                             ; preds = %1172
  br label %1183

1179:                                             ; preds = %1172
  %1180 = landingpad { ptr, i32 }
          cleanup
  %1181 = extractvalue { ptr, i32 } %1180, 0
  store ptr %1181, ptr %43, align 8
  %1182 = extractvalue { ptr, i32 } %1180, 1
  store i32 %1182, ptr %44, align 4
  br label %1187

1183:                                             ; preds = %1178, %1166
  store i32 0, ptr %9, align 4
  br label %1184

1184:                                             ; preds = %1183, %1164
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  %1185 = load i32, ptr %9, align 4
  switch i32 %1185, label %1196 [
    i32 0, label %1186
  ]

1186:                                             ; preds = %1184
  br label %1191

1187:                                             ; preds = %1179, %1171
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  br label %1188

1188:                                             ; preds = %1187, %1048
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  br label %1189

1189:                                             ; preds = %1188, %1044
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  br label %1190

1190:                                             ; preds = %1189, %1040
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  br label %1199

1191:                                             ; preds = %1186, %954
  %1192 = load i64, ptr %57, align 8, !tbaa !101
  %1193 = sitofp i64 %1192 to double
  %1194 = load double, ptr %53, align 8, !tbaa !80
  %1195 = fdiv double %1194, %1193
  store double %1195, ptr %53, align 8, !tbaa !80
  store i32 0, ptr %9, align 4
  br label %1196

1196:                                             ; preds = %1191, %1184
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  %1197 = load i32, ptr %9, align 4
  switch i32 %1197, label %1212 [
    i32 0, label %1198
  ]

1198:                                             ; preds = %1196
  br label %1200

1199:                                             ; preds = %1190, %955
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %1216

1200:                                             ; preds = %1198, %921
  %1201 = load double, ptr %53, align 8, !tbaa !80
  %1202 = fcmp une double %1201, 1.000000e+00
  br i1 %1202, label %1203, label %1211

1203:                                             ; preds = %1200
  %1204 = load i32, ptr %7, align 4, !tbaa !9
  %1205 = load double, ptr %53, align 8, !tbaa !80
  invoke void @_ZN8presolve9HPresolve14scaleStoredRowEidb(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %1204, double noundef %1205, i1 noundef zeroext true)
          to label %1206 unwind label %1207

1206:                                             ; preds = %1203
  br label %1211

1207:                                             ; preds = %1203
  %1208 = landingpad { ptr, i32 }
          cleanup
  %1209 = extractvalue { ptr, i32 } %1208, 0
  store ptr %1209, ptr %43, align 8
  %1210 = extractvalue { ptr, i32 } %1208, 1
  store i32 %1210, ptr %44, align 4
  br label %1216

1211:                                             ; preds = %1206, %1200
  store i32 0, ptr %9, align 4
  br label %1212

1212:                                             ; preds = %1211, %1196
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %1213

1213:                                             ; preds = %1212, %839
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  %1214 = load i32, ptr %9, align 4
  switch i32 %1214, label %1219 [
    i32 0, label %1215
  ]

1215:                                             ; preds = %1213
  br label %1218

1216:                                             ; preds = %1207, %1199, %905
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %1217

1217:                                             ; preds = %1216, %844
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  br label %1222

1218:                                             ; preds = %1215, %826, %823
  store i32 0, ptr %9, align 4
  br label %1219

1219:                                             ; preds = %1218, %1213
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  %1220 = load i32, ptr %9, align 4
  switch i32 %1220, label %1224 [
    i32 0, label %1221
  ]

1221:                                             ; preds = %1219
  br label %1223

1222:                                             ; preds = %1217, %840
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  br label %1227

1223:                                             ; preds = %1221, %811
  store i32 0, ptr %9, align 4
  br label %1224

1224:                                             ; preds = %1223, %1219
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  %1225 = load i32, ptr %9, align 4
  switch i32 %1225, label %1815 [
    i32 0, label %1226
  ]

1226:                                             ; preds = %1224
  br label %1228

1227:                                             ; preds = %1222, %812, %757, %693
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1816

1228:                                             ; preds = %1226, %655
  br label %1633

1229:                                             ; preds = %431
  %1230 = load i32, ptr %7, align 4, !tbaa !9
  call void @_ZN8presolve9HPresolve8storeRowEi(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %1230)
  %1231 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 14
  %1232 = load i32, ptr %7, align 4, !tbaa !9
  %1233 = sext i32 %1232 to i64
  %1234 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1231, i64 noundef %1233) #9
  %1235 = load i32, ptr %1234, align 4, !tbaa !9
  %1236 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 15
  %1237 = load i32, ptr %7, align 4, !tbaa !9
  %1238 = sext i32 %1237 to i64
  %1239 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1236, i64 noundef %1238) #9
  %1240 = load i32, ptr %1239, align 4, !tbaa !9
  %1241 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 16
  %1242 = load i32, ptr %7, align 4, !tbaa !9
  %1243 = sext i32 %1242 to i64
  %1244 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1241, i64 noundef %1243) #9
  %1245 = load i32, ptr %1244, align 4, !tbaa !9
  %1246 = add nsw i32 %1240, %1245
  %1247 = icmp eq i32 %1235, %1246
  br i1 %1247, label %1248, label %1558

1248:                                             ; preds = %1229
  call void @llvm.lifetime.start.p0(i64 24, ptr %73) #9
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %74) #9
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %74) #9
  %1249 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 14
  %1250 = load i32, ptr %7, align 4, !tbaa !9
  %1251 = sext i32 %1250 to i64
  %1252 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1249, i64 noundef %1251) #9
  %1253 = load i32, ptr %1252, align 4, !tbaa !9
  %1254 = sext i32 %1253 to i64
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %73, i64 noundef %1254)
          to label %1255 unwind label %1308

1255:                                             ; preds = %1248
  %1256 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 14
  %1257 = load i32, ptr %7, align 4, !tbaa !9
  %1258 = sext i32 %1257 to i64
  %1259 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1256, i64 noundef %1258) #9
  %1260 = load i32, ptr %1259, align 4, !tbaa !9
  %1261 = sext i32 %1260 to i64
  invoke void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %74, i64 noundef %1261)
          to label %1262 unwind label %1308

1262:                                             ; preds = %1255
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #9
  %1263 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1264 = load ptr, ptr %1263, align 8, !tbaa !79
  %1265 = getelementptr inbounds %class.HighsLp, ptr %1264, i32 0, i32 5
  %1266 = load i32, ptr %7, align 4, !tbaa !9
  %1267 = sext i32 %1266 to i64
  %1268 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1265, i64 noundef %1267) #9
  %1269 = load double, ptr %1268, align 8, !tbaa !80
  %1270 = fcmp oeq double %1269, 0xFFF0000000000000
  br i1 %1270, label %1271, label %1274

1271:                                             ; preds = %1262
  %1272 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %1273 = load double, ptr %1272, align 8, !tbaa !81
  br label %1279

1274:                                             ; preds = %1262
  %1275 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 1
  %1276 = load ptr, ptr %1275, align 8, !tbaa !87
  %1277 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %1276, i32 0, i32 12
  %1278 = load double, ptr %1277, align 8, !tbaa !88
  br label %1279

1279:                                             ; preds = %1274, %1271
  %1280 = phi double [ %1273, %1271 ], [ %1278, %1274 ]
  store double %1280, ptr %75, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #9
  %1281 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1282 = load ptr, ptr %1281, align 8, !tbaa !79
  %1283 = getelementptr inbounds %class.HighsLp, ptr %1282, i32 0, i32 6
  %1284 = load i32, ptr %7, align 4, !tbaa !9
  %1285 = sext i32 %1284 to i64
  %1286 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1283, i64 noundef %1285) #9
  %1287 = load double, ptr %1286, align 8, !tbaa !80
  %1288 = fcmp oeq double %1287, 0x7FF0000000000000
  br i1 %1288, label %1289, label %1292

1289:                                             ; preds = %1279
  %1290 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %1291 = load double, ptr %1290, align 8, !tbaa !81
  br label %1297

1292:                                             ; preds = %1279
  %1293 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 1
  %1294 = load ptr, ptr %1293, align 8, !tbaa !87
  %1295 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %1294, i32 0, i32 12
  %1296 = load double, ptr %1295, align 8, !tbaa !88
  br label %1297

1297:                                             ; preds = %1292, %1289
  %1298 = phi double [ %1291, %1289 ], [ %1296, %1292 ]
  store double %1298, ptr %76, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #9
  invoke void @_ZNK8presolve9HPresolve12getStoredRowEv(ptr dead_on_unwind writable sret(%struct.HighsTripletPositionSlice) align 8 %78, ptr noundef nonnull align 8 dereferenceable(1720) %116)
          to label %1299 unwind label %1312

1299:                                             ; preds = %1297
  store ptr %78, ptr %77, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #9
  %1300 = load ptr, ptr %77, align 8, !tbaa !5
  invoke void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE5beginEv(ptr dead_on_unwind writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %79, ptr noundef nonnull align 8 dereferenceable(28) %1300)
          to label %1301 unwind label %1316

1301:                                             ; preds = %1299
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #9
  %1302 = load ptr, ptr %77, align 8, !tbaa !5
  invoke void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE3endEv(ptr dead_on_unwind writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %80, ptr noundef nonnull align 8 dereferenceable(28) %1302)
          to label %1303 unwind label %1320

1303:                                             ; preds = %1301
  br label %1304

1304:                                             ; preds = %1349, %1303
  %1305 = invoke noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %79, ptr noundef nonnull align 8 dereferenceable(28) %80)
          to label %1306 unwind label %1320

1306:                                             ; preds = %1304
  br i1 %1305, label %1324, label %1307

1307:                                             ; preds = %1306
  store i32 16, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #9
  br label %1362

1308:                                             ; preds = %1255, %1248
  %1309 = landingpad { ptr, i32 }
          cleanup
  %1310 = extractvalue { ptr, i32 } %1309, 0
  store ptr %1310, ptr %43, align 8
  %1311 = extractvalue { ptr, i32 } %1309, 1
  store i32 %1311, ptr %44, align 4
  br label %1557

1312:                                             ; preds = %1297
  %1313 = landingpad { ptr, i32 }
          cleanup
  %1314 = extractvalue { ptr, i32 } %1313, 0
  store ptr %1314, ptr %43, align 8
  %1315 = extractvalue { ptr, i32 } %1313, 1
  store i32 %1315, ptr %44, align 4
  br label %1361

1316:                                             ; preds = %1299
  %1317 = landingpad { ptr, i32 }
          cleanup
  %1318 = extractvalue { ptr, i32 } %1317, 0
  store ptr %1318, ptr %43, align 8
  %1319 = extractvalue { ptr, i32 } %1317, 1
  store i32 %1319, ptr %44, align 4
  br label %1360

1320:                                             ; preds = %1347, %1304, %1301
  %1321 = landingpad { ptr, i32 }
          cleanup
  %1322 = extractvalue { ptr, i32 } %1321, 0
  store ptr %1322, ptr %43, align 8
  %1323 = extractvalue { ptr, i32 } %1321, 1
  store i32 %1323, ptr %44, align 4
  br label %1359

1324:                                             ; preds = %1306
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #9
  %1325 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratordeEv(ptr noundef nonnull align 8 dereferenceable(28) %79)
          to label %1326 unwind label %1333

1326:                                             ; preds = %1324
  store ptr %1325, ptr %81, align 8, !tbaa !5
  %1327 = load ptr, ptr %81, align 8, !tbaa !5
  %1328 = invoke noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %1327)
          to label %1329 unwind label %1333

1329:                                             ; preds = %1326
  %1330 = fcmp une double %1328, 0.000000e+00
  br i1 %1330, label %1331, label %1332

1331:                                             ; preds = %1329
  br label %1338

1332:                                             ; preds = %1329
  call void @__assert_fail(ptr noundef @.str.116, ptr noundef @.str.55, i32 noundef 3604, ptr noundef @__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi) #10
  unreachable

1333:                                             ; preds = %1326, %1324
  %1334 = landingpad { ptr, i32 }
          cleanup
  %1335 = extractvalue { ptr, i32 } %1334, 0
  store ptr %1335, ptr %43, align 8
  %1336 = extractvalue { ptr, i32 } %1334, 1
  store i32 %1336, ptr %44, align 4
  br label %1358

1337:                                             ; No predecessors!
  br label %1338

1338:                                             ; preds = %1337, %1331
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #9
  %1339 = load ptr, ptr %81, align 8, !tbaa !5
  %1340 = invoke noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %1339)
          to label %1341 unwind label %1350

1341:                                             ; preds = %1338
  store double %1340, ptr %82, align 8, !tbaa !80
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %73, ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %1342 unwind label %1350

1342:                                             ; preds = %1341
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #9
  %1343 = load ptr, ptr %81, align 8, !tbaa !5
  %1344 = invoke noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %1343)
          to label %1345 unwind label %1354

1345:                                             ; preds = %1342
  store i32 %1344, ptr %83, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %74, ptr noundef nonnull align 4 dereferenceable(4) %83)
          to label %1346 unwind label %1354

1346:                                             ; preds = %1345
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  br label %1347

1347:                                             ; preds = %1346
  %1348 = invoke noundef nonnull align 8 dereferenceable(28) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(28) %79)
          to label %1349 unwind label %1320

1349:                                             ; preds = %1347
  br label %1304

1350:                                             ; preds = %1341, %1338
  %1351 = landingpad { ptr, i32 }
          cleanup
  %1352 = extractvalue { ptr, i32 } %1351, 0
  store ptr %1352, ptr %43, align 8
  %1353 = extractvalue { ptr, i32 } %1351, 1
  store i32 %1353, ptr %44, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  br label %1358

1354:                                             ; preds = %1345, %1342
  %1355 = landingpad { ptr, i32 }
          cleanup
  %1356 = extractvalue { ptr, i32 } %1355, 0
  store ptr %1356, ptr %43, align 8
  %1357 = extractvalue { ptr, i32 } %1355, 1
  store i32 %1357, ptr %44, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %1358

1358:                                             ; preds = %1354, %1350, %1333
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  br label %1359

1359:                                             ; preds = %1358, %1320
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #9
  br label %1360

1360:                                             ; preds = %1359, %1316
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #9
  br label %1361

1361:                                             ; preds = %1360, %1312
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #9
  br label %1556

1362:                                             ; preds = %1307
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #9
  %1363 = load double, ptr %75, align 8, !tbaa !80
  %1364 = load double, ptr %76, align 8, !tbaa !80
  %1365 = invoke noundef double @_ZN13HighsIntegers13integralScaleERKSt6vectorIdSaIdEEdd(ptr noundef nonnull align 8 dereferenceable(24) %73, double noundef %1363, double noundef %1364)
          to label %1366 unwind label %1387

1366:                                             ; preds = %1362
  store double %1365, ptr %84, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #9
  %1367 = getelementptr inbounds %class.anon.499, ptr %85, i32 0, i32 0
  store ptr %116, ptr %1367, align 8, !tbaa !421
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #9
  %1368 = getelementptr inbounds %class.anon.500, ptr %86, i32 0, i32 0
  store ptr %116, ptr %1368, align 8, !tbaa !423
  %1369 = getelementptr inbounds %class.anon.500, ptr %86, i32 0, i32 1
  store ptr %73, ptr %1369, align 8, !tbaa !5
  %1370 = getelementptr inbounds %class.anon.500, ptr %86, i32 0, i32 2
  store ptr %74, ptr %1370, align 8, !tbaa !5
  %1371 = getelementptr inbounds %class.anon.500, ptr %86, i32 0, i32 3
  store ptr %85, ptr %1371, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %87) #9
  %1372 = getelementptr inbounds %class.anon.501, ptr %87, i32 0, i32 0
  store ptr %116, ptr %1372, align 8, !tbaa !425
  %1373 = getelementptr inbounds %class.anon.501, ptr %87, i32 0, i32 1
  store ptr %73, ptr %1373, align 8, !tbaa !5
  %1374 = getelementptr inbounds %class.anon.501, ptr %87, i32 0, i32 2
  store ptr %74, ptr %1374, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #9
  %1375 = getelementptr inbounds %class.anon.502, ptr %88, i32 0, i32 0
  store ptr %87, ptr %1375, align 8, !tbaa !5
  %1376 = load double, ptr %84, align 8, !tbaa !80
  %1377 = fcmp une double %1376, 0.000000e+00
  br i1 %1377, label %1378, label %1551

1378:                                             ; preds = %1366
  call void @llvm.lifetime.start.p0(i64 16, ptr %89) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %90) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %91) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %92) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %96) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #9
  %1379 = load i32, ptr %7, align 4, !tbaa !9
  %1380 = load double, ptr %84, align 8, !tbaa !80
  %1381 = invoke noundef zeroext i1 @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_3clEiR12HighsCDoubleS5_S5_S5_RdS6_S6_RbS7_S7_d"(ptr noundef nonnull align 8 dereferenceable(32) %86, i32 noundef %1379, ptr noundef nonnull align 8 dereferenceable(16) %89, ptr noundef nonnull align 8 dereferenceable(16) %90, ptr noundef nonnull align 8 dereferenceable(16) %91, ptr noundef nonnull align 8 dereferenceable(16) %92, ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef nonnull align 1 dereferenceable(1) %96, ptr noundef nonnull align 1 dereferenceable(1) %97, ptr noundef nonnull align 1 dereferenceable(1) %98, double noundef %1380)
          to label %1382 unwind label %1391

1382:                                             ; preds = %1378
  br i1 %1381, label %1383, label %1538

1383:                                             ; preds = %1382
  %1384 = load i8, ptr %98, align 1, !tbaa !78, !range !76, !noundef !77
  %1385 = trunc i8 %1384 to i1
  br i1 %1385, label %1386, label %1395

1386:                                             ; preds = %1383
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1547

1387:                                             ; preds = %1362
  %1388 = landingpad { ptr, i32 }
          cleanup
  %1389 = extractvalue { ptr, i32 } %1388, 0
  store ptr %1389, ptr %43, align 8
  %1390 = extractvalue { ptr, i32 } %1388, 1
  store i32 %1390, ptr %44, align 4
  br label %1555

1391:                                             ; preds = %1542, %1538, %1378
  %1392 = landingpad { ptr, i32 }
          cleanup
  %1393 = extractvalue { ptr, i32 } %1392, 0
  store ptr %1393, ptr %43, align 8
  %1394 = extractvalue { ptr, i32 } %1392, 1
  store i32 %1394, ptr %44, align 4
  br label %1550

1395:                                             ; preds = %1383
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #9
  %1396 = load i8, ptr %96, align 1, !tbaa !78, !range !76, !noundef !77
  %1397 = trunc i8 %1396 to i1
  br i1 %1397, label %1398, label %1401

1398:                                             ; preds = %1395
  %1399 = load i8, ptr %97, align 1, !tbaa !78, !range !76, !noundef !77
  %1400 = trunc i8 %1399 to i1
  br label %1401

1401:                                             ; preds = %1398, %1395
  %1402 = phi i1 [ false, %1395 ], [ %1400, %1398 ]
  %1403 = zext i1 %1402 to i8
  store i8 %1403, ptr %99, align 1, !tbaa !78
  %1404 = load i8, ptr %99, align 1, !tbaa !78, !range !76, !noundef !77
  %1405 = trunc i8 %1404 to i1
  br i1 %1405, label %1430, label %1406

1406:                                             ; preds = %1401
  %1407 = load i8, ptr %96, align 1, !tbaa !78, !range !76, !noundef !77
  %1408 = trunc i8 %1407 to i1
  br i1 %1408, label %1409, label %1418

1409:                                             ; preds = %1406
  %1410 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1411 = load ptr, ptr %1410, align 8, !tbaa !79
  %1412 = getelementptr inbounds %class.HighsLp, ptr %1411, i32 0, i32 6
  %1413 = load i32, ptr %7, align 4, !tbaa !9
  %1414 = sext i32 %1413 to i64
  %1415 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1412, i64 noundef %1414) #9
  %1416 = load double, ptr %1415, align 8, !tbaa !80
  %1417 = fcmp oeq double %1416, 0x7FF0000000000000
  br i1 %1417, label %1430, label %1418

1418:                                             ; preds = %1409, %1406
  %1419 = load i8, ptr %97, align 1, !tbaa !78, !range !76, !noundef !77
  %1420 = trunc i8 %1419 to i1
  br i1 %1420, label %1421, label %1537

1421:                                             ; preds = %1418
  %1422 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1423 = load ptr, ptr %1422, align 8, !tbaa !79
  %1424 = getelementptr inbounds %class.HighsLp, ptr %1423, i32 0, i32 5
  %1425 = load i32, ptr %7, align 4, !tbaa !9
  %1426 = sext i32 %1425 to i64
  %1427 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1424, i64 noundef %1426) #9
  %1428 = load double, ptr %1427, align 8, !tbaa !80
  %1429 = fcmp oeq double %1428, 0xFFF0000000000000
  br i1 %1429, label %1430, label %1537

1430:                                             ; preds = %1421, %1409, %1401
  %1431 = load i32, ptr %7, align 4, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %100, ptr align 8 %89, i64 16, i1 false), !tbaa.struct !427
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %101, ptr align 8 %90, i64 16, i1 false), !tbaa.struct !427
  %1432 = load double, ptr %84, align 8, !tbaa !80
  %1433 = load double, ptr %95, align 8, !tbaa !80
  %1434 = getelementptr inbounds { double, double }, ptr %100, i32 0, i32 0
  %1435 = load double, ptr %1434, align 8
  %1436 = getelementptr inbounds { double, double }, ptr %100, i32 0, i32 1
  %1437 = load double, ptr %1436, align 8
  %1438 = getelementptr inbounds { double, double }, ptr %101, i32 0, i32 0
  %1439 = load double, ptr %1438, align 8
  %1440 = getelementptr inbounds { double, double }, ptr %101, i32 0, i32 1
  %1441 = load double, ptr %1440, align 8
  %1442 = invoke noundef zeroext i1 @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_5clEi12HighsCDoubleS4_dd"(ptr noundef nonnull align 8 dereferenceable(8) %88, i32 noundef %1431, double %1435, double %1437, double %1439, double %1441, double noundef %1432, double noundef %1433)
          to label %1443 unwind label %1475

1443:                                             ; preds = %1430
  br i1 %1442, label %1536, label %1444

1444:                                             ; preds = %1443
  %1445 = load i8, ptr %99, align 1, !tbaa !78, !range !76, !noundef !77
  %1446 = trunc i8 %1445 to i1
  br i1 %1446, label %1447, label %1502

1447:                                             ; preds = %1444
  %1448 = load double, ptr %84, align 8, !tbaa !80
  %1449 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoubledVEd(ptr noundef nonnull align 8 dereferenceable(16) %89, double noundef %1448)
          to label %1450 unwind label %1475

1450:                                             ; preds = %1447
  %1451 = load double, ptr %84, align 8, !tbaa !80
  %1452 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoubledVEd(ptr noundef nonnull align 8 dereferenceable(16) %90, double noundef %1451)
          to label %1453 unwind label %1475

1453:                                             ; preds = %1450
  %1454 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1455 = load ptr, ptr %1454, align 8, !tbaa !79
  %1456 = getelementptr inbounds %class.HighsLp, ptr %1455, i32 0, i32 6
  %1457 = load i32, ptr %7, align 4, !tbaa !9
  %1458 = sext i32 %1457 to i64
  %1459 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1456, i64 noundef %1458) #9
  %1460 = load double, ptr %1459, align 8, !tbaa !80
  %1461 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %1462 = load double, ptr %1461, align 8, !tbaa !81
  %1463 = fsub double %1460, %1462
  %1464 = invoke noundef zeroext i1 @_ZNK12HighsCDoubleltEd(ptr noundef nonnull align 8 dereferenceable(16) %90, double noundef %1463)
          to label %1465 unwind label %1475

1465:                                             ; preds = %1453
  br i1 %1464, label %1466, label %1479

1466:                                             ; preds = %1465
  %1467 = invoke noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %90)
          to label %1468 unwind label %1475

1468:                                             ; preds = %1466
  %1469 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1470 = load ptr, ptr %1469, align 8, !tbaa !79
  %1471 = getelementptr inbounds %class.HighsLp, ptr %1470, i32 0, i32 6
  %1472 = load i32, ptr %7, align 4, !tbaa !9
  %1473 = sext i32 %1472 to i64
  %1474 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1471, i64 noundef %1473) #9
  store double %1467, ptr %1474, align 8, !tbaa !80
  br label %1479

1475:                                             ; preds = %1522, %1515, %1505, %1492, %1479, %1466, %1453, %1450, %1447, %1430
  %1476 = landingpad { ptr, i32 }
          cleanup
  %1477 = extractvalue { ptr, i32 } %1476, 0
  store ptr %1477, ptr %43, align 8
  %1478 = extractvalue { ptr, i32 } %1476, 1
  store i32 %1478, ptr %44, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #9
  br label %1550

1479:                                             ; preds = %1468, %1465
  %1480 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1481 = load ptr, ptr %1480, align 8, !tbaa !79
  %1482 = getelementptr inbounds %class.HighsLp, ptr %1481, i32 0, i32 5
  %1483 = load i32, ptr %7, align 4, !tbaa !9
  %1484 = sext i32 %1483 to i64
  %1485 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1482, i64 noundef %1484) #9
  %1486 = load double, ptr %1485, align 8, !tbaa !80
  %1487 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %1488 = load double, ptr %1487, align 8, !tbaa !81
  %1489 = fadd double %1486, %1488
  %1490 = invoke noundef zeroext i1 @_ZNK12HighsCDoublegtEd(ptr noundef nonnull align 8 dereferenceable(16) %89, double noundef %1489)
          to label %1491 unwind label %1475

1491:                                             ; preds = %1479
  br i1 %1490, label %1492, label %1501

1492:                                             ; preds = %1491
  %1493 = invoke noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %89)
          to label %1494 unwind label %1475

1494:                                             ; preds = %1492
  %1495 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1496 = load ptr, ptr %1495, align 8, !tbaa !79
  %1497 = getelementptr inbounds %class.HighsLp, ptr %1496, i32 0, i32 5
  %1498 = load i32, ptr %7, align 4, !tbaa !9
  %1499 = sext i32 %1498 to i64
  %1500 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1497, i64 noundef %1499) #9
  store double %1493, ptr %1500, align 8, !tbaa !80
  br label %1501

1501:                                             ; preds = %1494, %1491
  br label %1535

1502:                                             ; preds = %1444
  %1503 = load i8, ptr %97, align 1, !tbaa !78, !range !76, !noundef !77
  %1504 = trunc i8 %1503 to i1
  br i1 %1504, label %1505, label %1512

1505:                                             ; preds = %1502
  %1506 = load double, ptr %94, align 8, !tbaa !80
  %1507 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %1508 = load double, ptr %1507, align 8, !tbaa !81
  %1509 = fsub double %1506, %1508
  %1510 = invoke noundef zeroext i1 @_ZNK12HighsCDoubleltEd(ptr noundef nonnull align 8 dereferenceable(16) %92, double noundef %1509)
          to label %1511 unwind label %1475

1511:                                             ; preds = %1505
  br i1 %1510, label %1522, label %1512

1512:                                             ; preds = %1511, %1502
  %1513 = load i8, ptr %96, align 1, !tbaa !78, !range !76, !noundef !77
  %1514 = trunc i8 %1513 to i1
  br i1 %1514, label %1515, label %1534

1515:                                             ; preds = %1512
  %1516 = load double, ptr %93, align 8, !tbaa !80
  %1517 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %1518 = load double, ptr %1517, align 8, !tbaa !81
  %1519 = fsub double %1516, %1518
  %1520 = invoke noundef zeroext i1 @_ZNK12HighsCDoubleltEd(ptr noundef nonnull align 8 dereferenceable(16) %91, double noundef %1519)
          to label %1521 unwind label %1475

1521:                                             ; preds = %1515
  br i1 %1520, label %1522, label %1534

1522:                                             ; preds = %1521, %1511
  %1523 = load i32, ptr %7, align 4, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %102, ptr align 8 %89, i64 16, i1 false), !tbaa.struct !427
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %103, ptr align 8 %90, i64 16, i1 false), !tbaa.struct !427
  %1524 = load double, ptr %84, align 8, !tbaa !80
  %1525 = getelementptr inbounds { double, double }, ptr %102, i32 0, i32 0
  %1526 = load double, ptr %1525, align 8
  %1527 = getelementptr inbounds { double, double }, ptr %102, i32 0, i32 1
  %1528 = load double, ptr %1527, align 8
  %1529 = getelementptr inbounds { double, double }, ptr %103, i32 0, i32 0
  %1530 = load double, ptr %1529, align 8
  %1531 = getelementptr inbounds { double, double }, ptr %103, i32 0, i32 1
  %1532 = load double, ptr %1531, align 8
  invoke void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_4clEi12HighsCDoubleS4_db"(ptr noundef nonnull align 8 dereferenceable(24) %87, i32 noundef %1523, double %1526, double %1528, double %1530, double %1532, double noundef %1524, i1 noundef zeroext true)
          to label %1533 unwind label %1475

1533:                                             ; preds = %1522
  br label %1534

1534:                                             ; preds = %1533, %1521, %1512
  br label %1535

1535:                                             ; preds = %1534, %1501
  br label %1536

1536:                                             ; preds = %1535, %1443
  br label %1537

1537:                                             ; preds = %1536, %1421, %1418
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #9
  br label %1538

1538:                                             ; preds = %1537, %1382
  %1539 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 32
  %1540 = load i32, ptr %7, align 4, !tbaa !9
  %1541 = invoke noundef double @_ZNK20HighsLinearSumBounds11getSumUpperEi(ptr noundef nonnull align 8 dereferenceable(240) %1539, i32 noundef %1540)
          to label %1542 unwind label %1391

1542:                                             ; preds = %1538
  store double %1541, ptr %10, align 8, !tbaa !80
  %1543 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 32
  %1544 = load i32, ptr %7, align 4, !tbaa !9
  %1545 = invoke noundef double @_ZNK20HighsLinearSumBounds11getSumLowerEi(ptr noundef nonnull align 8 dereferenceable(240) %1543, i32 noundef %1544)
          to label %1546 unwind label %1391

1546:                                             ; preds = %1542
  store double %1545, ptr %11, align 8, !tbaa !80
  store i32 0, ptr %9, align 4
  br label %1547

1547:                                             ; preds = %1546, %1386
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %91) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %89) #9
  %1548 = load i32, ptr %9, align 4
  switch i32 %1548, label %1552 [
    i32 0, label %1549
  ]

1549:                                             ; preds = %1547
  br label %1551

1550:                                             ; preds = %1475, %1391
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %91) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %89) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %87) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  br label %1555

1551:                                             ; preds = %1549, %1366
  store i32 0, ptr %9, align 4
  br label %1552

1552:                                             ; preds = %1551, %1547
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %87) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %74) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %74) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %73) #9
  %1553 = load i32, ptr %9, align 4
  switch i32 %1553, label %1815 [
    i32 0, label %1554
  ]

1554:                                             ; preds = %1552
  br label %1558

1555:                                             ; preds = %1550, %1387
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #9
  br label %1556

1556:                                             ; preds = %1555, %1361
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #9
  br label %1557

1557:                                             ; preds = %1556, %1308
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %74) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %74) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %73) #9
  br label %1816

1558:                                             ; preds = %1554, %1229
  call void @llvm.lifetime.start.p0(i64 16, ptr %104) #9
  %1559 = getelementptr inbounds %class.anon.503, ptr %104, i32 0, i32 0
  store ptr %116, ptr %1559, align 8, !tbaa !428
  %1560 = getelementptr inbounds %class.anon.503, ptr %104, i32 0, i32 1
  store ptr %7, ptr %1560, align 8, !tbaa !5
  %1561 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1562 = load ptr, ptr %1561, align 8, !tbaa !79
  %1563 = getelementptr inbounds %class.HighsLp, ptr %1562, i32 0, i32 5
  %1564 = load i32, ptr %7, align 4, !tbaa !9
  %1565 = sext i32 %1564 to i64
  %1566 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1563, i64 noundef %1565) #9
  %1567 = load double, ptr %1566, align 8, !tbaa !80
  %1568 = fcmp oeq double %1567, 0xFFF0000000000000
  br i1 %1568, label %1569, label %1596

1569:                                             ; preds = %1558
  %1570 = load double, ptr %10, align 8, !tbaa !80
  %1571 = fcmp une double %1570, 0x7FF0000000000000
  br i1 %1571, label %1572, label %1596

1572:                                             ; preds = %1569
  call void @llvm.lifetime.start.p0(i64 16, ptr %105) #9
  %1573 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1574 = load ptr, ptr %1573, align 8, !tbaa !79
  %1575 = getelementptr inbounds %class.HighsLp, ptr %1574, i32 0, i32 6
  %1576 = load i32, ptr %7, align 4, !tbaa !9
  %1577 = sext i32 %1576 to i64
  %1578 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1575, i64 noundef %1577) #9
  %1579 = load double, ptr %1578, align 8, !tbaa !80
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %105, double noundef %1579)
  %1580 = load double, ptr %10, align 8, !tbaa !80
  %1581 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1582 = load ptr, ptr %1581, align 8, !tbaa !79
  %1583 = getelementptr inbounds %class.HighsLp, ptr %1582, i32 0, i32 6
  %1584 = load i32, ptr %7, align 4, !tbaa !9
  %1585 = sext i32 %1584 to i64
  %1586 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1583, i64 noundef %1585) #9
  %1587 = load double, ptr %1586, align 8, !tbaa !80
  %1588 = fsub double %1580, %1587
  call void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_6clER12HighsCDoubleid"(ptr noundef nonnull align 8 dereferenceable(16) %104, ptr noundef nonnull align 8 dereferenceable(16) %105, i32 noundef 1, double noundef %1588)
  %1589 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %105)
  %1590 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1591 = load ptr, ptr %1590, align 8, !tbaa !79
  %1592 = getelementptr inbounds %class.HighsLp, ptr %1591, i32 0, i32 6
  %1593 = load i32, ptr %7, align 4, !tbaa !9
  %1594 = sext i32 %1593 to i64
  %1595 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1592, i64 noundef %1594) #9
  store double %1589, ptr %1595, align 8, !tbaa !80
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #9
  br label %1596

1596:                                             ; preds = %1572, %1569, %1558
  %1597 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1598 = load ptr, ptr %1597, align 8, !tbaa !79
  %1599 = getelementptr inbounds %class.HighsLp, ptr %1598, i32 0, i32 6
  %1600 = load i32, ptr %7, align 4, !tbaa !9
  %1601 = sext i32 %1600 to i64
  %1602 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1599, i64 noundef %1601) #9
  %1603 = load double, ptr %1602, align 8, !tbaa !80
  %1604 = fcmp oeq double %1603, 0x7FF0000000000000
  br i1 %1604, label %1605, label %1632

1605:                                             ; preds = %1596
  %1606 = load double, ptr %11, align 8, !tbaa !80
  %1607 = fcmp une double %1606, 0xFFF0000000000000
  br i1 %1607, label %1608, label %1632

1608:                                             ; preds = %1605
  call void @llvm.lifetime.start.p0(i64 16, ptr %106) #9
  %1609 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1610 = load ptr, ptr %1609, align 8, !tbaa !79
  %1611 = getelementptr inbounds %class.HighsLp, ptr %1610, i32 0, i32 5
  %1612 = load i32, ptr %7, align 4, !tbaa !9
  %1613 = sext i32 %1612 to i64
  %1614 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1611, i64 noundef %1613) #9
  %1615 = load double, ptr %1614, align 8, !tbaa !80
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %106, double noundef %1615)
  %1616 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1617 = load ptr, ptr %1616, align 8, !tbaa !79
  %1618 = getelementptr inbounds %class.HighsLp, ptr %1617, i32 0, i32 5
  %1619 = load i32, ptr %7, align 4, !tbaa !9
  %1620 = sext i32 %1619 to i64
  %1621 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1618, i64 noundef %1620) #9
  %1622 = load double, ptr %1621, align 8, !tbaa !80
  %1623 = load double, ptr %11, align 8, !tbaa !80
  %1624 = fsub double %1622, %1623
  call void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_6clER12HighsCDoubleid"(ptr noundef nonnull align 8 dereferenceable(16) %104, ptr noundef nonnull align 8 dereferenceable(16) %106, i32 noundef -1, double noundef %1624)
  %1625 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %106)
  %1626 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1627 = load ptr, ptr %1626, align 8, !tbaa !79
  %1628 = getelementptr inbounds %class.HighsLp, ptr %1627, i32 0, i32 5
  %1629 = load i32, ptr %7, align 4, !tbaa !9
  %1630 = sext i32 %1629 to i64
  %1631 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1628, i64 noundef %1630) #9
  store double %1625, ptr %1631, align 8, !tbaa !80
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #9
  br label %1632

1632:                                             ; preds = %1608, %1605, %1596
  call void @llvm.lifetime.end.p0(i64 16, ptr %104) #9
  br label %1633

1633:                                             ; preds = %1632, %1228
  br label %1634

1634:                                             ; preds = %1633, %424
  %1635 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 32
  %1636 = load i32, ptr %7, align 4, !tbaa !9
  %1637 = call noundef double @_ZNK20HighsLinearSumBounds15getSumUpperOrigEi(ptr noundef nonnull align 8 dereferenceable(240) %1635, i32 noundef %1636)
  store double %1637, ptr %10, align 8, !tbaa !80
  %1638 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 32
  %1639 = load i32, ptr %7, align 4, !tbaa !9
  %1640 = call noundef double @_ZNK20HighsLinearSumBounds15getSumLowerOrigEi(ptr noundef nonnull align 8 dereferenceable(240) %1638, i32 noundef %1639)
  store double %1640, ptr %11, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 24, ptr %107) #9
  %1641 = getelementptr inbounds %class.anon.504, ptr %107, i32 0, i32 0
  store ptr %116, ptr %1641, align 8, !tbaa !430
  %1642 = getelementptr inbounds %class.anon.504, ptr %107, i32 0, i32 1
  store ptr %8, ptr %1642, align 8, !tbaa !5
  %1643 = getelementptr inbounds %class.anon.504, ptr %107, i32 0, i32 2
  %1644 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %1644, ptr %1643, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %108) #9
  %1645 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 58
  %1646 = getelementptr inbounds %class.HPresolveAnalysis, ptr %1645, i32 0, i32 7
  %1647 = call { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %1646, i64 noundef 6)
  %1648 = getelementptr inbounds { ptr, i64 }, ptr %108, i32 0, i32 0
  %1649 = extractvalue { ptr, i64 } %1647, 0
  store ptr %1649, ptr %1648, align 8
  %1650 = getelementptr inbounds { ptr, i64 }, ptr %108, i32 0, i32 1
  %1651 = extractvalue { ptr, i64 } %1647, 1
  store i64 %1651, ptr %1650, align 8
  %1652 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %108) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %108) #9
  br i1 %1652, label %1653, label %1739

1653:                                             ; preds = %1634
  %1654 = load double, ptr %10, align 8, !tbaa !80
  %1655 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1656 = load ptr, ptr %1655, align 8, !tbaa !79
  %1657 = getelementptr inbounds %class.HighsLp, ptr %1656, i32 0, i32 5
  %1658 = load i32, ptr %7, align 4, !tbaa !9
  %1659 = sext i32 %1658 to i64
  %1660 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1657, i64 noundef %1659) #9
  %1661 = load double, ptr %1660, align 8, !tbaa !80
  %1662 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %1663 = load double, ptr %1662, align 8, !tbaa !81
  %1664 = fadd double %1661, %1663
  %1665 = fcmp ole double %1654, %1664
  br i1 %1665, label %1666, label %1695

1666:                                             ; preds = %1653
  br label %1667

1667:                                             ; preds = %1666
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #9
  %1668 = load i32, ptr %7, align 4, !tbaa !9
  %1669 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1670 = load ptr, ptr %1669, align 8, !tbaa !79
  %1671 = getelementptr inbounds %class.HighsLp, ptr %1670, i32 0, i32 5
  %1672 = load i32, ptr %7, align 4, !tbaa !9
  %1673 = sext i32 %1672 to i64
  %1674 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1671, i64 noundef %1673) #9
  %1675 = load double, ptr %1674, align 8, !tbaa !80
  %1676 = call noundef i32 @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_7clEiidNS1_7RowTypeE"(ptr noundef nonnull align 8 dereferenceable(24) %107, i32 noundef %1668, i32 noundef 1, double noundef %1675, i32 noundef 0)
  store i32 %1676, ptr %109, align 4, !tbaa !99
  %1677 = load i32, ptr %109, align 4, !tbaa !99
  %1678 = icmp ne i32 %1677, 0
  br i1 %1678, label %1679, label %1681

1679:                                             ; preds = %1667
  %1680 = load i32, ptr %109, align 4, !tbaa !99
  store i32 %1680, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1682

1681:                                             ; preds = %1667
  store i32 0, ptr %9, align 4
  br label %1682

1682:                                             ; preds = %1681, %1679
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #9
  %1683 = load i32, ptr %9, align 4
  switch i32 %1683, label %1814 [
    i32 0, label %1684
  ]

1684:                                             ; preds = %1682
  br label %1685

1685:                                             ; preds = %1684
  br label %1686

1686:                                             ; preds = %1685
  %1687 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 46
  %1688 = load i32, ptr %7, align 4, !tbaa !9
  %1689 = sext i32 %1688 to i64
  %1690 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1687, i64 noundef %1689) #9
  %1691 = load i8, ptr %1690, align 1, !tbaa !11
  %1692 = icmp ne i8 %1691, 0
  br i1 %1692, label %1693, label %1694

1693:                                             ; preds = %1686
  store i32 0, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1814

1694:                                             ; preds = %1686
  br label %1738

1695:                                             ; preds = %1653
  %1696 = load double, ptr %11, align 8, !tbaa !80
  %1697 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1698 = load ptr, ptr %1697, align 8, !tbaa !79
  %1699 = getelementptr inbounds %class.HighsLp, ptr %1698, i32 0, i32 6
  %1700 = load i32, ptr %7, align 4, !tbaa !9
  %1701 = sext i32 %1700 to i64
  %1702 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1699, i64 noundef %1701) #9
  %1703 = load double, ptr %1702, align 8, !tbaa !80
  %1704 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 4
  %1705 = load double, ptr %1704, align 8, !tbaa !81
  %1706 = fsub double %1703, %1705
  %1707 = fcmp oge double %1696, %1706
  br i1 %1707, label %1708, label %1737

1708:                                             ; preds = %1695
  br label %1709

1709:                                             ; preds = %1708
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #9
  %1710 = load i32, ptr %7, align 4, !tbaa !9
  %1711 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1712 = load ptr, ptr %1711, align 8, !tbaa !79
  %1713 = getelementptr inbounds %class.HighsLp, ptr %1712, i32 0, i32 6
  %1714 = load i32, ptr %7, align 4, !tbaa !9
  %1715 = sext i32 %1714 to i64
  %1716 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1713, i64 noundef %1715) #9
  %1717 = load double, ptr %1716, align 8, !tbaa !80
  %1718 = call noundef i32 @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_7clEiidNS1_7RowTypeE"(ptr noundef nonnull align 8 dereferenceable(24) %107, i32 noundef %1710, i32 noundef -1, double noundef %1717, i32 noundef 1)
  store i32 %1718, ptr %110, align 4, !tbaa !99
  %1719 = load i32, ptr %110, align 4, !tbaa !99
  %1720 = icmp ne i32 %1719, 0
  br i1 %1720, label %1721, label %1723

1721:                                             ; preds = %1709
  %1722 = load i32, ptr %110, align 4, !tbaa !99
  store i32 %1722, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1724

1723:                                             ; preds = %1709
  store i32 0, ptr %9, align 4
  br label %1724

1724:                                             ; preds = %1723, %1721
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #9
  %1725 = load i32, ptr %9, align 4
  switch i32 %1725, label %1814 [
    i32 0, label %1726
  ]

1726:                                             ; preds = %1724
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

1728:                                             ; preds = %1727
  %1729 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 46
  %1730 = load i32, ptr %7, align 4, !tbaa !9
  %1731 = sext i32 %1730 to i64
  %1732 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1729, i64 noundef %1731) #9
  %1733 = load i8, ptr %1732, align 1, !tbaa !11
  %1734 = icmp ne i8 %1733, 0
  br i1 %1734, label %1735, label %1736

1735:                                             ; preds = %1728
  store i32 0, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1814

1736:                                             ; preds = %1728
  br label %1737

1737:                                             ; preds = %1736, %1695
  br label %1738

1738:                                             ; preds = %1737, %1694
  br label %1739

1739:                                             ; preds = %1738, %1634
  %1740 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1741 = load ptr, ptr %1740, align 8, !tbaa !79
  %1742 = getelementptr inbounds %class.HighsLp, ptr %1741, i32 0, i32 6
  %1743 = load i32, ptr %7, align 4, !tbaa !9
  %1744 = sext i32 %1743 to i64
  %1745 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1742, i64 noundef %1744) #9
  %1746 = load double, ptr %1745, align 8, !tbaa !80
  %1747 = fcmp une double %1746, 0x7FF0000000000000
  br i1 %1747, label %1751, label %1748

1748:                                             ; preds = %1739
  %1749 = load i32, ptr %7, align 4, !tbaa !9
  %1750 = call noundef zeroext i1 @_ZNK8presolve9HPresolve24isImpliedEquationAtLowerEi(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %1749)
  br i1 %1750, label %1751, label %1756

1751:                                             ; preds = %1748, %1739
  %1752 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 32
  %1753 = load i32, ptr %7, align 4, !tbaa !9
  %1754 = call noundef i32 @_ZNK20HighsLinearSumBounds21getNumInfSumLowerOrigEi(ptr noundef nonnull align 8 dereferenceable(240) %1752, i32 noundef %1753)
  %1755 = icmp sle i32 %1754, 1
  br i1 %1755, label %1773, label %1756

1756:                                             ; preds = %1751, %1748
  %1757 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 0
  %1758 = load ptr, ptr %1757, align 8, !tbaa !79
  %1759 = getelementptr inbounds %class.HighsLp, ptr %1758, i32 0, i32 5
  %1760 = load i32, ptr %7, align 4, !tbaa !9
  %1761 = sext i32 %1760 to i64
  %1762 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1759, i64 noundef %1761) #9
  %1763 = load double, ptr %1762, align 8, !tbaa !80
  %1764 = fcmp une double %1763, 0xFFF0000000000000
  br i1 %1764, label %1768, label %1765

1765:                                             ; preds = %1756
  %1766 = load i32, ptr %7, align 4, !tbaa !9
  %1767 = call noundef zeroext i1 @_ZNK8presolve9HPresolve24isImpliedEquationAtUpperEi(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %1766)
  br i1 %1767, label %1768, label %1811

1768:                                             ; preds = %1765, %1756
  %1769 = getelementptr inbounds %"class.presolve::HPresolve", ptr %116, i32 0, i32 32
  %1770 = load i32, ptr %7, align 4, !tbaa !9
  %1771 = call noundef i32 @_ZNK20HighsLinearSumBounds21getNumInfSumUpperOrigEi(ptr noundef nonnull align 8 dereferenceable(240) %1769, i32 noundef %1770)
  %1772 = icmp sle i32 %1771, 1
  br i1 %1772, label %1773, label %1811

1773:                                             ; preds = %1768, %1751
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %112) #9
  %1774 = load i32, ptr %7, align 4, !tbaa !9
  call void @_ZNK8presolve9HPresolve12getRowVectorEi(ptr dead_on_unwind writable sret(%struct.HighsTripletTreeSlicePreOrder) align 8 %112, ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %1774)
  store ptr %112, ptr %111, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 64, ptr %113) #9
  %1775 = load ptr, ptr %111, align 8, !tbaa !5
  call void @_ZNK16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE5beginEv(ptr dead_on_unwind writable sret(%"class.HighsMatrixSlice<HighsTripletTreeSlicePreOrder>::iterator") align 8 %113, ptr noundef nonnull align 8 dereferenceable(36) %1775)
  call void @llvm.lifetime.start.p0(i64 64, ptr %114) #9
  %1776 = load ptr, ptr %111, align 8, !tbaa !5
  invoke void @_ZNK16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE3endEv(ptr dead_on_unwind writable sret(%"class.HighsMatrixSlice<HighsTripletTreeSlicePreOrder>::iterator") align 8 %114, ptr noundef nonnull align 8 dereferenceable(36) %1776)
          to label %1777 unwind label %1782

1777:                                             ; preds = %1773
  br label %1778

1778:                                             ; preds = %1803, %1777
  %1779 = invoke noundef zeroext i1 @_ZNK16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(60) %113, ptr noundef nonnull align 8 dereferenceable(60) %114)
          to label %1780 unwind label %1786

1780:                                             ; preds = %1778
  br i1 %1779, label %1790, label %1781

1781:                                             ; preds = %1780
  store i32 22, ptr %9, align 4
  call void @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(60) %114) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %114) #9
  call void @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(60) %113) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %113) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %112) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #9
  br label %1810

1782:                                             ; preds = %1773
  %1783 = landingpad { ptr, i32 }
          cleanup
  %1784 = extractvalue { ptr, i32 } %1783, 0
  store ptr %1784, ptr %43, align 8
  %1785 = extractvalue { ptr, i32 } %1783, 1
  store i32 %1785, ptr %44, align 4
  br label %1809

1786:                                             ; preds = %1801, %1778
  %1787 = landingpad { ptr, i32 }
          cleanup
  %1788 = extractvalue { ptr, i32 } %1787, 0
  store ptr %1788, ptr %43, align 8
  %1789 = extractvalue { ptr, i32 } %1787, 1
  store i32 %1789, ptr %44, align 4
  br label %1808

1790:                                             ; preds = %1780
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #9
  %1791 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratordeEv(ptr noundef nonnull align 8 dereferenceable(60) %113)
          to label %1792 unwind label %1804

1792:                                             ; preds = %1790
  store ptr %1791, ptr %115, align 8, !tbaa !5
  %1793 = load i32, ptr %7, align 4, !tbaa !9
  %1794 = load ptr, ptr %115, align 8, !tbaa !5
  %1795 = invoke noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %1794)
          to label %1796 unwind label %1804

1796:                                             ; preds = %1792
  %1797 = load ptr, ptr %115, align 8, !tbaa !5
  %1798 = invoke noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %1797)
          to label %1799 unwind label %1804

1799:                                             ; preds = %1796
  invoke void @_ZN8presolve9HPresolve22updateColImpliedBoundsEiid(ptr noundef nonnull align 8 dereferenceable(1720) %116, i32 noundef %1793, i32 noundef %1795, double noundef %1798)
          to label %1800 unwind label %1804

1800:                                             ; preds = %1799
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #9
  br label %1801

1801:                                             ; preds = %1800
  %1802 = invoke noundef nonnull align 8 dereferenceable(60) ptr @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(60) %113)
          to label %1803 unwind label %1786

1803:                                             ; preds = %1801
  br label %1778

1804:                                             ; preds = %1799, %1796, %1792, %1790
  %1805 = landingpad { ptr, i32 }
          cleanup
  %1806 = extractvalue { ptr, i32 } %1805, 0
  store ptr %1806, ptr %43, align 8
  %1807 = extractvalue { ptr, i32 } %1805, 1
  store i32 %1807, ptr %44, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #9
  br label %1808

1808:                                             ; preds = %1804, %1786
  call void @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(60) %114) #9
  br label %1809

1809:                                             ; preds = %1808, %1782
  call void @llvm.lifetime.end.p0(i64 64, ptr %114) #9
  call void @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(60) %113) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %113) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %112) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %107) #9
  br label %1816

1810:                                             ; preds = %1781
  br label %1811

1811:                                             ; preds = %1810, %1768, %1765
  %1812 = load ptr, ptr %6, align 8, !tbaa !5
  %1813 = call noundef i32 @_ZN8presolve9HPresolve11checkLimitsERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720) %116, ptr noundef nonnull align 8 dereferenceable(224) %1812)
  store i32 %1813, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1814

1814:                                             ; preds = %1811, %1735, %1724, %1693, %1682
  call void @llvm.lifetime.end.p0(i64 24, ptr %107) #9
  br label %1815

1815:                                             ; preds = %1814, %1552, %1224, %652, %412
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  br label %1817

1816:                                             ; preds = %1809, %1557, %1227
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #9
  br label %1820

1817:                                             ; preds = %1815, %265, %220
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  br label %1818

1818:                                             ; preds = %1817, %184, %181, %162
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #9
  %1819 = load i32, ptr %4, align 4
  ret i32 %1819

1820:                                             ; preds = %1816
  %1821 = load ptr, ptr %43, align 8
  %1822 = load i32, ptr %44, align 4
  %1823 = insertvalue { ptr, i32 } poison, ptr %1821, 0
  %1824 = insertvalue { ptr, i32 } %1823, i32 %1822, 1
  resume { ptr, i32 } %1824

1825:                                             ; preds = %744, %629
  unreachable
}

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_0clEii"(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, i32 noundef) #8 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_1clEiii"(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef, i32 noundef, i32 noundef) #8 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 uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN13HighsIntegers3gcdEll(i64 noundef, i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN13HighsIntegers3modEll(i64 noundef, i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN13HighsIntegers14modularInverseEll(i64 noundef, i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN13HighsIntegers3modEdd(double noundef, double noundef) #1 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_3clEiR12HighsCDoubleS5_S5_S5_RdS6_S6_RbS7_S7_d"(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1), double noundef) #8 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_5clEi12HighsCDoubleS4_dd"(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, double, double, double, double, double noundef, double noundef) #8 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoubledVEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK12HighsCDoubleltEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_4clEi12HighsCDoubleS4_db"(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, double, double, double, double, double noundef, i1 noundef zeroext) #8 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_6clER12HighsCDoubleid"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), i32 noundef, double noundef) #8 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_7clEiidNS1_7RowTypeE"(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef, double noundef, i32 noundef) #8 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK20HighsLinearSumBounds21getNumInfSumUpperOrigEi(ptr noundef nonnull align 8 dereferenceable(240), i32 noundef) #1 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 = { 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 #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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
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 = { 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 #9 = { nounwind }
attributes #10 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !58, i64 1681}
!13 = !{!"_ZTSN8presolve9HPresolveE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !14, i64 32, !15, i64 40, !19, i64 64, !19, i64 88, !19, i64 112, !19, i64 136, !19, i64 160, !19, i64 184, !19, i64 208, !19, i64 232, !19, i64 256, !19, i64 280, !19, i64 304, !19, i64 328, !19, i64 352, !19, i64 376, !15, i64 400, !15, i64 424, !19, i64 448, !19, i64 472, !15, i64 496, !15, i64 520, !15, i64 544, !15, i64 568, !19, i64 592, !19, i64 616, !23, i64 640, !23, i64 664, !27, i64 688, !27, i64 928, !19, i64 1168, !32, i64 1192, !19, i64 1216, !32, i64 1240, !36, i64 1264, !40, i64 1288, !46, i64 1344, !54, i64 1392, !58, i64 1416, !42, i64 1424, !19, i64 1432, !19, i64 1456, !32, i64 1480, !32, i64 1504, !59, i64 1528, !42, i64 1552, !10, i64 1560, !10, i64 1564, !10, i64 1568, !10, i64 1572, !10, i64 1576, !10, i64 1580, !58, i64 1584, !63, i64 1588, !64, i64 1592}
!14 = !{!"double", !7, i64 0}
!15 = !{!"_ZTSSt6vectorIdSaIdEE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!"_ZTSSt6vectorIiSaIiEE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!23 = !{!"_ZTSSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTS20HighsLinearSumBounds", !28, i64 0, !28, i64 24, !19, i64 48, !19, i64 72, !28, i64 96, !28, i64 120, !19, i64 144, !19, i64 168, !6, i64 192, !6, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232}
!28 = !{!"_ZTSSt6vectorI12HighsCDoubleSaIS0_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseI12HighsCDoubleSaIS0_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseI12HighsCDoubleSaIS0_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseI12HighsCDoubleSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTSSt6vectorIhSaIhEE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!"_ZTSSt6vectorISt4pairIiiESaIS1_EE", !37, i64 0}
!37 = !{!"_ZTSSt12_Vector_baseISt4pairIiiESaIS1_EE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseISt4pairIiiESaIS1_EE12_Vector_implE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseISt4pairIiiESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!40 = !{!"_ZTSSt13unordered_mapIi13HighsHashTreeISt4pairIiiEdESt4hashIiESt8equal_toIiESaIS1_IKiS3_EEE", !41, i64 0}
!41 = !{!"_ZTSSt10_HashtableIiSt4pairIKi13HighsHashTreeIS0_IiiEdEESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !42, i64 8, !43, i64 16, !42, i64 24, !44, i64 32, !6, i64 48}
!42 = !{!"long", !7, i64 0}
!43 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!44 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !45, i64 0, !42, i64 8}
!45 = !{!"float", !7, i64 0}
!46 = !{!"_ZTSSt3setISt4pairIiiESt4lessIS1_ESaIS1_EE", !47, i64 0}
!47 = !{!"_ZTSSt8_Rb_treeISt4pairIiiES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !48, i64 0}
!48 = !{!"_ZTSNSt8_Rb_treeISt4pairIiiES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !49, i64 0, !51, i64 8}
!49 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt4pairIiiEEE", !50, i64 0}
!50 = !{!"_ZTSSt4lessISt4pairIiiEE"}
!51 = !{!"_ZTSSt15_Rb_tree_header", !52, i64 0, !42, i64 32}
!52 = !{!"_ZTSSt18_Rb_tree_node_base", !53, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!53 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!54 = !{!"_ZTSSt6vectorISt23_Rb_tree_const_iteratorISt4pairIiiEESaIS3_EE", !55, i64 0}
!55 = !{!"_ZTSSt12_Vector_baseISt23_Rb_tree_const_iteratorISt4pairIiiEESaIS3_EE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseISt23_Rb_tree_const_iteratorISt4pairIiiEESaIS3_EE12_Vector_implE", !57, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseISt23_Rb_tree_const_iteratorISt4pairIiiEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!58 = !{!"bool", !7, i64 0}
!59 = !{!"_ZTSSt6vectorItSaItEE", !60, i64 0}
!60 = !{!"_ZTSSt12_Vector_baseItSaItEE", !61, i64 0}
!61 = !{!"_ZTSNSt12_Vector_baseItSaItEE12_Vector_implE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseItSaItEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!63 = !{!"_ZTS19HighsPresolveStatus", !7, i64 0}
!64 = !{!"_ZTS17HPresolveAnalysis", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !10, i64 40, !10, i64 44, !65, i64 48, !58, i64 88, !58, i64 89, !10, i64 92, !10, i64 96, !10, i64 100, !71, i64 104}
!65 = !{!"_ZTSSt6vectorIbSaIbEE", !66, i64 0}
!66 = !{!"_ZTSSt13_Bvector_baseISaIbEE", !67, i64 0}
!67 = !{!"_ZTSNSt13_Bvector_baseISaIbEE13_Bvector_implE", !68, i64 0}
!68 = !{!"_ZTSNSt13_Bvector_baseISaIbEE18_Bvector_impl_dataE", !69, i64 0, !69, i64 16, !6, i64 32}
!69 = !{!"_ZTSSt13_Bit_iterator", !70, i64 0}
!70 = !{!"_ZTSSt18_Bit_iterator_base", !6, i64 0, !10, i64 8}
!71 = !{!"_ZTS16HighsPresolveLog", !72, i64 0}
!72 = !{!"_ZTSSt6vectorI20HighsPresolveRuleLogSaIS0_EE", !73, i64 0}
!73 = !{!"_ZTSSt12_Vector_baseI20HighsPresolveRuleLogSaIS0_EE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseI20HighsPresolveRuleLogSaIS0_EE12_Vector_implE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseI20HighsPresolveRuleLogSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!76 = !{i8 0, i8 2}
!77 = !{}
!78 = !{!58, !58, i64 0}
!79 = !{!13, !6, i64 0}
!80 = !{!14, !14, i64 0}
!81 = !{!13, !14, i64 32}
!82 = !{!83, !6, i64 0}
!83 = !{!"_ZTSZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiE3$_0", !6, i64 0}
!84 = !{!13, !6, i64 24}
!85 = !{!86, !86, i64 0}
!86 = !{!"_ZTSN8presolve19HighsPostsolveStack7RowTypeE", !7, i64 0}
!87 = !{!13, !6, i64 8}
!88 = !{!89, !14, i64 264}
!89 = !{!"_ZTS18HighsOptionsStruct", !90, i64 8, !90, i64 40, !90, i64 72, !90, i64 104, !14, i64 136, !90, i64 144, !90, i64 176, !10, i64 208, !90, i64 216, !14, i64 248, !14, i64 256, !14, i64 264, !14, i64 272, !14, i64 280, !14, i64 288, !14, i64 296, !14, i64 304, !14, i64 312, !14, i64 320, !14, i64 328, !10, i64 336, !10, i64 340, !10, i64 344, !10, i64 348, !10, i64 352, !10, i64 356, !10, i64 360, !10, i64 364, !10, i64 368, !10, i64 372, !10, i64 376, !10, i64 380, !10, i64 384, !10, i64 388, !90, i64 392, !58, i64 424, !58, i64 425, !58, i64 426, !10, i64 428, !10, i64 432, !90, i64 440, !58, i64 472, !58, i64 473, !58, i64 474, !10, i64 476, !58, i64 480, !58, i64 481, !10, i64 484, !10, i64 488, !14, i64 496, !10, i64 504, !10, i64 508, !10, i64 512, !58, i64 516, !10, i64 520, !58, i64 524, !58, i64 525, !58, i64 526, !58, i64 527, !58, i64 528, !58, i64 529, !58, i64 530, !10, i64 532, !10, i64 536, !10, i64 540, !10, i64 544, !10, i64 548, !10, i64 552, !10, i64 556, !10, i64 560, !10, i64 564, !10, i64 568, !10, i64 572, !10, i64 576, !10, i64 580, !10, i64 584, !10, i64 588, !58, i64 592, !58, i64 593, !58, i64 594, !58, i64 595, !14, i64 600, !14, i64 608, !14, i64 616, !14, i64 624, !14, i64 632, !14, i64 640, !14, i64 648, !14, i64 656, !14, i64 664, !14, i64 672, !14, i64 680, !58, i64 688, !58, i64 689, !58, i64 690, !58, i64 691, !10, i64 692, !14, i64 696, !58, i64 704, !58, i64 705, !90, i64 712, !14, i64 744, !10, i64 752, !10, i64 756, !58, i64 760, !58, i64 761, !58, i64 762, !58, i64 763, !10, i64 764, !10, i64 768, !10, i64 772, !10, i64 776, !10, i64 780, !10, i64 784, !10, i64 788, !10, i64 792, !10, i64 796, !10, i64 800, !10, i64 804, !14, i64 808, !14, i64 816, !14, i64 824, !14, i64 832, !14, i64 840, !58, i64 848, !58, i64 849, !90, i64 856, !58, i64 888, !10, i64 892, !92, i64 896}
!90 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !91, i64 0, !42, i64 8, !7, i64 16}
!91 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!92 = !{!"_ZTS15HighsLogOptions", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !93, i64 48, !6, i64 80, !58, i64 88}
!93 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !94, i64 0, !6, i64 24}
!94 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!95 = !{!96, !96, i64 0}
!96 = !{!"_ZTS12HighsVarType", !7, i64 0}
!97 = !{!98, !6, i64 0}
!98 = !{!"_ZTSZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiE3$_1", !6, i64 0, !6, i64 8}
!99 = !{!100, !100, i64 0}
!100 = !{!"_ZTSN8presolve9HPresolve6ResultE", !7, i64 0}
!101 = !{!42, !42, i64 0}
!102 = distinct !{!102, !103}
!103 = !{!"llvm.loop.mustprogress"}
!104 = !{!105, !14, i64 26152}
!105 = !{!"_ZTS18HighsMipSolverData", !6, i64 0, !106, i64 8, !122, i64 688, !135, i64 912, !178, i64 1736, !327, i64 23168, !328, i64 23528, !360, i64 24016, !374, i64 24192, !375, i64 24296, !380, i64 24344, !307, i64 24464, !63, i64 24688, !192, i64 24696, !58, i64 25616, !58, i64 25617, !58, i64 25618, !241, i64 25620, !58, i64 25624, !10, i64 25628, !10, i64 25632, !10, i64 25636, !10, i64 25640, !19, i64 25648, !19, i64 25672, !15, i64 25696, !15, i64 25720, !32, i64 25744, !19, i64 25768, !19, i64 25792, !19, i64 25816, !19, i64 25840, !19, i64 25864, !19, i64 25888, !381, i64 25912, !393, i64 26128, !14, i64 26144, !14, i64 26152, !14, i64 26160, !42, i64 26168, !15, i64 26176, !15, i64 26200, !15, i64 26224, !14, i64 26248, !181, i64 26256, !14, i64 26352, !10, i64 26360, !10, i64 26364, !145, i64 26368, !14, i64 26384, !14, i64 26392, !14, i64 26400, !42, i64 26408, !42, i64 26416, !42, i64 26424, !42, i64 26432, !42, i64 26440, !42, i64 26448, !42, i64 26456, !42, i64 26464, !42, i64 26472, !42, i64 26480, !42, i64 26488, !42, i64 26496, !42, i64 26504, !42, i64 26512, !42, i64 26520, !42, i64 26528, !42, i64 26536, !10, i64 26544, !14, i64 26552, !14, i64 26560, !14, i64 26568, !14, i64 26576, !15, i64 26584, !395, i64 26608, !418, i64 26760, !419, i64 26800}
!106 = !{!"_ZTS12HighsCutPool", !107, i64 0, !15, i64 336, !108, i64 360, !15, i64 384, !15, i64 408, !32, i64 432, !112, i64 456, !114, i64 512, !46, i64 536, !14, i64 584, !14, i64 592, !14, i64 600, !10, i64 608, !10, i64 612, !10, i64 616, !10, i64 620, !10, i64 624, !19, i64 632, !118, i64 656}
!107 = !{!"_ZTS21HighsDynamicRowMatrix", !36, i64 0, !19, i64 24, !15, i64 48, !19, i64 72, !19, i64 96, !19, i64 120, !19, i64 144, !19, i64 168, !19, i64 192, !19, i64 216, !32, i64 240, !46, i64 264, !19, i64 312}
!108 = !{!"_ZTSSt6vectorIsSaIsEE", !109, i64 0}
!109 = !{!"_ZTSSt12_Vector_baseIsSaIsEE", !110, i64 0}
!110 = !{!"_ZTSNSt12_Vector_baseIsSaIsEE12_Vector_implE", !111, i64 0}
!111 = !{!"_ZTSNSt12_Vector_baseIsSaIsEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!112 = !{!"_ZTSSt18unordered_multimapImiSt4hashImESt8equal_toImESaISt4pairIKmiEEE", !113, i64 0}
!113 = !{!"_ZTSSt10_HashtableImSt4pairIKmiESaIS2_ENSt8__detail10_Select1stESt8equal_toImESt4hashImENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb0EEEE", !6, i64 0, !42, i64 8, !43, i64 16, !42, i64 24, !44, i64 32, !6, i64 48}
!114 = !{!"_ZTSSt6vectorIPN11HighsDomain18CutpoolPropagationESaIS2_EE", !115, i64 0}
!115 = !{!"_ZTSSt12_Vector_baseIPN11HighsDomain18CutpoolPropagationESaIS2_EE", !116, i64 0}
!116 = !{!"_ZTSNSt12_Vector_baseIPN11HighsDomain18CutpoolPropagationESaIS2_EE12_Vector_implE", !117, i64 0}
!117 = !{!"_ZTSNSt12_Vector_baseIPN11HighsDomain18CutpoolPropagationESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!118 = !{!"_ZTSSt6vectorISt4pairIidESaIS1_EE", !119, i64 0}
!119 = !{!"_ZTSSt12_Vector_baseISt4pairIidESaIS1_EE", !120, i64 0}
!120 = !{!"_ZTSNSt12_Vector_baseISt4pairIidESaIS1_EE12_Vector_implE", !121, i64 0}
!121 = !{!"_ZTSNSt12_Vector_baseISt4pairIidESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!122 = !{!"_ZTS17HighsConflictPool", !10, i64 0, !10, i64 4, !19, i64 8, !108, i64 32, !123, i64 56, !127, i64 80, !36, i64 104, !46, i64 128, !19, i64 176, !131, i64 200}
!123 = !{!"_ZTSSt6vectorIjSaIjEE", !124, i64 0}
!124 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !125, i64 0}
!125 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !126, i64 0}
!126 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!127 = !{!"_ZTSSt6vectorI17HighsDomainChangeSaIS0_EE", !128, i64 0}
!128 = !{!"_ZTSSt12_Vector_baseI17HighsDomainChangeSaIS0_EE", !129, i64 0}
!129 = !{!"_ZTSNSt12_Vector_baseI17HighsDomainChangeSaIS0_EE12_Vector_implE", !130, i64 0}
!130 = !{!"_ZTSNSt12_Vector_baseI17HighsDomainChangeSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!131 = !{!"_ZTSSt6vectorIPN11HighsDomain23ConflictPoolPropagationESaIS2_EE", !132, i64 0}
!132 = !{!"_ZTSSt12_Vector_baseIPN11HighsDomain23ConflictPoolPropagationESaIS2_EE", !133, i64 0}
!133 = !{!"_ZTSNSt12_Vector_baseIPN11HighsDomain23ConflictPoolPropagationESaIS2_EE12_Vector_implE", !134, i64 0}
!134 = !{!"_ZTSNSt12_Vector_baseIPN11HighsDomain23ConflictPoolPropagationESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!135 = !{!"_ZTS11HighsDomain", !32, i64 0, !19, i64 24, !36, i64 48, !127, i64 72, !136, i64 96, !140, i64 120, !28, i64 144, !28, i64 168, !19, i64 192, !19, i64 216, !15, i64 240, !32, i64 264, !19, i64 288, !144, i64 312, !6, i64 472, !154, i64 480, !159, i64 560, !58, i64 640, !164, i64 644, !10, i64 652, !19, i64 656, !19, i64 680, !19, i64 704, !165, i64 728, !58, i64 768, !15, i64 776, !15, i64 800}
!136 = !{!"_ZTSSt6vectorIN11HighsDomain6ReasonESaIS1_EE", !137, i64 0}
!137 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain6ReasonESaIS1_EE", !138, i64 0}
!138 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain6ReasonESaIS1_EE12_Vector_implE", !139, i64 0}
!139 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain6ReasonESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!140 = !{!"_ZTSSt6vectorISt4pairIdiESaIS1_EE", !141, i64 0}
!141 = !{!"_ZTSSt12_Vector_baseISt4pairIdiESaIS1_EE", !142, i64 0}
!142 = !{!"_ZTSNSt12_Vector_baseISt4pairIdiESaIS1_EE12_Vector_implE", !143, i64 0}
!143 = !{!"_ZTSNSt12_Vector_baseISt4pairIdiESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!144 = !{!"_ZTSN11HighsDomain20ObjectivePropagationE", !6, i64 0, !6, i64 8, !6, i64 16, !145, i64 24, !10, i64 40, !14, i64 48, !58, i64 56, !146, i64 64, !36, i64 88, !15, i64 112, !150, i64 136}
!145 = !{!"_ZTS12HighsCDouble", !14, i64 0, !14, i64 8}
!146 = !{!"_ZTSSt6vectorIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE", !147, i64 0}
!147 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE", !148, i64 0}
!148 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE12_Vector_implE", !149, i64 0}
!149 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!150 = !{!"_ZTSSt6vectorIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE", !151, i64 0}
!151 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE", !152, i64 0}
!152 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE12_Vector_implE", !153, i64 0}
!153 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!154 = !{!"_ZTSSt5dequeIN11HighsDomain18CutpoolPropagationESaIS1_EE", !155, i64 0}
!155 = !{!"_ZTSSt11_Deque_baseIN11HighsDomain18CutpoolPropagationESaIS1_EE", !156, i64 0}
!156 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain18CutpoolPropagationESaIS1_EE11_Deque_implE", !157, i64 0}
!157 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain18CutpoolPropagationESaIS1_EE16_Deque_impl_dataE", !6, i64 0, !42, i64 8, !158, i64 16, !158, i64 48}
!158 = !{!"_ZTSSt15_Deque_iteratorIN11HighsDomain18CutpoolPropagationERS1_PS1_E", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!159 = !{!"_ZTSSt5dequeIN11HighsDomain23ConflictPoolPropagationESaIS1_EE", !160, i64 0}
!160 = !{!"_ZTSSt11_Deque_baseIN11HighsDomain23ConflictPoolPropagationESaIS1_EE", !161, i64 0}
!161 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain23ConflictPoolPropagationESaIS1_EE11_Deque_implE", !162, i64 0}
!162 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain23ConflictPoolPropagationESaIS1_EE16_Deque_impl_dataE", !6, i64 0, !42, i64 8, !163, i64 16, !163, i64 48}
!163 = !{!"_ZTSSt15_Deque_iteratorIN11HighsDomain23ConflictPoolPropagationERS1_PS1_E", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!164 = !{!"_ZTSN11HighsDomain6ReasonE", !10, i64 0, !10, i64 4}
!165 = !{!"_ZTS14HighsHashTableIivE", !166, i64 0, !172, i64 8, !42, i64 16, !42, i64 24, !42, i64 32}
!166 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEE", !167, i64 0}
!167 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterELb1ELb1EE", !168, i64 0}
!168 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEE", !169, i64 0}
!169 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEEE", !170, i64 0}
!170 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEEE", !171, i64 0}
!171 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryIivELb0EE", !6, i64 0}
!172 = !{!"_ZTSSt10unique_ptrIA_hSt14default_deleteIS0_EE", !173, i64 0}
!173 = !{!"_ZTSSt15__uniq_ptr_dataIhSt14default_deleteIA_hELb1ELb1EE", !174, i64 0}
!174 = !{!"_ZTSSt15__uniq_ptr_implIhSt14default_deleteIA_hEE", !175, i64 0}
!175 = !{!"_ZTSSt5tupleIJPhSt14default_deleteIA_hEEE", !176, i64 0}
!176 = !{!"_ZTSSt11_Tuple_implILm0EJPhSt14default_deleteIA_hEEE", !177, i64 0}
!177 = !{!"_ZTSSt10_Head_baseILm0EPhLb0EE", !6, i64 0}
!178 = !{!"_ZTS17HighsLpRelaxation", !6, i64 0, !179, i64 8, !318, i64 20936, !118, i64 20960, !15, i64 20984, !19, i64 21008, !15, i64 21032, !15, i64 21056, !15, i64 21080, !288, i64 21104, !322, i64 21280, !14, i64 21328, !58, i64 21336, !14, i64 21344, !323, i64 21352, !58, i64 21368, !42, i64 21376, !42, i64 21384, !14, i64 21392, !42, i64 21400, !42, i64 21408, !10, i64 21416, !326, i64 21420, !58, i64 21424}
!179 = !{!"_ZTS5Highs", !180, i64 8, !181, i64 112, !186, i64 208, !191, i64 312, !211, i64 1312, !191, i64 1336, !215, i64 2336, !216, i64 2472, !219, i64 2728, !224, i64 3752, !230, i64 3936, !232, i64 4520, !237, i64 4648, !63, i64 4672, !241, i64 4676, !58, i64 4680, !14, i64 4688, !15, i64 4696, !15, i64 4720, !193, i64 4744, !242, i64 4856, !71, i64 19424, !10, i64 19448, !58, i64 19452, !10, i64 19456, !58, i64 19460, !300, i64 19464}
!180 = !{!"_ZTS13HighsSolution", !58, i64 0, !58, i64 1, !15, i64 8, !15, i64 32, !15, i64 56, !15, i64 80}
!181 = !{!"_ZTS10HighsBasis", !58, i64 0, !58, i64 1, !58, i64 2, !58, i64 3, !10, i64 4, !10, i64 8, !90, i64 16, !182, i64 48, !182, i64 72}
!182 = !{!"_ZTSSt6vectorI16HighsBasisStatusSaIS0_EE", !183, i64 0}
!183 = !{!"_ZTSSt12_Vector_baseI16HighsBasisStatusSaIS0_EE", !184, i64 0}
!184 = !{!"_ZTSNSt12_Vector_baseI16HighsBasisStatusSaIS0_EE12_Vector_implE", !185, i64 0}
!185 = !{!"_ZTSNSt12_Vector_baseI16HighsBasisStatusSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!186 = !{!"_ZTS10ICrashInfo", !10, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !187, i64 48, !15, i64 72, !14, i64 96}
!187 = !{!"_ZTSSt6vectorI22ICrashIterationDetailsSaIS0_EE", !188, i64 0}
!188 = !{!"_ZTSSt12_Vector_baseI22ICrashIterationDetailsSaIS0_EE", !189, i64 0}
!189 = !{!"_ZTSNSt12_Vector_baseI22ICrashIterationDetailsSaIS0_EE12_Vector_implE", !190, i64 0}
!190 = !{!"_ZTSNSt12_Vector_baseI22ICrashIterationDetailsSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!191 = !{!"_ZTS10HighsModel", !192, i64 0, !209, i64 920}
!192 = !{!"_ZTS7HighsLp", !10, i64 0, !10, i64 4, !15, i64 8, !15, i64 32, !15, i64 56, !15, i64 80, !15, i64 104, !193, i64 128, !195, i64 240, !14, i64 248, !90, i64 256, !90, i64 288, !10, i64 320, !10, i64 324, !196, i64 328, !196, i64 352, !200, i64 376, !204, i64 400, !204, i64 456, !10, i64 512, !10, i64 516, !207, i64 520, !58, i64 592, !58, i64 593, !10, i64 596, !58, i64 600, !208, i64 608}
!193 = !{!"_ZTS17HighsSparseMatrix", !194, i64 0, !10, i64 4, !10, i64 8, !19, i64 16, !19, i64 40, !19, i64 64, !15, i64 88}
!194 = !{!"_ZTS12MatrixFormat", !7, i64 0}
!195 = !{!"_ZTS8ObjSense", !7, i64 0}
!196 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !197, i64 0}
!197 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !198, i64 0}
!198 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !199, i64 0}
!199 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!200 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !201, i64 0}
!201 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !202, i64 0}
!202 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !203, i64 0}
!203 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!204 = !{!"_ZTS13HighsNameHash", !205, i64 0}
!205 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !206, i64 0}
!206 = !{!"_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, !42, i64 8, !43, i64 16, !42, i64 24, !44, i64 32, !6, i64 48}
!207 = !{!"_ZTS10HighsScale", !10, i64 0, !58, i64 4, !10, i64 8, !10, i64 12, !14, i64 16, !15, i64 24, !15, i64 48}
!208 = !{!"_ZTS11HighsLpMods", !19, i64 0, !19, i64 24, !15, i64 48, !15, i64 72, !200, i64 96, !19, i64 120, !15, i64 144, !19, i64 168, !15, i64 192, !19, i64 216, !15, i64 240, !15, i64 264, !15, i64 288}
!209 = !{!"_ZTS12HighsHessian", !10, i64 0, !210, i64 4, !19, i64 8, !19, i64 32, !15, i64 56}
!210 = !{!"_ZTS13HessianFormat", !7, i64 0}
!211 = !{!"_ZTSSt6vectorI20HighsLinearObjectiveSaIS0_EE", !212, i64 0}
!212 = !{!"_ZTSSt12_Vector_baseI20HighsLinearObjectiveSaIS0_EE", !213, i64 0}
!213 = !{!"_ZTSNSt12_Vector_baseI20HighsLinearObjectiveSaIS0_EE12_Vector_implE", !214, i64 0}
!214 = !{!"_ZTSNSt12_Vector_baseI20HighsLinearObjectiveSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!215 = !{!"_ZTS10HighsTimer", !14, i64 8, !10, i64 16, !19, i64 24, !15, i64 48, !15, i64 72, !196, i64 96, !10, i64 120, !10, i64 124, !10, i64 128}
!216 = !{!"_ZTS13HighsCallback", !93, i64 0, !6, i64 32, !6, i64 40, !65, i64 48, !217, i64 88, !218, i64 240}
!217 = !{!"_ZTS20HighsCallbackDataOut", !10, i64 0, !14, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !14, i64 32, !42, i64 40, !42, i64 48, !14, i64 56, !14, i64 64, !14, i64 72, !6, i64 80, !10, i64 88, !10, i64 92, !10, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !10, i64 144}
!218 = !{!"_ZTS19HighsCallbackDataIn", !10, i64 0, !6, i64 8}
!219 = !{!"_ZTS12HighsOptions", !89, i64 0, !220, i64 992, !10, i64 1016}
!220 = !{!"_ZTSSt6vectorIP12OptionRecordSaIS1_EE", !221, i64 0}
!221 = !{!"_ZTSSt12_Vector_baseIP12OptionRecordSaIS1_EE", !222, i64 0}
!222 = !{!"_ZTSNSt12_Vector_baseIP12OptionRecordSaIS1_EE12_Vector_implE", !223, i64 0}
!223 = !{!"_ZTSNSt12_Vector_baseIP12OptionRecordSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!224 = !{!"_ZTS9HighsInfo", !225, i64 8, !226, i64 160}
!225 = !{!"_ZTS15HighsInfoStruct", !58, i64 0, !42, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !14, i64 48, !14, i64 56, !14, i64 64, !14, i64 72, !10, i64 80, !14, i64 88, !14, i64 96, !10, i64 104, !14, i64 112, !14, i64 120, !14, i64 128, !14, i64 136, !14, i64 144}
!226 = !{!"_ZTSSt6vectorIP10InfoRecordSaIS1_EE", !227, i64 0}
!227 = !{!"_ZTSSt12_Vector_baseIP10InfoRecordSaIS1_EE", !228, i64 0}
!228 = !{!"_ZTSNSt12_Vector_baseIP10InfoRecordSaIS1_EE12_Vector_implE", !229, i64 0}
!229 = !{!"_ZTSNSt12_Vector_baseIP10InfoRecordSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!230 = !{!"_ZTS12HighsRanging", !58, i64 0, !231, i64 8, !231, i64 104, !231, i64 200, !231, i64 296, !231, i64 392, !231, i64 488}
!231 = !{!"_ZTS18HighsRangingRecord", !15, i64 0, !15, i64 24, !19, i64 48, !19, i64 72}
!232 = !{!"_ZTS8HighsIis", !58, i64 0, !10, i64 4, !19, i64 8, !19, i64 32, !19, i64 56, !19, i64 80, !233, i64 104}
!233 = !{!"_ZTSSt6vectorI12HighsIisInfoSaIS0_EE", !234, i64 0}
!234 = !{!"_ZTSSt12_Vector_baseI12HighsIisInfoSaIS0_EE", !235, i64 0}
!235 = !{!"_ZTSNSt12_Vector_baseI12HighsIisInfoSaIS0_EE12_Vector_implE", !236, i64 0}
!236 = !{!"_ZTSNSt12_Vector_baseI12HighsIisInfoSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!237 = !{!"_ZTSSt6vectorI22HighsObjectiveSolutionSaIS0_EE", !238, i64 0}
!238 = !{!"_ZTSSt12_Vector_baseI22HighsObjectiveSolutionSaIS0_EE", !239, i64 0}
!239 = !{!"_ZTSNSt12_Vector_baseI22HighsObjectiveSolutionSaIS0_EE12_Vector_implE", !240, i64 0}
!240 = !{!"_ZTSNSt12_Vector_baseI22HighsObjectiveSolutionSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!241 = !{!"_ZTS16HighsModelStatus", !7, i64 0}
!242 = !{!"_ZTS4HEkk", !6, i64 0, !6, i64 8, !6, i64 16, !243, i64 24, !192, i64 8600, !90, i64 9520, !260, i64 9552, !261, i64 9568, !241, i64 10608, !262, i64 10616, !267, i64 10736, !274, i64 10776, !15, i64 10784, !15, i64 10808, !58, i64 10832, !193, i64 10840, !193, i64 10952, !275, i64 11064, !292, i64 13928, !14, i64 14048, !14, i64 14056, !14, i64 14064, !10, i64 14072, !10, i64 14076, !10, i64 14080, !10, i64 14084, !58, i64 14088, !58, i64 14089, !293, i64 14092, !10, i64 14096, !10, i64 14100, !19, i64 14104, !15, i64 14128, !294, i64 14152, !294, i64 14184, !10, i64 14216, !10, i64 14220, !10, i64 14224, !14, i64 14232, !15, i64 14240, !15, i64 14264, !15, i64 14288, !15, i64 14312, !15, i64 14336, !19, i64 14360, !19, i64 14384, !14, i64 14408, !14, i64 14416, !14, i64 14424, !10, i64 14432, !10, i64 14436, !58, i64 14440, !10, i64 14444, !58, i64 14448, !58, i64 14449, !58, i64 14450, !58, i64 14451, !14, i64 14456, !295, i64 14464, !15, i64 14488, !299, i64 14512}
!243 = !{!"_ZTS20HighsSimplexAnalysis", !6, i64 0, !244, i64 8, !244, i64 32, !6, i64 56, !10, i64 64, !10, i64 68, !10, i64 72, !90, i64 80, !90, i64 112, !92, i64 144, !58, i64 240, !58, i64 241, !58, i64 242, !58, i64 243, !58, i64 244, !58, i64 245, !58, i64 246, !10, i64 248, !248, i64 252, !10, i64 256, !10, i64 260, !10, i64 264, !10, i64 268, !10, i64 272, !10, i64 276, !10, i64 280, !90, i64 288, !14, i64 320, !14, i64 328, !14, i64 336, !14, i64 344, !14, i64 352, !14, i64 360, !14, i64 368, !14, i64 376, !14, i64 384, !14, i64 392, !14, i64 400, !14, i64 408, !10, i64 416, !10, i64 420, !14, i64 424, !14, i64 432, !10, i64 440, !14, i64 448, !14, i64 456, !10, i64 464, !14, i64 472, !14, i64 480, !14, i64 488, !14, i64 496, !14, i64 504, !14, i64 512, !14, i64 520, !14, i64 528, !14, i64 536, !14, i64 544, !10, i64 552, !14, i64 560, !10, i64 568, !10, i64 572, !10, i64 576, !10, i64 580, !10, i64 584, !10, i64 588, !10, i64 592, !10, i64 596, !10, i64 600, !249, i64 608, !249, i64 760, !249, i64 912, !249, i64 1064, !249, i64 1216, !249, i64 1368, !249, i64 1520, !249, i64 1672, !249, i64 1824, !249, i64 1976, !10, i64 2128, !10, i64 2132, !10, i64 2136, !10, i64 2140, !14, i64 2144, !14, i64 2152, !10, i64 2160, !10, i64 2164, !10, i64 2168, !10, i64 2172, !10, i64 2176, !14, i64 2184, !14, i64 2192, !10, i64 2200, !14, i64 2208, !14, i64 2216, !10, i64 2224, !10, i64 2228, !14, i64 2232, !14, i64 2240, !15, i64 2248, !15, i64 2272, !15, i64 2296, !15, i64 2320, !250, i64 2344, !254, i64 2368, !10, i64 2376, !10, i64 2380, !10, i64 2384, !10, i64 2388, !14, i64 2392, !14, i64 2400, !14, i64 2408, !14, i64 2416, !14, i64 2424, !14, i64 2432, !14, i64 2440, !14, i64 2448, !14, i64 2456, !14, i64 2464, !10, i64 2472, !10, i64 2476, !14, i64 2480, !14, i64 2488, !14, i64 2496, !58, i64 2504, !14, i64 2512, !14, i64 2520, !10, i64 2528, !10, i64 2532, !10, i64 2536, !10, i64 2540, !10, i64 2544, !14, i64 2552, !14, i64 2560, !14, i64 2568, !14, i64 2576, !14, i64 2584, !14, i64 2592, !14, i64 2600, !14, i64 2608, !14, i64 2616, !10, i64 2624, !10, i64 2628, !7, i64 2632, !10, i64 4952, !10, i64 4956, !7, i64 4960, !7, i64 7600, !7, i64 7648, !249, i64 7664, !249, i64 7816, !249, i64 7968, !249, i64 8120, !249, i64 8272, !249, i64 8424}
!244 = !{!"_ZTSSt6vectorI15HighsTimerClockSaIS0_EE", !245, i64 0}
!245 = !{!"_ZTSSt12_Vector_baseI15HighsTimerClockSaIS0_EE", !246, i64 0}
!246 = !{!"_ZTSNSt12_Vector_baseI15HighsTimerClockSaIS0_EE12_Vector_implE", !247, i64 0}
!247 = !{!"_ZTSNSt12_Vector_baseI15HighsTimerClockSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!248 = !{!"_ZTS14EdgeWeightMode", !7, i64 0}
!249 = !{!"_ZTS22HighsValueDistribution", !90, i64 0, !90, i64 32, !10, i64 64, !10, i64 68, !10, i64 72, !14, i64 80, !14, i64 88, !15, i64 96, !19, i64 120, !10, i64 144}
!250 = !{!"_ZTSSt6vectorI17TranStageAnalysisSaIS0_EE", !251, i64 0}
!251 = !{!"_ZTSSt12_Vector_baseI17TranStageAnalysisSaIS0_EE", !252, i64 0}
!252 = !{!"_ZTSNSt12_Vector_baseI17TranStageAnalysisSaIS0_EE12_Vector_implE", !253, i64 0}
!253 = !{!"_ZTSNSt12_Vector_baseI17TranStageAnalysisSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!254 = !{!"_ZTSSt10unique_ptrINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EE", !255, i64 0}
!255 = !{!"_ZTSSt15__uniq_ptr_dataINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_ELb1ELb1EE", !256, i64 0}
!256 = !{!"_ZTSSt15__uniq_ptr_implINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EE", !257, i64 0}
!257 = !{!"_ZTSSt5tupleIJPNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EEE", !258, i64 0}
!258 = !{!"_ZTSSt11_Tuple_implILm0EJPNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EEE", !259, i64 0}
!259 = !{!"_ZTSSt10_Head_baseILm0EPNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEELb0EE", !6, i64 0}
!260 = !{!"_ZTS18HighsSimplexStatus", !58, i64 0, !58, i64 1, !58, i64 2, !58, i64 3, !58, i64 4, !58, i64 5, !58, i64 6, !58, i64 7, !58, i64 8, !58, i64 9, !58, i64 10, !58, i64 11, !58, i64 12}
!261 = !{!"_ZTS16HighsSimplexInfo", !15, i64 0, !15, i64 24, !15, i64 48, !15, i64 72, !15, i64 96, !15, i64 120, !15, i64 144, !15, i64 168, !15, i64 192, !15, i64 216, !15, i64 240, !15, i64 264, !15, i64 288, !19, i64 312, !19, i64 336, !19, i64 360, !19, i64 384, !15, i64 408, !10, i64 432, !10, i64 436, !58, i64 440, !58, i64 441, !262, i64 448, !10, i64 568, !10, i64 572, !10, i64 576, !15, i64 584, !15, i64 608, !15, i64 632, !15, i64 656, !10, i64 680, !10, i64 684, !10, i64 688, !10, i64 692, !14, i64 696, !14, i64 704, !14, i64 712, !14, i64 720, !10, i64 728, !10, i64 732, !14, i64 736, !14, i64 744, !14, i64 752, !14, i64 760, !14, i64 768, !14, i64 776, !14, i64 784, !14, i64 792, !14, i64 800, !14, i64 808, !58, i64 816, !14, i64 824, !14, i64 832, !10, i64 840, !14, i64 848, !14, i64 856, !14, i64 864, !58, i64 872, !58, i64 873, !58, i64 874, !58, i64 875, !58, i64 876, !58, i64 877, !58, i64 878, !58, i64 879, !58, i64 880, !58, i64 881, !58, i64 882, !58, i64 883, !58, i64 884, !58, i64 885, !58, i64 886, !10, i64 888, !14, i64 896, !14, i64 904, !10, i64 912, !14, i64 920, !14, i64 928, !10, i64 936, !10, i64 940, !10, i64 944, !10, i64 948, !10, i64 952, !10, i64 956, !10, i64 960, !10, i64 964, !10, i64 968, !10, i64 972, !10, i64 976, !10, i64 980, !10, i64 984, !10, i64 988, !10, i64 992, !10, i64 996, !14, i64 1000, !14, i64 1008, !14, i64 1016, !14, i64 1024, !10, i64 1032}
!262 = !{!"_ZTS12SimplexBasis", !19, i64 0, !263, i64 24, !263, i64 48, !42, i64 72, !10, i64 80, !10, i64 84, !90, i64 88}
!263 = !{!"_ZTSSt6vectorIaSaIaEE", !264, i64 0}
!264 = !{!"_ZTSSt12_Vector_baseIaSaIaEE", !265, i64 0}
!265 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE12_Vector_implE", !266, i64 0}
!266 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!267 = !{!"_ZTS14HighsHashTableImvE", !268, i64 0, !172, i64 8, !42, i64 16, !42, i64 24, !42, i64 32}
!268 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEE", !269, i64 0}
!269 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterELb1ELb1EE", !270, i64 0}
!270 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEE", !271, i64 0}
!271 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEEE", !272, i64 0}
!272 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEEE", !273, i64 0}
!273 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryImvELb0EE", !6, i64 0}
!274 = !{!"_ZTS11HighsRandom", !42, i64 0}
!275 = !{!"_ZTS11HSimplexNla", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !276, i64 48, !58, i64 1960, !14, i64 1968, !289, i64 1976, !290, i64 2112}
!276 = !{!"_ZTS7HFactor", !14, i64 0, !14, i64 8, !10, i64 16, !19, i64 24, !19, i64 48, !19, i64 72, !277, i64 96, !10, i64 184, !10, i64 188, !10, i64 192, !10, i64 196, !10, i64 200, !10, i64 204, !10, i64 208, !14, i64 216, !58, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !14, i64 264, !14, i64 272, !10, i64 280, !14, i64 288, !278, i64 296, !92, i64 304, !58, i64 400, !58, i64 401, !10, i64 404, !10, i64 408, !6, i64 416, !10, i64 424, !19, i64 432, !15, i64 456, !19, i64 480, !19, i64 504, !19, i64 528, !15, i64 552, !19, i64 576, !19, i64 600, !19, i64 624, !19, i64 648, !19, i64 672, !19, i64 696, !19, i64 720, !15, i64 744, !15, i64 768, !19, i64 792, !19, i64 816, !19, i64 840, !19, i64 864, !19, i64 888, !19, i64 912, !284, i64 936, !15, i64 960, !19, i64 984, !19, i64 1008, !19, i64 1032, !19, i64 1056, !19, i64 1080, !19, i64 1104, !19, i64 1128, !19, i64 1152, !19, i64 1176, !19, i64 1200, !15, i64 1224, !19, i64 1248, !19, i64 1272, !15, i64 1296, !19, i64 1320, !19, i64 1344, !15, i64 1368, !10, i64 1392, !10, i64 1396, !19, i64 1400, !19, i64 1424, !19, i64 1448, !15, i64 1472, !19, i64 1496, !19, i64 1520, !19, i64 1544, !19, i64 1568, !15, i64 1592, !15, i64 1616, !19, i64 1640, !19, i64 1664, !19, i64 1688, !15, i64 1712, !288, i64 1736}
!277 = !{!"_ZTS12RefactorInfo", !58, i64 0, !19, i64 8, !19, i64 32, !263, i64 56, !14, i64 80}
!278 = !{!"_ZTSSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EE", !279, i64 0}
!279 = !{!"_ZTSSt15__uniq_ptr_dataIN7HFactor7LogDataESt14default_deleteIS1_ELb1ELb1EE", !280, i64 0}
!280 = !{!"_ZTSSt15__uniq_ptr_implIN7HFactor7LogDataESt14default_deleteIS1_EE", !281, i64 0}
!281 = !{!"_ZTSSt5tupleIJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !282, i64 0}
!282 = !{!"_ZTSSt11_Tuple_implILm0EJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !283, i64 0}
!283 = !{!"_ZTSSt10_Head_baseILm0EPN7HFactor7LogDataELb0EE", !6, i64 0}
!284 = !{!"_ZTSSt6vectorIcSaIcEE", !285, i64 0}
!285 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !286, i64 0}
!286 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !287, i64 0}
!287 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!288 = !{!"_ZTS11HVectorBaseIdE", !10, i64 0, !10, i64 4, !19, i64 8, !15, i64 32, !14, i64 56, !284, i64 64, !19, i64 88, !6, i64 112, !58, i64 120, !10, i64 124, !19, i64 128, !15, i64 152}
!289 = !{!"_ZTS17ProductFormUpdate", !58, i64 0, !10, i64 4, !10, i64 8, !19, i64 16, !15, i64 40, !19, i64 64, !19, i64 88, !15, i64 112}
!290 = !{!"_ZTS14SimplexIterate", !58, i64 0, !262, i64 8, !291, i64 128, !15, i64 728}
!291 = !{!"_ZTS24InvertibleRepresentation", !19, i64 0, !19, i64 24, !19, i64 48, !19, i64 72, !15, i64 96, !19, i64 120, !19, i64 144, !15, i64 168, !19, i64 192, !19, i64 216, !15, i64 240, !19, i64 264, !19, i64 288, !19, i64 312, !15, i64 336, !19, i64 360, !19, i64 384, !19, i64 408, !19, i64 432, !15, i64 456, !19, i64 480, !19, i64 504, !15, i64 528, !19, i64 552, !15, i64 576}
!292 = !{!"_ZTS8HotStart", !58, i64 0, !277, i64 8, !263, i64 96}
!293 = !{!"_ZTS16SimplexAlgorithm", !7, i64 0}
!294 = !{!"_ZTS14HighsRayRecord", !10, i64 0, !10, i64 4, !15, i64 8}
!295 = !{!"_ZTSSt6vectorI32HighsSimplexBadBasisChangeRecordSaIS0_EE", !296, i64 0}
!296 = !{!"_ZTSSt12_Vector_baseI32HighsSimplexBadBasisChangeRecordSaIS0_EE", !297, i64 0}
!297 = !{!"_ZTSNSt12_Vector_baseI32HighsSimplexBadBasisChangeRecordSaIS0_EE12_Vector_implE", !298, i64 0}
!298 = !{!"_ZTSNSt12_Vector_baseI32HighsSimplexBadBasisChangeRecordSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!299 = !{!"_ZTS17HighsSimplexStats", !58, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48}
!300 = !{!"_ZTS17PresolveComponent", !301, i64 0, !305, i64 16, !306, i64 56, !6, i64 1440, !6, i64 1448, !63, i64 1456, !317, i64 1460}
!301 = !{!"_ZTS14HighsComponent", !302, i64 8, !303, i64 9, !304, i64 10}
!302 = !{!"_ZTS18HighsComponentInfo", !58, i64 0}
!303 = !{!"_ZTS18HighsComponentData", !58, i64 0}
!304 = !{!"_ZTS21HighsComponentOptions", !58, i64 0}
!305 = !{!"_ZTS21PresolveComponentInfo", !302, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !14, i64 24, !14, i64 32}
!306 = !{!"_ZTS21PresolveComponentData", !303, i64 8, !192, i64 16, !307, i64 936, !180, i64 1160, !181, i64 1264, !71, i64 1360}
!307 = !{!"_ZTSN8presolve19HighsPostsolveStackE", !42, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !308, i64 40, !309, i64 72, !19, i64 96, !19, i64 120, !32, i64 144, !313, i64 168, !313, i64 192, !10, i64 216, !10, i64 220}
!308 = !{!"_ZTS14HighsDataStack", !284, i64 0, !42, i64 24}
!309 = !{!"_ZTSSt6vectorISt4pairIN8presolve19HighsPostsolveStack13ReductionTypeEmESaIS4_EE", !310, i64 0}
!310 = !{!"_ZTSSt12_Vector_baseISt4pairIN8presolve19HighsPostsolveStack13ReductionTypeEmESaIS4_EE", !311, i64 0}
!311 = !{!"_ZTSNSt12_Vector_baseISt4pairIN8presolve19HighsPostsolveStack13ReductionTypeEmESaIS4_EE12_Vector_implE", !312, i64 0}
!312 = !{!"_ZTSNSt12_Vector_baseISt4pairIN8presolve19HighsPostsolveStack13ReductionTypeEmESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!313 = !{!"_ZTSSt6vectorIN8presolve19HighsPostsolveStack7NonzeroESaIS2_EE", !314, i64 0}
!314 = !{!"_ZTSSt12_Vector_baseIN8presolve19HighsPostsolveStack7NonzeroESaIS2_EE", !315, i64 0}
!315 = !{!"_ZTSNSt12_Vector_baseIN8presolve19HighsPostsolveStack7NonzeroESaIS2_EE12_Vector_implE", !316, i64 0}
!316 = !{!"_ZTSNSt12_Vector_baseIN8presolve19HighsPostsolveStack7NonzeroESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!317 = !{!"_ZTS20HighsPostsolveStatus", !7, i64 0}
!318 = !{!"_ZTSSt6vectorIN17HighsLpRelaxation5LpRowESaIS1_EE", !319, i64 0}
!319 = !{!"_ZTSSt12_Vector_baseIN17HighsLpRelaxation5LpRowESaIS1_EE", !320, i64 0}
!320 = !{!"_ZTSNSt12_Vector_baseIN17HighsLpRelaxation5LpRowESaIS1_EE12_Vector_implE", !321, i64 0}
!321 = !{!"_ZTSNSt12_Vector_baseIN17HighsLpRelaxation5LpRowESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!322 = !{!"_ZTS20HighsSparseVectorSum", !28, i64 0, !19, i64 24}
!323 = !{!"_ZTSSt10shared_ptrIK10HighsBasisE", !324, i64 0}
!324 = !{!"_ZTSSt12__shared_ptrIK10HighsBasisLN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !325, i64 8}
!325 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!326 = !{!"_ZTSN17HighsLpRelaxation6StatusE", !7, i64 0}
!327 = !{!"_ZTS15HighsPseudocost", !15, i64 0, !15, i64 24, !19, i64 48, !19, i64 72, !15, i64 96, !15, i64 120, !19, i64 144, !19, i64 168, !19, i64 192, !19, i64 216, !15, i64 240, !15, i64 264, !14, i64 288, !14, i64 296, !14, i64 304, !14, i64 312, !42, i64 320, !42, i64 328, !42, i64 336, !10, i64 344, !14, i64 352}
!328 = !{!"_ZTS16HighsCliqueTable", !329, i64 0, !333, i64 24, !337, i64 48, !341, i64 72, !46, i64 112, !19, i64 160, !348, i64 184, !19, i64 208, !329, i64 232, !19, i64 256, !352, i64 280, !19, i64 304, !356, i64 328, !32, i64 352, !32, i64 376, !123, i64 400, !19, i64 424, !274, i64 448, !10, i64 456, !10, i64 460, !10, i64 464, !10, i64 468, !58, i64 472, !42, i64 480}
!329 = !{!"_ZTSSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE", !330, i64 0}
!330 = !{!"_ZTSSt12_Vector_baseIN16HighsCliqueTable9CliqueVarESaIS1_EE", !331, i64 0}
!331 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable9CliqueVarESaIS1_EE12_Vector_implE", !332, i64 0}
!332 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable9CliqueVarESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!333 = !{!"_ZTSSt6vectorI13HighsHashTreeIiiESaIS1_EE", !334, i64 0}
!334 = !{!"_ZTSSt12_Vector_baseI13HighsHashTreeIiiESaIS1_EE", !335, i64 0}
!335 = !{!"_ZTSNSt12_Vector_baseI13HighsHashTreeIiiESaIS1_EE12_Vector_implE", !336, i64 0}
!336 = !{!"_ZTSNSt12_Vector_baseI13HighsHashTreeIiiESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!337 = !{!"_ZTSSt6vectorI13HighsHashTreeIivESaIS1_EE", !338, i64 0}
!338 = !{!"_ZTSSt12_Vector_baseI13HighsHashTreeIivESaIS1_EE", !339, i64 0}
!339 = !{!"_ZTSNSt12_Vector_baseI13HighsHashTreeIivESaIS1_EE12_Vector_implE", !340, i64 0}
!340 = !{!"_ZTSNSt12_Vector_baseI13HighsHashTreeIivESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!341 = !{!"_ZTS14HighsHashTableISt4pairIN16HighsCliqueTable9CliqueVarES2_EiE", !342, i64 0, !172, i64 8, !42, i64 16, !42, i64 24, !42, i64 32}
!342 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryISt4pairIN16HighsCliqueTable9CliqueVarES3_EiEN14HighsHashTableIS4_iE12OpNewDeleterEE", !343, i64 0}
!343 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryISt4pairIN16HighsCliqueTable9CliqueVarES3_EiEN14HighsHashTableIS4_iE12OpNewDeleterELb1ELb1EE", !344, i64 0}
!344 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryISt4pairIN16HighsCliqueTable9CliqueVarES3_EiEN14HighsHashTableIS4_iE12OpNewDeleterEE", !345, i64 0}
!345 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryISt4pairIN16HighsCliqueTable9CliqueVarES3_EiEN14HighsHashTableIS4_iE12OpNewDeleterEEE", !346, i64 0}
!346 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryISt4pairIN16HighsCliqueTable9CliqueVarES3_EiEN14HighsHashTableIS4_iE12OpNewDeleterEEE", !347, i64 0}
!347 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryISt4pairIN16HighsCliqueTable9CliqueVarES3_EiELb0EE", !6, i64 0}
!348 = !{!"_ZTSSt6vectorIN16HighsCliqueTable6CliqueESaIS1_EE", !349, i64 0}
!349 = !{!"_ZTSSt12_Vector_baseIN16HighsCliqueTable6CliqueESaIS1_EE", !350, i64 0}
!350 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable6CliqueESaIS1_EE12_Vector_implE", !351, i64 0}
!351 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable6CliqueESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!352 = !{!"_ZTSSt6vectorIN16HighsCliqueTable12SubstitutionESaIS1_EE", !353, i64 0}
!353 = !{!"_ZTSSt12_Vector_baseIN16HighsCliqueTable12SubstitutionESaIS1_EE", !354, i64 0}
!354 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable12SubstitutionESaIS1_EE12_Vector_implE", !355, i64 0}
!355 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable12SubstitutionESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!356 = !{!"_ZTSSt6vectorISt4pairIiN16HighsCliqueTable9CliqueVarEESaIS3_EE", !357, i64 0}
!357 = !{!"_ZTSSt12_Vector_baseISt4pairIiN16HighsCliqueTable9CliqueVarEESaIS3_EE", !358, i64 0}
!358 = !{!"_ZTSNSt12_Vector_baseISt4pairIiN16HighsCliqueTable9CliqueVarEESaIS3_EE12_Vector_implE", !359, i64 0}
!359 = !{!"_ZTSNSt12_Vector_baseISt4pairIiN16HighsCliqueTable9CliqueVarEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!360 = !{!"_ZTS17HighsImplications", !10, i64 0, !361, i64 8, !42, i64 32, !365, i64 40, !365, i64 64, !6, i64 88, !369, i64 96, !32, i64 120, !373, i64 144}
!361 = !{!"_ZTSSt6vectorIN17HighsImplications7ImplicsESaIS1_EE", !362, i64 0}
!362 = !{!"_ZTSSt12_Vector_baseIN17HighsImplications7ImplicsESaIS1_EE", !363, i64 0}
!363 = !{!"_ZTSNSt12_Vector_baseIN17HighsImplications7ImplicsESaIS1_EE12_Vector_implE", !364, i64 0}
!364 = !{!"_ZTSNSt12_Vector_baseIN17HighsImplications7ImplicsESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!365 = !{!"_ZTSSt6vectorI13HighsHashTreeIiN17HighsImplications8VarBoundEESaIS3_EE", !366, i64 0}
!366 = !{!"_ZTSSt12_Vector_baseI13HighsHashTreeIiN17HighsImplications8VarBoundEESaIS3_EE", !367, i64 0}
!367 = !{!"_ZTSNSt12_Vector_baseI13HighsHashTreeIiN17HighsImplications8VarBoundEESaIS3_EE12_Vector_implE", !368, i64 0}
!368 = !{!"_ZTSNSt12_Vector_baseI13HighsHashTreeIiN17HighsImplications8VarBoundEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!369 = !{!"_ZTSSt6vectorI17HighsSubstitutionSaIS0_EE", !370, i64 0}
!370 = !{!"_ZTSSt12_Vector_baseI17HighsSubstitutionSaIS0_EE", !371, i64 0}
!371 = !{!"_ZTSNSt12_Vector_baseI17HighsSubstitutionSaIS0_EE12_Vector_implE", !372, i64 0}
!372 = !{!"_ZTSNSt12_Vector_baseI17HighsSubstitutionSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!373 = !{!"_ZTSSt8functionIFviiidEE", !94, i64 0, !6, i64 24}
!374 = !{!"_ZTS21HighsPrimalHeuristics", !6, i64 0, !42, i64 8, !42, i64 16, !42, i64 24, !42, i64 32, !14, i64 40, !10, i64 48, !14, i64 56, !10, i64 64, !274, i64 72, !19, i64 80}
!375 = !{!"_ZTS18HighsRedcostFixing", !376, i64 0, !376, i64 24}
!376 = !{!"_ZTSSt6vectorISt8multimapIdiSt4lessIdESaISt4pairIKdiEEESaIS7_EE", !377, i64 0}
!377 = !{!"_ZTSSt12_Vector_baseISt8multimapIdiSt4lessIdESaISt4pairIKdiEEESaIS7_EE", !378, i64 0}
!378 = !{!"_ZTSNSt12_Vector_baseISt8multimapIdiSt4lessIdESaISt4pairIKdiEEESaIS7_EE12_Vector_implE", !379, i64 0}
!379 = !{!"_ZTSNSt12_Vector_baseISt8multimapIdiSt4lessIdESaISt4pairIKdiEEESaIS7_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!380 = !{!"_ZTS22HighsObjectiveFunction", !6, i64 0, !14, i64 8, !10, i64 16, !10, i64 20, !19, i64 24, !15, i64 48, !19, i64 72, !19, i64 96}
!381 = !{!"_ZTS15HighsSymmetries", !19, i64 0, !19, i64 24, !19, i64 48, !19, i64 72, !19, i64 96, !19, i64 120, !382, i64 144, !386, i64 168, !10, i64 208, !10, i64 212}
!382 = !{!"_ZTSSt6vectorI19HighsOrbitopeMatrixSaIS0_EE", !383, i64 0}
!383 = !{!"_ZTSSt12_Vector_baseI19HighsOrbitopeMatrixSaIS0_EE", !384, i64 0}
!384 = !{!"_ZTSNSt12_Vector_baseI19HighsOrbitopeMatrixSaIS0_EE12_Vector_implE", !385, i64 0}
!385 = !{!"_ZTSNSt12_Vector_baseI19HighsOrbitopeMatrixSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!386 = !{!"_ZTS14HighsHashTableIiiE", !387, i64 0, !172, i64 8, !42, i64 16, !42, i64 24, !42, i64 32}
!387 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEE", !388, i64 0}
!388 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterELb1ELb1EE", !389, i64 0}
!389 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEE", !390, i64 0}
!390 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEEE", !391, i64 0}
!391 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEEE", !392, i64 0}
!392 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryIiiELb0EE", !6, i64 0}
!393 = !{!"_ZTSSt10shared_ptrIK16StabilizerOrbitsE", !394, i64 0}
!394 = !{!"_ZTSSt12__shared_ptrIK16StabilizerOrbitsLN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !325, i64 8}
!395 = !{!"_ZTS14HighsNodeQueue", !396, i64 0, !402, i64 8, !406, i64 32, !412, i64 64, !412, i64 72, !42, i64 80, !42, i64 88, !42, i64 96, !42, i64 104, !42, i64 112, !42, i64 120, !42, i64 128, !14, i64 136, !10, i64 144}
!396 = !{!"_ZTSSt10unique_ptrIN14HighsNodeQueue14AllocatorStateESt14default_deleteIS1_EE", !397, i64 0}
!397 = !{!"_ZTSSt15__uniq_ptr_dataIN14HighsNodeQueue14AllocatorStateESt14default_deleteIS1_ELb1ELb1EE", !398, i64 0}
!398 = !{!"_ZTSSt15__uniq_ptr_implIN14HighsNodeQueue14AllocatorStateESt14default_deleteIS1_EE", !399, i64 0}
!399 = !{!"_ZTSSt5tupleIJPN14HighsNodeQueue14AllocatorStateESt14default_deleteIS1_EEE", !400, i64 0}
!400 = !{!"_ZTSSt11_Tuple_implILm0EJPN14HighsNodeQueue14AllocatorStateESt14default_deleteIS1_EEE", !401, i64 0}
!401 = !{!"_ZTSSt10_Head_baseILm0EPN14HighsNodeQueue14AllocatorStateELb0EE", !6, i64 0}
!402 = !{!"_ZTSSt6vectorIN14HighsNodeQueue8OpenNodeESaIS1_EE", !403, i64 0}
!403 = !{!"_ZTSSt12_Vector_baseIN14HighsNodeQueue8OpenNodeESaIS1_EE", !404, i64 0}
!404 = !{!"_ZTSNSt12_Vector_baseIN14HighsNodeQueue8OpenNodeESaIS1_EE12_Vector_implE", !405, i64 0}
!405 = !{!"_ZTSNSt12_Vector_baseIN14HighsNodeQueue8OpenNodeESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!406 = !{!"_ZTSSt14priority_queueIlSt6vectorIlSaIlEESt7greaterIlEE", !407, i64 0, !411, i64 24}
!407 = !{!"_ZTSSt6vectorIlSaIlEE", !408, i64 0}
!408 = !{!"_ZTSSt12_Vector_baseIlSaIlEE", !409, i64 0}
!409 = !{!"_ZTSNSt12_Vector_baseIlSaIlEE12_Vector_implE", !410, i64 0}
!410 = !{!"_ZTSNSt12_Vector_baseIlSaIlEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!411 = !{!"_ZTSSt7greaterIlE"}
!412 = !{!"_ZTSSt10unique_ptrISt3setISt4pairIdlESt4lessIS2_EN14HighsNodeQueue16NodesetAllocatorIS2_EEENS5_20GlobalOperatorDeleteEE", !413, i64 0}
!413 = !{!"_ZTSSt15__uniq_ptr_dataISt3setISt4pairIdlESt4lessIS2_EN14HighsNodeQueue16NodesetAllocatorIS2_EEENS5_20GlobalOperatorDeleteELb1ELb1EE", !414, i64 0}
!414 = !{!"_ZTSSt15__uniq_ptr_implISt3setISt4pairIdlESt4lessIS2_EN14HighsNodeQueue16NodesetAllocatorIS2_EEENS5_20GlobalOperatorDeleteEE", !415, i64 0}
!415 = !{!"_ZTSSt5tupleIJPSt3setISt4pairIdlESt4lessIS2_EN14HighsNodeQueue16NodesetAllocatorIS2_EEENS5_20GlobalOperatorDeleteEEE", !416, i64 0}
!416 = !{!"_ZTSSt11_Tuple_implILm0EJPSt3setISt4pairIdlESt4lessIS2_EN14HighsNodeQueue16NodesetAllocatorIS2_EEENS5_20GlobalOperatorDeleteEEE", !417, i64 0}
!417 = !{!"_ZTSSt10_Head_baseILm0EPSt3setISt4pairIdlESt4lessIS2_EN14HighsNodeQueue16NodesetAllocatorIS2_EEELb0EE", !6, i64 0}
!418 = !{!"_ZTS22HighsPrimaDualIntegral", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32}
!419 = !{!"_ZTS13HighsDebugSol"}
!420 = !{!13, !63, i64 1588}
!421 = !{!422, !6, i64 0}
!422 = !{!"_ZTSZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiE3$_2", !6, i64 0}
!423 = !{!424, !6, i64 0}
!424 = !{!"_ZTSZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiE3$_3", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!425 = !{!426, !6, i64 0}
!426 = !{!"_ZTSZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiE3$_4", !6, i64 0, !6, i64 8, !6, i64 16}
!427 = !{i64 0, i64 8, !80, i64 8, i64 8, !80}
!428 = !{!429, !6, i64 0}
!429 = !{!"_ZTSZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiE3$_6", !6, i64 0, !6, i64 8}
!430 = !{!431, !6, i64 0}
!431 = !{!"_ZTSZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiE3$_7", !6, i64 0, !6, i64 8, !6, i64 16}


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

%struct.HighsTripletTreeSlicePreOrder = type { %class.HighsMatrixSlice.base.109, [4 x i8] }
%class.HighsMatrixSlice.base.109 = type <{ ptr, ptr, ptr, ptr, i32 }>
%"class.HighsMatrixSlice<HighsTripletTreeSlicePreOrder>::iterator" = type <{ %class.HighsSliceNonzero, ptr, ptr, %"class.std::vector.5", i32, [4 x i8] }>
%class.HighsSliceNonzero = type { ptr, ptr }
%"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 }
%struct.HighsTripletPositionSlice = type { %class.HighsMatrixSlice.base.420, [4 x i8] }
%class.HighsMatrixSlice.base.420 = type <{ ptr, ptr, ptr, i32 }>
%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator" = type <{ %class.HighsSliceNonzero, ptr, i32, [4 x i8] }>
%class.anon.497 = type { ptr }
%"struct.std::_Bit_reference" = type { ptr, i64 }
%struct.HighsEmptySlice = type { i8 }
%class.anon.498 = type { ptr, ptr }
%"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 }
%"class.__gnu_cxx::__normal_iterator.404" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%class.anon.499 = type { ptr }
%class.anon.500 = type { ptr, ptr, ptr, ptr }
%class.anon.501 = type { ptr, ptr, ptr }
%class.anon.502 = type { ptr }
%class.HighsCDouble = type { double, double }
%class.anon.503 = type { ptr, ptr }
%class.anon.504 = type { ptr, ptr, ptr }

@.str.55 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [17 x i8], align 1
@__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi = external hidden unnamed_addr constant [84 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [20 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI12HighsVarTypeSaIS0_EEixEm(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 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK20HighsLinearSumBounds11getSumUpperEi(ptr noundef nonnull align 8 dereferenceable(240), i32 noundef) 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: mustprogress uwtable
declare dso_local void @_ZNK8presolve9HPresolve12getRowVectorEi(ptr dead_on_unwind noalias writable sret(%struct.HighsTripletTreeSlicePreOrder) align 8, ptr noundef nonnull align 8 dereferenceable(1720), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE5beginEv(ptr dead_on_unwind noalias writable sret(%"class.HighsMatrixSlice<HighsTripletTreeSlicePreOrder>::iterator") align 8, ptr noundef nonnull align 8 dereferenceable(36)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE3endEv(ptr dead_on_unwind noalias writable sret(%"class.HighsMatrixSlice<HighsTripletTreeSlicePreOrder>::iterator") align 8, ptr noundef nonnull align 8 dereferenceable(36)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(60), ptr noundef nonnull align 8 dereferenceable(60)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(60) ptr @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(60)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(60)) unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_Z13fractionalityIdET_S0_PS0_(double noundef, ptr noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8presolve9HPresolve22updateColImpliedBoundsEiid(ptr noundef nonnull align 8 dereferenceable(1720), i32 noundef, i32 noundef, double 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 void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) 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 uwtable
declare dso_local void @_ZN8presolve9HPresolve8storeRowEi(ptr noundef nonnull align 8 dereferenceable(1720), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK8presolve9HPresolve12getStoredRowEv(ptr dead_on_unwind noalias writable sret(%struct.HighsTripletPositionSlice) align 8, ptr noundef nonnull align 8 dereferenceable(1720)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE5beginEv(ptr dead_on_unwind noalias writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8, ptr noundef nonnull align 8 dereferenceable(28)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE3endEv(ptr dead_on_unwind noalias writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8, ptr noundef nonnull align 8 dereferenceable(28)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28), ptr noundef nonnull align 8 dereferenceable(28)) local_unnamed_addr #1 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN8presolve9HPresolve11checkLimitsERNS_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 @_ZN8presolve19HighsPostsolveStack12redundantRowEi(ptr noundef nonnull align 8 dereferenceable(224), i32 noundef) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK12HighsCDoublegtEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

declare void @_ZN17HPresolveAnalysis20startPresolveRuleLogEi(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt7signbitd(double noundef) local_unnamed_addr #1

declare void @_ZN17HPresolveAnalysis19stopPresolveRuleLogEi(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) local_unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %2) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca i32, align 4
  %5 = alloca i8, align 1
  %6 = alloca %class.anon.497, align 8
  %7 = alloca double, align 8
  %8 = alloca %"struct.std::_Bit_reference", align 8
  %9 = alloca %struct.HighsTripletPositionSlice, align 8
  %10 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %11 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %12 = alloca %struct.HighsTripletPositionSlice, align 8
  %13 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %14 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %15 = alloca %struct.HighsTripletPositionSlice, align 8
  %16 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %17 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %18 = alloca %struct.HighsEmptySlice, align 1
  %19 = alloca %class.anon.498, align 8
  %20 = alloca %"class.std::vector.20", align 8
  %21 = alloca %struct.HighsTripletPositionSlice, align 8
  %22 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %23 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %24 = alloca double, align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.404", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %28 = alloca %"class.std::vector.20", align 8
  %29 = alloca %"class.std::vector.5", align 8
  %30 = alloca %struct.HighsTripletPositionSlice, align 8
  %31 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %32 = alloca %"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator", align 8
  %33 = alloca double, align 8
  %34 = alloca i32, align 4
  %35 = alloca %class.anon.499, align 8
  %36 = alloca %class.anon.500, align 8
  %37 = alloca %class.anon.501, align 8
  %38 = alloca %class.anon.502, align 8
  %39 = alloca %class.HighsCDouble, align 8
  %40 = alloca %class.HighsCDouble, align 8
  %41 = alloca %class.HighsCDouble, align 8
  %42 = alloca %class.HighsCDouble, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca i8, align 1
  %47 = alloca i8, align 1
  %48 = alloca i8, align 1
  %49 = alloca %class.anon.503, align 8
  %50 = alloca %class.HighsCDouble, align 8
  %51 = alloca %class.HighsCDouble, align 8
  %52 = alloca %class.anon.504, align 8
  %53 = alloca %"struct.std::_Bit_reference", align 8
  %54 = alloca %struct.HighsTripletTreeSlicePreOrder, align 8
  %55 = alloca %"class.HighsMatrixSlice<HighsTripletTreeSlicePreOrder>::iterator", align 8
  %56 = alloca %"class.HighsMatrixSlice<HighsTripletTreeSlicePreOrder>::iterator", align 8
  store i32 %2, ptr %4, align 4, !tbaa !5
  %57 = getelementptr inbounds i8, ptr %0, i64 1480
  %58 = sext i32 %2 to i64
  %59 = tail call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %58) #8
  %60 = load i8, ptr %59, align 1, !tbaa !9
  %.not = icmp eq i8 %60, 0
  br i1 %.not, label %62, label %61

61:                                               ; preds = %3
  tail call void @__assert_fail(ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.55, i32 noundef 3211, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi) #9
  unreachable

62:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #8
  %63 = getelementptr inbounds i8, ptr %0, i64 1592
  %64 = getelementptr inbounds i8, ptr %0, i64 1681
  %65 = load i8, ptr %64, align 1, !tbaa !10, !range !75, !noundef !76
  store i8 %65, ptr %5, align 1, !tbaa !77
  %66 = getelementptr inbounds i8, ptr %0, i64 256
  %67 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %58) #8
  %68 = load i32, ptr %67, align 4, !tbaa !5
  switch i32 %68, label %92 [
    i32 0, label %69
    i32 1, label %90
  ]

69:                                               ; preds = %62
  %70 = load ptr, ptr %0, align 8, !tbaa !78
  %71 = getelementptr inbounds i8, ptr %70, i64 104
  %72 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %71, i64 noundef %58) #8
  %73 = load double, ptr %72, align 8, !tbaa !79
  %74 = getelementptr inbounds i8, ptr %0, i64 32
  %75 = load double, ptr %74, align 8, !tbaa !80
  %76 = fneg double %75
  %77 = fcmp olt double %73, %76
  br i1 %77, label %985, label %78

78:                                               ; preds = %69
  %79 = load ptr, ptr %0, align 8, !tbaa !78
  %80 = getelementptr inbounds i8, ptr %79, i64 80
  %81 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %80, i64 noundef %58) #8
  %82 = load double, ptr %81, align 8, !tbaa !79
  %83 = load double, ptr %74, align 8, !tbaa !80
  %84 = fcmp ogt double %82, %83
  br i1 %84, label %985, label %85

85:                                               ; preds = %78
  %86 = trunc nuw i8 %65 to i1
  br i1 %86, label %87, label %.critedge464

87:                                               ; preds = %85
  tail call void @_ZN17HPresolveAnalysis20startPresolveRuleLogEi(ptr noundef nonnull align 8 dereferenceable(128) %63, i32 noundef 0)
  tail call void @_ZN8presolve19HighsPostsolveStack12redundantRowEi(ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %2)
  tail call void @_ZN8presolve9HPresolve14markRowDeletedEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %2)
  store i8 %65, ptr %64, align 1, !tbaa !10
  tail call void @_ZN17HPresolveAnalysis19stopPresolveRuleLogEi(ptr noundef nonnull align 8 dereferenceable(128) %63, i32 noundef 0)
  br label %88

.critedge464:                                     ; preds = %85
  tail call void @_ZN8presolve19HighsPostsolveStack12redundantRowEi(ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %2)
  tail call void @_ZN8presolve9HPresolve14markRowDeletedEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %2)
  store i8 %65, ptr %64, align 1, !tbaa !10
  br label %88

88:                                               ; preds = %.critedge464, %87
  %89 = tail call noundef i32 @_ZN8presolve9HPresolve11checkLimitsERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1)
  br label %985

90:                                               ; preds = %62
  %91 = tail call noundef i32 @_ZN8presolve9HPresolve12singletonRowERNS_19HighsPostsolveStackEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %2)
  br label %985

92:                                               ; preds = %62
  %93 = getelementptr inbounds i8, ptr %0, i64 688
  %94 = tail call noundef double @_ZNK20HighsLinearSumBounds11getSumUpperEi(ptr noundef nonnull align 8 dereferenceable(240) %93, i32 noundef %2)
  %95 = tail call noundef double @_ZNK20HighsLinearSumBounds11getSumLowerEi(ptr noundef nonnull align 8 dereferenceable(240) %93, i32 noundef %2)
  %96 = load ptr, ptr %0, align 8, !tbaa !78
  %97 = getelementptr inbounds i8, ptr %96, i64 104
  %98 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %97, i64 noundef %58) #8
  %99 = load double, ptr %98, align 8, !tbaa !79
  %100 = getelementptr inbounds i8, ptr %0, i64 32
  %101 = load double, ptr %100, align 8, !tbaa !80
  %102 = fadd double %99, %101
  %103 = fcmp ogt double %95, %102
  br i1 %103, label %985, label %104

104:                                              ; preds = %92
  %105 = load ptr, ptr %0, align 8, !tbaa !78
  %106 = getelementptr inbounds i8, ptr %105, i64 80
  %107 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %106, i64 noundef %58) #8
  %108 = load double, ptr %107, align 8, !tbaa !79
  %109 = load double, ptr %100, align 8, !tbaa !80
  %110 = fsub double %108, %109
  %111 = fcmp olt double %94, %110
  br i1 %111, label %985, label %112

112:                                              ; preds = %104
  %113 = load ptr, ptr %0, align 8, !tbaa !78
  %114 = getelementptr inbounds i8, ptr %113, i64 80
  %115 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %114, i64 noundef %58) #8
  %116 = load double, ptr %115, align 8, !tbaa !79
  %117 = load double, ptr %100, align 8, !tbaa !80
  %118 = fsub double %116, %117
  %119 = fcmp ult double %95, %118
  br i1 %119, label %133, label %120

120:                                              ; preds = %112
  %121 = load ptr, ptr %0, align 8, !tbaa !78
  %122 = getelementptr inbounds i8, ptr %121, i64 104
  %123 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %122, i64 noundef %58) #8
  %124 = load double, ptr %123, align 8, !tbaa !79
  %125 = load double, ptr %100, align 8, !tbaa !80
  %126 = fadd double %124, %125
  %127 = fcmp ugt double %94, %126
  br i1 %127, label %133, label %128

128:                                              ; preds = %120
  %129 = trunc nuw i8 %65 to i1
  br i1 %129, label %130, label %.critedge466

130:                                              ; preds = %128
  tail call void @_ZN17HPresolveAnalysis20startPresolveRuleLogEi(ptr noundef nonnull align 8 dereferenceable(128) %63, i32 noundef 2)
  tail call void @_ZN8presolve19HighsPostsolveStack12redundantRowEi(ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %2)
  tail call void @_ZN8presolve9HPresolve9removeRowEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %2)
  store i8 %65, ptr %64, align 1, !tbaa !10
  tail call void @_ZN17HPresolveAnalysis19stopPresolveRuleLogEi(ptr noundef nonnull align 8 dereferenceable(128) %63, i32 noundef 2)
  br label %131

.critedge466:                                     ; preds = %128
  tail call void @_ZN8presolve19HighsPostsolveStack12redundantRowEi(ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %2)
  tail call void @_ZN8presolve9HPresolve9removeRowEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %2)
  store i8 %65, ptr %64, align 1, !tbaa !10
  br label %131

131:                                              ; preds = %.critedge466, %130
  %132 = tail call noundef i32 @_ZN8presolve9HPresolve11checkLimitsERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1)
  br label %985

133:                                              ; preds = %120, %112
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #8
  store ptr %0, ptr %6, align 8, !tbaa !81
  %134 = load ptr, ptr %0, align 8, !tbaa !78
  %135 = getelementptr inbounds i8, ptr %134, i64 104
  %136 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %135, i64 noundef %58) #8
  %137 = load double, ptr %136, align 8, !tbaa !79
  %138 = load ptr, ptr %0, align 8, !tbaa !78
  %139 = getelementptr inbounds i8, ptr %138, i64 80
  %140 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %139, i64 noundef %58) #8
  %141 = load double, ptr %140, align 8, !tbaa !79
  %142 = load ptr, ptr %0, align 8, !tbaa !78
  %143 = getelementptr inbounds i8, ptr %142, i64 80
  %144 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %143, i64 noundef %58) #8
  %145 = load double, ptr %144, align 8, !tbaa !79
  %146 = load ptr, ptr %0, align 8, !tbaa !78
  %147 = getelementptr inbounds i8, ptr %146, i64 104
  %148 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %147, i64 noundef %58) #8
  %149 = load double, ptr %148, align 8, !tbaa !79
  %150 = fcmp une double %145, %149
  br i1 %150, label %151, label %180

151:                                              ; preds = %133
  %152 = tail call noundef zeroext i1 @_ZNK8presolve9HPresolve24isImpliedEquationAtLowerEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %2)
  br i1 %152, label %153, label %164

153:                                              ; preds = %151
  %154 = load ptr, ptr %0, align 8, !tbaa !78
  %155 = getelementptr inbounds i8, ptr %154, i64 80
  %156 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %155, i64 noundef %58) #8
  %157 = load double, ptr %156, align 8, !tbaa !79
  %158 = load ptr, ptr %0, align 8, !tbaa !78
  %159 = getelementptr inbounds i8, ptr %158, i64 104
  %160 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %159, i64 noundef %58) #8
  store double %157, ptr %160, align 8, !tbaa !79
  tail call void @_ZN8presolve9HPresolve18changeRowDualLowerEid(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %2, double noundef 0xFFF0000000000000)
  %161 = getelementptr inbounds i8, ptr %0, i64 24
  %162 = load ptr, ptr %161, align 8, !tbaa !83
  %163 = icmp eq ptr %162, null
  br i1 %163, label %.sink.split, label %180

164:                                              ; preds = %151
  %165 = tail call noundef zeroext i1 @_ZNK8presolve9HPresolve24isImpliedEquationAtUpperEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %2)
  br i1 %165, label %166, label %180

166:                                              ; preds = %164
  %167 = load ptr, ptr %0, align 8, !tbaa !78
  %168 = getelementptr inbounds i8, ptr %167, i64 104
  %169 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %168, i64 noundef %58) #8
  %170 = load double, ptr %169, align 8, !tbaa !79
  %171 = load ptr, ptr %0, align 8, !tbaa !78
  %172 = getelementptr inbounds i8, ptr %171, i64 80
  %173 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %172, i64 noundef %58) #8
  store double %170, ptr %173, align 8, !tbaa !79
  tail call void @_ZN8presolve9HPresolve18changeRowDualUpperEid(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %2, double noundef 0x7FF0000000000000)
  %174 = getelementptr inbounds i8, ptr %0, i64 24
  %175 = load ptr, ptr %174, align 8, !tbaa !83
  %176 = icmp eq ptr %175, null
  br i1 %176, label %.sink.split, label %180

.sink.split:                                      ; preds = %166, %153
  %.sink468 = phi i64 [ 592, %153 ], [ 616, %166 ]
  %177 = getelementptr inbounds i8, ptr %0, i64 %.sink468
  %178 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %177, i64 noundef %58) #8
  %179 = load i32, ptr %178, align 4, !tbaa !5
  call void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_0clEii"(ptr noundef nonnull align 8 dereferenceable(8) %6, i32 noundef %179, i32 noundef %2)
  br label %180

180:                                              ; preds = %.sink.split, %153, %166, %164, %133
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #8
  %181 = load ptr, ptr %0, align 8, !tbaa !78
  %182 = getelementptr inbounds i8, ptr %181, i64 104
  %183 = load i32, ptr %4, align 4, !tbaa !5
  %184 = sext i32 %183 to i64
  %185 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %182, i64 noundef %184) #8
  %186 = load double, ptr %185, align 8, !tbaa !79
  store double %186, ptr %7, align 8, !tbaa !79
  %187 = load ptr, ptr %0, align 8, !tbaa !78
  %188 = getelementptr inbounds i8, ptr %187, i64 80
  %189 = load i32, ptr %4, align 4, !tbaa !5
  %190 = sext i32 %189 to i64
  %191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %188, i64 noundef %190) #8
  %192 = load double, ptr %191, align 8, !tbaa !79
  %193 = load i32, ptr %4, align 4, !tbaa !5
  %194 = sext i32 %193 to i64
  %195 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %194) #8
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = icmp eq i32 %196, 2
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #8
  %198 = load double, ptr %7, align 8
  %199 = fcmp oeq double %192, %198
  %or.cond377 = select i1 %197, i1 %199, i1 false
  br i1 %or.cond377, label %200, label %.critedge

200:                                              ; preds = %180
  %201 = getelementptr inbounds i8, ptr %0, i64 1640
  %202 = call { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %201, i64 noundef 9)
  %203 = extractvalue { ptr, i64 } %202, 0
  store ptr %203, ptr %8, align 8
  %204 = getelementptr inbounds i8, ptr %8, i64 8
  %205 = extractvalue { ptr, i64 } %202, 1
  store i64 %205, ptr %204, align 8
  %206 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %8) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #8
  br i1 %206, label %207, label %217

207:                                              ; preds = %200
  %208 = fcmp oeq double %141, %137
  br i1 %208, label %214, label %209

209:                                              ; preds = %207
  %210 = fcmp une double %137, 0x7FF0000000000000
  br i1 %210, label %214, label %211

211:                                              ; preds = %209
  %212 = fcmp une double %141, 0xFFF0000000000000
  br i1 %212, label %214, label %213

213:                                              ; preds = %211
  call void @__assert_fail(ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.55, i32 noundef 3312, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi) #9
  unreachable

214:                                              ; preds = %211, %209, %207
  %.0256 = phi i32 [ 2, %207 ], [ 1, %209 ], [ 0, %211 ]
  %215 = load i32, ptr %4, align 4, !tbaa !5
  %216 = call noundef i32 @_ZN8presolve9HPresolve11doubletonEqERNS_19HighsPostsolveStackEiNS1_7RowTypeE(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %215, i32 noundef %.0256)
  br label %983

.critedge:                                        ; preds = %180
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #8
  br label %217

217:                                              ; preds = %.critedge, %200
  %218 = getelementptr inbounds i8, ptr %0, i64 280
  %219 = load i32, ptr %4, align 4, !tbaa !5
  %220 = sext i32 %219 to i64
  %221 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %218, i64 noundef %220) #8
  %222 = load i32, ptr %221, align 4, !tbaa !5
  %.not336 = icmp eq i32 %222, 0
  br i1 %.not336, label %223, label %229

223:                                              ; preds = %217
  %224 = getelementptr inbounds i8, ptr %0, i64 304
  %225 = load i32, ptr %4, align 4, !tbaa !5
  %226 = sext i32 %225 to i64
  %227 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %224, i64 noundef %226) #8
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %.not337 = icmp eq i32 %228, 0
  br i1 %.not337, label %872, label %229

229:                                              ; preds = %223, %217
  %230 = load double, ptr %7, align 8, !tbaa !79
  %231 = fcmp oeq double %192, %230
  br i1 %231, label %232, label %613

232:                                              ; preds = %229
  %233 = fcmp une double %95, 0xFFF0000000000000
  %234 = fcmp une double %94, 0x7FF0000000000000
  %or.cond = and i1 %234, %233
  br i1 %or.cond, label %235, label %.thread394

235:                                              ; preds = %232
  %236 = fadd double %94, %95
  %237 = call double @llvm.fmuladd.f64(double %230, double -2.000000e+00, double %236)
  %238 = call noundef double @_ZSt3absd(double noundef %237)
  %239 = getelementptr inbounds i8, ptr %0, i64 8
  %240 = load ptr, ptr %239, align 8, !tbaa !84
  %241 = getelementptr inbounds i8, ptr %240, i64 264
  %242 = load double, ptr %241, align 8, !tbaa !85
  %243 = fcmp ugt double %238, %242
  br i1 %243, label %.thread394, label %244

244:                                              ; preds = %235
  %245 = load double, ptr %7, align 8, !tbaa !79
  %246 = fsub double %94, %245
  %247 = call noundef double @_ZSt3absd(double noundef %246)
  %248 = load i32, ptr %4, align 4, !tbaa !5
  call void @_ZN8presolve9HPresolve8storeRowEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %248)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8
  call void @_ZNK8presolve9HPresolve12getStoredRowEv(ptr dead_on_unwind nonnull writable sret(%struct.HighsTripletPositionSlice) align 8 %9, ptr noundef nonnull align 8 dereferenceable(1720) %0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #8
  call void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE5beginEv(ptr dead_on_unwind nonnull writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %10, ptr noundef nonnull align 8 dereferenceable(28) %9)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #8
  call void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE3endEv(ptr dead_on_unwind nonnull writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %11, ptr noundef nonnull align 8 dereferenceable(28) %9)
  %249 = call noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %10, ptr noundef nonnull align 8 dereferenceable(28) %11)
  br i1 %249, label %.lr.ph423, label %.loopexit

.lr.ph423:                                        ; preds = %244, %288
  %250 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratordeEv(ptr noundef nonnull align 8 dereferenceable(28) %10)
  %251 = call noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %250)
  %252 = call noundef double @_ZSt3absd(double noundef %251)
  %253 = fsub double %252, %247
  %254 = call noundef double @_ZSt3absd(double noundef %253)
  %255 = load ptr, ptr %239, align 8, !tbaa !84
  %256 = getelementptr inbounds i8, ptr %255, i64 264
  %257 = load double, ptr %256, align 8, !tbaa !85
  %258 = fcmp ugt double %254, %257
  br i1 %258, label %288, label %259

259:                                              ; preds = %.lr.ph423
  %260 = load ptr, ptr %0, align 8, !tbaa !78
  %261 = getelementptr inbounds i8, ptr %260, i64 376
  %262 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %250)
  %263 = sext i32 %262 to i64
  %264 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %261, i64 noundef %263) #8
  %265 = load i8, ptr %264, align 1, !tbaa !92
  %266 = icmp eq i8 %265, 1
  br i1 %266, label %267, label %288

267:                                              ; preds = %259
  %268 = load ptr, ptr %0, align 8, !tbaa !78
  %269 = getelementptr inbounds i8, ptr %268, i64 56
  %270 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %250)
  %271 = sext i32 %270 to i64
  %272 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %269, i64 noundef %271) #8
  %273 = load double, ptr %272, align 8, !tbaa !79
  %274 = load ptr, ptr %0, align 8, !tbaa !78
  %275 = getelementptr inbounds i8, ptr %274, i64 32
  %276 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %250)
  %277 = sext i32 %276 to i64
  %278 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %275, i64 noundef %277) #8
  %279 = load double, ptr %278, align 8, !tbaa !79
  %280 = fsub double %273, %279
  %281 = fadd double %280, -1.000000e+00
  %282 = call noundef double @_ZSt3absd(double noundef %281)
  %283 = load double, ptr %100, align 8, !tbaa !80
  %284 = fcmp ugt double %282, %283
  br i1 %284, label %288, label %285

285:                                              ; preds = %267
  %286 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %250)
  %287 = call noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %250)
  br label %.loopexit

288:                                              ; preds = %267, %259, %.lr.ph423
  %289 = call noundef nonnull align 8 dereferenceable(28) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(28) %10)
  %290 = call noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %10, ptr noundef nonnull align 8 dereferenceable(28) %11)
  br i1 %290, label %.lr.ph423, label %.loopexit

.loopexit:                                        ; preds = %288, %244, %285
  %.2262 = phi i32 [ %286, %285 ], [ -1, %244 ], [ -1, %288 ]
  %.2259 = phi double [ %287, %285 ], [ %247, %244 ], [ %247, %288 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #8
  call void @_ZNK8presolve9HPresolve12getStoredRowEv(ptr dead_on_unwind nonnull writable sret(%struct.HighsTripletPositionSlice) align 8 %12, ptr noundef nonnull align 8 dereferenceable(1720) %0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  call void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE5beginEv(ptr dead_on_unwind nonnull writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %13, ptr noundef nonnull align 8 dereferenceable(28) %12)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #8
  call void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE3endEv(ptr dead_on_unwind nonnull writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %14, ptr noundef nonnull align 8 dereferenceable(28) %12)
  %291 = call noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %13, ptr noundef nonnull align 8 dereferenceable(28) %14)
  br i1 %291, label %.lr.ph425, label %.thread390

.lr.ph425:                                        ; preds = %.loopexit, %308
  %292 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratordeEv(ptr noundef nonnull align 8 dereferenceable(28) %13)
  %293 = load ptr, ptr %0, align 8, !tbaa !78
  %294 = getelementptr inbounds i8, ptr %293, i64 32
  %295 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %292)
  %296 = sext i32 %295 to i64
  %297 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %294, i64 noundef %296) #8
  %298 = load double, ptr %297, align 8, !tbaa !79
  %299 = fcmp oeq double %298, 0xFFF0000000000000
  br i1 %299, label %.thread390.thread, label %300

300:                                              ; preds = %.lr.ph425
  %301 = load ptr, ptr %0, align 8, !tbaa !78
  %302 = getelementptr inbounds i8, ptr %301, i64 56
  %303 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %292)
  %304 = sext i32 %303 to i64
  %305 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %302, i64 noundef %304) #8
  %306 = load double, ptr %305, align 8, !tbaa !79
  %307 = fcmp oeq double %306, 0x7FF0000000000000
  br i1 %307, label %.thread390.thread, label %308

308:                                              ; preds = %300
  %309 = call noundef nonnull align 8 dereferenceable(28) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(28) %13)
  %310 = call noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %13, ptr noundef nonnull align 8 dereferenceable(28) %14)
  br i1 %310, label %.lr.ph425, label %.thread390

.thread390.thread:                                ; preds = %300, %.lr.ph425
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  br label %.thread394

.thread390:                                       ; preds = %308, %.loopexit
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  %.not348 = icmp eq i32 %.2262, -1
  br i1 %.not348, label %.thread394, label %311

311:                                              ; preds = %.thread390
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #8
  call void @_ZNK8presolve9HPresolve12getStoredRowEv(ptr dead_on_unwind nonnull writable sret(%struct.HighsTripletPositionSlice) align 8 %15, ptr noundef nonnull align 8 dereferenceable(1720) %0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #8
  call void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE5beginEv(ptr dead_on_unwind nonnull writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %16, ptr noundef nonnull align 8 dereferenceable(28) %15)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #8
  call void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE3endEv(ptr dead_on_unwind nonnull writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %17, ptr noundef nonnull align 8 dereferenceable(28) %15)
  %312 = call noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %16, ptr noundef nonnull align 8 dereferenceable(28) %17)
  br i1 %312, label %.lr.ph431, label %._crit_edge432

.lr.ph431:                                        ; preds = %311
  %313 = getelementptr inbounds i8, ptr %19, i64 8
  br label %316

._crit_edge432:                                   ; preds = %349, %311
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  %314 = load i32, ptr %4, align 4, !tbaa !5
  call void @_ZN8presolve9HPresolve9removeRowEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %314)
  %315 = call noundef i32 @_ZN8presolve9HPresolve11checkLimitsERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1)
  %.not349 = icmp eq i32 %315, 0
  br i1 %.not349, label %352, label %983

316:                                              ; preds = %.lr.ph431, %349
  %317 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratordeEv(ptr noundef nonnull align 8 dereferenceable(28) %16)
  %318 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %317)
  %319 = icmp eq i32 %318, %.2262
  br i1 %319, label %349, label %320

320:                                              ; preds = %316
  %321 = load ptr, ptr %0, align 8, !tbaa !78
  %322 = getelementptr inbounds i8, ptr %321, i64 32
  %323 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %317)
  %324 = sext i32 %323 to i64
  %325 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %322, i64 noundef %324) #8
  %326 = load double, ptr %325, align 8, !tbaa !79
  %327 = load ptr, ptr %0, align 8, !tbaa !78
  %328 = getelementptr inbounds i8, ptr %327, i64 56
  %329 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %317)
  %330 = sext i32 %329 to i64
  %331 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %328, i64 noundef %330) #8
  %332 = load double, ptr %331, align 8, !tbaa !79
  %333 = fcmp oeq double %326, %332
  br i1 %333, label %334, label %343

334:                                              ; preds = %320
  %335 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %317)
  %336 = load ptr, ptr %0, align 8, !tbaa !78
  %337 = getelementptr inbounds i8, ptr %336, i64 32
  %338 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %317)
  %339 = sext i32 %338 to i64
  %340 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %337, i64 noundef %339) #8
  %341 = load double, ptr %340, align 8, !tbaa !79
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #8
  call void @_ZN8presolve19HighsPostsolveStack15removedFixedColI15HighsEmptySliceEEviddRK16HighsMatrixSliceIT_E(ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %335, double noundef %341, double noundef 0.000000e+00, ptr noundef nonnull align 1 dereferenceable(1) %18)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #8
  %342 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %317)
  call void @_ZN8presolve9HPresolve14removeFixedColEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %342)
  br label %349

343:                                              ; preds = %320
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #8
  store ptr %0, ptr %19, align 8, !tbaa !94
  store ptr %1, ptr %313, align 8, !tbaa !96
  %344 = call noundef zeroext i1 @_ZSt7signbitd(double noundef %.2259)
  %345 = call noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %317)
  %346 = call noundef zeroext i1 @_ZSt7signbitd(double noundef %345)
  %347 = xor i1 %344, %346
  %348 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %317)
  %. = select i1 %347, i32 -1, i32 1
  call void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_1clEiii"(ptr noundef nonnull align 8 dereferenceable(16) %19, i32 noundef %348, i32 noundef %.2262, i32 noundef %.)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #8
  br label %349

349:                                              ; preds = %316, %343, %334
  %350 = call noundef nonnull align 8 dereferenceable(28) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(28) %16)
  %351 = call noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %16, ptr noundef nonnull align 8 dereferenceable(28) %17)
  br i1 %351, label %316, label %._crit_edge432

352:                                              ; preds = %._crit_edge432
  %353 = call noundef i32 @_ZN8presolve9HPresolve19removeRowSingletonsERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1)
  br label %983

.thread394:                                       ; preds = %.thread390.thread, %.thread390, %235, %232
  %354 = load i32, ptr %4, align 4, !tbaa !5
  %355 = sext i32 %354 to i64
  %356 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %218, i64 noundef %355) #8
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = getelementptr inbounds i8, ptr %0, i64 304
  %359 = load i32, ptr %4, align 4, !tbaa !5
  %360 = sext i32 %359 to i64
  %361 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %358, i64 noundef %360) #8
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = add nsw i32 %362, %357
  %364 = load i32, ptr %4, align 4, !tbaa !5
  %365 = sext i32 %364 to i64
  %366 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %365) #8
  %367 = load i32, ptr %366, align 4, !tbaa !5
  %368 = add nsw i32 %367, -1
  %.not350 = icmp slt i32 %363, %368
  br i1 %.not350, label %872, label %369

369:                                              ; preds = %.thread394
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  %370 = load i32, ptr %4, align 4, !tbaa !5
  %371 = sext i32 %370 to i64
  %372 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %371) #8
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = sext i32 %373 to i64
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %374)
          to label %375 unwind label %382

375:                                              ; preds = %369
  %376 = load i32, ptr %4, align 4, !tbaa !5
  invoke void @_ZN8presolve9HPresolve8storeRowEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %376)
          to label %377 unwind label %382

377:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #8
  invoke void @_ZNK8presolve9HPresolve12getStoredRowEv(ptr dead_on_unwind nonnull writable sret(%struct.HighsTripletPositionSlice) align 8 %21, ptr noundef nonnull align 8 dereferenceable(1720) %0)
          to label %378 unwind label %384

378:                                              ; preds = %377
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #8
  invoke void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE5beginEv(ptr dead_on_unwind nonnull writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %22, ptr noundef nonnull align 8 dereferenceable(28) %21)
          to label %379 unwind label %386

379:                                              ; preds = %378
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #8
  invoke void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE3endEv(ptr dead_on_unwind nonnull writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %23, ptr noundef nonnull align 8 dereferenceable(28) %21)
          to label %.preheader415 unwind label %388

.preheader415:                                    ; preds = %379
  %380 = call noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %22, ptr noundef nonnull align 8 dereferenceable(28) %23)
  br i1 %380, label %.lr.ph435, label %._crit_edge436.thread

._crit_edge436.thread:                            ; preds = %.preheader415
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #8
  br label %440

._crit_edge436:                                   ; preds = %407
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #8
  %381 = fcmp une double %.1269, 0.000000e+00
  br i1 %381, label %414, label %440

382:                                              ; preds = %414, %375, %369
  %383 = landingpad { ptr, i32 }
          cleanup
  br label %612

384:                                              ; preds = %377
  %385 = landingpad { ptr, i32 }
          cleanup
  br label %612

386:                                              ; preds = %378
  %387 = landingpad { ptr, i32 }
          cleanup
  br label %413

388:                                              ; preds = %379
  %389 = landingpad { ptr, i32 }
          cleanup
  br label %412

.lr.ph435:                                        ; preds = %.preheader415, %407
  %.0266434 = phi i32 [ %.1267, %407 ], [ -1, %.preheader415 ]
  %.0268433 = phi double [ %.1269, %407 ], [ 0.000000e+00, %.preheader415 ]
  %390 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratordeEv(ptr noundef nonnull align 8 dereferenceable(28) %22)
  %391 = load ptr, ptr %0, align 8, !tbaa !78
  %392 = getelementptr inbounds i8, ptr %391, i64 376
  %393 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %390)
  %394 = sext i32 %393 to i64
  %395 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %392, i64 noundef %394) #8
  %396 = load i8, ptr %395, align 1, !tbaa !92
  %397 = icmp eq i8 %396, 0
  br i1 %397, label %398, label %404

398:                                              ; preds = %.lr.ph435
  %399 = fcmp oeq double %.0268433, 0.000000e+00
  br i1 %399, label %401, label %400

400:                                              ; preds = %398
  call void @__assert_fail(ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.55, i32 noundef 3432, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi) #9
  unreachable

401:                                              ; preds = %398
  %402 = call noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %390)
  %403 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %390)
  br label %407

404:                                              ; preds = %.lr.ph435
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #8
  %405 = call noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %390)
  store double %405, ptr %24, align 8, !tbaa !79
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %406 unwind label %410

406:                                              ; preds = %404
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  br label %407

407:                                              ; preds = %406, %401
  %.1269 = phi double [ %402, %401 ], [ %.0268433, %406 ]
  %.1267 = phi i32 [ %403, %401 ], [ %.0266434, %406 ]
  %408 = call noundef nonnull align 8 dereferenceable(28) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(28) %22)
  %409 = call noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %22, ptr noundef nonnull align 8 dereferenceable(28) %23)
  br i1 %409, label %.lr.ph435, label %._crit_edge436

410:                                              ; preds = %404
  %411 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  br label %412

412:                                              ; preds = %410, %388
  %.pn370 = phi { ptr, i32 } [ %411, %410 ], [ %389, %388 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #8
  br label %413

413:                                              ; preds = %412, %386
  %.pn370.pn = phi { ptr, i32 } [ %.pn370, %412 ], [ %387, %386 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #8
  br label %612

414:                                              ; preds = %._crit_edge436
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %415 unwind label %382

415:                                              ; preds = %414
  %416 = getelementptr inbounds i8, ptr %0, i64 8
  %417 = load ptr, ptr %416, align 8, !tbaa !84
  %418 = getelementptr inbounds i8, ptr %417, i64 264
  %419 = load double, ptr %418, align 8, !tbaa !85
  %420 = invoke noundef double @_ZN13HighsIntegers13integralScaleERKSt6vectorIdSaIdEEdd(ptr noundef nonnull align 8 dereferenceable(24) %20, double noundef %419, double noundef %419)
          to label %421 unwind label %436

421:                                              ; preds = %415
  %422 = fcmp une double %420, 0.000000e+00
  %423 = fcmp ole double %420, 1.000000e+03
  %or.cond17 = and i1 %422, %423
  br i1 %or.cond17, label %424, label %.thread407

424:                                              ; preds = %421
  %425 = fmul double %.1269, %420
  %426 = call noundef double @_ZSt3absd(double noundef %425)
  %427 = fdiv double 1.000000e+00, %426
  %428 = fcmp une double %427, 1.000000e+00
  br i1 %428, label %429, label %.thread407

429:                                              ; preds = %424
  invoke void @_ZN8presolve9HPresolve15transformColumnERNS_19HighsPostsolveStackEidd(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %.1267, double noundef %427, double noundef 0.000000e+00)
          to label %430 unwind label %438

430:                                              ; preds = %429
  %431 = invoke noundef zeroext i1 @_ZN8presolve9HPresolve21convertImpliedIntegerEiib(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %.1267, i32 noundef -1, i1 noundef zeroext true)
          to label %432 unwind label %438

432:                                              ; preds = %430
  %433 = fcmp une double %420, 1.000000e+00
  br i1 %433, label %434, label %.thread407

434:                                              ; preds = %432
  %435 = load i32, ptr %4, align 4, !tbaa !5
  invoke void @_ZN8presolve9HPresolve14scaleStoredRowEidb(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %435, double noundef %420, i1 noundef zeroext true)
          to label %.thread407 unwind label %438

436:                                              ; preds = %415
  %437 = landingpad { ptr, i32 }
          cleanup
  br label %612

438:                                              ; preds = %434, %430, %429
  %439 = landingpad { ptr, i32 }
          cleanup
  br label %612

440:                                              ; preds = %._crit_edge436.thread, %._crit_edge436
  %441 = getelementptr inbounds i8, ptr %0, i64 8
  %442 = load ptr, ptr %441, align 8, !tbaa !84
  %443 = getelementptr inbounds i8, ptr %442, i64 264
  %444 = load double, ptr %443, align 8, !tbaa !85
  %445 = invoke noundef double @_ZN13HighsIntegers13integralScaleERKSt6vectorIdSaIdEEdd(ptr noundef nonnull align 8 dereferenceable(24) %20, double noundef %444, double noundef %444)
          to label %446 unwind label %455

446:                                              ; preds = %440
  %447 = fcmp une double %445, 0.000000e+00
  %448 = fcmp ole double %445, 1.000000e+03
  %or.cond19 = and i1 %447, %448
  br i1 %or.cond19, label %449, label %.thread407

449:                                              ; preds = %446
  %450 = load double, ptr %7, align 8, !tbaa !79
  %451 = fmul double %445, %450
  %452 = call noundef double @_Z13fractionalityIdET_S0_PS0_(double noundef %451, ptr noundef null)
  %453 = load double, ptr %100, align 8, !tbaa !80
  %454 = fcmp ogt double %452, %453
  br i1 %454, label %.thread402, label %457

455:                                              ; preds = %440
  %456 = landingpad { ptr, i32 }
          cleanup
  br label %612

457:                                              ; preds = %449
  %458 = call double @llvm.round.f64(double %451)
  %459 = getelementptr inbounds i8, ptr %0, i64 352
  %460 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %459) #8
  %461 = trunc i64 %460 to i32
  %462 = icmp sgt i32 %461, 0
  br i1 %462, label %.lr.ph443, label %._crit_edge444.thread

.lr.ph443:                                        ; preds = %457
  %463 = getelementptr inbounds i8, ptr %0, i64 40
  %wide.trip.count = and i64 %460, 2147483647
  br label %464

464:                                              ; preds = %477, %.lr.ph443
  %indvars.iv = phi i64 [ 0, %.lr.ph443 ], [ %indvars.iv.next, %477 ]
  %.0314441 = phi i32 [ -1, %.lr.ph443 ], [ %.2316, %477 ]
  %.0318440 = phi i64 [ 0, %.lr.ph443 ], [ %.2320, %477 ]
  %465 = icmp eq i64 %.0318440, 0
  %466 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %459, i64 noundef %indvars.iv) #8
  %467 = load i32, ptr %466, align 4, !tbaa !5
  %468 = sext i32 %467 to i64
  %469 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %463, i64 noundef %468) #8
  %470 = load double, ptr %469, align 8, !tbaa !79
  %471 = fmul double %445, %470
  %472 = call double @llvm.round.f64(double %471)
  %473 = call noundef double @_ZSt3absd(double noundef %472)
  %474 = fptosi double %473 to i64
  br i1 %465, label %477, label %475

475:                                              ; preds = %464
  %476 = call noundef i64 @_ZN13HighsIntegers3gcdEll(i64 noundef %474, i64 noundef %.0318440)
  br label %477

477:                                              ; preds = %464, %475
  %478 = phi i64 [ %476, %475 ], [ %474, %464 ]
  %479 = icmp eq i64 %478, 1
  %.not351 = icmp ne i32 %.0314441, -1
  %480 = trunc nuw nsw i64 %indvars.iv to i32
  %spec.select = select i1 %.not351, i32 -1, i32 %480
  %.2320 = select i1 %479, i64 %.0318440, i64 %478
  %.2316 = select i1 %479, i32 %spec.select, i32 %.0314441
  %cond10.not472 = select i1 %479, i1 %.not351, i1 false
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  %or.cond469 = select i1 %cond10.not472, i1 true, i1 %exitcond.not
  br i1 %or.cond469, label %._crit_edge444, label %464, !llvm.loop !97

._crit_edge444:                                   ; preds = %477
  %.not352 = icmp eq i32 %.2316, -1
  br i1 %.not352, label %._crit_edge444.thread, label %481

481:                                              ; preds = %._crit_edge444
  %482 = sext i32 %.2316 to i64
  %483 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %459, i64 noundef %482) #8
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = getelementptr inbounds i8, ptr %0, i64 88
  %486 = sext i32 %484 to i64
  %487 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %485, i64 noundef %486) #8
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = sitofp i64 %.2320 to double
  %490 = fdiv double %458, %489
  %491 = call noundef double @_Z13fractionalityIdET_S0_PS0_(double noundef %490, ptr noundef null)
  %492 = getelementptr inbounds i8, ptr %0, i64 24
  %493 = load ptr, ptr %492, align 8, !tbaa !83
  %494 = getelementptr inbounds i8, ptr %493, i64 224
  %495 = call noundef ptr @_ZNKSt10unique_ptrI18HighsMipSolverDataSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %494) #8
  %496 = getelementptr inbounds i8, ptr %495, i64 26152
  %497 = load double, ptr %496, align 8, !tbaa !99
  %498 = fcmp ugt double %491, %497
  br i1 %498, label %502, label %499

499:                                              ; preds = %481
  invoke void @_ZN8presolve9HPresolve15transformColumnERNS_19HighsPostsolveStackEidd(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %488, double noundef %489, double noundef 0.000000e+00)
          to label %.thread398 unwind label %500

500:                                              ; preds = %499
  %501 = landingpad { ptr, i32 }
          cleanup
  br label %612

502:                                              ; preds = %481
  %503 = getelementptr inbounds i8, ptr %0, i64 40
  %504 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %503, i64 noundef %486) #8
  %505 = load double, ptr %504, align 8, !tbaa !79
  %506 = fmul double %445, %505
  %507 = call double @llvm.round.f64(double %506)
  %508 = fptosi double %507 to i64
  %509 = call noundef i64 @_ZN13HighsIntegers3modEll(i64 noundef %508, i64 noundef %.2320)
  %510 = call noundef i64 @_ZN13HighsIntegers14modularInverseEll(i64 noundef %509, i64 noundef %.2320)
  %511 = sitofp i64 %510 to double
  %512 = fmul double %458, %511
  %513 = call noundef double @_ZN13HighsIntegers3modEdd(double noundef %512, double noundef %489)
  %514 = load ptr, ptr %0, align 8, !tbaa !78
  %515 = getelementptr inbounds i8, ptr %514, i64 32
  %516 = sext i32 %488 to i64
  %517 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %515, i64 noundef %516) #8
  %518 = load double, ptr %517, align 8, !tbaa !79
  %519 = fsub double %518, %513
  %520 = fdiv double %519, %489
  %521 = load double, ptr %100, align 8, !tbaa !80
  %522 = fsub double %520, %521
  %523 = call double @llvm.ceil.f64(double %522)
  %524 = load ptr, ptr %0, align 8, !tbaa !78
  %525 = getelementptr inbounds i8, ptr %524, i64 56
  %526 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %525, i64 noundef %516) #8
  %527 = load double, ptr %526, align 8, !tbaa !79
  %528 = fsub double %527, %513
  %529 = fdiv double %528, %489
  %530 = load double, ptr %100, align 8, !tbaa !80
  %531 = fadd double %530, %529
  %532 = call double @llvm.floor.f64(double %531)
  %533 = fcmp oeq double %523, %532
  br i1 %533, label %534, label %602

534:                                              ; preds = %502
  %535 = call double @llvm.fmuladd.f64(double %523, double %489, double %513)
  %536 = load ptr, ptr %0, align 8, !tbaa !78
  %537 = getelementptr inbounds i8, ptr %536, i64 32
  %538 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %537, i64 noundef %516) #8
  %539 = load double, ptr %538, align 8, !tbaa !79
  %540 = load double, ptr %100, align 8, !tbaa !80
  %541 = fsub double %539, %540
  %542 = fcmp ogt double %535, %541
  br i1 %542, label %544, label %543

543:                                              ; preds = %534
  call void @__assert_fail(ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.55, i32 noundef 3548, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi) #9
  unreachable

544:                                              ; preds = %534
  %545 = load ptr, ptr %0, align 8, !tbaa !78
  %546 = getelementptr inbounds i8, ptr %545, i64 56
  %547 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %546, i64 noundef %516) #8
  %548 = load double, ptr %547, align 8, !tbaa !79
  %549 = load double, ptr %100, align 8, !tbaa !80
  %550 = fadd double %548, %549
  %551 = fcmp olt double %535, %550
  br i1 %551, label %553, label %552

552:                                              ; preds = %544
  call void @__assert_fail(ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.55, i32 noundef 3549, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi) #9
  unreachable

553:                                              ; preds = %544
  %554 = load ptr, ptr %0, align 8, !tbaa !78
  %555 = getelementptr inbounds i8, ptr %554, i64 32
  %556 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %555, i64 noundef %516) #8
  %557 = load double, ptr %556, align 8, !tbaa !79
  %558 = fcmp ogt double %535, %557
  br i1 %558, label %559, label %562

559:                                              ; preds = %553
  invoke void @_ZN8presolve9HPresolve14changeColLowerEid(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %488, double noundef %535)
          to label %562 unwind label %560

560:                                              ; preds = %591, %578, %568, %559
  %561 = landingpad { ptr, i32 }
          cleanup
  br label %612

562:                                              ; preds = %559, %553
  %563 = load ptr, ptr %0, align 8, !tbaa !78
  %564 = getelementptr inbounds i8, ptr %563, i64 56
  %565 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %564, i64 noundef %516) #8
  %566 = load double, ptr %565, align 8, !tbaa !79
  %567 = fcmp olt double %535, %566
  br i1 %567, label %568, label %569

568:                                              ; preds = %562
  invoke void @_ZN8presolve9HPresolve14changeColUpperEid(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %488, double noundef %535)
          to label %569 unwind label %560

569:                                              ; preds = %568, %562
  %570 = load ptr, ptr %0, align 8, !tbaa !78
  %571 = getelementptr inbounds i8, ptr %570, i64 32
  %572 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %571, i64 noundef %516) #8
  %573 = load double, ptr %572, align 8, !tbaa !79
  %574 = fsub double %573, %535
  %575 = call noundef double @_ZSt3absd(double noundef %574)
  %576 = load double, ptr %100, align 8, !tbaa !80
  %577 = fcmp ugt double %575, %576
  br i1 %577, label %581, label %578

578:                                              ; preds = %569
  %579 = invoke noundef zeroext i1 @_ZN8presolve9HPresolve24fixColToLowerOrUnboundedERNS_19HighsPostsolveStackEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %488)
          to label %580 unwind label %560

580:                                              ; preds = %578
  br i1 %579, label %.thread402.sink.split, label %594

581:                                              ; preds = %569
  %582 = load ptr, ptr %0, align 8, !tbaa !78
  %583 = getelementptr inbounds i8, ptr %582, i64 56
  %584 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %583, i64 noundef %516) #8
  %585 = load double, ptr %584, align 8, !tbaa !79
  %586 = fsub double %585, %535
  %587 = call noundef double @_ZSt3absd(double noundef %586)
  %588 = load double, ptr %100, align 8, !tbaa !80
  %589 = fcmp ugt double %587, %588
  br i1 %589, label %590, label %591

590:                                              ; preds = %581
  call void @__assert_fail(ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.55, i32 noundef 3565, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi) #9
  unreachable

591:                                              ; preds = %581
  %592 = invoke noundef zeroext i1 @_ZN8presolve9HPresolve24fixColToUpperOrUnboundedERNS_19HighsPostsolveStackEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %488)
          to label %593 unwind label %560

593:                                              ; preds = %591
  br i1 %592, label %.thread402.sink.split, label %594

594:                                              ; preds = %593, %580
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #8
  %595 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %459) #8
  store ptr %595, ptr %27, align 8
  %596 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %27, i64 noundef %482) #8
  store ptr %596, ptr %26, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #8
  %597 = load ptr, ptr %25, align 8
  %598 = invoke ptr @_ZNSt6vectorIiSaIiEE5eraseEN9__gnu_cxx17__normal_iteratorIPKiS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %459, ptr %597)
          to label %599 unwind label %600

599:                                              ; preds = %594
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  br label %.thread398

600:                                              ; preds = %594
  %601 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  br label %612

602:                                              ; preds = %502
  invoke void @_ZN8presolve9HPresolve15transformColumnERNS_19HighsPostsolveStackEidd(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %488, double noundef %489, double noundef %513)
          to label %.thread398 unwind label %603

603:                                              ; preds = %602
  %604 = landingpad { ptr, i32 }
          cleanup
  br label %612

.thread398:                                       ; preds = %599, %602, %499
  %605 = fdiv double %445, %489
  br label %._crit_edge444.thread

._crit_edge444.thread:                            ; preds = %457, %.thread398, %._crit_edge444
  %.1313 = phi double [ %605, %.thread398 ], [ %445, %._crit_edge444 ], [ %445, %457 ]
  %606 = fcmp une double %.1313, 1.000000e+00
  br i1 %606, label %607, label %.thread411

607:                                              ; preds = %._crit_edge444.thread
  %608 = load i32, ptr %4, align 4, !tbaa !5
  invoke void @_ZN8presolve9HPresolve14scaleStoredRowEidb(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %608, double noundef %.1313, i1 noundef zeroext true)
          to label %.thread411 unwind label %609

609:                                              ; preds = %607
  %610 = landingpad { ptr, i32 }
          cleanup
  br label %612

.thread407:                                       ; preds = %421, %432, %434, %424, %446
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #8
  br label %872

.thread411:                                       ; preds = %607, %._crit_edge444.thread
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #8
  br label %872

.thread402.sink.split:                            ; preds = %593, %580
  %611 = getelementptr inbounds i8, ptr %0, i64 1588
  store i32 2, ptr %611, align 4, !tbaa !415
  br label %.thread402

.thread402:                                       ; preds = %.thread402.sink.split, %449
  %.10 = phi i32 [ 1, %449 ], [ 2, %.thread402.sink.split ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #8
  br label %983

612:                                              ; preds = %455, %500, %560, %600, %603, %609, %436, %438, %384, %413, %382
  %.pn370.pn.pn.pn = phi { ptr, i32 } [ %383, %382 ], [ %.pn370.pn, %413 ], [ %385, %384 ], [ %439, %438 ], [ %437, %436 ], [ %456, %455 ], [ %610, %609 ], [ %501, %500 ], [ %604, %603 ], [ %601, %600 ], [ %561, %560 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #8
  br label %984

613:                                              ; preds = %229
  %614 = load i32, ptr %4, align 4, !tbaa !5
  call void @_ZN8presolve9HPresolve8storeRowEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %614)
  %615 = load i32, ptr %4, align 4, !tbaa !5
  %616 = sext i32 %615 to i64
  %617 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %616) #8
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = load i32, ptr %4, align 4, !tbaa !5
  %620 = sext i32 %619 to i64
  %621 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %218, i64 noundef %620) #8
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = getelementptr inbounds i8, ptr %0, i64 304
  %624 = load i32, ptr %4, align 4, !tbaa !5
  %625 = sext i32 %624 to i64
  %626 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %623, i64 noundef %625) #8
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = add nsw i32 %627, %622
  %629 = icmp eq i32 %618, %628
  br i1 %629, label %630, label %812

630:                                              ; preds = %613
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #8
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #8
  %631 = load i32, ptr %4, align 4, !tbaa !5
  %632 = sext i32 %631 to i64
  %633 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %632) #8
  %634 = load i32, ptr %633, align 4, !tbaa !5
  %635 = sext i32 %634 to i64
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %635)
          to label %636 unwind label %668

636:                                              ; preds = %630
  %637 = load i32, ptr %4, align 4, !tbaa !5
  %638 = sext i32 %637 to i64
  %639 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %638) #8
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = sext i32 %640 to i64
  invoke void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %641)
          to label %642 unwind label %668

642:                                              ; preds = %636
  %643 = load ptr, ptr %0, align 8, !tbaa !78
  %644 = getelementptr inbounds i8, ptr %643, i64 80
  %645 = load i32, ptr %4, align 4, !tbaa !5
  %646 = sext i32 %645 to i64
  %647 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %644, i64 noundef %646) #8
  %648 = load double, ptr %647, align 8, !tbaa !79
  %649 = fcmp oeq double %648, 0xFFF0000000000000
  %650 = getelementptr inbounds i8, ptr %0, i64 8
  %651 = load ptr, ptr %650, align 8
  %652 = getelementptr inbounds i8, ptr %651, i64 264
  %.in = select i1 %649, ptr %100, ptr %652
  %653 = load double, ptr %.in, align 8, !tbaa !79
  %654 = load ptr, ptr %0, align 8, !tbaa !78
  %655 = getelementptr inbounds i8, ptr %654, i64 104
  %656 = load i32, ptr %4, align 4, !tbaa !5
  %657 = sext i32 %656 to i64
  %658 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %655, i64 noundef %657) #8
  %659 = load double, ptr %658, align 8, !tbaa !79
  %660 = fcmp oeq double %659, 0x7FF0000000000000
  %661 = load ptr, ptr %650, align 8
  %662 = getelementptr inbounds i8, ptr %661, i64 264
  %.in338 = select i1 %660, ptr %100, ptr %662
  %663 = load double, ptr %.in338, align 8, !tbaa !79
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #8
  invoke void @_ZNK8presolve9HPresolve12getStoredRowEv(ptr dead_on_unwind nonnull writable sret(%struct.HighsTripletPositionSlice) align 8 %30, ptr noundef nonnull align 8 dereferenceable(1720) %0)
          to label %664 unwind label %670

664:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #8
  invoke void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE5beginEv(ptr dead_on_unwind nonnull writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %31, ptr noundef nonnull align 8 dereferenceable(28) %30)
          to label %665 unwind label %672

665:                                              ; preds = %664
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #8
  invoke void @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE3endEv(ptr dead_on_unwind nonnull writable sret(%"class.HighsMatrixSlice<HighsTripletPositionSlice>::iterator") align 8 %32, ptr noundef nonnull align 8 dereferenceable(28) %30)
          to label %.preheader416 unwind label %674

.preheader416:                                    ; preds = %665
  %666 = call noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %31, ptr noundef nonnull align 8 dereferenceable(28) %32)
  br i1 %666, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %684, %.preheader416
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  %667 = invoke noundef double @_ZN13HighsIntegers13integralScaleERKSt6vectorIdSaIdEEdd(ptr noundef nonnull align 8 dereferenceable(24) %28, double noundef %653, double noundef %663)
          to label %693 unwind label %707

668:                                              ; preds = %636, %630
  %669 = landingpad { ptr, i32 }
          cleanup
  br label %811

670:                                              ; preds = %642
  %671 = landingpad { ptr, i32 }
          cleanup
  br label %811

672:                                              ; preds = %664
  %673 = landingpad { ptr, i32 }
          cleanup
  br label %692

674:                                              ; preds = %665
  %675 = landingpad { ptr, i32 }
          cleanup
  br label %691

.lr.ph:                                           ; preds = %.preheader416, %684
  %676 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratordeEv(ptr noundef nonnull align 8 dereferenceable(28) %31)
  %677 = call noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %676)
  %678 = fcmp une double %677, 0.000000e+00
  br i1 %678, label %680, label %679

679:                                              ; preds = %.lr.ph
  call void @__assert_fail(ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.55, i32 noundef 3604, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi) #9
  unreachable

680:                                              ; preds = %.lr.ph
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #8
  %681 = call noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %676)
  store double %681, ptr %33, align 8, !tbaa !79
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %682 unwind label %687

682:                                              ; preds = %680
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #8
  %683 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %676)
  store i32 %683, ptr %34, align 4, !tbaa !5
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 4 dereferenceable(4) %34)
          to label %684 unwind label %689

684:                                              ; preds = %682
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #8
  %685 = call noundef nonnull align 8 dereferenceable(28) ptr @_ZN16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(28) %31)
  %686 = call noundef zeroext i1 @_ZNK16HighsMatrixSliceI25HighsTripletPositionSliceE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(28) %31, ptr noundef nonnull align 8 dereferenceable(28) %32)
  br i1 %686, label %.lr.ph, label %._crit_edge

687:                                              ; preds = %680
  %688 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  br label %691

689:                                              ; preds = %682
  %690 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #8
  br label %691

691:                                              ; preds = %687, %689, %674
  %.pn341.pn = phi { ptr, i32 } [ %675, %674 ], [ %690, %689 ], [ %688, %687 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #8
  br label %692

692:                                              ; preds = %691, %672
  %.pn341.pn.pn = phi { ptr, i32 } [ %.pn341.pn, %691 ], [ %673, %672 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  br label %811

693:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #8
  store ptr %0, ptr %35, align 8, !tbaa !416
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #8
  store ptr %0, ptr %36, align 8, !tbaa !418
  %694 = getelementptr inbounds i8, ptr %36, i64 8
  store ptr %28, ptr %694, align 8, !tbaa !96
  %695 = getelementptr inbounds i8, ptr %36, i64 16
  store ptr %29, ptr %695, align 8, !tbaa !96
  %696 = getelementptr inbounds i8, ptr %36, i64 24
  store ptr %35, ptr %696, align 8, !tbaa !96
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %37) #8
  store ptr %0, ptr %37, align 8, !tbaa !420
  %697 = getelementptr inbounds i8, ptr %37, i64 8
  store ptr %28, ptr %697, align 8, !tbaa !96
  %698 = getelementptr inbounds i8, ptr %37, i64 16
  store ptr %29, ptr %698, align 8, !tbaa !96
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #8
  store ptr %37, ptr %38, align 8, !tbaa !96
  %699 = fcmp une double %667, 0.000000e+00
  br i1 %699, label %700, label %810

700:                                              ; preds = %693
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %42) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #8
  %701 = load i32, ptr %4, align 4, !tbaa !5
  %702 = invoke noundef zeroext i1 @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_3clEiR12HighsCDoubleS5_S5_S5_RdS6_S6_RbS7_S7_d"(ptr noundef nonnull align 8 dereferenceable(32) %36, i32 noundef %701, ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef nonnull align 8 dereferenceable(16) %41, ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 1 dereferenceable(1) %46, ptr noundef nonnull align 1 dereferenceable(1) %47, ptr noundef nonnull align 1 dereferenceable(1) %48, double noundef %667)
          to label %703 unwind label %709

703:                                              ; preds = %700
  br i1 %702, label %704, label %802

704:                                              ; preds = %703
  %705 = load i8, ptr %48, align 1, !tbaa !77, !range !75, !noundef !76
  %706 = trunc nuw i8 %705 to i1
  br i1 %706, label %808, label %711

707:                                              ; preds = %._crit_edge
  %708 = landingpad { ptr, i32 }
          cleanup
  br label %811

709:                                              ; preds = %805, %802, %700
  %710 = landingpad { ptr, i32 }
          cleanup
  br label %809

711:                                              ; preds = %704
  %712 = load i8, ptr %46, align 1, !tbaa !77, !range !75, !noundef !76
  %713 = trunc nuw i8 %712 to i1
  %714 = load i8, ptr %47, align 1, !range !75
  %715 = trunc nuw i8 %714 to i1
  %716 = select i1 %713, i1 %715, i1 false
  br i1 %716, label %737, label %717

717:                                              ; preds = %711
  br i1 %713, label %718, label %726

718:                                              ; preds = %717
  %719 = load ptr, ptr %0, align 8, !tbaa !78
  %720 = getelementptr inbounds i8, ptr %719, i64 104
  %721 = load i32, ptr %4, align 4, !tbaa !5
  %722 = sext i32 %721 to i64
  %723 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %720, i64 noundef %722) #8
  %724 = load double, ptr %723, align 8, !tbaa !79
  %725 = fcmp oeq double %724, 0x7FF0000000000000
  br i1 %725, label %737, label %._crit_edge453

._crit_edge453:                                   ; preds = %718
  %.pre = load i8, ptr %47, align 1, !tbaa !77, !range !75
  br label %726

726:                                              ; preds = %._crit_edge453, %717
  %727 = phi i8 [ %.pre, %._crit_edge453 ], [ %714, %717 ]
  %728 = trunc nuw i8 %727 to i1
  br i1 %728, label %729, label %802

729:                                              ; preds = %726
  %730 = load ptr, ptr %0, align 8, !tbaa !78
  %731 = getelementptr inbounds i8, ptr %730, i64 80
  %732 = load i32, ptr %4, align 4, !tbaa !5
  %733 = sext i32 %732 to i64
  %734 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %731, i64 noundef %733) #8
  %735 = load double, ptr %734, align 8, !tbaa !79
  %736 = fcmp oeq double %735, 0xFFF0000000000000
  br i1 %736, label %737, label %802

737:                                              ; preds = %729, %718, %711
  %738 = load i32, ptr %4, align 4, !tbaa !5
  %.sroa.034.0.copyload = load double, ptr %39, align 8, !tbaa !79
  %.sroa.235.0..sroa_idx = getelementptr inbounds i8, ptr %39, i64 8
  %.sroa.235.0.copyload = load double, ptr %.sroa.235.0..sroa_idx, align 8, !tbaa !79
  %.sroa.032.0.copyload = load double, ptr %40, align 8, !tbaa !79
  %.sroa.233.0..sroa_idx = getelementptr inbounds i8, ptr %40, i64 8
  %.sroa.233.0.copyload = load double, ptr %.sroa.233.0..sroa_idx, align 8, !tbaa !79
  %739 = load double, ptr %45, align 8, !tbaa !79
  %740 = invoke noundef zeroext i1 @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_5clEi12HighsCDoubleS4_dd"(ptr noundef nonnull align 8 dereferenceable(8) %38, i32 noundef %738, double %.sroa.034.0.copyload, double %.sroa.235.0.copyload, double %.sroa.032.0.copyload, double %.sroa.233.0.copyload, double noundef %667, double noundef %739)
          to label %741 unwind label %764

741:                                              ; preds = %737
  br i1 %740, label %802, label %742

742:                                              ; preds = %741
  br i1 %716, label %743, label %784

743:                                              ; preds = %742
  %744 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoubledVEd(ptr noundef nonnull align 8 dereferenceable(16) %39, double noundef %667)
          to label %745 unwind label %764

745:                                              ; preds = %743
  %746 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoubledVEd(ptr noundef nonnull align 8 dereferenceable(16) %40, double noundef %667)
          to label %747 unwind label %764

747:                                              ; preds = %745
  %748 = load ptr, ptr %0, align 8, !tbaa !78
  %749 = getelementptr inbounds i8, ptr %748, i64 104
  %750 = load i32, ptr %4, align 4, !tbaa !5
  %751 = sext i32 %750 to i64
  %752 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %749, i64 noundef %751) #8
  %753 = load double, ptr %752, align 8, !tbaa !79
  %754 = load double, ptr %100, align 8, !tbaa !80
  %755 = fsub double %753, %754
  %756 = call noundef zeroext i1 @_ZNK12HighsCDoubleltEd(ptr noundef nonnull align 8 dereferenceable(16) %40, double noundef %755)
  br i1 %756, label %757, label %766

757:                                              ; preds = %747
  %758 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %40)
  %759 = load ptr, ptr %0, align 8, !tbaa !78
  %760 = getelementptr inbounds i8, ptr %759, i64 104
  %761 = load i32, ptr %4, align 4, !tbaa !5
  %762 = sext i32 %761 to i64
  %763 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %760, i64 noundef %762) #8
  store double %758, ptr %763, align 8, !tbaa !79
  br label %766

764:                                              ; preds = %800, %766, %745, %743, %737
  %765 = landingpad { ptr, i32 }
          cleanup
  br label %809

766:                                              ; preds = %757, %747
  %767 = load ptr, ptr %0, align 8, !tbaa !78
  %768 = getelementptr inbounds i8, ptr %767, i64 80
  %769 = load i32, ptr %4, align 4, !tbaa !5
  %770 = sext i32 %769 to i64
  %771 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %768, i64 noundef %770) #8
  %772 = load double, ptr %771, align 8, !tbaa !79
  %773 = load double, ptr %100, align 8, !tbaa !80
  %774 = fadd double %772, %773
  %775 = invoke noundef zeroext i1 @_ZNK12HighsCDoublegtEd(ptr noundef nonnull align 8 dereferenceable(16) %39, double noundef %774)
          to label %776 unwind label %764

776:                                              ; preds = %766
  br i1 %775, label %777, label %802

777:                                              ; preds = %776
  %778 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %39)
  %779 = load ptr, ptr %0, align 8, !tbaa !78
  %780 = getelementptr inbounds i8, ptr %779, i64 80
  %781 = load i32, ptr %4, align 4, !tbaa !5
  %782 = sext i32 %781 to i64
  %783 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %780, i64 noundef %782) #8
  store double %778, ptr %783, align 8, !tbaa !79
  br label %802

784:                                              ; preds = %742
  %785 = load i8, ptr %47, align 1, !tbaa !77, !range !75, !noundef !76
  %786 = trunc nuw i8 %785 to i1
  br i1 %786, label %787, label %792

787:                                              ; preds = %784
  %788 = load double, ptr %44, align 8, !tbaa !79
  %789 = load double, ptr %100, align 8, !tbaa !80
  %790 = fsub double %788, %789
  %791 = call noundef zeroext i1 @_ZNK12HighsCDoubleltEd(ptr noundef nonnull align 8 dereferenceable(16) %42, double noundef %790)
  br i1 %791, label %800, label %792

792:                                              ; preds = %787, %784
  %793 = load i8, ptr %46, align 1, !tbaa !77, !range !75, !noundef !76
  %794 = trunc nuw i8 %793 to i1
  br i1 %794, label %795, label %802

795:                                              ; preds = %792
  %796 = load double, ptr %43, align 8, !tbaa !79
  %797 = load double, ptr %100, align 8, !tbaa !80
  %798 = fsub double %796, %797
  %799 = call noundef zeroext i1 @_ZNK12HighsCDoubleltEd(ptr noundef nonnull align 8 dereferenceable(16) %41, double noundef %798)
  br i1 %799, label %800, label %802

800:                                              ; preds = %795, %787
  %801 = load i32, ptr %4, align 4, !tbaa !5
  %.sroa.030.0.copyload = load double, ptr %39, align 8, !tbaa !79
  %.sroa.231.0.copyload = load double, ptr %.sroa.235.0..sroa_idx, align 8, !tbaa !79
  %.sroa.0.0.copyload = load double, ptr %40, align 8, !tbaa !79
  %.sroa.2.0.copyload = load double, ptr %.sroa.233.0..sroa_idx, align 8, !tbaa !79
  invoke void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_4clEi12HighsCDoubleS4_db"(ptr noundef nonnull align 8 dereferenceable(24) %37, i32 noundef %801, double %.sroa.030.0.copyload, double %.sroa.231.0.copyload, double %.sroa.0.0.copyload, double %.sroa.2.0.copyload, double noundef %667, i1 noundef zeroext true)
          to label %802 unwind label %764

802:                                              ; preds = %726, %729, %777, %776, %800, %795, %792, %741, %703
  %803 = load i32, ptr %4, align 4, !tbaa !5
  %804 = invoke noundef double @_ZNK20HighsLinearSumBounds11getSumUpperEi(ptr noundef nonnull align 8 dereferenceable(240) %93, i32 noundef %803)
          to label %805 unwind label %709

805:                                              ; preds = %802
  %806 = load i32, ptr %4, align 4, !tbaa !5
  %807 = invoke noundef double @_ZNK20HighsLinearSumBounds11getSumLowerEi(ptr noundef nonnull align 8 dereferenceable(240) %93, i32 noundef %806)
          to label %808 unwind label %709

808:                                              ; preds = %805, %704
  %.0252 = phi double [ %95, %704 ], [ %807, %805 ]
  %.0248 = phi double [ %94, %704 ], [ %804, %805 ]
  %cond3 = phi i1 [ false, %704 ], [ true, %805 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #8
  br label %810

809:                                              ; preds = %764, %709
  %.pn = phi { ptr, i32 } [ %710, %709 ], [ %765, %764 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #8
  br label %811

810:                                              ; preds = %808, %693
  %.2254 = phi double [ %95, %693 ], [ %.0252, %808 ]
  %.2250 = phi double [ %94, %693 ], [ %.0248, %808 ]
  %cond2 = phi i1 [ true, %693 ], [ %cond3, %808 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #8
  br i1 %cond2, label %812, label %983

811:                                              ; preds = %692, %670, %809, %707, %668
  %.pn341.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %669, %668 ], [ %.pn341.pn.pn, %692 ], [ %671, %670 ], [ %.pn, %809 ], [ %708, %707 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #8
  br label %984

812:                                              ; preds = %810, %613
  %.3255 = phi double [ %.2254, %810 ], [ %95, %613 ]
  %.3251 = phi double [ %.2250, %810 ], [ %94, %613 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %49) #8
  store ptr %0, ptr %49, align 8, !tbaa !422
  %813 = getelementptr inbounds i8, ptr %49, i64 8
  store ptr %4, ptr %813, align 8, !tbaa !96
  %814 = load ptr, ptr %0, align 8, !tbaa !78
  %815 = getelementptr inbounds i8, ptr %814, i64 80
  %816 = load i32, ptr %4, align 4, !tbaa !5
  %817 = sext i32 %816 to i64
  %818 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %815, i64 noundef %817) #8
  %819 = load double, ptr %818, align 8, !tbaa !79
  %820 = fcmp oeq double %819, 0xFFF0000000000000
  %821 = fcmp une double %.3251, 0x7FF0000000000000
  %or.cond21 = and i1 %821, %820
  br i1 %or.cond21, label %822, label %842

822:                                              ; preds = %812
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #8
  %823 = load ptr, ptr %0, align 8, !tbaa !78
  %824 = getelementptr inbounds i8, ptr %823, i64 104
  %825 = load i32, ptr %4, align 4, !tbaa !5
  %826 = sext i32 %825 to i64
  %827 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %824, i64 noundef %826) #8
  %828 = load double, ptr %827, align 8, !tbaa !79
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %50, double noundef %828)
  %829 = load ptr, ptr %0, align 8, !tbaa !78
  %830 = getelementptr inbounds i8, ptr %829, i64 104
  %831 = load i32, ptr %4, align 4, !tbaa !5
  %832 = sext i32 %831 to i64
  %833 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %830, i64 noundef %832) #8
  %834 = load double, ptr %833, align 8, !tbaa !79
  %835 = fsub double %.3251, %834
  call void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_6clER12HighsCDoubleid"(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull align 8 dereferenceable(16) %50, i32 noundef 1, double noundef %835)
  %836 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %50)
  %837 = load ptr, ptr %0, align 8, !tbaa !78
  %838 = getelementptr inbounds i8, ptr %837, i64 104
  %839 = load i32, ptr %4, align 4, !tbaa !5
  %840 = sext i32 %839 to i64
  %841 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %838, i64 noundef %840) #8
  store double %836, ptr %841, align 8, !tbaa !79
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #8
  br label %842

842:                                              ; preds = %822, %812
  %843 = load ptr, ptr %0, align 8, !tbaa !78
  %844 = getelementptr inbounds i8, ptr %843, i64 104
  %845 = load i32, ptr %4, align 4, !tbaa !5
  %846 = sext i32 %845 to i64
  %847 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %844, i64 noundef %846) #8
  %848 = load double, ptr %847, align 8, !tbaa !79
  %849 = fcmp oeq double %848, 0x7FF0000000000000
  %850 = fcmp une double %.3255, 0xFFF0000000000000
  %or.cond23 = and i1 %850, %849
  br i1 %or.cond23, label %851, label %871

851:                                              ; preds = %842
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %51) #8
  %852 = load ptr, ptr %0, align 8, !tbaa !78
  %853 = getelementptr inbounds i8, ptr %852, i64 80
  %854 = load i32, ptr %4, align 4, !tbaa !5
  %855 = sext i32 %854 to i64
  %856 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %853, i64 noundef %855) #8
  %857 = load double, ptr %856, align 8, !tbaa !79
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %51, double noundef %857)
  %858 = load ptr, ptr %0, align 8, !tbaa !78
  %859 = getelementptr inbounds i8, ptr %858, i64 80
  %860 = load i32, ptr %4, align 4, !tbaa !5
  %861 = sext i32 %860 to i64
  %862 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %859, i64 noundef %861) #8
  %863 = load double, ptr %862, align 8, !tbaa !79
  %864 = fsub double %863, %.3255
  call void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_6clER12HighsCDoubleid"(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull align 8 dereferenceable(16) %51, i32 noundef -1, double noundef %864)
  %865 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %51)
  %866 = load ptr, ptr %0, align 8, !tbaa !78
  %867 = getelementptr inbounds i8, ptr %866, i64 80
  %868 = load i32, ptr %4, align 4, !tbaa !5
  %869 = sext i32 %868 to i64
  %870 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %867, i64 noundef %869) #8
  store double %865, ptr %870, align 8, !tbaa !79
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #8
  br label %871

871:                                              ; preds = %851, %842
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #8
  br label %872

872:                                              ; preds = %.thread411, %.thread407, %871, %.thread394, %223
  %873 = load i32, ptr %4, align 4, !tbaa !5
  %874 = call noundef double @_ZNK20HighsLinearSumBounds15getSumUpperOrigEi(ptr noundef nonnull align 8 dereferenceable(240) %93, i32 noundef %873)
  %875 = load i32, ptr %4, align 4, !tbaa !5
  %876 = call noundef double @_ZNK20HighsLinearSumBounds15getSumLowerOrigEi(ptr noundef nonnull align 8 dereferenceable(240) %93, i32 noundef %875)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %52) #8
  store ptr %0, ptr %52, align 8, !tbaa !424
  %877 = getelementptr inbounds i8, ptr %52, i64 8
  store ptr %5, ptr %877, align 8, !tbaa !96
  %878 = getelementptr inbounds i8, ptr %52, i64 16
  store ptr %1, ptr %878, align 8, !tbaa !96
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %53) #8
  %879 = getelementptr inbounds i8, ptr %0, i64 1640
  %880 = call { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %879, i64 noundef 6)
  %881 = extractvalue { ptr, i64 } %880, 0
  store ptr %881, ptr %53, align 8
  %882 = getelementptr inbounds i8, ptr %53, i64 8
  %883 = extractvalue { ptr, i64 } %880, 1
  store i64 %883, ptr %882, align 8
  %884 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %53) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #8
  br i1 %884, label %885, label %931

885:                                              ; preds = %872
  %886 = load ptr, ptr %0, align 8, !tbaa !78
  %887 = getelementptr inbounds i8, ptr %886, i64 80
  %888 = load i32, ptr %4, align 4, !tbaa !5
  %889 = sext i32 %888 to i64
  %890 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %887, i64 noundef %889) #8
  %891 = load double, ptr %890, align 8, !tbaa !79
  %892 = load double, ptr %100, align 8, !tbaa !80
  %893 = fadd double %891, %892
  %894 = fcmp ugt double %874, %893
  br i1 %894, label %908, label %895

895:                                              ; preds = %885
  %896 = load i32, ptr %4, align 4, !tbaa !5
  %897 = load ptr, ptr %0, align 8, !tbaa !78
  %898 = getelementptr inbounds i8, ptr %897, i64 80
  %899 = sext i32 %896 to i64
  %900 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %898, i64 noundef %899) #8
  %901 = load double, ptr %900, align 8, !tbaa !79
  %902 = call noundef i32 @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_7clEiidNS1_7RowTypeE"(ptr noundef nonnull align 8 dereferenceable(24) %52, i32 noundef %896, i32 noundef 1, double noundef %901, i32 noundef 0)
  %.not365 = icmp eq i32 %902, 0
  br i1 %.not365, label %903, label %982

903:                                              ; preds = %895
  %904 = load i32, ptr %4, align 4, !tbaa !5
  %905 = sext i32 %904 to i64
  %906 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %905) #8
  %907 = load i8, ptr %906, align 1, !tbaa !9
  %.not366 = icmp eq i8 %907, 0
  br i1 %.not366, label %931, label %982

908:                                              ; preds = %885
  %909 = load ptr, ptr %0, align 8, !tbaa !78
  %910 = getelementptr inbounds i8, ptr %909, i64 104
  %911 = load i32, ptr %4, align 4, !tbaa !5
  %912 = sext i32 %911 to i64
  %913 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %910, i64 noundef %912) #8
  %914 = load double, ptr %913, align 8, !tbaa !79
  %915 = load double, ptr %100, align 8, !tbaa !80
  %916 = fsub double %914, %915
  %917 = fcmp ult double %876, %916
  br i1 %917, label %931, label %918

918:                                              ; preds = %908
  %919 = load i32, ptr %4, align 4, !tbaa !5
  %920 = load ptr, ptr %0, align 8, !tbaa !78
  %921 = getelementptr inbounds i8, ptr %920, i64 104
  %922 = sext i32 %919 to i64
  %923 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %921, i64 noundef %922) #8
  %924 = load double, ptr %923, align 8, !tbaa !79
  %925 = call noundef i32 @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_7clEiidNS1_7RowTypeE"(ptr noundef nonnull align 8 dereferenceable(24) %52, i32 noundef %919, i32 noundef -1, double noundef %924, i32 noundef 1)
  %.not363 = icmp eq i32 %925, 0
  br i1 %.not363, label %926, label %982

926:                                              ; preds = %918
  %927 = load i32, ptr %4, align 4, !tbaa !5
  %928 = sext i32 %927 to i64
  %929 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %928) #8
  %930 = load i8, ptr %929, align 1, !tbaa !9
  %.not364 = icmp eq i8 %930, 0
  br i1 %.not364, label %931, label %982

931:                                              ; preds = %903, %926, %908, %872
  %932 = load ptr, ptr %0, align 8, !tbaa !78
  %933 = getelementptr inbounds i8, ptr %932, i64 104
  %934 = load i32, ptr %4, align 4, !tbaa !5
  %935 = sext i32 %934 to i64
  %936 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %933, i64 noundef %935) #8
  %937 = load double, ptr %936, align 8, !tbaa !79
  %938 = fcmp une double %937, 0x7FF0000000000000
  br i1 %938, label %942, label %939

939:                                              ; preds = %931
  %940 = load i32, ptr %4, align 4, !tbaa !5
  %941 = call noundef zeroext i1 @_ZNK8presolve9HPresolve24isImpliedEquationAtLowerEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %940)
  br i1 %941, label %942, label %946

942:                                              ; preds = %939, %931
  %943 = load i32, ptr %4, align 4, !tbaa !5
  %944 = call noundef i32 @_ZNK20HighsLinearSumBounds21getNumInfSumLowerOrigEi(ptr noundef nonnull align 8 dereferenceable(240) %93, i32 noundef %943)
  %945 = icmp slt i32 %944, 2
  br i1 %945, label %961, label %946

946:                                              ; preds = %942, %939
  %947 = load ptr, ptr %0, align 8, !tbaa !78
  %948 = getelementptr inbounds i8, ptr %947, i64 80
  %949 = load i32, ptr %4, align 4, !tbaa !5
  %950 = sext i32 %949 to i64
  %951 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %948, i64 noundef %950) #8
  %952 = load double, ptr %951, align 8, !tbaa !79
  %953 = fcmp une double %952, 0xFFF0000000000000
  br i1 %953, label %957, label %954

954:                                              ; preds = %946
  %955 = load i32, ptr %4, align 4, !tbaa !5
  %956 = call noundef zeroext i1 @_ZNK8presolve9HPresolve24isImpliedEquationAtUpperEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %955)
  br i1 %956, label %957, label %980

957:                                              ; preds = %954, %946
  %958 = load i32, ptr %4, align 4, !tbaa !5
  %959 = call noundef i32 @_ZNK20HighsLinearSumBounds21getNumInfSumUpperOrigEi(ptr noundef nonnull align 8 dereferenceable(240) %93, i32 noundef %958)
  %960 = icmp slt i32 %959, 2
  br i1 %960, label %961, label %980

961:                                              ; preds = %957, %942
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %54) #8
  %962 = load i32, ptr %4, align 4, !tbaa !5
  call void @_ZNK8presolve9HPresolve12getRowVectorEi(ptr dead_on_unwind nonnull writable sret(%struct.HighsTripletTreeSlicePreOrder) align 8 %54, ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %962)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %55) #8
  call void @_ZNK16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE5beginEv(ptr dead_on_unwind nonnull writable sret(%"class.HighsMatrixSlice<HighsTripletTreeSlicePreOrder>::iterator") align 8 %55, ptr noundef nonnull align 8 dereferenceable(36) %54)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %56) #8
  invoke void @_ZNK16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE3endEv(ptr dead_on_unwind nonnull writable sret(%"class.HighsMatrixSlice<HighsTripletTreeSlicePreOrder>::iterator") align 8 %56, ptr noundef nonnull align 8 dereferenceable(36) %54)
          to label %.preheader unwind label %965

.preheader:                                       ; preds = %961, %974
  %963 = call noundef zeroext i1 @_ZNK16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorneERKS2_(ptr noundef nonnull align 8 dereferenceable(60) %55, ptr noundef nonnull align 8 dereferenceable(60) %56)
  br i1 %963, label %969, label %964

964:                                              ; preds = %.preheader
  call void @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(60) %56) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %56) #8
  call void @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(60) %55) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %54) #8
  br label %980

965:                                              ; preds = %961
  %966 = landingpad { ptr, i32 }
          cleanup
  br label %979

967:                                              ; preds = %974
  %968 = landingpad { ptr, i32 }
          cleanup
  br label %978

969:                                              ; preds = %.preheader
  %970 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratordeEv(ptr noundef nonnull align 8 dereferenceable(60) %55)
  %971 = load i32, ptr %4, align 4, !tbaa !5
  %972 = call noundef i32 @_ZNK17HighsSliceNonzero5indexEv(ptr noundef nonnull align 8 dereferenceable(16) %970)
  %973 = call noundef double @_ZNK17HighsSliceNonzero5valueEv(ptr noundef nonnull align 8 dereferenceable(16) %970)
  invoke void @_ZN8presolve9HPresolve22updateColImpliedBoundsEiid(ptr noundef nonnull align 8 dereferenceable(1720) %0, i32 noundef %971, i32 noundef %972, double noundef %973)
          to label %974 unwind label %976

974:                                              ; preds = %969
  %975 = invoke noundef nonnull align 8 dereferenceable(60) ptr @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(60) %55)
          to label %.preheader unwind label %967

976:                                              ; preds = %969
  %977 = landingpad { ptr, i32 }
          cleanup
  br label %978

978:                                              ; preds = %976, %967
  %.pn367 = phi { ptr, i32 } [ %968, %967 ], [ %977, %976 ]
  call void @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(60) %56) #8
  br label %979

979:                                              ; preds = %978, %965
  %.pn367.pn = phi { ptr, i32 } [ %.pn367, %978 ], [ %966, %965 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %56) #8
  call void @_ZN16HighsMatrixSliceI29HighsTripletTreeSlicePreOrderE8iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(60) %55) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %52) #8
  br label %984

980:                                              ; preds = %964, %957, %954
  %981 = call noundef i32 @_ZN8presolve9HPresolve11checkLimitsERNS_19HighsPostsolveStackE(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1)
  br label %982

982:                                              ; preds = %926, %903, %895, %918, %980
  %.22 = phi i32 [ %981, %980 ], [ %902, %895 ], [ %925, %918 ], [ 0, %903 ], [ 0, %926 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %52) #8
  br label %983

983:                                              ; preds = %.thread402, %352, %._crit_edge432, %810, %982, %214
  %.23 = phi i32 [ %216, %214 ], [ %.22, %982 ], [ %.10, %.thread402 ], [ 1, %810 ], [ %353, %352 ], [ %315, %._crit_edge432 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  br label %985

984:                                              ; preds = %979, %811, %612
  %.pn370.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn370.pn.pn.pn, %612 ], [ %.pn367.pn, %979 ], [ %.pn341.pn.pn.pn.pn.pn, %811 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #8
  resume { ptr, i32 } %.pn370.pn.pn.pn.pn

985:                                              ; preds = %131, %983, %104, %92, %69, %78, %90, %88
  %.25 = phi i32 [ %91, %90 ], [ %89, %88 ], [ 1, %78 ], [ 1, %69 ], [ %132, %131 ], [ %.23, %983 ], [ 1, %104 ], [ 1, %92 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #8
  ret i32 %.25
}

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_0clEii"(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, i32 noundef) local_unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_1clEiii"(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #7 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 uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN13HighsIntegers3gcdEll(i64 noundef, i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN13HighsIntegers3modEll(i64 noundef, i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN13HighsIntegers14modularInverseEll(i64 noundef, i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN13HighsIntegers3modEdd(double noundef, double noundef) local_unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_3clEiR12HighsCDoubleS5_S5_S5_RdS6_S6_RbS7_S7_d"(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1), double noundef) local_unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_5clEi12HighsCDoubleS4_dd"(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, double, double, double, double, double noundef, double noundef) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoubledVEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK12HighsCDoubleltEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_4clEi12HighsCDoubleS4_db"(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, double, double, double, double, double noundef, i1 noundef zeroext) local_unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_6clER12HighsCDoubleid"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), i32 noundef, double noundef) local_unnamed_addr #7 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @"_ZZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiENK3$_7clEiidNS1_7RowTypeE"(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef, double noundef, i32 noundef) local_unnamed_addr #7 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK20HighsLinearSumBounds21getNumInfSumUpperOrigEi(ptr noundef nonnull align 8 dereferenceable(240), i32 noundef) local_unnamed_addr #1 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 = { 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 #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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { "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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !57, i64 1681}
!11 = !{!"_ZTSN8presolve9HPresolveE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !13, i64 32, !14, i64 40, !18, i64 64, !18, i64 88, !18, i64 112, !18, i64 136, !18, i64 160, !18, i64 184, !18, i64 208, !18, i64 232, !18, i64 256, !18, i64 280, !18, i64 304, !18, i64 328, !18, i64 352, !18, i64 376, !14, i64 400, !14, i64 424, !18, i64 448, !18, i64 472, !14, i64 496, !14, i64 520, !14, i64 544, !14, i64 568, !18, i64 592, !18, i64 616, !22, i64 640, !22, i64 664, !26, i64 688, !26, i64 928, !18, i64 1168, !31, i64 1192, !18, i64 1216, !31, i64 1240, !35, i64 1264, !39, i64 1288, !45, i64 1344, !53, i64 1392, !57, i64 1416, !41, i64 1424, !18, i64 1432, !18, i64 1456, !31, i64 1480, !31, i64 1504, !58, i64 1528, !41, i64 1552, !6, i64 1560, !6, i64 1564, !6, i64 1568, !6, i64 1572, !6, i64 1576, !6, i64 1580, !57, i64 1584, !62, i64 1588, !63, i64 1592}
!12 = !{!"any pointer", !7, i64 0}
!13 = !{!"double", !7, i64 0}
!14 = !{!"_ZTSSt6vectorIdSaIdEE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!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", !12, i64 0, !12, i64 8, !12, i64 16}
!22 = !{!"_ZTSSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!26 = !{!"_ZTS20HighsLinearSumBounds", !27, i64 0, !27, i64 24, !18, i64 48, !18, i64 72, !27, i64 96, !27, i64 120, !18, i64 144, !18, i64 168, !12, i64 192, !12, i64 200, !12, i64 208, !12, i64 216, !12, i64 224, !12, i64 232}
!27 = !{!"_ZTSSt6vectorI12HighsCDoubleSaIS0_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseI12HighsCDoubleSaIS0_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseI12HighsCDoubleSaIS0_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseI12HighsCDoubleSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!31 = !{!"_ZTSSt6vectorIhSaIhEE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!35 = !{!"_ZTSSt6vectorISt4pairIiiESaIS1_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseISt4pairIiiESaIS1_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseISt4pairIiiESaIS1_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseISt4pairIiiESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!39 = !{!"_ZTSSt13unordered_mapIi13HighsHashTreeISt4pairIiiEdESt4hashIiESt8equal_toIiESaIS1_IKiS3_EEE", !40, i64 0}
!40 = !{!"_ZTSSt10_HashtableIiSt4pairIKi13HighsHashTreeIS0_IiiEdEESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE", !12, i64 0, !41, i64 8, !42, i64 16, !41, i64 24, !43, i64 32, !12, i64 48}
!41 = !{!"long", !7, i64 0}
!42 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !12, i64 0}
!43 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !44, i64 0, !41, i64 8}
!44 = !{!"float", !7, i64 0}
!45 = !{!"_ZTSSt3setISt4pairIiiESt4lessIS1_ESaIS1_EE", !46, i64 0}
!46 = !{!"_ZTSSt8_Rb_treeISt4pairIiiES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !47, i64 0}
!47 = !{!"_ZTSNSt8_Rb_treeISt4pairIiiES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !48, i64 0, !50, i64 8}
!48 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt4pairIiiEEE", !49, i64 0}
!49 = !{!"_ZTSSt4lessISt4pairIiiEE"}
!50 = !{!"_ZTSSt15_Rb_tree_header", !51, i64 0, !41, i64 32}
!51 = !{!"_ZTSSt18_Rb_tree_node_base", !52, i64 0, !12, i64 8, !12, i64 16, !12, i64 24}
!52 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!53 = !{!"_ZTSSt6vectorISt23_Rb_tree_const_iteratorISt4pairIiiEESaIS3_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseISt23_Rb_tree_const_iteratorISt4pairIiiEESaIS3_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseISt23_Rb_tree_const_iteratorISt4pairIiiEESaIS3_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseISt23_Rb_tree_const_iteratorISt4pairIiiEESaIS3_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!57 = !{!"bool", !7, i64 0}
!58 = !{!"_ZTSSt6vectorItSaItEE", !59, i64 0}
!59 = !{!"_ZTSSt12_Vector_baseItSaItEE", !60, i64 0}
!60 = !{!"_ZTSNSt12_Vector_baseItSaItEE12_Vector_implE", !61, i64 0}
!61 = !{!"_ZTSNSt12_Vector_baseItSaItEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!62 = !{!"_ZTS19HighsPresolveStatus", !7, i64 0}
!63 = !{!"_ZTS17HPresolveAnalysis", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !6, i64 40, !6, i64 44, !64, i64 48, !57, i64 88, !57, i64 89, !6, i64 92, !6, i64 96, !6, i64 100, !70, i64 104}
!64 = !{!"_ZTSSt6vectorIbSaIbEE", !65, i64 0}
!65 = !{!"_ZTSSt13_Bvector_baseISaIbEE", !66, i64 0}
!66 = !{!"_ZTSNSt13_Bvector_baseISaIbEE13_Bvector_implE", !67, i64 0}
!67 = !{!"_ZTSNSt13_Bvector_baseISaIbEE18_Bvector_impl_dataE", !68, i64 0, !68, i64 16, !12, i64 32}
!68 = !{!"_ZTSSt13_Bit_iterator", !69, i64 0}
!69 = !{!"_ZTSSt18_Bit_iterator_base", !12, i64 0, !6, i64 8}
!70 = !{!"_ZTS16HighsPresolveLog", !71, i64 0}
!71 = !{!"_ZTSSt6vectorI20HighsPresolveRuleLogSaIS0_EE", !72, i64 0}
!72 = !{!"_ZTSSt12_Vector_baseI20HighsPresolveRuleLogSaIS0_EE", !73, i64 0}
!73 = !{!"_ZTSNSt12_Vector_baseI20HighsPresolveRuleLogSaIS0_EE12_Vector_implE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseI20HighsPresolveRuleLogSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!75 = !{i8 0, i8 2}
!76 = !{}
!77 = !{!57, !57, i64 0}
!78 = !{!11, !12, i64 0}
!79 = !{!13, !13, i64 0}
!80 = !{!11, !13, i64 32}
!81 = !{!82, !12, i64 0}
!82 = !{!"_ZTSZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiE3$_0", !12, i64 0}
!83 = !{!11, !12, i64 24}
!84 = !{!11, !12, i64 8}
!85 = !{!86, !13, i64 264}
!86 = !{!"_ZTS18HighsOptionsStruct", !87, i64 8, !87, i64 40, !87, i64 72, !87, i64 104, !13, i64 136, !87, i64 144, !87, i64 176, !6, i64 208, !87, i64 216, !13, i64 248, !13, i64 256, !13, i64 264, !13, i64 272, !13, i64 280, !13, i64 288, !13, i64 296, !13, i64 304, !13, i64 312, !13, i64 320, !13, i64 328, !6, i64 336, !6, i64 340, !6, i64 344, !6, i64 348, !6, i64 352, !6, i64 356, !6, i64 360, !6, i64 364, !6, i64 368, !6, i64 372, !6, i64 376, !6, i64 380, !6, i64 384, !6, i64 388, !87, i64 392, !57, i64 424, !57, i64 425, !57, i64 426, !6, i64 428, !6, i64 432, !87, i64 440, !57, i64 472, !57, i64 473, !57, i64 474, !6, i64 476, !57, i64 480, !57, i64 481, !6, i64 484, !6, i64 488, !13, i64 496, !6, i64 504, !6, i64 508, !6, i64 512, !57, i64 516, !6, i64 520, !57, i64 524, !57, i64 525, !57, i64 526, !57, i64 527, !57, i64 528, !57, i64 529, !57, i64 530, !6, i64 532, !6, i64 536, !6, i64 540, !6, i64 544, !6, i64 548, !6, i64 552, !6, i64 556, !6, i64 560, !6, i64 564, !6, i64 568, !6, i64 572, !6, i64 576, !6, i64 580, !6, i64 584, !6, i64 588, !57, i64 592, !57, i64 593, !57, i64 594, !57, i64 595, !13, i64 600, !13, i64 608, !13, i64 616, !13, i64 624, !13, i64 632, !13, i64 640, !13, i64 648, !13, i64 656, !13, i64 664, !13, i64 672, !13, i64 680, !57, i64 688, !57, i64 689, !57, i64 690, !57, i64 691, !6, i64 692, !13, i64 696, !57, i64 704, !57, i64 705, !87, i64 712, !13, i64 744, !6, i64 752, !6, i64 756, !57, i64 760, !57, i64 761, !57, i64 762, !57, i64 763, !6, i64 764, !6, i64 768, !6, i64 772, !6, i64 776, !6, i64 780, !6, i64 784, !6, i64 788, !6, i64 792, !6, i64 796, !6, i64 800, !6, i64 804, !13, i64 808, !13, i64 816, !13, i64 824, !13, i64 832, !13, i64 840, !57, i64 848, !57, i64 849, !87, i64 856, !57, i64 888, !6, i64 892, !89, i64 896}
!87 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !88, i64 0, !41, i64 8, !7, i64 16}
!88 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !12, i64 0}
!89 = !{!"_ZTS15HighsLogOptions", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !90, i64 48, !12, i64 80, !57, i64 88}
!90 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !91, i64 0, !12, i64 24}
!91 = !{!"_ZTSSt14_Function_base", !7, i64 0, !12, i64 16}
!92 = !{!93, !93, i64 0}
!93 = !{!"_ZTS12HighsVarType", !7, i64 0}
!94 = !{!95, !12, i64 0}
!95 = !{!"_ZTSZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiE3$_1", !12, i64 0, !12, i64 8}
!96 = !{!12, !12, i64 0}
!97 = distinct !{!97, !98}
!98 = !{!"llvm.loop.mustprogress"}
!99 = !{!100, !13, i64 26152}
!100 = !{!"_ZTS18HighsMipSolverData", !12, i64 0, !101, i64 8, !117, i64 688, !130, i64 912, !173, i64 1736, !322, i64 23168, !323, i64 23528, !355, i64 24016, !369, i64 24192, !370, i64 24296, !375, i64 24344, !302, i64 24464, !62, i64 24688, !187, i64 24696, !57, i64 25616, !57, i64 25617, !57, i64 25618, !236, i64 25620, !57, i64 25624, !6, i64 25628, !6, i64 25632, !6, i64 25636, !6, i64 25640, !18, i64 25648, !18, i64 25672, !14, i64 25696, !14, i64 25720, !31, i64 25744, !18, i64 25768, !18, i64 25792, !18, i64 25816, !18, i64 25840, !18, i64 25864, !18, i64 25888, !376, i64 25912, !388, i64 26128, !13, i64 26144, !13, i64 26152, !13, i64 26160, !41, i64 26168, !14, i64 26176, !14, i64 26200, !14, i64 26224, !13, i64 26248, !176, i64 26256, !13, i64 26352, !6, i64 26360, !6, i64 26364, !140, i64 26368, !13, i64 26384, !13, i64 26392, !13, i64 26400, !41, i64 26408, !41, i64 26416, !41, i64 26424, !41, i64 26432, !41, i64 26440, !41, i64 26448, !41, i64 26456, !41, i64 26464, !41, i64 26472, !41, i64 26480, !41, i64 26488, !41, i64 26496, !41, i64 26504, !41, i64 26512, !41, i64 26520, !41, i64 26528, !41, i64 26536, !6, i64 26544, !13, i64 26552, !13, i64 26560, !13, i64 26568, !13, i64 26576, !14, i64 26584, !390, i64 26608, !413, i64 26760, !414, i64 26800}
!101 = !{!"_ZTS12HighsCutPool", !102, i64 0, !14, i64 336, !103, i64 360, !14, i64 384, !14, i64 408, !31, i64 432, !107, i64 456, !109, i64 512, !45, i64 536, !13, i64 584, !13, i64 592, !13, i64 600, !6, i64 608, !6, i64 612, !6, i64 616, !6, i64 620, !6, i64 624, !18, i64 632, !113, i64 656}
!102 = !{!"_ZTS21HighsDynamicRowMatrix", !35, i64 0, !18, i64 24, !14, i64 48, !18, i64 72, !18, i64 96, !18, i64 120, !18, i64 144, !18, i64 168, !18, i64 192, !18, i64 216, !31, i64 240, !45, i64 264, !18, i64 312}
!103 = !{!"_ZTSSt6vectorIsSaIsEE", !104, i64 0}
!104 = !{!"_ZTSSt12_Vector_baseIsSaIsEE", !105, i64 0}
!105 = !{!"_ZTSNSt12_Vector_baseIsSaIsEE12_Vector_implE", !106, i64 0}
!106 = !{!"_ZTSNSt12_Vector_baseIsSaIsEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!107 = !{!"_ZTSSt18unordered_multimapImiSt4hashImESt8equal_toImESaISt4pairIKmiEEE", !108, i64 0}
!108 = !{!"_ZTSSt10_HashtableImSt4pairIKmiESaIS2_ENSt8__detail10_Select1stESt8equal_toImESt4hashImENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb0EEEE", !12, i64 0, !41, i64 8, !42, i64 16, !41, i64 24, !43, i64 32, !12, i64 48}
!109 = !{!"_ZTSSt6vectorIPN11HighsDomain18CutpoolPropagationESaIS2_EE", !110, i64 0}
!110 = !{!"_ZTSSt12_Vector_baseIPN11HighsDomain18CutpoolPropagationESaIS2_EE", !111, i64 0}
!111 = !{!"_ZTSNSt12_Vector_baseIPN11HighsDomain18CutpoolPropagationESaIS2_EE12_Vector_implE", !112, i64 0}
!112 = !{!"_ZTSNSt12_Vector_baseIPN11HighsDomain18CutpoolPropagationESaIS2_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!113 = !{!"_ZTSSt6vectorISt4pairIidESaIS1_EE", !114, i64 0}
!114 = !{!"_ZTSSt12_Vector_baseISt4pairIidESaIS1_EE", !115, i64 0}
!115 = !{!"_ZTSNSt12_Vector_baseISt4pairIidESaIS1_EE12_Vector_implE", !116, i64 0}
!116 = !{!"_ZTSNSt12_Vector_baseISt4pairIidESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!117 = !{!"_ZTS17HighsConflictPool", !6, i64 0, !6, i64 4, !18, i64 8, !103, i64 32, !118, i64 56, !122, i64 80, !35, i64 104, !45, i64 128, !18, i64 176, !126, i64 200}
!118 = !{!"_ZTSSt6vectorIjSaIjEE", !119, i64 0}
!119 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !120, i64 0}
!120 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !121, i64 0}
!121 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!122 = !{!"_ZTSSt6vectorI17HighsDomainChangeSaIS0_EE", !123, i64 0}
!123 = !{!"_ZTSSt12_Vector_baseI17HighsDomainChangeSaIS0_EE", !124, i64 0}
!124 = !{!"_ZTSNSt12_Vector_baseI17HighsDomainChangeSaIS0_EE12_Vector_implE", !125, i64 0}
!125 = !{!"_ZTSNSt12_Vector_baseI17HighsDomainChangeSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!126 = !{!"_ZTSSt6vectorIPN11HighsDomain23ConflictPoolPropagationESaIS2_EE", !127, i64 0}
!127 = !{!"_ZTSSt12_Vector_baseIPN11HighsDomain23ConflictPoolPropagationESaIS2_EE", !128, i64 0}
!128 = !{!"_ZTSNSt12_Vector_baseIPN11HighsDomain23ConflictPoolPropagationESaIS2_EE12_Vector_implE", !129, i64 0}
!129 = !{!"_ZTSNSt12_Vector_baseIPN11HighsDomain23ConflictPoolPropagationESaIS2_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!130 = !{!"_ZTS11HighsDomain", !31, i64 0, !18, i64 24, !35, i64 48, !122, i64 72, !131, i64 96, !135, i64 120, !27, i64 144, !27, i64 168, !18, i64 192, !18, i64 216, !14, i64 240, !31, i64 264, !18, i64 288, !139, i64 312, !12, i64 472, !149, i64 480, !154, i64 560, !57, i64 640, !159, i64 644, !6, i64 652, !18, i64 656, !18, i64 680, !18, i64 704, !160, i64 728, !57, i64 768, !14, i64 776, !14, i64 800}
!131 = !{!"_ZTSSt6vectorIN11HighsDomain6ReasonESaIS1_EE", !132, i64 0}
!132 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain6ReasonESaIS1_EE", !133, i64 0}
!133 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain6ReasonESaIS1_EE12_Vector_implE", !134, i64 0}
!134 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain6ReasonESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!135 = !{!"_ZTSSt6vectorISt4pairIdiESaIS1_EE", !136, i64 0}
!136 = !{!"_ZTSSt12_Vector_baseISt4pairIdiESaIS1_EE", !137, i64 0}
!137 = !{!"_ZTSNSt12_Vector_baseISt4pairIdiESaIS1_EE12_Vector_implE", !138, i64 0}
!138 = !{!"_ZTSNSt12_Vector_baseISt4pairIdiESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!139 = !{!"_ZTSN11HighsDomain20ObjectivePropagationE", !12, i64 0, !12, i64 8, !12, i64 16, !140, i64 24, !6, i64 40, !13, i64 48, !57, i64 56, !141, i64 64, !35, i64 88, !14, i64 112, !145, i64 136}
!140 = !{!"_ZTS12HighsCDouble", !13, i64 0, !13, i64 8}
!141 = !{!"_ZTSSt6vectorIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE", !142, i64 0}
!142 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE", !143, i64 0}
!143 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE12_Vector_implE", !144, i64 0}
!144 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!145 = !{!"_ZTSSt6vectorIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE", !146, i64 0}
!146 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE", !147, i64 0}
!147 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE12_Vector_implE", !148, i64 0}
!148 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!149 = !{!"_ZTSSt5dequeIN11HighsDomain18CutpoolPropagationESaIS1_EE", !150, i64 0}
!150 = !{!"_ZTSSt11_Deque_baseIN11HighsDomain18CutpoolPropagationESaIS1_EE", !151, i64 0}
!151 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain18CutpoolPropagationESaIS1_EE11_Deque_implE", !152, i64 0}
!152 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain18CutpoolPropagationESaIS1_EE16_Deque_impl_dataE", !12, i64 0, !41, i64 8, !153, i64 16, !153, i64 48}
!153 = !{!"_ZTSSt15_Deque_iteratorIN11HighsDomain18CutpoolPropagationERS1_PS1_E", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24}
!154 = !{!"_ZTSSt5dequeIN11HighsDomain23ConflictPoolPropagationESaIS1_EE", !155, i64 0}
!155 = !{!"_ZTSSt11_Deque_baseIN11HighsDomain23ConflictPoolPropagationESaIS1_EE", !156, i64 0}
!156 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain23ConflictPoolPropagationESaIS1_EE11_Deque_implE", !157, i64 0}
!157 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain23ConflictPoolPropagationESaIS1_EE16_Deque_impl_dataE", !12, i64 0, !41, i64 8, !158, i64 16, !158, i64 48}
!158 = !{!"_ZTSSt15_Deque_iteratorIN11HighsDomain23ConflictPoolPropagationERS1_PS1_E", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24}
!159 = !{!"_ZTSN11HighsDomain6ReasonE", !6, i64 0, !6, i64 4}
!160 = !{!"_ZTS14HighsHashTableIivE", !161, i64 0, !167, i64 8, !41, i64 16, !41, i64 24, !41, i64 32}
!161 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEE", !162, i64 0}
!162 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterELb1ELb1EE", !163, i64 0}
!163 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEE", !164, i64 0}
!164 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEEE", !165, i64 0}
!165 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEEE", !166, i64 0}
!166 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryIivELb0EE", !12, i64 0}
!167 = !{!"_ZTSSt10unique_ptrIA_hSt14default_deleteIS0_EE", !168, i64 0}
!168 = !{!"_ZTSSt15__uniq_ptr_dataIhSt14default_deleteIA_hELb1ELb1EE", !169, i64 0}
!169 = !{!"_ZTSSt15__uniq_ptr_implIhSt14default_deleteIA_hEE", !170, i64 0}
!170 = !{!"_ZTSSt5tupleIJPhSt14default_deleteIA_hEEE", !171, i64 0}
!171 = !{!"_ZTSSt11_Tuple_implILm0EJPhSt14default_deleteIA_hEEE", !172, i64 0}
!172 = !{!"_ZTSSt10_Head_baseILm0EPhLb0EE", !12, i64 0}
!173 = !{!"_ZTS17HighsLpRelaxation", !12, i64 0, !174, i64 8, !313, i64 20936, !113, i64 20960, !14, i64 20984, !18, i64 21008, !14, i64 21032, !14, i64 21056, !14, i64 21080, !283, i64 21104, !317, i64 21280, !13, i64 21328, !57, i64 21336, !13, i64 21344, !318, i64 21352, !57, i64 21368, !41, i64 21376, !41, i64 21384, !13, i64 21392, !41, i64 21400, !41, i64 21408, !6, i64 21416, !321, i64 21420, !57, i64 21424}
!174 = !{!"_ZTS5Highs", !175, i64 8, !176, i64 112, !181, i64 208, !186, i64 312, !206, i64 1312, !186, i64 1336, !210, i64 2336, !211, i64 2472, !214, i64 2728, !219, i64 3752, !225, i64 3936, !227, i64 4520, !232, i64 4648, !62, i64 4672, !236, i64 4676, !57, i64 4680, !13, i64 4688, !14, i64 4696, !14, i64 4720, !188, i64 4744, !237, i64 4856, !70, i64 19424, !6, i64 19448, !57, i64 19452, !6, i64 19456, !57, i64 19460, !295, i64 19464}
!175 = !{!"_ZTS13HighsSolution", !57, i64 0, !57, i64 1, !14, i64 8, !14, i64 32, !14, i64 56, !14, i64 80}
!176 = !{!"_ZTS10HighsBasis", !57, i64 0, !57, i64 1, !57, i64 2, !57, i64 3, !6, i64 4, !6, i64 8, !87, i64 16, !177, i64 48, !177, i64 72}
!177 = !{!"_ZTSSt6vectorI16HighsBasisStatusSaIS0_EE", !178, i64 0}
!178 = !{!"_ZTSSt12_Vector_baseI16HighsBasisStatusSaIS0_EE", !179, i64 0}
!179 = !{!"_ZTSNSt12_Vector_baseI16HighsBasisStatusSaIS0_EE12_Vector_implE", !180, i64 0}
!180 = !{!"_ZTSNSt12_Vector_baseI16HighsBasisStatusSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!181 = !{!"_ZTS10ICrashInfo", !6, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !182, i64 48, !14, i64 72, !13, i64 96}
!182 = !{!"_ZTSSt6vectorI22ICrashIterationDetailsSaIS0_EE", !183, i64 0}
!183 = !{!"_ZTSSt12_Vector_baseI22ICrashIterationDetailsSaIS0_EE", !184, i64 0}
!184 = !{!"_ZTSNSt12_Vector_baseI22ICrashIterationDetailsSaIS0_EE12_Vector_implE", !185, i64 0}
!185 = !{!"_ZTSNSt12_Vector_baseI22ICrashIterationDetailsSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!186 = !{!"_ZTS10HighsModel", !187, i64 0, !204, i64 920}
!187 = !{!"_ZTS7HighsLp", !6, i64 0, !6, i64 4, !14, i64 8, !14, i64 32, !14, i64 56, !14, i64 80, !14, i64 104, !188, i64 128, !190, i64 240, !13, i64 248, !87, i64 256, !87, i64 288, !6, i64 320, !6, i64 324, !191, i64 328, !191, i64 352, !195, i64 376, !199, i64 400, !199, i64 456, !6, i64 512, !6, i64 516, !202, i64 520, !57, i64 592, !57, i64 593, !6, i64 596, !57, i64 600, !203, i64 608}
!188 = !{!"_ZTS17HighsSparseMatrix", !189, i64 0, !6, i64 4, !6, i64 8, !18, i64 16, !18, i64 40, !18, i64 64, !14, i64 88}
!189 = !{!"_ZTS12MatrixFormat", !7, i64 0}
!190 = !{!"_ZTS8ObjSense", !7, i64 0}
!191 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !192, i64 0}
!192 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !193, i64 0}
!193 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !194, i64 0}
!194 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!195 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !196, i64 0}
!196 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !197, i64 0}
!197 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !198, i64 0}
!198 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!199 = !{!"_ZTS13HighsNameHash", !200, i64 0}
!200 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !201, i64 0}
!201 = !{!"_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", !12, i64 0, !41, i64 8, !42, i64 16, !41, i64 24, !43, i64 32, !12, i64 48}
!202 = !{!"_ZTS10HighsScale", !6, i64 0, !57, i64 4, !6, i64 8, !6, i64 12, !13, i64 16, !14, i64 24, !14, i64 48}
!203 = !{!"_ZTS11HighsLpMods", !18, i64 0, !18, i64 24, !14, i64 48, !14, i64 72, !195, i64 96, !18, i64 120, !14, i64 144, !18, i64 168, !14, i64 192, !18, i64 216, !14, i64 240, !14, i64 264, !14, i64 288}
!204 = !{!"_ZTS12HighsHessian", !6, i64 0, !205, i64 4, !18, i64 8, !18, i64 32, !14, i64 56}
!205 = !{!"_ZTS13HessianFormat", !7, i64 0}
!206 = !{!"_ZTSSt6vectorI20HighsLinearObjectiveSaIS0_EE", !207, i64 0}
!207 = !{!"_ZTSSt12_Vector_baseI20HighsLinearObjectiveSaIS0_EE", !208, i64 0}
!208 = !{!"_ZTSNSt12_Vector_baseI20HighsLinearObjectiveSaIS0_EE12_Vector_implE", !209, i64 0}
!209 = !{!"_ZTSNSt12_Vector_baseI20HighsLinearObjectiveSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!210 = !{!"_ZTS10HighsTimer", !13, i64 8, !6, i64 16, !18, i64 24, !14, i64 48, !14, i64 72, !191, i64 96, !6, i64 120, !6, i64 124, !6, i64 128}
!211 = !{!"_ZTS13HighsCallback", !90, i64 0, !12, i64 32, !12, i64 40, !64, i64 48, !212, i64 88, !213, i64 240}
!212 = !{!"_ZTS20HighsCallbackDataOut", !6, i64 0, !13, i64 8, !6, i64 16, !6, i64 20, !6, i64 24, !13, i64 32, !41, i64 40, !41, i64 48, !13, i64 56, !13, i64 64, !13, i64 72, !12, i64 80, !6, i64 88, !6, i64 92, !6, i64 96, !12, i64 104, !12, i64 112, !12, i64 120, !12, i64 128, !12, i64 136, !6, i64 144}
!213 = !{!"_ZTS19HighsCallbackDataIn", !6, i64 0, !12, i64 8}
!214 = !{!"_ZTS12HighsOptions", !86, i64 0, !215, i64 992, !6, i64 1016}
!215 = !{!"_ZTSSt6vectorIP12OptionRecordSaIS1_EE", !216, i64 0}
!216 = !{!"_ZTSSt12_Vector_baseIP12OptionRecordSaIS1_EE", !217, i64 0}
!217 = !{!"_ZTSNSt12_Vector_baseIP12OptionRecordSaIS1_EE12_Vector_implE", !218, i64 0}
!218 = !{!"_ZTSNSt12_Vector_baseIP12OptionRecordSaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!219 = !{!"_ZTS9HighsInfo", !220, i64 8, !221, i64 160}
!220 = !{!"_ZTS15HighsInfoStruct", !57, i64 0, !41, i64 8, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 40, !6, i64 44, !13, i64 48, !13, i64 56, !13, i64 64, !13, i64 72, !6, i64 80, !13, i64 88, !13, i64 96, !6, i64 104, !13, i64 112, !13, i64 120, !13, i64 128, !13, i64 136, !13, i64 144}
!221 = !{!"_ZTSSt6vectorIP10InfoRecordSaIS1_EE", !222, i64 0}
!222 = !{!"_ZTSSt12_Vector_baseIP10InfoRecordSaIS1_EE", !223, i64 0}
!223 = !{!"_ZTSNSt12_Vector_baseIP10InfoRecordSaIS1_EE12_Vector_implE", !224, i64 0}
!224 = !{!"_ZTSNSt12_Vector_baseIP10InfoRecordSaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!225 = !{!"_ZTS12HighsRanging", !57, i64 0, !226, i64 8, !226, i64 104, !226, i64 200, !226, i64 296, !226, i64 392, !226, i64 488}
!226 = !{!"_ZTS18HighsRangingRecord", !14, i64 0, !14, i64 24, !18, i64 48, !18, i64 72}
!227 = !{!"_ZTS8HighsIis", !57, i64 0, !6, i64 4, !18, i64 8, !18, i64 32, !18, i64 56, !18, i64 80, !228, i64 104}
!228 = !{!"_ZTSSt6vectorI12HighsIisInfoSaIS0_EE", !229, i64 0}
!229 = !{!"_ZTSSt12_Vector_baseI12HighsIisInfoSaIS0_EE", !230, i64 0}
!230 = !{!"_ZTSNSt12_Vector_baseI12HighsIisInfoSaIS0_EE12_Vector_implE", !231, i64 0}
!231 = !{!"_ZTSNSt12_Vector_baseI12HighsIisInfoSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!232 = !{!"_ZTSSt6vectorI22HighsObjectiveSolutionSaIS0_EE", !233, i64 0}
!233 = !{!"_ZTSSt12_Vector_baseI22HighsObjectiveSolutionSaIS0_EE", !234, i64 0}
!234 = !{!"_ZTSNSt12_Vector_baseI22HighsObjectiveSolutionSaIS0_EE12_Vector_implE", !235, i64 0}
!235 = !{!"_ZTSNSt12_Vector_baseI22HighsObjectiveSolutionSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!236 = !{!"_ZTS16HighsModelStatus", !7, i64 0}
!237 = !{!"_ZTS4HEkk", !12, i64 0, !12, i64 8, !12, i64 16, !238, i64 24, !187, i64 8600, !87, i64 9520, !255, i64 9552, !256, i64 9568, !236, i64 10608, !257, i64 10616, !262, i64 10736, !269, i64 10776, !14, i64 10784, !14, i64 10808, !57, i64 10832, !188, i64 10840, !188, i64 10952, !270, i64 11064, !287, i64 13928, !13, i64 14048, !13, i64 14056, !13, i64 14064, !6, i64 14072, !6, i64 14076, !6, i64 14080, !6, i64 14084, !57, i64 14088, !57, i64 14089, !288, i64 14092, !6, i64 14096, !6, i64 14100, !18, i64 14104, !14, i64 14128, !289, i64 14152, !289, i64 14184, !6, i64 14216, !6, i64 14220, !6, i64 14224, !13, i64 14232, !14, i64 14240, !14, i64 14264, !14, i64 14288, !14, i64 14312, !14, i64 14336, !18, i64 14360, !18, i64 14384, !13, i64 14408, !13, i64 14416, !13, i64 14424, !6, i64 14432, !6, i64 14436, !57, i64 14440, !6, i64 14444, !57, i64 14448, !57, i64 14449, !57, i64 14450, !57, i64 14451, !13, i64 14456, !290, i64 14464, !14, i64 14488, !294, i64 14512}
!238 = !{!"_ZTS20HighsSimplexAnalysis", !12, i64 0, !239, i64 8, !239, i64 32, !12, i64 56, !6, i64 64, !6, i64 68, !6, i64 72, !87, i64 80, !87, i64 112, !89, i64 144, !57, i64 240, !57, i64 241, !57, i64 242, !57, i64 243, !57, i64 244, !57, i64 245, !57, i64 246, !6, i64 248, !243, i64 252, !6, i64 256, !6, i64 260, !6, i64 264, !6, i64 268, !6, i64 272, !6, i64 276, !6, i64 280, !87, i64 288, !13, i64 320, !13, i64 328, !13, i64 336, !13, i64 344, !13, i64 352, !13, i64 360, !13, i64 368, !13, i64 376, !13, i64 384, !13, i64 392, !13, i64 400, !13, i64 408, !6, i64 416, !6, i64 420, !13, i64 424, !13, i64 432, !6, i64 440, !13, i64 448, !13, i64 456, !6, i64 464, !13, i64 472, !13, i64 480, !13, i64 488, !13, i64 496, !13, i64 504, !13, i64 512, !13, i64 520, !13, i64 528, !13, i64 536, !13, i64 544, !6, i64 552, !13, i64 560, !6, i64 568, !6, i64 572, !6, i64 576, !6, i64 580, !6, i64 584, !6, i64 588, !6, i64 592, !6, i64 596, !6, i64 600, !244, i64 608, !244, i64 760, !244, i64 912, !244, i64 1064, !244, i64 1216, !244, i64 1368, !244, i64 1520, !244, i64 1672, !244, i64 1824, !244, i64 1976, !6, i64 2128, !6, i64 2132, !6, i64 2136, !6, i64 2140, !13, i64 2144, !13, i64 2152, !6, i64 2160, !6, i64 2164, !6, i64 2168, !6, i64 2172, !6, i64 2176, !13, i64 2184, !13, i64 2192, !6, i64 2200, !13, i64 2208, !13, i64 2216, !6, i64 2224, !6, i64 2228, !13, i64 2232, !13, i64 2240, !14, i64 2248, !14, i64 2272, !14, i64 2296, !14, i64 2320, !245, i64 2344, !249, i64 2368, !6, i64 2376, !6, i64 2380, !6, i64 2384, !6, i64 2388, !13, i64 2392, !13, i64 2400, !13, i64 2408, !13, i64 2416, !13, i64 2424, !13, i64 2432, !13, i64 2440, !13, i64 2448, !13, i64 2456, !13, i64 2464, !6, i64 2472, !6, i64 2476, !13, i64 2480, !13, i64 2488, !13, i64 2496, !57, i64 2504, !13, i64 2512, !13, i64 2520, !6, i64 2528, !6, i64 2532, !6, i64 2536, !6, i64 2540, !6, i64 2544, !13, i64 2552, !13, i64 2560, !13, i64 2568, !13, i64 2576, !13, i64 2584, !13, i64 2592, !13, i64 2600, !13, i64 2608, !13, i64 2616, !6, i64 2624, !6, i64 2628, !7, i64 2632, !6, i64 4952, !6, i64 4956, !7, i64 4960, !7, i64 7600, !7, i64 7648, !244, i64 7664, !244, i64 7816, !244, i64 7968, !244, i64 8120, !244, i64 8272, !244, i64 8424}
!239 = !{!"_ZTSSt6vectorI15HighsTimerClockSaIS0_EE", !240, i64 0}
!240 = !{!"_ZTSSt12_Vector_baseI15HighsTimerClockSaIS0_EE", !241, i64 0}
!241 = !{!"_ZTSNSt12_Vector_baseI15HighsTimerClockSaIS0_EE12_Vector_implE", !242, i64 0}
!242 = !{!"_ZTSNSt12_Vector_baseI15HighsTimerClockSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!243 = !{!"_ZTS14EdgeWeightMode", !7, i64 0}
!244 = !{!"_ZTS22HighsValueDistribution", !87, i64 0, !87, i64 32, !6, i64 64, !6, i64 68, !6, i64 72, !13, i64 80, !13, i64 88, !14, i64 96, !18, i64 120, !6, i64 144}
!245 = !{!"_ZTSSt6vectorI17TranStageAnalysisSaIS0_EE", !246, i64 0}
!246 = !{!"_ZTSSt12_Vector_baseI17TranStageAnalysisSaIS0_EE", !247, i64 0}
!247 = !{!"_ZTSNSt12_Vector_baseI17TranStageAnalysisSaIS0_EE12_Vector_implE", !248, i64 0}
!248 = !{!"_ZTSNSt12_Vector_baseI17TranStageAnalysisSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!249 = !{!"_ZTSSt10unique_ptrINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EE", !250, i64 0}
!250 = !{!"_ZTSSt15__uniq_ptr_dataINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_ELb1ELb1EE", !251, i64 0}
!251 = !{!"_ZTSSt15__uniq_ptr_implINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EE", !252, i64 0}
!252 = !{!"_ZTSSt5tupleIJPNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EEE", !253, i64 0}
!253 = !{!"_ZTSSt11_Tuple_implILm0EJPNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEESt14default_deleteIS5_EEE", !254, i64 0}
!254 = !{!"_ZTSSt10_Head_baseILm0EPNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEELb0EE", !12, i64 0}
!255 = !{!"_ZTS18HighsSimplexStatus", !57, i64 0, !57, i64 1, !57, i64 2, !57, i64 3, !57, i64 4, !57, i64 5, !57, i64 6, !57, i64 7, !57, i64 8, !57, i64 9, !57, i64 10, !57, i64 11, !57, i64 12}
!256 = !{!"_ZTS16HighsSimplexInfo", !14, i64 0, !14, i64 24, !14, i64 48, !14, i64 72, !14, i64 96, !14, i64 120, !14, i64 144, !14, i64 168, !14, i64 192, !14, i64 216, !14, i64 240, !14, i64 264, !14, i64 288, !18, i64 312, !18, i64 336, !18, i64 360, !18, i64 384, !14, i64 408, !6, i64 432, !6, i64 436, !57, i64 440, !57, i64 441, !257, i64 448, !6, i64 568, !6, i64 572, !6, i64 576, !14, i64 584, !14, i64 608, !14, i64 632, !14, i64 656, !6, i64 680, !6, i64 684, !6, i64 688, !6, i64 692, !13, i64 696, !13, i64 704, !13, i64 712, !13, i64 720, !6, i64 728, !6, i64 732, !13, i64 736, !13, i64 744, !13, i64 752, !13, i64 760, !13, i64 768, !13, i64 776, !13, i64 784, !13, i64 792, !13, i64 800, !13, i64 808, !57, i64 816, !13, i64 824, !13, i64 832, !6, i64 840, !13, i64 848, !13, i64 856, !13, i64 864, !57, i64 872, !57, i64 873, !57, i64 874, !57, i64 875, !57, i64 876, !57, i64 877, !57, i64 878, !57, i64 879, !57, i64 880, !57, i64 881, !57, i64 882, !57, i64 883, !57, i64 884, !57, i64 885, !57, i64 886, !6, i64 888, !13, i64 896, !13, i64 904, !6, i64 912, !13, i64 920, !13, i64 928, !6, i64 936, !6, i64 940, !6, i64 944, !6, i64 948, !6, i64 952, !6, i64 956, !6, i64 960, !6, i64 964, !6, i64 968, !6, i64 972, !6, i64 976, !6, i64 980, !6, i64 984, !6, i64 988, !6, i64 992, !6, i64 996, !13, i64 1000, !13, i64 1008, !13, i64 1016, !13, i64 1024, !6, i64 1032}
!257 = !{!"_ZTS12SimplexBasis", !18, i64 0, !258, i64 24, !258, i64 48, !41, i64 72, !6, i64 80, !6, i64 84, !87, i64 88}
!258 = !{!"_ZTSSt6vectorIaSaIaEE", !259, i64 0}
!259 = !{!"_ZTSSt12_Vector_baseIaSaIaEE", !260, i64 0}
!260 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE12_Vector_implE", !261, i64 0}
!261 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!262 = !{!"_ZTS14HighsHashTableImvE", !263, i64 0, !167, i64 8, !41, i64 16, !41, i64 24, !41, i64 32}
!263 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEE", !264, i64 0}
!264 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterELb1ELb1EE", !265, i64 0}
!265 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEE", !266, i64 0}
!266 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEEE", !267, i64 0}
!267 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryImvEN14HighsHashTableImvE12OpNewDeleterEEE", !268, i64 0}
!268 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryImvELb0EE", !12, i64 0}
!269 = !{!"_ZTS11HighsRandom", !41, i64 0}
!270 = !{!"_ZTS11HSimplexNla", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !271, i64 48, !57, i64 1960, !13, i64 1968, !284, i64 1976, !285, i64 2112}
!271 = !{!"_ZTS7HFactor", !13, i64 0, !13, i64 8, !6, i64 16, !18, i64 24, !18, i64 48, !18, i64 72, !272, i64 96, !6, i64 184, !6, i64 188, !6, i64 192, !6, i64 196, !6, i64 200, !6, i64 204, !6, i64 208, !13, i64 216, !57, i64 224, !12, i64 232, !12, i64 240, !12, i64 248, !12, i64 256, !13, i64 264, !13, i64 272, !6, i64 280, !13, i64 288, !273, i64 296, !89, i64 304, !57, i64 400, !57, i64 401, !6, i64 404, !6, i64 408, !12, i64 416, !6, i64 424, !18, i64 432, !14, i64 456, !18, i64 480, !18, i64 504, !18, i64 528, !14, i64 552, !18, i64 576, !18, i64 600, !18, i64 624, !18, i64 648, !18, i64 672, !18, i64 696, !18, i64 720, !14, i64 744, !14, i64 768, !18, i64 792, !18, i64 816, !18, i64 840, !18, i64 864, !18, i64 888, !18, i64 912, !279, i64 936, !14, i64 960, !18, i64 984, !18, i64 1008, !18, i64 1032, !18, i64 1056, !18, i64 1080, !18, i64 1104, !18, i64 1128, !18, i64 1152, !18, i64 1176, !18, i64 1200, !14, i64 1224, !18, i64 1248, !18, i64 1272, !14, i64 1296, !18, i64 1320, !18, i64 1344, !14, i64 1368, !6, i64 1392, !6, i64 1396, !18, i64 1400, !18, i64 1424, !18, i64 1448, !14, i64 1472, !18, i64 1496, !18, i64 1520, !18, i64 1544, !18, i64 1568, !14, i64 1592, !14, i64 1616, !18, i64 1640, !18, i64 1664, !18, i64 1688, !14, i64 1712, !283, i64 1736}
!272 = !{!"_ZTS12RefactorInfo", !57, i64 0, !18, i64 8, !18, i64 32, !258, i64 56, !13, i64 80}
!273 = !{!"_ZTSSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EE", !274, i64 0}
!274 = !{!"_ZTSSt15__uniq_ptr_dataIN7HFactor7LogDataESt14default_deleteIS1_ELb1ELb1EE", !275, i64 0}
!275 = !{!"_ZTSSt15__uniq_ptr_implIN7HFactor7LogDataESt14default_deleteIS1_EE", !276, i64 0}
!276 = !{!"_ZTSSt5tupleIJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !277, i64 0}
!277 = !{!"_ZTSSt11_Tuple_implILm0EJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !278, i64 0}
!278 = !{!"_ZTSSt10_Head_baseILm0EPN7HFactor7LogDataELb0EE", !12, i64 0}
!279 = !{!"_ZTSSt6vectorIcSaIcEE", !280, i64 0}
!280 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !281, i64 0}
!281 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !282, i64 0}
!282 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!283 = !{!"_ZTS11HVectorBaseIdE", !6, i64 0, !6, i64 4, !18, i64 8, !14, i64 32, !13, i64 56, !279, i64 64, !18, i64 88, !12, i64 112, !57, i64 120, !6, i64 124, !18, i64 128, !14, i64 152}
!284 = !{!"_ZTS17ProductFormUpdate", !57, i64 0, !6, i64 4, !6, i64 8, !18, i64 16, !14, i64 40, !18, i64 64, !18, i64 88, !14, i64 112}
!285 = !{!"_ZTS14SimplexIterate", !57, i64 0, !257, i64 8, !286, i64 128, !14, i64 728}
!286 = !{!"_ZTS24InvertibleRepresentation", !18, i64 0, !18, i64 24, !18, i64 48, !18, i64 72, !14, i64 96, !18, i64 120, !18, i64 144, !14, i64 168, !18, i64 192, !18, i64 216, !14, i64 240, !18, i64 264, !18, i64 288, !18, i64 312, !14, i64 336, !18, i64 360, !18, i64 384, !18, i64 408, !18, i64 432, !14, i64 456, !18, i64 480, !18, i64 504, !14, i64 528, !18, i64 552, !14, i64 576}
!287 = !{!"_ZTS8HotStart", !57, i64 0, !272, i64 8, !258, i64 96}
!288 = !{!"_ZTS16SimplexAlgorithm", !7, i64 0}
!289 = !{!"_ZTS14HighsRayRecord", !6, i64 0, !6, i64 4, !14, i64 8}
!290 = !{!"_ZTSSt6vectorI32HighsSimplexBadBasisChangeRecordSaIS0_EE", !291, i64 0}
!291 = !{!"_ZTSSt12_Vector_baseI32HighsSimplexBadBasisChangeRecordSaIS0_EE", !292, i64 0}
!292 = !{!"_ZTSNSt12_Vector_baseI32HighsSimplexBadBasisChangeRecordSaIS0_EE12_Vector_implE", !293, i64 0}
!293 = !{!"_ZTSNSt12_Vector_baseI32HighsSimplexBadBasisChangeRecordSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!294 = !{!"_ZTS17HighsSimplexStats", !57, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48}
!295 = !{!"_ZTS17PresolveComponent", !296, i64 0, !300, i64 16, !301, i64 56, !12, i64 1440, !12, i64 1448, !62, i64 1456, !312, i64 1460}
!296 = !{!"_ZTS14HighsComponent", !297, i64 8, !298, i64 9, !299, i64 10}
!297 = !{!"_ZTS18HighsComponentInfo", !57, i64 0}
!298 = !{!"_ZTS18HighsComponentData", !57, i64 0}
!299 = !{!"_ZTS21HighsComponentOptions", !57, i64 0}
!300 = !{!"_ZTS21PresolveComponentInfo", !297, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !13, i64 24, !13, i64 32}
!301 = !{!"_ZTS21PresolveComponentData", !298, i64 8, !187, i64 16, !302, i64 936, !175, i64 1160, !176, i64 1264, !70, i64 1360}
!302 = !{!"_ZTSN8presolve19HighsPostsolveStackE", !41, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !303, i64 40, !304, i64 72, !18, i64 96, !18, i64 120, !31, i64 144, !308, i64 168, !308, i64 192, !6, i64 216, !6, i64 220}
!303 = !{!"_ZTS14HighsDataStack", !279, i64 0, !41, i64 24}
!304 = !{!"_ZTSSt6vectorISt4pairIN8presolve19HighsPostsolveStack13ReductionTypeEmESaIS4_EE", !305, i64 0}
!305 = !{!"_ZTSSt12_Vector_baseISt4pairIN8presolve19HighsPostsolveStack13ReductionTypeEmESaIS4_EE", !306, i64 0}
!306 = !{!"_ZTSNSt12_Vector_baseISt4pairIN8presolve19HighsPostsolveStack13ReductionTypeEmESaIS4_EE12_Vector_implE", !307, i64 0}
!307 = !{!"_ZTSNSt12_Vector_baseISt4pairIN8presolve19HighsPostsolveStack13ReductionTypeEmESaIS4_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!308 = !{!"_ZTSSt6vectorIN8presolve19HighsPostsolveStack7NonzeroESaIS2_EE", !309, i64 0}
!309 = !{!"_ZTSSt12_Vector_baseIN8presolve19HighsPostsolveStack7NonzeroESaIS2_EE", !310, i64 0}
!310 = !{!"_ZTSNSt12_Vector_baseIN8presolve19HighsPostsolveStack7NonzeroESaIS2_EE12_Vector_implE", !311, i64 0}
!311 = !{!"_ZTSNSt12_Vector_baseIN8presolve19HighsPostsolveStack7NonzeroESaIS2_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!312 = !{!"_ZTS20HighsPostsolveStatus", !7, i64 0}
!313 = !{!"_ZTSSt6vectorIN17HighsLpRelaxation5LpRowESaIS1_EE", !314, i64 0}
!314 = !{!"_ZTSSt12_Vector_baseIN17HighsLpRelaxation5LpRowESaIS1_EE", !315, i64 0}
!315 = !{!"_ZTSNSt12_Vector_baseIN17HighsLpRelaxation5LpRowESaIS1_EE12_Vector_implE", !316, i64 0}
!316 = !{!"_ZTSNSt12_Vector_baseIN17HighsLpRelaxation5LpRowESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!317 = !{!"_ZTS20HighsSparseVectorSum", !27, i64 0, !18, i64 24}
!318 = !{!"_ZTSSt10shared_ptrIK10HighsBasisE", !319, i64 0}
!319 = !{!"_ZTSSt12__shared_ptrIK10HighsBasisLN9__gnu_cxx12_Lock_policyE2EE", !12, i64 0, !320, i64 8}
!320 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !12, i64 0}
!321 = !{!"_ZTSN17HighsLpRelaxation6StatusE", !7, i64 0}
!322 = !{!"_ZTS15HighsPseudocost", !14, i64 0, !14, i64 24, !18, i64 48, !18, i64 72, !14, i64 96, !14, i64 120, !18, i64 144, !18, i64 168, !18, i64 192, !18, i64 216, !14, i64 240, !14, i64 264, !13, i64 288, !13, i64 296, !13, i64 304, !13, i64 312, !41, i64 320, !41, i64 328, !41, i64 336, !6, i64 344, !13, i64 352}
!323 = !{!"_ZTS16HighsCliqueTable", !324, i64 0, !328, i64 24, !332, i64 48, !336, i64 72, !45, i64 112, !18, i64 160, !343, i64 184, !18, i64 208, !324, i64 232, !18, i64 256, !347, i64 280, !18, i64 304, !351, i64 328, !31, i64 352, !31, i64 376, !118, i64 400, !18, i64 424, !269, i64 448, !6, i64 456, !6, i64 460, !6, i64 464, !6, i64 468, !57, i64 472, !41, i64 480}
!324 = !{!"_ZTSSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE", !325, i64 0}
!325 = !{!"_ZTSSt12_Vector_baseIN16HighsCliqueTable9CliqueVarESaIS1_EE", !326, i64 0}
!326 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable9CliqueVarESaIS1_EE12_Vector_implE", !327, i64 0}
!327 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable9CliqueVarESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!328 = !{!"_ZTSSt6vectorI13HighsHashTreeIiiESaIS1_EE", !329, i64 0}
!329 = !{!"_ZTSSt12_Vector_baseI13HighsHashTreeIiiESaIS1_EE", !330, i64 0}
!330 = !{!"_ZTSNSt12_Vector_baseI13HighsHashTreeIiiESaIS1_EE12_Vector_implE", !331, i64 0}
!331 = !{!"_ZTSNSt12_Vector_baseI13HighsHashTreeIiiESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!332 = !{!"_ZTSSt6vectorI13HighsHashTreeIivESaIS1_EE", !333, i64 0}
!333 = !{!"_ZTSSt12_Vector_baseI13HighsHashTreeIivESaIS1_EE", !334, i64 0}
!334 = !{!"_ZTSNSt12_Vector_baseI13HighsHashTreeIivESaIS1_EE12_Vector_implE", !335, i64 0}
!335 = !{!"_ZTSNSt12_Vector_baseI13HighsHashTreeIivESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!336 = !{!"_ZTS14HighsHashTableISt4pairIN16HighsCliqueTable9CliqueVarES2_EiE", !337, i64 0, !167, i64 8, !41, i64 16, !41, i64 24, !41, i64 32}
!337 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryISt4pairIN16HighsCliqueTable9CliqueVarES3_EiEN14HighsHashTableIS4_iE12OpNewDeleterEE", !338, i64 0}
!338 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryISt4pairIN16HighsCliqueTable9CliqueVarES3_EiEN14HighsHashTableIS4_iE12OpNewDeleterELb1ELb1EE", !339, i64 0}
!339 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryISt4pairIN16HighsCliqueTable9CliqueVarES3_EiEN14HighsHashTableIS4_iE12OpNewDeleterEE", !340, i64 0}
!340 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryISt4pairIN16HighsCliqueTable9CliqueVarES3_EiEN14HighsHashTableIS4_iE12OpNewDeleterEEE", !341, i64 0}
!341 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryISt4pairIN16HighsCliqueTable9CliqueVarES3_EiEN14HighsHashTableIS4_iE12OpNewDeleterEEE", !342, i64 0}
!342 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryISt4pairIN16HighsCliqueTable9CliqueVarES3_EiELb0EE", !12, i64 0}
!343 = !{!"_ZTSSt6vectorIN16HighsCliqueTable6CliqueESaIS1_EE", !344, i64 0}
!344 = !{!"_ZTSSt12_Vector_baseIN16HighsCliqueTable6CliqueESaIS1_EE", !345, i64 0}
!345 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable6CliqueESaIS1_EE12_Vector_implE", !346, i64 0}
!346 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable6CliqueESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!347 = !{!"_ZTSSt6vectorIN16HighsCliqueTable12SubstitutionESaIS1_EE", !348, i64 0}
!348 = !{!"_ZTSSt12_Vector_baseIN16HighsCliqueTable12SubstitutionESaIS1_EE", !349, i64 0}
!349 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable12SubstitutionESaIS1_EE12_Vector_implE", !350, i64 0}
!350 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable12SubstitutionESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!351 = !{!"_ZTSSt6vectorISt4pairIiN16HighsCliqueTable9CliqueVarEESaIS3_EE", !352, i64 0}
!352 = !{!"_ZTSSt12_Vector_baseISt4pairIiN16HighsCliqueTable9CliqueVarEESaIS3_EE", !353, i64 0}
!353 = !{!"_ZTSNSt12_Vector_baseISt4pairIiN16HighsCliqueTable9CliqueVarEESaIS3_EE12_Vector_implE", !354, i64 0}
!354 = !{!"_ZTSNSt12_Vector_baseISt4pairIiN16HighsCliqueTable9CliqueVarEESaIS3_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!355 = !{!"_ZTS17HighsImplications", !6, i64 0, !356, i64 8, !41, i64 32, !360, i64 40, !360, i64 64, !12, i64 88, !364, i64 96, !31, i64 120, !368, i64 144}
!356 = !{!"_ZTSSt6vectorIN17HighsImplications7ImplicsESaIS1_EE", !357, i64 0}
!357 = !{!"_ZTSSt12_Vector_baseIN17HighsImplications7ImplicsESaIS1_EE", !358, i64 0}
!358 = !{!"_ZTSNSt12_Vector_baseIN17HighsImplications7ImplicsESaIS1_EE12_Vector_implE", !359, i64 0}
!359 = !{!"_ZTSNSt12_Vector_baseIN17HighsImplications7ImplicsESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!360 = !{!"_ZTSSt6vectorI13HighsHashTreeIiN17HighsImplications8VarBoundEESaIS3_EE", !361, i64 0}
!361 = !{!"_ZTSSt12_Vector_baseI13HighsHashTreeIiN17HighsImplications8VarBoundEESaIS3_EE", !362, i64 0}
!362 = !{!"_ZTSNSt12_Vector_baseI13HighsHashTreeIiN17HighsImplications8VarBoundEESaIS3_EE12_Vector_implE", !363, i64 0}
!363 = !{!"_ZTSNSt12_Vector_baseI13HighsHashTreeIiN17HighsImplications8VarBoundEESaIS3_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!364 = !{!"_ZTSSt6vectorI17HighsSubstitutionSaIS0_EE", !365, i64 0}
!365 = !{!"_ZTSSt12_Vector_baseI17HighsSubstitutionSaIS0_EE", !366, i64 0}
!366 = !{!"_ZTSNSt12_Vector_baseI17HighsSubstitutionSaIS0_EE12_Vector_implE", !367, i64 0}
!367 = !{!"_ZTSNSt12_Vector_baseI17HighsSubstitutionSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!368 = !{!"_ZTSSt8functionIFviiidEE", !91, i64 0, !12, i64 24}
!369 = !{!"_ZTS21HighsPrimalHeuristics", !12, i64 0, !41, i64 8, !41, i64 16, !41, i64 24, !41, i64 32, !13, i64 40, !6, i64 48, !13, i64 56, !6, i64 64, !269, i64 72, !18, i64 80}
!370 = !{!"_ZTS18HighsRedcostFixing", !371, i64 0, !371, i64 24}
!371 = !{!"_ZTSSt6vectorISt8multimapIdiSt4lessIdESaISt4pairIKdiEEESaIS7_EE", !372, i64 0}
!372 = !{!"_ZTSSt12_Vector_baseISt8multimapIdiSt4lessIdESaISt4pairIKdiEEESaIS7_EE", !373, i64 0}
!373 = !{!"_ZTSNSt12_Vector_baseISt8multimapIdiSt4lessIdESaISt4pairIKdiEEESaIS7_EE12_Vector_implE", !374, i64 0}
!374 = !{!"_ZTSNSt12_Vector_baseISt8multimapIdiSt4lessIdESaISt4pairIKdiEEESaIS7_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!375 = !{!"_ZTS22HighsObjectiveFunction", !12, i64 0, !13, i64 8, !6, i64 16, !6, i64 20, !18, i64 24, !14, i64 48, !18, i64 72, !18, i64 96}
!376 = !{!"_ZTS15HighsSymmetries", !18, i64 0, !18, i64 24, !18, i64 48, !18, i64 72, !18, i64 96, !18, i64 120, !377, i64 144, !381, i64 168, !6, i64 208, !6, i64 212}
!377 = !{!"_ZTSSt6vectorI19HighsOrbitopeMatrixSaIS0_EE", !378, i64 0}
!378 = !{!"_ZTSSt12_Vector_baseI19HighsOrbitopeMatrixSaIS0_EE", !379, i64 0}
!379 = !{!"_ZTSNSt12_Vector_baseI19HighsOrbitopeMatrixSaIS0_EE12_Vector_implE", !380, i64 0}
!380 = !{!"_ZTSNSt12_Vector_baseI19HighsOrbitopeMatrixSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!381 = !{!"_ZTS14HighsHashTableIiiE", !382, i64 0, !167, i64 8, !41, i64 16, !41, i64 24, !41, i64 32}
!382 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEE", !383, i64 0}
!383 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterELb1ELb1EE", !384, i64 0}
!384 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEE", !385, i64 0}
!385 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEEE", !386, i64 0}
!386 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEEE", !387, i64 0}
!387 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryIiiELb0EE", !12, i64 0}
!388 = !{!"_ZTSSt10shared_ptrIK16StabilizerOrbitsE", !389, i64 0}
!389 = !{!"_ZTSSt12__shared_ptrIK16StabilizerOrbitsLN9__gnu_cxx12_Lock_policyE2EE", !12, i64 0, !320, i64 8}
!390 = !{!"_ZTS14HighsNodeQueue", !391, i64 0, !397, i64 8, !401, i64 32, !407, i64 64, !407, i64 72, !41, i64 80, !41, i64 88, !41, i64 96, !41, i64 104, !41, i64 112, !41, i64 120, !41, i64 128, !13, i64 136, !6, i64 144}
!391 = !{!"_ZTSSt10unique_ptrIN14HighsNodeQueue14AllocatorStateESt14default_deleteIS1_EE", !392, i64 0}
!392 = !{!"_ZTSSt15__uniq_ptr_dataIN14HighsNodeQueue14AllocatorStateESt14default_deleteIS1_ELb1ELb1EE", !393, i64 0}
!393 = !{!"_ZTSSt15__uniq_ptr_implIN14HighsNodeQueue14AllocatorStateESt14default_deleteIS1_EE", !394, i64 0}
!394 = !{!"_ZTSSt5tupleIJPN14HighsNodeQueue14AllocatorStateESt14default_deleteIS1_EEE", !395, i64 0}
!395 = !{!"_ZTSSt11_Tuple_implILm0EJPN14HighsNodeQueue14AllocatorStateESt14default_deleteIS1_EEE", !396, i64 0}
!396 = !{!"_ZTSSt10_Head_baseILm0EPN14HighsNodeQueue14AllocatorStateELb0EE", !12, i64 0}
!397 = !{!"_ZTSSt6vectorIN14HighsNodeQueue8OpenNodeESaIS1_EE", !398, i64 0}
!398 = !{!"_ZTSSt12_Vector_baseIN14HighsNodeQueue8OpenNodeESaIS1_EE", !399, i64 0}
!399 = !{!"_ZTSNSt12_Vector_baseIN14HighsNodeQueue8OpenNodeESaIS1_EE12_Vector_implE", !400, i64 0}
!400 = !{!"_ZTSNSt12_Vector_baseIN14HighsNodeQueue8OpenNodeESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!401 = !{!"_ZTSSt14priority_queueIlSt6vectorIlSaIlEESt7greaterIlEE", !402, i64 0, !406, i64 24}
!402 = !{!"_ZTSSt6vectorIlSaIlEE", !403, i64 0}
!403 = !{!"_ZTSSt12_Vector_baseIlSaIlEE", !404, i64 0}
!404 = !{!"_ZTSNSt12_Vector_baseIlSaIlEE12_Vector_implE", !405, i64 0}
!405 = !{!"_ZTSNSt12_Vector_baseIlSaIlEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!406 = !{!"_ZTSSt7greaterIlE"}
!407 = !{!"_ZTSSt10unique_ptrISt3setISt4pairIdlESt4lessIS2_EN14HighsNodeQueue16NodesetAllocatorIS2_EEENS5_20GlobalOperatorDeleteEE", !408, i64 0}
!408 = !{!"_ZTSSt15__uniq_ptr_dataISt3setISt4pairIdlESt4lessIS2_EN14HighsNodeQueue16NodesetAllocatorIS2_EEENS5_20GlobalOperatorDeleteELb1ELb1EE", !409, i64 0}
!409 = !{!"_ZTSSt15__uniq_ptr_implISt3setISt4pairIdlESt4lessIS2_EN14HighsNodeQueue16NodesetAllocatorIS2_EEENS5_20GlobalOperatorDeleteEE", !410, i64 0}
!410 = !{!"_ZTSSt5tupleIJPSt3setISt4pairIdlESt4lessIS2_EN14HighsNodeQueue16NodesetAllocatorIS2_EEENS5_20GlobalOperatorDeleteEEE", !411, i64 0}
!411 = !{!"_ZTSSt11_Tuple_implILm0EJPSt3setISt4pairIdlESt4lessIS2_EN14HighsNodeQueue16NodesetAllocatorIS2_EEENS5_20GlobalOperatorDeleteEEE", !412, i64 0}
!412 = !{!"_ZTSSt10_Head_baseILm0EPSt3setISt4pairIdlESt4lessIS2_EN14HighsNodeQueue16NodesetAllocatorIS2_EEELb0EE", !12, i64 0}
!413 = !{!"_ZTS22HighsPrimaDualIntegral", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32}
!414 = !{!"_ZTS13HighsDebugSol"}
!415 = !{!11, !62, i64 1588}
!416 = !{!417, !12, i64 0}
!417 = !{!"_ZTSZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiE3$_2", !12, i64 0}
!418 = !{!419, !12, i64 0}
!419 = !{!"_ZTSZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiE3$_3", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24}
!420 = !{!421, !12, i64 0}
!421 = !{!"_ZTSZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiE3$_4", !12, i64 0, !12, i64 8, !12, i64 16}
!422 = !{!423, !12, i64 0}
!423 = !{!"_ZTSZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiE3$_6", !12, i64 0, !12, i64 8}
!424 = !{!425, !12, i64 0}
!425 = !{!"_ZTSZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEiE3$_7", !12, i64 0, !12, i64 8, !12, i64 16}


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