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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::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.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.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsCDouble = type { double, double }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%class.anon.514 = type { ptr }
%class.anon.515 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.404" = type { ptr }
%class.anon.516 = type { ptr, ptr }
%class.anon.517 = type { ptr, ptr, ptr }
%class.anon.518 = type { ptr, ptr, ptr, 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 } }

; 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 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 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) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 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 nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) #3 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 nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) #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)) #3 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)) #3 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN8presolve9HPresolve22strengthenInequalitiesERNS_19HighsPostsolveStackERi(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull align 4 dereferenceable(4) %2) #3 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %"class.std::vector.254", align 8
  %9 = alloca %"class.std::vector.20", align 8
  %10 = alloca %"class.std::vector.20", align 8
  %11 = alloca %"class.std::vector.5", align 8
  %12 = alloca %"class.std::vector.5", align 8
  %13 = alloca %"class.std::vector.5", align 8
  %14 = alloca %"class.std::vector.20", align 8
  %15 = alloca %"class.std::vector.5", align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca %class.HighsCDouble, align 8
  %25 = alloca %class.HighsCDouble, align 8
  %26 = alloca double, align 8
  %27 = alloca %class.HighsCDouble, align 8
  %28 = alloca %class.HighsCDouble, align 8
  %29 = alloca i8, align 1
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i8, align 1
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca %class.HighsCDouble, align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %44 = alloca %class.anon.514, align 8
  %45 = alloca %class.HighsCDouble, align 8
  %46 = alloca i64, align 8
  %47 = alloca i32, align 4
  %48 = alloca double, align 8
  %49 = alloca %class.HighsCDouble, align 8
  %50 = alloca i32, align 4
  %51 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %52 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %53 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %54 = alloca %class.anon.515, align 8
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca %class.HighsCDouble, align 8
  %59 = alloca %class.HighsCDouble, align 8
  %60 = alloca double, align 8
  %61 = alloca %class.HighsCDouble, align 8
  %62 = alloca double, align 8
  %63 = alloca i64, align 8
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca double, align 8
  %67 = alloca %class.HighsCDouble, align 8
  %68 = alloca i32, align 4
  %69 = alloca double, align 8
  %70 = alloca i64, align 8
  %71 = alloca %"class.__gnu_cxx::__normal_iterator.404", align 8
  %72 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %73 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %74 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %75 = alloca %class.anon.516, align 8
  %76 = alloca %"class.__gnu_cxx::__normal_iterator.404", align 8
  %77 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %78 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %79 = alloca double, align 8
  %80 = alloca %class.HighsCDouble, align 8
  %81 = alloca %"class.__gnu_cxx::__normal_iterator.404", align 8
  %82 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %83 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %84 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %85 = alloca %class.anon.517, align 8
  %86 = alloca %"class.__gnu_cxx::__normal_iterator.404", align 8
  %87 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %88 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %89 = alloca %class.anon.518, align 8
  %90 = alloca %class.HighsCDouble, align 8
  %91 = alloca %class.HighsCDouble, align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  %92 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #7
  call void @_ZNSt6vectorIaSaIaEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #7
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #7
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %12) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %14) #7
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  %93 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 0, ptr %93, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  store i32 100, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  store i32 0, ptr %17, align 4, !tbaa !9
  br label %94

94:                                               ; preds = %967, %3
  %95 = load i32, ptr %17, align 4, !tbaa !9
  %96 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %97 = load ptr, ptr %96, align 8, !tbaa !11
  %98 = getelementptr inbounds %class.HighsLp, ptr %97, i32 0, i32 1
  %99 = load i32, ptr %98, align 4, !tbaa !75
  %100 = icmp ne i32 %95, %99
  br i1 %100, label %102, label %101

101:                                              ; preds = %94
  store i32 2, ptr %18, align 4
  br label %977

102:                                              ; preds = %94
  %103 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 14
  %104 = load i32, ptr %17, align 4, !tbaa !9
  %105 = sext i32 %104 to i64
  %106 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %103, i64 noundef %105) #7
  %107 = load i32, ptr %106, align 4, !tbaa !9
  %108 = icmp sle i32 %107, 1
  br i1 %108, label %109, label %110

109:                                              ; preds = %102
  br label %967

110:                                              ; preds = %102
  %111 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %112 = load ptr, ptr %111, align 8, !tbaa !11
  %113 = getelementptr inbounds %class.HighsLp, ptr %112, i32 0, i32 5
  %114 = load i32, ptr %17, align 4, !tbaa !9
  %115 = sext i32 %114 to i64
  %116 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %113, i64 noundef %115) #7
  %117 = load double, ptr %116, align 8, !tbaa !95
  %118 = fcmp une double %117, 0xFFF0000000000000
  br i1 %118, label %119, label %129

119:                                              ; preds = %110
  %120 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %121 = load ptr, ptr %120, align 8, !tbaa !11
  %122 = getelementptr inbounds %class.HighsLp, ptr %121, i32 0, i32 6
  %123 = load i32, ptr %17, align 4, !tbaa !9
  %124 = sext i32 %123 to i64
  %125 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %122, i64 noundef %124) #7
  %126 = load double, ptr %125, align 8, !tbaa !95
  %127 = fcmp une double %126, 0x7FF0000000000000
  br i1 %127, label %128, label %129

128:                                              ; preds = %119
  br label %967

129:                                              ; preds = %119, %110
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  store i32 1000, ptr %20, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  %130 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %131 = load ptr, ptr %130, align 8, !tbaa !11
  %132 = getelementptr inbounds %class.HighsLp, ptr %131, i32 0, i32 0
  %133 = load i32, ptr %132, align 8, !tbaa !96
  %134 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 53
  %135 = load i32, ptr %134, align 4, !tbaa !97
  %136 = sub nsw i32 %133, %135
  %137 = sdiv i32 %136, 20
  store i32 %137, ptr %21, align 4, !tbaa !9
  %138 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %139 unwind label %149

139:                                              ; preds = %129
  %140 = load i32, ptr %138, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  store i32 %140, ptr %19, align 4, !tbaa !9
  %141 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 14
  %142 = load i32, ptr %17, align 4, !tbaa !9
  %143 = sext i32 %142 to i64
  %144 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %141, i64 noundef %143) #7
  %145 = load i32, ptr %144, align 4, !tbaa !9
  %146 = load i32, ptr %19, align 4, !tbaa !9
  %147 = icmp sgt i32 %145, %146
  br i1 %147, label %148, label %153

148:                                              ; preds = %139
  store i32 4, ptr %18, align 4
  br label %964

149:                                              ; preds = %129
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %22, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %976

153:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #7
  invoke void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %25, double noundef 0.000000e+00)
          to label %154 unwind label %172

154:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %155 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %156 = load ptr, ptr %155, align 8, !tbaa !11
  %157 = getelementptr inbounds %class.HighsLp, ptr %156, i32 0, i32 5
  %158 = load i32, ptr %17, align 4, !tbaa !9
  %159 = sext i32 %158 to i64
  %160 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %157, i64 noundef %159) #7
  %161 = load double, ptr %160, align 8, !tbaa !95
  %162 = fcmp une double %161, 0xFFF0000000000000
  br i1 %162, label %163, label %180

163:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #7
  %164 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %165 = load ptr, ptr %164, align 8, !tbaa !11
  %166 = getelementptr inbounds %class.HighsLp, ptr %165, i32 0, i32 5
  %167 = load i32, ptr %17, align 4, !tbaa !9
  %168 = sext i32 %167 to i64
  %169 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %166, i64 noundef %168) #7
  %170 = load double, ptr %169, align 8, !tbaa !95
  invoke void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %27, double noundef %170)
          to label %171 unwind label %176

171:                                              ; preds = %163
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %24, ptr align 8 %27, i64 16, i1 false), !tbaa.struct !98
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #7
  store double -1.000000e+00, ptr %26, align 8, !tbaa !95
  br label %194

172:                                              ; preds = %153
  %173 = landingpad { ptr, i32 }
          cleanup
  %174 = extractvalue { ptr, i32 } %173, 0
  store ptr %174, ptr %22, align 8
  %175 = extractvalue { ptr, i32 } %173, 1
  store i32 %175, ptr %23, align 4
  br label %975

176:                                              ; preds = %163
  %177 = landingpad { ptr, i32 }
          cleanup
  %178 = extractvalue { ptr, i32 } %177, 0
  store ptr %178, ptr %22, align 8
  %179 = extractvalue { ptr, i32 } %177, 1
  store i32 %179, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #7
  br label %974

180:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #7
  %181 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %182 = load ptr, ptr %181, align 8, !tbaa !11
  %183 = getelementptr inbounds %class.HighsLp, ptr %182, i32 0, i32 6
  %184 = load i32, ptr %17, align 4, !tbaa !9
  %185 = sext i32 %184 to i64
  %186 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %183, i64 noundef %185) #7
  %187 = load double, ptr %186, align 8, !tbaa !95
  %188 = fneg double %187
  invoke void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %28, double noundef %188)
          to label %189 unwind label %190

189:                                              ; preds = %180
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %24, ptr align 8 %28, i64 16, i1 false), !tbaa.struct !98
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #7
  store double 1.000000e+00, ptr %26, align 8, !tbaa !95
  br label %194

190:                                              ; preds = %180
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %22, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #7
  br label %974

194:                                              ; preds = %189, %171
  call void @_ZNSt6vectorIaSaIaEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @_ZNSt6vectorIdSaIdEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @_ZNSt6vectorIdSaIdEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  %195 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 14
  %196 = load i32, ptr %17, align 4, !tbaa !9
  %197 = sext i32 %196 to i64
  %198 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %195, i64 noundef %197) #7
  %199 = load i32, ptr %198, align 4, !tbaa !9
  %200 = sext i32 %199 to i64
  invoke void @_ZNSt6vectorIaSaIaEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %200)
          to label %201 unwind label %260

201:                                              ; preds = %194
  %202 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 14
  %203 = load i32, ptr %17, align 4, !tbaa !9
  %204 = sext i32 %203 to i64
  %205 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %202, i64 noundef %204) #7
  %206 = load i32, ptr %205, align 4, !tbaa !9
  %207 = sext i32 %206 to i64
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %207)
          to label %208 unwind label %260

208:                                              ; preds = %201
  %209 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 14
  %210 = load i32, ptr %17, align 4, !tbaa !9
  %211 = sext i32 %210 to i64
  %212 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %211) #7
  %213 = load i32, ptr %212, align 4, !tbaa !9
  %214 = sext i32 %213 to i64
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %214)
          to label %215 unwind label %260

215:                                              ; preds = %208
  %216 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 14
  %217 = load i32, ptr %17, align 4, !tbaa !9
  %218 = sext i32 %217 to i64
  %219 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %216, i64 noundef %218) #7
  %220 = load i32, ptr %219, align 4, !tbaa !9
  %221 = sext i32 %220 to i64
  invoke void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %221)
          to label %222 unwind label %260

222:                                              ; preds = %215
  %223 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 14
  %224 = load i32, ptr %17, align 4, !tbaa !9
  %225 = sext i32 %224 to i64
  %226 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %223, i64 noundef %225) #7
  %227 = load i32, ptr %226, align 4, !tbaa !9
  %228 = sext i32 %227 to i64
  invoke void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %228)
          to label %229 unwind label %260

229:                                              ; preds = %222
  %230 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 14
  %231 = load i32, ptr %17, align 4, !tbaa !9
  %232 = sext i32 %231 to i64
  %233 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %230, i64 noundef %232) #7
  %234 = load i32, ptr %233, align 4, !tbaa !9
  %235 = sext i32 %234 to i64
  invoke void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %235)
          to label %236 unwind label %260

236:                                              ; preds = %229
  %237 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 11
  %238 = load i32, ptr %17, align 4, !tbaa !9
  %239 = sext i32 %238 to i64
  %240 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %237, i64 noundef %239) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 4 dereferenceable(4) %240)
          to label %241 unwind label %260

241:                                              ; preds = %236
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #7
  store i8 0, ptr %29, align 1, !tbaa !99
  br label %242

242:                                              ; preds = %402, %400, %241
  %243 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  %244 = xor i1 %243, true
  br i1 %244, label %245, label %409

245:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  %246 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  %247 = load i32, ptr %246, align 4, !tbaa !9
  store i32 %247, ptr %30, align 4, !tbaa !9
  call void @_ZNSt6vectorIiSaIiEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  %248 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 13
  %249 = load i32, ptr %30, align 4, !tbaa !9
  %250 = sext i32 %249 to i64
  %251 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %248, i64 noundef %250) #7
  %252 = load i32, ptr %251, align 4, !tbaa !9
  %253 = icmp ne i32 %252, -1
  br i1 %253, label %254, label %268

254:                                              ; preds = %245
  %255 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 13
  %256 = load i32, ptr %30, align 4, !tbaa !9
  %257 = sext i32 %256 to i64
  %258 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %255, i64 noundef %257) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 4 dereferenceable(4) %258)
          to label %259 unwind label %264

259:                                              ; preds = %254
  br label %268

260:                                              ; preds = %236, %229, %222, %215, %208, %201, %194
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %22, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %23, align 4
  br label %974

264:                                              ; preds = %275, %254
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %22, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %23, align 4
  br label %408

268:                                              ; preds = %259, %245
  %269 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 12
  %270 = load i32, ptr %30, align 4, !tbaa !9
  %271 = sext i32 %270 to i64
  %272 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %269, i64 noundef %271) #7
  %273 = load i32, ptr %272, align 4, !tbaa !9
  %274 = icmp ne i32 %273, -1
  br i1 %274, label %275, label %281

275:                                              ; preds = %268
  %276 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 12
  %277 = load i32, ptr %30, align 4, !tbaa !9
  %278 = sext i32 %277 to i64
  %279 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %276, i64 noundef %278) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 4 dereferenceable(4) %279)
          to label %280 unwind label %264

280:                                              ; preds = %275
  br label %281

281:                                              ; preds = %280, %268
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  %282 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 7
  %283 = load i32, ptr %30, align 4, !tbaa !9
  %284 = sext i32 %283 to i64
  %285 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %282, i64 noundef %284) #7
  %286 = load i32, ptr %285, align 4, !tbaa !9
  store i32 %286, ptr %31, align 4, !tbaa !9
  %287 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %288 = load ptr, ptr %287, align 8, !tbaa !11
  %289 = getelementptr inbounds %class.HighsLp, ptr %288, i32 0, i32 3
  %290 = load i32, ptr %31, align 4, !tbaa !9
  %291 = sext i32 %290 to i64
  %292 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %289, i64 noundef %291) #7
  %293 = load double, ptr %292, align 8, !tbaa !95
  %294 = fcmp oeq double %293, 0xFFF0000000000000
  br i1 %294, label %304, label %295

295:                                              ; preds = %281
  %296 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %297 = load ptr, ptr %296, align 8, !tbaa !11
  %298 = getelementptr inbounds %class.HighsLp, ptr %297, i32 0, i32 4
  %299 = load i32, ptr %31, align 4, !tbaa !9
  %300 = sext i32 %299 to i64
  %301 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %298, i64 noundef %300) #7
  %302 = load double, ptr %301, align 8, !tbaa !95
  %303 = fcmp oeq double %302, 0x7FF0000000000000
  br label %304

304:                                              ; preds = %295, %281
  %305 = phi i1 [ true, %281 ], [ %303, %295 ]
  %306 = zext i1 %305 to i8
  store i8 %306, ptr %29, align 1, !tbaa !99
  %307 = load i8, ptr %29, align 1, !tbaa !99, !range !100, !noundef !101
  %308 = trunc i8 %307 to i1
  br i1 %308, label %309, label %310

