; LLVM IR from ERGO-Code/HiGHS :: src/lp_data/HighsIis.ll (ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%class.Highs = type { ptr, %struct.HighsSolution, %struct.HighsBasis, %struct.ICrashInfo, %class.HighsModel, %"class.std::vector.43", %class.HighsModel, %class.HighsTimer, %struct.HighsCallback, %class.HighsOptions, %class.HighsInfo, %struct.HighsRanging, %class.HighsIis, %"class.std::vector.57", i32, i32, i8, double, %"class.std::vector.8", %"class.std::vector.8", %class.HighsSparseMatrix, %class.HEkk, %struct.HighsPresolveLog, i32, i8, i32, i8, %class.PresolveComponent }
%struct.HighsSolution = type { i8, i8, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8" }
%struct.HighsBasis = type { i8, i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::vector.33", %"class.std::vector.33" }
%"class.std::vector.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ICrashInfo = type { i32, double, double, double, double, double, %"class.std::vector.38", %"class.std::vector.8", double }
%"class.std::vector.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = type { %"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl" }
%"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl" = type { %"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.43" = type { %"struct.std::_Vector_base.44" }
%"struct.std::_Vector_base.44" = type { %"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsModel = type { %class.HighsLp, %class.HighsHessian }
%class.HighsLp = type { i32, i32, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %class.HighsSparseMatrix, i32, double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.18", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = 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.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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.8", %"class.std::vector.8" }
%struct.HighsLpMods = type { %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.18", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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.HighsHessian = type { i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector.8" }
%class.HighsTimer = type <{ ptr, double, i32, [4 x i8], %"class.std::vector", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.13", i32, i32, i32, [4 x i8] }>
%struct.HighsCallback = type { %"class.std::function", ptr, ptr, %"class.std::vector.48", %struct.HighsCallbackDataOut, %struct.HighsCallbackDataIn }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.std::vector.48" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%struct.HighsCallbackDataOut = type { i32, double, i32, i32, i32, double, i64, i64, double, double, double, ptr, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, i32 }
%struct.HighsCallbackDataIn = type { i32, ptr }
%class.HighsOptions = type <{ %struct.HighsOptionsStruct, %"class.std::vector.28", i32, [4 x i8] }>
%struct.HighsOptionsStruct = type { ptr, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, %"class.std::__cxx11::basic_string", double, double, double, double, double, double, double, double, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i32, i8, i8, i32, i32, double, i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, double, double, double, double, double, double, double, double, double, double, double, i8, i8, i8, i8, i32, double, i8, i8, %"class.std::__cxx11::basic_string", double, i32, i32, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, i8, i8, %"class.std::__cxx11::basic_string", i8, i32, %struct.HighsLogOptions }
%struct.HighsLogOptions = type <{ ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::function", ptr, i8, [7 x i8] }>
%"class.std::vector.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = type { %"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl" }
%"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl" = type { %"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsInfo = type { ptr, %struct.HighsInfoStruct, %"class.std::vector.52" }
%struct.HighsInfoStruct = type { i8, i64, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, i32, double, double, i32, double, double, double, double, double }
%"class.std::vector.52" = type { %"struct.std::_Vector_base.53" }
%"struct.std::_Vector_base.53" = type { %"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl" }
%"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl" = type { %"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsRanging = type { i8, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord }
%struct.HighsRangingRecord = type { %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector", %"class.std::vector" }
%class.HighsIis = type { i8, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.3" }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.57" = type { %"struct.std::_Vector_base.58" }
%"struct.std::_Vector_base.58" = type { %"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8" }
%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.8", %"class.std::vector.8", i8, %class.HighsSparseMatrix, %class.HighsSparseMatrix, %class.HSimplexNla, %struct.HotStart, double, double, double, i32, i32, i32, i32, i8, i8, i32, i32, i32, %"class.std::vector", %"class.std::vector.8", %struct.HighsRayRecord, %struct.HighsRayRecord, i32, i32, i32, double, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", double, double, double, i32, i32, i8, i32, i8, i8, i8, i8, double, %"class.std::vector.105", %"class.std::vector.8", %struct.HighsSimplexStats }
%class.HighsSimplexAnalysis = type { ptr, %"class.std::vector.62", %"class.std::vector.62", 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.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.67", %"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.62" = type { %"struct.std::_Vector_base.63" }
%"struct.std::_Vector_base.63" = type { %"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.67" = type { %"struct.std::_Vector_base.68" }
%"struct.std::_Vector_base.68" = 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.73" }
%"struct.std::_Head_base.73" = 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.8", %"class.std::vector", i32, [4 x i8] }>
%struct.HighsSimplexStatus = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
%struct.HighsSimplexInfo = type <{ %"class.std::vector.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.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", i32, i32, i8, i8, [6 x i8], %struct.SimplexBasis, i32, i32, i32, [4 x i8], %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", 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", %"class.std::vector.74", %"class.std::vector.74", i64, i32, i32, %"class.std::__cxx11::basic_string" }
%"class.std::vector.74" = type { %"struct.std::_Vector_base.75" }
%"struct.std::_Vector_base.75" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsHashTable = type { %"class.std::unique_ptr.79", %"class.std::unique_ptr.87", i64, i64, i64 }
%"class.std::unique_ptr.79" = type { %"struct.std::__uniq_ptr_data.80" }
%"struct.std::__uniq_ptr_data.80" = type { %"class.std::__uniq_ptr_impl.81" }
%"class.std::__uniq_ptr_impl.81" = type { %"class.std::tuple.82" }
%"class.std::tuple.82" = type { %"struct.std::_Tuple_impl.83" }
%"struct.std::_Tuple_impl.83" = type { %"struct.std::_Head_base.86" }
%"struct.std::_Head_base.86" = type { ptr }
%"class.std::unique_ptr.87" = type { %"struct.std::__uniq_ptr_data.88" }
%"struct.std::__uniq_ptr_data.88" = type { %"class.std::__uniq_ptr_impl.89" }
%"class.std::__uniq_ptr_impl.89" = type { %"class.std::tuple.90" }
%"class.std::tuple.90" = type { %"struct.std::_Tuple_impl.91" }
%"struct.std::_Tuple_impl.91" = type { %"struct.std::_Head_base.94" }
%"struct.std::_Head_base.94" = 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", %"class.std::vector", %"class.std::vector", %struct.RefactorInfo, i32, i32, i32, i32, i32, i32, i32, double, i8, ptr, ptr, ptr, ptr, double, double, i32, double, %"class.std::unique_ptr.95", %struct.HighsLogOptions, i8, i8, i32, i32, ptr, i32, %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.103", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %class.HVectorBase }
%struct.RefactorInfo = type { i8, %"class.std::vector", %"class.std::vector", %"class.std::vector.74", double }
%"class.std::unique_ptr.95" = type { %"struct.std::__uniq_ptr_data.96" }
%"struct.std::__uniq_ptr_data.96" = type { %"class.std::__uniq_ptr_impl.97" }
%"class.std::__uniq_ptr_impl.97" = type { %"class.std::tuple.98" }
%"class.std::tuple.98" = type { %"struct.std::_Tuple_impl.99" }
%"struct.std::_Tuple_impl.99" = type { %"struct.std::_Head_base.102" }
%"struct.std::_Head_base.102" = type { ptr }
%"class.std::vector.103" = type { %"struct.std::_Vector_base.104" }
%"struct.std::_Vector_base.104" = 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", %"class.std::vector.8", double, %"class.std::vector.103", %"class.std::vector", ptr, i8, i32, %"class.std::vector", %"class.std::vector.8" }
%struct.ProductFormUpdate = type { i8, i32, i32, %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector.8" }
%struct.SimplexIterate = type { i8, %struct.SimplexBasis, %struct.InvertibleRepresentation, %"class.std::vector.8" }
%struct.InvertibleRepresentation = type { %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector.8" }
%struct.HotStart = type { i8, %struct.RefactorInfo, %"class.std::vector.74" }
%struct.HighsRayRecord = type { i32, i32, %"class.std::vector.8" }
%"class.std::vector.105" = type { %"struct.std::_Vector_base.106" }
%"struct.std::_Vector_base.106" = 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.HighsPresolveLog = type { %"class.std::vector.110" }
%"class.std::vector.110" = type { %"struct.std::_Vector_base.111" }
%"struct.std::_Vector_base.111" = type { %"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.PresolveComponent = type { %class.HighsComponent.base, %struct.PresolveComponentInfo, %struct.PresolveComponentData, ptr, ptr, i32, i32 }
%class.HighsComponent.base = type <{ ptr, %struct.HighsComponentInfo, %struct.HighsComponentData, %struct.HighsComponentOptions }>
%struct.HighsComponentInfo = type { i8 }
%struct.HighsComponentData = type { i8 }
%struct.HighsComponentOptions = type { i8 }
%struct.PresolveComponentInfo = type { ptr, %struct.HighsComponentInfo, i32, i32, i32, double, double }
%struct.PresolveComponentData = type { ptr, %struct.HighsComponentData, %class.HighsLp, %"class.presolve::HighsPostsolveStack", %struct.HighsSolution, %struct.HighsBasis, %struct.HighsPresolveLog }
%"class.presolve::HighsPostsolveStack" = type { i64, double, double, double, double, %class.HighsDataStack, %"class.std::vector.115", %"class.std::vector", %"class.std::vector", %"class.std::vector.120", %"class.std::vector.125", %"class.std::vector.125", i32, i32 }
%class.HighsDataStack = type { %"class.std::vector.103", i64 }
%"class.std::vector.115" = type { %"struct.std::_Vector_base.116" }
%"struct.std::_Vector_base.116" = type { %"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.120" = type { %"struct.std::_Vector_base.121" }
%"struct.std::_Vector_base.121" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.125" = type { %"struct.std::_Vector_base.126" }
%"struct.std::_Vector_base.126" = type { %"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl" }
%"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl" = type { %"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl_data" }
%"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%class.anon = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@_ZL15kHighsOffStringB5cxx11 = external hidden global %"class.std::__cxx11::basic_string", align 8
@.str.9 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [31 x i8], align 1
@__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis = external hidden unnamed_addr constant [89 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [34 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK8HighsIis22iisBoundStatusToStringB5cxx11Ei(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) #2 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 noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(920) %1, ptr noundef nonnull align 8 dereferenceable(1020) %2, ptr noundef %3) #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i8, align 1
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca %class.Highs, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca %class.HighsLp, align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::vector.8", align 8
  %30 = alloca double, align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca i8, align 1
  %34 = alloca %"class.std::vector.8", align 8
  %35 = alloca i8, align 1
  %36 = alloca i32, align 4
  %37 = alloca i8, align 1
  %38 = alloca %class.anon, align 8
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator", align 1
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca i8, align 1
  %48 = alloca i32, align 4
  %49 = alloca i8, align 1
  %50 = alloca i32, align 4
  %51 = alloca i8, align 1
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca i32, align 4
  %60 = alloca i8, align 1
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  %66 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  %67 = load ptr, ptr %8, align 8, !tbaa !5
  %68 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %67, i32 0, i32 130
  store ptr %68, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #7
  %69 = load ptr, ptr %8, align 8, !tbaa !5
  %70 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %69, i32 0, i32 53
  %71 = load i32, ptr %70, align 8, !tbaa !9
  %72 = icmp eq i32 %71, 0
  %73 = zext i1 %72 to i8
  store i8 %73, ptr %11, align 1, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  store i32 0, ptr %12, align 4, !tbaa !21
  br label %74

74:                                               ; preds = %83, %4
  %75 = load i32, ptr %12, align 4, !tbaa !21
  %76 = load ptr, ptr %7, align 8, !tbaa !5
  %77 = getelementptr inbounds %class.HighsLp, ptr %76, i32 0, i32 0
  %78 = load i32, ptr %77, align 8, !tbaa !22
  %79 = icmp slt i32 %75, %78
  br i1 %79, label %81, label %80

80:                                               ; preds = %74
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br label %86

81:                                               ; preds = %74
  %82 = load i32, ptr %12, align 4, !tbaa !21
  call void @_ZN8HighsIis6addColEii(ptr noundef nonnull align 8 dereferenceable(128) %66, i32 noundef %82, i32 noundef 0)
  br label %83

83:                                               ; preds = %81
  %84 = load i32, ptr %12, align 4, !tbaa !21
  %85 = add nsw i32 %84, 1
  store i32 %85, ptr %12, align 4, !tbaa !21
  br label %74, !llvm.loop !51

86:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  store i32 0, ptr %13, align 4, !tbaa !21
  br label %87

87:                                               ; preds = %96, %86
  %88 = load i32, ptr %13, align 4, !tbaa !21
  %89 = load ptr, ptr %7, align 8, !tbaa !5
  %90 = getelementptr inbounds %class.HighsLp, ptr %89, i32 0, i32 1
  %91 = load i32, ptr %90, align 4, !tbaa !53
  %92 = icmp slt i32 %88, %91
  br i1 %92, label %94, label %93

93:                                               ; preds = %87
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %99

94:                                               ; preds = %87
  %95 = load i32, ptr %13, align 4, !tbaa !21
  call void @_ZN8HighsIis6addRowEii(ptr noundef nonnull align 8 dereferenceable(128) %66, i32 noundef %95, i32 noundef 0)
  br label %96

96:                                               ; preds = %94
  %97 = load i32, ptr %13, align 4, !tbaa !21
  %98 = add nsw i32 %97, 1
  store i32 %98, ptr %13, align 4, !tbaa !21
  br label %87, !llvm.loop !54

99:                                               ; preds = %93
  call void @llvm.lifetime.start.p0(i64 20928, ptr %14) #7
  call void @_ZN5HighsC1Ev(ptr noundef nonnull align 8 dereferenceable(20928) %14)
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %100 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK5Highs7getInfoEv(ptr noundef nonnull align 8 dereferenceable(20928) %14)
          to label %101 unwind label %122

101:                                              ; preds = %99
  store ptr %100, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.77, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %102 unwind label %126

102:                                              ; preds = %101
  %103 = invoke noundef i32 @_ZN5Highs14setOptionValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(20928) %14, ptr noundef nonnull align 8 dereferenceable(32) %18, i1 noundef zeroext false)
          to label %104 unwind label %130

104:                                              ; preds = %102
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %105 unwind label %135

105:                                              ; preds = %104
  %106 = invoke noundef i32 @_ZN5Highs14setOptionValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr noundef nonnull align 8 dereferenceable(20928) %14, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) @_ZL15kHighsOffStringB5cxx11)
          to label %107 unwind label %139

107:                                              ; preds = %105
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %108 = invoke noundef nonnull align 8 dereferenceable(920) ptr @_ZNK5Highs5getLpEv(ptr noundef nonnull align 8 dereferenceable(20928) %14)
          to label %109 unwind label %144

109:                                              ; preds = %107
  store ptr %108, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %110 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZNK5Highs8getBasisEv(ptr noundef nonnull align 8 dereferenceable(20928) %14)
          to label %111 unwind label %148

111:                                              ; preds = %109
  store ptr %110, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %112 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZNK5Highs11getSolutionEv(ptr noundef nonnull align 8 dereferenceable(20928) %14)
          to label %113 unwind label %152

113:                                              ; preds = %111
  store ptr %112, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  %114 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN7HighsLpC2ERKS_(ptr noundef nonnull align 8 dereferenceable(920) %26, ptr noundef nonnull align 8 dereferenceable(920) %114)
          to label %115 unwind label %156

115:                                              ; preds = %113
  %116 = invoke noundef i32 @_ZN5Highs9passModelE7HighsLp(ptr noundef nonnull align 8 dereferenceable(20928) %14, ptr noundef %26)
          to label %117 unwind label %160

117:                                              ; preds = %115
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %26) #7
  store i32 %116, ptr %25, align 4, !tbaa !55
  %118 = load i32, ptr %25, align 4, !tbaa !55
  %119 = icmp eq i32 %118, 0
  br i1 %119, label %120, label %121

120:                                              ; preds = %117
  br label %165

121:                                              ; preds = %117
  call void @__assert_fail(ptr noundef @.str.78, ptr noundef @.str.70, i32 noundef 232, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

122:                                              ; preds = %99
  %123 = landingpad { ptr, i32 }
          cleanup
  %124 = extractvalue { ptr, i32 } %123, 0
  store ptr %124, ptr %16, align 8
  %125 = extractvalue { ptr, i32 } %123, 1
  store i32 %125, ptr %17, align 4
  br label %880

126:                                              ; preds = %101
  %127 = landingpad { ptr, i32 }
          cleanup
  %128 = extractvalue { ptr, i32 } %127, 0
  store ptr %128, ptr %16, align 8
  %129 = extractvalue { ptr, i32 } %127, 1
  store i32 %129, ptr %17, align 4
  br label %134

130:                                              ; preds = %102
  %131 = landingpad { ptr, i32 }
          cleanup
  %132 = extractvalue { ptr, i32 } %131, 0
  store ptr %132, ptr %16, align 8
  %133 = extractvalue { ptr, i32 } %131, 1
  store i32 %133, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %134

134:                                              ; preds = %130, %126
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #7
  br label %880

135:                                              ; preds = %104
  %136 = landingpad { ptr, i32 }
          cleanup
  %137 = extractvalue { ptr, i32 } %136, 0
  store ptr %137, ptr %16, align 8
  %138 = extractvalue { ptr, i32 } %136, 1
  store i32 %138, ptr %17, align 4
  br label %143

139:                                              ; preds = %105
  %140 = landingpad { ptr, i32 }
          cleanup
  %141 = extractvalue { ptr, i32 } %140, 0
  store ptr %141, ptr %16, align 8
  %142 = extractvalue { ptr, i32 } %140, 1
  store i32 %142, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %143

143:                                              ; preds = %139, %135
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #7
  br label %880

144:                                              ; preds = %107
  %145 = landingpad { ptr, i32 }
          cleanup
  %146 = extractvalue { ptr, i32 } %145, 0
  store ptr %146, ptr %16, align 8
  %147 = extractvalue { ptr, i32 } %145, 1
  store i32 %147, ptr %17, align 4
  br label %879

148:                                              ; preds = %109
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %16, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %17, align 4
  br label %878

152:                                              ; preds = %111
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %16, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %17, align 4
  br label %877

156:                                              ; preds = %113
  %157 = landingpad { ptr, i32 }
          cleanup
  %158 = extractvalue { ptr, i32 } %157, 0
  store ptr %158, ptr %16, align 8
  %159 = extractvalue { ptr, i32 } %157, 1
  store i32 %159, ptr %17, align 4
  br label %876

160:                                              ; preds = %115
  %161 = landingpad { ptr, i32 }
          cleanup
  %162 = extractvalue { ptr, i32 } %161, 0
  store ptr %162, ptr %16, align 8
  %163 = extractvalue { ptr, i32 } %161, 1
  store i32 %163, ptr %17, align 4
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %26) #7
  br label %876

164:                                              ; No predecessors!
  br label %165

165:                                              ; preds = %164, %120
  %166 = load ptr, ptr %9, align 8, !tbaa !5
  %167 = icmp ne ptr %166, null
  br i1 %167, label %168, label %182

168:                                              ; preds = %165
  %169 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %170 unwind label %173

170:                                              ; preds = %168
  %171 = invoke noundef i32 @_ZN5Highs8setBasisERK10HighsBasisRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(20928) %14, ptr noundef nonnull align 8 dereferenceable(96) %169, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %172 unwind label %177

172:                                              ; preds = %170
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #7
  br label %182

173:                                              ; preds = %168
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %16, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %17, align 4
  br label %181

177:                                              ; preds = %170
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %16, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %181

181:                                              ; preds = %177, %173
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #7
  br label %876

182:                                              ; preds = %172, %165
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #7
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  %183 = load ptr, ptr %7, align 8, !tbaa !5
  %184 = getelementptr inbounds %class.HighsLp, ptr %183, i32 0, i32 0
  %185 = load i32, ptr %184, align 8, !tbaa !22
  %186 = sext i32 %185 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  store double 0.000000e+00, ptr %30, align 8, !tbaa !57
  invoke void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %186, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %187 unwind label %199

187:                                              ; preds = %182
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  %188 = load ptr, ptr %7, align 8, !tbaa !5
  %189 = getelementptr inbounds %class.HighsLp, ptr %188, i32 0, i32 0
  %190 = load i32, ptr %189, align 8, !tbaa !22
  %191 = sub nsw i32 %190, 1
  %192 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  %193 = invoke noundef i32 @_ZN5Highs14changeColsCostEiiPKd(ptr noundef nonnull align 8 dereferenceable(20928) %14, i32 noundef 0, i32 noundef %191, ptr noundef %192)
          to label %194 unwind label %203

194:                                              ; preds = %187
  store i32 %193, ptr %25, align 4, !tbaa !55
  %195 = load i32, ptr %25, align 4, !tbaa !55
  %196 = icmp eq i32 %195, 0
  br i1 %196, label %197, label %198

197:                                              ; preds = %194
  br label %208

198:                                              ; preds = %194
  call void @__assert_fail(ptr noundef @.str.78, ptr noundef @.str.70, i32 noundef 239, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

199:                                              ; preds = %182
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %16, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  br label %875

203:                                              ; preds = %187
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %16, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %17, align 4
  br label %875

207:                                              ; No predecessors!
  br label %208

208:                                              ; preds = %207, %197
  %209 = load ptr, ptr %9, align 8, !tbaa !5
  %210 = icmp ne ptr %209, null
  br i1 %210, label %211, label %225

211:                                              ; preds = %208
  %212 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %213 unwind label %216

213:                                              ; preds = %211
  %214 = invoke noundef i32 @_ZN5Highs8setBasisERK10HighsBasisRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(20928) %14, ptr noundef nonnull align 8 dereferenceable(96) %212, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %215 unwind label %220

215:                                              ; preds = %213
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #7
  br label %225

216:                                              ; preds = %211
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %16, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %17, align 4
  br label %224

220:                                              ; preds = %213
  %221 = landingpad { ptr, i32 }
          cleanup
  %222 = extractvalue { ptr, i32 } %221, 0
  store ptr %222, ptr %16, align 8
  %223 = extractvalue { ptr, i32 } %221, 1
  store i32 %223, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %224

224:                                              ; preds = %220, %216
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #7
  br label %875

225:                                              ; preds = %215, %208
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #7
  store i8 0, ptr %33, align 1, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 24, ptr %34) #7
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #7
  store i8 0, ptr %35, align 1, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #7
  store i32 -1, ptr %36, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #7
  store i8 0, ptr %37, align 1, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 96, ptr %38) #7
  %226 = getelementptr inbounds %class.anon, ptr %38, i32 0, i32 0
  store ptr %14, ptr %226, align 8, !tbaa !5
  %227 = getelementptr inbounds %class.anon, ptr %38, i32 0, i32 1
  %228 = load ptr, ptr %15, align 8, !tbaa !5
  store ptr %228, ptr %227, align 8, !tbaa !5
  %229 = getelementptr inbounds %class.anon, ptr %38, i32 0, i32 2
  store ptr %25, ptr %229, align 8, !tbaa !5
  %230 = getelementptr inbounds %class.anon, ptr %38, i32 0, i32 3
  store ptr %35, ptr %230, align 8, !tbaa !5
  %231 = getelementptr inbounds %class.anon, ptr %38, i32 0, i32 4
  store ptr %36, ptr %231, align 8, !tbaa !5
  %232 = getelementptr inbounds %class.anon, ptr %38, i32 0, i32 5
  store ptr %37, ptr %232, align 8, !tbaa !5
  %233 = getelementptr inbounds %class.anon, ptr %38, i32 0, i32 6
  %234 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %234, ptr %233, align 8, !tbaa !5
  %235 = getelementptr inbounds %class.anon, ptr %38, i32 0, i32 7
  %236 = load ptr, ptr %24, align 8, !tbaa !5
  store ptr %236, ptr %235, align 8, !tbaa !5
  %237 = getelementptr inbounds %class.anon, ptr %38, i32 0, i32 8
  %238 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %238, ptr %237, align 8, !tbaa !5
  %239 = getelementptr inbounds %class.anon, ptr %38, i32 0, i32 9
  store ptr %34, ptr %239, align 8, !tbaa !5
  %240 = getelementptr inbounds %class.anon, ptr %38, i32 0, i32 10
  %241 = load ptr, ptr %23, align 8, !tbaa !5
  store ptr %241, ptr %240, align 8, !tbaa !5
  %242 = getelementptr inbounds %class.anon, ptr %38, i32 0, i32 11
  store ptr %66, ptr %242, align 8, !tbaa !58
  %243 = invoke noundef i32 @"_ZZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasisENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(96) %38)
          to label %244 unwind label %249

244:                                              ; preds = %225
  store i32 %243, ptr %25, align 4, !tbaa !55
  %245 = load i32, ptr %25, align 4, !tbaa !55
  %246 = icmp ne i32 %245, 0
  br i1 %246, label %247, label %253

247:                                              ; preds = %244
  %248 = load i32, ptr %25, align 4, !tbaa !55
  store i32 %248, ptr %5, align 4
  store i32 1, ptr %39, align 4
  br label %872

249:                                              ; preds = %253, %225
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %16, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %17, align 4
  br label %874

253:                                              ; preds = %244
  %254 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5Highs14getModelStatusEv(ptr noundef nonnull align 8 dereferenceable(20928) %14)
          to label %255 unwind label %249

255:                                              ; preds = %253
  %256 = load i32, ptr %254, align 4, !tbaa !60
  %257 = icmp eq i32 %256, 8
  br i1 %257, label %258, label %259

258:                                              ; preds = %255
  br label %261

259:                                              ; preds = %255
  call void @__assert_fail(ptr noundef @.str.79, ptr noundef @.str.70, i32 noundef 356, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

260:                                              ; No predecessors!
  br label %261

261:                                              ; preds = %260, %258
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #7
  store i32 0, ptr %40, align 4, !tbaa !21
  br label %262

262:                                              ; preds = %759, %261
  %263 = load i32, ptr %40, align 4, !tbaa !21
  %264 = icmp slt i32 %263, 2
  br i1 %264, label %266, label %265

265:                                              ; preds = %262
  store i32 8, ptr %39, align 4
  br label %764

266:                                              ; preds = %262
  %267 = load i8, ptr %11, align 1, !tbaa !20, !range !62, !noundef !63
  %268 = trunc i8 %267 to i1
  br i1 %268, label %269, label %272

269:                                              ; preds = %266
  %270 = load i32, ptr %40, align 4, !tbaa !21
  %271 = icmp eq i32 %270, 0
  br i1 %271, label %280, label %272

272:                                              ; preds = %269, %266
  %273 = load i8, ptr %11, align 1, !tbaa !20, !range !62, !noundef !63
  %274 = trunc i8 %273 to i1
  br i1 %274, label %278, label %275

275:                                              ; preds = %272
  %276 = load i32, ptr %40, align 4, !tbaa !21
  %277 = icmp eq i32 %276, 1
  br label %278

278:                                              ; preds = %275, %272
  %279 = phi i1 [ false, %272 ], [ %277, %275 ]
  br label %280

280:                                              ; preds = %278, %269
  %281 = phi i1 [ true, %269 ], [ %279, %278 ]
  %282 = zext i1 %281 to i8
  store i8 %282, ptr %35, align 1, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #7
  %283 = load i8, ptr %35, align 1, !tbaa !20, !range !62, !noundef !63
  %284 = trunc i8 %283 to i1
  br i1 %284, label %285, label %286

285:                                              ; preds = %280
  br label %287

286:                                              ; preds = %280
  br label %287

287:                                              ; preds = %286, %285
  %288 = phi ptr [ @.str.80, %285 ], [ @.str.81, %286 ]
  %289 = getelementptr inbounds [4 x i8], ptr %288, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef %289, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %290 unwind label %330

290:                                              ; preds = %287
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  %291 = load i8, ptr %35, align 1, !tbaa !20, !range !62, !noundef !63
  %292 = trunc i8 %291 to i1
  br i1 %292, label %293, label %297

293:                                              ; preds = %290
  %294 = load ptr, ptr %7, align 8, !tbaa !5
  %295 = getelementptr inbounds %class.HighsLp, ptr %294, i32 0, i32 1
  %296 = load i32, ptr %295, align 4, !tbaa !53
  br label %301

297:                                              ; preds = %290
  %298 = load ptr, ptr %7, align 8, !tbaa !5
  %299 = getelementptr inbounds %class.HighsLp, ptr %298, i32 0, i32 0
  %300 = load i32, ptr %299, align 8, !tbaa !22
  br label %301

301:                                              ; preds = %297, %293
  %302 = phi i32 [ %296, %293 ], [ %300, %297 ]
  store i32 %302, ptr %43, align 4, !tbaa !21
  store i32 0, ptr %36, align 4, !tbaa !21
  br label %303

303:                                              ; preds = %658, %301
  %304 = load i32, ptr %36, align 4, !tbaa !21
  %305 = load i32, ptr %43, align 4, !tbaa !21
  %306 = icmp slt i32 %304, %305
  br i1 %306, label %307, label %672

307:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #7
  %308 = load i8, ptr %35, align 1, !tbaa !20, !range !62, !noundef !63
  %309 = trunc i8 %308 to i1
  br i1 %309, label %310, label %316

310:                                              ; preds = %307
  %311 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 5
  %312 = load i32, ptr %36, align 4, !tbaa !21
  %313 = sext i32 %312 to i64
  %314 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %311, i64 noundef %313) #7
  %315 = load i32, ptr %314, align 4, !tbaa !21
  br label %322

316:                                              ; preds = %307
  %317 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 4
  %318 = load i32, ptr %36, align 4, !tbaa !21
  %319 = sext i32 %318 to i64
  %320 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %317, i64 noundef %319) #7
  %321 = load i32, ptr %320, align 4, !tbaa !21
  br label %322

322:                                              ; preds = %316, %310
  %323 = phi i32 [ %315, %310 ], [ %321, %316 ]
  store i32 %323, ptr %44, align 4, !tbaa !21
  %324 = load i32, ptr %44, align 4, !tbaa !21
  %325 = icmp eq i32 %324, -1
  br i1 %325, label %329, label %326

326:                                              ; preds = %322
  %327 = load i32, ptr %44, align 4, !tbaa !21
  %328 = icmp eq i32 %327, 1
  br i1 %328, label %329, label %334

329:                                              ; preds = %326, %322
  store i32 13, ptr %39, align 4
  br label %655

330:                                              ; preds = %287
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %16, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %17, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #7
  br label %763

334:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  %335 = load i8, ptr %35, align 1, !tbaa !20, !range !62, !noundef !63
  %336 = trunc i8 %335 to i1
  br i1 %336, label %337, label %344

337:                                              ; preds = %334
  %338 = load ptr, ptr %7, align 8, !tbaa !5
  %339 = getelementptr inbounds %class.HighsLp, ptr %338, i32 0, i32 5
  %340 = load i32, ptr %36, align 4, !tbaa !21
  %341 = sext i32 %340 to i64
  %342 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %339, i64 noundef %341) #7
  %343 = load double, ptr %342, align 8, !tbaa !57
  br label %351

344:                                              ; preds = %334
  %345 = load ptr, ptr %7, align 8, !tbaa !5
  %346 = getelementptr inbounds %class.HighsLp, ptr %345, i32 0, i32 3
  %347 = load i32, ptr %36, align 4, !tbaa !21
  %348 = sext i32 %347 to i64
  %349 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %346, i64 noundef %348) #7
  %350 = load double, ptr %349, align 8, !tbaa !57
  br label %351

351:                                              ; preds = %344, %337
  %352 = phi double [ %343, %337 ], [ %350, %344 ]
  store double %352, ptr %45, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  %353 = load i8, ptr %35, align 1, !tbaa !20, !range !62, !noundef !63
  %354 = trunc i8 %353 to i1
  br i1 %354, label %355, label %362

355:                                              ; preds = %351
  %356 = load ptr, ptr %7, align 8, !tbaa !5
  %357 = getelementptr inbounds %class.HighsLp, ptr %356, i32 0, i32 6
  %358 = load i32, ptr %36, align 4, !tbaa !21
  %359 = sext i32 %358 to i64
  %360 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %357, i64 noundef %359) #7
  %361 = load double, ptr %360, align 8, !tbaa !57
  br label %369

362:                                              ; preds = %351
  %363 = load ptr, ptr %7, align 8, !tbaa !5
  %364 = getelementptr inbounds %class.HighsLp, ptr %363, i32 0, i32 4
  %365 = load i32, ptr %36, align 4, !tbaa !21
  %366 = sext i32 %365 to i64
  %367 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %364, i64 noundef %366) #7
  %368 = load double, ptr %367, align 8, !tbaa !57
  br label %369

369:                                              ; preds = %362, %355
  %370 = phi double [ %361, %355 ], [ %368, %362 ]
  store double %370, ptr %46, align 8, !tbaa !57
  %371 = load double, ptr %45, align 8, !tbaa !57
  %372 = fcmp ogt double %371, 0xFFF0000000000000
  br i1 %372, label %373, label %486

373:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #7
  store i8 1, ptr %47, align 1, !tbaa !20
  %374 = load i8, ptr %35, align 1, !tbaa !20, !range !62, !noundef !63
  %375 = trunc i8 %374 to i1
  br i1 %375, label %376, label %381

376:                                              ; preds = %373
  %377 = load i32, ptr %36, align 4, !tbaa !21
  %378 = load double, ptr %46, align 8, !tbaa !57
  %379 = invoke noundef i32 @_ZN5Highs15changeRowBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %14, i32 noundef %377, double noundef 0xFFF0000000000000, double noundef %378)
          to label %380 unwind label %392

380:                                              ; preds = %376
  br label %386

381:                                              ; preds = %373
  %382 = load i32, ptr %36, align 4, !tbaa !21
  %383 = load double, ptr %46, align 8, !tbaa !57
  %384 = invoke noundef i32 @_ZN5Highs15changeColBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %14, i32 noundef %382, double noundef 0xFFF0000000000000, double noundef %383)
          to label %385 unwind label %392

385:                                              ; preds = %381
  br label %386

386:                                              ; preds = %385, %380
  %387 = phi i32 [ %379, %380 ], [ %384, %385 ]
  store i32 %387, ptr %25, align 4, !tbaa !55
  %388 = load i32, ptr %25, align 4, !tbaa !55
  %389 = icmp eq i32 %388, 0
  br i1 %389, label %390, label %391

390:                                              ; preds = %386
  br label %397

391:                                              ; preds = %386
  call void @__assert_fail(ptr noundef @.str.78, ptr noundef @.str.70, i32 noundef 381, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

392:                                              ; preds = %397, %381, %376
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %16, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %17, align 4
  br label %485

396:                                              ; No predecessors!
  br label %397

397:                                              ; preds = %396, %390
  %398 = invoke noundef i32 @"_ZZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasisENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(96) %38)
          to label %399 unwind label %392

399:                                              ; preds = %397
  store i32 %398, ptr %25, align 4, !tbaa !55
  %400 = load i32, ptr %25, align 4, !tbaa !55
  %401 = icmp ne i32 %400, 0
  br i1 %401, label %402, label %404

402:                                              ; preds = %399
  %403 = load i32, ptr %25, align 4, !tbaa !55
  store i32 %403, ptr %5, align 4
  store i32 1, ptr %39, align 4
  br label %481

404:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #7
  %405 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5Highs14getModelStatusEv(ptr noundef nonnull align 8 dereferenceable(20928) %14)
          to label %406 unwind label %431

406:                                              ; preds = %404
  %407 = load i32, ptr %405, align 4, !tbaa !60
  store i32 %407, ptr %48, align 4, !tbaa !60
  %408 = load i32, ptr %48, align 4, !tbaa !60
  %409 = icmp eq i32 %408, 7
  br i1 %409, label %410, label %473

410:                                              ; preds = %406
  %411 = load i8, ptr %35, align 1, !tbaa !20, !range !62, !noundef !63
  %412 = trunc i8 %411 to i1
  br i1 %412, label %413, label %419

413:                                              ; preds = %410
  %414 = load i32, ptr %36, align 4, !tbaa !21
  %415 = load double, ptr %45, align 8, !tbaa !57
  %416 = load double, ptr %46, align 8, !tbaa !57
  %417 = invoke noundef i32 @_ZN5Highs15changeRowBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %14, i32 noundef %414, double noundef %415, double noundef %416)
          to label %418 unwind label %431

418:                                              ; preds = %413
  br label %425

419:                                              ; preds = %410
  %420 = load i32, ptr %36, align 4, !tbaa !21
  %421 = load double, ptr %45, align 8, !tbaa !57
  %422 = load double, ptr %46, align 8, !tbaa !57
  %423 = invoke noundef i32 @_ZN5Highs15changeColBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %14, i32 noundef %420, double noundef %421, double noundef %422)
          to label %424 unwind label %431

424:                                              ; preds = %419
  br label %425

425:                                              ; preds = %424, %418
  %426 = phi i32 [ %417, %418 ], [ %423, %424 ]
  store i32 %426, ptr %25, align 4, !tbaa !55
  %427 = load i32, ptr %25, align 4, !tbaa !55
  %428 = icmp eq i32 %427, 0
  br i1 %428, label %429, label %430

429:                                              ; preds = %425
  br label %436

430:                                              ; preds = %425
  call void @__assert_fail(ptr noundef @.str.78, ptr noundef @.str.70, i32 noundef 390, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

431:                                              ; preds = %419, %413, %404
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %16, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %17, align 4
  br label %484

435:                                              ; No predecessors!
  br label %436

436:                                              ; preds = %435, %429
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #7
  store i8 1, ptr %49, align 1, !tbaa !20
  %437 = load double, ptr %46, align 8, !tbaa !57
  %438 = fcmp olt double %437, 0x7FF0000000000000
  br i1 %438, label %439, label %466

439:                                              ; preds = %436
  store double 0x7FF0000000000000, ptr %46, align 8, !tbaa !57
  %440 = load i8, ptr %35, align 1, !tbaa !20, !range !62, !noundef !63
  %441 = trunc i8 %440 to i1
  br i1 %441, label %442, label %448

442:                                              ; preds = %439
  %443 = load i32, ptr %36, align 4, !tbaa !21
  %444 = load double, ptr %45, align 8, !tbaa !57
  %445 = load double, ptr %46, align 8, !tbaa !57
  %446 = invoke noundef i32 @_ZN5Highs15changeRowBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %14, i32 noundef %443, double noundef %444, double noundef %445)
          to label %447 unwind label %460

447:                                              ; preds = %442
  br label %454

448:                                              ; preds = %439
  %449 = load i32, ptr %36, align 4, !tbaa !21
  %450 = load double, ptr %45, align 8, !tbaa !57
  %451 = load double, ptr %46, align 8, !tbaa !57
  %452 = invoke noundef i32 @_ZN5Highs15changeColBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %14, i32 noundef %449, double noundef %450, double noundef %451)
          to label %453 unwind label %460

453:                                              ; preds = %448
  br label %454

454:                                              ; preds = %453, %447
  %455 = phi i32 [ %446, %447 ], [ %452, %453 ]
  store i32 %455, ptr %25, align 4, !tbaa !55
  %456 = load i32, ptr %25, align 4, !tbaa !55
  %457 = icmp eq i32 %456, 0
  br i1 %457, label %458, label %459

458:                                              ; preds = %454
  br label %465

459:                                              ; preds = %454
  call void @__assert_fail(ptr noundef @.str.78, ptr noundef @.str.70, i32 noundef 401, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

460:                                              ; preds = %448, %442
  %461 = landingpad { ptr, i32 }
          cleanup
  %462 = extractvalue { ptr, i32 } %461, 0
  store ptr %462, ptr %16, align 8
  %463 = extractvalue { ptr, i32 } %461, 1
  store i32 %463, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #7
  br label %484

464:                                              ; No predecessors!
  br label %465

465:                                              ; preds = %464, %458
  br label %466

466:                                              ; preds = %465, %436
  %467 = load double, ptr %46, align 8, !tbaa !57
  %468 = fcmp oge double %467, 0x7FF0000000000000
  br i1 %468, label %469, label %470

469:                                              ; preds = %466
  br label %472

470:                                              ; preds = %466
  call void @__assert_fail(ptr noundef @.str.82, ptr noundef @.str.70, i32 noundef 403, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

471:                                              ; No predecessors!
  br label %472

472:                                              ; preds = %471, %469
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #7
  br label %480

473:                                              ; preds = %406
  %474 = load i32, ptr %48, align 4, !tbaa !60
  %475 = icmp eq i32 %474, 8
  br i1 %475, label %476, label %477

476:                                              ; preds = %473
  br label %479

477:                                              ; preds = %473
  call void @__assert_fail(ptr noundef @.str.83, ptr noundef @.str.70, i32 noundef 411, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

478:                                              ; No predecessors!
  br label %479

479:                                              ; preds = %478, %476
  store double 0xFFF0000000000000, ptr %45, align 8, !tbaa !57
  br label %480

480:                                              ; preds = %479, %472
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  store i32 0, ptr %39, align 4
  br label %481

481:                                              ; preds = %480, %402
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  %482 = load i32, ptr %39, align 4
  switch i32 %482, label %654 [
    i32 0, label %483
  ]

483:                                              ; preds = %481
  br label %486

484:                                              ; preds = %460, %431
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %485

485:                                              ; preds = %484, %392
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  br label %671

486:                                              ; preds = %483, %369
  %487 = load double, ptr %46, align 8, !tbaa !57
  %488 = fcmp olt double %487, 0x7FF0000000000000
  br i1 %488, label %489, label %561

489:                                              ; preds = %486
  %490 = load i8, ptr %35, align 1, !tbaa !20, !range !62, !noundef !63
  %491 = trunc i8 %490 to i1
  br i1 %491, label %492, label %497

492:                                              ; preds = %489
  %493 = load i32, ptr %36, align 4, !tbaa !21
  %494 = load double, ptr %45, align 8, !tbaa !57
  %495 = invoke noundef i32 @_ZN5Highs15changeRowBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %14, i32 noundef %493, double noundef %494, double noundef 0x7FF0000000000000)
          to label %496 unwind label %508

496:                                              ; preds = %492
  br label %502

497:                                              ; preds = %489
  %498 = load i32, ptr %36, align 4, !tbaa !21
  %499 = load double, ptr %45, align 8, !tbaa !57
  %500 = invoke noundef i32 @_ZN5Highs15changeColBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %14, i32 noundef %498, double noundef %499, double noundef 0x7FF0000000000000)
          to label %501 unwind label %508

501:                                              ; preds = %497
  br label %502

502:                                              ; preds = %501, %496
  %503 = phi i32 [ %495, %496 ], [ %500, %501 ]
  store i32 %503, ptr %25, align 4, !tbaa !55
  %504 = load i32, ptr %25, align 4, !tbaa !55
  %505 = icmp eq i32 %504, 0
  br i1 %505, label %506, label %507

506:                                              ; preds = %502
  br label %513

507:                                              ; preds = %502
  call void @__assert_fail(ptr noundef @.str.78, ptr noundef @.str.70, i32 noundef 419, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

508:                                              ; preds = %513, %497, %492
  %509 = landingpad { ptr, i32 }
          cleanup
  %510 = extractvalue { ptr, i32 } %509, 0
  store ptr %510, ptr %16, align 8
  %511 = extractvalue { ptr, i32 } %509, 1
  store i32 %511, ptr %17, align 4
  br label %671

512:                                              ; No predecessors!
  br label %513

513:                                              ; preds = %512, %506
  %514 = invoke noundef i32 @"_ZZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasisENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(96) %38)
          to label %515 unwind label %508

515:                                              ; preds = %513
  store i32 %514, ptr %25, align 4, !tbaa !55
  %516 = load i32, ptr %25, align 4, !tbaa !55
  %517 = icmp ne i32 %516, 0
  br i1 %517, label %518, label %520

518:                                              ; preds = %515
  %519 = load i32, ptr %25, align 4, !tbaa !55
  store i32 %519, ptr %5, align 4
  store i32 1, ptr %39, align 4
  br label %654

520:                                              ; preds = %515
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  %521 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5Highs14getModelStatusEv(ptr noundef nonnull align 8 dereferenceable(20928) %14)
          to label %522 unwind label %547

522:                                              ; preds = %520
  %523 = load i32, ptr %521, align 4, !tbaa !60
  store i32 %523, ptr %50, align 4, !tbaa !60
  %524 = load i32, ptr %50, align 4, !tbaa !60
  %525 = icmp eq i32 %524, 7
  br i1 %525, label %526, label %553

526:                                              ; preds = %522
  %527 = load i8, ptr %35, align 1, !tbaa !20, !range !62, !noundef !63
  %528 = trunc i8 %527 to i1
  br i1 %528, label %529, label %535

529:                                              ; preds = %526
  %530 = load i32, ptr %36, align 4, !tbaa !21
  %531 = load double, ptr %45, align 8, !tbaa !57
  %532 = load double, ptr %46, align 8, !tbaa !57
  %533 = invoke noundef i32 @_ZN5Highs15changeRowBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %14, i32 noundef %530, double noundef %531, double noundef %532)
          to label %534 unwind label %547

534:                                              ; preds = %529
  br label %541

535:                                              ; preds = %526
  %536 = load i32, ptr %36, align 4, !tbaa !21
  %537 = load double, ptr %45, align 8, !tbaa !57
  %538 = load double, ptr %46, align 8, !tbaa !57
  %539 = invoke noundef i32 @_ZN5Highs15changeColBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %14, i32 noundef %536, double noundef %537, double noundef %538)
          to label %540 unwind label %547

540:                                              ; preds = %535
  br label %541

541:                                              ; preds = %540, %534
  %542 = phi i32 [ %533, %534 ], [ %539, %540 ]
  store i32 %542, ptr %25, align 4, !tbaa !55
  %543 = load i32, ptr %25, align 4, !tbaa !55
  %544 = icmp eq i32 %543, 0
  br i1 %544, label %545, label %546

545:                                              ; preds = %541
  br label %552

546:                                              ; preds = %541
  call void @__assert_fail(ptr noundef @.str.78, ptr noundef @.str.70, i32 noundef 428, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

547:                                              ; preds = %535, %529, %520
  %548 = landingpad { ptr, i32 }
          cleanup
  %549 = extractvalue { ptr, i32 } %548, 0
  store ptr %549, ptr %16, align 8
  %550 = extractvalue { ptr, i32 } %548, 1
  store i32 %550, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %671

551:                                              ; No predecessors!
  br label %552

552:                                              ; preds = %551, %545
  br label %560

553:                                              ; preds = %522
  %554 = load i32, ptr %50, align 4, !tbaa !60
  %555 = icmp eq i32 %554, 8
  br i1 %555, label %556, label %557

556:                                              ; preds = %553
  br label %559

557:                                              ; preds = %553
  call void @__assert_fail(ptr noundef @.str.83, ptr noundef @.str.70, i32 noundef 431, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

558:                                              ; No predecessors!
  br label %559

559:                                              ; preds = %558, %556
  store double 0x7FF0000000000000, ptr %46, align 8, !tbaa !57
  br label %560

560:                                              ; preds = %559, %552
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %561

561:                                              ; preds = %560, %486
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #7
  store i8 1, ptr %51, align 1, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #7
  %562 = load i8, ptr %35, align 1, !tbaa !20, !range !62, !noundef !63
  %563 = trunc i8 %562 to i1
  br i1 %563, label %564, label %569

564:                                              ; preds = %561
  %565 = load i32, ptr %36, align 4, !tbaa !21
  %566 = load i32, ptr %36, align 4, !tbaa !21
  %567 = invoke noundef i32 @_ZNK5Highs7getRowsEiiRiPdS1_S0_PiS2_S1_(ptr noundef nonnull align 8 dereferenceable(20928) %14, i32 noundef %565, i32 noundef %566, ptr noundef nonnull align 4 dereferenceable(4) %55, ptr noundef %52, ptr noundef %53, ptr noundef nonnull align 4 dereferenceable(4) %56, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %568 unwind label %580

568:                                              ; preds = %564
  br label %574

569:                                              ; preds = %561
  %570 = load i32, ptr %36, align 4, !tbaa !21
  %571 = load i32, ptr %36, align 4, !tbaa !21
  %572 = invoke noundef i32 @_ZNK5Highs7getColsEiiRiPdS1_S1_S0_PiS2_S1_(ptr noundef nonnull align 8 dereferenceable(20928) %14, i32 noundef %570, i32 noundef %571, ptr noundef nonnull align 4 dereferenceable(4) %55, ptr noundef %54, ptr noundef %52, ptr noundef %53, ptr noundef nonnull align 4 dereferenceable(4) %56, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %573 unwind label %580

573:                                              ; preds = %569
  br label %574

574:                                              ; preds = %573, %568
  %575 = phi i32 [ %567, %568 ], [ %572, %573 ]
  store i32 %575, ptr %25, align 4, !tbaa !55
  %576 = load i32, ptr %25, align 4, !tbaa !55
  %577 = icmp eq i32 %576, 0
  br i1 %577, label %578, label %579

578:                                              ; preds = %574
  br label %585

579:                                              ; preds = %574
  call void @__assert_fail(ptr noundef @.str.78, ptr noundef @.str.70, i32 noundef 451, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

580:                                              ; preds = %569, %564
  %581 = landingpad { ptr, i32 }
          cleanup
  %582 = extractvalue { ptr, i32 } %581, 0
  store ptr %582, ptr %16, align 8
  %583 = extractvalue { ptr, i32 } %581, 1
  store i32 %583, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  br label %670

584:                                              ; No predecessors!
  br label %585

585:                                              ; preds = %584, %578
  %586 = load double, ptr %52, align 8, !tbaa !57
  %587 = load double, ptr %45, align 8, !tbaa !57
  %588 = fcmp oeq double %586, %587
  br i1 %588, label %589, label %590

589:                                              ; preds = %585
  br label %592

590:                                              ; preds = %585
  call void @__assert_fail(ptr noundef @.str.84, ptr noundef @.str.70, i32 noundef 452, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

591:                                              ; No predecessors!
  br label %592

592:                                              ; preds = %591, %589
  %593 = load double, ptr %53, align 8, !tbaa !57
  %594 = load double, ptr %46, align 8, !tbaa !57
  %595 = fcmp oeq double %593, %594
  br i1 %595, label %596, label %597

596:                                              ; preds = %592
  br label %599

597:                                              ; preds = %592
  call void @__assert_fail(ptr noundef @.str.85, ptr noundef @.str.70, i32 noundef 453, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

598:                                              ; No predecessors!
  br label %599

599:                                              ; preds = %598, %596
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #7
  store i32 0, ptr %57, align 4, !tbaa !21
  %600 = load double, ptr %45, align 8, !tbaa !57
  %601 = fcmp ole double %600, 0xFFF0000000000000
  br i1 %601, label %602, label %613

602:                                              ; preds = %599
  %603 = load double, ptr %46, align 8, !tbaa !57
  %604 = fcmp oge double %603, 0x7FF0000000000000
  br i1 %604, label %605, label %611

605:                                              ; preds = %602
  %606 = load i8, ptr %35, align 1, !tbaa !20, !range !62, !noundef !63
  %607 = trunc i8 %606 to i1
  br i1 %607, label %608, label %609

608:                                              ; preds = %605
  store i32 -1, ptr %57, align 4, !tbaa !21
  br label %610

609:                                              ; preds = %605
  store i32 1, ptr %57, align 4, !tbaa !21
  br label %610

610:                                              ; preds = %609, %608
  br label %612

611:                                              ; preds = %602
  store i32 3, ptr %57, align 4, !tbaa !21
  br label %612

612:                                              ; preds = %611, %610
  br label %619

613:                                              ; preds = %599
  %614 = load double, ptr %46, align 8, !tbaa !57
  %615 = fcmp oge double %614, 0x7FF0000000000000
  br i1 %615, label %616, label %617

616:                                              ; preds = %613
  store i32 2, ptr %57, align 4, !tbaa !21
  br label %618

617:                                              ; preds = %613
  store i32 4, ptr %57, align 4, !tbaa !21
  br label %618

618:                                              ; preds = %617, %616
  br label %619

619:                                              ; preds = %618, %612
  %620 = load i32, ptr %57, align 4, !tbaa !21
  %621 = icmp ne i32 %620, 0
  br i1 %621, label %622, label %623

622:                                              ; preds = %619
  br label %625

623:                                              ; preds = %619
  call void @__assert_fail(ptr noundef @.str.86, ptr noundef @.str.70, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

624:                                              ; No predecessors!
  br label %625

625:                                              ; preds = %624, %622
  %626 = load i32, ptr %57, align 4, !tbaa !21
  %627 = icmp ne i32 %626, 4
  br i1 %627, label %628, label %629

628:                                              ; preds = %625
  br label %631

629:                                              ; preds = %625
  call void @__assert_fail(ptr noundef @.str.87, ptr noundef @.str.70, i32 noundef 477, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

630:                                              ; No predecessors!
  br label %631

631:                                              ; preds = %630, %628
  %632 = load i8, ptr %35, align 1, !tbaa !20, !range !62, !noundef !63
  %633 = trunc i8 %632 to i1
  br i1 %633, label %634, label %640

634:                                              ; preds = %631
  %635 = load i32, ptr %57, align 4, !tbaa !21
  %636 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 5
  %637 = load i32, ptr %36, align 4, !tbaa !21
  %638 = sext i32 %637 to i64
  %639 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %636, i64 noundef %638) #7
  store i32 %635, ptr %639, align 4, !tbaa !21
  br label %646

640:                                              ; preds = %631
  %641 = load i32, ptr %57, align 4, !tbaa !21
  %642 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 4
  %643 = load i32, ptr %36, align 4, !tbaa !21
  %644 = sext i32 %643 to i64
  %645 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %642, i64 noundef %644) #7
  store i32 %641, ptr %645, align 4, !tbaa !21
  br label %646

646:                                              ; preds = %640, %634
  %647 = load ptr, ptr %10, align 8, !tbaa !5
  %648 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  %649 = load i32, ptr %36, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #7
  %650 = load i32, ptr %57, align 4, !tbaa !21
  invoke void @_ZNK8HighsIis22iisBoundStatusToStringB5cxx11Ei(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(128) %66, i32 noundef %650)
          to label %651 unwind label %661

651:                                              ; preds = %646
  %652 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %647, i32 noundef 1, ptr noundef @.str.88, ptr noundef %648, i32 noundef %649, ptr noundef %652)
          to label %653 unwind label %665

653:                                              ; preds = %651
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  store i32 0, ptr %39, align 4
  br label %654

654:                                              ; preds = %653, %518, %481
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  br label %655

655:                                              ; preds = %654, %329
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  %656 = load i32, ptr %39, align 4
  switch i32 %656, label %756 [
    i32 0, label %657
    i32 13, label %658
  ]

657:                                              ; preds = %655
  br label %658

658:                                              ; preds = %657, %655
  %659 = load i32, ptr %36, align 4, !tbaa !21
  %660 = add nsw i32 %659, 1
  store i32 %660, ptr %36, align 4, !tbaa !21
  br label %303, !llvm.loop !64

661:                                              ; preds = %646
  %662 = landingpad { ptr, i32 }
          cleanup
  %663 = extractvalue { ptr, i32 } %662, 0
  store ptr %663, ptr %16, align 8
  %664 = extractvalue { ptr, i32 } %662, 1
  store i32 %664, ptr %17, align 4
  br label %669

665:                                              ; preds = %651
  %666 = landingpad { ptr, i32 }
          cleanup
  %667 = extractvalue { ptr, i32 } %666, 0
  store ptr %667, ptr %16, align 8
  %668 = extractvalue { ptr, i32 } %666, 1
  store i32 %668, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  br label %669

669:                                              ; preds = %665, %661
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  br label %670

670:                                              ; preds = %669, %580
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  br label %671

671:                                              ; preds = %670, %547, %508, %485
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br label %762

672:                                              ; preds = %303
  %673 = load i32, ptr %40, align 4, !tbaa !21
  %674 = icmp eq i32 %673, 1
  br i1 %674, label %675, label %676

675:                                              ; preds = %672
  store i32 10, ptr %39, align 4
  br label %756

676:                                              ; preds = %672
  %677 = load i8, ptr %35, align 1, !tbaa !20, !range !62, !noundef !63
  %678 = trunc i8 %677 to i1
  br i1 %678, label %679, label %755

679:                                              ; preds = %676
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #7
  store i32 0, ptr %59, align 4, !tbaa !21
  br label %680

680:                                              ; preds = %751, %679
  %681 = load i32, ptr %59, align 4, !tbaa !21
  %682 = load ptr, ptr %7, align 8, !tbaa !5
  %683 = getelementptr inbounds %class.HighsLp, ptr %682, i32 0, i32 0
  %684 = load i32, ptr %683, align 8, !tbaa !22
  %685 = icmp slt i32 %681, %684
  br i1 %685, label %687, label %686

686:                                              ; preds = %680
  store i32 14, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  br label %754

687:                                              ; preds = %680
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #7
  store i8 1, ptr %60, align 1, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #7
  %688 = load ptr, ptr %7, align 8, !tbaa !5
  %689 = getelementptr inbounds %class.HighsLp, ptr %688, i32 0, i32 7
  %690 = getelementptr inbounds %class.HighsSparseMatrix, ptr %689, i32 0, i32 3
  %691 = load i32, ptr %59, align 4, !tbaa !21
  %692 = sext i32 %691 to i64
  %693 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %690, i64 noundef %692) #7
  %694 = load i32, ptr %693, align 4, !tbaa !21
  store i32 %694, ptr %61, align 4, !tbaa !21
  br label %695

695:                                              ; preds = %722, %687
  %696 = load i32, ptr %61, align 4, !tbaa !21
  %697 = load ptr, ptr %7, align 8, !tbaa !5
  %698 = getelementptr inbounds %class.HighsLp, ptr %697, i32 0, i32 7
  %699 = getelementptr inbounds %class.HighsSparseMatrix, ptr %698, i32 0, i32 3
  %700 = load i32, ptr %59, align 4, !tbaa !21
  %701 = add nsw i32 %700, 1
  %702 = sext i32 %701 to i64
  %703 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %699, i64 noundef %702) #7
  %704 = load i32, ptr %703, align 4, !tbaa !21
  %705 = icmp slt i32 %696, %704
  br i1 %705, label %707, label %706

706:                                              ; preds = %695
  store i32 17, ptr %39, align 4
  br label %725

707:                                              ; preds = %695
  %708 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 5
  %709 = load ptr, ptr %7, align 8, !tbaa !5
  %710 = getelementptr inbounds %class.HighsLp, ptr %709, i32 0, i32 7
  %711 = getelementptr inbounds %class.HighsSparseMatrix, ptr %710, i32 0, i32 5
  %712 = load i32, ptr %61, align 4, !tbaa !21
  %713 = sext i32 %712 to i64
  %714 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %711, i64 noundef %713) #7
  %715 = load i32, ptr %714, align 4, !tbaa !21
  %716 = sext i32 %715 to i64
  %717 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %708, i64 noundef %716) #7
  %718 = load i32, ptr %717, align 4, !tbaa !21
  %719 = icmp ne i32 %718, -1
  br i1 %719, label %720, label %721

720:                                              ; preds = %707
  store i8 0, ptr %60, align 1, !tbaa !20
  store i32 17, ptr %39, align 4
  br label %725

721:                                              ; preds = %707
  br label %722

722:                                              ; preds = %721
  %723 = load i32, ptr %61, align 4, !tbaa !21
  %724 = add nsw i32 %723, 1
  store i32 %724, ptr %61, align 4, !tbaa !21
  br label %695, !llvm.loop !65

725:                                              ; preds = %720, %706
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  br label %726

726:                                              ; preds = %725
  %727 = load i8, ptr %60, align 1, !tbaa !20, !range !62, !noundef !63
  %728 = trunc i8 %727 to i1
  br i1 %728, label %729, label %750

729:                                              ; preds = %726
  %730 = load ptr, ptr %10, align 8, !tbaa !5
  %731 = load i32, ptr %59, align 4, !tbaa !21
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %730, i32 noundef 1, ptr noundef @.str.89, i32 noundef %731)
          to label %732 unwind label %744

732:                                              ; preds = %729
  %733 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 4
  %734 = load i32, ptr %59, align 4, !tbaa !21
  %735 = sext i32 %734 to i64
  %736 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %733, i64 noundef %735) #7
  store i32 -1, ptr %736, align 4, !tbaa !21
  %737 = load i32, ptr %59, align 4, !tbaa !21
  %738 = invoke noundef i32 @_ZN5Highs15changeColBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %14, i32 noundef %737, double noundef 0xFFF0000000000000, double noundef 0x7FF0000000000000)
          to label %739 unwind label %744

739:                                              ; preds = %732
  store i32 %738, ptr %25, align 4, !tbaa !55
  %740 = load i32, ptr %25, align 4, !tbaa !55
  %741 = icmp eq i32 %740, 0
  br i1 %741, label %742, label %743

742:                                              ; preds = %739
  br label %749

743:                                              ; preds = %739
  call void @__assert_fail(ptr noundef @.str.78, ptr noundef @.str.70, i32 noundef 507, ptr noundef @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

744:                                              ; preds = %732, %729
  %745 = landingpad { ptr, i32 }
          cleanup
  %746 = extractvalue { ptr, i32 } %745, 0
  store ptr %746, ptr %16, align 8
  %747 = extractvalue { ptr, i32 } %745, 1
  store i32 %747, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  br label %762

748:                                              ; No predecessors!
  br label %749

749:                                              ; preds = %748, %742
  br label %750

750:                                              ; preds = %749, %726
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #7
  br label %751

751:                                              ; preds = %750
  %752 = load i32, ptr %59, align 4, !tbaa !21
  %753 = add nsw i32 %752, 1
  store i32 %753, ptr %59, align 4, !tbaa !21
  br label %680, !llvm.loop !66

754:                                              ; preds = %686
  br label %755

755:                                              ; preds = %754, %676
  store i32 0, ptr %39, align 4
  br label %756

756:                                              ; preds = %755, %675, %655
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  %757 = load i32, ptr %39, align 4
  switch i32 %757, label %764 [
    i32 0, label %758
    i32 10, label %759
  ]

758:                                              ; preds = %756
  br label %759

759:                                              ; preds = %758, %756
  %760 = load i32, ptr %40, align 4, !tbaa !21
  %761 = add nsw i32 %760, 1
  store i32 %761, ptr %40, align 4, !tbaa !21
  br label %262, !llvm.loop !67

762:                                              ; preds = %744, %671
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %763

763:                                              ; preds = %762, %330
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %874

764:                                              ; preds = %756, %265
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  %765 = load i32, ptr %39, align 4
  switch i32 %765, label %872 [
    i32 8, label %766
  ]

766:                                              ; preds = %764
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #7
  store i32 0, ptr %62, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #7
  store i32 0, ptr %63, align 4, !tbaa !21
  br label %767

767:                                              ; preds = %803, %766
  %768 = load i32, ptr %63, align 4, !tbaa !21
  %769 = load ptr, ptr %7, align 8, !tbaa !5
  %770 = getelementptr inbounds %class.HighsLp, ptr %769, i32 0, i32 0
  %771 = load i32, ptr %770, align 8, !tbaa !22
  %772 = icmp slt i32 %768, %771
  br i1 %772, label %774, label %773

773:                                              ; preds = %767
  store i32 20, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #7
  br label %806

774:                                              ; preds = %767
  %775 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 4
  %776 = load i32, ptr %63, align 4, !tbaa !21
  %777 = sext i32 %776 to i64
  %778 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %775, i64 noundef %777) #7
  %779 = load i32, ptr %778, align 4, !tbaa !21
  %780 = icmp ne i32 %779, -1
  br i1 %780, label %781, label %802

781:                                              ; preds = %774
  %782 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 2
  %783 = load i32, ptr %63, align 4, !tbaa !21
  %784 = sext i32 %783 to i64
  %785 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %782, i64 noundef %784) #7
  %786 = load i32, ptr %785, align 4, !tbaa !21
  %787 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 2
  %788 = load i32, ptr %62, align 4, !tbaa !21
  %789 = sext i32 %788 to i64
  %790 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %787, i64 noundef %789) #7
  store i32 %786, ptr %790, align 4, !tbaa !21
  %791 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 4
  %792 = load i32, ptr %63, align 4, !tbaa !21
  %793 = sext i32 %792 to i64
  %794 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %791, i64 noundef %793) #7
  %795 = load i32, ptr %794, align 4, !tbaa !21
  %796 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 4
  %797 = load i32, ptr %62, align 4, !tbaa !21
  %798 = sext i32 %797 to i64
  %799 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %796, i64 noundef %798) #7
  store i32 %795, ptr %799, align 4, !tbaa !21
  %800 = load i32, ptr %62, align 4, !tbaa !21
  %801 = add nsw i32 %800, 1
  store i32 %801, ptr %62, align 4, !tbaa !21
  br label %802

