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

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

@.str.52 = external hidden unnamed_addr constant [70 x i8], align 1
@_ZL17kIllegalFlagValue = external hidden constant i8, align 1
@_ZL17kIllegalMoveValue = external hidden constant i8, align 1
@.str.74 = external hidden unnamed_addr constant [7 x i8], align 1
@__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv = external hidden unnamed_addr constant [30 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [95 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN4HEkk9undualizeEv(ptr noundef nonnull align 8 dereferenceable(14568) %0) #5 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca i32, align 4
  %3 = alloca ptr, align 8
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca %"class.std::vector.35", align 8
  %7 = alloca %"class.std::vector.35", align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca i8, align 1
  %18 = alloca i32, align 4
  %19 = alloca i8, align 1
  %20 = alloca i32, align 4
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca i8, align 1
  %24 = alloca i32, align 4
  %25 = alloca i8, align 1
  %26 = alloca i32, align 4
  %27 = alloca i8, align 1
  %28 = alloca %class.HighsSparseMatrix, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i8, align 1
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  %35 = load ptr, ptr %3, align 8
  %36 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 6
  %37 = getelementptr inbounds %struct.HighsSimplexStatus, ptr %36, i32 0, i32 1
  %38 = load i8, ptr %37, align 1, !tbaa !9, !range !112, !noundef !113
  %39 = trunc i8 %38 to i1
  br i1 %39, label %41, label %40

40:                                               ; preds = %1
  store i32 0, ptr %2, align 4
  br label %599

41:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #7
  %42 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %43 = getelementptr inbounds %class.HighsLp, ptr %42, i32 0, i32 0
  %44 = load i32, ptr %43, align 8, !tbaa !114
  store i32 %44, ptr %4, align 4, !tbaa !115
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #7
  %45 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 36
  %46 = load i32, ptr %45, align 8, !tbaa !116
  %47 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 37
  %48 = load i32, ptr %47, align 4, !tbaa !117
  %49 = add nsw i32 %46, %48
  store i32 %49, ptr %5, align 4, !tbaa !115
  call void @llvm.lifetime.start.p0(i64 24, ptr %6) #7
  %50 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 10
  %51 = getelementptr inbounds %struct.SimplexBasis, ptr %50, i32 0, i32 1
  call void @_ZNSt6vectorIaSaIaEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %51)
  call void @llvm.lifetime.start.p0(i64 24, ptr %7) #7
  %52 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 10
  %53 = getelementptr inbounds %struct.SimplexBasis, ptr %52, i32 0, i32 2
  invoke void @_ZNSt6vectorIaSaIaEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %54 unwind label %82

54:                                               ; preds = %41
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  %55 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 10
  %56 = getelementptr inbounds %struct.SimplexBasis, ptr %55, i32 0, i32 0
  store ptr %56, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %57 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 10
  %58 = getelementptr inbounds %struct.SimplexBasis, ptr %57, i32 0, i32 1
  store ptr %58, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  %59 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 10
  %60 = getelementptr inbounds %struct.SimplexBasis, ptr %59, i32 0, i32 2
  store ptr %60, ptr %12, align 8, !tbaa !5
  %61 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 10
  %62 = getelementptr inbounds %struct.SimplexBasis, ptr %61, i32 0, i32 1
  %63 = load i32, ptr %5, align 4, !tbaa !115
  %64 = sext i32 %63 to i64
  invoke void @_ZNSt6vectorIaSaIaEE6assignEmRKa(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %64, ptr noundef nonnull align 1 dereferenceable(1) @_ZL17kIllegalFlagValue)
          to label %65 unwind label %86

65:                                               ; preds = %54
  %66 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 10
  %67 = getelementptr inbounds %struct.SimplexBasis, ptr %66, i32 0, i32 2
  %68 = load i32, ptr %5, align 4, !tbaa !115
  %69 = sext i32 %68 to i64
  invoke void @_ZNSt6vectorIaSaIaEE6assignEmRKa(ptr noundef nonnull align 8 dereferenceable(24) %67, i64 noundef %69, ptr noundef nonnull align 1 dereferenceable(1) @_ZL17kIllegalMoveValue)
          to label %70 unwind label %86

70:                                               ; preds = %65
  %71 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 10
  %72 = getelementptr inbounds %struct.SimplexBasis, ptr %71, i32 0, i32 0
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %72, i64 noundef 0)
          to label %73 unwind label %86

73:                                               ; preds = %70
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  %74 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 37
  %75 = load i32, ptr %74, align 4, !tbaa !117
  store i32 %75, ptr %13, align 4, !tbaa !115
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  store i32 0, ptr %14, align 4, !tbaa !115
  br label %76

76:                                               ; preds = %206, %73
  %77 = load i32, ptr %14, align 4, !tbaa !115
  %78 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 36
  %79 = load i32, ptr %78, align 8, !tbaa !116
  %80 = icmp slt i32 %77, %79
  br i1 %80, label %90, label %81

81:                                               ; preds = %76
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  br label %209

82:                                               ; preds = %41
  %83 = landingpad { ptr, i32 }
          cleanup
  %84 = extractvalue { ptr, i32 } %83, 0
  store ptr %84, ptr %8, align 8
  %85 = extractvalue { ptr, i32 } %83, 1
  store i32 %85, ptr %9, align 4
  br label %598

86:                                               ; preds = %70, %65, %54
  %87 = landingpad { ptr, i32 }
          cleanup
  %88 = extractvalue { ptr, i32 } %87, 0
  store ptr %88, ptr %8, align 8
  %89 = extractvalue { ptr, i32 } %87, 1
  store i32 %89, ptr %9, align 4
  br label %597

90:                                               ; preds = %76
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %91 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 41
  %92 = load i32, ptr %14, align 4, !tbaa !115
  %93 = sext i32 %92 to i64
  %94 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %93) #7
  %95 = load double, ptr %94, align 8, !tbaa !118
  store double %95, ptr %15, align 8, !tbaa !118
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %96 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 42
  %97 = load i32, ptr %14, align 4, !tbaa !115
  %98 = sext i32 %97 to i64
  %99 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %96, i64 noundef %98) #7
  %100 = load double, ptr %99, align 8, !tbaa !118
  store double %100, ptr %16, align 8, !tbaa !118
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #7
  store i8 -99, ptr %17, align 1, !tbaa !119
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  %101 = load i32, ptr %4, align 4, !tbaa !115
  %102 = load i32, ptr %14, align 4, !tbaa !115
  %103 = add nsw i32 %101, %102
  store i32 %103, ptr %18, align 4, !tbaa !115
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #7
  %104 = load i32, ptr %18, align 4, !tbaa !115
  %105 = sext i32 %104 to i64
  %106 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %105) #7
  %107 = load i8, ptr %106, align 1, !tbaa !119
  %108 = sext i8 %107 to i32
  %109 = icmp eq i32 %108, 0
  %110 = zext i1 %109 to i8
  store i8 %110, ptr %19, align 1, !tbaa !120
  %111 = load double, ptr %15, align 8, !tbaa !118
  %112 = load double, ptr %16, align 8, !tbaa !118
  %113 = fcmp oeq double %111, %112
  br i1 %113, label %114, label %119

114:                                              ; preds = %90
  %115 = load i8, ptr %19, align 1, !tbaa !120, !range !112, !noundef !113
  %116 = trunc i8 %115 to i1
  br i1 %116, label %117, label %118

117:                                              ; preds = %114
  store i8 0, ptr %17, align 1, !tbaa !119
  br label %118

118:                                              ; preds = %117, %114
  br label %174

119:                                              ; preds = %90
  %120 = load double, ptr %15, align 8, !tbaa !118
  %121 = fneg double %120
  %122 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %121)
          to label %123 unwind label %132

123:                                              ; preds = %119
  br i1 %122, label %158, label %124

124:                                              ; preds = %123
  %125 = load double, ptr %16, align 8, !tbaa !118
  %126 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %125)
          to label %127 unwind label %132

127:                                              ; preds = %124
  br i1 %126, label %152, label %128

128:                                              ; preds = %127
  %129 = load i8, ptr %19, align 1, !tbaa !120, !range !112, !noundef !113
  %130 = trunc i8 %129 to i1
  br i1 %130, label %131, label %136

131:                                              ; preds = %128
  store i8 1, ptr %17, align 1, !tbaa !119
  br label %149