309:                                              ; preds = %304
  store i32 6, ptr %18, align 4
  br label %400

310:                                              ; preds = %304
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  %311 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 5
  %312 = load i32, ptr %30, align 4, !tbaa !9
  %313 = sext i32 %312 to i64
  %314 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %311, i64 noundef %313) #7
  %315 = load double, ptr %314, align 8, !tbaa !95
  %316 = load double, ptr %26, align 8, !tbaa !95
  %317 = fmul double %315, %316
  store double %317, ptr %33, align 8, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  %318 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %319 = load ptr, ptr %318, align 8, !tbaa !11
  %320 = getelementptr inbounds %class.HighsLp, ptr %319, i32 0, i32 4
  %321 = load i32, ptr %31, align 4, !tbaa !9
  %322 = sext i32 %321 to i64
  %323 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %320, i64 noundef %322) #7
  %324 = load double, ptr %323, align 8, !tbaa !95
  %325 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %326 = load ptr, ptr %325, align 8, !tbaa !11
  %327 = getelementptr inbounds %class.HighsLp, ptr %326, i32 0, i32 3
  %328 = load i32, ptr %31, align 4, !tbaa !9
  %329 = sext i32 %328 to i64
  %330 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %327, i64 noundef %329) #7
  %331 = load double, ptr %330, align 8, !tbaa !95
  %332 = fsub double %324, %331
  store double %332, ptr %34, align 8, !tbaa !95
  %333 = load double, ptr %33, align 8, !tbaa !95
  %334 = fcmp ogt double %333, 0.000000e+00
  br i1 %334, label %335, label %351

335:                                              ; preds = %310
  store i8 1, ptr %32, align 1, !tbaa !102
  %336 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %337 = load ptr, ptr %336, align 8, !tbaa !11
  %338 = getelementptr inbounds %class.HighsLp, ptr %337, i32 0, i32 4
  %339 = load i32, ptr %31, align 4, !tbaa !9
  %340 = sext i32 %339 to i64
  %341 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %338, i64 noundef %340) #7
  %342 = load double, ptr %341, align 8, !tbaa !95
  %343 = load double, ptr %33, align 8, !tbaa !95
  %344 = fmul double %342, %343
  %345 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16) %24, double noundef %344)
          to label %346 unwind label %347

346:                                              ; preds = %335
  br label %365

347:                                              ; preds = %397, %396, %395, %394, %385, %351, %335
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %22, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %23, align 4
  br label %407

351:                                              ; preds = %310
  store i8 -1, ptr %32, align 1, !tbaa !102
  %352 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %353 = load ptr, ptr %352, align 8, !tbaa !11
  %354 = getelementptr inbounds %class.HighsLp, ptr %353, i32 0, i32 3
  %355 = load i32, ptr %31, align 4, !tbaa !9
  %356 = sext i32 %355 to i64
  %357 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %354, i64 noundef %356) #7
  %358 = load double, ptr %357, align 8, !tbaa !95
  %359 = load double, ptr %33, align 8, !tbaa !95
  %360 = fmul double %358, %359
  %361 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16) %24, double noundef %360)
          to label %362 unwind label %347

362:                                              ; preds = %351
  %363 = load double, ptr %33, align 8, !tbaa !95
  %364 = fneg double %363
  store double %364, ptr %33, align 8, !tbaa !95
  br label %365

365:                                              ; preds = %362, %346
  %366 = load double, ptr %34, align 8, !tbaa !95
  %367 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 4
  %368 = load double, ptr %367, align 8, !tbaa !103
  %369 = fcmp ole double %366, %368
  br i1 %369, label %375, label %370

370:                                              ; preds = %365
  %371 = load double, ptr %33, align 8, !tbaa !95
  %372 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 4
  %373 = load double, ptr %372, align 8, !tbaa !103
  %374 = fcmp ole double %371, %373
  br i1 %374, label %375, label %376

375:                                              ; preds = %370, %365
  store i32 5, ptr %18, align 4
  br label %399, !llvm.loop !104

376:                                              ; preds = %370
  %377 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %378 = load ptr, ptr %377, align 8, !tbaa !11
  %379 = getelementptr inbounds %class.HighsLp, ptr %378, i32 0, i32 16
  %380 = load i32, ptr %31, align 4, !tbaa !9
  %381 = sext i32 %380 to i64
  %382 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %379, i64 noundef %381) #7
  %383 = load i8, ptr %382, align 1, !tbaa !106
  %384 = icmp eq i8 %383, 0
  br i1 %384, label %385, label %391

385:                                              ; preds = %376
  %386 = load double, ptr %33, align 8, !tbaa !95
  %387 = load double, ptr %34, align 8, !tbaa !95
  %388 = fmul double %386, %387
  %389 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16) %25, double noundef %388)
          to label %390 unwind label %347

390:                                              ; preds = %385
  store i32 5, ptr %18, align 4
  br label %399, !llvm.loop !104

391:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  %392 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  %393 = trunc i64 %392 to i32
  store i32 %393, ptr %35, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %394 unwind label %403

394:                                              ; preds = %391
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %395 unwind label %347

395:                                              ; preds = %394
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %396 unwind label %347

396:                                              ; preds = %395
  invoke void @_ZNSt6vectorIaSaIaEE9push_backERKa(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %397 unwind label %347

397:                                              ; preds = %396
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %398 unwind label %347

398:                                              ; preds = %397
  store i32 0, ptr %18, align 4
  br label %399

399:                                              ; preds = %398, %390, %375
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  br label %400

400:                                              ; preds = %399, %309
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  %401 = load i32, ptr %18, align 4
  switch i32 %401, label %987 [
    i32 0, label %402
    i32 6, label %409
    i32 5, label %242
  ]

402:                                              ; preds = %400
  br label %242, !llvm.loop !104

403:                                              ; preds = %391
  %404 = landingpad { ptr, i32 }
          cleanup
  %405 = extractvalue { ptr, i32 } %404, 0
  store ptr %405, ptr %22, align 8
  %406 = extractvalue { ptr, i32 } %404, 1
  store i32 %406, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  br label %407

407:                                              ; preds = %403, %347
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br label %408

408:                                              ; preds = %407, %264
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %973

409:                                              ; preds = %400, %242
  %410 = load i32, ptr %17, align 4, !tbaa !9
  %411 = and i32 %410, 100
  %412 = icmp eq i32 %411, 0
  br i1 %412, label %422, label %413

413:                                              ; preds = %409
  %414 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 14
  %415 = load i32, ptr %17, align 4, !tbaa !9
  %416 = sext i32 %415 to i64
  %417 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %414, i64 noundef %416) #7
  %418 = load i32, ptr %417, align 4, !tbaa !9
  %419 = mul nsw i32 10, %418
  %420 = load i32, ptr %19, align 4, !tbaa !9
  %421 = icmp sgt i32 %419, %420
  br i1 %421, label %422, label %440

422:                                              ; preds = %413, %409
  br label %423

423:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #7
  %424 = invoke noundef i32 @_ZN8presolve9HPresolve14checkTimeLimitEv(ptr noundef nonnull align 8 dereferenceable(1720) %92)
          to label %425 unwind label %430

425:                                              ; preds = %423
  store i32 %424, ptr %36, align 4, !tbaa !108
  %426 = load i32, ptr %36, align 4, !tbaa !108
  %427 = icmp ne i32 %426, 0
  br i1 %427, label %428, label %434

428:                                              ; preds = %425
  %429 = load i32, ptr %36, align 4, !tbaa !108
  store i32 %429, ptr %4, align 4
  store i32 1, ptr %18, align 4
  br label %435

430:                                              ; preds = %423
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %22, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  br label %973

434:                                              ; preds = %425
  store i32 0, ptr %18, align 4
  br label %435

435:                                              ; preds = %434, %428
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  %436 = load i32, ptr %18, align 4
  switch i32 %436, label %963 [
    i32 0, label %437
  ]

437:                                              ; preds = %435
  br label %438

438:                                              ; preds = %437
  br label %439

439:                                              ; preds = %438
  br label %440

440:                                              ; preds = %439, %413
  %441 = load i8, ptr %29, align 1, !tbaa !99, !range !100, !noundef !101
  %442 = trunc i8 %441 to i1
  br i1 %442, label %443, label %444

443:                                              ; preds = %440
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  store i32 4, ptr %18, align 4
  br label %963

444:                                              ; preds = %440
  %445 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 4
  %446 = load double, ptr %445, align 8, !tbaa !103
  %447 = invoke noundef zeroext i1 @_ZNK12HighsCDoubleleEd(ptr noundef nonnull align 8 dereferenceable(16) %24, double noundef %446)
          to label %448 unwind label %459

448:                                              ; preds = %444
  br i1 %447, label %449, label %473

449:                                              ; preds = %448
  br label %450

450:                                              ; preds = %449
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  %451 = load ptr, ptr %6, align 8, !tbaa !5
  %452 = load i32, ptr %17, align 4, !tbaa !9
  %453 = invoke noundef i32 @_ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi(ptr noundef nonnull align 8 dereferenceable(1720) %92, ptr noundef nonnull align 8 dereferenceable(224) %451, i32 noundef %452)
          to label %454 unwind label %463

454:                                              ; preds = %450
  store i32 %453, ptr %37, align 4, !tbaa !108
  %455 = load i32, ptr %37, align 4, !tbaa !108
  %456 = icmp ne i32 %455, 0
  br i1 %456, label %457, label %467

457:                                              ; preds = %454
  %458 = load i32, ptr %37, align 4, !tbaa !108
  store i32 %458, ptr %4, align 4
  store i32 1, ptr %18, align 4
  br label %468

459:                                              ; preds = %444
  %460 = landingpad { ptr, i32 }
          cleanup
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %22, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %23, align 4
  br label %973

463:                                              ; preds = %450
  %464 = landingpad { ptr, i32 }
          cleanup
  %465 = extractvalue { ptr, i32 } %464, 0
  store ptr %465, ptr %22, align 8
  %466 = extractvalue { ptr, i32 } %464, 1
  store i32 %466, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br label %973

467:                                              ; preds = %454
  store i32 0, ptr %18, align 4
  br label %468

468:                                              ; preds = %467, %457
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  %469 = load i32, ptr %18, align 4
  switch i32 %469, label %963 [
    i32 0, label %470
  ]

470:                                              ; preds = %468
  br label %471

471:                                              ; preds = %470
  br label %472

472:                                              ; preds = %471
  store i32 4, ptr %18, align 4
  br label %963

473:                                              ; preds = %448
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #7
  %474 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 4
  %475 = load double, ptr %474, align 8, !tbaa !103
  %476 = fmul double 1.000000e+02, %475
  store double %476, ptr %39, align 8, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  %477 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 4
  %478 = load double, ptr %477, align 8, !tbaa !103
  %479 = invoke noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %24)
          to label %480 unwind label %501

480:                                              ; preds = %473
  %481 = fmul double %478, %479
  store double %481, ptr %40, align 8, !tbaa !95
  %482 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %483 unwind label %501

483:                                              ; preds = %480
  %484 = load double, ptr %482, align 8, !tbaa !95
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  store double %484, ptr %38, align 8, !tbaa !95
  br label %485

485:                                              ; preds = %834, %483
  br label %486

486:                                              ; preds = %485
  call void @llvm.lifetime.start.p0(i64 16, ptr %41) #7
  %487 = invoke { double, double } @_ZNK12HighsCDoublemiERKS_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull align 8 dereferenceable(16) %25)
          to label %488 unwind label %505

488:                                              ; preds = %486
  %489 = getelementptr inbounds { double, double }, ptr %41, i32 0, i32 0
  %490 = extractvalue { double, double } %487, 0
  store double %490, ptr %489, align 8
  %491 = getelementptr inbounds { double, double }, ptr %41, i32 0, i32 1
  %492 = extractvalue { double, double } %487, 1
  store double %492, ptr %491, align 8
  %493 = load double, ptr %38, align 8, !tbaa !95
  %494 = invoke noundef zeroext i1 @_ZNK12HighsCDoubleleEd(ptr noundef nonnull align 8 dereferenceable(16) %41, double noundef %493)
          to label %495 unwind label %505

495:                                              ; preds = %488
  br i1 %494, label %498, label %496

496:                                              ; preds = %495
  %497 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  br label %498

498:                                              ; preds = %496, %495
  %499 = phi i1 [ true, %495 ], [ %497, %496 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #7
  br i1 %499, label %500, label %509

500:                                              ; preds = %498
  br label %851

501:                                              ; preds = %480, %473
  %502 = landingpad { ptr, i32 }
          cleanup
  %503 = extractvalue { ptr, i32 } %502, 0
  store ptr %503, ptr %22, align 8
  %504 = extractvalue { ptr, i32 } %502, 1
  store i32 %504, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  br label %972

505:                                              ; preds = %488, %486
  %506 = landingpad { ptr, i32 }
          cleanup
  %507 = extractvalue { ptr, i32 } %506, 0
  store ptr %507, ptr %22, align 8
  %508 = extractvalue { ptr, i32 } %506, 1
  store i32 %508, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #7
  br label %972

509:                                              ; preds = %498
  %510 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %511 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %42, i32 0, i32 0
  store ptr %510, ptr %511, align 8
  %512 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %513 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %43, i32 0, i32 0
  store ptr %512, ptr %513, align 8
  %514 = getelementptr inbounds %class.anon.514, ptr %44, i32 0, i32 0
  store ptr %9, ptr %514, align 8, !tbaa !5
  %515 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %42, i32 0, i32 0
  %516 = load ptr, ptr %515, align 8
  %517 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %43, i32 0, i32 0
  %518 = load ptr, ptr %517, align 8
  %519 = getelementptr inbounds %class.anon.514, ptr %44, i32 0, i32 0
  %520 = load ptr, ptr %519, align 8
  invoke void @"_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_1EvT_SD_T0_"(ptr %516, ptr %518, ptr %520)
          to label %521 unwind label %535

521:                                              ; preds = %509
  call void @llvm.lifetime.start.p0(i64 16, ptr %45) #7
  %522 = invoke { double, double } @_ZNK12HighsCDoublemiERKS_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull align 8 dereferenceable(16) %25)
          to label %523 unwind label %539

523:                                              ; preds = %521
  %524 = getelementptr inbounds { double, double }, ptr %45, i32 0, i32 0
  %525 = extractvalue { double, double } %522, 0
  store double %525, ptr %524, align 8
  %526 = getelementptr inbounds { double, double }, ptr %45, i32 0, i32 1
  %527 = extractvalue { double, double } %522, 1
  store double %527, ptr %526, align 8
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  %528 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  invoke void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %528)
          to label %529 unwind label %539

529:                                              ; preds = %523
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  %530 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  store i64 %530, ptr %46, align 8, !tbaa !110
  br label %531

531:                                              ; preds = %597, %529
  %532 = load i64, ptr %46, align 8, !tbaa !110
  %533 = icmp ugt i64 %532, 0
  br i1 %533, label %543, label %534

534:                                              ; preds = %531
  store i32 13, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %601

535:                                              ; preds = %509
  %536 = landingpad { ptr, i32 }
          cleanup
  %537 = extractvalue { ptr, i32 } %536, 0
  store ptr %537, ptr %22, align 8
  %538 = extractvalue { ptr, i32 } %536, 1
  store i32 %538, ptr %23, align 4
  br label %972