802:                                              ; preds = %781, %774
  br label %803

803:                                              ; preds = %802
  %804 = load i32, ptr %63, align 4, !tbaa !21
  %805 = add nsw i32 %804, 1
  store i32 %805, ptr %63, align 4, !tbaa !21
  br label %767, !llvm.loop !68

806:                                              ; preds = %773
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #7
  store i32 0, ptr %64, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #7
  store i32 0, ptr %65, align 4, !tbaa !21
  br label %807

807:                                              ; preds = %843, %806
  %808 = load i32, ptr %65, align 4, !tbaa !21
  %809 = load ptr, ptr %7, align 8, !tbaa !5
  %810 = getelementptr inbounds %class.HighsLp, ptr %809, i32 0, i32 1
  %811 = load i32, ptr %810, align 4, !tbaa !53
  %812 = icmp slt i32 %808, %811
  br i1 %812, label %814, label %813

813:                                              ; preds = %807
  store i32 23, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  br label %846

814:                                              ; preds = %807
  %815 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 5
  %816 = load i32, ptr %65, align 4, !tbaa !21
  %817 = sext i32 %816 to i64
  %818 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %815, i64 noundef %817) #7
  %819 = load i32, ptr %818, align 4, !tbaa !21
  %820 = icmp ne i32 %819, -1
  br i1 %820, label %821, label %842