132:                                              ; preds = %194, %158, %124, %119
  %133 = landingpad { ptr, i32 }
          cleanup
  %134 = extractvalue { ptr, i32 } %133, 0
  store ptr %134, ptr %8, align 8
  %135 = extractvalue { ptr, i32 } %133, 1
  store i32 %135, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  br label %596

136:                                              ; preds = %128
  %137 = load i32, ptr %13, align 4, !tbaa !115
  store i32 %137, ptr %18, align 4, !tbaa !115
  %138 = load i32, ptr %18, align 4, !tbaa !115
  %139 = sext i32 %138 to i64
  %140 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %139) #7
  %141 = load i8, ptr %140, align 1, !tbaa !119
  %142 = sext i8 %141 to i32
  %143 = icmp eq i32 %142, 0
  %144 = zext i1 %143 to i8
  store i8 %144, ptr %19, align 1, !tbaa !120
  %145 = load i8, ptr %19, align 1, !tbaa !120, !range !112, !noundef !113
  %146 = trunc i8 %145 to i1
  br i1 %146, label %147, label %148

147:                                              ; preds = %136
  store i8 -1, ptr %17, align 1, !tbaa !119
  br label %148

148:                                              ; preds = %147, %136
  br label %149

149:                                              ; preds = %148, %131
  %150 = load i32, ptr %13, align 4, !tbaa !115
  %151 = add nsw i32 %150, 1
  store i32 %151, ptr %13, align 4, !tbaa !115
  br label %157

152:                                              ; preds = %127
  %153 = load i8, ptr %19, align 1, !tbaa !120, !range !112, !noundef !113
  %154 = trunc i8 %153 to i1
  br i1 %154, label %155, label %156

155:                                              ; preds = %152
  store i8 1, ptr %17, align 1, !tbaa !119
  br label %156

156:                                              ; preds = %155, %152
  br label %157

157:                                              ; preds = %156, %149
  br label %173

158:                                              ; preds = %123
  %159 = load double, ptr %16, align 8, !tbaa !118
  %160 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %159)
          to label %161 unwind label %132

161:                                              ; preds = %158
  br i1 %160, label %167, label %162

162:                                              ; preds = %161
  %163 = load i8, ptr %19, align 1, !tbaa !120, !range !112, !noundef !113
  %164 = trunc i8 %163 to i1
  br i1 %164, label %165, label %166

165:                                              ; preds = %162
  store i8 -1, ptr %17, align 1, !tbaa !119
  br label %166

166:                                              ; preds = %165, %162
  br label %172

167:                                              ; preds = %161
  %168 = load i8, ptr %19, align 1, !tbaa !120, !range !112, !noundef !113
  %169 = trunc i8 %168 to i1
  br i1 %169, label %170, label %171

170:                                              ; preds = %167
  call void @__assert_fail(ptr noundef @.str.74, ptr noundef @.str.52, i32 noundef 830, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv) #8
  unreachable

171:                                              ; preds = %167
  br label %172

172:                                              ; preds = %171, %166
  br label %173

173:                                              ; preds = %172, %157
  br label %174

174:                                              ; preds = %173, %118
  %175 = load i8, ptr %19, align 1, !tbaa !120, !range !112, !noundef !113
  %176 = trunc i8 %175 to i1
  br i1 %176, label %177, label %194

177:                                              ; preds = %174
  %178 = load i8, ptr %17, align 1, !tbaa !119
  %179 = sext i8 %178 to i32
  %180 = icmp ne i32 %179, -99
  br i1 %180, label %181, label %182

181:                                              ; preds = %177
  br label %184

182:                                              ; preds = %177
  call void @__assert_fail(ptr noundef @.str.75, ptr noundef @.str.52, i32 noundef 836, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv) #8
  unreachable

183:                                              ; No predecessors!
  br label %184

184:                                              ; preds = %183, %181
  %185 = load ptr, ptr %11, align 8, !tbaa !5
  %186 = load i32, ptr %14, align 4, !tbaa !115
  %187 = sext i32 %186 to i64
  %188 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %185, i64 noundef %187) #7
  store i8 1, ptr %188, align 1, !tbaa !119
  %189 = load i8, ptr %17, align 1, !tbaa !119
  %190 = load ptr, ptr %12, align 8, !tbaa !5
  %191 = load i32, ptr %14, align 4, !tbaa !115
  %192 = sext i32 %191 to i64
  %193 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef %192) #7
  store i8 %189, ptr %193, align 1, !tbaa !119
  br label %205

194:                                              ; preds = %174
  %195 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %195, ptr noundef nonnull align 4 dereferenceable(4) %14)
          to label %196 unwind label %132

196:                                              ; preds = %194
  %197 = load ptr, ptr %11, align 8, !tbaa !5
  %198 = load i32, ptr %14, align 4, !tbaa !115
  %199 = sext i32 %198 to i64
  %200 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %197, i64 noundef %199) #7
  store i8 0, ptr %200, align 1, !tbaa !119
  %201 = load ptr, ptr %12, align 8, !tbaa !5
  %202 = load i32, ptr %14, align 4, !tbaa !115
  %203 = sext i32 %202 to i64
  %204 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %201, i64 noundef %203) #7
  store i8 0, ptr %204, align 1, !tbaa !119
  br label %205

205:                                              ; preds = %196, %184
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  br label %206

206:                                              ; preds = %205
  %207 = load i32, ptr %14, align 4, !tbaa !115
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr %14, align 4, !tbaa !115
  br label %76, !llvm.loop !121

209:                                              ; preds = %81
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  store i32 0, ptr %20, align 4, !tbaa !115
  br label %210

210:                                              ; preds = %350, %209
  %211 = load i32, ptr %20, align 4, !tbaa !115
  %212 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 37
  %213 = load i32, ptr %212, align 4, !tbaa !117
  %214 = icmp slt i32 %211, %213
  br i1 %214, label %216, label %215

215:                                              ; preds = %210
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %354

216:                                              ; preds = %210
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %217 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 43
  %218 = load i32, ptr %20, align 4, !tbaa !115
  %219 = sext i32 %218 to i64
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %217, i64 noundef %219) #7
  %221 = load double, ptr %220, align 8, !tbaa !118
  store double %221, ptr %21, align 8, !tbaa !118
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %222 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 44
  %223 = load i32, ptr %20, align 4, !tbaa !115
  %224 = sext i32 %223 to i64
  %225 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %222, i64 noundef %224) #7
  %226 = load double, ptr %225, align 8, !tbaa !118
  store double %226, ptr %22, align 8, !tbaa !118
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #7
  store i8 -99, ptr %23, align 1, !tbaa !119
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  %227 = load i32, ptr %20, align 4, !tbaa !115
  store i32 %227, ptr %24, align 4, !tbaa !115
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #7
  %228 = load i32, ptr %24, align 4, !tbaa !115
  %229 = sext i32 %228 to i64
  %230 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %229) #7
  %231 = load i8, ptr %230, align 1, !tbaa !119
  %232 = sext i8 %231 to i32
  %233 = icmp eq i32 %232, 0
  %234 = zext i1 %233 to i8
  store i8 %234, ptr %25, align 1, !tbaa !120
  %235 = load double, ptr %21, align 8, !tbaa !118
  %236 = load double, ptr %22, align 8, !tbaa !118
  %237 = fcmp oeq double %235, %236
  br i1 %237, label %238, label %243

238:                                              ; preds = %216
  %239 = load i8, ptr %25, align 1, !tbaa !120, !range !112, !noundef !113
  %240 = trunc i8 %239 to i1
  br i1 %240, label %241, label %242

241:                                              ; preds = %238
  store i8 0, ptr %23, align 1, !tbaa !119
  br label %242

242:                                              ; preds = %241, %238
  br label %298

243:                                              ; preds = %216
  %244 = load double, ptr %21, align 8, !tbaa !118
  %245 = fneg double %244
  %246 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %245)
          to label %247 unwind label %256

247:                                              ; preds = %243
  br i1 %246, label %282, label %248

248:                                              ; preds = %247
  %249 = load double, ptr %22, align 8, !tbaa !118
  %250 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %249)
          to label %251 unwind label %256

251:                                              ; preds = %248
  br i1 %250, label %276, label %252

252:                                              ; preds = %251
  %253 = load i8, ptr %25, align 1, !tbaa !120, !range !112, !noundef !113
  %254 = trunc i8 %253 to i1
  br i1 %254, label %255, label %260

255:                                              ; preds = %252
  store i8 -1, ptr %23, align 1, !tbaa !119
  br label %273

256:                                              ; preds = %282, %248, %243
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %8, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %9, align 4
  br label %353