539:                                              ; preds = %603, %523, %521
  %540 = landingpad { ptr, i32 }
          cleanup
  %541 = extractvalue { ptr, i32 } %540, 0
  store ptr %541, ptr %22, align 8
  %542 = extractvalue { ptr, i32 } %540, 1
  store i32 %542, ptr %23, align 4
  br label %850

543:                                              ; preds = %531
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #7
  %544 = load i64, ptr %46, align 8, !tbaa !110
  %545 = sub i64 %544, 1
  %546 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %545) #7
  %547 = load i32, ptr %546, align 4, !tbaa !9
  store i32 %547, ptr %47, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  %548 = load i32, ptr %47, align 4, !tbaa !9
  %549 = sext i32 %548 to i64
  %550 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %549) #7
  %551 = load double, ptr %550, align 8, !tbaa !95
  %552 = load i32, ptr %47, align 4, !tbaa !9
  %553 = sext i32 %552 to i64
  %554 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %553) #7
  %555 = load double, ptr %554, align 8, !tbaa !95
  %556 = fmul double %551, %555
  store double %556, ptr %48, align 8, !tbaa !95
  %557 = load i32, ptr %47, align 4, !tbaa !9
  %558 = sext i32 %557 to i64
  %559 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %558) #7
  %560 = load double, ptr %559, align 8, !tbaa !95
  %561 = fcmp ole double %560, 1.000000e+03
  call void @llvm.lifetime.start.p0(i64 16, ptr %49) #7
  br i1 %561, label %562, label %580

562:                                              ; preds = %543
  %563 = load i32, ptr %47, align 4, !tbaa !9
  %564 = sext i32 %563 to i64
  %565 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %564) #7
  %566 = load double, ptr %565, align 8, !tbaa !95
  %567 = load double, ptr %38, align 8, !tbaa !95
  %568 = fcmp ogt double %566, %567
  br i1 %568, label %569, label %580

569:                                              ; preds = %562
  %570 = load double, ptr %48, align 8, !tbaa !95
  %571 = invoke { double, double } @_ZNK12HighsCDoublemiEd(ptr noundef nonnull align 8 dereferenceable(16) %45, double noundef %570)
          to label %572 unwind label %584

572:                                              ; preds = %569
  %573 = getelementptr inbounds { double, double }, ptr %49, i32 0, i32 0
  %574 = extractvalue { double, double } %571, 0
  store double %574, ptr %573, align 8
  %575 = getelementptr inbounds { double, double }, ptr %49, i32 0, i32 1
  %576 = extractvalue { double, double } %571, 1
  store double %576, ptr %575, align 8
  %577 = load double, ptr %38, align 8, !tbaa !95
  %578 = invoke noundef zeroext i1 @_ZNK12HighsCDoubleleEd(ptr noundef nonnull align 8 dereferenceable(16) %49, double noundef %577)
          to label %579 unwind label %584

579:                                              ; preds = %572
  br label %580

580:                                              ; preds = %579, %562, %543
  %581 = phi i1 [ false, %562 ], [ false, %543 ], [ %578, %579 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #7
  br i1 %581, label %582, label %592

582:                                              ; preds = %580
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 4 dereferenceable(4) %47)
          to label %583 unwind label %588

583:                                              ; preds = %582
  br label %596

584:                                              ; preds = %572, %569
  %585 = landingpad { ptr, i32 }
          cleanup
  %586 = extractvalue { ptr, i32 } %585, 0
  store ptr %586, ptr %22, align 8
  %587 = extractvalue { ptr, i32 } %585, 1
  store i32 %587, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #7
  br label %600

588:                                              ; preds = %592, %582
  %589 = landingpad { ptr, i32 }
          cleanup
  %590 = extractvalue { ptr, i32 } %589, 0
  store ptr %590, ptr %22, align 8
  %591 = extractvalue { ptr, i32 } %589, 1
  store i32 %591, ptr %23, align 4
  br label %600

592:                                              ; preds = %580
  %593 = load double, ptr %48, align 8, !tbaa !95
  %594 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %45, double noundef %593)
          to label %595 unwind label %588

595:                                              ; preds = %592
  br label %596

596:                                              ; preds = %595, %583
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br label %597

597:                                              ; preds = %596
  %598 = load i64, ptr %46, align 8, !tbaa !110
  %599 = add i64 %598, -1
  store i64 %599, ptr %46, align 8, !tbaa !110
  br label %531, !llvm.loop !111

600:                                              ; preds = %588, %584
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %850

601:                                              ; preds = %534
  %602 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  br i1 %602, label %607, label %603

603:                                              ; preds = %601
  %604 = load double, ptr %38, align 8, !tbaa !95
  %605 = invoke noundef zeroext i1 @_ZNK12HighsCDoubleleEd(ptr noundef nonnull align 8 dereferenceable(16) %45, double noundef %604)
          to label %606 unwind label %539

606:                                              ; preds = %603
  br i1 %605, label %607, label %608

607:                                              ; preds = %606, %601
  store i32 12, ptr %18, align 4
  br label %832

608:                                              ; preds = %606
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #7
  %609 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  %610 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %52, i32 0, i32 0
  store ptr %609, ptr %610, align 8
  %611 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  %612 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %53, i32 0, i32 0
  store ptr %611, ptr %612, align 8
  %613 = getelementptr inbounds %class.anon.515, ptr %54, i32 0, i32 0
  store ptr %9, ptr %613, align 8, !tbaa !5
  %614 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %52, i32 0, i32 0
  %615 = load ptr, ptr %614, align 8
  %616 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %53, i32 0, i32 0
  %617 = load ptr, ptr %616, align 8
  %618 = getelementptr inbounds %class.anon.515, ptr %54, i32 0, i32 0
  %619 = load ptr, ptr %618, align 8
  %620 = invoke ptr @"_ZSt11min_elementIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_0ET_SD_SD_T0_"(ptr %615, ptr %617, ptr %619)
          to label %621 unwind label %660

621:                                              ; preds = %608
  %622 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %51, i32 0, i32 0
  store ptr %620, ptr %622, align 8
  %623 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #7
  %624 = load i32, ptr %623, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  store i32 %624, ptr %50, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  %625 = load i32, ptr %50, align 4, !tbaa !9
  %626 = sext i32 %625 to i64
  %627 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %626) #7
  %628 = load double, ptr %627, align 8, !tbaa !95
  store double %628, ptr %55, align 8, !tbaa !95
  %629 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %629)
          to label %630 unwind label %664

630:                                              ; preds = %621
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #7
  %631 = load double, ptr %55, align 8, !tbaa !95
  %632 = invoke { double, double } @_ZNK12HighsCDoubledvEd(ptr noundef nonnull align 8 dereferenceable(16) %45, double noundef %631)
          to label %633 unwind label %668

633:                                              ; preds = %630
  %634 = getelementptr inbounds { double, double }, ptr %59, i32 0, i32 0
  %635 = extractvalue { double, double } %632, 0
  store double %635, ptr %634, align 8
  %636 = getelementptr inbounds { double, double }, ptr %59, i32 0, i32 1
  %637 = extractvalue { double, double } %632, 1
  store double %637, ptr %636, align 8
  %638 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 4
  %639 = load double, ptr %638, align 8, !tbaa !103
  %640 = invoke { double, double } @_ZNK12HighsCDoublemiEd(ptr noundef nonnull align 8 dereferenceable(16) %59, double noundef %639)
          to label %641 unwind label %668

641:                                              ; preds = %633
  %642 = getelementptr inbounds { double, double }, ptr %58, i32 0, i32 0
  %643 = extractvalue { double, double } %640, 0
  store double %643, ptr %642, align 8
  %644 = getelementptr inbounds { double, double }, ptr %58, i32 0, i32 1
  %645 = extractvalue { double, double } %640, 1
  store double %645, ptr %644, align 8
  %646 = invoke noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %58)
          to label %647 unwind label %668

647:                                              ; preds = %641
  %648 = call double @llvm.ceil.f64(double %646)
  store double %648, ptr %57, align 8, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #7
  store double 1.000000e+00, ptr %60, align 8, !tbaa !95
  %649 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %650 unwind label %672

650:                                              ; preds = %647
  %651 = load double, ptr %649, align 8, !tbaa !95
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  store double %651, ptr %56, align 8, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 16, ptr %61) #7
  %652 = load double, ptr %56, align 8, !tbaa !95
  %653 = fneg double %652
  invoke void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %61, double noundef %653)
          to label %654 unwind label %677

654:                                              ; preds = %650
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #7
  store double 0x7FF0000000000000, ptr %62, align 8, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #7
  store i64 0, ptr %63, align 8, !tbaa !110
  br label %655

655:                                              ; preds = %727, %654
  %656 = load i64, ptr %63, align 8, !tbaa !110
  %657 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  %658 = icmp ne i64 %656, %657
  br i1 %658, label %681, label %659

659:                                              ; preds = %655
  store i32 16, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #7
  br label %743

660:                                              ; preds = %608
  %661 = landingpad { ptr, i32 }
          cleanup
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %22, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  br label %849

664:                                              ; preds = %621
  %665 = landingpad { ptr, i32 }
          cleanup
  %666 = extractvalue { ptr, i32 } %665, 0
  store ptr %666, ptr %22, align 8
  %667 = extractvalue { ptr, i32 } %665, 1
  store i32 %667, ptr %23, align 4
  br label %848

668:                                              ; preds = %641, %633, %630
  %669 = landingpad { ptr, i32 }
          cleanup
  %670 = extractvalue { ptr, i32 } %669, 0
  store ptr %670, ptr %22, align 8
  %671 = extractvalue { ptr, i32 } %669, 1
  store i32 %671, ptr %23, align 4
  br label %676

672:                                              ; preds = %647
  %673 = landingpad { ptr, i32 }
          cleanup
  %674 = extractvalue { ptr, i32 } %673, 0
  store ptr %674, ptr %22, align 8
  %675 = extractvalue { ptr, i32 } %673, 1
  store i32 %675, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  br label %676

676:                                              ; preds = %672, %668
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  br label %847

677:                                              ; preds = %650
  %678 = landingpad { ptr, i32 }
          cleanup
  %679 = extractvalue { ptr, i32 } %678, 0
  store ptr %679, ptr %22, align 8
  %680 = extractvalue { ptr, i32 } %678, 1
  store i32 %680, ptr %23, align 4
  br label %846

681:                                              ; preds = %655
  %682 = load i64, ptr %63, align 8, !tbaa !110
  %683 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %682) #7
  %684 = load i32, ptr %683, align 4, !tbaa !9
  %685 = sext i32 %684 to i64
  %686 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %685) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #7
  %687 = invoke noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %45)
          to label %688 unwind label %730

688:                                              ; preds = %681
  store double %687, ptr %64, align 8, !tbaa !95
  %689 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %686, ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %690 unwind label %730

690:                                              ; preds = %688
  %691 = load double, ptr %689, align 8, !tbaa !95
  %692 = load double, ptr %55, align 8, !tbaa !95
  %693 = fdiv double %691, %692
  %694 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 1
  %695 = load ptr, ptr %694, align 8, !tbaa !112
  %696 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %695, i32 0, i32 12
  %697 = load double, ptr %696, align 8, !tbaa !113
  %698 = fsub double %693, %697
  %699 = call double @llvm.ceil.f64(double %698)
  %700 = load i64, ptr %63, align 8, !tbaa !110
  %701 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %700) #7
  store double %699, ptr %701, align 8, !tbaa !95
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  %702 = load i64, ptr %63, align 8, !tbaa !110
  %703 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %702) #7
  %704 = load i32, ptr %703, align 4, !tbaa !9
  %705 = sext i32 %704 to i64
  %706 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %705) #7
  %707 = load double, ptr %706, align 8, !tbaa !95
  %708 = load i64, ptr %63, align 8, !tbaa !110
  %709 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %708) #7
  %710 = load double, ptr %709, align 8, !tbaa !95
  %711 = fmul double %707, %710
  %712 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16) %61, double noundef %711)
          to label %713 unwind label %734

713:                                              ; preds = %690
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #7
  %714 = load i64, ptr %63, align 8, !tbaa !110
  %715 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %714) #7
  %716 = load i32, ptr %715, align 4, !tbaa !9
  %717 = sext i32 %716 to i64
  %718 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %717) #7
  %719 = load double, ptr %718, align 8, !tbaa !95
  %720 = load i64, ptr %63, align 8, !tbaa !110
  %721 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %720) #7
  %722 = load double, ptr %721, align 8, !tbaa !95
  %723 = fdiv double %719, %722
  store double %723, ptr %65, align 8, !tbaa !95
  %724 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %65)
          to label %725 unwind label %738

725:                                              ; preds = %713
  %726 = load double, ptr %724, align 8, !tbaa !95
  store double %726, ptr %62, align 8, !tbaa !95
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #7
  br label %727

727:                                              ; preds = %725
  %728 = load i64, ptr %63, align 8, !tbaa !110
  %729 = add i64 %728, 1
  store i64 %729, ptr %63, align 8, !tbaa !110
  br label %655, !llvm.loop !118

730:                                              ; preds = %688, %681
  %731 = landingpad { ptr, i32 }
          cleanup
  %732 = extractvalue { ptr, i32 } %731, 0
  store ptr %732, ptr %22, align 8
  %733 = extractvalue { ptr, i32 } %731, 1
  store i32 %733, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  br label %742

734:                                              ; preds = %690
  %735 = landingpad { ptr, i32 }
          cleanup
  %736 = extractvalue { ptr, i32 } %735, 0
  store ptr %736, ptr %22, align 8
  %737 = extractvalue { ptr, i32 } %735, 1
  store i32 %737, ptr %23, align 4
  br label %742

738:                                              ; preds = %713
  %739 = landingpad { ptr, i32 }
          cleanup
  %740 = extractvalue { ptr, i32 } %739, 0
  store ptr %740, ptr %22, align 8
  %741 = extractvalue { ptr, i32 } %739, 1
  store i32 %741, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #7
  br label %742

742:                                              ; preds = %738, %734, %730
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #7
  br label %845

743:                                              ; preds = %659
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %67) #7
  %744 = load double, ptr %56, align 8, !tbaa !95
  %745 = invoke { double, double } @_ZNK12HighsCDoubledvEd(ptr noundef nonnull align 8 dereferenceable(16) %24, double noundef %744)
          to label %746 unwind label %772

746:                                              ; preds = %743
  %747 = getelementptr inbounds { double, double }, ptr %67, i32 0, i32 0
  %748 = extractvalue { double, double } %745, 0
  store double %748, ptr %747, align 8
  %749 = getelementptr inbounds { double, double }, ptr %67, i32 0, i32 1
  %750 = extractvalue { double, double } %745, 1
  store double %750, ptr %749, align 8
  %751 = invoke noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %67)
          to label %752 unwind label %772

752:                                              ; preds = %746
  store double %751, ptr %66, align 8, !tbaa !95
  %753 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %754 unwind label %772

754:                                              ; preds = %752
  %755 = load double, ptr %753, align 8, !tbaa !95
  store double %755, ptr %62, align 8, !tbaa !95
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  %756 = load double, ptr %62, align 8, !tbaa !95
  %757 = load double, ptr %56, align 8, !tbaa !95
  %758 = fmul double %756, %757
  %759 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %24, double noundef %758)
          to label %760 unwind label %776

760:                                              ; preds = %754
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #7
  %761 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  %762 = trunc i64 %761 to i32
  store i32 %762, ptr %68, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %763 unwind label %780

763:                                              ; preds = %760
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #7
  %764 = invoke noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %61)
          to label %765 unwind label %784

765:                                              ; preds = %763
  store double %764, ptr %69, align 8, !tbaa !95
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %766 unwind label %784