821:                                              ; preds = %814
  %822 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 3
  %823 = load i32, ptr %65, align 4, !tbaa !21
  %824 = sext i32 %823 to i64
  %825 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %822, i64 noundef %824) #7
  %826 = load i32, ptr %825, align 4, !tbaa !21
  %827 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 3
  %828 = load i32, ptr %64, align 4, !tbaa !21
  %829 = sext i32 %828 to i64
  %830 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %827, i64 noundef %829) #7
  store i32 %826, ptr %830, align 4, !tbaa !21
  %831 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 5
  %832 = load i32, ptr %65, align 4, !tbaa !21
  %833 = sext i32 %832 to i64
  %834 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %831, i64 noundef %833) #7
  %835 = load i32, ptr %834, align 4, !tbaa !21
  %836 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 5
  %837 = load i32, ptr %64, align 4, !tbaa !21
  %838 = sext i32 %837 to i64
  %839 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %836, i64 noundef %838) #7
  store i32 %835, ptr %839, align 4, !tbaa !21
  %840 = load i32, ptr %64, align 4, !tbaa !21
  %841 = add nsw i32 %840, 1
  store i32 %841, ptr %64, align 4, !tbaa !21
  br label %842

842:                                              ; preds = %821, %814
  br label %843

843:                                              ; preds = %842
  %844 = load i32, ptr %65, align 4, !tbaa !21
  %845 = add nsw i32 %844, 1
  store i32 %845, ptr %65, align 4, !tbaa !21
  br label %807, !llvm.loop !69