260:                                              ; preds = %252
  %261 = load i32, ptr %13, align 4, !tbaa !115
  store i32 %261, ptr %24, align 4, !tbaa !115
  %262 = load i32, ptr %24, align 4, !tbaa !115
  %263 = sext i32 %262 to i64
  %264 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %263) #7
  %265 = load i8, ptr %264, align 1, !tbaa !119
  %266 = sext i8 %265 to i32
  %267 = icmp eq i32 %266, 0
  %268 = zext i1 %267 to i8
  store i8 %268, ptr %25, align 1, !tbaa !120
  %269 = load i8, ptr %25, align 1, !tbaa !120, !range !112, !noundef !113
  %270 = trunc i8 %269 to i1
  br i1 %270, label %271, label %272

271:                                              ; preds = %260
  store i8 1, ptr %23, align 1, !tbaa !119
  br label %272

272:                                              ; preds = %271, %260
  br label %273

273:                                              ; preds = %272, %255
  %274 = load i32, ptr %13, align 4, !tbaa !115
  %275 = add nsw i32 %274, 1
  store i32 %275, ptr %13, align 4, !tbaa !115
  br label %281

276:                                              ; preds = %251
  %277 = load i8, ptr %25, align 1, !tbaa !120, !range !112, !noundef !113
  %278 = trunc i8 %277 to i1
  br i1 %278, label %279, label %280

279:                                              ; preds = %276
  store i8 -1, ptr %23, align 1, !tbaa !119
  br label %280

280:                                              ; preds = %279, %276
  br label %281

281:                                              ; preds = %280, %273
  br label %297

282:                                              ; preds = %247
  %283 = load double, ptr %22, align 8, !tbaa !118
  %284 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %283)
          to label %285 unwind label %256

285:                                              ; preds = %282
  br i1 %284, label %291, label %286

286:                                              ; preds = %285
  %287 = load i8, ptr %25, align 1, !tbaa !120, !range !112, !noundef !113
  %288 = trunc i8 %287 to i1
  br i1 %288, label %289, label %290

289:                                              ; preds = %286
  store i8 1, ptr %23, align 1, !tbaa !119
  br label %290

290:                                              ; preds = %289, %286
  br label %296

291:                                              ; preds = %285
  %292 = load i8, ptr %25, align 1, !tbaa !120, !range !112, !noundef !113
  %293 = trunc i8 %292 to i1
  br i1 %293, label %294, label %295

294:                                              ; preds = %291
  call void @__assert_fail(ptr noundef @.str.76, ptr noundef @.str.52, i32 noundef 890, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv) #8
  unreachable

295:                                              ; preds = %291
  br label %296

296:                                              ; preds = %295, %290
  br label %297

297:                                              ; preds = %296, %281
  br label %298

298:                                              ; preds = %297, %242
  %299 = load i8, ptr %25, align 1, !tbaa !120, !range !112, !noundef !113
  %300 = trunc i8 %299 to i1
  br i1 %300, label %301, label %324

301:                                              ; preds = %298
  %302 = load i8, ptr %23, align 1, !tbaa !119
  %303 = sext i8 %302 to i32
  %304 = icmp ne i32 %303, -99
  br i1 %304, label %305, label %306

305:                                              ; preds = %301
  br label %308

306:                                              ; preds = %301
  call void @__assert_fail(ptr noundef @.str.75, ptr noundef @.str.52, i32 noundef 897, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv) #8
  unreachable

307:                                              ; No predecessors!
  br label %308

308:                                              ; preds = %307, %305
  %309 = load ptr, ptr %11, align 8, !tbaa !5
  %310 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 36
  %311 = load i32, ptr %310, align 8, !tbaa !116
  %312 = load i32, ptr %20, align 4, !tbaa !115
  %313 = add nsw i32 %311, %312
  %314 = sext i32 %313 to i64
  %315 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %309, i64 noundef %314) #7
  store i8 1, ptr %315, align 1, !tbaa !119
  %316 = load i8, ptr %23, align 1, !tbaa !119
  %317 = load ptr, ptr %12, align 8, !tbaa !5
  %318 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 36
  %319 = load i32, ptr %318, align 8, !tbaa !116
  %320 = load i32, ptr %20, align 4, !tbaa !115
  %321 = add nsw i32 %319, %320
  %322 = sext i32 %321 to i64
  %323 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %317, i64 noundef %322) #7
  store i8 %316, ptr %323, align 1, !tbaa !119
  br label %349

324:                                              ; preds = %298
  %325 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  %326 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 36
  %327 = load i32, ptr %326, align 8, !tbaa !116
  %328 = load i32, ptr %20, align 4, !tbaa !115
  %329 = add nsw i32 %327, %328
  store i32 %329, ptr %26, align 4, !tbaa !115
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %325, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %330 unwind label %345

330:                                              ; preds = %324
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  %331 = load ptr, ptr %11, align 8, !tbaa !5
  %332 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 36
  %333 = load i32, ptr %332, align 8, !tbaa !116
  %334 = load i32, ptr %20, align 4, !tbaa !115
  %335 = add nsw i32 %333, %334
  %336 = sext i32 %335 to i64
  %337 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %331, i64 noundef %336) #7
  store i8 0, ptr %337, align 1, !tbaa !119
  %338 = load ptr, ptr %12, align 8, !tbaa !5
  %339 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 36
  %340 = load i32, ptr %339, align 8, !tbaa !116
  %341 = load i32, ptr %20, align 4, !tbaa !115
  %342 = add nsw i32 %340, %341
  %343 = sext i32 %342 to i64
  %344 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %338, i64 noundef %343) #7
  store i8 0, ptr %344, align 1, !tbaa !119
  br label %349

345:                                              ; preds = %324
  %346 = landingpad { ptr, i32 }
          cleanup
  %347 = extractvalue { ptr, i32 } %346, 0
  store ptr %347, ptr %8, align 8
  %348 = extractvalue { ptr, i32 } %346, 1
  store i32 %348, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %353

349:                                              ; preds = %330, %308
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %350

350:                                              ; preds = %349
  %351 = load i32, ptr %20, align 4, !tbaa !115
  %352 = add nsw i32 %351, 1
  store i32 %352, ptr %20, align 4, !tbaa !115
  br label %210, !llvm.loop !123

353:                                              ; preds = %345, %256
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %596

354:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #7
  store i8 1, ptr %27, align 1, !tbaa !120
  %355 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %356 = getelementptr inbounds %class.HighsLp, ptr %355, i32 0, i32 8
  %357 = load i32, ptr %356, align 8, !tbaa !124
  %358 = icmp eq i32 %357, 1
  br i1 %358, label %359, label %362

359:                                              ; preds = %354
  %360 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %361 = getelementptr inbounds %class.HighsLp, ptr %360, i32 0, i32 8
  store i32 -1, ptr %361, align 8, !tbaa !124
  br label %365

362:                                              ; preds = %354
  %363 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %364 = getelementptr inbounds %class.HighsLp, ptr %363, i32 0, i32 8
  store i32 1, ptr %364, align 8, !tbaa !124
  br label %365

365:                                              ; preds = %362, %359
  %366 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 36
  %367 = load i32, ptr %366, align 8, !tbaa !116
  %368 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %369 = getelementptr inbounds %class.HighsLp, ptr %368, i32 0, i32 0
  store i32 %367, ptr %369, align 8, !tbaa !114
  %370 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 37
  %371 = load i32, ptr %370, align 4, !tbaa !117
  %372 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %373 = getelementptr inbounds %class.HighsLp, ptr %372, i32 0, i32 1
  store i32 %371, ptr %373, align 4, !tbaa !125
  %374 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 39
  %375 = load double, ptr %374, align 8, !tbaa !126
  %376 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %377 = getelementptr inbounds %class.HighsLp, ptr %376, i32 0, i32 9
  store double %375, ptr %377, align 8, !tbaa !127
  %378 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 40
  %379 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %380 = getelementptr inbounds %class.HighsLp, ptr %379, i32 0, i32 2
  %381 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %380, ptr noundef nonnull align 8 dereferenceable(24) %378)
          to label %382 unwind label %427

382:                                              ; preds = %365
  %383 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 41
  %384 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %385 = getelementptr inbounds %class.HighsLp, ptr %384, i32 0, i32 3
  %386 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %385, ptr noundef nonnull align 8 dereferenceable(24) %383)
          to label %387 unwind label %427

387:                                              ; preds = %382
  %388 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 42
  %389 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %390 = getelementptr inbounds %class.HighsLp, ptr %389, i32 0, i32 4
  %391 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %390, ptr noundef nonnull align 8 dereferenceable(24) %388)
          to label %392 unwind label %427