766:                                              ; preds = %765
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #7
  store i64 0, ptr %70, align 8, !tbaa !110
  br label %767

767:                                              ; preds = %801, %766
  %768 = load i64, ptr %70, align 8, !tbaa !110
  %769 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  %770 = icmp ne i64 %768, %769
  br i1 %770, label %788, label %771

771:                                              ; preds = %767
  store i32 19, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #7
  br label %804

772:                                              ; preds = %752, %746, %743
  %773 = landingpad { ptr, i32 }
          cleanup
  %774 = extractvalue { ptr, i32 } %773, 0
  store ptr %774, ptr %22, align 8
  %775 = extractvalue { ptr, i32 } %773, 1
  store i32 %775, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  br label %845

776:                                              ; preds = %754
  %777 = landingpad { ptr, i32 }
          cleanup
  %778 = extractvalue { ptr, i32 } %777, 0
  store ptr %778, ptr %22, align 8
  %779 = extractvalue { ptr, i32 } %777, 1
  store i32 %779, ptr %23, align 4
  br label %845

780:                                              ; preds = %829, %760
  %781 = landingpad { ptr, i32 }
          cleanup
  %782 = extractvalue { ptr, i32 } %781, 0
  store ptr %782, ptr %22, align 8
  %783 = extractvalue { ptr, i32 } %781, 1
  store i32 %783, ptr %23, align 4
  br label %844

784:                                              ; preds = %765, %763
  %785 = landingpad { ptr, i32 }
          cleanup
  %786 = extractvalue { ptr, i32 } %785, 0
  store ptr %786, ptr %22, align 8
  %787 = extractvalue { ptr, i32 } %785, 1
  store i32 %787, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #7
  br label %844

788:                                              ; preds = %767
  %789 = load double, ptr %62, align 8, !tbaa !95
  %790 = load i64, ptr %70, align 8, !tbaa !110
  %791 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %790) #7
  %792 = load double, ptr %791, align 8, !tbaa !95
  %793 = load i64, ptr %70, align 8, !tbaa !110
  %794 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %793) #7
  %795 = load i32, ptr %794, align 4, !tbaa !9
  %796 = sext i32 %795 to i64
  %797 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %796) #7
  %798 = load double, ptr %797, align 8, !tbaa !95
  %799 = fneg double %789
  %800 = call double @llvm.fmuladd.f64(double %799, double %792, double %798)
  store double %800, ptr %797, align 8, !tbaa !95
  br label %801

801:                                              ; preds = %788
  %802 = load i64, ptr %70, align 8, !tbaa !110
  %803 = add i64 %802, 1
  store i64 %803, ptr %70, align 8, !tbaa !110
  br label %767, !llvm.loop !119

804:                                              ; preds = %771
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  %805 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %806 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %73, i32 0, i32 0
  store ptr %805, ptr %806, align 8
  %807 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %808 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %74, i32 0, i32 0
  store ptr %807, ptr %808, align 8
  %809 = getelementptr inbounds %class.anon.516, ptr %75, i32 0, i32 0
  store ptr %9, ptr %809, align 8, !tbaa !5
  %810 = getelementptr inbounds %class.anon.516, ptr %75, i32 0, i32 1
  store ptr %92, ptr %810, align 8, !tbaa !120
  %811 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %73, i32 0, i32 0
  %812 = load ptr, ptr %811, align 8
  %813 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %74, i32 0, i32 0
  %814 = load ptr, ptr %813, align 8
  %815 = getelementptr inbounds { ptr, ptr }, ptr %75, i32 0, i32 0
  %816 = load ptr, ptr %815, align 8
  %817 = getelementptr inbounds { ptr, ptr }, ptr %75, i32 0, i32 1
  %818 = load ptr, ptr %817, align 8
  %819 = invoke ptr @"_ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_2ET_SD_SD_T0_"(ptr %812, ptr %814, ptr %816, ptr %818)
          to label %820 unwind label %835

820:                                              ; preds = %804
  %821 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %72, i32 0, i32 0
  store ptr %819, ptr %821, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 8 dereferenceable(8) %72) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #7
  %822 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %823 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %77, i32 0, i32 0
  store ptr %822, ptr %823, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(8) %77) #7
  %824 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.404", ptr %71, i32 0, i32 0
  %825 = load ptr, ptr %824, align 8
  %826 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.404", ptr %76, i32 0, i32 0
  %827 = load ptr, ptr %826, align 8
  %828 = invoke ptr @_ZNSt6vectorIiSaIiEE5eraseEN9__gnu_cxx17__normal_iteratorIPKiS1_EES6_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr %825, ptr %827)
          to label %829 unwind label %839

829:                                              ; preds = %820
  %830 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %78, i32 0, i32 0
  store ptr %828, ptr %830, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 4 dereferenceable(4) %68)
          to label %831 unwind label %780

831:                                              ; preds = %829
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  store i32 0, ptr %18, align 4
  br label %832

832:                                              ; preds = %831, %607
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #7
  %833 = load i32, ptr %18, align 4
  switch i32 %833, label %987 [
    i32 0, label %834
    i32 12, label %851
  ]

834:                                              ; preds = %832
  br label %485, !llvm.loop !122

835:                                              ; preds = %804
  %836 = landingpad { ptr, i32 }
          cleanup
  %837 = extractvalue { ptr, i32 } %836, 0
  store ptr %837, ptr %22, align 8
  %838 = extractvalue { ptr, i32 } %836, 1
  store i32 %838, ptr %23, align 4
  br label %843

839:                                              ; preds = %820
  %840 = landingpad { ptr, i32 }
          cleanup
  %841 = extractvalue { ptr, i32 } %840, 0
  store ptr %841, ptr %22, align 8
  %842 = extractvalue { ptr, i32 } %840, 1
  store i32 %842, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #7
  br label %843

843:                                              ; preds = %839, %835
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  br label %844

844:                                              ; preds = %843, %784, %780
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #7
  br label %845

845:                                              ; preds = %844, %776, %772, %742
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #7
  br label %846

846:                                              ; preds = %845, %677
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #7
  br label %847

847:                                              ; preds = %846, %676
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  br label %848

848:                                              ; preds = %847, %664
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  br label %849

849:                                              ; preds = %848, %660
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %850

850:                                              ; preds = %849, %600, %539
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #7
  br label %972

851:                                              ; preds = %832, %500
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %80) #7
  %852 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 4
  %853 = load double, ptr %852, align 8, !tbaa !103
  %854 = invoke { double, double } @_ZNK12HighsCDoubleplEd(ptr noundef nonnull align 8 dereferenceable(16) %24, double noundef %853)
          to label %855 unwind label %887

855:                                              ; preds = %851
  %856 = getelementptr inbounds { double, double }, ptr %80, i32 0, i32 0
  %857 = extractvalue { double, double } %854, 0
  store double %857, ptr %856, align 8
  %858 = getelementptr inbounds { double, double }, ptr %80, i32 0, i32 1
  %859 = extractvalue { double, double } %854, 1
  store double %859, ptr %858, align 8
  %860 = invoke noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %80)
          to label %861 unwind label %887

861:                                              ; preds = %855
  call void @llvm.lifetime.end.p0(i64 16, ptr %80) #7
  store double %860, ptr %79, align 8, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #7
  %862 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %863 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %83, i32 0, i32 0
  store ptr %862, ptr %863, align 8
  %864 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %865 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %84, i32 0, i32 0
  store ptr %864, ptr %865, align 8
  %866 = getelementptr inbounds %class.anon.517, ptr %85, i32 0, i32 0
  store ptr %12, ptr %866, align 8, !tbaa !5
  %867 = getelementptr inbounds %class.anon.517, ptr %85, i32 0, i32 1
  store ptr %9, ptr %867, align 8, !tbaa !5
  %868 = getelementptr inbounds %class.anon.517, ptr %85, i32 0, i32 2
  store ptr %79, ptr %868, align 8, !tbaa !5
  %869 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %83, i32 0, i32 0
  %870 = load ptr, ptr %869, align 8
  %871 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %84, i32 0, i32 0
  %872 = load ptr, ptr %871, align 8
  %873 = invoke ptr @"_ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_3ET_SD_SD_T0_"(ptr %870, ptr %872, ptr noundef byval(%class.anon.517) align 8 %85)
          to label %874 unwind label %891

874:                                              ; preds = %861
  %875 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %82, i32 0, i32 0
  store ptr %873, ptr %875, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 8 dereferenceable(8) %82) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #7
  %876 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %877 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %87, i32 0, i32 0
  store ptr %876, ptr %877, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull align 8 dereferenceable(8) %87) #7
  %878 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.404", ptr %81, i32 0, i32 0
  %879 = load ptr, ptr %878, align 8
  %880 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.404", ptr %86, i32 0, i32 0
  %881 = load ptr, ptr %880, align 8
  %882 = invoke ptr @_ZNSt6vectorIiSaIiEE5eraseEN9__gnu_cxx17__normal_iteratorIPKiS1_EES6_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr %879, ptr %881)
          to label %883 unwind label %895

883:                                              ; preds = %874
  %884 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %88, i32 0, i32 0
  store ptr %882, ptr %884, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #7
  %885 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  br i1 %885, label %886, label %900

886:                                              ; preds = %883
  store i32 4, ptr %18, align 4
  br label %962

887:                                              ; preds = %855, %851
  %888 = landingpad { ptr, i32 }
          cleanup
  %889 = extractvalue { ptr, i32 } %888, 0
  store ptr %889, ptr %22, align 8
  %890 = extractvalue { ptr, i32 } %888, 1
  store i32 %890, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %80) #7
  br label %971

891:                                              ; preds = %861
  %892 = landingpad { ptr, i32 }
          cleanup
  %893 = extractvalue { ptr, i32 } %892, 0
  store ptr %893, ptr %22, align 8
  %894 = extractvalue { ptr, i32 } %892, 1
  store i32 %894, ptr %23, align 4
  br label %899

895:                                              ; preds = %874
  %896 = landingpad { ptr, i32 }
          cleanup
  %897 = extractvalue { ptr, i32 } %896, 0
  store ptr %897, ptr %22, align 8
  %898 = extractvalue { ptr, i32 } %896, 1
  store i32 %898, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #7
  br label %899

899:                                              ; preds = %895, %891
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #7
  br label %971

900:                                              ; preds = %883
  call void @llvm.lifetime.start.p0(i64 48, ptr %89) #7
  %901 = getelementptr inbounds %class.anon.518, ptr %89, i32 0, i32 0
  store ptr %11, ptr %901, align 8, !tbaa !5
  %902 = getelementptr inbounds %class.anon.518, ptr %89, i32 0, i32 1
  store ptr %92, ptr %902, align 8, !tbaa !123
  %903 = getelementptr inbounds %class.anon.518, ptr %89, i32 0, i32 2
  store ptr %12, ptr %903, align 8, !tbaa !5
  %904 = getelementptr inbounds %class.anon.518, ptr %89, i32 0, i32 3
  store ptr %9, ptr %904, align 8, !tbaa !5
  %905 = getelementptr inbounds %class.anon.518, ptr %89, i32 0, i32 4
  store ptr %24, ptr %905, align 8, !tbaa !5
  %906 = getelementptr inbounds %class.anon.518, ptr %89, i32 0, i32 5
  store ptr %8, ptr %906, align 8, !tbaa !5
  %907 = load double, ptr %26, align 8, !tbaa !95
  %908 = fcmp olt double %907, 0.000000e+00
  br i1 %908, label %909, label %932

909:                                              ; preds = %900
  call void @llvm.lifetime.start.p0(i64 16, ptr %90) #7
  %910 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %911 = load ptr, ptr %910, align 8, !tbaa !11
  %912 = getelementptr inbounds %class.HighsLp, ptr %911, i32 0, i32 5
  %913 = load i32, ptr %17, align 4, !tbaa !9
  %914 = sext i32 %913 to i64
  %915 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %912, i64 noundef %914) #7
  %916 = load double, ptr %915, align 8, !tbaa !95
  invoke void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %90, double noundef %916)
          to label %917 unwind label %928

917:                                              ; preds = %909
  %918 = load i32, ptr %17, align 4, !tbaa !9
  invoke void @"_ZZN8presolve9HPresolve22strengthenInequalitiesERNS_19HighsPostsolveStackERiENK3$_4clEiR12HighsCDoublei"(ptr noundef nonnull align 8 dereferenceable(48) %89, i32 noundef %918, ptr noundef nonnull align 8 dereferenceable(16) %90, i32 noundef -1)
          to label %919 unwind label %928

919:                                              ; preds = %917
  %920 = invoke noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %90)
          to label %921 unwind label %928

921:                                              ; preds = %919
  %922 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %923 = load ptr, ptr %922, align 8, !tbaa !11
  %924 = getelementptr inbounds %class.HighsLp, ptr %923, i32 0, i32 5
  %925 = load i32, ptr %17, align 4, !tbaa !9
  %926 = sext i32 %925 to i64
  %927 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %924, i64 noundef %926) #7
  store double %920, ptr %927, align 8, !tbaa !95
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #7
  br label %955

928:                                              ; preds = %919, %917, %909
  %929 = landingpad { ptr, i32 }
          cleanup
  %930 = extractvalue { ptr, i32 } %929, 0
  store ptr %930, ptr %22, align 8
  %931 = extractvalue { ptr, i32 } %929, 1
  store i32 %931, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #7
  br label %970

932:                                              ; preds = %900
  call void @llvm.lifetime.start.p0(i64 16, ptr %91) #7
  %933 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %934 = load ptr, ptr %933, align 8, !tbaa !11
  %935 = getelementptr inbounds %class.HighsLp, ptr %934, i32 0, i32 6
  %936 = load i32, ptr %17, align 4, !tbaa !9
  %937 = sext i32 %936 to i64
  %938 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %935, i64 noundef %937) #7
  %939 = load double, ptr %938, align 8, !tbaa !95
  invoke void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %91, double noundef %939)
          to label %940 unwind label %951

940:                                              ; preds = %932
  %941 = load i32, ptr %17, align 4, !tbaa !9
  invoke void @"_ZZN8presolve9HPresolve22strengthenInequalitiesERNS_19HighsPostsolveStackERiENK3$_4clEiR12HighsCDoublei"(ptr noundef nonnull align 8 dereferenceable(48) %89, i32 noundef %941, ptr noundef nonnull align 8 dereferenceable(16) %91, i32 noundef 1)
          to label %942 unwind label %951

942:                                              ; preds = %940
  %943 = invoke noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %91)
          to label %944 unwind label %951

944:                                              ; preds = %942
  %945 = getelementptr inbounds %"class.presolve::HPresolve", ptr %92, i32 0, i32 0
  %946 = load ptr, ptr %945, align 8, !tbaa !11
  %947 = getelementptr inbounds %class.HighsLp, ptr %946, i32 0, i32 6
  %948 = load i32, ptr %17, align 4, !tbaa !9
  %949 = sext i32 %948 to i64
  %950 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %947, i64 noundef %949) #7
  store double %943, ptr %950, align 8, !tbaa !95
  call void @llvm.lifetime.end.p0(i64 16, ptr %91) #7
  br label %955

951:                                              ; preds = %942, %940, %932
  %952 = landingpad { ptr, i32 }
          cleanup
  %953 = extractvalue { ptr, i32 } %952, 0
  store ptr %953, ptr %22, align 8
  %954 = extractvalue { ptr, i32 } %952, 1
  store i32 %954, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %91) #7
  br label %970