846:                                              ; preds = %813
  %847 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 2
  %848 = load i32, ptr %62, align 4, !tbaa !21
  %849 = sext i32 %848 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %847, i64 noundef %849)
          to label %850 unwind label %868

850:                                              ; preds = %846
  %851 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 4
  %852 = load i32, ptr %62, align 4, !tbaa !21
  %853 = sext i32 %852 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %851, i64 noundef %853)
          to label %854 unwind label %868

854:                                              ; preds = %850
  %855 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 3
  %856 = load i32, ptr %64, align 4, !tbaa !21
  %857 = sext i32 %856 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %855, i64 noundef %857)
          to label %858 unwind label %868

858:                                              ; preds = %854
  %859 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 5
  %860 = load i32, ptr %64, align 4, !tbaa !21
  %861 = sext i32 %860 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %859, i64 noundef %861)
          to label %862 unwind label %868

862:                                              ; preds = %858
  %863 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 0
  store i8 1, ptr %863, align 8, !tbaa !70
  %864 = load ptr, ptr %8, align 8, !tbaa !5
  %865 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %864, i32 0, i32 53
  %866 = load i32, ptr %865, align 8, !tbaa !9
  %867 = getelementptr inbounds %class.HighsIis, ptr %66, i32 0, i32 1
  store i32 %866, ptr %867, align 4, !tbaa !76
  store i32 0, ptr %5, align 4
  store i32 1, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  br label %872