392:                                              ; preds = %387
  %393 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 43
  %394 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %395 = getelementptr inbounds %class.HighsLp, ptr %394, i32 0, i32 5
  %396 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %395, ptr noundef nonnull align 8 dereferenceable(24) %393)
          to label %397 unwind label %427

397:                                              ; preds = %392
  %398 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 44
  %399 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %400 = getelementptr inbounds %class.HighsLp, ptr %399, i32 0, i32 6
  %401 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %400, ptr noundef nonnull align 8 dereferenceable(24) %398)
          to label %402 unwind label %427

402:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 112, ptr %28) #7
  invoke void @_ZN17HighsSparseMatrixC2Ev(ptr noundef nonnull align 8 dereferenceable(112) %28)
          to label %403 unwind label %431

403:                                              ; preds = %402
  %404 = getelementptr inbounds %class.HighsSparseMatrix, ptr %28, i32 0, i32 3
  %405 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 37
  %406 = load i32, ptr %405, align 4, !tbaa !117
  %407 = add nsw i32 %406, 1
  %408 = sext i32 %407 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %404, i64 noundef %408)
          to label %409 unwind label %435

409:                                              ; preds = %403
  %410 = getelementptr inbounds %class.HighsSparseMatrix, ptr %28, i32 0, i32 5
  %411 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 38
  %412 = load i32, ptr %411, align 8, !tbaa !128
  %413 = sext i32 %412 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %410, i64 noundef %413)
          to label %414 unwind label %435

414:                                              ; preds = %409
  %415 = getelementptr inbounds %class.HighsSparseMatrix, ptr %28, i32 0, i32 6
  %416 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 38
  %417 = load i32, ptr %416, align 8, !tbaa !128
  %418 = sext i32 %417 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %415, i64 noundef %418)
          to label %419 unwind label %435

419:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  store i32 0, ptr %29, align 4, !tbaa !115
  br label %420

420:                                              ; preds = %451, %419
  %421 = load i32, ptr %29, align 4, !tbaa !115
  %422 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 37
  %423 = load i32, ptr %422, align 4, !tbaa !117
  %424 = add nsw i32 %423, 1
  %425 = icmp slt i32 %421, %424
  br i1 %425, label %439, label %426

426:                                              ; preds = %420
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %454

427:                                              ; preds = %397, %392, %387, %382, %365
  %428 = landingpad { ptr, i32 }
          cleanup
  %429 = extractvalue { ptr, i32 } %428, 0
  store ptr %429, ptr %8, align 8
  %430 = extractvalue { ptr, i32 } %428, 1
  store i32 %430, ptr %9, align 4
  br label %595

431:                                              ; preds = %402
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %8, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %9, align 4
  br label %594

435:                                              ; preds = %521, %498, %487, %414, %409, %403
  %436 = landingpad { ptr, i32 }
          cleanup
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %8, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %9, align 4
  br label %593

439:                                              ; preds = %420
  %440 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %441 = getelementptr inbounds %class.HighsLp, ptr %440, i32 0, i32 7
  %442 = getelementptr inbounds %class.HighsSparseMatrix, ptr %441, i32 0, i32 3
  %443 = load i32, ptr %29, align 4, !tbaa !115
  %444 = sext i32 %443 to i64
  %445 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %442, i64 noundef %444) #7
  %446 = load i32, ptr %445, align 4, !tbaa !115
  %447 = getelementptr inbounds %class.HighsSparseMatrix, ptr %28, i32 0, i32 3
  %448 = load i32, ptr %29, align 4, !tbaa !115
  %449 = sext i32 %448 to i64
  %450 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %447, i64 noundef %449) #7
  store i32 %446, ptr %450, align 4, !tbaa !115
  br label %451

451:                                              ; preds = %439
  %452 = load i32, ptr %29, align 4, !tbaa !115
  %453 = add nsw i32 %452, 1
  store i32 %453, ptr %29, align 4, !tbaa !115
  br label %420, !llvm.loop !129

454:                                              ; preds = %426
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  store i32 0, ptr %30, align 4, !tbaa !115
  br label %455

455:                                              ; preds = %484, %454
  %456 = load i32, ptr %30, align 4, !tbaa !115
  %457 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 38
  %458 = load i32, ptr %457, align 8, !tbaa !128
  %459 = icmp slt i32 %456, %458
  br i1 %459, label %461, label %460

460:                                              ; preds = %455
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %487

461:                                              ; preds = %455
  %462 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %463 = getelementptr inbounds %class.HighsLp, ptr %462, i32 0, i32 7
  %464 = getelementptr inbounds %class.HighsSparseMatrix, ptr %463, i32 0, i32 5
  %465 = load i32, ptr %30, align 4, !tbaa !115
  %466 = sext i32 %465 to i64
  %467 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %464, i64 noundef %466) #7
  %468 = load i32, ptr %467, align 4, !tbaa !115
  %469 = getelementptr inbounds %class.HighsSparseMatrix, ptr %28, i32 0, i32 5
  %470 = load i32, ptr %30, align 4, !tbaa !115
  %471 = sext i32 %470 to i64
  %472 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %469, i64 noundef %471) #7
  store i32 %468, ptr %472, align 4, !tbaa !115
  %473 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %474 = getelementptr inbounds %class.HighsLp, ptr %473, i32 0, i32 7
  %475 = getelementptr inbounds %class.HighsSparseMatrix, ptr %474, i32 0, i32 6
  %476 = load i32, ptr %30, align 4, !tbaa !115
  %477 = sext i32 %476 to i64
  %478 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %475, i64 noundef %477) #7
  %479 = load double, ptr %478, align 8, !tbaa !118
  %480 = getelementptr inbounds %class.HighsSparseMatrix, ptr %28, i32 0, i32 6
  %481 = load i32, ptr %30, align 4, !tbaa !115
  %482 = sext i32 %481 to i64
  %483 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %480, i64 noundef %482) #7
  store double %479, ptr %483, align 8, !tbaa !118
  br label %484

484:                                              ; preds = %461
  %485 = load i32, ptr %30, align 4, !tbaa !115
  %486 = add nsw i32 %485, 1
  store i32 %486, ptr %30, align 4, !tbaa !115
  br label %455, !llvm.loop !130

487:                                              ; preds = %460
  %488 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 36
  %489 = load i32, ptr %488, align 8, !tbaa !116
  %490 = getelementptr inbounds %class.HighsSparseMatrix, ptr %28, i32 0, i32 1
  store i32 %489, ptr %490, align 4, !tbaa !131
  %491 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 37
  %492 = load i32, ptr %491, align 4, !tbaa !117
  %493 = getelementptr inbounds %class.HighsSparseMatrix, ptr %28, i32 0, i32 2
  store i32 %492, ptr %493, align 8, !tbaa !132
  %494 = getelementptr inbounds %class.HighsSparseMatrix, ptr %28, i32 0, i32 0
  store i32 2, ptr %494, align 8, !tbaa !133
  %495 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %496 = getelementptr inbounds %class.HighsLp, ptr %495, i32 0, i32 7
  %497 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZN17HighsSparseMatrixaSERKS_(ptr noundef nonnull align 8 dereferenceable(112) %496, ptr noundef nonnull align 8 dereferenceable(112) %28)
          to label %498 unwind label %435

498:                                              ; preds = %487
  %499 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %500 = getelementptr inbounds %class.HighsLp, ptr %499, i32 0, i32 7
  invoke void @_ZN17HighsSparseMatrix13ensureColwiseEv(ptr noundef nonnull align 8 dereferenceable(112) %500)
          to label %501 unwind label %435

501:                                              ; preds = %498
  %502 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %503 = getelementptr inbounds %class.HighsLp, ptr %502, i32 0, i32 0
  %504 = load i32, ptr %503, align 8, !tbaa !114
  %505 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 36
  %506 = load i32, ptr %505, align 8, !tbaa !116
  %507 = icmp eq i32 %504, %506
  br i1 %507, label %508, label %509

508:                                              ; preds = %501
  br label %511

509:                                              ; preds = %501
  call void @__assert_fail(ptr noundef @.str.77, ptr noundef @.str.52, i32 noundef 958, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv) #8
  unreachable

510:                                              ; No predecessors!
  br label %511