955:                                              ; preds = %944, %921
  %956 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %957 = load ptr, ptr %7, align 8, !tbaa !5
  %958 = load i32, ptr %957, align 4, !tbaa !9
  %959 = sext i32 %958 to i64
  %960 = add i64 %959, %956
  %961 = trunc i64 %960 to i32
  store i32 %961, ptr %957, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 48, ptr %89) #7
  store i32 0, ptr %18, align 4
  br label %962

962:                                              ; preds = %955, %886
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  br label %963

963:                                              ; preds = %962, %472, %468, %443, %435
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #7
  br label %964

964:                                              ; preds = %963, %148
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  %965 = load i32, ptr %18, align 4
  switch i32 %965, label %977 [
    i32 0, label %966
    i32 4, label %967
  ]

966:                                              ; preds = %964
  br label %967

967:                                              ; preds = %966, %964, %128, %109
  %968 = load i32, ptr %17, align 4, !tbaa !9
  %969 = add nsw i32 %968, 1
  store i32 %969, ptr %17, align 4, !tbaa !9
  br label %94, !llvm.loop !125

970:                                              ; preds = %951, %928
  call void @llvm.lifetime.end.p0(i64 48, ptr %89) #7
  br label %971

971:                                              ; preds = %970, %899, %887
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #7
  br label %972

972:                                              ; preds = %971, %850, %535, %505, %501
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  br label %973

973:                                              ; preds = %972, %463, %459, %430, %408
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #7
  br label %974

974:                                              ; preds = %973, %260, %190, %176
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  br label %975

975:                                              ; preds = %974, %172
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #7
  br label %976

976:                                              ; preds = %975, %149
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #7
  call void @_ZNSt6vectorIaSaIaEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #7
  br label %982

977:                                              ; preds = %964, %101
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  %978 = load i32, ptr %18, align 4
  switch i32 %978, label %980 [
    i32 2, label %979
  ]

979:                                              ; preds = %977
  store i32 0, ptr %4, align 4
  store i32 1, ptr %18, align 4
  br label %980

980:                                              ; preds = %979, %977
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #7
  call void @_ZNSt6vectorIaSaIaEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #7
  %981 = load i32, ptr %4, align 4
  ret i32 %981

982:                                              ; preds = %976
  %983 = load ptr, ptr %22, align 8
  %984 = load i32, ptr %23, align 4
  %985 = insertvalue { ptr, i32 } poison, ptr %983, 0
  %986 = insertvalue { ptr, i32 } %985, i32 %984, 1
  resume { ptr, i32 } %986

987:                                              ; preds = %832, %400
  unreachable
}

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_1EvT_SD_T0_"(ptr, ptr, ptr) #6

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden ptr @"_ZSt11min_elementIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_0ET_SD_SD_T0_"(ptr, ptr, ptr) #6

; Function Attrs: inlinehint mustprogress uwtable
declare hidden ptr @"_ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_2ET_SD_SD_T0_"(ptr, ptr, ptr, ptr) #6

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden ptr @"_ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_3ET_SD_SD_T0_"(ptr, ptr, ptr noundef byval(%class.anon.517) align 8) #6

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN8presolve9HPresolve22strengthenInequalitiesERNS_19HighsPostsolveStackERiENK3$_4clEiR12HighsCDoublei"(ptr noundef nonnull align 8 dereferenceable(48), i32 noundef, ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIaSaIaEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { 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 #7 = { 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 = !{!12, !6, i64 0}
!12 = !{!"_ZTSN8presolve9HPresolveE", !6, i64 0, !6, i64 8, !6, i64 16, !6, 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, !10, i64 1560, !10, i64 1564, !10, i64 1568, !10, i64 1572, !10, i64 1576, !10, i64 1580, !57, i64 1584, !62, i64 1588, !63, i64 1592}
!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", !6, i64 0, !6, i64 8, !6, 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", !6, i64 0, !6, i64 8, !6, 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", !6, i64 0, !6, i64 8, !6, 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, !6, i64 192, !6, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, 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", !6, i64 0, !6, i64 8, !6, 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", !6, i64 0, !6, i64 8, !6, 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", !6, i64 0, !6, i64 8, !6, 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", !6, i64 0, !41, i64 8, !42, i64 16, !41, i64 24, !43, i64 32, !6, i64 48}
!41 = !{!"long", !7, i64 0}
!42 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, 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, !6, i64 8, !6, i64 16, !6, 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", !6, i64 0, !6, i64 8, !6, 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", !6, i64 0, !6, i64 8, !6, i64 16}
!62 = !{!"_ZTS19HighsPresolveStatus", !7, i64 0}
!63 = !{!"_ZTS17HPresolveAnalysis", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !10, i64 40, !10, i64 44, !64, i64 48, !57, i64 88, !57, i64 89, !10, i64 92, !10, i64 96, !10, 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, !6, i64 32}
!68 = !{!"_ZTSSt13_Bit_iterator", !69, i64 0}
!69 = !{!"_ZTSSt18_Bit_iterator_base", !6, i64 0, !10, 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", !6, i64 0, !6, i64 8, !6, i64 16}
!75 = !{!76, !10, i64 4}
!76 = !{!"_ZTS7HighsLp", !10, i64 0, !10, i64 4, !14, i64 8, !14, i64 32, !14, i64 56, !14, i64 80, !14, i64 104, !77, i64 128, !79, i64 240, !13, i64 248, !80, i64 256, !80, i64 288, !10, i64 320, !10, i64 324, !82, i64 328, !82, i64 352, !86, i64 376, !90, i64 400, !90, i64 456, !10, i64 512, !10, i64 516, !93, i64 520, !57, i64 592, !57, i64 593, !10, i64 596, !57, i64 600, !94, i64 608}
!77 = !{!"_ZTS17HighsSparseMatrix", !78, i64 0, !10, i64 4, !10, i64 8, !18, i64 16, !18, i64 40, !18, i64 64, !14, i64 88}
!78 = !{!"_ZTS12MatrixFormat", !7, i64 0}
!79 = !{!"_ZTS8ObjSense", !7, i64 0}
!80 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !81, i64 0, !41, i64 8, !7, i64 16}
!81 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!82 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !83, i64 0}
!83 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !84, i64 0}
!84 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !85, i64 0}
!85 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!86 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !87, i64 0}
!87 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !88, i64 0}
!88 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !89, i64 0}
!89 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!90 = !{!"_ZTS13HighsNameHash", !91, i64 0}
!91 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !92, i64 0}
!92 = !{!"_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, !41, i64 8, !42, i64 16, !41, i64 24, !43, i64 32, !6, i64 48}
!93 = !{!"_ZTS10HighsScale", !10, i64 0, !57, i64 4, !10, i64 8, !10, i64 12, !13, i64 16, !14, i64 24, !14, i64 48}
!94 = !{!"_ZTS11HighsLpMods", !18, i64 0, !18, i64 24, !14, i64 48, !14, i64 72, !86, 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}
!95 = !{!13, !13, i64 0}
!96 = !{!76, !10, i64 0}
!97 = !{!12, !10, i64 1572}
!98 = !{i64 0, i64 8, !95, i64 8, i64 8, !95}
!99 = !{!57, !57, i64 0}
!100 = !{i8 0, i8 2}
!101 = !{}
!102 = !{!7, !7, i64 0}
!103 = !{!12, !13, i64 32}
!104 = distinct !{!104, !105}
!105 = !{!"llvm.loop.mustprogress"}
!106 = !{!107, !107, i64 0}
!107 = !{!"_ZTS12HighsVarType", !7, i64 0}
!108 = !{!109, !109, i64 0}
!109 = !{!"_ZTSN8presolve9HPresolve6ResultE", !7, i64 0}
!110 = !{!41, !41, i64 0}
!111 = distinct !{!111, !105}
!112 = !{!12, !6, i64 8}
!113 = !{!114, !13, i64 264}
!114 = !{!"_ZTS18HighsOptionsStruct", !80, i64 8, !80, i64 40, !80, i64 72, !80, i64 104, !13, i64 136, !80, i64 144, !80, i64 176, !10, i64 208, !80, 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, !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, !80, i64 392, !57, i64 424, !57, i64 425, !57, i64 426, !10, i64 428, !10, i64 432, !80, i64 440, !57, i64 472, !57, i64 473, !57, i64 474, !10, i64 476, !57, i64 480, !57, i64 481, !10, i64 484, !10, i64 488, !13, i64 496, !10, i64 504, !10, i64 508, !10, i64 512, !57, i64 516, !10, i64 520, !57, i64 524, !57, i64 525, !57, i64 526, !57, i64 527, !57, i64 528, !57, i64 529, !57, 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, !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, !10, i64 692, !13, i64 696, !57, i64 704, !57, i64 705, !80, i64 712, !13, i64 744, !10, i64 752, !10, i64 756, !57, i64 760, !57, i64 761, !57, i64 762, !57, 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, !13, i64 808, !13, i64 816, !13, i64 824, !13, i64 832, !13, i64 840, !57, i64 848, !57, i64 849, !80, i64 856, !57, i64 888, !10, i64 892, !115, i64 896}
!115 = !{!"_ZTS15HighsLogOptions", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !116, i64 48, !6, i64 80, !57, i64 88}
!116 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !117, i64 0, !6, i64 24}
!117 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!118 = distinct !{!118, !105}
!119 = distinct !{!119, !105}
!120 = !{!121, !6, i64 8}
!121 = !{!"_ZTSZN8presolve9HPresolve22strengthenInequalitiesERNS_19HighsPostsolveStackERiE3$_2", !6, i64 0, !6, i64 8}
!122 = distinct !{!122, !105}
!123 = !{!124, !6, i64 8}
!124 = !{!"_ZTSZN8presolve9HPresolve22strengthenInequalitiesERNS_19HighsPostsolveStackERiE3$_4", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40}
!125 = distinct !{!125, !105}


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

%"class.std::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.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.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsCDouble = type { double, double }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.404" = type { ptr }
%class.anon.517 = type { ptr, ptr, ptr }
%class.anon.518 = type { ptr, ptr, ptr, ptr, ptr, ptr }

; 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 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 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) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 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 nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) local_unnamed_addr #3 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 nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) 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 #3 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 #3 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN8presolve9HPresolve22strengthenInequalitiesERNS_19HighsPostsolveStackERi(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1, ptr nocapture noundef nonnull align 4 dereferenceable(4) %2) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::vector.254", align 8
  %5 = alloca %"class.std::vector.20", align 8
  %6 = alloca %"class.std::vector.20", align 8
  %7 = alloca %"class.std::vector.5", align 8
  %8 = alloca %"class.std::vector.5", align 8
  %9 = alloca %"class.std::vector.5", align 8
  %10 = alloca %"class.std::vector.20", align 8
  %11 = alloca %"class.std::vector.5", align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca %class.HighsCDouble, align 8
  %15 = alloca %class.HighsCDouble, align 8
  %16 = alloca %class.HighsCDouble, align 8
  %17 = alloca %class.HighsCDouble, align 8
  %18 = alloca i32, align 4
  %19 = alloca i8, align 1
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca i32, align 4
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca %class.HighsCDouble, align 8
  %26 = alloca %class.HighsCDouble, align 8
  %27 = alloca i32, align 4
  %28 = alloca %class.HighsCDouble, align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %30 = alloca double, align 8
  %31 = alloca %class.HighsCDouble, align 8
  %32 = alloca %class.HighsCDouble, align 8
  %33 = alloca double, align 8
  %34 = alloca %class.HighsCDouble, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca %class.HighsCDouble, align 8
  %40 = alloca i32, align 4
  %41 = alloca double, align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.404", align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.404", align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %46 = alloca double, align 8
  %47 = alloca %class.HighsCDouble, align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator.404", align 8
  %49 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %50 = alloca %class.anon.517, align 8
  %51 = alloca %"class.__gnu_cxx::__normal_iterator.404", align 8
  %52 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %53 = alloca %class.anon.518, align 8
  %54 = alloca %class.HighsCDouble, align 8
  %55 = alloca %class.HighsCDouble, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #7
  call void @_ZNSt6vectorIaSaIaEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #7
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #7
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #7
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  store i32 0, ptr %2, align 4, !tbaa !5
  %56 = load ptr, ptr %0, align 8, !tbaa !9
  %57 = getelementptr inbounds i8, ptr %56, i64 4
  %58 = load i32, ptr %57, align 4, !tbaa !74
  %.not215 = icmp eq i32 %58, 0
  br i1 %.not215, label %.loopexit195, label %.lr.ph218

.lr.ph218:                                        ; preds = %3
  %59 = getelementptr inbounds i8, ptr %0, i64 256
  %60 = getelementptr inbounds i8, ptr %0, i64 1572
  %61 = getelementptr inbounds i8, ptr %0, i64 184
  %62 = getelementptr inbounds i8, ptr %0, i64 232
  %63 = getelementptr inbounds i8, ptr %0, i64 208
  %64 = getelementptr inbounds i8, ptr %0, i64 88
  %65 = getelementptr inbounds i8, ptr %0, i64 40
  %66 = getelementptr inbounds i8, ptr %0, i64 32
  %67 = getelementptr inbounds i8, ptr %25, i64 8
  %68 = getelementptr inbounds i8, ptr %26, i64 8
  %69 = getelementptr inbounds i8, ptr %28, i64 8
  %70 = getelementptr inbounds i8, ptr %32, i64 8
  %71 = getelementptr inbounds i8, ptr %31, i64 8
  %72 = getelementptr inbounds i8, ptr %0, i64 8
  %73 = getelementptr inbounds i8, ptr %39, i64 8
  %74 = getelementptr inbounds i8, ptr %47, i64 8
  %75 = getelementptr inbounds i8, ptr %50, i64 8
  %76 = getelementptr inbounds i8, ptr %50, i64 16
  %77 = getelementptr inbounds i8, ptr %53, i64 8
  %78 = getelementptr inbounds i8, ptr %53, i64 16
  %79 = getelementptr inbounds i8, ptr %53, i64 24
  %80 = getelementptr inbounds i8, ptr %53, i64 32
  %81 = getelementptr inbounds i8, ptr %53, i64 40
  br label %82

82:                                               ; preds = %.lr.ph218, %.thread182
  %indvars.iv = phi i64 [ 0, %.lr.ph218 ], [ %indvars.iv.next, %.thread182 ]
  %83 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %indvars.iv) #7
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = icmp slt i32 %84, 2
  br i1 %85, label %.thread182, label %86

86:                                               ; preds = %82
  %87 = load ptr, ptr %0, align 8, !tbaa !9
  %88 = getelementptr inbounds i8, ptr %87, i64 80
  %89 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef %indvars.iv) #7
  %90 = load double, ptr %89, align 8, !tbaa !94
  %91 = fcmp une double %90, 0xFFF0000000000000
  br i1 %91, label %92, label %98

92:                                               ; preds = %86
  %93 = load ptr, ptr %0, align 8, !tbaa !9
  %94 = getelementptr inbounds i8, ptr %93, i64 104
  %95 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef %indvars.iv) #7
  %96 = load double, ptr %95, align 8, !tbaa !94
  %97 = fcmp une double %96, 0x7FF0000000000000
  br i1 %97, label %.thread182, label %98

98:                                               ; preds = %92, %86
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #7
  store i32 1000, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #7
  %99 = load ptr, ptr %0, align 8, !tbaa !9
  %100 = load i32, ptr %99, align 8, !tbaa !95
  %101 = load i32, ptr %60, align 4, !tbaa !96
  %102 = sub nsw i32 %100, %101
  %103 = sdiv i32 %102, 20
  store i32 %103, ptr %13, align 4, !tbaa !5
  %104 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 4 dereferenceable(4) %13)
  %105 = load i32, ptr %104, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #7
  %106 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %indvars.iv) #7
  %107 = load i32, ptr %106, align 4, !tbaa !5
  %108 = icmp sgt i32 %107, %105
  br i1 %108, label %.thread182, label %109