868:                                              ; preds = %858, %854, %850, %846
  %869 = landingpad { ptr, i32 }
          cleanup
  %870 = extractvalue { ptr, i32 } %869, 0
  store ptr %870, ptr %16, align 8
  %871 = extractvalue { ptr, i32 } %869, 1
  store i32 %871, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  br label %874

872:                                              ; preds = %862, %764, %247
  call void @llvm.lifetime.end.p0(i64 96, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %14) #7
  call void @llvm.lifetime.end.p0(i64 20928, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  %873 = load i32, ptr %5, align 4
  ret i32 %873

874:                                              ; preds = %868, %763, %249
  call void @llvm.lifetime.end.p0(i64 96, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #7
  br label %875

875:                                              ; preds = %874, %224, %203, %199
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #7
  br label %876

876:                                              ; preds = %875, %181, %160, %156
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %877

877:                                              ; preds = %876, %152
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %878

878:                                              ; preds = %877, %148
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %879

879:                                              ; preds = %878, %144
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  br label %880

880:                                              ; preds = %879, %143, %134, %122
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %14) #7
  call void @llvm.lifetime.end.p0(i64 20928, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  br label %881

881:                                              ; preds = %880
  %882 = load ptr, ptr %16, align 8
  %883 = load i32, ptr %17, align 4
  %884 = insertvalue { ptr, i32 } poison, ptr %882, 0
  %885 = insertvalue { ptr, i32 } %884, i32 %883, 1
  resume { ptr, i32 } %885
}

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

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

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

declare noundef i32 @_ZN5Highs14setOptionValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext) #5

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

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

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

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

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

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

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

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

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

declare noundef i32 @_ZN5Highs14changeColsCostEiiPKd(ptr noundef nonnull align 8 dereferenceable(20928), i32 noundef, i32 noundef, ptr noundef) #5

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @"_ZZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasisENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(96)) #6 align 2

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

declare noundef i32 @_ZN5Highs15changeRowBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928), i32 noundef, double noundef, double noundef) #5

declare noundef i32 @_ZN5Highs15changeColBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928), i32 noundef, double noundef, double noundef) #5

declare noundef i32 @_ZNK5Highs7getRowsEiiRiPdS1_S0_PiS2_S1_(ptr noundef nonnull align 8 dereferenceable(20928), i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef) #5