511:                                              ; preds = %510, %508
  %512 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %513 = getelementptr inbounds %class.HighsLp, ptr %512, i32 0, i32 1
  %514 = load i32, ptr %513, align 4, !tbaa !125
  %515 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 37
  %516 = load i32, ptr %515, align 4, !tbaa !117
  %517 = icmp eq i32 %514, %516
  br i1 %517, label %518, label %519

518:                                              ; preds = %511
  br label %521

519:                                              ; preds = %511
  call void @__assert_fail(ptr noundef @.str.78, ptr noundef @.str.52, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv) #8
  unreachable

520:                                              ; No predecessors!
  br label %521

521:                                              ; preds = %520, %518
  %522 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %523 = getelementptr inbounds %class.HighsLp, ptr %522, i32 0, i32 7
  %524 = invoke noundef i32 @_ZNK17HighsSparseMatrix5numNzEv(ptr noundef nonnull align 8 dereferenceable(112) %523)
          to label %525 unwind label %435

525:                                              ; preds = %521
  %526 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 38
  %527 = load i32, ptr %526, align 8, !tbaa !128
  %528 = icmp eq i32 %524, %527
  br i1 %528, label %529, label %530

529:                                              ; preds = %525
  br label %532

530:                                              ; preds = %525
  call void @__assert_fail(ptr noundef @.str.79, ptr noundef @.str.52, i32 noundef 960, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv) #8
  unreachable

531:                                              ; No predecessors!
  br label %532

532:                                              ; preds = %531, %529
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  %533 = load ptr, ptr %10, align 8, !tbaa !5
  %534 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %533) #7
  %535 = trunc i64 %534 to i32
  store i32 %535, ptr %31, align 4, !tbaa !115
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #7
  %536 = load i32, ptr %31, align 4, !tbaa !115
  %537 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 37
  %538 = load i32, ptr %537, align 4, !tbaa !117
  %539 = icmp eq i32 %536, %538
  %540 = zext i1 %539 to i8
  store i8 %540, ptr %32, align 1, !tbaa !120
  %541 = load i8, ptr %32, align 1, !tbaa !120, !range !112, !noundef !113
  %542 = trunc i8 %541 to i1
  br i1 %542, label %553, label %543

543:                                              ; preds = %532
  %544 = load i32, ptr %31, align 4, !tbaa !115
  %545 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 37
  %546 = load i32, ptr %545, align 4, !tbaa !117
  %547 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.80, i32 noundef %544, i32 noundef %546)
          to label %548 unwind label %549

548:                                              ; preds = %543
  br label %553

549:                                              ; preds = %543
  %550 = landingpad { ptr, i32 }
          cleanup
  %551 = extractvalue { ptr, i32 } %550, 0
  store ptr %551, ptr %8, align 8
  %552 = extractvalue { ptr, i32 } %550, 1
  store i32 %552, ptr %9, align 4
  br label %592

553:                                              ; preds = %548, %532
  %554 = load i8, ptr %32, align 1, !tbaa !120, !range !112, !noundef !113
  %555 = trunc i8 %554 to i1
  br i1 %555, label %556, label %557

556:                                              ; preds = %553
  br label %559

557:                                              ; preds = %553
  call void @__assert_fail(ptr noundef @.str.81, ptr noundef @.str.52, i32 noundef 966, ptr noundef @__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv) #8
  unreachable

558:                                              ; No predecessors!
  br label %559

559:                                              ; preds = %558, %556
  call void @_ZN4HEkk15clearEkkDualizeEv(ptr noundef nonnull align 8 dereferenceable(14568) %35)
  %560 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 6
  %561 = getelementptr inbounds %struct.HighsSimplexStatus, ptr %560, i32 0, i32 1
  store i8 0, ptr %561, align 1, !tbaa !9
  %562 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 6
  %563 = getelementptr inbounds %struct.HighsSimplexStatus, ptr %562, i32 0, i32 4
  store i8 1, ptr %563, align 4, !tbaa !134
  %564 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 6
  %565 = getelementptr inbounds %struct.HighsSimplexStatus, ptr %564, i32 0, i32 5
  store i8 0, ptr %565, align 1, !tbaa !135
  %566 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 6
  %567 = getelementptr inbounds %struct.HighsSimplexStatus, ptr %566, i32 0, i32 6
  store i8 0, ptr %567, align 2, !tbaa !136
  %568 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 6
  %569 = getelementptr inbounds %struct.HighsSimplexStatus, ptr %568, i32 0, i32 8
  store i8 0, ptr %569, align 8, !tbaa !137
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  %570 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 23
  %571 = load i32, ptr %570, align 8, !tbaa !138
  %572 = sub nsw i32 0, %571
  store i32 %572, ptr %33, align 4, !tbaa !115
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #7
  %573 = invoke noundef i32 @_ZN4HEkk5solveEb(ptr noundef nonnull align 8 dereferenceable(14568) %35, i1 noundef zeroext false)
          to label %574 unwind label %588

574:                                              ; preds = %559
  store i32 %573, ptr %34, align 4, !tbaa !139
  %575 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 23
  %576 = load i32, ptr %575, align 8, !tbaa !138
  %577 = load i32, ptr %33, align 4, !tbaa !115
  %578 = add nsw i32 %577, %576
  store i32 %578, ptr %33, align 4, !tbaa !115
  %579 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 1
  %580 = load ptr, ptr %579, align 8, !tbaa !141
  %581 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %580, i32 0, i32 130
  %582 = getelementptr inbounds %class.HEkk, ptr %35, i32 0, i32 4
  %583 = getelementptr inbounds %class.HighsLp, ptr %582, i32 0, i32 10
  %584 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %583) #7
  %585 = load i32, ptr %33, align 4, !tbaa !115
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %581, i32 noundef 1, ptr noundef @.str.82, ptr noundef %584, i32 noundef %585)
          to label %586 unwind label %588

586:                                              ; preds = %574
  %587 = load i32, ptr %34, align 4, !tbaa !139
  store i32 %587, ptr %2, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 4, 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
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %28) #7
  call void @llvm.lifetime.end.p0(i64 112, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @_ZNSt6vectorIaSaIaEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #7
  call void @_ZNSt6vectorIaSaIaEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #7
  br label %599

588:                                              ; preds = %574, %559
  %589 = landingpad { ptr, i32 }
          cleanup
  %590 = extractvalue { ptr, i32 } %589, 0
  store ptr %590, ptr %8, align 8
  %591 = extractvalue { ptr, i32 } %589, 1
  store i32 %591, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br label %592

592:                                              ; preds = %588, %549
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br label %593

593:                                              ; preds = %592, %435
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %28) #7
  br label %594

594:                                              ; preds = %593, %431
  call void @llvm.lifetime.end.p0(i64 112, ptr %28) #7
  br label %595

595:                                              ; preds = %594, %427
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  br label %596

596:                                              ; preds = %595, %353, %132
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %597

597:                                              ; preds = %596, %86
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @_ZNSt6vectorIaSaIaEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  br label %598

598:                                              ; preds = %597, %82
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #7
  call void @_ZNSt6vectorIaSaIaEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #7
  br label %601

599:                                              ; preds = %586, %40
  %600 = load i32, ptr %2, align 4
  ret i32 %600

601:                                              ; preds = %598
  %602 = load ptr, ptr %8, align 8
  %603 = load i32, ptr %9, align 4
  %604 = insertvalue { ptr, i32 } poison, ptr %602, 0
  %605 = insertvalue { ptr, i32 } %604, i32 %603, 1
  resume { ptr, i32 } %605
}

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) #1 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 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { noreturn nounwind }

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

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


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

%"class.std::vector.35" = type { %"struct.std::_Vector_base.36" }
%"struct.std::_Vector_base.36" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3" }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.52 = external hidden unnamed_addr constant [70 x i8], align 1
@_ZL17kIllegalFlagValue = external hidden constant i8, align 1
@_ZL17kIllegalMoveValue = external hidden constant i8, align 1
@.str.74 = external hidden unnamed_addr constant [7 x i8], align 1
@__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv = external hidden unnamed_addr constant [30 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [95 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN4HEkk9undualizeEv(ptr noundef nonnull align 8 dereferenceable(14568) %0) local_unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::vector.35", align 8
  %3 = alloca %"class.std::vector.35", align 8
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca %class.HighsSparseMatrix, align 8
  %7 = getelementptr inbounds i8, ptr %0, i64 9553
  %8 = load i8, ptr %7, align 1, !tbaa !5, !range !111, !noundef !112
  %9 = trunc nuw i8 %8 to i1
  br i1 %9, label %10, label %268

10:                                               ; preds = %1
  %11 = getelementptr inbounds i8, ptr %0, i64 8600
  %12 = load i32, ptr %11, align 8, !tbaa !113
  %13 = getelementptr inbounds i8, ptr %0, i64 14216
  %14 = load i32, ptr %13, align 8, !tbaa !114
  %15 = getelementptr inbounds i8, ptr %0, i64 14220
  %16 = load i32, ptr %15, align 4, !tbaa !115
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2) #8
  %17 = getelementptr inbounds i8, ptr %0, i64 10616
  %18 = getelementptr inbounds i8, ptr %0, i64 10640
  call void @_ZNSt6vectorIaSaIaEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %18)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #8
  %19 = getelementptr inbounds i8, ptr %0, i64 10664
  invoke void @_ZNSt6vectorIaSaIaEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %20 unwind label %36