109:                                              ; preds = %98
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #7
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %15, double noundef 0.000000e+00)
  %110 = load ptr, ptr %0, align 8, !tbaa !9
  %111 = getelementptr inbounds i8, ptr %110, i64 80
  %112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %111, i64 noundef %indvars.iv) #7
  %113 = load double, ptr %112, align 8, !tbaa !94
  %114 = fcmp une double %113, 0xFFF0000000000000
  br i1 %114, label %115, label %120

115:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #7
  %116 = load ptr, ptr %0, align 8, !tbaa !9
  %117 = getelementptr inbounds i8, ptr %116, i64 80
  %118 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %117, i64 noundef %indvars.iv) #7
  %119 = load double, ptr %118, align 8, !tbaa !94
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %16, double noundef %119)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull align 8 dereferenceable(16) %16, i64 16, i1 false), !tbaa.struct !97
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #7
  br label %126

120:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #7
  %121 = load ptr, ptr %0, align 8, !tbaa !9
  %122 = getelementptr inbounds i8, ptr %121, i64 104
  %123 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %122, i64 noundef %indvars.iv) #7
  %124 = load double, ptr %123, align 8, !tbaa !94
  %125 = fneg double %124
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %17, double noundef %125)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull align 8 dereferenceable(16) %17, i64 16, i1 false), !tbaa.struct !97
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #7
  br label %126

126:                                              ; preds = %120, %115
  %.0131 = phi double [ -1.000000e+00, %115 ], [ 1.000000e+00, %120 ]
  call void @_ZNSt6vectorIaSaIaEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  call void @_ZNSt6vectorIdSaIdEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @_ZNSt6vectorIdSaIdEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  %127 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %indvars.iv) #7
  %128 = load i32, ptr %127, align 4, !tbaa !5
  %129 = sext i32 %128 to i64
  invoke void @_ZNSt6vectorIaSaIaEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %129)
          to label %130 unwind label %163

130:                                              ; preds = %126
  %131 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %indvars.iv) #7
  %132 = load i32, ptr %131, align 4, !tbaa !5
  %133 = sext i32 %132 to i64
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %133)
          to label %134 unwind label %163

134:                                              ; preds = %130
  %135 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %indvars.iv) #7
  %136 = load i32, ptr %135, align 4, !tbaa !5
  %137 = sext i32 %136 to i64
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %137)
          to label %138 unwind label %163

138:                                              ; preds = %134
  %139 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %indvars.iv) #7
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = sext i32 %140 to i64
  invoke void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %141)
          to label %142 unwind label %163

142:                                              ; preds = %138
  %143 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %indvars.iv) #7
  %144 = load i32, ptr %143, align 4, !tbaa !5
  %145 = sext i32 %144 to i64
  invoke void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %145)
          to label %146 unwind label %163

146:                                              ; preds = %142
  %147 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %indvars.iv) #7
  %148 = load i32, ptr %147, align 4, !tbaa !5
  %149 = sext i32 %148 to i64
  invoke void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %149)
          to label %150 unwind label %163

150:                                              ; preds = %146
  %151 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %61, i64 noundef %indvars.iv) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 4 dereferenceable(4) %151)
          to label %.preheader unwind label %163

.preheader:                                       ; preds = %150
  %152 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  br i1 %152, label %.loopexit194, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader, %255
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #7
  %153 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  %154 = load i32, ptr %153, align 4, !tbaa !5
  store i32 %154, ptr %18, align 4, !tbaa !5
  call void @_ZNSt6vectorIiSaIiEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  %155 = load i32, ptr %18, align 4, !tbaa !5
  %156 = sext i32 %155 to i64
  %157 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %156) #7
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %.not142 = icmp eq i32 %158, -1
  br i1 %.not142, label %167, label %159

159:                                              ; preds = %.lr.ph
  %160 = load i32, ptr %18, align 4, !tbaa !5
  %161 = sext i32 %160 to i64
  %162 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %161) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 4 dereferenceable(4) %162)
          to label %167 unwind label %165

163:                                              ; preds = %150, %146, %142, %138, %134, %130, %126
  %164 = landingpad { ptr, i32 }
          cleanup
  br label %533

165:                                              ; preds = %172, %159
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %260

167:                                              ; preds = %159, %.lr.ph
  %168 = load i32, ptr %18, align 4, !tbaa !5
  %169 = sext i32 %168 to i64
  %170 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %63, i64 noundef %169) #7
  %171 = load i32, ptr %170, align 4, !tbaa !5
  %.not143 = icmp eq i32 %171, -1
  br i1 %.not143, label %176, label %172

172:                                              ; preds = %167
  %173 = load i32, ptr %18, align 4, !tbaa !5
  %174 = sext i32 %173 to i64
  %175 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %63, i64 noundef %174) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 4 dereferenceable(4) %175)
          to label %176 unwind label %165

176:                                              ; preds = %172, %167
  %177 = load i32, ptr %18, align 4, !tbaa !5
  %178 = sext i32 %177 to i64
  %179 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %64, i64 noundef %178) #7
  %180 = load i32, ptr %179, align 4, !tbaa !5
  %181 = load ptr, ptr %0, align 8, !tbaa !9
  %182 = getelementptr inbounds i8, ptr %181, i64 32
  %183 = sext i32 %180 to i64
  %184 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %182, i64 noundef %183) #7
  %185 = load double, ptr %184, align 8, !tbaa !94
  %186 = fcmp oeq double %185, 0xFFF0000000000000
  br i1 %186, label %.thread174, label %187

187:                                              ; preds = %176
  %188 = load ptr, ptr %0, align 8, !tbaa !9
  %189 = getelementptr inbounds i8, ptr %188, i64 56
  %190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %189, i64 noundef %183) #7
  %191 = load double, ptr %190, align 8, !tbaa !94
  %192 = fcmp oeq double %191, 0x7FF0000000000000
  br i1 %192, label %.thread174, label %193

193:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #7
  %194 = load i32, ptr %18, align 4, !tbaa !5
  %195 = sext i32 %194 to i64
  %196 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %65, i64 noundef %195) #7
  %197 = load double, ptr %196, align 8, !tbaa !94
  %198 = fmul double %.0131, %197
  store double %198, ptr %20, align 8, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #7
  %199 = load ptr, ptr %0, align 8, !tbaa !9
  %200 = getelementptr inbounds i8, ptr %199, i64 56
  %201 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %200, i64 noundef %183) #7
  %202 = load double, ptr %201, align 8, !tbaa !94
  %203 = load ptr, ptr %0, align 8, !tbaa !9
  %204 = getelementptr inbounds i8, ptr %203, i64 32
  %205 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %204, i64 noundef %183) #7
  %206 = load double, ptr %205, align 8, !tbaa !94
  %207 = fsub double %202, %206
  store double %207, ptr %21, align 8, !tbaa !94
  %208 = load double, ptr %20, align 8, !tbaa !94
  %209 = fcmp ogt double %208, 0.000000e+00
  br i1 %209, label %210, label %220

210:                                              ; preds = %193
  store i8 1, ptr %19, align 1, !tbaa !98
  %211 = load ptr, ptr %0, align 8, !tbaa !9
  %212 = getelementptr inbounds i8, ptr %211, i64 56
  %213 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %212, i64 noundef %183) #7
  %214 = load double, ptr %213, align 8, !tbaa !94
  %215 = load double, ptr %20, align 8, !tbaa !94
  %216 = fmul double %214, %215
  %217 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16) %14, double noundef %216)
          to label %._crit_edge225 unwind label %218

._crit_edge225:                                   ; preds = %210
  %.pre = load double, ptr %20, align 8
  br label %231

218:                                              ; preds = %254, %253, %252, %251, %243, %220, %210
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %259

220:                                              ; preds = %193
  store i8 -1, ptr %19, align 1, !tbaa !98
  %221 = load ptr, ptr %0, align 8, !tbaa !9
  %222 = getelementptr inbounds i8, ptr %221, i64 32
  %223 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %222, i64 noundef %183) #7
  %224 = load double, ptr %223, align 8, !tbaa !94
  %225 = load double, ptr %20, align 8, !tbaa !94
  %226 = fmul double %224, %225
  %227 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16) %14, double noundef %226)
          to label %228 unwind label %218

228:                                              ; preds = %220
  %229 = load double, ptr %20, align 8, !tbaa !94
  %230 = fneg double %229
  store double %230, ptr %20, align 8, !tbaa !94
  br label %231

231:                                              ; preds = %._crit_edge225, %228
  %232 = phi double [ %.pre, %._crit_edge225 ], [ %230, %228 ]
  %233 = load double, ptr %21, align 8, !tbaa !94
  %234 = load double, ptr %66, align 8, !tbaa !99
  %235 = fcmp ugt double %233, %234
  %236 = fcmp ugt double %232, %234
  %or.cond = select i1 %235, i1 %236, i1 false
  br i1 %or.cond, label %237, label %255, !llvm.loop !100

237:                                              ; preds = %231
  %238 = load ptr, ptr %0, align 8, !tbaa !9
  %239 = getelementptr inbounds i8, ptr %238, i64 376
  %240 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %239, i64 noundef %183) #7
  %241 = load i8, ptr %240, align 1, !tbaa !102
  %242 = icmp eq i8 %241, 0
  br i1 %242, label %243, label %248

243:                                              ; preds = %237
  %244 = load double, ptr %20, align 8, !tbaa !94
  %245 = load double, ptr %21, align 8, !tbaa !94
  %246 = fmul double %244, %245
  %247 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16) %15, double noundef %246)
          to label %255 unwind label %218, !llvm.loop !100

248:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #7
  %249 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %250 = trunc i64 %249 to i32
  store i32 %250, ptr %22, align 4, !tbaa !5
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %251 unwind label %257

251:                                              ; preds = %248
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %252 unwind label %218

252:                                              ; preds = %251
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %253 unwind label %218

253:                                              ; preds = %252
  invoke void @_ZNSt6vectorIaSaIaEE9push_backERKa(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %254 unwind label %218

254:                                              ; preds = %253
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %255 unwind label %218

.thread174:                                       ; preds = %187, %176
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  br label %.loopexit194

255:                                              ; preds = %231, %243, %254
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  %256 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  br i1 %256, label %.loopexit194, label %.lr.ph

257:                                              ; preds = %248
  %258 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #7
  br label %259

259:                                              ; preds = %257, %218
  %.pn = phi { ptr, i32 } [ %219, %218 ], [ %258, %257 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  br label %260

260:                                              ; preds = %259, %165
  %.pn.pn = phi { ptr, i32 } [ %.pn, %259 ], [ %166, %165 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  br label %533

.loopexit194:                                     ; preds = %255, %.preheader, %.thread174
  %261 = phi i1 [ false, %.thread174 ], [ true, %.preheader ], [ true, %255 ]
  %262 = trunc nuw nsw i64 %indvars.iv to i32
  %263 = and i32 %262, 100
  %264 = icmp eq i32 %263, 0
  br i1 %264, label %270, label %265

265:                                              ; preds = %.loopexit194
  %266 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %indvars.iv) #7
  %267 = load i32, ptr %266, align 4, !tbaa !5
  %268 = mul nsw i32 %267, 10
  %269 = icmp sgt i32 %268, %105
  br i1 %269, label %270, label %275

270:                                              ; preds = %.loopexit194, %265
  %271 = invoke noundef i32 @_ZN8presolve9HPresolve14checkTimeLimitEv(ptr noundef nonnull align 8 dereferenceable(1720) %0)
          to label %272 unwind label %273

272:                                              ; preds = %270
  %.not146 = icmp eq i32 %271, 0
  br i1 %.not146, label %275, label %.thread186

273:                                              ; preds = %270
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %533

275:                                              ; preds = %272, %265
  br i1 %261, label %277, label %276

276:                                              ; preds = %275
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  br label %.thread191

277:                                              ; preds = %275
  %278 = load double, ptr %66, align 8, !tbaa !99
  %279 = call noundef zeroext i1 @_ZNK12HighsCDoubleleEd(ptr noundef nonnull align 8 dereferenceable(16) %14, double noundef %278)
  br i1 %279, label %280, label %285

280:                                              ; preds = %277
  %281 = invoke noundef i32 @_ZN8presolve9HPresolve11rowPresolveERNS_19HighsPostsolveStackEi(ptr noundef nonnull align 8 dereferenceable(1720) %0, ptr noundef nonnull align 8 dereferenceable(224) %1, i32 noundef %262)
          to label %282 unwind label %283

282:                                              ; preds = %280
  %.not170 = icmp eq i32 %281, 0
  br i1 %.not170, label %.thread191, label %.thread186

283:                                              ; preds = %280
  %284 = landingpad { ptr, i32 }
          cleanup
  br label %533

285:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #7
  %286 = load double, ptr %66, align 8, !tbaa !99
  %287 = fmul double %286, 1.000000e+02
  store double %287, ptr %23, align 8, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #7
  %288 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
  %289 = fmul double %286, %288
  store double %289, ptr %24, align 8, !tbaa !94
  %290 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24)
  %291 = load double, ptr %290, align 8, !tbaa !94
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #7
  %292 = call { double, double } @_ZNK12HighsCDoublemiERKS_(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull align 8 dereferenceable(16) %15)
  %293 = extractvalue { double, double } %292, 0
  store double %293, ptr %25, align 8
  %294 = extractvalue { double, double } %292, 1
  store double %294, ptr %67, align 8
  %295 = call noundef zeroext i1 @_ZNK12HighsCDoubleleEd(ptr noundef nonnull align 8 dereferenceable(16) %25, double noundef %291)
  br i1 %295, label %.critedge, label %.lr.ph214

.lr.ph214:                                        ; preds = %285, %462
  %296 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #7
  br i1 %296, label %.loopexit, label %297

.critedge:                                        ; preds = %462, %285
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #7
  br label %.loopexit

297:                                              ; preds = %.lr.ph214
  %298 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  %299 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  invoke void @"_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_1EvT_SD_T0_"(ptr %298, ptr %299, ptr nonnull %5)
          to label %300 unwind label %308

300:                                              ; preds = %297
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #7
  %301 = call { double, double } @_ZNK12HighsCDoublemiERKS_(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull align 8 dereferenceable(16) %15)
  %302 = extractvalue { double, double } %301, 0
  store double %302, ptr %26, align 8
  %303 = extractvalue { double, double } %301, 1
  store double %303, ptr %68, align 8
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %304 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  invoke void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %304)
          to label %305 unwind label %310

305:                                              ; preds = %300
  %306 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  %.not147200 = icmp eq i64 %306, 0
  br i1 %.not147200, label %._crit_edge, label %.lr.ph202

._crit_edge:                                      ; preds = %344, %305
  %307 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  br i1 %307, label %.thread179, label %345

308:                                              ; preds = %297
  %309 = landingpad { ptr, i32 }
          cleanup
  br label %533

310:                                              ; preds = %300
  %311 = landingpad { ptr, i32 }
          cleanup
  br label %474