declare noundef i32 @_ZNK5Highs7getColsEiiRiPdS1_S1_S0_PiS2_S1_(ptr noundef nonnull align 8 dereferenceable(20928), i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef) #5

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928)) 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 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #4 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { "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 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, !15, i64 512}
!10 = !{!"_ZTS18HighsOptionsStruct", !11, i64 8, !11, i64 40, !11, i64 72, !11, i64 104, !14, i64 136, !11, i64 144, !11, i64 176, !15, i64 208, !11, i64 216, !14, i64 248, !14, i64 256, !14, i64 264, !14, i64 272, !14, i64 280, !14, i64 288, !14, i64 296, !14, i64 304, !14, i64 312, !14, i64 320, !14, i64 328, !15, i64 336, !15, i64 340, !15, i64 344, !15, i64 348, !15, i64 352, !15, i64 356, !15, i64 360, !15, i64 364, !15, i64 368, !15, i64 372, !15, i64 376, !15, i64 380, !15, i64 384, !15, i64 388, !11, i64 392, !16, i64 424, !16, i64 425, !16, i64 426, !15, i64 428, !15, i64 432, !11, i64 440, !16, i64 472, !16, i64 473, !16, i64 474, !15, i64 476, !16, i64 480, !16, i64 481, !15, i64 484, !15, i64 488, !14, i64 496, !15, i64 504, !15, i64 508, !15, i64 512, !16, i64 516, !15, i64 520, !16, i64 524, !16, i64 525, !16, i64 526, !16, i64 527, !16, i64 528, !16, i64 529, !16, i64 530, !15, i64 532, !15, i64 536, !15, i64 540, !15, i64 544, !15, i64 548, !15, i64 552, !15, i64 556, !15, i64 560, !15, i64 564, !15, i64 568, !15, i64 572, !15, i64 576, !15, i64 580, !15, i64 584, !15, i64 588, !16, i64 592, !16, i64 593, !16, i64 594, !16, i64 595, !14, i64 600, !14, i64 608, !14, i64 616, !14, i64 624, !14, i64 632, !14, i64 640, !14, i64 648, !14, i64 656, !14, i64 664, !14, i64 672, !14, i64 680, !16, i64 688, !16, i64 689, !16, i64 690, !16, i64 691, !15, i64 692, !14, i64 696, !16, i64 704, !16, i64 705, !11, i64 712, !14, i64 744, !15, i64 752, !15, i64 756, !16, i64 760, !16, i64 761, !16, i64 762, !16, i64 763, !15, i64 764, !15, i64 768, !15, i64 772, !15, i64 776, !15, i64 780, !15, i64 784, !15, i64 788, !15, i64 792, !15, i64 796, !15, i64 800, !15, i64 804, !14, i64 808, !14, i64 816, !14, i64 824, !14, i64 832, !14, i64 840, !16, i64 848, !16, i64 849, !11, i64 856, !16, i64 888, !15, i64 892, !17, i64 896}
!11 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !12, i64 0, !13, i64 8, !7, i64 16}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!"double", !7, i64 0}
!15 = !{!"int", !7, i64 0}
!16 = !{!"bool", !7, i64 0}
!17 = !{!"_ZTS15HighsLogOptions", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !18, i64 48, !6, i64 80, !16, i64 88}
!18 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !19, i64 0, !6, i64 24}
!19 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!20 = !{!16, !16, i64 0}
!21 = !{!15, !15, i64 0}
!22 = !{!23, !15, i64 0}
!23 = !{!"_ZTS7HighsLp", !15, i64 0, !15, i64 4, !24, i64 8, !24, i64 32, !24, i64 56, !24, i64 80, !24, i64 104, !28, i64 128, !34, i64 240, !14, i64 248, !11, i64 256, !11, i64 288, !15, i64 320, !15, i64 324, !35, i64 328, !35, i64 352, !39, i64 376, !43, i64 400, !43, i64 456, !15, i64 512, !15, i64 516, !49, i64 520, !16, i64 592, !16, i64 593, !15, i64 596, !16, i64 600, !50, i64 608}
!24 = !{!"_ZTSSt6vectorIdSaIdEE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!28 = !{!"_ZTS17HighsSparseMatrix", !29, i64 0, !15, i64 4, !15, i64 8, !30, i64 16, !30, i64 40, !30, i64 64, !24, i64 88}
!29 = !{!"_ZTS12MatrixFormat", !7, i64 0}
!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", !6, i64 0, !6, i64 8, !6, i64 16}
!34 = !{!"_ZTS8ObjSense", !7, i64 0}
!35 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!39 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !40, i64 0}
!40 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!43 = !{!"_ZTS13HighsNameHash", !44, i64 0}
!44 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !45, i64 0}
!45 = !{!"_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, !13, i64 8, !46, i64 16, !13, i64 24, !47, i64 32, !6, i64 48}
!46 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!47 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !48, i64 0, !13, i64 8}
!48 = !{!"float", !7, i64 0}
!49 = !{!"_ZTS10HighsScale", !15, i64 0, !16, i64 4, !15, i64 8, !15, i64 12, !14, i64 16, !24, i64 24, !24, i64 48}
!50 = !{!"_ZTS11HighsLpMods", !30, i64 0, !30, i64 24, !24, i64 48, !24, i64 72, !39, i64 96, !30, i64 120, !24, i64 144, !30, i64 168, !24, i64 192, !30, i64 216, !24, i64 240, !24, i64 264, !24, i64 288}
!51 = distinct !{!51, !52}
!52 = !{!"llvm.loop.mustprogress"}
!53 = !{!23, !15, i64 4}
!54 = distinct !{!54, !52}
!55 = !{!56, !56, i64 0}
!56 = !{!"_ZTS11HighsStatus", !7, i64 0}
!57 = !{!14, !14, i64 0}
!58 = !{!59, !6, i64 88}
!59 = !{!"_ZTSZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasisE3$_0", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88}
!60 = !{!61, !61, i64 0}
!61 = !{!"_ZTS16HighsModelStatus", !7, i64 0}
!62 = !{i8 0, i8 2}
!63 = !{}
!64 = distinct !{!64, !52}
!65 = distinct !{!65, !52}
!66 = distinct !{!66, !52}
!67 = distinct !{!67, !52}
!68 = distinct !{!68, !52}
!69 = distinct !{!69, !52}
!70 = !{!71, !16, i64 0}
!71 = !{!"_ZTS8HighsIis", !16, i64 0, !15, i64 4, !30, i64 8, !30, i64 32, !30, i64 56, !30, i64 80, !72, i64 104}
!72 = !{!"_ZTSSt6vectorI12HighsIisInfoSaIS0_EE", !73, i64 0}
!73 = !{!"_ZTSSt12_Vector_baseI12HighsIisInfoSaIS0_EE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseI12HighsIisInfoSaIS0_EE12_Vector_implE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseI12HighsIisInfoSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!76 = !{!71, !15, i64 4}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%class.Highs = type { ptr, %struct.HighsSolution, %struct.HighsBasis, %struct.ICrashInfo, %class.HighsModel, %"class.std::vector.43", %class.HighsModel, %class.HighsTimer, %struct.HighsCallback, %class.HighsOptions, %class.HighsInfo, %struct.HighsRanging, %class.HighsIis, %"class.std::vector.57", i32, i32, i8, double, %"class.std::vector.8", %"class.std::vector.8", %class.HighsSparseMatrix, %class.HEkk, %struct.HighsPresolveLog, i32, i8, i32, i8, %class.PresolveComponent }
%struct.HighsSolution = type { i8, i8, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8" }
%struct.HighsBasis = type { i8, i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::vector.33", %"class.std::vector.33" }
%"class.std::vector.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ICrashInfo = type { i32, double, double, double, double, double, %"class.std::vector.38", %"class.std::vector.8", double }
%"class.std::vector.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = type { %"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl" }
%"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl" = type { %"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.43" = type { %"struct.std::_Vector_base.44" }
%"struct.std::_Vector_base.44" = type { %"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsModel = type { %class.HighsLp, %class.HighsHessian }
%class.HighsLp = type { i32, i32, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %class.HighsSparseMatrix, i32, double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.18", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = 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.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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.8", %"class.std::vector.8" }
%struct.HighsLpMods = type { %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.18", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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.HighsHessian = type { i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector.8" }
%class.HighsTimer = type <{ ptr, double, i32, [4 x i8], %"class.std::vector", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.13", i32, i32, i32, [4 x i8] }>
%struct.HighsCallback = type { %"class.std::function", ptr, ptr, %"class.std::vector.48", %struct.HighsCallbackDataOut, %struct.HighsCallbackDataIn }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.std::vector.48" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%struct.HighsCallbackDataOut = type { i32, double, i32, i32, i32, double, i64, i64, double, double, double, ptr, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, i32 }
%struct.HighsCallbackDataIn = type { i32, ptr }
%class.HighsOptions = type <{ %struct.HighsOptionsStruct, %"class.std::vector.28", i32, [4 x i8] }>
%struct.HighsOptionsStruct = type { ptr, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, %"class.std::__cxx11::basic_string", double, double, double, double, double, double, double, double, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i32, i8, i8, i32, i32, double, i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, double, double, double, double, double, double, double, double, double, double, double, i8, i8, i8, i8, i32, double, i8, i8, %"class.std::__cxx11::basic_string", double, i32, i32, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, i8, i8, %"class.std::__cxx11::basic_string", i8, i32, %struct.HighsLogOptions }
%struct.HighsLogOptions = type <{ ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::function", ptr, i8, [7 x i8] }>
%"class.std::vector.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = type { %"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl" }
%"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl" = type { %"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsInfo = type { ptr, %struct.HighsInfoStruct, %"class.std::vector.52" }
%struct.HighsInfoStruct = type { i8, i64, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, i32, double, double, i32, double, double, double, double, double }
%"class.std::vector.52" = type { %"struct.std::_Vector_base.53" }
%"struct.std::_Vector_base.53" = type { %"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl" }
%"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl" = type { %"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsRanging = type { i8, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord }
%struct.HighsRangingRecord = type { %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector", %"class.std::vector" }
%class.HighsIis = type { i8, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.3" }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.57" = type { %"struct.std::_Vector_base.58" }
%"struct.std::_Vector_base.58" = type { %"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8" }
%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.8", %"class.std::vector.8", i8, %class.HighsSparseMatrix, %class.HighsSparseMatrix, %class.HSimplexNla, %struct.HotStart, double, double, double, i32, i32, i32, i32, i8, i8, i32, i32, i32, %"class.std::vector", %"class.std::vector.8", %struct.HighsRayRecord, %struct.HighsRayRecord, i32, i32, i32, double, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", double, double, double, i32, i32, i8, i32, i8, i8, i8, i8, double, %"class.std::vector.105", %"class.std::vector.8", %struct.HighsSimplexStats }
%class.HighsSimplexAnalysis = type { ptr, %"class.std::vector.62", %"class.std::vector.62", 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.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.67", %"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.62" = type { %"struct.std::_Vector_base.63" }
%"struct.std::_Vector_base.63" = type { %"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.67" = type { %"struct.std::_Vector_base.68" }
%"struct.std::_Vector_base.68" = 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.73" }
%"struct.std::_Head_base.73" = 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.8", %"class.std::vector", i32, [4 x i8] }>
%struct.HighsSimplexStatus = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
%struct.HighsSimplexInfo = type <{ %"class.std::vector.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.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", i32, i32, i8, i8, [6 x i8], %struct.SimplexBasis, i32, i32, i32, [4 x i8], %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", 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", %"class.std::vector.74", %"class.std::vector.74", i64, i32, i32, %"class.std::__cxx11::basic_string" }
%"class.std::vector.74" = type { %"struct.std::_Vector_base.75" }
%"struct.std::_Vector_base.75" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsHashTable = type { %"class.std::unique_ptr.79", %"class.std::unique_ptr.87", i64, i64, i64 }
%"class.std::unique_ptr.79" = type { %"struct.std::__uniq_ptr_data.80" }
%"struct.std::__uniq_ptr_data.80" = type { %"class.std::__uniq_ptr_impl.81" }
%"class.std::__uniq_ptr_impl.81" = type { %"class.std::tuple.82" }
%"class.std::tuple.82" = type { %"struct.std::_Tuple_impl.83" }
%"struct.std::_Tuple_impl.83" = type { %"struct.std::_Head_base.86" }
%"struct.std::_Head_base.86" = type { ptr }
%"class.std::unique_ptr.87" = type { %"struct.std::__uniq_ptr_data.88" }
%"struct.std::__uniq_ptr_data.88" = type { %"class.std::__uniq_ptr_impl.89" }
%"class.std::__uniq_ptr_impl.89" = type { %"class.std::tuple.90" }
%"class.std::tuple.90" = type { %"struct.std::_Tuple_impl.91" }
%"struct.std::_Tuple_impl.91" = type { %"struct.std::_Head_base.94" }
%"struct.std::_Head_base.94" = 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", %"class.std::vector", %"class.std::vector", %struct.RefactorInfo, i32, i32, i32, i32, i32, i32, i32, double, i8, ptr, ptr, ptr, ptr, double, double, i32, double, %"class.std::unique_ptr.95", %struct.HighsLogOptions, i8, i8, i32, i32, ptr, i32, %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.103", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %class.HVectorBase }
%struct.RefactorInfo = type { i8, %"class.std::vector", %"class.std::vector", %"class.std::vector.74", double }
%"class.std::unique_ptr.95" = type { %"struct.std::__uniq_ptr_data.96" }
%"struct.std::__uniq_ptr_data.96" = type { %"class.std::__uniq_ptr_impl.97" }
%"class.std::__uniq_ptr_impl.97" = type { %"class.std::tuple.98" }
%"class.std::tuple.98" = type { %"struct.std::_Tuple_impl.99" }
%"struct.std::_Tuple_impl.99" = type { %"struct.std::_Head_base.102" }
%"struct.std::_Head_base.102" = type { ptr }
%"class.std::vector.103" = type { %"struct.std::_Vector_base.104" }
%"struct.std::_Vector_base.104" = 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", %"class.std::vector.8", double, %"class.std::vector.103", %"class.std::vector", ptr, i8, i32, %"class.std::vector", %"class.std::vector.8" }
%struct.ProductFormUpdate = type { i8, i32, i32, %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector.8" }
%struct.SimplexIterate = type { i8, %struct.SimplexBasis, %struct.InvertibleRepresentation, %"class.std::vector.8" }
%struct.InvertibleRepresentation = type { %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector", %"class.std::vector.8" }
%struct.HotStart = type { i8, %struct.RefactorInfo, %"class.std::vector.74" }
%struct.HighsRayRecord = type { i32, i32, %"class.std::vector.8" }
%"class.std::vector.105" = type { %"struct.std::_Vector_base.106" }
%"struct.std::_Vector_base.106" = 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.HighsPresolveLog = type { %"class.std::vector.110" }
%"class.std::vector.110" = type { %"struct.std::_Vector_base.111" }
%"struct.std::_Vector_base.111" = type { %"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.PresolveComponent = type { %class.HighsComponent.base, %struct.PresolveComponentInfo, %struct.PresolveComponentData, ptr, ptr, i32, i32 }
%class.HighsComponent.base = type <{ ptr, %struct.HighsComponentInfo, %struct.HighsComponentData, %struct.HighsComponentOptions }>
%struct.HighsComponentInfo = type { i8 }
%struct.HighsComponentData = type { i8 }
%struct.HighsComponentOptions = type { i8 }
%struct.PresolveComponentInfo = type { ptr, %struct.HighsComponentInfo, i32, i32, i32, double, double }
%struct.PresolveComponentData = type { ptr, %struct.HighsComponentData, %class.HighsLp, %"class.presolve::HighsPostsolveStack", %struct.HighsSolution, %struct.HighsBasis, %struct.HighsPresolveLog }
%"class.presolve::HighsPostsolveStack" = type { i64, double, double, double, double, %class.HighsDataStack, %"class.std::vector.115", %"class.std::vector", %"class.std::vector", %"class.std::vector.120", %"class.std::vector.125", %"class.std::vector.125", i32, i32 }
%class.HighsDataStack = type { %"class.std::vector.103", i64 }
%"class.std::vector.115" = type { %"struct.std::_Vector_base.116" }
%"struct.std::_Vector_base.116" = type { %"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.120" = type { %"struct.std::_Vector_base.121" }
%"struct.std::_Vector_base.121" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.125" = type { %"struct.std::_Vector_base.126" }
%"struct.std::_Vector_base.126" = type { %"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl" }
%"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl" = type { %"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl_data" }
%"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%class.anon = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@_ZL15kHighsOffStringB5cxx11 = external hidden global %"class.std::__cxx11::basic_string", align 8
@.str.9 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [31 x i8], align 1
@__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis = external hidden unnamed_addr constant [89 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [34 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK8HighsIis22iisBoundStatusToStringB5cxx11Ei(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) local_unnamed_addr #2 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 noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #1 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(920) %1, ptr noundef nonnull align 8 dereferenceable(1020) %2, ptr noundef %3) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %class.Highs, align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator", align 1
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca i32, align 4
  %11 = alloca %class.HighsLp, align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca %"class.std::vector.8", align 8
  %15 = alloca double, align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.std::vector.8", align 8
  %19 = alloca i8, align 1
  %20 = alloca i32, align 4
  %21 = alloca i8, align 1
  %22 = alloca %class.anon, align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = getelementptr inbounds i8, ptr %2, i64 896
  %32 = getelementptr inbounds i8, ptr %2, i64 512
  %33 = load i32, ptr %32, align 8, !tbaa !5
  %.fr354 = freeze i32 %33
  %34 = icmp ne i32 %.fr354, 0
  %35 = load i32, ptr %1, align 8, !tbaa !19
  %36 = icmp sgt i32 %35, 0
  br i1 %36, label %.lr.ph, label %.preheader255

.preheader255:                                    ; preds = %.lr.ph, %4
  %37 = getelementptr inbounds i8, ptr %1, i64 4
  %38 = load i32, ptr %37, align 4, !tbaa !48
  %39 = icmp sgt i32 %38, 0
  br i1 %39, label %.lr.ph285, label %._crit_edge

.lr.ph:                                           ; preds = %4, %.lr.ph
  %.0133283 = phi i32 [ %40, %.lr.ph ], [ 0, %4 ]
  tail call void @_ZN8HighsIis6addColEii(ptr noundef nonnull align 8 dereferenceable(128) %0, i32 noundef %.0133283, i32 noundef 0)
  %40 = add nuw nsw i32 %.0133283, 1
  %41 = load i32, ptr %1, align 8, !tbaa !19
  %42 = icmp slt i32 %40, %41
  br i1 %42, label %.lr.ph, label %.preheader255, !llvm.loop !49

._crit_edge:                                      ; preds = %.lr.ph285, %.preheader255
  call void @llvm.lifetime.start.p0(i64 20928, ptr nonnull %5) #7
  call void @_ZN5HighsC1Ev(ptr noundef nonnull align 8 dereferenceable(20928) %5)
  %43 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK5Highs7getInfoEv(ptr noundef nonnull align 8 dereferenceable(20928) %5)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.77, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %47 unwind label %61

.lr.ph285:                                        ; preds = %.preheader255, %.lr.ph285
  %.0134284 = phi i32 [ %44, %.lr.ph285 ], [ 0, %.preheader255 ]
  tail call void @_ZN8HighsIis6addRowEii(ptr noundef nonnull align 8 dereferenceable(128) %0, i32 noundef %.0134284, i32 noundef 0)
  %44 = add nuw nsw i32 %.0134284, 1
  %45 = load i32, ptr %37, align 4, !tbaa !48
  %46 = icmp slt i32 %44, %45
  br i1 %46, label %.lr.ph285, label %._crit_edge, !llvm.loop !51

47:                                               ; preds = %._crit_edge
  %48 = invoke noundef i32 @_ZN5Highs14setOptionValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(20928) %5, ptr noundef nonnull align 8 dereferenceable(32) %6, i1 noundef zeroext false)
          to label %49 unwind label %63

49:                                               ; preds = %47
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %50 unwind label %66

50:                                               ; preds = %49
  %51 = invoke noundef i32 @_ZN5Highs14setOptionValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr noundef nonnull align 8 dereferenceable(20928) %5, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) @_ZL15kHighsOffStringB5cxx11)
          to label %52 unwind label %68

52:                                               ; preds = %50
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  %53 = call noundef nonnull align 8 dereferenceable(920) ptr @_ZNK5Highs5getLpEv(ptr noundef nonnull align 8 dereferenceable(20928) %5)
  %54 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNK5Highs8getBasisEv(ptr noundef nonnull align 8 dereferenceable(20928) %5)
  %55 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNK5Highs11getSolutionEv(ptr noundef nonnull align 8 dereferenceable(20928) %5)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #7
  invoke void @_ZN7HighsLpC2ERKS_(ptr noundef nonnull align 8 dereferenceable(920) %11, ptr noundef nonnull align 8 dereferenceable(920) %1)
          to label %56 unwind label %71

56:                                               ; preds = %52
  %57 = invoke noundef i32 @_ZN5Highs9passModelE7HighsLp(ptr noundef nonnull align 8 dereferenceable(20928) %5, ptr noundef nonnull %11)
          to label %58 unwind label %73

58:                                               ; preds = %56
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %11) #7
  store i32 %57, ptr %10, align 4, !tbaa !52
  %59 = icmp eq i32 %57, 0
  br i1 %59, label %75, label %60

60:                                               ; preds = %58
  call void @__assert_fail(ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.70, i32 noundef 232, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

61:                                               ; preds = %._crit_edge
  %62 = landingpad { ptr, i32 }
          cleanup
  br label %65

63:                                               ; preds = %47
  %64 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %65

65:                                               ; preds = %63, %61
  %.pn = phi { ptr, i32 } [ %64, %63 ], [ %62, %61 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  br label %396

66:                                               ; preds = %49
  %67 = landingpad { ptr, i32 }
          cleanup
  br label %70

68:                                               ; preds = %50
  %69 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  br label %70

70:                                               ; preds = %68, %66
  %.pn186 = phi { ptr, i32 } [ %69, %68 ], [ %67, %66 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  br label %396

71:                                               ; preds = %52
  %72 = landingpad { ptr, i32 }
          cleanup
  br label %395

73:                                               ; preds = %56
  %74 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7HighsLpD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %11) #7
  br label %395

75:                                               ; preds = %58
  %.not = icmp eq ptr %3, null
  br i1 %.not, label %85, label %76

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

77:                                               ; preds = %76
  %78 = invoke noundef i32 @_ZN5Highs8setBasisERK10HighsBasisRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(20928) %5, ptr noundef nonnull align 8 dereferenceable(96) %3, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %79 unwind label %82

79:                                               ; preds = %77
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  br label %85

80:                                               ; preds = %76
  %81 = landingpad { ptr, i32 }
          cleanup
  br label %84

82:                                               ; preds = %77
  %83 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %84

84:                                               ; preds = %82, %80
  %.pn188 = phi { ptr, i32 } [ %83, %82 ], [ %81, %80 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  br label %395

85:                                               ; preds = %79, %75
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #7
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  %86 = load i32, ptr %1, align 8, !tbaa !19
  %87 = sext i32 %86 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #7
  store double 0.000000e+00, ptr %15, align 8, !tbaa !54
  invoke void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %87, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %88 unwind label %96

88:                                               ; preds = %85
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  %89 = load i32, ptr %1, align 8, !tbaa !19
  %90 = add nsw i32 %89, -1
  %91 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  %92 = invoke noundef i32 @_ZN5Highs14changeColsCostEiiPKd(ptr noundef nonnull align 8 dereferenceable(20928) %5, i32 noundef 0, i32 noundef %90, ptr noundef %91)
          to label %93 unwind label %98

93:                                               ; preds = %88
  store i32 %92, ptr %10, align 4, !tbaa !52
  %94 = icmp eq i32 %92, 0
  br i1 %94, label %100, label %95

95:                                               ; preds = %93
  call void @__assert_fail(ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.70, i32 noundef 239, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

96:                                               ; preds = %85
  %97 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  br label %394

98:                                               ; preds = %88
  %99 = landingpad { ptr, i32 }
          cleanup
  br label %394

100:                                              ; preds = %93
  br i1 %.not, label %110, label %101

101:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %102 unwind label %105

102:                                              ; preds = %101
  %103 = invoke noundef i32 @_ZN5Highs8setBasisERK10HighsBasisRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(20928) %5, ptr noundef nonnull align 8 dereferenceable(96) %3, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %104 unwind label %107

104:                                              ; preds = %102
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %110

105:                                              ; preds = %101
  %106 = landingpad { ptr, i32 }
          cleanup
  br label %109

107:                                              ; preds = %102
  %108 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %109

109:                                              ; preds = %107, %105
  %.pn190 = phi { ptr, i32 } [ %108, %107 ], [ %106, %105 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %394

110:                                              ; preds = %104, %100
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #7
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #7
  store i8 0, ptr %19, align 1, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #7
  store i32 -1, ptr %20, align 4, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #7
  store i8 0, ptr %21, align 1, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %22) #7
  store ptr %5, ptr %22, align 8, !tbaa !57
  %111 = getelementptr inbounds i8, ptr %22, i64 8
  store ptr %43, ptr %111, align 8, !tbaa !57
  %112 = getelementptr inbounds i8, ptr %22, i64 16
  store ptr %10, ptr %112, align 8, !tbaa !57
  %113 = getelementptr inbounds i8, ptr %22, i64 24
  store ptr %19, ptr %113, align 8, !tbaa !57
  %114 = getelementptr inbounds i8, ptr %22, i64 32
  store ptr %20, ptr %114, align 8, !tbaa !57
  %115 = getelementptr inbounds i8, ptr %22, i64 40
  store ptr %21, ptr %115, align 8, !tbaa !57
  %116 = getelementptr inbounds i8, ptr %22, i64 48
  store ptr %1, ptr %116, align 8, !tbaa !57
  %117 = getelementptr inbounds i8, ptr %22, i64 56
  store ptr %55, ptr %117, align 8, !tbaa !57
  %118 = getelementptr inbounds i8, ptr %22, i64 64
  store ptr %2, ptr %118, align 8, !tbaa !57
  %119 = getelementptr inbounds i8, ptr %22, i64 72
  store ptr %18, ptr %119, align 8, !tbaa !57
  %120 = getelementptr inbounds i8, ptr %22, i64 80
  store ptr %54, ptr %120, align 8, !tbaa !57
  %121 = getelementptr inbounds i8, ptr %22, i64 88
  store ptr %0, ptr %121, align 8, !tbaa !58
  %122 = invoke noundef i32 @"_ZZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasisENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(96) %22)
          to label %123 unwind label %124

123:                                              ; preds = %110
  store i32 %122, ptr %10, align 4, !tbaa !52
  %.not192 = icmp eq i32 %122, 0
  br i1 %.not192, label %126, label %392

124:                                              ; preds = %110
  %125 = landingpad { ptr, i32 }
          cleanup
  br label %393

126:                                              ; preds = %123
  %127 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5Highs14getModelStatusEv(ptr noundef nonnull align 8 dereferenceable(20928) %5)
  %128 = load i32, ptr %127, align 4, !tbaa !60
  %129 = icmp eq i32 %128, 8
  br i1 %129, label %.preheader253, label %134

.preheader253:                                    ; preds = %126
  %130 = getelementptr inbounds i8, ptr %0, i64 56
  %131 = getelementptr inbounds i8, ptr %0, i64 80
  %132 = getelementptr inbounds i8, ptr %1, i64 144
  %133 = getelementptr inbounds i8, ptr %1, i64 192
  br label %135

134:                                              ; preds = %126
  call void @__assert_fail(ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.70, i32 noundef 356, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

135:                                              ; preds = %.preheader253, %.loopexit252
  %136 = phi i1 [ false, %.preheader253 ], [ true, %.loopexit252 ]
  %.not343 = phi i1 [ true, %.preheader253 ], [ false, %.loopexit252 ]
  %.0173296 = phi i32 [ 0, %.preheader253 ], [ 1, %.loopexit252 ]
  %137 = or i32 %.0173296, %.fr354
  %or.cond = icmp eq i32 %137, 0
  br i1 %or.cond, label %.thread, label %138

.thread:                                          ; preds = %135
  store i8 1, ptr %19, align 1, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #7
  br label %141

138:                                              ; preds = %135
  %139 = and i1 %34, %136
  %140 = zext i1 %139 to i8
  store i8 %140, ptr %19, align 1, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #7
  br i1 %139, label %141, label %142

141:                                              ; preds = %.thread, %138
  br label %142

142:                                              ; preds = %138, %141
  %143 = phi ptr [ @.str.80, %141 ], [ @.str.81, %138 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull %143, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %144 unwind label %154

144:                                              ; preds = %142
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #7
  %145 = load i8, ptr %19, align 1, !tbaa !55, !range !62, !noundef !63
  %146 = trunc nuw i8 %145 to i1
  %.val = load i32, ptr %37, align 4
  %.val249 = load i32, ptr %1, align 8
  %147 = select i1 %146, i32 %.val, i32 %.val249
  store i32 0, ptr %20, align 4, !tbaa !56
  %148 = icmp sgt i32 %147, 0
  br i1 %148, label %.lr.ph288, label %._crit_edge289

.lr.ph288:                                        ; preds = %144, %300
  %storemerge286 = phi i32 [ %302, %300 ], [ 0, %144 ]
  %149 = load i8, ptr %19, align 1, !tbaa !55, !range !62, !noundef !63
  %150 = trunc nuw i8 %149 to i1
  %151 = sext i32 %storemerge286 to i64
  %. = select i1 %150, ptr %131, ptr %130
  %152 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %., i64 noundef %151) #7
  %153 = load i32, ptr %152, align 4, !tbaa !56
  switch i32 %153, label %156 [
    i32 -1, label %300
    i32 1, label %300
  ]

154:                                              ; preds = %142
  %155 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #7
  br label %341

156:                                              ; preds = %.lr.ph288
  %157 = load i8, ptr %19, align 1, !tbaa !55, !range !62, !noundef !63
  %158 = trunc nuw i8 %157 to i1
  %159 = load i32, ptr %20, align 4, !tbaa !56
  %160 = sext i32 %159 to i64
  %.352.v = select i1 %158, i64 80, i64 32
  %.352 = getelementptr inbounds i8, ptr %1, i64 %.352.v
  %161 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %.352, i64 noundef %160) #7
  %162 = load double, ptr %161, align 8, !tbaa !54
  %163 = load i8, ptr %19, align 1, !tbaa !55, !range !62, !noundef !63
  %164 = trunc nuw i8 %163 to i1
  %165 = load i32, ptr %20, align 4
  %.sink347.v = select i1 %164, i64 104, i64 56
  %.sink347 = getelementptr inbounds i8, ptr %1, i64 %.sink347.v
  %166 = sext i32 %165 to i64
  %167 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %.sink347, i64 noundef %166) #7
  %168 = load double, ptr %167, align 8, !tbaa !54
  %169 = fcmp ueq double %162, 0xFFF0000000000000
  br i1 %169, label %.thread223, label %170

170:                                              ; preds = %156
  %171 = load i8, ptr %19, align 1, !tbaa !55, !range !62, !noundef !63
  %172 = trunc nuw i8 %171 to i1
  %173 = load i32, ptr %20, align 4, !tbaa !56
  br i1 %172, label %174, label %176

174:                                              ; preds = %170
  %175 = invoke noundef i32 @_ZN5Highs15changeRowBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %5, i32 noundef %173, double noundef 0xFFF0000000000000, double noundef %168)
          to label %178 unwind label %182

176:                                              ; preds = %170
  %177 = invoke noundef i32 @_ZN5Highs15changeColBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %5, i32 noundef %173, double noundef 0xFFF0000000000000, double noundef %168)
          to label %178 unwind label %182

178:                                              ; preds = %176, %174
  %179 = phi i32 [ %175, %174 ], [ %177, %176 ]
  store i32 %179, ptr %10, align 4, !tbaa !52
  %180 = icmp eq i32 %179, 0
  br i1 %180, label %184, label %181

181:                                              ; preds = %178
  call void @__assert_fail(ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.70, i32 noundef 381, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

182:                                              ; preds = %184, %176, %174
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %340

184:                                              ; preds = %178
  %185 = invoke noundef i32 @"_ZZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasisENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(96) %22)
          to label %186 unwind label %182

186:                                              ; preds = %184
  store i32 %185, ptr %10, align 4, !tbaa !52
  %.not198 = icmp eq i32 %185, 0
  br i1 %.not198, label %187, label %.loopexit254

187:                                              ; preds = %186
  %188 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5Highs14getModelStatusEv(ptr noundef nonnull align 8 dereferenceable(20928) %5)
  %189 = load i32, ptr %188, align 4, !tbaa !60
  switch i32 %189, label %223 [
    i32 7, label %190
    i32 8, label %.thread223
  ]

190:                                              ; preds = %187
  %191 = load i8, ptr %19, align 1, !tbaa !55, !range !62, !noundef !63
  %192 = trunc nuw i8 %191 to i1
  %193 = load i32, ptr %20, align 4, !tbaa !56
  br i1 %192, label %194, label %196

194:                                              ; preds = %190
  %195 = invoke noundef i32 @_ZN5Highs15changeRowBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %5, i32 noundef %193, double noundef %162, double noundef %168)
          to label %198 unwind label %202

196:                                              ; preds = %190
  %197 = invoke noundef i32 @_ZN5Highs15changeColBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %5, i32 noundef %193, double noundef %162, double noundef %168)
          to label %198 unwind label %202

198:                                              ; preds = %196, %194
  %199 = phi i32 [ %195, %194 ], [ %197, %196 ]
  store i32 %199, ptr %10, align 4, !tbaa !52
  %200 = icmp eq i32 %199, 0
  br i1 %200, label %204, label %201

201:                                              ; preds = %198
  call void @__assert_fail(ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.70, i32 noundef 390, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

202:                                              ; preds = %196, %194
  %203 = landingpad { ptr, i32 }
          cleanup
  br label %340

204:                                              ; preds = %198
  %205 = fcmp ueq double %168, 0x7FF0000000000000
  br i1 %205, label %220, label %206

206:                                              ; preds = %204
  %207 = load i8, ptr %19, align 1, !tbaa !55, !range !62, !noundef !63
  %208 = trunc nuw i8 %207 to i1
  %209 = load i32, ptr %20, align 4, !tbaa !56
  br i1 %208, label %210, label %212

210:                                              ; preds = %206
  %211 = invoke noundef i32 @_ZN5Highs15changeRowBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %5, i32 noundef %209, double noundef %162, double noundef 0x7FF0000000000000)
          to label %214 unwind label %218

212:                                              ; preds = %206
  %213 = invoke noundef i32 @_ZN5Highs15changeColBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %5, i32 noundef %209, double noundef %162, double noundef 0x7FF0000000000000)
          to label %214 unwind label %218

214:                                              ; preds = %212, %210
  %215 = phi i32 [ %211, %210 ], [ %213, %212 ]
  store i32 %215, ptr %10, align 4, !tbaa !52
  %216 = icmp eq i32 %215, 0
  br i1 %216, label %.thread223.thread, label %217

217:                                              ; preds = %214
  call void @__assert_fail(ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.70, i32 noundef 401, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

218:                                              ; preds = %212, %210
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %340

220:                                              ; preds = %204
  %221 = fcmp oeq double %168, 0x7FF0000000000000
  br i1 %221, label %.thread223, label %222

222:                                              ; preds = %220
  call void @__assert_fail(ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.70, i32 noundef 403, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

223:                                              ; preds = %187
  call void @__assert_fail(ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.70, i32 noundef 411, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

.thread223:                                       ; preds = %187, %220, %156
  %.2167 = phi double [ %162, %156 ], [ 0xFFF0000000000000, %187 ], [ %162, %220 ]
  %224 = fcmp ueq double %168, 0x7FF0000000000000
  br i1 %224, label %.thread223.thread, label %225

225:                                              ; preds = %.thread223
  %226 = load i8, ptr %19, align 1, !tbaa !55, !range !62, !noundef !63
  %227 = trunc nuw i8 %226 to i1
  %228 = load i32, ptr %20, align 4, !tbaa !56
  br i1 %227, label %229, label %231

229:                                              ; preds = %225
  %230 = invoke noundef i32 @_ZN5Highs15changeRowBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %5, i32 noundef %228, double noundef %.2167, double noundef 0x7FF0000000000000)
          to label %233 unwind label %237

231:                                              ; preds = %225
  %232 = invoke noundef i32 @_ZN5Highs15changeColBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %5, i32 noundef %228, double noundef %.2167, double noundef 0x7FF0000000000000)
          to label %233 unwind label %237

233:                                              ; preds = %231, %229
  %234 = phi i32 [ %230, %229 ], [ %232, %231 ]
  store i32 %234, ptr %10, align 4, !tbaa !52
  %235 = icmp eq i32 %234, 0
  br i1 %235, label %239, label %236

236:                                              ; preds = %233
  call void @__assert_fail(ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.70, i32 noundef 419, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

237:                                              ; preds = %239, %231, %229
  %238 = landingpad { ptr, i32 }
          cleanup
  br label %340

239:                                              ; preds = %233
  %240 = invoke noundef i32 @"_ZZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasisENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(96) %22)
          to label %241 unwind label %237

241:                                              ; preds = %239
  store i32 %240, ptr %10, align 4, !tbaa !52
  %.not202 = icmp eq i32 %240, 0
  br i1 %.not202, label %242, label %.loopexit254

242:                                              ; preds = %241
  %243 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5Highs14getModelStatusEv(ptr noundef nonnull align 8 dereferenceable(20928) %5)
  %244 = load i32, ptr %243, align 4, !tbaa !60
  switch i32 %244, label %259 [
    i32 7, label %245
    i32 8, label %.thread223.thread
  ]

245:                                              ; preds = %242
  %246 = load i8, ptr %19, align 1, !tbaa !55, !range !62, !noundef !63
  %247 = trunc nuw i8 %246 to i1
  %248 = load i32, ptr %20, align 4, !tbaa !56
  br i1 %247, label %249, label %251

249:                                              ; preds = %245
  %250 = invoke noundef i32 @_ZN5Highs15changeRowBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %5, i32 noundef %248, double noundef %.2167, double noundef %168)
          to label %253 unwind label %257

251:                                              ; preds = %245
  %252 = invoke noundef i32 @_ZN5Highs15changeColBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %5, i32 noundef %248, double noundef %.2167, double noundef %168)
          to label %253 unwind label %257

253:                                              ; preds = %251, %249
  %254 = phi i32 [ %250, %249 ], [ %252, %251 ]
  store i32 %254, ptr %10, align 4, !tbaa !52
  %255 = icmp eq i32 %254, 0
  br i1 %255, label %.thread223.thread, label %256

256:                                              ; preds = %253
  call void @__assert_fail(ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.70, i32 noundef 428, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

257:                                              ; preds = %251, %249
  %258 = landingpad { ptr, i32 }
          cleanup
  br label %340

259:                                              ; preds = %242
  call void @__assert_fail(ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.70, i32 noundef 431, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

.thread223.thread:                                ; preds = %214, %253, %242, %.thread223
  %.2167248 = phi double [ %.2167, %.thread223 ], [ %.2167, %253 ], [ %.2167, %242 ], [ %162, %214 ]
  %.5164 = phi double [ %168, %.thread223 ], [ %168, %253 ], [ 0x7FF0000000000000, %242 ], [ 0x7FF0000000000000, %214 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #7
  %260 = load i8, ptr %19, align 1, !tbaa !55, !range !62, !noundef !63
  %261 = trunc nuw i8 %260 to i1
  %262 = load i32, ptr %20, align 4, !tbaa !56
  br i1 %261, label %263, label %265

263:                                              ; preds = %.thread223.thread
  %264 = invoke noundef i32 @_ZNK5Highs7getRowsEiiRiPdS1_S0_PiS2_S1_(ptr noundef nonnull align 8 dereferenceable(20928) %5, i32 noundef %262, i32 noundef %262, ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %267 unwind label %271

265:                                              ; preds = %.thread223.thread
  %266 = invoke noundef i32 @_ZNK5Highs7getColsEiiRiPdS1_S1_S0_PiS2_S1_(ptr noundef nonnull align 8 dereferenceable(20928) %5, i32 noundef %262, i32 noundef %262, ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull %27, ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %267 unwind label %271

267:                                              ; preds = %265, %263
  %268 = phi i32 [ %264, %263 ], [ %266, %265 ]
  store i32 %268, ptr %10, align 4, !tbaa !52
  %269 = icmp eq i32 %268, 0
  br i1 %269, label %273, label %270

270:                                              ; preds = %267
  call void @__assert_fail(ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.70, i32 noundef 451, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

271:                                              ; preds = %265, %263
  %272 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  br label %340

273:                                              ; preds = %267
  %274 = load double, ptr %25, align 8, !tbaa !54
  %275 = fcmp oeq double %274, %.2167248
  br i1 %275, label %277, label %276

276:                                              ; preds = %273
  call void @__assert_fail(ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.70, i32 noundef 452, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

277:                                              ; preds = %273
  %278 = load double, ptr %26, align 8, !tbaa !54
  %279 = fcmp oeq double %278, %.5164
  br i1 %279, label %281, label %280

280:                                              ; preds = %277
  call void @__assert_fail(ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.70, i32 noundef 453, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

281:                                              ; preds = %277
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  %282 = fcmp oeq double %.2167248, 0xFFF0000000000000
  br i1 %282, label %283, label %287

283:                                              ; preds = %281
  %284 = fcmp oeq double %.5164, 0x7FF0000000000000
  %.pre342 = load i8, ptr %19, align 1, !tbaa !55, !range !62
  br i1 %284, label %285, label %.thread228

285:                                              ; preds = %283
  %286 = trunc nuw i8 %.pre342 to i1
  %.217 = select i1 %286, i32 -1, i32 1
  br label %.thread228

287:                                              ; preds = %281
  %288 = fcmp une double %.5164, 0x7FF0000000000000
  br i1 %288, label %289, label %..thread228_crit_edge

..thread228_crit_edge:                            ; preds = %287
  %.pre = load i8, ptr %19, align 1, !tbaa !55, !range !62
  br label %.thread228

289:                                              ; preds = %287
  call void @__assert_fail(ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.70, i32 noundef 477, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

.thread228:                                       ; preds = %..thread228_crit_edge, %283, %285
  %290 = phi i8 [ %.pre, %..thread228_crit_edge ], [ %.pre342, %283 ], [ %.pre342, %285 ]
  %.0130231 = phi i32 [ 2, %..thread228_crit_edge ], [ 3, %283 ], [ %.217, %285 ]
  %291 = trunc nuw i8 %290 to i1
  %292 = load i32, ptr %20, align 4, !tbaa !56
  %293 = sext i32 %292 to i64
  %.353 = select i1 %291, ptr %131, ptr %130
  %294 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %.353, i64 noundef %293) #7
  store i32 %.0130231, ptr %294, align 4, !tbaa !56
  %295 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  %296 = load i32, ptr %20, align 4, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #7
  invoke void @_ZNK8HighsIis22iisBoundStatusToStringB5cxx11Ei(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(128) %0, i32 noundef %.0130231)
          to label %297 unwind label %304

297:                                              ; preds = %.thread228
  %298 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %31, i32 noundef 1, ptr noundef nonnull @.str.88, ptr noundef %295, i32 noundef %296, ptr noundef %298)
          to label %299 unwind label %306

299:                                              ; preds = %297
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br label %300

300:                                              ; preds = %.lr.ph288, %.lr.ph288, %299
  %301 = load i32, ptr %20, align 4, !tbaa !56
  %302 = add nsw i32 %301, 1
  store i32 %302, ptr %20, align 4, !tbaa !56
  %303 = icmp slt i32 %302, %147
  br i1 %303, label %.lr.ph288, label %._crit_edge289, !llvm.loop !64

304:                                              ; preds = %.thread228
  %305 = landingpad { ptr, i32 }
          cleanup
  br label %308

306:                                              ; preds = %297
  %307 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %308

308:                                              ; preds = %306, %304
  %.pn204 = phi { ptr, i32 } [ %307, %306 ], [ %305, %304 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br label %340

._crit_edge289:                                   ; preds = %300, %144
  br i1 %136, label %.loopexit252.thread, label %309

.loopexit252.thread:                              ; preds = %._crit_edge289
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %.preheader250

309:                                              ; preds = %._crit_edge289
  %310 = load i8, ptr %19, align 1, !tbaa !55, !range !62, !noundef !63
  %311 = trunc nuw i8 %310 to i1
  %312 = load i32, ptr %1, align 8
  %313 = icmp sgt i32 %312, 0
  %or.cond306 = select i1 %311, i1 %313, i1 false
  br i1 %or.cond306, label %.lr.ph295, label %.loopexit252

.lr.ph295:                                        ; preds = %309, %.loopexit
  %indvars.iv333 = phi i64 [ %indvars.iv.next334, %.loopexit ], [ 0, %309 ]
  %314 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %indvars.iv333) #7
  %315 = load i32, ptr %314, align 4, !tbaa !56
  %indvars.iv.next334 = add nuw nsw i64 %indvars.iv333, 1
  %316 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %indvars.iv.next334) #7
  %317 = load i32, ptr %316, align 4, !tbaa !56
  %.not194290 = icmp slt i32 %315, %317
  br i1 %.not194290, label %.lr.ph293.preheader, label %.critedge

.lr.ph293.preheader:                              ; preds = %.lr.ph295
  %318 = sext i32 %315 to i64
  br label %.lr.ph293

319:                                              ; preds = %.lr.ph293
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %320 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %indvars.iv.next334) #7
  %321 = load i32, ptr %320, align 4, !tbaa !56
  %322 = sext i32 %321 to i64
  %.not194 = icmp slt i64 %indvars.iv.next, %322
  br i1 %.not194, label %.lr.ph293, label %.critedge, !llvm.loop !65

.lr.ph293:                                        ; preds = %.lr.ph293.preheader, %319
  %indvars.iv = phi i64 [ %318, %.lr.ph293.preheader ], [ %indvars.iv.next, %319 ]
  %323 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %133, i64 noundef %indvars.iv) #7
  %324 = load i32, ptr %323, align 4, !tbaa !56
  %325 = sext i32 %324 to i64
  %326 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %131, i64 noundef %325) #7
  %327 = load i32, ptr %326, align 4, !tbaa !56
  %.not193 = icmp eq i32 %327, -1
  br i1 %.not193, label %319, label %.loopexit

.critedge:                                        ; preds = %319, %.lr.ph295
  %328 = trunc nuw nsw i64 %indvars.iv333 to i32
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %31, i32 noundef 1, ptr noundef nonnull @.str.89, i32 noundef %328)
          to label %329 unwind label %335

329:                                              ; preds = %.critedge
  %330 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %indvars.iv333) #7
  store i32 -1, ptr %330, align 4, !tbaa !56
  %331 = invoke noundef i32 @_ZN5Highs15changeColBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928) %5, i32 noundef %328, double noundef 0xFFF0000000000000, double noundef 0x7FF0000000000000)
          to label %332 unwind label %335

332:                                              ; preds = %329
  store i32 %331, ptr %10, align 4, !tbaa !52
  %333 = icmp eq i32 %331, 0
  br i1 %333, label %.loopexit, label %334

334:                                              ; preds = %332
  call void @__assert_fail(ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.70, i32 noundef 507, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasis) #8
  unreachable

335:                                              ; preds = %329, %.critedge
  %336 = landingpad { ptr, i32 }
          cleanup
  br label %340

.loopexit:                                        ; preds = %.lr.ph293, %332
  %337 = load i32, ptr %1, align 8, !tbaa !19
  %338 = sext i32 %337 to i64
  %339 = icmp slt i64 %indvars.iv.next334, %338
  br i1 %339, label %.lr.ph295, label %.loopexit252, !llvm.loop !66

.loopexit252:                                     ; preds = %.loopexit, %309
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br i1 %.not343, label %135, label %.preheader250, !llvm.loop !67

340:                                              ; preds = %237, %257, %202, %218, %182, %308, %271, %335
  %.pn204.pn.pn.pn = phi { ptr, i32 } [ %336, %335 ], [ %258, %257 ], [ %238, %237 ], [ %183, %182 ], [ %219, %218 ], [ %203, %202 ], [ %.pn204, %308 ], [ %272, %271 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %341

341:                                              ; preds = %340, %154
  %.pn204.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn204.pn.pn.pn, %340 ], [ %155, %154 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %393

.loopexit254:                                     ; preds = %186, %241
  %.5.ph = phi i32 [ %185, %186 ], [ %240, %241 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %392

.preheader250:                                    ; preds = %.loopexit252, %.loopexit252.thread
  %342 = load i32, ptr %1, align 8, !tbaa !19
  %343 = icmp sgt i32 %342, 0
  br i1 %343, label %.lr.ph299, label %.preheader

.lr.ph299:                                        ; preds = %.preheader250
  %344 = getelementptr inbounds i8, ptr %0, i64 8
  br label %349

.preheader.loopexit:                              ; preds = %361
  %345 = sext i32 %.1126 to i64
  br label %.preheader

.preheader:                                       ; preds = %.preheader.loopexit, %.preheader250
  %.0125.lcssa = phi i64 [ 0, %.preheader250 ], [ %345, %.preheader.loopexit ]
  %346 = load i32, ptr %37, align 4, !tbaa !48
  %347 = icmp sgt i32 %346, 0
  br i1 %347, label %.lr.ph302, label %._crit_edge303

.lr.ph302:                                        ; preds = %.preheader
  %348 = getelementptr inbounds i8, ptr %0, i64 32
  br label %367

349:                                              ; preds = %.lr.ph299, %361
  %indvars.iv336 = phi i64 [ 0, %.lr.ph299 ], [ %indvars.iv.next337, %361 ]
  %.0125297 = phi i32 [ 0, %.lr.ph299 ], [ %.1126, %361 ]
  %350 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %indvars.iv336) #7
  %351 = load i32, ptr %350, align 4, !tbaa !56
  %.not216 = icmp eq i32 %351, -1
  br i1 %.not216, label %361, label %352

352:                                              ; preds = %349
  %353 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %344, i64 noundef %indvars.iv336) #7
  %354 = load i32, ptr %353, align 4, !tbaa !56
  %355 = sext i32 %.0125297 to i64
  %356 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %344, i64 noundef %355) #7
  store i32 %354, ptr %356, align 4, !tbaa !56
  %357 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %indvars.iv336) #7
  %358 = load i32, ptr %357, align 4, !tbaa !56
  %359 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %355) #7
  store i32 %358, ptr %359, align 4, !tbaa !56
  %360 = add nsw i32 %.0125297, 1
  br label %361

361:                                              ; preds = %349, %352
  %.1126 = phi i32 [ %360, %352 ], [ %.0125297, %349 ]
  %indvars.iv.next337 = add nuw nsw i64 %indvars.iv336, 1
  %362 = load i32, ptr %1, align 8, !tbaa !19
  %363 = sext i32 %362 to i64
  %364 = icmp slt i64 %indvars.iv.next337, %363
  br i1 %364, label %349, label %.preheader.loopexit, !llvm.loop !68

._crit_edge303.loopexit:                          ; preds = %379
  %365 = sext i32 %.1 to i64
  br label %._crit_edge303

._crit_edge303:                                   ; preds = %._crit_edge303.loopexit, %.preheader
  %.0123.lcssa = phi i64 [ 0, %.preheader ], [ %365, %._crit_edge303.loopexit ]
  %366 = getelementptr inbounds i8, ptr %0, i64 8
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %366, i64 noundef %.0125.lcssa)
          to label %383 unwind label %390

367:                                              ; preds = %.lr.ph302, %379
  %indvars.iv339 = phi i64 [ 0, %.lr.ph302 ], [ %indvars.iv.next340, %379 ]
  %.0123300 = phi i32 [ 0, %.lr.ph302 ], [ %.1, %379 ]
  %368 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %131, i64 noundef %indvars.iv339) #7
  %369 = load i32, ptr %368, align 4, !tbaa !56
  %.not215 = icmp eq i32 %369, -1
  br i1 %.not215, label %379, label %370

370:                                              ; preds = %367
  %371 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %348, i64 noundef %indvars.iv339) #7
  %372 = load i32, ptr %371, align 4, !tbaa !56
  %373 = sext i32 %.0123300 to i64
  %374 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %348, i64 noundef %373) #7
  store i32 %372, ptr %374, align 4, !tbaa !56
  %375 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %131, i64 noundef %indvars.iv339) #7
  %376 = load i32, ptr %375, align 4, !tbaa !56
  %377 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %131, i64 noundef %373) #7
  store i32 %376, ptr %377, align 4, !tbaa !56
  %378 = add nsw i32 %.0123300, 1
  br label %379

379:                                              ; preds = %367, %370
  %.1 = phi i32 [ %378, %370 ], [ %.0123300, %367 ]
  %indvars.iv.next340 = add nuw nsw i64 %indvars.iv339, 1
  %380 = load i32, ptr %37, align 4, !tbaa !48
  %381 = sext i32 %380 to i64
  %382 = icmp slt i64 %indvars.iv.next340, %381
  br i1 %382, label %367, label %._crit_edge303.loopexit, !llvm.loop !69

383:                                              ; preds = %._crit_edge303
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %.0125.lcssa)
          to label %384 unwind label %390

384:                                              ; preds = %383
  %385 = getelementptr inbounds i8, ptr %0, i64 32
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %385, i64 noundef %.0123.lcssa)
          to label %386 unwind label %390