20:                                               ; preds = %10
  %21 = add nsw i32 %16, %14
  %22 = sext i32 %21 to i64
  invoke void @_ZNSt6vectorIaSaIaEE6assignEmRKa(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef %22, ptr noundef nonnull align 1 dereferenceable(1) @_ZL17kIllegalFlagValue)
          to label %23 unwind label %38

23:                                               ; preds = %20
  invoke void @_ZNSt6vectorIaSaIaEE6assignEmRKa(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %22, ptr noundef nonnull align 1 dereferenceable(1) @_ZL17kIllegalMoveValue)
          to label %24 unwind label %38

24:                                               ; preds = %23
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef 0)
          to label %25 unwind label %38

25:                                               ; preds = %24
  %26 = load i32, ptr %15, align 4, !tbaa !115
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #8
  store i32 0, ptr %4, align 4, !tbaa !116
  %27 = load i32, ptr %13, align 8, !tbaa !114
  %28 = icmp sgt i32 %27, 0
  br i1 %28, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %25
  %29 = getelementptr inbounds i8, ptr %0, i64 14264
  %30 = getelementptr inbounds i8, ptr %0, i64 14288
  br label %40

._crit_edge.loopexit:                             ; preds = %80
  %.pre = load i32, ptr %15, align 4, !tbaa !115
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %25
  %31 = phi i32 [ %27, %25 ], [ %87, %._crit_edge.loopexit ]
  %32 = phi i32 [ %26, %25 ], [ %.pre, %._crit_edge.loopexit ]
  %.090.lcssa = phi i32 [ %26, %25 ], [ %.191132, %._crit_edge.loopexit ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #8
  %33 = icmp sgt i32 %32, 0
  br i1 %33, label %.lr.ph174, label %._crit_edge175

.lr.ph174:                                        ; preds = %._crit_edge
  %34 = getelementptr inbounds i8, ptr %0, i64 14312
  %35 = getelementptr inbounds i8, ptr %0, i64 14336
  br label %100

36:                                               ; preds = %10
  %37 = landingpad { ptr, i32 }
          cleanup
  br label %267

38:                                               ; preds = %24, %23, %20
  %39 = landingpad { ptr, i32 }
          cleanup
  br label %266

40:                                               ; preds = %.lr.ph, %80
  %.090169 = phi i32 [ %26, %.lr.ph ], [ %.191132, %80 ]
  %storemerge168 = phi i32 [ 0, %.lr.ph ], [ %86, %80 ]
  %41 = sext i32 %storemerge168 to i64
  %42 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %41) #8
  %43 = load double, ptr %42, align 8, !tbaa !117
  %44 = load i32, ptr %4, align 4, !tbaa !116
  %45 = sext i32 %44 to i64
  %46 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %45) #8
  %47 = load double, ptr %46, align 8, !tbaa !117
  %48 = load i32, ptr %4, align 4, !tbaa !116
  %49 = add nsw i32 %48, %12
  %50 = sext i32 %49 to i64
  %51 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %50) #8
  %52 = load i8, ptr %51, align 1, !tbaa !118
  %53 = icmp eq i8 %52, 0
  %54 = fcmp oeq double %43, %47
  br i1 %54, label %55, label %56

55:                                               ; preds = %40
  br i1 %53, label %80, label %.thread

56:                                               ; preds = %40
  %57 = fneg double %43
  %58 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %57)
          to label %59 unwind label %65

59:                                               ; preds = %56
  br i1 %58, label %74, label %60

60:                                               ; preds = %59
  %61 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %47)
          to label %62 unwind label %65

62:                                               ; preds = %60
  br i1 %61, label %73, label %63

63:                                               ; preds = %62
  br i1 %53, label %.thread147, label %67

.thread147:                                       ; preds = %63
  %64 = add nsw i32 %.090169, 1
  br label %80

65:                                               ; preds = %.thread, %74, %60, %56
  %66 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #8
  br label %266

67:                                               ; preds = %63
  %68 = sext i32 %.090169 to i64
  %69 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %68) #8
  %70 = load i8, ptr %69, align 1, !tbaa !118
  %71 = icmp eq i8 %70, 0
  %72 = add nsw i32 %.090169, 1
  br i1 %71, label %80, label %.thread

73:                                               ; preds = %62
  br i1 %53, label %80, label %.thread

74:                                               ; preds = %59
  %75 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %47)
          to label %76 unwind label %65

76:                                               ; preds = %74
  br i1 %75, label %77, label %79

77:                                               ; preds = %76
  br i1 %53, label %78, label %.thread

78:                                               ; preds = %77
  call void @__assert_fail(ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.52, i32 noundef 830, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv) #9
  unreachable

79:                                               ; preds = %76
  br i1 %53, label %80, label %.thread

.thread:                                          ; preds = %77, %73, %55, %67, %79
  %.191133 = phi i32 [ %.090169, %79 ], [ %72, %67 ], [ %.090169, %55 ], [ %.090169, %73 ], [ %.090169, %77 ]
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 4 dereferenceable(4) %4)
          to label %80 unwind label %65

80:                                               ; preds = %.thread, %.thread147, %73, %55, %67, %79
  %.sink212 = phi i8 [ 1, %79 ], [ 1, %67 ], [ 1, %55 ], [ 1, %73 ], [ 1, %.thread147 ], [ 0, %.thread ]
  %.sink = phi i8 [ 1, %.thread147 ], [ -1, %67 ], [ -1, %79 ], [ 0, %55 ], [ 1, %73 ], [ 0, %.thread ]
  %.191132 = phi i32 [ %64, %.thread147 ], [ %72, %67 ], [ %.090169, %79 ], [ %.090169, %55 ], [ %.090169, %73 ], [ %.191133, %.thread ]
  %.sink215 = load i32, ptr %4, align 4, !tbaa !116
  %81 = sext i32 %.sink215 to i64
  %82 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef %81) #8
  store i8 %.sink212, ptr %82, align 1, !tbaa !118
  %.sink198 = load i32, ptr %4, align 4, !tbaa !116
  %83 = sext i32 %.sink198 to i64
  %84 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %83) #8
  store i8 %.sink, ptr %84, align 1, !tbaa !118
  %85 = load i32, ptr %4, align 4, !tbaa !116
  %86 = add nsw i32 %85, 1
  store i32 %86, ptr %4, align 4, !tbaa !116
  %87 = load i32, ptr %13, align 8, !tbaa !114
  %88 = icmp slt i32 %86, %87
  br i1 %88, label %40, label %._crit_edge.loopexit, !llvm.loop !119

._crit_edge175.loopexit:                          ; preds = %146
  %.pre191 = load i32, ptr %13, align 8, !tbaa !114
  br label %._crit_edge175

._crit_edge175:                                   ; preds = %._crit_edge175.loopexit, %._crit_edge
  %89 = phi i32 [ %31, %._crit_edge ], [ %.pre191, %._crit_edge175.loopexit ]
  %.lcssa = phi i32 [ %32, %._crit_edge ], [ %153, %._crit_edge175.loopexit ]
  %90 = getelementptr inbounds i8, ptr %0, i64 8840
  %91 = load i32, ptr %90, align 8, !tbaa !121
  %92 = icmp eq i32 %91, 1
  %. = select i1 %92, i32 -1, i32 1
  store i32 %., ptr %90, align 8, !tbaa !121
  store i32 %89, ptr %11, align 8, !tbaa !113
  %93 = getelementptr inbounds i8, ptr %0, i64 8604
  store i32 %.lcssa, ptr %93, align 4, !tbaa !122
  %94 = getelementptr inbounds i8, ptr %0, i64 14232
  %95 = load double, ptr %94, align 8, !tbaa !123
  %96 = getelementptr inbounds i8, ptr %0, i64 8848
  store double %95, ptr %96, align 8, !tbaa !124
  %97 = getelementptr inbounds i8, ptr %0, i64 14240
  %98 = getelementptr inbounds i8, ptr %0, i64 8608
  %99 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %98, ptr noundef nonnull align 8 dereferenceable(24) %97)
          to label %156 unwind label %194