.lr.ph202:                                        ; preds = %305, %344
  %.0134201 = phi i64 [ %312, %344 ], [ %306, %305 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #7
  %312 = add i64 %.0134201, -1
  %313 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %312) #7
  %314 = load i32, ptr %313, align 4, !tbaa !5
  store i32 %314, ptr %27, align 4, !tbaa !5
  %315 = sext i32 %314 to i64
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %315) #7
  %317 = load double, ptr %316, align 8, !tbaa !94
  %318 = load i32, ptr %27, align 4, !tbaa !5
  %319 = sext i32 %318 to i64
  %320 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %319) #7
  %321 = load double, ptr %320, align 8, !tbaa !94
  %322 = fmul double %317, %321
  %323 = load i32, ptr %27, align 4, !tbaa !5
  %324 = sext i32 %323 to i64
  %325 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %324) #7
  %326 = load double, ptr %325, align 8, !tbaa !94
  %327 = fcmp ugt double %326, 1.000000e+03
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #7
  br i1 %327, label %.critedge4, label %328

328:                                              ; preds = %.lr.ph202
  %329 = load i32, ptr %27, align 4, !tbaa !5
  %330 = sext i32 %329 to i64
  %331 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %330) #7
  %332 = load double, ptr %331, align 8, !tbaa !94
  %333 = fcmp ogt double %332, %291
  br i1 %333, label %334, label %.critedge4

334:                                              ; preds = %328
  %335 = call { double, double } @_ZNK12HighsCDoublemiEd(ptr noundef nonnull align 8 dereferenceable(16) %26, double noundef %322)
  %336 = extractvalue { double, double } %335, 0
  store double %336, ptr %28, align 8
  %337 = extractvalue { double, double } %335, 1
  store double %337, ptr %69, align 8
  %338 = call noundef zeroext i1 @_ZNK12HighsCDoubleleEd(ptr noundef nonnull align 8 dereferenceable(16) %28, double noundef %291)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #7
  br i1 %338, label %339, label %342

339:                                              ; preds = %334
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %344 unwind label %340

340:                                              ; preds = %342, %339
  %341 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #7
  br label %474

.critedge4:                                       ; preds = %.lr.ph202, %328
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #7
  br label %342

342:                                              ; preds = %.critedge4, %334
  %343 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %26, double noundef %322)
          to label %344 unwind label %340

344:                                              ; preds = %342, %339
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #7
  %.not147 = icmp eq i64 %312, 0
  br i1 %.not147, label %._crit_edge, label %.lr.ph202, !llvm.loop !104

345:                                              ; preds = %._crit_edge
  %346 = call noundef zeroext i1 @_ZNK12HighsCDoubleleEd(ptr noundef nonnull align 8 dereferenceable(16) %26, double noundef %291)
  br i1 %346, label %.thread179, label %347

347:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #7
  %348 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %349 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %350 = invoke ptr @"_ZSt11min_elementIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_0ET_SD_SD_T0_"(ptr %348, ptr %349, ptr nonnull %5)
          to label %351 unwind label %374

351:                                              ; preds = %347
  store ptr %350, ptr %29, align 8
  %352 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  %353 = load i32, ptr %352, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  %354 = sext i32 %353 to i64
  %355 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %354) #7
  %356 = load double, ptr %355, align 8, !tbaa !94
  %357 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %357)
          to label %358 unwind label %376

358:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #7
  %359 = invoke { double, double } @_ZNK12HighsCDoubledvEd(ptr noundef nonnull align 8 dereferenceable(16) %26, double noundef %356)
          to label %360 unwind label %378

360:                                              ; preds = %358
  %361 = extractvalue { double, double } %359, 0
  store double %361, ptr %32, align 8
  %362 = extractvalue { double, double } %359, 1
  store double %362, ptr %70, align 8
  %363 = load double, ptr %66, align 8, !tbaa !99
  %364 = call { double, double } @_ZNK12HighsCDoublemiEd(ptr noundef nonnull align 8 dereferenceable(16) %32, double noundef %363)
  %365 = extractvalue { double, double } %364, 0
  store double %365, ptr %31, align 8
  %366 = extractvalue { double, double } %364, 1
  store double %366, ptr %71, align 8
  %367 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %31)
  %368 = call double @llvm.ceil.f64(double %367)
  store double %368, ptr %30, align 8, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #7
  store double 1.000000e+00, ptr %33, align 8, !tbaa !94
  %369 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %33)
  %370 = load double, ptr %369, align 8, !tbaa !94
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #7
  %371 = fneg double %370
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %34, double noundef %371)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #7
  store double 0x7FF0000000000000, ptr %35, align 8, !tbaa !94
  %372 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %.not148203 = icmp eq i64 %372, 0
  br i1 %.not148203, label %._crit_edge207, label %.lr.ph206

._crit_edge207:                                   ; preds = %403, %360
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #7
  %373 = invoke { double, double } @_ZNK12HighsCDoubledvEd(ptr noundef nonnull align 8 dereferenceable(16) %14, double noundef %370)
          to label %418 unwind label %436

374:                                              ; preds = %347
  %375 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  br label %474

376:                                              ; preds = %351
  %377 = landingpad { ptr, i32 }
          cleanup
  br label %474

378:                                              ; preds = %358
  %379 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  br label %474

.lr.ph206:                                        ; preds = %360, %403
  %.0136204 = phi i64 [ %414, %403 ], [ 0, %360 ]
  %380 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %.0136204) #7
  %381 = load i32, ptr %380, align 4, !tbaa !5
  %382 = sext i32 %381 to i64
  %383 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %382) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #7
  %384 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %26)
  store double %384, ptr %36, align 8, !tbaa !94
  %385 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %383, ptr noundef nonnull align 8 dereferenceable(8) %36)
  %386 = load double, ptr %385, align 8, !tbaa !94
  %387 = fdiv double %386, %356
  %388 = load ptr, ptr %72, align 8, !tbaa !105
  %389 = getelementptr inbounds i8, ptr %388, i64 264
  %390 = load double, ptr %389, align 8, !tbaa !106
  %391 = fsub double %387, %390
  %392 = call double @llvm.ceil.f64(double %391)
  %393 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %.0136204) #7
  store double %392, ptr %393, align 8, !tbaa !94
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  %394 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %.0136204) #7
  %395 = load i32, ptr %394, align 4, !tbaa !5
  %396 = sext i32 %395 to i64
  %397 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %396) #7
  %398 = load double, ptr %397, align 8, !tbaa !94
  %399 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %.0136204) #7
  %400 = load double, ptr %399, align 8, !tbaa !94
  %401 = fmul double %398, %400
  %402 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16) %34, double noundef %401)
          to label %403 unwind label %416

403:                                              ; preds = %.lr.ph206
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #7
  %404 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %.0136204) #7
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = sext i32 %405 to i64
  %407 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %406) #7
  %408 = load double, ptr %407, align 8, !tbaa !94
  %409 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %.0136204) #7
  %410 = load double, ptr %409, align 8, !tbaa !94
  %411 = fdiv double %408, %410
  store double %411, ptr %37, align 8, !tbaa !94
  %412 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %37)
  %413 = load double, ptr %412, align 8, !tbaa !94
  store double %413, ptr %35, align 8, !tbaa !94
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  %414 = add i64 %.0136204, 1
  %415 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %.not148 = icmp eq i64 %414, %415
  br i1 %.not148, label %._crit_edge207, label %.lr.ph206, !llvm.loop !111

416:                                              ; preds = %.lr.ph206
  %417 = landingpad { ptr, i32 }
          cleanup
  br label %473

418:                                              ; preds = %._crit_edge207
  %419 = extractvalue { double, double } %373, 0
  store double %419, ptr %39, align 8
  %420 = extractvalue { double, double } %373, 1
  store double %420, ptr %73, align 8
  %421 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %39)
  store double %421, ptr %38, align 8, !tbaa !94
  %422 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %38)
  %423 = load double, ptr %422, align 8, !tbaa !94
  store double %423, ptr %35, align 8, !tbaa !94
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #7
  %424 = fmul double %370, %423
  %425 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %14, double noundef %424)
          to label %426 unwind label %438

426:                                              ; preds = %418
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #7
  %427 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %428 = trunc i64 %427 to i32
  store i32 %428, ptr %40, align 4, !tbaa !5
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %429 unwind label %440

429:                                              ; preds = %426
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #7
  %430 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %34)
  store double %430, ptr %41, align 8, !tbaa !94
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %431 unwind label %442

431:                                              ; preds = %429
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #7
  %432 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %.not149208 = icmp eq i64 %432, 0
  br i1 %.not149208, label %._crit_edge212, label %.lr.ph211

._crit_edge212:                                   ; preds = %.lr.ph211, %431
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #7
  %433 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  %434 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  %435 = invoke ptr @"_ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_2ET_SD_SD_T0_"(ptr %433, ptr %434, ptr nonnull %5, ptr nonnull %0)
          to label %456 unwind label %467

436:                                              ; preds = %._crit_edge207
  %437 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #7
  br label %473

438:                                              ; preds = %418
  %439 = landingpad { ptr, i32 }
          cleanup
  br label %473

440:                                              ; preds = %461, %426
  %441 = landingpad { ptr, i32 }
          cleanup
  br label %472

442:                                              ; preds = %429
  %443 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #7
  br label %472

.lr.ph211:                                        ; preds = %431, %.lr.ph211
  %.0135209 = phi i64 [ %454, %.lr.ph211 ], [ 0, %431 ]
  %444 = load double, ptr %35, align 8, !tbaa !94
  %445 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %.0135209) #7
  %446 = load double, ptr %445, align 8, !tbaa !94
  %447 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %.0135209) #7
  %448 = load i32, ptr %447, align 4, !tbaa !5
  %449 = sext i32 %448 to i64
  %450 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %449) #7
  %451 = load double, ptr %450, align 8, !tbaa !94
  %452 = fneg double %444
  %453 = call double @llvm.fmuladd.f64(double %452, double %446, double %451)
  store double %453, ptr %450, align 8, !tbaa !94
  %454 = add i64 %.0135209, 1
  %455 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %.not149 = icmp eq i64 %454, %455
  br i1 %.not149, label %._crit_edge212, label %.lr.ph211, !llvm.loop !112

456:                                              ; preds = %._crit_edge212
  store ptr %435, ptr %43, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %43) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #7
  %457 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  store ptr %457, ptr %45, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %45) #7
  %458 = load ptr, ptr %42, align 8
  %459 = load ptr, ptr %44, align 8
  %460 = invoke ptr @_ZNSt6vectorIiSaIiEE5eraseEN9__gnu_cxx17__normal_iteratorIPKiS1_EES6_(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr %458, ptr %459)
          to label %461 unwind label %469

461:                                              ; preds = %456
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %462 unwind label %440

.thread179:                                       ; preds = %345, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #7
  br label %.loopexit

462:                                              ; preds = %461
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #7
  %463 = call { double, double } @_ZNK12HighsCDoublemiERKS_(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull align 8 dereferenceable(16) %15)
  %464 = extractvalue { double, double } %463, 0
  store double %464, ptr %25, align 8
  %465 = extractvalue { double, double } %463, 1
  store double %465, ptr %67, align 8
  %466 = call noundef zeroext i1 @_ZNK12HighsCDoubleleEd(ptr noundef nonnull align 8 dereferenceable(16) %25, double noundef %291)
  br i1 %466, label %.critedge, label %.lr.ph214

467:                                              ; preds = %._crit_edge212
  %468 = landingpad { ptr, i32 }
          cleanup
  br label %471

469:                                              ; preds = %456
  %470 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  br label %471

471:                                              ; preds = %469, %467
  %.pn150 = phi { ptr, i32 } [ %470, %469 ], [ %468, %467 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #7
  br label %472

472:                                              ; preds = %471, %442, %440
  %.pn152 = phi { ptr, i32 } [ %441, %440 ], [ %.pn150, %471 ], [ %443, %442 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #7
  br label %473

473:                                              ; preds = %472, %438, %436, %416
  %.pn154 = phi { ptr, i32 } [ %417, %416 ], [ %.pn152, %472 ], [ %439, %438 ], [ %437, %436 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #7
  br label %474

474:                                              ; preds = %374, %378, %473, %376, %340, %310
  %.pn159 = phi { ptr, i32 } [ %341, %340 ], [ %311, %310 ], [ %375, %374 ], [ %377, %376 ], [ %.pn154, %473 ], [ %379, %378 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #7
  br label %533

.loopexit:                                        ; preds = %.lr.ph214, %.thread179, %.critedge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %47) #7
  %475 = load double, ptr %66, align 8, !tbaa !99
  %476 = call { double, double } @_ZNK12HighsCDoubleplEd(ptr noundef nonnull align 8 dereferenceable(16) %14, double noundef %475)
  %477 = extractvalue { double, double } %476, 0
  store double %477, ptr %47, align 8
  %478 = extractvalue { double, double } %476, 1
  store double %478, ptr %74, align 8
  %479 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %47)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #7
  store double %479, ptr %46, align 8, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #7
  %480 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  %481 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  store ptr %8, ptr %50, align 8, !tbaa !113
  store ptr %5, ptr %75, align 8, !tbaa !113
  store ptr %46, ptr %76, align 8, !tbaa !113
  %482 = invoke ptr @"_ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_3ET_SD_SD_T0_"(ptr %480, ptr %481, ptr noundef nonnull byval(%class.anon.517) align 8 %50)
          to label %483 unwind label %490

483:                                              ; preds = %.loopexit
  store ptr %482, ptr %49, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %49) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #7
  %484 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  store ptr %484, ptr %52, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %52) #7
  %485 = load ptr, ptr %48, align 8
  %486 = load ptr, ptr %51, align 8
  %487 = invoke ptr @_ZNSt6vectorIiSaIiEE5eraseEN9__gnu_cxx17__normal_iteratorIPKiS1_EES6_(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr %485, ptr %486)
          to label %488 unwind label %492

488:                                              ; preds = %483
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #7
  %489 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  br i1 %489, label %526, label %495

490:                                              ; preds = %.loopexit
  %491 = landingpad { ptr, i32 }
          cleanup
  br label %494

492:                                              ; preds = %483
  %493 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #7
  br label %494

494:                                              ; preds = %492, %490
  %.pn161 = phi { ptr, i32 } [ %493, %492 ], [ %491, %490 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #7
  br label %532

495:                                              ; preds = %488
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %53) #7
  store ptr %7, ptr %53, align 8, !tbaa !113
  store ptr %0, ptr %77, align 8, !tbaa !114
  store ptr %8, ptr %78, align 8, !tbaa !113
  store ptr %5, ptr %79, align 8, !tbaa !113
  store ptr %14, ptr %80, align 8, !tbaa !113
  store ptr %4, ptr %81, align 8, !tbaa !113
  %496 = fcmp olt double %.0131, 0.000000e+00
  br i1 %496, label %497, label %509

497:                                              ; preds = %495
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %54) #7
  %498 = load ptr, ptr %0, align 8, !tbaa !9
  %499 = getelementptr inbounds i8, ptr %498, i64 80
  %500 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %499, i64 noundef %indvars.iv) #7
  %501 = load double, ptr %500, align 8, !tbaa !94
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %54, double noundef %501)
  invoke void @"_ZZN8presolve9HPresolve22strengthenInequalitiesERNS_19HighsPostsolveStackERiENK3$_4clEiR12HighsCDoublei"(ptr noundef nonnull align 8 dereferenceable(48) %53, i32 noundef %262, ptr noundef nonnull align 8 dereferenceable(16) %54, i32 noundef -1)
          to label %502 unwind label %507

502:                                              ; preds = %497
  %503 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %54)
  %504 = load ptr, ptr %0, align 8, !tbaa !9
  %505 = getelementptr inbounds i8, ptr %504, i64 80
  %506 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %505, i64 noundef %indvars.iv) #7
  store double %503, ptr %506, align 8, !tbaa !94
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #7
  br label %521