386:                                              ; preds = %384
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %131, i64 noundef %.0123.lcssa)
          to label %387 unwind label %390

387:                                              ; preds = %386
  store i8 1, ptr %0, align 8, !tbaa !70
  %388 = load i32, ptr %32, align 8, !tbaa !5
  %389 = getelementptr inbounds i8, ptr %0, i64 4
  store i32 %388, ptr %389, align 4, !tbaa !76
  br label %392

390:                                              ; preds = %386, %384, %383, %._crit_edge303
  %391 = landingpad { ptr, i32 }
          cleanup
  br label %393

392:                                              ; preds = %.loopexit254, %123, %387
  %.8 = phi i32 [ 0, %387 ], [ %.5.ph, %.loopexit254 ], [ %122, %123 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #7
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %5) #7
  call void @llvm.lifetime.end.p0(i64 20928, ptr nonnull %5) #7
  ret i32 %.8

393:                                              ; preds = %390, %341, %124
  %.pn210 = phi { ptr, i32 } [ %391, %390 ], [ %.pn204.pn.pn.pn.pn, %341 ], [ %125, %124 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #7
  br label %394

394:                                              ; preds = %393, %109, %98, %96
  %.pn210.pn = phi { ptr, i32 } [ %.pn210, %393 ], [ %.pn190, %109 ], [ %99, %98 ], [ %97, %96 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #7
  br label %395

395:                                              ; preds = %394, %84, %73, %71
  %.pn210.pn.pn = phi { ptr, i32 } [ %.pn210.pn, %394 ], [ %.pn188, %84 ], [ %74, %73 ], [ %72, %71 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #7
  br label %396

396:                                              ; preds = %395, %70, %65
  %.pn210.pn.pn.pn = phi { ptr, i32 } [ %.pn210.pn.pn, %395 ], [ %.pn186, %70 ], [ %.pn, %65 ]
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %5) #7
  call void @llvm.lifetime.end.p0(i64 20928, ptr nonnull %5) #7
  resume { ptr, i32 } %.pn210.pn.pn.pn
}

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

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

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

declare noundef i32 @_ZN5Highs14setOptionValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext) local_unnamed_addr #5

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

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

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

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

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

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

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

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

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