100:                                              ; preds = %.lr.ph174, %146
  %indvars.iv = phi i64 [ 0, %.lr.ph174 ], [ %indvars.iv.next, %146 ]
  %.292172 = phi i32 [ %.090.lcssa, %.lr.ph174 ], [ %.393140, %146 ]
  %101 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %indvars.iv) #8
  %102 = load double, ptr %101, align 8, !tbaa !117
  %103 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %indvars.iv) #8
  %104 = load double, ptr %103, align 8, !tbaa !117
  %105 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv) #8
  %106 = load i8, ptr %105, align 1, !tbaa !118
  %107 = icmp eq i8 %106, 0
  %108 = fcmp oeq double %102, %104
  br i1 %108, label %109, label %110

109:                                              ; preds = %100
  br i1 %107, label %134, label %.thread136

110:                                              ; preds = %100
  %111 = fneg double %102
  %112 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %111)
          to label %113 unwind label %119

113:                                              ; preds = %110
  br i1 %112, label %128, label %114

114:                                              ; preds = %113
  %115 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %104)
          to label %116 unwind label %119

116:                                              ; preds = %114
  br i1 %115, label %127, label %117

117:                                              ; preds = %116
  br i1 %107, label %.thread156, label %121

.thread156:                                       ; preds = %117
  %118 = add nsw i32 %.292172, 1
  br label %134

119:                                              ; preds = %128, %114, %110
  %120 = landingpad { ptr, i32 }
          cleanup
  br label %266

121:                                              ; preds = %117
  %122 = sext i32 %.292172 to i64
  %123 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %122) #8
  %124 = load i8, ptr %123, align 1, !tbaa !118
  %125 = icmp eq i8 %124, 0
  %126 = add nsw i32 %.292172, 1
  br i1 %125, label %134, label %.thread136

127:                                              ; preds = %116
  br i1 %107, label %134, label %.thread136

128:                                              ; preds = %113
  %129 = invoke noundef zeroext i1 @_Z16highs_isInfinityd(double noundef %104)
          to label %130 unwind label %119

130:                                              ; preds = %128
  br i1 %129, label %131, label %133

131:                                              ; preds = %130
  br i1 %107, label %132, label %.thread136

132:                                              ; preds = %131
  call void @__assert_fail(ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.52, i32 noundef 890, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv) #9
  unreachable

133:                                              ; preds = %130
  br i1 %107, label %134, label %.thread136

134:                                              ; preds = %133, %121, %109, %127, %.thread156
  %.197142161 = phi i8 [ -1, %.thread156 ], [ 1, %121 ], [ 1, %133 ], [ 0, %109 ], [ -1, %127 ]
  %.393143160 = phi i32 [ %118, %.thread156 ], [ %126, %121 ], [ %.292172, %133 ], [ %.292172, %109 ], [ %.292172, %127 ]
  %135 = load i32, ptr %13, align 8, !tbaa !114
  %136 = trunc nuw nsw i64 %indvars.iv to i32
  %137 = add nsw i32 %135, %136
  br label %146

.thread136:                                       ; preds = %131, %127, %109, %121, %133
  %.393141 = phi i32 [ %.292172, %133 ], [ %126, %121 ], [ %.292172, %109 ], [ %.292172, %127 ], [ %.292172, %131 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #8
  %138 = load i32, ptr %13, align 8, !tbaa !114
  %139 = trunc nuw nsw i64 %indvars.iv to i32
  %140 = add nsw i32 %138, %139
  store i32 %140, ptr %5, align 4, !tbaa !116
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 4 dereferenceable(4) %5)
          to label %141 unwind label %144

141:                                              ; preds = %.thread136
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #8
  %142 = load i32, ptr %13, align 8, !tbaa !114
  %143 = add nsw i32 %142, %139
  br label %146

144:                                              ; preds = %.thread136
  %145 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #8
  br label %266

146:                                              ; preds = %141, %134
  %.sink208 = phi i32 [ %143, %141 ], [ %137, %134 ]
  %.sink205 = phi i8 [ 0, %141 ], [ 1, %134 ]
  %.sink204 = phi i32 [ %139, %141 ], [ %136, %134 ]
  %.sink199 = phi i8 [ 0, %141 ], [ %.197142161, %134 ]
  %.393140 = phi i32 [ %.393141, %141 ], [ %.393143160, %134 ]
  %147 = sext i32 %.sink208 to i64
  %148 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef %147) #8
  store i8 %.sink205, ptr %148, align 1, !tbaa !118
  %149 = load i32, ptr %13, align 8, !tbaa !114
  %150 = add nsw i32 %149, %.sink204
  %151 = sext i32 %150 to i64
  %152 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIaSaIaEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %151) #8
  store i8 %.sink199, ptr %152, align 1, !tbaa !118
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %153 = load i32, ptr %15, align 4, !tbaa !115
  %154 = sext i32 %153 to i64
  %155 = icmp slt i64 %indvars.iv.next, %154
  br i1 %155, label %100, label %._crit_edge175.loopexit, !llvm.loop !125

156:                                              ; preds = %._crit_edge175
  %157 = getelementptr inbounds i8, ptr %0, i64 14264
  %158 = getelementptr inbounds i8, ptr %0, i64 8632
  %159 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %158, ptr noundef nonnull align 8 dereferenceable(24) %157)
          to label %160 unwind label %194

160:                                              ; preds = %156
  %161 = getelementptr inbounds i8, ptr %0, i64 14288
  %162 = getelementptr inbounds i8, ptr %0, i64 8656
  %163 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %162, ptr noundef nonnull align 8 dereferenceable(24) %161)
          to label %164 unwind label %194

164:                                              ; preds = %160
  %165 = getelementptr inbounds i8, ptr %0, i64 14312
  %166 = getelementptr inbounds i8, ptr %0, i64 8680
  %167 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %166, ptr noundef nonnull align 8 dereferenceable(24) %165)
          to label %168 unwind label %194

168:                                              ; preds = %164
  %169 = getelementptr inbounds i8, ptr %0, i64 14336
  %170 = getelementptr inbounds i8, ptr %0, i64 8704
  %171 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %170, ptr noundef nonnull align 8 dereferenceable(24) %169)
          to label %172 unwind label %194

172:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %6) #8
  invoke void @_ZN17HighsSparseMatrixC2Ev(ptr noundef nonnull align 8 dereferenceable(112) %6)
          to label %173 unwind label %196

173:                                              ; preds = %172
  %174 = getelementptr inbounds i8, ptr %6, i64 16
  %175 = load i32, ptr %15, align 4, !tbaa !115
  %176 = add nsw i32 %175, 1
  %177 = sext i32 %176 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %174, i64 noundef %177)
          to label %178 unwind label %198

178:                                              ; preds = %173
  %179 = getelementptr inbounds i8, ptr %6, i64 64
  %180 = getelementptr inbounds i8, ptr %0, i64 14224
  %181 = load i32, ptr %180, align 8, !tbaa !126
  %182 = sext i32 %181 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %179, i64 noundef %182)
          to label %183 unwind label %198

183:                                              ; preds = %178
  %184 = getelementptr inbounds i8, ptr %6, i64 88
  %185 = load i32, ptr %180, align 8, !tbaa !126
  %186 = sext i32 %185 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %184, i64 noundef %186)
          to label %.preheader162 unwind label %198

.preheader162:                                    ; preds = %183
  %187 = load i32, ptr %15, align 4, !tbaa !115
  %.not177 = icmp slt i32 %187, 0
  br i1 %.not177, label %.preheader, label %.lr.ph179

.lr.ph179:                                        ; preds = %.preheader162
  %188 = getelementptr inbounds i8, ptr %0, i64 8744
  br label %200

.preheader:                                       ; preds = %200, %.preheader162
  %189 = phi i32 [ %187, %.preheader162 ], [ %204, %200 ]
  %190 = load i32, ptr %180, align 8, !tbaa !126
  %191 = icmp sgt i32 %190, 0
  br i1 %191, label %.lr.ph181, label %._crit_edge182

.lr.ph181:                                        ; preds = %.preheader
  %192 = getelementptr inbounds i8, ptr %0, i64 8792
  %193 = getelementptr inbounds i8, ptr %0, i64 8816
  br label %212