507:                                              ; preds = %497
  %508 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #7
  br label %531

509:                                              ; preds = %495
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %55) #7
  %510 = load ptr, ptr %0, align 8, !tbaa !9
  %511 = getelementptr inbounds i8, ptr %510, i64 104
  %512 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %511, i64 noundef %indvars.iv) #7
  %513 = load double, ptr %512, align 8, !tbaa !94
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %55, double noundef %513)
  invoke void @"_ZZN8presolve9HPresolve22strengthenInequalitiesERNS_19HighsPostsolveStackERiENK3$_4clEiR12HighsCDoublei"(ptr noundef nonnull align 8 dereferenceable(48) %53, i32 noundef %262, ptr noundef nonnull align 8 dereferenceable(16) %55, i32 noundef 1)
          to label %514 unwind label %519

514:                                              ; preds = %509
  %515 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %55)
  %516 = load ptr, ptr %0, align 8, !tbaa !9
  %517 = getelementptr inbounds i8, ptr %516, i64 104
  %518 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %517, i64 noundef %indvars.iv) #7
  store double %515, ptr %518, align 8, !tbaa !94
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %55) #7
  br label %521

519:                                              ; preds = %509
  %520 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %55) #7
  br label %531

521:                                              ; preds = %514, %502
  %522 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  %523 = load i32, ptr %2, align 4, !tbaa !5
  %524 = trunc i64 %522 to i32
  %525 = add i32 %523, %524
  store i32 %525, ptr %2, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %53) #7
  br label %526

.thread186:                                       ; preds = %282, %272
  %.4.ph = phi i32 [ %271, %272 ], [ %281, %282 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  br label %.loopexit195

.thread191:                                       ; preds = %276, %282
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  br label %.thread182

526:                                              ; preds = %521, %488
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  br label %.thread182

.thread182:                                       ; preds = %98, %526, %.thread191, %92, %82
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %527 = load ptr, ptr %0, align 8, !tbaa !9
  %528 = getelementptr inbounds i8, ptr %527, i64 4
  %529 = load i32, ptr %528, align 4, !tbaa !74
  %530 = zext i32 %529 to i64
  %.not = icmp eq i64 %indvars.iv.next, %530
  br i1 %.not, label %.loopexit195, label %82, !llvm.loop !116

531:                                              ; preds = %519, %507
  %.pn163 = phi { ptr, i32 } [ %508, %507 ], [ %520, %519 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %53) #7
  br label %532

532:                                              ; preds = %531, %494
  %.pn163.pn = phi { ptr, i32 } [ %.pn163, %531 ], [ %.pn161, %494 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #7
  br label %533

533:                                              ; preds = %260, %273, %283, %532, %474, %308, %163
  %.pn167.pn = phi { ptr, i32 } [ %164, %163 ], [ %284, %283 ], [ %274, %273 ], [ %.pn.pn, %260 ], [ %.pn163.pn, %532 ], [ %.pn159, %474 ], [ %309, %308 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #7
  call void @_ZNSt6vectorIaSaIaEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #7
  resume { ptr, i32 } %.pn167.pn

.loopexit195:                                     ; preds = %.thread182, %3, %.thread186
  %spec.select = phi i32 [ %.4.ph, %.thread186 ], [ 0, %3 ], [ 0, %.thread182 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #7
  call void @_ZNSt6vectorIaSaIaEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #7
  ret i32 %spec.select
}

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_1EvT_SD_T0_"(ptr, ptr, ptr) local_unnamed_addr #6

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden ptr @"_ZSt11min_elementIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_0ET_SD_SD_T0_"(ptr, ptr, ptr) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare hidden ptr @"_ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_2ET_SD_SD_T0_"(ptr, ptr, ptr, ptr) local_unnamed_addr #6

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden ptr @"_ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN8presolve9HPresolve22strengthenInequalitiesERNS7_19HighsPostsolveStackERiE3$_3ET_SD_SD_T0_"(ptr, ptr, ptr noundef byval(%class.anon.517) align 8) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN8presolve9HPresolve22strengthenInequalitiesERNS_19HighsPostsolveStackERiENK3$_4clEiR12HighsCDoublei"(ptr noundef nonnull align 8 dereferenceable(48), i32 noundef, ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #6 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTSN8presolve9HPresolveE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !12, i64 32, !13, i64 40, !17, i64 64, !17, i64 88, !17, i64 112, !17, i64 136, !17, i64 160, !17, i64 184, !17, i64 208, !17, i64 232, !17, i64 256, !17, i64 280, !17, i64 304, !17, i64 328, !17, i64 352, !17, i64 376, !13, i64 400, !13, i64 424, !17, i64 448, !17, i64 472, !13, i64 496, !13, i64 520, !13, i64 544, !13, i64 568, !17, i64 592, !17, i64 616, !21, i64 640, !21, i64 664, !25, i64 688, !25, i64 928, !17, i64 1168, !30, i64 1192, !17, i64 1216, !30, i64 1240, !34, i64 1264, !38, i64 1288, !44, i64 1344, !52, i64 1392, !56, i64 1416, !40, i64 1424, !17, i64 1432, !17, i64 1456, !30, i64 1480, !30, i64 1504, !57, i64 1528, !40, i64 1552, !6, i64 1560, !6, i64 1564, !6, i64 1568, !6, i64 1572, !6, i64 1576, !6, i64 1580, !56, i64 1584, !61, i64 1588, !62, i64 1592}
!11 = !{!"any pointer", !7, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!"_ZTSSt6vectorIdSaIdEE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!17 = !{!"_ZTSSt6vectorIiSaIiEE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!21 = !{!"_ZTSSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!25 = !{!"_ZTS20HighsLinearSumBounds", !26, i64 0, !26, i64 24, !17, i64 48, !17, i64 72, !26, i64 96, !26, i64 120, !17, i64 144, !17, i64 168, !11, i64 192, !11, i64 200, !11, i64 208, !11, i64 216, !11, i64 224, !11, i64 232}
!26 = !{!"_ZTSSt6vectorI12HighsCDoubleSaIS0_EE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseI12HighsCDoubleSaIS0_EE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseI12HighsCDoubleSaIS0_EE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseI12HighsCDoubleSaIS0_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!30 = !{!"_ZTSSt6vectorIhSaIhEE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!34 = !{!"_ZTSSt6vectorISt4pairIiiESaIS1_EE", !35, i64 0}
!35 = !{!"_ZTSSt12_Vector_baseISt4pairIiiESaIS1_EE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseISt4pairIiiESaIS1_EE12_Vector_implE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseISt4pairIiiESaIS1_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!38 = !{!"_ZTSSt13unordered_mapIi13HighsHashTreeISt4pairIiiEdESt4hashIiESt8equal_toIiESaIS1_IKiS3_EEE", !39, i64 0}
!39 = !{!"_ZTSSt10_HashtableIiSt4pairIKi13HighsHashTreeIS0_IiiEdEESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE", !11, i64 0, !40, i64 8, !41, i64 16, !40, i64 24, !42, i64 32, !11, i64 48}
!40 = !{!"long", !7, i64 0}
!41 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !11, i64 0}
!42 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !43, i64 0, !40, i64 8}
!43 = !{!"float", !7, i64 0}
!44 = !{!"_ZTSSt3setISt4pairIiiESt4lessIS1_ESaIS1_EE", !45, i64 0}
!45 = !{!"_ZTSSt8_Rb_treeISt4pairIiiES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !46, i64 0}
!46 = !{!"_ZTSNSt8_Rb_treeISt4pairIiiES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !47, i64 0, !49, i64 8}
!47 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt4pairIiiEEE", !48, i64 0}
!48 = !{!"_ZTSSt4lessISt4pairIiiEE"}
!49 = !{!"_ZTSSt15_Rb_tree_header", !50, i64 0, !40, i64 32}
!50 = !{!"_ZTSSt18_Rb_tree_node_base", !51, i64 0, !11, i64 8, !11, i64 16, !11, i64 24}
!51 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!52 = !{!"_ZTSSt6vectorISt23_Rb_tree_const_iteratorISt4pairIiiEESaIS3_EE", !53, i64 0}
!53 = !{!"_ZTSSt12_Vector_baseISt23_Rb_tree_const_iteratorISt4pairIiiEESaIS3_EE", !54, i64 0}
!54 = !{!"_ZTSNSt12_Vector_baseISt23_Rb_tree_const_iteratorISt4pairIiiEESaIS3_EE12_Vector_implE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseISt23_Rb_tree_const_iteratorISt4pairIiiEESaIS3_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!56 = !{!"bool", !7, i64 0}
!57 = !{!"_ZTSSt6vectorItSaItEE", !58, i64 0}
!58 = !{!"_ZTSSt12_Vector_baseItSaItEE", !59, i64 0}
!59 = !{!"_ZTSNSt12_Vector_baseItSaItEE12_Vector_implE", !60, i64 0}
!60 = !{!"_ZTSNSt12_Vector_baseItSaItEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!61 = !{!"_ZTS19HighsPresolveStatus", !7, i64 0}
!62 = !{!"_ZTS17HPresolveAnalysis", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !6, i64 40, !6, i64 44, !63, i64 48, !56, i64 88, !56, i64 89, !6, i64 92, !6, i64 96, !6, i64 100, !69, i64 104}
!63 = !{!"_ZTSSt6vectorIbSaIbEE", !64, i64 0}
!64 = !{!"_ZTSSt13_Bvector_baseISaIbEE", !65, i64 0}
!65 = !{!"_ZTSNSt13_Bvector_baseISaIbEE13_Bvector_implE", !66, i64 0}
!66 = !{!"_ZTSNSt13_Bvector_baseISaIbEE18_Bvector_impl_dataE", !67, i64 0, !67, i64 16, !11, i64 32}
!67 = !{!"_ZTSSt13_Bit_iterator", !68, i64 0}
!68 = !{!"_ZTSSt18_Bit_iterator_base", !11, i64 0, !6, i64 8}
!69 = !{!"_ZTS16HighsPresolveLog", !70, i64 0}
!70 = !{!"_ZTSSt6vectorI20HighsPresolveRuleLogSaIS0_EE", !71, i64 0}
!71 = !{!"_ZTSSt12_Vector_baseI20HighsPresolveRuleLogSaIS0_EE", !72, i64 0}
!72 = !{!"_ZTSNSt12_Vector_baseI20HighsPresolveRuleLogSaIS0_EE12_Vector_implE", !73, i64 0}
!73 = !{!"_ZTSNSt12_Vector_baseI20HighsPresolveRuleLogSaIS0_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!74 = !{!75, !6, i64 4}
!75 = !{!"_ZTS7HighsLp", !6, i64 0, !6, i64 4, !13, i64 8, !13, i64 32, !13, i64 56, !13, i64 80, !13, i64 104, !76, i64 128, !78, i64 240, !12, i64 248, !79, i64 256, !79, i64 288, !6, i64 320, !6, i64 324, !81, i64 328, !81, i64 352, !85, i64 376, !89, i64 400, !89, i64 456, !6, i64 512, !6, i64 516, !92, i64 520, !56, i64 592, !56, i64 593, !6, i64 596, !56, i64 600, !93, i64 608}
!76 = !{!"_ZTS17HighsSparseMatrix", !77, i64 0, !6, i64 4, !6, i64 8, !17, i64 16, !17, i64 40, !17, i64 64, !13, i64 88}
!77 = !{!"_ZTS12MatrixFormat", !7, i64 0}
!78 = !{!"_ZTS8ObjSense", !7, i64 0}
!79 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !80, i64 0, !40, i64 8, !7, i64 16}
!80 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !11, i64 0}
!81 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !82, i64 0}
!82 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !83, i64 0}
!83 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !84, i64 0}
!84 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!85 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !86, i64 0}
!86 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !87, i64 0}
!87 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !88, i64 0}
!88 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!89 = !{!"_ZTS13HighsNameHash", !90, i64 0}
!90 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !91, i64 0}
!91 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE", !11, i64 0, !40, i64 8, !41, i64 16, !40, i64 24, !42, i64 32, !11, i64 48}
!92 = !{!"_ZTS10HighsScale", !6, i64 0, !56, i64 4, !6, i64 8, !6, i64 12, !12, i64 16, !13, i64 24, !13, i64 48}
!93 = !{!"_ZTS11HighsLpMods", !17, i64 0, !17, i64 24, !13, i64 48, !13, i64 72, !85, i64 96, !17, i64 120, !13, i64 144, !17, i64 168, !13, i64 192, !17, i64 216, !13, i64 240, !13, i64 264, !13, i64 288}
!94 = !{!12, !12, i64 0}
!95 = !{!75, !6, i64 0}
!96 = !{!10, !6, i64 1572}
!97 = !{i64 0, i64 8, !94, i64 8, i64 8, !94}
!98 = !{!7, !7, i64 0}
!99 = !{!10, !12, i64 32}
!100 = distinct !{!100, !101}
!101 = !{!"llvm.loop.mustprogress"}
!102 = !{!103, !103, i64 0}
!103 = !{!"_ZTS12HighsVarType", !7, i64 0}
!104 = distinct !{!104, !101}
!105 = !{!10, !11, i64 8}
!106 = !{!107, !12, i64 264}
!107 = !{!"_ZTS18HighsOptionsStruct", !79, i64 8, !79, i64 40, !79, i64 72, !79, i64 104, !12, i64 136, !79, i64 144, !79, i64 176, !6, i64 208, !79, i64 216, !12, i64 248, !12, i64 256, !12, i64 264, !12, i64 272, !12, i64 280, !12, i64 288, !12, i64 296, !12, i64 304, !12, i64 312, !12, i64 320, !12, 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, !79, i64 392, !56, i64 424, !56, i64 425, !56, i64 426, !6, i64 428, !6, i64 432, !79, i64 440, !56, i64 472, !56, i64 473, !56, i64 474, !6, i64 476, !56, i64 480, !56, i64 481, !6, i64 484, !6, i64 488, !12, i64 496, !6, i64 504, !6, i64 508, !6, i64 512, !56, i64 516, !6, i64 520, !56, i64 524, !56, i64 525, !56, i64 526, !56, i64 527, !56, i64 528, !56, i64 529, !56, 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, !56, i64 592, !56, i64 593, !56, i64 594, !56, i64 595, !12, i64 600, !12, i64 608, !12, i64 616, !12, i64 624, !12, i64 632, !12, i64 640, !12, i64 648, !12, i64 656, !12, i64 664, !12, i64 672, !12, i64 680, !56, i64 688, !56, i64 689, !56, i64 690, !56, i64 691, !6, i64 692, !12, i64 696, !56, i64 704, !56, i64 705, !79, i64 712, !12, i64 744, !6, i64 752, !6, i64 756, !56, i64 760, !56, i64 761, !56, i64 762, !56, 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, !12, i64 808, !12, i64 816, !12, i64 824, !12, i64 832, !12, i64 840, !56, i64 848, !56, i64 849, !79, i64 856, !56, i64 888, !6, i64 892, !108, i64 896}
!108 = !{!"_ZTS15HighsLogOptions", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !109, i64 48, !11, i64 80, !56, i64 88}
!109 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !110, i64 0, !11, i64 24}
!110 = !{!"_ZTSSt14_Function_base", !7, i64 0, !11, i64 16}
!111 = distinct !{!111, !101}
!112 = distinct !{!112, !101}
!113 = !{!11, !11, i64 0}
!114 = !{!115, !11, i64 8}
!115 = !{!"_ZTSZN8presolve9HPresolve22strengthenInequalitiesERNS_19HighsPostsolveStackERiE3$_4", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40}
!116 = distinct !{!116, !101}


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