declare noundef i32 @_ZN5Highs14changeColsCostEiiPKd(ptr noundef nonnull align 8 dereferenceable(20928), i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #5

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @"_ZZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasisENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #6 align 2

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

declare noundef i32 @_ZN5Highs15changeRowBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928), i32 noundef, double noundef, double noundef) local_unnamed_addr #5

declare noundef i32 @_ZN5Highs15changeColBoundsEidd(ptr noundef nonnull align 8 dereferenceable(20928), i32 noundef, double noundef, double noundef) local_unnamed_addr #5

declare noundef i32 @_ZNK5Highs7getRowsEiiRiPdS1_S0_PiS2_S1_(ptr noundef nonnull align 8 dereferenceable(20928), i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

declare noundef i32 @_ZNK5Highs7getColsEiiRiPdS1_S1_S0_PiS2_S1_(ptr noundef nonnull align 8 dereferenceable(20928), i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #4 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { "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 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, !14, i64 512}
!6 = !{!"_ZTS18HighsOptionsStruct", !7, i64 8, !7, i64 40, !7, i64 72, !7, i64 104, !13, i64 136, !7, i64 144, !7, i64 176, !14, i64 208, !7, i64 216, !13, i64 248, !13, i64 256, !13, i64 264, !13, i64 272, !13, i64 280, !13, i64 288, !13, i64 296, !13, i64 304, !13, i64 312, !13, i64 320, !13, i64 328, !14, i64 336, !14, i64 340, !14, i64 344, !14, i64 348, !14, i64 352, !14, i64 356, !14, i64 360, !14, i64 364, !14, i64 368, !14, i64 372, !14, i64 376, !14, i64 380, !14, i64 384, !14, i64 388, !7, i64 392, !15, i64 424, !15, i64 425, !15, i64 426, !14, i64 428, !14, i64 432, !7, i64 440, !15, i64 472, !15, i64 473, !15, i64 474, !14, i64 476, !15, i64 480, !15, i64 481, !14, i64 484, !14, i64 488, !13, i64 496, !14, i64 504, !14, i64 508, !14, i64 512, !15, i64 516, !14, i64 520, !15, i64 524, !15, i64 525, !15, i64 526, !15, i64 527, !15, i64 528, !15, i64 529, !15, i64 530, !14, i64 532, !14, i64 536, !14, i64 540, !14, i64 544, !14, i64 548, !14, i64 552, !14, i64 556, !14, i64 560, !14, i64 564, !14, i64 568, !14, i64 572, !14, i64 576, !14, i64 580, !14, i64 584, !14, i64 588, !15, i64 592, !15, i64 593, !15, i64 594, !15, i64 595, !13, i64 600, !13, i64 608, !13, i64 616, !13, i64 624, !13, i64 632, !13, i64 640, !13, i64 648, !13, i64 656, !13, i64 664, !13, i64 672, !13, i64 680, !15, i64 688, !15, i64 689, !15, i64 690, !15, i64 691, !14, i64 692, !13, i64 696, !15, i64 704, !15, i64 705, !7, i64 712, !13, i64 744, !14, i64 752, !14, i64 756, !15, i64 760, !15, i64 761, !15, i64 762, !15, i64 763, !14, i64 764, !14, i64 768, !14, i64 772, !14, i64 776, !14, i64 780, !14, i64 784, !14, i64 788, !14, i64 792, !14, i64 796, !14, i64 800, !14, i64 804, !13, i64 808, !13, i64 816, !13, i64 824, !13, i64 832, !13, i64 840, !15, i64 848, !15, i64 849, !7, i64 856, !15, i64 888, !14, i64 892, !16, i64 896}
!7 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !8, i64 0, !12, i64 8, !10, i64 16}
!8 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !9, i64 0}
!9 = !{!"any pointer", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"long", !10, i64 0}
!13 = !{!"double", !10, i64 0}
!14 = !{!"int", !10, i64 0}
!15 = !{!"bool", !10, i64 0}
!16 = !{!"_ZTS15HighsLogOptions", !9, i64 0, !9, i64 8, !9, i64 16, !9, i64 24, !9, i64 32, !9, i64 40, !17, i64 48, !9, i64 80, !15, i64 88}
!17 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !18, i64 0, !9, i64 24}
!18 = !{!"_ZTSSt14_Function_base", !10, i64 0, !9, i64 16}
!19 = !{!20, !14, i64 0}
!20 = !{!"_ZTS7HighsLp", !14, i64 0, !14, i64 4, !21, i64 8, !21, i64 32, !21, i64 56, !21, i64 80, !21, i64 104, !25, i64 128, !31, i64 240, !13, i64 248, !7, i64 256, !7, i64 288, !14, i64 320, !14, i64 324, !32, i64 328, !32, i64 352, !36, i64 376, !40, i64 400, !40, i64 456, !14, i64 512, !14, i64 516, !46, i64 520, !15, i64 592, !15, i64 593, !14, i64 596, !15, i64 600, !47, i64 608}
!21 = !{!"_ZTSSt6vectorIdSaIdEE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!25 = !{!"_ZTS17HighsSparseMatrix", !26, i64 0, !14, i64 4, !14, i64 8, !27, i64 16, !27, i64 40, !27, i64 64, !21, i64 88}
!26 = !{!"_ZTS12MatrixFormat", !10, i64 0}
!27 = !{!"_ZTSSt6vectorIiSaIiEE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!31 = !{!"_ZTS8ObjSense", !10, i64 0}
!32 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!36 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !37, i64 0}
!37 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!40 = !{!"_ZTS13HighsNameHash", !41, i64 0}
!41 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !42, i64 0}
!42 = !{!"_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", !9, i64 0, !12, i64 8, !43, i64 16, !12, i64 24, !44, i64 32, !9, i64 48}
!43 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !9, i64 0}
!44 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !45, i64 0, !12, i64 8}
!45 = !{!"float", !10, i64 0}
!46 = !{!"_ZTS10HighsScale", !14, i64 0, !15, i64 4, !14, i64 8, !14, i64 12, !13, i64 16, !21, i64 24, !21, i64 48}
!47 = !{!"_ZTS11HighsLpMods", !27, i64 0, !27, i64 24, !21, i64 48, !21, i64 72, !36, i64 96, !27, i64 120, !21, i64 144, !27, i64 168, !21, i64 192, !27, i64 216, !21, i64 240, !21, i64 264, !21, i64 288}
!48 = !{!20, !14, i64 4}
!49 = distinct !{!49, !50}
!50 = !{!"llvm.loop.mustprogress"}
!51 = distinct !{!51, !50}
!52 = !{!53, !53, i64 0}
!53 = !{!"_ZTS11HighsStatus", !10, i64 0}
!54 = !{!13, !13, i64 0}
!55 = !{!15, !15, i64 0}
!56 = !{!14, !14, i64 0}
!57 = !{!9, !9, i64 0}
!58 = !{!59, !9, i64 88}
!59 = !{!"_ZTSZN8HighsIis7computeERK7HighsLpRK12HighsOptionsPK10HighsBasisE3$_0", !9, i64 0, !9, i64 8, !9, i64 16, !9, i64 24, !9, i64 32, !9, i64 40, !9, i64 48, !9, i64 56, !9, i64 64, !9, i64 72, !9, i64 80, !9, i64 88}
!60 = !{!61, !61, i64 0}
!61 = !{!"_ZTS16HighsModelStatus", !10, i64 0}
!62 = !{i8 0, i8 2}
!63 = !{}
!64 = distinct !{!64, !50}
!65 = distinct !{!65, !50}
!66 = distinct !{!66, !50}
!67 = distinct !{!67, !50}
!68 = distinct !{!68, !50}
!69 = distinct !{!69, !50}
!70 = !{!71, !15, i64 0}
!71 = !{!"_ZTS8HighsIis", !15, i64 0, !14, i64 4, !27, i64 8, !27, i64 32, !27, i64 56, !27, i64 80, !72, i64 104}
!72 = !{!"_ZTSSt6vectorI12HighsIisInfoSaIS0_EE", !73, i64 0}
!73 = !{!"_ZTSSt12_Vector_baseI12HighsIisInfoSaIS0_EE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseI12HighsIisInfoSaIS0_EE12_Vector_implE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseI12HighsIisInfoSaIS0_EE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!76 = !{!71, !14, i64 4}


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