194:                                              ; preds = %168, %164, %160, %156, %._crit_edge175
  %195 = landingpad { ptr, i32 }
          cleanup
  br label %266

196:                                              ; preds = %172
  %197 = landingpad { ptr, i32 }
          cleanup
  br label %265

198:                                              ; preds = %233, %222, %._crit_edge182, %183, %178, %173
  %199 = landingpad { ptr, i32 }
          cleanup
  br label %264

200:                                              ; preds = %.lr.ph179, %200
  %indvars.iv185 = phi i64 [ 0, %.lr.ph179 ], [ %indvars.iv.next186, %200 ]
  %201 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %188, i64 noundef %indvars.iv185) #8
  %202 = load i32, ptr %201, align 4, !tbaa !116
  %203 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %174, i64 noundef %indvars.iv185) #8
  store i32 %202, ptr %203, align 4, !tbaa !116
  %indvars.iv.next186 = add nuw nsw i64 %indvars.iv185, 1
  %204 = load i32, ptr %15, align 4, !tbaa !115
  %205 = sext i32 %204 to i64
  %.not.not = icmp slt i64 %indvars.iv185, %205
  br i1 %.not.not, label %200, label %.preheader, !llvm.loop !127

._crit_edge182.loopexit:                          ; preds = %212
  %.pre192 = load i32, ptr %15, align 4, !tbaa !115
  br label %._crit_edge182

._crit_edge182:                                   ; preds = %._crit_edge182.loopexit, %.preheader
  %206 = phi i32 [ %.pre192, %._crit_edge182.loopexit ], [ %189, %.preheader ]
  %207 = load i32, ptr %13, align 8, !tbaa !114
  %208 = getelementptr inbounds i8, ptr %6, i64 4
  store i32 %207, ptr %208, align 4, !tbaa !128
  %209 = getelementptr inbounds i8, ptr %6, i64 8
  store i32 %206, ptr %209, align 8, !tbaa !129
  store i32 2, ptr %6, align 8, !tbaa !130
  %210 = getelementptr inbounds i8, ptr %0, i64 8728
  %211 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZN17HighsSparseMatrixaSERKS_(ptr noundef nonnull align 8 dereferenceable(112) %210, ptr noundef nonnull align 8 dereferenceable(112) %6)
          to label %222 unwind label %198

212:                                              ; preds = %.lr.ph181, %212
  %indvars.iv188 = phi i64 [ 0, %.lr.ph181 ], [ %indvars.iv.next189, %212 ]
  %213 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %192, i64 noundef %indvars.iv188) #8
  %214 = load i32, ptr %213, align 4, !tbaa !116
  %215 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %179, i64 noundef %indvars.iv188) #8
  store i32 %214, ptr %215, align 4, !tbaa !116
  %216 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %193, i64 noundef %indvars.iv188) #8
  %217 = load double, ptr %216, align 8, !tbaa !117
  %218 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %184, i64 noundef %indvars.iv188) #8
  store double %217, ptr %218, align 8, !tbaa !117
  %indvars.iv.next189 = add nuw nsw i64 %indvars.iv188, 1
  %219 = load i32, ptr %180, align 8, !tbaa !126
  %220 = sext i32 %219 to i64
  %221 = icmp slt i64 %indvars.iv.next189, %220
  br i1 %221, label %212, label %._crit_edge182.loopexit, !llvm.loop !131

222:                                              ; preds = %._crit_edge182
  invoke void @_ZN17HighsSparseMatrix13ensureColwiseEv(ptr noundef nonnull align 8 dereferenceable(112) %210)
          to label %223 unwind label %198

223:                                              ; preds = %222
  %224 = load i32, ptr %11, align 8, !tbaa !113
  %225 = load i32, ptr %13, align 8, !tbaa !114
  %226 = icmp eq i32 %224, %225
  br i1 %226, label %228, label %227

227:                                              ; preds = %223
  call void @__assert_fail(ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.52, i32 noundef 958, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv) #9
  unreachable

228:                                              ; preds = %223
  %229 = load i32, ptr %93, align 4, !tbaa !122
  %230 = load i32, ptr %15, align 4, !tbaa !115
  %231 = icmp eq i32 %229, %230
  br i1 %231, label %233, label %232

232:                                              ; preds = %228
  call void @__assert_fail(ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.52, i32 noundef 959, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv) #9
  unreachable

233:                                              ; preds = %228
  %234 = invoke noundef i32 @_ZNK17HighsSparseMatrix5numNzEv(ptr noundef nonnull align 8 dereferenceable(112) %210)
          to label %235 unwind label %198

235:                                              ; preds = %233
  %236 = load i32, ptr %180, align 8, !tbaa !126
  %237 = icmp eq i32 %234, %236
  br i1 %237, label %239, label %238

238:                                              ; preds = %235
  call void @__assert_fail(ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.52, i32 noundef 960, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv) #9
  unreachable

239:                                              ; preds = %235
  %240 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  %241 = trunc i64 %240 to i32
  %242 = load i32, ptr %15, align 4, !tbaa !115
  %243 = icmp eq i32 %242, %241
  br i1 %243, label %.critedge, label %244

244:                                              ; preds = %239
  %245 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.80, i32 noundef %241, i32 noundef %242)
  call void @__assert_fail(ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.52, i32 noundef 966, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4HEkk9undualizeEv) #9
  unreachable

.critedge:                                        ; preds = %239
  call void @_ZN4HEkk15clearEkkDualizeEv(ptr noundef nonnull align 8 dereferenceable(14568) %0)
  store i8 0, ptr %7, align 1, !tbaa !5
  %246 = getelementptr inbounds i8, ptr %0, i64 9556
  store i8 1, ptr %246, align 4, !tbaa !132
  %247 = getelementptr inbounds i8, ptr %0, i64 9557
  store i8 0, ptr %247, align 1, !tbaa !133
  %248 = getelementptr inbounds i8, ptr %0, i64 9558
  store i8 0, ptr %248, align 2, !tbaa !134
  %249 = getelementptr inbounds i8, ptr %0, i64 9560
  store i8 0, ptr %249, align 8, !tbaa !135
  %250 = getelementptr inbounds i8, ptr %0, i64 14072
  %251 = load i32, ptr %250, align 8, !tbaa !136
  %252 = invoke noundef i32 @_ZN4HEkk5solveEb(ptr noundef nonnull align 8 dereferenceable(14568) %0, i1 noundef zeroext false)
          to label %253 unwind label %262

253:                                              ; preds = %.critedge
  %254 = load i32, ptr %250, align 8, !tbaa !136
  %255 = sub i32 %254, %251
  %256 = getelementptr inbounds i8, ptr %0, i64 8
  %257 = load ptr, ptr %256, align 8, !tbaa !137
  %258 = getelementptr inbounds i8, ptr %257, i64 896
  %259 = getelementptr inbounds i8, ptr %0, i64 8856
  %260 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %259) #8
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %258, i32 noundef 1, ptr noundef nonnull @.str.82, ptr noundef %260, i32 noundef %255)
          to label %261 unwind label %262

261:                                              ; preds = %253
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %6) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %6) #8
  call void @_ZNSt6vectorIaSaIaEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #8
  call void @_ZNSt6vectorIaSaIaEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #8
  br label %268

262:                                              ; preds = %253, %.critedge
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %264

264:                                              ; preds = %262, %198
  %.pn = phi { ptr, i32 } [ %263, %262 ], [ %199, %198 ]
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %6) #8
  br label %265

265:                                              ; preds = %264, %196
  %.pn.pn = phi { ptr, i32 } [ %.pn, %264 ], [ %197, %196 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %6) #8
  br label %266

266:                                              ; preds = %65, %144, %119, %265, %194, %38
  %.pn117.pn = phi { ptr, i32 } [ %39, %38 ], [ %66, %65 ], [ %145, %144 ], [ %120, %119 ], [ %.pn.pn, %265 ], [ %195, %194 ]
  call void @_ZNSt6vectorIaSaIaEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #8
  br label %267

267:                                              ; preds = %266, %36
  %.pn117.pn.pn = phi { ptr, i32 } [ %.pn117.pn, %266 ], [ %37, %36 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #8
  call void @_ZNSt6vectorIaSaIaEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #8
  resume { ptr, i32 } %.pn117.pn.pn

268:                                              ; preds = %1, %261
  %.0 = phi i32 [ %252, %261 ], [ 0, %1 ]
  ret i32 %.0
}

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

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

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

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

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

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

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

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


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