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

; 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.HighsHashTable.207 = type { %"class.std::unique_ptr.208", %"class.std::unique_ptr.25", i64, i64, i64 }
%"class.std::unique_ptr.208" = type { %"struct.std::__uniq_ptr_data.209" }
%"struct.std::__uniq_ptr_data.209" = type { %"class.std::__uniq_ptr_impl.210" }
%"class.std::__uniq_ptr_impl.210" = type { %"class.std::tuple.211" }
%"class.std::tuple.211" = type { %"struct.std::_Tuple_impl.212" }
%"struct.std::_Tuple_impl.212" = type { %"struct.std::_Head_base.215" }
%"struct.std::_Head_base.215" = type { ptr }
%"class.std::unique_ptr.25" = type { %"struct.std::__uniq_ptr_data.26" }
%"struct.std::__uniq_ptr_data.26" = type { %"class.std::__uniq_ptr_impl.27" }
%"class.std::__uniq_ptr_impl.27" = type { %"class.std::tuple.28" }
%"class.std::tuple.28" = type { %"struct.std::_Tuple_impl.29" }
%"struct.std::_Tuple_impl.29" = type { %"struct.std::_Head_base.32" }
%"struct.std::_Head_base.32" = type { ptr }
%class.HighsHashTable.216 = type { %"class.std::unique_ptr.217", %"class.std::unique_ptr.25", i64, i64, i64 }
%"class.std::unique_ptr.217" = type { %"struct.std::__uniq_ptr_data.218" }
%"struct.std::__uniq_ptr_data.218" = type { %"class.std::__uniq_ptr_impl.219" }
%"class.std::__uniq_ptr_impl.219" = type { %"class.std::tuple.220" }
%"class.std::tuple.220" = type { %"struct.std::_Tuple_impl.221" }
%"struct.std::_Tuple_impl.221" = type { %"struct.std::_Head_base.224" }
%"struct.std::_Head_base.224" = type { ptr }
%class.HighsMatrixColoring = type { %"class.std::map", double }
%"class.std::map" = type { %"class.std::_Rb_tree.225" }
%"class.std::_Rb_tree.225" = type { %"struct.std::_Rb_tree<double, std::pair<const double, unsigned int>, std::_Select1st<std::pair<const double, unsigned int>>, std::less<double>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<double, std::pair<const double, unsigned int>, std::_Select1st<std::pair<const double, unsigned int>>, std::less<double>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.48" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%class.anon.230 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.47" = type { ptr }
%"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.std::allocator.0" = type { i8 }
%struct.MatrixColumn = type { i32, i32, i32, i32, i32 }
%struct.MatrixRow = type { i32, i32, i32 }
%class.anon.231 = type { ptr }
%class.HighsSymmetryDetection = type { ptr, %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", %"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.13", %"class.std::vector", %"class.std::vector", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector", %"class.std::vector", %class.HighsHashTable, %class.HighsHashTable.33, %class.HighsHashTable.33, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::vector.42" }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<std::pair<int, unsigned int>, std::allocator<std::pair<int, unsigned int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, unsigned int>, std::allocator<std::pair<int, unsigned int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, unsigned int>, std::allocator<std::pair<int, unsigned int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, unsigned int>, std::allocator<std::pair<int, unsigned int>>>::_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<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.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<int *, std::allocator<int *>>::_Vector_impl" }
%"struct.std::_Vector_base<int *, std::allocator<int *>>::_Vector_impl" = type { %"struct.std::_Vector_base<int *, std::allocator<int *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int *, std::allocator<int *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsHashTable = type { %"class.std::unique_ptr", %"class.std::unique_ptr.25", i64, i64, i64 }
%"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.24" }
%"struct.std::_Head_base.24" = type { ptr }
%class.HighsHashTable.33 = type { %"class.std::unique_ptr.34", %"class.std::unique_ptr.25", i64, i64, i64 }
%"class.std::unique_ptr.34" = type { %"struct.std::__uniq_ptr_data.35" }
%"struct.std::__uniq_ptr_data.35" = type { %"class.std::__uniq_ptr_impl.36" }
%"class.std::__uniq_ptr_impl.36" = type { %"class.std::tuple.37" }
%"class.std::tuple.37" = type { %"struct.std::_Tuple_impl.38" }
%"struct.std::_Tuple_impl.38" = type { %"struct.std::_Head_base.41" }
%"struct.std::_Head_base.41" = type { ptr }
%"class.std::vector.42" = type { %"struct.std::_Vector_base.43" }
%"struct.std::_Vector_base.43" = type { %"struct.std::_Vector_base<HighsSymmetryDetection::Node, std::allocator<HighsSymmetryDetection::Node>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsSymmetryDetection::Node, std::allocator<HighsSymmetryDetection::Node>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsSymmetryDetection::Node, std::allocator<HighsSymmetryDetection::Node>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsSymmetryDetection::Node, std::allocator<HighsSymmetryDetection::Node>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsLp = type { i32, i32, %"class.std::vector.90", %"class.std::vector.90", %"class.std::vector.90", %"class.std::vector.90", %"class.std::vector.90", %class.HighsSparseMatrix, i32, double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.191", %"class.std::vector.191", %"class.std::vector.196", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%"class.std::vector.90" = type { %"struct.std::_Vector_base.91" }
%"struct.std::_Vector_base.91" = 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.90" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.191" = type { %"struct.std::_Vector_base.192" }
%"struct.std::_Vector_base.192" = 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.196" = type { %"struct.std::_Vector_base.197" }
%"struct.std::_Vector_base.197" = 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.90", %"class.std::vector.90" }
%struct.HighsLpMods = type { %"class.std::vector", %"class.std::vector", %"class.std::vector.90", %"class.std::vector.90", %"class.std::vector.196", %"class.std::vector", %"class.std::vector.90", %"class.std::vector", %"class.std::vector.90", %"class.std::vector", %"class.std::vector.90", %"class.std::vector.90", %"class.std::vector.90" }
%"struct.std::pair" = type { i32, i32 }

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZSt4iotaIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiEvT_S7_T0_(ptr, ptr, i32 noundef) #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) #2 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) #2 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN22HighsSymmetryDetection16loadModelAsGraphERK7HighsLpd(ptr noundef nonnull align 8 dereferenceable(720) %0, ptr noundef nonnull align 8 dereferenceable(920) %1, double noundef %2) #1 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca double, align 8
  %7 = alloca %class.HighsHashTable.207, align 8
  %8 = alloca %class.HighsHashTable.216, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca %class.HighsMatrixColoring, align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.48", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.48", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %16 = alloca %class.anon.230, align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.48", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.48", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %22 = alloca %"class.std::vector", align 8
  %23 = alloca %"class.std::allocator.0", align 1
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %31 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca %struct.MatrixColumn, align 4
  %39 = alloca ptr, align 8
  %40 = alloca i32, align 4
  %41 = alloca %struct.MatrixRow, align 4
  %42 = alloca ptr, align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %46 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %47 = alloca %class.anon.231, align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store double %2, ptr %6, align 8, !tbaa !9
  %52 = load ptr, ptr %4, align 8
  %53 = load ptr, ptr %5, align 8, !tbaa !5
  %54 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 0
  store ptr %53, ptr %54, align 8, !tbaa !11
  %55 = load ptr, ptr %5, align 8, !tbaa !5
  %56 = getelementptr inbounds %class.HighsLp, ptr %55, i32 0, i32 0
  %57 = load i32, ptr %56, align 8, !tbaa !59
  %58 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 31
  store i32 %57, ptr %58, align 4, !tbaa !87
  %59 = load ptr, ptr %5, align 8, !tbaa !5
  %60 = getelementptr inbounds %class.HighsLp, ptr %59, i32 0, i32 1
  %61 = load i32, ptr %60, align 4, !tbaa !88
  %62 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 32
  store i32 %61, ptr %62, align 8, !tbaa !89
  %63 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 32
  %64 = load i32, ptr %63, align 8, !tbaa !89
  %65 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 31
  %66 = load i32, ptr %65, align 4, !tbaa !87
  %67 = add nsw i32 %64, %66
  %68 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 33
  store i32 %67, ptr %68, align 4, !tbaa !90
  %69 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 13
  %70 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 33
  %71 = load i32, ptr %70, align 4, !tbaa !90
  %72 = sext i32 %71 to i64
  call void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %69, i64 noundef %72)
  %73 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 7
  %74 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 33
  %75 = load i32, ptr %74, align 4, !tbaa !90
  %76 = sext i32 %75 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %73, i64 noundef %76)
  %77 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 14
  %78 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 33
  %79 = load i32, ptr %78, align 4, !tbaa !90
  %80 = sext i32 %79 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %77, i64 noundef %80)
  %81 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 18
  %82 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 33
  %83 = load i32, ptr %82, align 4, !tbaa !90
  %84 = sext i32 %83 to i64
  call void @_ZNSt6vectorIjSaIjEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %81, i64 noundef %84)
  call void @llvm.lifetime.start.p0(i64 40, ptr %7) #5
  call void @_ZN14HighsHashTableI12MatrixColumniEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %7)
  call void @llvm.lifetime.start.p0(i64 40, ptr %8) #5
  invoke void @_ZN14HighsHashTableI9MatrixRowiEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8)
          to label %85 unwind label %166

85:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 56, ptr %11) #5
  %86 = load double, ptr %6, align 8, !tbaa !9
  invoke void @_ZN19HighsMatrixColoringC2Ed(ptr noundef nonnull align 8 dereferenceable(56) %11, double noundef %86)
          to label %87 unwind label %170

87:                                               ; preds = %85
  %88 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 4
  %89 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 33
  %90 = load i32, ptr %89, align 4, !tbaa !90
  %91 = sext i32 %90 to i64
  invoke void @_ZNSt6vectorISt4pairIijESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef %91)
          to label %92 unwind label %174

92:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  %93 = load ptr, ptr %5, align 8, !tbaa !5
  %94 = getelementptr inbounds %class.HighsLp, ptr %93, i32 0, i32 7
  %95 = getelementptr inbounds %class.HighsSparseMatrix, ptr %94, i32 0, i32 5
  %96 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %95) #5
  %97 = trunc i64 %96 to i32
  store i32 %97, ptr %12, align 4, !tbaa !91
  %98 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 3
  %99 = load i32, ptr %12, align 4, !tbaa !91
  %100 = mul nsw i32 2, %99
  %101 = sext i32 %100 to i64
  invoke void @_ZNSt6vectorISt4pairIijESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %98, i64 noundef %101)
          to label %102 unwind label %178

102:                                              ; preds = %92
  %103 = load ptr, ptr %5, align 8, !tbaa !5
  %104 = getelementptr inbounds %class.HighsLp, ptr %103, i32 0, i32 7
  %105 = getelementptr inbounds %class.HighsSparseMatrix, ptr %104, i32 0, i32 5
  %106 = call ptr @_ZNKSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %105) #5
  %107 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.48", ptr %13, i32 0, i32 0
  store ptr %106, ptr %107, align 8
  %108 = load ptr, ptr %5, align 8, !tbaa !5
  %109 = getelementptr inbounds %class.HighsLp, ptr %108, i32 0, i32 7
  %110 = getelementptr inbounds %class.HighsSparseMatrix, ptr %109, i32 0, i32 5
  %111 = call ptr @_ZNKSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %110) #5
  %112 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.48", ptr %14, i32 0, i32 0
  store ptr %111, ptr %112, align 8
  %113 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 3
  %114 = call ptr @_ZNSt6vectorISt4pairIijESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %113) #5
  %115 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %15, i32 0, i32 0
  store ptr %114, ptr %115, align 8
  %116 = getelementptr inbounds %class.anon.230, ptr %16, i32 0, i32 0
  store ptr %52, ptr %116, align 8, !tbaa !92
  %117 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.48", ptr %13, i32 0, i32 0
  %118 = load ptr, ptr %117, align 8
  %119 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.48", ptr %14, i32 0, i32 0
  %120 = load ptr, ptr %119, align 8
  %121 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %15, i32 0, i32 0
  %122 = load ptr, ptr %121, align 8
  %123 = getelementptr inbounds %class.anon.230, ptr %16, i32 0, i32 0
  %124 = load ptr, ptr %123, align 8
  %125 = invoke ptr @"_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS1_IPSt4pairIijES4_IS9_SaIS9_EEEEZN22HighsSymmetryDetection16loadModelAsGraphERK7HighsLpdE3$_0ET0_T_SK_SJ_T1_"(ptr %118, ptr %120, ptr %122, ptr %124)
          to label %126 unwind label %178

126:                                              ; preds = %102
  %127 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %17, i32 0, i32 0
  store ptr %125, ptr %127, align 8
  %128 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %129 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 33
  %130 = load i32, ptr %129, align 4, !tbaa !90
  %131 = add nsw i32 %130, 1
  %132 = sext i32 %131 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %128, i64 noundef %132)
          to label %133 unwind label %178

133:                                              ; preds = %126
  %134 = load ptr, ptr %5, align 8, !tbaa !5
  %135 = getelementptr inbounds %class.HighsLp, ptr %134, i32 0, i32 7
  %136 = getelementptr inbounds %class.HighsSparseMatrix, ptr %135, i32 0, i32 3
  %137 = call ptr @_ZNKSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %136) #5
  %138 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.48", ptr %18, i32 0, i32 0
  store ptr %137, ptr %138, align 8
  %139 = load ptr, ptr %5, align 8, !tbaa !5
  %140 = getelementptr inbounds %class.HighsLp, ptr %139, i32 0, i32 7
  %141 = getelementptr inbounds %class.HighsSparseMatrix, ptr %140, i32 0, i32 3
  %142 = call ptr @_ZNKSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %141) #5
  %143 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.48", ptr %19, i32 0, i32 0
  store ptr %142, ptr %143, align 8
  %144 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %145 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %144) #5
  %146 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %20, i32 0, i32 0
  store ptr %145, ptr %146, align 8
  %147 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.48", ptr %18, i32 0, i32 0
  %148 = load ptr, ptr %147, align 8
  %149 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.48", ptr %19, i32 0, i32 0
  %150 = load ptr, ptr %149, align 8
  %151 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %20, i32 0, i32 0
  %152 = load ptr, ptr %151, align 8
  %153 = invoke ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS1_IPiS6_EEET0_T_SB_SA_(ptr %148, ptr %150, ptr %152)
          to label %154 unwind label %178

154:                                              ; preds = %133
  %155 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %21, i32 0, i32 0
  store ptr %153, ptr %155, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #5
  %156 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 32
  %157 = load i32, ptr %156, align 8, !tbaa !89
  %158 = sext i32 %157 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #5
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %158, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %159 unwind label %182

159:                                              ; preds = %154
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  store i32 0, ptr %24, align 4, !tbaa !91
  br label %160

160:                                              ; preds = %236, %159
  %161 = load i32, ptr %24, align 4, !tbaa !91
  %162 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 31
  %163 = load i32, ptr %162, align 4, !tbaa !87
  %164 = icmp slt i32 %161, %163
  br i1 %164, label %186, label %165

165:                                              ; preds = %160
  store i32 2, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  br label %239

166:                                              ; preds = %3
  %167 = landingpad { ptr, i32 }
          cleanup
  %168 = extractvalue { ptr, i32 } %167, 0
  store ptr %168, ptr %9, align 8
  %169 = extractvalue { ptr, i32 } %167, 1
  store i32 %169, ptr %10, align 4
  br label %665

170:                                              ; preds = %85
  %171 = landingpad { ptr, i32 }
          cleanup
  %172 = extractvalue { ptr, i32 } %171, 0
  store ptr %172, ptr %9, align 8
  %173 = extractvalue { ptr, i32 } %171, 1
  store i32 %173, ptr %10, align 4
  br label %664

174:                                              ; preds = %87
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %9, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %10, align 4
  br label %663

178:                                              ; preds = %133, %126, %102, %92
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  store ptr %180, ptr %9, align 8
  %181 = extractvalue { ptr, i32 } %179, 1
  store i32 %181, ptr %10, align 4
  br label %662

182:                                              ; preds = %154
  %183 = landingpad { ptr, i32 }
          cleanup
  %184 = extractvalue { ptr, i32 } %183, 0
  store ptr %184, ptr %9, align 8
  %185 = extractvalue { ptr, i32 } %183, 1
  store i32 %185, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #5
  br label %661

186:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #5
  %187 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %188 = load i32, ptr %24, align 4, !tbaa !91
  %189 = sext i32 %188 to i64
  %190 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %187, i64 noundef %189) #5
  %191 = load i32, ptr %190, align 4, !tbaa !91
  store i32 %191, ptr %26, align 4, !tbaa !91
  br label %192

192:                                              ; preds = %228, %186
  %193 = load i32, ptr %26, align 4, !tbaa !91
  %194 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %195 = load i32, ptr %24, align 4, !tbaa !91
  %196 = add nsw i32 %195, 1
  %197 = sext i32 %196 to i64
  %198 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %194, i64 noundef %197) #5
  %199 = load i32, ptr %198, align 4, !tbaa !91
  %200 = icmp slt i32 %193, %199
  br i1 %200, label %202, label %201

201:                                              ; preds = %192
  store i32 5, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  br label %235

202:                                              ; preds = %192
  %203 = load ptr, ptr %5, align 8, !tbaa !5
  %204 = getelementptr inbounds %class.HighsLp, ptr %203, i32 0, i32 7
  %205 = getelementptr inbounds %class.HighsSparseMatrix, ptr %204, i32 0, i32 6
  %206 = load i32, ptr %26, align 4, !tbaa !91
  %207 = sext i32 %206 to i64
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %205, i64 noundef %207) #5
  %209 = load double, ptr %208, align 8, !tbaa !9
  %210 = invoke noundef i32 @_ZN19HighsMatrixColoring5colorEd(ptr noundef nonnull align 8 dereferenceable(56) %11, double noundef %209)
          to label %211 unwind label %231

211:                                              ; preds = %202
  %212 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 3
  %213 = load i32, ptr %26, align 4, !tbaa !91
  %214 = sext i32 %213 to i64
  %215 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIijESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %212, i64 noundef %214) #5
  %216 = getelementptr inbounds %"struct.std::pair", ptr %215, i32 0, i32 1
  store i32 %210, ptr %216, align 4, !tbaa !94
  %217 = load ptr, ptr %5, align 8, !tbaa !5
  %218 = getelementptr inbounds %class.HighsLp, ptr %217, i32 0, i32 7
  %219 = getelementptr inbounds %class.HighsSparseMatrix, ptr %218, i32 0, i32 5
  %220 = load i32, ptr %26, align 4, !tbaa !91
  %221 = sext i32 %220 to i64
  %222 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %219, i64 noundef %221) #5
  %223 = load i32, ptr %222, align 4, !tbaa !91
  %224 = sext i32 %223 to i64
  %225 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %224) #5
  %226 = load i32, ptr %225, align 4, !tbaa !91
  %227 = add nsw i32 %226, 1
  store i32 %227, ptr %225, align 4, !tbaa !91
  br label %228

228:                                              ; preds = %211
  %229 = load i32, ptr %26, align 4, !tbaa !91
  %230 = add nsw i32 %229, 1
  store i32 %230, ptr %26, align 4, !tbaa !91
  br label %192, !llvm.loop !96

231:                                              ; preds = %202
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %9, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  br label %660

235:                                              ; preds = %201
  br label %236

236:                                              ; preds = %235
  %237 = load i32, ptr %24, align 4, !tbaa !91
  %238 = add nsw i32 %237, 1
  store i32 %238, ptr %24, align 4, !tbaa !91
  br label %160, !llvm.loop !98

239:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  %240 = load i32, ptr %12, align 4, !tbaa !91
  store i32 %240, ptr %27, align 4, !tbaa !91
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  store i32 0, ptr %28, align 4, !tbaa !91
  br label %241

241:                                              ; preds = %262, %239
  %242 = load i32, ptr %28, align 4, !tbaa !91
  %243 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 32
  %244 = load i32, ptr %243, align 8, !tbaa !89
  %245 = icmp slt i32 %242, %244
  br i1 %245, label %247, label %246

246:                                              ; preds = %241
  store i32 8, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  br label %265

247:                                              ; preds = %241
  %248 = load i32, ptr %27, align 4, !tbaa !91
  %249 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %250 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 31
  %251 = load i32, ptr %250, align 4, !tbaa !87
  %252 = load i32, ptr %28, align 4, !tbaa !91
  %253 = add nsw i32 %251, %252
  %254 = sext i32 %253 to i64
  %255 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %249, i64 noundef %254) #5
  store i32 %248, ptr %255, align 4, !tbaa !91
  %256 = load i32, ptr %28, align 4, !tbaa !91
  %257 = sext i32 %256 to i64
  %258 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %257) #5
  %259 = load i32, ptr %258, align 4, !tbaa !91
  %260 = load i32, ptr %27, align 4, !tbaa !91
  %261 = add nsw i32 %260, %259
  store i32 %261, ptr %27, align 4, !tbaa !91
  br label %262

262:                                              ; preds = %247
  %263 = load i32, ptr %28, align 4, !tbaa !91
  %264 = add nsw i32 %263, 1
  store i32 %264, ptr %28, align 4, !tbaa !91
  br label %241, !llvm.loop !99

265:                                              ; preds = %246
  %266 = load i32, ptr %27, align 4, !tbaa !91
  %267 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %268 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 31
  %269 = load i32, ptr %268, align 4, !tbaa !87
  %270 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 32
  %271 = load i32, ptr %270, align 8, !tbaa !89
  %272 = add nsw i32 %269, %271
  %273 = sext i32 %272 to i64
  %274 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %267, i64 noundef %273) #5
  store i32 %266, ptr %274, align 4, !tbaa !91
  %275 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  %276 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %277 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %276) #5
  %278 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %30, i32 0, i32 0
  store ptr %277, ptr %278, align 8
  %279 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %30, i64 noundef 1) #5
  %280 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %29, i32 0, i32 0
  store ptr %279, ptr %280, align 8
  %281 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %282 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %281) #5
  %283 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %31, i32 0, i32 0
  store ptr %282, ptr %283, align 8
  %284 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %29, i32 0, i32 0
  %285 = load ptr, ptr %284, align 8
  %286 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %31, i32 0, i32 0
  %287 = load ptr, ptr %286, align 8
  invoke void @_ZNSt6vectorIiSaIiEE6assignIN9__gnu_cxx17__normal_iteratorIPiS1_EEvEEvT_S7_(ptr noundef nonnull align 8 dereferenceable(24) %275, ptr %285, ptr %287)
          to label %288 unwind label %295

288:                                              ; preds = %265
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  store i32 0, ptr %32, align 4, !tbaa !91
  br label %289

289:                                              ; preds = %363, %288
  %290 = load i32, ptr %32, align 4, !tbaa !91
  %291 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 31
  %292 = load i32, ptr %291, align 4, !tbaa !87
  %293 = icmp slt i32 %290, %292
  br i1 %293, label %299, label %294

294:                                              ; preds = %289
  store i32 11, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  br label %366

295:                                              ; preds = %265
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %9, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  br label %659

299:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  %300 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %301 = load i32, ptr %32, align 4, !tbaa !91
  %302 = sext i32 %301 to i64
  %303 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %300, i64 noundef %302) #5
  %304 = load i32, ptr %303, align 4, !tbaa !91
  store i32 %304, ptr %33, align 4, !tbaa !91
  br label %305

305:                                              ; preds = %359, %299
  %306 = load i32, ptr %33, align 4, !tbaa !91
  %307 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %308 = load i32, ptr %32, align 4, !tbaa !91
  %309 = add nsw i32 %308, 1
  %310 = sext i32 %309 to i64
  %311 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %307, i64 noundef %310) #5
  %312 = load i32, ptr %311, align 4, !tbaa !91
  %313 = icmp slt i32 %306, %312
  br i1 %313, label %315, label %314

314:                                              ; preds = %305
  store i32 14, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  br label %362

315:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  %316 = load ptr, ptr %5, align 8, !tbaa !5
  %317 = getelementptr inbounds %class.HighsLp, ptr %316, i32 0, i32 7
  %318 = getelementptr inbounds %class.HighsSparseMatrix, ptr %317, i32 0, i32 5
  %319 = load i32, ptr %33, align 4, !tbaa !91
  %320 = sext i32 %319 to i64
  %321 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %318, i64 noundef %320) #5
  %322 = load i32, ptr %321, align 4, !tbaa !91
  store i32 %322, ptr %34, align 4, !tbaa !91
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  %323 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %324 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 31
  %325 = load i32, ptr %324, align 4, !tbaa !87
  %326 = load i32, ptr %34, align 4, !tbaa !91
  %327 = add nsw i32 %325, %326
  %328 = add nsw i32 %327, 1
  %329 = sext i32 %328 to i64
  %330 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %323, i64 noundef %329) #5
  %331 = load i32, ptr %330, align 4, !tbaa !91
  %332 = load i32, ptr %34, align 4, !tbaa !91
  %333 = sext i32 %332 to i64
  %334 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %333) #5
  %335 = load i32, ptr %334, align 4, !tbaa !91
  %336 = sub nsw i32 %331, %335
  store i32 %336, ptr %35, align 4, !tbaa !91
  %337 = load i32, ptr %34, align 4, !tbaa !91
  %338 = sext i32 %337 to i64
  %339 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %338) #5
  %340 = load i32, ptr %339, align 4, !tbaa !91
  %341 = sub nsw i32 %340, 1
  store i32 %341, ptr %339, align 4, !tbaa !91
  %342 = load i32, ptr %32, align 4, !tbaa !91
  %343 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 3
  %344 = load i32, ptr %35, align 4, !tbaa !91
  %345 = sext i32 %344 to i64
  %346 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIijESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %343, i64 noundef %345) #5
  %347 = getelementptr inbounds %"struct.std::pair", ptr %346, i32 0, i32 0
  store i32 %342, ptr %347, align 4, !tbaa !100
  %348 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 3
  %349 = load i32, ptr %33, align 4, !tbaa !91
  %350 = sext i32 %349 to i64
  %351 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIijESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %348, i64 noundef %350) #5
  %352 = getelementptr inbounds %"struct.std::pair", ptr %351, i32 0, i32 1
  %353 = load i32, ptr %352, align 4, !tbaa !94
  %354 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 3
  %355 = load i32, ptr %35, align 4, !tbaa !91
  %356 = sext i32 %355 to i64
  %357 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIijESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %354, i64 noundef %356) #5
  %358 = getelementptr inbounds %"struct.std::pair", ptr %357, i32 0, i32 1
  store i32 %353, ptr %358, align 4, !tbaa !94
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  br label %359

359:                                              ; preds = %315
  %360 = load i32, ptr %33, align 4, !tbaa !91
  %361 = add nsw i32 %360, 1
  store i32 %361, ptr %33, align 4, !tbaa !91
  br label %305, !llvm.loop !101

362:                                              ; preds = %314
  br label %363

363:                                              ; preds = %362
  %364 = load i32, ptr %32, align 4, !tbaa !91
  %365 = add nsw i32 %364, 1
  store i32 %365, ptr %32, align 4, !tbaa !91
  br label %289, !llvm.loop !102

366:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #5
  %367 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 31
  %368 = load i32, ptr %367, align 4, !tbaa !87
  %369 = add nsw i32 %368, 1
  store i32 %369, ptr %36, align 4, !tbaa !91
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  store i32 0, ptr %37, align 4, !tbaa !91
  br label %370

370:                                              ; preds = %479, %366
  %371 = load i32, ptr %37, align 4, !tbaa !91
  %372 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 31
  %373 = load i32, ptr %372, align 4, !tbaa !87
  %374 = icmp slt i32 %371, %373
  br i1 %374, label %376, label %375

375:                                              ; preds = %370
  store i32 17, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  br label %483

376:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 20, ptr %38) #5
  %377 = load ptr, ptr %5, align 8, !tbaa !5
  %378 = getelementptr inbounds %class.HighsLp, ptr %377, i32 0, i32 2
  %379 = load i32, ptr %37, align 4, !tbaa !91
  %380 = sext i32 %379 to i64
  %381 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %378, i64 noundef %380) #5
  %382 = load double, ptr %381, align 8, !tbaa !9
  %383 = invoke noundef i32 @_ZN19HighsMatrixColoring5colorEd(ptr noundef nonnull align 8 dereferenceable(56) %11, double noundef %382)
          to label %384 unwind label %463

384:                                              ; preds = %376
  %385 = getelementptr inbounds %struct.MatrixColumn, ptr %38, i32 0, i32 0
  store i32 %383, ptr %385, align 4, !tbaa !103
  %386 = load ptr, ptr %5, align 8, !tbaa !5
  %387 = getelementptr inbounds %class.HighsLp, ptr %386, i32 0, i32 3
  %388 = load i32, ptr %37, align 4, !tbaa !91
  %389 = sext i32 %388 to i64
  %390 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %387, i64 noundef %389) #5
  %391 = load double, ptr %390, align 8, !tbaa !9
  %392 = invoke noundef i32 @_ZN19HighsMatrixColoring5colorEd(ptr noundef nonnull align 8 dereferenceable(56) %11, double noundef %391)
          to label %393 unwind label %463

393:                                              ; preds = %384
  %394 = getelementptr inbounds %struct.MatrixColumn, ptr %38, i32 0, i32 1
  store i32 %392, ptr %394, align 4, !tbaa !105
  %395 = load ptr, ptr %5, align 8, !tbaa !5
  %396 = getelementptr inbounds %class.HighsLp, ptr %395, i32 0, i32 4
  %397 = load i32, ptr %37, align 4, !tbaa !91
  %398 = sext i32 %397 to i64
  %399 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %396, i64 noundef %398) #5
  %400 = load double, ptr %399, align 8, !tbaa !9
  %401 = invoke noundef i32 @_ZN19HighsMatrixColoring5colorEd(ptr noundef nonnull align 8 dereferenceable(56) %11, double noundef %400)
          to label %402 unwind label %463

402:                                              ; preds = %393
  %403 = getelementptr inbounds %struct.MatrixColumn, ptr %38, i32 0, i32 2
  store i32 %401, ptr %403, align 4, !tbaa !106
  %404 = load ptr, ptr %5, align 8, !tbaa !5
  %405 = getelementptr inbounds %class.HighsLp, ptr %404, i32 0, i32 16
  %406 = load i32, ptr %37, align 4, !tbaa !91
  %407 = sext i32 %406 to i64
  %408 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %405, i64 noundef %407) #5
  %409 = load i8, ptr %408, align 1, !tbaa !107
  %410 = zext i8 %409 to i32
  %411 = getelementptr inbounds %struct.MatrixColumn, ptr %38, i32 0, i32 3
  store i32 %410, ptr %411, align 4, !tbaa !109
  %412 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %413 = load i32, ptr %37, align 4, !tbaa !91
  %414 = add nsw i32 %413, 1
  %415 = sext i32 %414 to i64
  %416 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %412, i64 noundef %415) #5
  %417 = load i32, ptr %416, align 4, !tbaa !91
  %418 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %419 = load i32, ptr %37, align 4, !tbaa !91
  %420 = sext i32 %419 to i64
  %421 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %418, i64 noundef %420) #5
  %422 = load i32, ptr %421, align 4, !tbaa !91
  %423 = sub nsw i32 %417, %422
  %424 = getelementptr inbounds %struct.MatrixColumn, ptr %38, i32 0, i32 4
  store i32 %423, ptr %424, align 4, !tbaa !110
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #5
  %425 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN14HighsHashTableI12MatrixColumniEixERKS0_(ptr noundef nonnull align 8 dereferenceable(40) %7, ptr noundef nonnull align 4 dereferenceable(20) %38)
          to label %426 unwind label %467

426:                                              ; preds = %402
  store ptr %425, ptr %39, align 8, !tbaa !5
  %427 = load ptr, ptr %39, align 8, !tbaa !5
  %428 = load i32, ptr %427, align 4, !tbaa !91
  %429 = icmp eq i32 %428, 0
  br i1 %429, label %430, label %472

430:                                              ; preds = %426
  %431 = invoke noundef i64 @_ZNK14HighsHashTableI12MatrixColumniE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %7)
          to label %432 unwind label %467

432:                                              ; preds = %430
  %433 = trunc i64 %431 to i32
  %434 = load ptr, ptr %39, align 8, !tbaa !5
  store i32 %433, ptr %434, align 4, !tbaa !91
  %435 = load ptr, ptr %5, align 8, !tbaa !5
  %436 = getelementptr inbounds %class.HighsLp, ptr %435, i32 0, i32 3
  %437 = load i32, ptr %37, align 4, !tbaa !91
  %438 = sext i32 %437 to i64
  %439 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %436, i64 noundef %438) #5
  %440 = load double, ptr %439, align 8, !tbaa !9
  %441 = fcmp une double %440, 0.000000e+00
  br i1 %441, label %458, label %442

442:                                              ; preds = %432
  %443 = load ptr, ptr %5, align 8, !tbaa !5
  %444 = getelementptr inbounds %class.HighsLp, ptr %443, i32 0, i32 4
  %445 = load i32, ptr %37, align 4, !tbaa !91
  %446 = sext i32 %445 to i64
  %447 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %444, i64 noundef %446) #5
  %448 = load double, ptr %447, align 8, !tbaa !9
  %449 = fcmp une double %448, 1.000000e+00
  br i1 %449, label %458, label %450

450:                                              ; preds = %442
  %451 = load ptr, ptr %5, align 8, !tbaa !5
  %452 = getelementptr inbounds %class.HighsLp, ptr %451, i32 0, i32 16
  %453 = load i32, ptr %37, align 4, !tbaa !91
  %454 = sext i32 %453 to i64
  %455 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %452, i64 noundef %454) #5
  %456 = load i8, ptr %455, align 1, !tbaa !107
  %457 = icmp eq i8 %456, 0
  br i1 %457, label %458, label %471

458:                                              ; preds = %450, %442, %432
  %459 = load i32, ptr %36, align 4, !tbaa !91
  %460 = load ptr, ptr %39, align 8, !tbaa !5
  %461 = load i32, ptr %460, align 4, !tbaa !91
  %462 = add nsw i32 %461, %459
  store i32 %462, ptr %460, align 4, !tbaa !91
  br label %471

463:                                              ; preds = %393, %384, %376
  %464 = landingpad { ptr, i32 }
          cleanup
  %465 = extractvalue { ptr, i32 } %464, 0
  store ptr %465, ptr %9, align 8
  %466 = extractvalue { ptr, i32 } %464, 1
  store i32 %466, ptr %10, align 4
  br label %482

467:                                              ; preds = %430, %402
  %468 = landingpad { ptr, i32 }
          cleanup
  %469 = extractvalue { ptr, i32 } %468, 0
  store ptr %469, ptr %9, align 8
  %470 = extractvalue { ptr, i32 } %468, 1
  store i32 %470, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  br label %482

471:                                              ; preds = %458, %450
  br label %472

472:                                              ; preds = %471, %426
  %473 = load ptr, ptr %39, align 8, !tbaa !5
  %474 = load i32, ptr %473, align 4, !tbaa !91
  %475 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 7
  %476 = load i32, ptr %37, align 4, !tbaa !91
  %477 = sext i32 %476 to i64
  %478 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %475, i64 noundef %477) #5
  store i32 %474, ptr %478, align 4, !tbaa !91
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 20, ptr %38) #5
  br label %479

479:                                              ; preds = %472
  %480 = load i32, ptr %37, align 4, !tbaa !91
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr %37, align 4, !tbaa !91
  br label %370, !llvm.loop !111

482:                                              ; preds = %467, %463
  call void @llvm.lifetime.end.p0(i64 20, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  br label %658

483:                                              ; preds = %375
  %484 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 31
  %485 = load i32, ptr %484, align 4, !tbaa !87
  %486 = mul nsw i32 2, %485
  %487 = add nsw i32 %486, 1
  store i32 %487, ptr %36, align 4, !tbaa !91
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #5
  store i32 0, ptr %40, align 4, !tbaa !91
  br label %488

488:                                              ; preds = %562, %483
  %489 = load i32, ptr %40, align 4, !tbaa !91
  %490 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 32
  %491 = load i32, ptr %490, align 8, !tbaa !89
  %492 = icmp slt i32 %489, %491
  br i1 %492, label %494, label %493

493:                                              ; preds = %488
  store i32 20, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  br label %566

494:                                              ; preds = %488
  call void @llvm.lifetime.start.p0(i64 12, ptr %41) #5
  %495 = load ptr, ptr %5, align 8, !tbaa !5
  %496 = getelementptr inbounds %class.HighsLp, ptr %495, i32 0, i32 5
  %497 = load i32, ptr %40, align 4, !tbaa !91
  %498 = sext i32 %497 to i64
  %499 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %496, i64 noundef %498) #5
  %500 = load double, ptr %499, align 8, !tbaa !9
  %501 = invoke noundef i32 @_ZN19HighsMatrixColoring5colorEd(ptr noundef nonnull align 8 dereferenceable(56) %11, double noundef %500)
          to label %502 unwind label %542

502:                                              ; preds = %494
  %503 = getelementptr inbounds %struct.MatrixRow, ptr %41, i32 0, i32 0
  store i32 %501, ptr %503, align 4, !tbaa !112
  %504 = load ptr, ptr %5, align 8, !tbaa !5
  %505 = getelementptr inbounds %class.HighsLp, ptr %504, i32 0, i32 6
  %506 = load i32, ptr %40, align 4, !tbaa !91
  %507 = sext i32 %506 to i64
  %508 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %505, i64 noundef %507) #5
  %509 = load double, ptr %508, align 8, !tbaa !9
  %510 = invoke noundef i32 @_ZN19HighsMatrixColoring5colorEd(ptr noundef nonnull align 8 dereferenceable(56) %11, double noundef %509)
          to label %511 unwind label %542

511:                                              ; preds = %502
  %512 = getelementptr inbounds %struct.MatrixRow, ptr %41, i32 0, i32 1
  store i32 %510, ptr %512, align 4, !tbaa !114
  %513 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %514 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 31
  %515 = load i32, ptr %514, align 4, !tbaa !87
  %516 = load i32, ptr %40, align 4, !tbaa !91
  %517 = add nsw i32 %515, %516
  %518 = add nsw i32 %517, 1
  %519 = sext i32 %518 to i64
  %520 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %513, i64 noundef %519) #5
  %521 = load i32, ptr %520, align 4, !tbaa !91
  %522 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 1
  %523 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 31
  %524 = load i32, ptr %523, align 4, !tbaa !87
  %525 = load i32, ptr %40, align 4, !tbaa !91
  %526 = add nsw i32 %524, %525
  %527 = sext i32 %526 to i64
  %528 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %522, i64 noundef %527) #5
  %529 = load i32, ptr %528, align 4, !tbaa !91
  %530 = sub nsw i32 %521, %529
  %531 = getelementptr inbounds %struct.MatrixRow, ptr %41, i32 0, i32 2
  store i32 %530, ptr %531, align 4, !tbaa !115
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #5
  %532 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN14HighsHashTableI9MatrixRowiEixERKS0_(ptr noundef nonnull align 8 dereferenceable(40) %8, ptr noundef nonnull align 4 dereferenceable(12) %41)
          to label %533 unwind label %546

533:                                              ; preds = %511
  store ptr %532, ptr %42, align 8, !tbaa !5
  %534 = load ptr, ptr %42, align 8, !tbaa !5
  %535 = load i32, ptr %534, align 4, !tbaa !91
  %536 = icmp eq i32 %535, 0
  br i1 %536, label %537, label %550

537:                                              ; preds = %533
  %538 = invoke noundef i64 @_ZNK14HighsHashTableI9MatrixRowiE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %8)
          to label %539 unwind label %546

539:                                              ; preds = %537
  %540 = trunc i64 %538 to i32
  %541 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 %540, ptr %541, align 4, !tbaa !91
  br label %550

542:                                              ; preds = %502, %494
  %543 = landingpad { ptr, i32 }
          cleanup
  %544 = extractvalue { ptr, i32 } %543, 0
  store ptr %544, ptr %9, align 8
  %545 = extractvalue { ptr, i32 } %543, 1
  store i32 %545, ptr %10, align 4
  br label %565

546:                                              ; preds = %537, %511
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %9, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  br label %565

550:                                              ; preds = %539, %533
  %551 = load i32, ptr %36, align 4, !tbaa !91
  %552 = load ptr, ptr %42, align 8, !tbaa !5
  %553 = load i32, ptr %552, align 4, !tbaa !91
  %554 = add nsw i32 %551, %553
  %555 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 7
  %556 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 31
  %557 = load i32, ptr %556, align 4, !tbaa !87
  %558 = load i32, ptr %40, align 4, !tbaa !91
  %559 = add nsw i32 %557, %558
  %560 = sext i32 %559 to i64
  %561 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %555, i64 noundef %560) #5
  store i32 %554, ptr %561, align 4, !tbaa !91
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %41) #5
  br label %562

562:                                              ; preds = %550
  %563 = load i32, ptr %40, align 4, !tbaa !91
  %564 = add nsw i32 %563, 1
  store i32 %564, ptr %40, align 4, !tbaa !91
  br label %488, !llvm.loop !116

565:                                              ; preds = %546, %542
  call void @llvm.lifetime.end.p0(i64 12, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  br label %658

566:                                              ; preds = %493
  %567 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 5
  %568 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 33
  %569 = load i32, ptr %568, align 4, !tbaa !90
  %570 = sext i32 %569 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %567, i64 noundef %570)
          to label %571 unwind label %608

571:                                              ; preds = %566
  %572 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 5
  %573 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %572) #5
  %574 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %43, i32 0, i32 0
  store ptr %573, ptr %574, align 8
  %575 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 5
  %576 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %575) #5
  %577 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %44, i32 0, i32 0
  store ptr %576, ptr %577, align 8
  %578 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %43, i32 0, i32 0
  %579 = load ptr, ptr %578, align 8
  %580 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %44, i32 0, i32 0
  %581 = load ptr, ptr %580, align 8
  invoke void @_ZSt4iotaIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiEvT_S7_T0_(ptr %579, ptr %581, i32 noundef 0)
          to label %582 unwind label %608

582:                                              ; preds = %571
  %583 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 5
  %584 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %583) #5
  %585 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %45, i32 0, i32 0
  store ptr %584, ptr %585, align 8
  %586 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 5
  %587 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %586) #5
  %588 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %46, i32 0, i32 0
  store ptr %587, ptr %588, align 8
  %589 = getelementptr inbounds %class.anon.231, ptr %47, i32 0, i32 0
  store ptr %52, ptr %589, align 8, !tbaa !117
  %590 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %45, i32 0, i32 0
  %591 = load ptr, ptr %590, align 8
  %592 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %46, i32 0, i32 0
  %593 = load ptr, ptr %592, align 8
  %594 = getelementptr inbounds %class.anon.231, ptr %47, i32 0, i32 0
  %595 = load ptr, ptr %594, align 8
  invoke void @"_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN22HighsSymmetryDetection16loadModelAsGraphERK7HighsLpdE3$_1EvT_SC_T0_"(ptr %591, ptr %593, ptr %595)
          to label %596 unwind label %608

596:                                              ; preds = %582
  %597 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 6
  %598 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 33
  %599 = load i32, ptr %598, align 4, !tbaa !90
  %600 = sext i32 %599 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %597, i64 noundef %600)
          to label %601 unwind label %608

601:                                              ; preds = %596
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #5
  store i32 0, ptr %48, align 4, !tbaa !91
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #5
  store i32 0, ptr %49, align 4, !tbaa !91
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #5
  store i32 0, ptr %50, align 4, !tbaa !91
  br label %602

602:                                              ; preds = %648, %601
  %603 = load i32, ptr %50, align 4, !tbaa !91
  %604 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 33
  %605 = load i32, ptr %604, align 4, !tbaa !90
  %606 = icmp slt i32 %603, %605
  br i1 %606, label %612, label %607

607:                                              ; preds = %602
  store i32 23, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  br label %651

608:                                              ; preds = %596, %582, %571, %566
  %609 = landingpad { ptr, i32 }
          cleanup
  %610 = extractvalue { ptr, i32 } %609, 0
  store ptr %610, ptr %9, align 8
  %611 = extractvalue { ptr, i32 } %609, 1
  store i32 %611, ptr %10, align 4
  br label %658

612:                                              ; preds = %602
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #5
  %613 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 5
  %614 = load i32, ptr %50, align 4, !tbaa !91
  %615 = sext i32 %614 to i64
  %616 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %613, i64 noundef %615) #5
  %617 = load i32, ptr %616, align 4, !tbaa !91
  store i32 %617, ptr %51, align 4, !tbaa !91
  %618 = load i32, ptr %49, align 4, !tbaa !91
  %619 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 7
  %620 = load i32, ptr %51, align 4, !tbaa !91
  %621 = sext i32 %620 to i64
  %622 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %619, i64 noundef %621) #5
  %623 = load i32, ptr %622, align 4, !tbaa !91
  %624 = icmp ne i32 %618, %623
  br i1 %624, label %625, label %637

625:                                              ; preds = %612
  %626 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 7
  %627 = load i32, ptr %51, align 4, !tbaa !91
  %628 = sext i32 %627 to i64
  %629 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %626, i64 noundef %628) #5
  %630 = load i32, ptr %629, align 4, !tbaa !91
  store i32 %630, ptr %49, align 4, !tbaa !91
  %631 = load i32, ptr %50, align 4, !tbaa !91
  %632 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 6
  %633 = load i32, ptr %48, align 4, !tbaa !91
  %634 = sext i32 %633 to i64
  %635 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %632, i64 noundef %634) #5
  store i32 %631, ptr %635, align 4, !tbaa !91
  %636 = load i32, ptr %50, align 4, !tbaa !91
  store i32 %636, ptr %48, align 4, !tbaa !91
  br label %637

637:                                              ; preds = %625, %612
  %638 = load i32, ptr %48, align 4, !tbaa !91
  %639 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 7
  %640 = load i32, ptr %51, align 4, !tbaa !91
  %641 = sext i32 %640 to i64
  %642 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %639, i64 noundef %641) #5
  store i32 %638, ptr %642, align 4, !tbaa !91
  %643 = load i32, ptr %48, align 4, !tbaa !91
  %644 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 6
  %645 = load i32, ptr %50, align 4, !tbaa !91
  %646 = sext i32 %645 to i64
  %647 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %644, i64 noundef %646) #5
  store i32 %643, ptr %647, align 4, !tbaa !91
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  br label %648

648:                                              ; preds = %637
  %649 = load i32, ptr %50, align 4, !tbaa !91
  %650 = add nsw i32 %649, 1
  store i32 %650, ptr %50, align 4, !tbaa !91
  br label %602, !llvm.loop !119

651:                                              ; preds = %607
  %652 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 33
  %653 = load i32, ptr %652, align 4, !tbaa !90
  %654 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %52, i32 0, i32 6
  %655 = load i32, ptr %48, align 4, !tbaa !91
  %656 = sext i32 %655 to i64
  %657 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %654, i64 noundef %656) #5
  store i32 %653, ptr %657, align 4, !tbaa !91
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  call void @_ZN19HighsMatrixColoringD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %11) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %11) #5
  call void @_ZN14HighsHashTableI9MatrixRowiED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr %8) #5
  call void @_ZN14HighsHashTableI12MatrixColumniED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %7) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr %7) #5
  ret void

658:                                              ; preds = %608, %565, %482
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  br label %659

659:                                              ; preds = %658, %295
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  br label %660

660:                                              ; preds = %659, %231
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #5
  br label %661

661:                                              ; preds = %660, %182
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #5
  br label %662

662:                                              ; preds = %661, %178
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  br label %663

663:                                              ; preds = %662, %174
  call void @_ZN19HighsMatrixColoringD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %11) #5
  br label %664

664:                                              ; preds = %663, %170
  call void @llvm.lifetime.end.p0(i64 56, ptr %11) #5
  call void @_ZN14HighsHashTableI9MatrixRowiED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #5
  br label %665

665:                                              ; preds = %664, %166
  call void @llvm.lifetime.end.p0(i64 40, ptr %8) #5
  call void @_ZN14HighsHashTableI12MatrixColumniED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %7) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr %7) #5
  br label %666

666:                                              ; preds = %665
  %667 = load ptr, ptr %9, align 8
  %668 = load i32, ptr %10, align 4
  %669 = insertvalue { ptr, i32 } poison, ptr %667, 0
  %670 = insertvalue { ptr, i32 } %669, i32 %668, 1
  resume { ptr, i32 } %670
}

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden ptr @"_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS1_IPSt4pairIijES4_IS9_SaIS9_EEEEZN22HighsSymmetryDetection16loadModelAsGraphERK7HighsLpdE3$_0ET0_T_SK_SJ_T1_"(ptr, ptr, ptr, ptr) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS1_IPiS6_EEET0_T_SB_SA_(ptr, ptr, ptr) #3

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN14HighsHashTableI12MatrixColumniEixERKS0_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(20)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN14HighsHashTableI9MatrixRowiEixERKS0_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(12)) #1 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN22HighsSymmetryDetection16loadModelAsGraphERK7HighsLpdE3$_1EvT_SC_T0_"(ptr, ptr, ptr) #3

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"_ZTS22HighsSymmetryDetection", !6, i64 0, !13, i64 8, !13, i64 32, !17, i64 56, !17, i64 80, !13, i64 104, !13, i64 128, !13, i64 152, !13, i64 176, !13, i64 200, !13, i64 224, !13, i64 248, !13, i64 272, !21, i64 296, !13, i64 320, !25, i64 344, !13, i64 368, !13, i64 392, !29, i64 416, !29, i64 440, !29, i64 464, !13, i64 488, !13, i64 512, !33, i64 536, !47, i64 576, !47, i64 616, !54, i64 656, !54, i64 660, !54, i64 664, !54, i64 668, !54, i64 672, !54, i64 676, !54, i64 680, !54, i64 684, !54, i64 688, !55, i64 696}
!13 = !{!"_ZTSSt6vectorIiSaIiEE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!17 = !{!"_ZTSSt6vectorISt4pairIijESaIS1_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseISt4pairIijESaIS1_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseISt4pairIijESaIS1_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseISt4pairIijESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!21 = !{!"_ZTSSt6vectorIhSaIhEE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!25 = !{!"_ZTSSt6vectorIPiSaIS0_EE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseIPiSaIS0_EE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIPiSaIS0_EE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIPiSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!29 = !{!"_ZTSSt6vectorIjSaIjEE", !30, i64 0}
!30 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!33 = !{!"_ZTS14HighsHashTableIijE", !34, i64 0, !40, i64 8, !46, i64 16, !46, i64 24, !46, i64 32}
!34 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEE", !35, i64 0}
!35 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterELb1ELb1EE", !36, i64 0}
!36 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEE", !37, i64 0}
!37 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEEE", !38, i64 0}
!38 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEEE", !39, i64 0}
!39 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryIijELb0EE", !6, i64 0}
!40 = !{!"_ZTSSt10unique_ptrIA_hSt14default_deleteIS0_EE", !41, i64 0}
!41 = !{!"_ZTSSt15__uniq_ptr_dataIhSt14default_deleteIA_hELb1ELb1EE", !42, i64 0}
!42 = !{!"_ZTSSt15__uniq_ptr_implIhSt14default_deleteIA_hEE", !43, i64 0}
!43 = !{!"_ZTSSt5tupleIJPhSt14default_deleteIA_hEEE", !44, i64 0}
!44 = !{!"_ZTSSt11_Tuple_implILm0EJPhSt14default_deleteIA_hEEE", !45, i64 0}
!45 = !{!"_ZTSSt10_Head_baseILm0EPhLb0EE", !6, i64 0}
!46 = !{!"long", !7, i64 0}
!47 = !{!"_ZTS14HighsHashTableISt5tupleIJiijEEvE", !48, i64 0, !40, i64 8, !46, i64 16, !46, i64 24, !46, i64 32}
!48 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterEE", !49, i64 0}
!49 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterELb1ELb1EE", !50, i64 0}
!50 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterEE", !51, i64 0}
!51 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIS_IJiijEEvEN14HighsHashTableIS1_vE12OpNewDeleterEEE", !52, i64 0}
!52 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterEEE", !53, i64 0}
!53 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryISt5tupleIJiijEEvELb0EE", !6, i64 0}
!54 = !{!"int", !7, i64 0}
!55 = !{!"_ZTSSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE", !56, i64 0}
!56 = !{!"_ZTSSt12_Vector_baseIN22HighsSymmetryDetection4NodeESaIS1_EE", !57, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseIN22HighsSymmetryDetection4NodeESaIS1_EE12_Vector_implE", !58, i64 0}
!58 = !{!"_ZTSNSt12_Vector_baseIN22HighsSymmetryDetection4NodeESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!59 = !{!60, !54, i64 0}
!60 = !{!"_ZTS7HighsLp", !54, i64 0, !54, i64 4, !61, i64 8, !61, i64 32, !61, i64 56, !61, i64 80, !61, i64 104, !65, i64 128, !67, i64 240, !10, i64 248, !68, i64 256, !68, i64 288, !54, i64 320, !54, i64 324, !70, i64 328, !70, i64 352, !74, i64 376, !78, i64 400, !78, i64 456, !54, i64 512, !54, i64 516, !84, i64 520, !85, i64 592, !85, i64 593, !54, i64 596, !85, i64 600, !86, i64 608}
!61 = !{!"_ZTSSt6vectorIdSaIdEE", !62, i64 0}
!62 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!65 = !{!"_ZTS17HighsSparseMatrix", !66, i64 0, !54, i64 4, !54, i64 8, !13, i64 16, !13, i64 40, !13, i64 64, !61, i64 88}
!66 = !{!"_ZTS12MatrixFormat", !7, i64 0}
!67 = !{!"_ZTS8ObjSense", !7, i64 0}
!68 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !69, i64 0, !46, i64 8, !7, i64 16}
!69 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!70 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !71, i64 0}
!71 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !72, i64 0}
!72 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !73, i64 0}
!73 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!74 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !75, i64 0}
!75 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !76, i64 0}
!76 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !77, i64 0}
!77 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!78 = !{!"_ZTS13HighsNameHash", !79, i64 0}
!79 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !80, i64 0}
!80 = !{!"_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, !46, i64 8, !81, i64 16, !46, i64 24, !82, i64 32, !6, i64 48}
!81 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!82 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !83, i64 0, !46, i64 8}
!83 = !{!"float", !7, i64 0}
!84 = !{!"_ZTS10HighsScale", !54, i64 0, !85, i64 4, !54, i64 8, !54, i64 12, !10, i64 16, !61, i64 24, !61, i64 48}
!85 = !{!"bool", !7, i64 0}
!86 = !{!"_ZTS11HighsLpMods", !13, i64 0, !13, i64 24, !61, i64 48, !61, i64 72, !74, i64 96, !13, i64 120, !61, i64 144, !13, i64 168, !61, i64 192, !13, i64 216, !61, i64 240, !61, i64 264, !61, i64 288}
!87 = !{!12, !54, i64 676}
!88 = !{!60, !54, i64 4}
!89 = !{!12, !54, i64 680}
!90 = !{!12, !54, i64 684}
!91 = !{!54, !54, i64 0}
!92 = !{!93, !6, i64 0}
!93 = !{!"_ZTSZN22HighsSymmetryDetection16loadModelAsGraphERK7HighsLpdE3$_0", !6, i64 0}
!94 = !{!95, !54, i64 4}
!95 = !{!"_ZTSSt4pairIijE", !54, i64 0, !54, i64 4}
!96 = distinct !{!96, !97}
!97 = !{!"llvm.loop.mustprogress"}
!98 = distinct !{!98, !97}
!99 = distinct !{!99, !97}
!100 = !{!95, !54, i64 0}
!101 = distinct !{!101, !97}
!102 = distinct !{!102, !97}
!103 = !{!104, !54, i64 0}
!104 = !{!"_ZTS12MatrixColumn", !54, i64 0, !54, i64 4, !54, i64 8, !54, i64 12, !54, i64 16}
!105 = !{!104, !54, i64 4}
!106 = !{!104, !54, i64 8}
!107 = !{!108, !108, i64 0}
!108 = !{!"_ZTS12HighsVarType", !7, i64 0}
!109 = !{!104, !54, i64 12}
!110 = !{!104, !54, i64 16}
!111 = distinct !{!111, !97}
!112 = !{!113, !54, i64 0}
!113 = !{!"_ZTS9MatrixRow", !54, i64 0, !54, i64 4, !54, i64 8}
!114 = !{!113, !54, i64 4}
!115 = !{!113, !54, i64 8}
!116 = distinct !{!116, !97}
!117 = !{!118, !6, i64 0}
!118 = !{!"_ZTSZN22HighsSymmetryDetection16loadModelAsGraphERK7HighsLpdE3$_1", !6, i64 0}
!119 = distinct !{!119, !97}


; 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.HighsHashTable.207 = type { %"class.std::unique_ptr.208", %"class.std::unique_ptr.25", i64, i64, i64 }
%"class.std::unique_ptr.208" = type { %"struct.std::__uniq_ptr_data.209" }
%"struct.std::__uniq_ptr_data.209" = type { %"class.std::__uniq_ptr_impl.210" }
%"class.std::__uniq_ptr_impl.210" = type { %"class.std::tuple.211" }
%"class.std::tuple.211" = type { %"struct.std::_Tuple_impl.212" }
%"struct.std::_Tuple_impl.212" = type { %"struct.std::_Head_base.215" }
%"struct.std::_Head_base.215" = type { ptr }
%"class.std::unique_ptr.25" = type { %"struct.std::__uniq_ptr_data.26" }
%"struct.std::__uniq_ptr_data.26" = type { %"class.std::__uniq_ptr_impl.27" }
%"class.std::__uniq_ptr_impl.27" = type { %"class.std::tuple.28" }
%"class.std::tuple.28" = type { %"struct.std::_Tuple_impl.29" }
%"struct.std::_Tuple_impl.29" = type { %"struct.std::_Head_base.32" }
%"struct.std::_Head_base.32" = type { ptr }
%class.HighsHashTable.216 = type { %"class.std::unique_ptr.217", %"class.std::unique_ptr.25", i64, i64, i64 }
%"class.std::unique_ptr.217" = type { %"struct.std::__uniq_ptr_data.218" }
%"struct.std::__uniq_ptr_data.218" = type { %"class.std::__uniq_ptr_impl.219" }
%"class.std::__uniq_ptr_impl.219" = type { %"class.std::tuple.220" }
%"class.std::tuple.220" = type { %"struct.std::_Tuple_impl.221" }
%"struct.std::_Tuple_impl.221" = type { %"struct.std::_Head_base.224" }
%"struct.std::_Head_base.224" = type { ptr }
%class.HighsMatrixColoring = type { %"class.std::map", double }
%"class.std::map" = type { %"class.std::_Rb_tree.225" }
%"class.std::_Rb_tree.225" = type { %"struct.std::_Rb_tree<double, std::pair<const double, unsigned int>, std::_Select1st<std::pair<const double, unsigned int>>, std::less<double>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<double, std::pair<const double, unsigned int>, std::_Select1st<std::pair<const double, unsigned int>>, std::less<double>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector" = 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.std::allocator.0" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.47" = type { ptr }
%struct.MatrixColumn = type { i32, i32, i32, i32, i32 }
%struct.MatrixRow = type { i32, i32, i32 }

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZSt4iotaIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiEvT_S7_T0_(ptr, ptr, i32 noundef) local_unnamed_addr #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 #2 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 #2 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN22HighsSymmetryDetection16loadModelAsGraphERK7HighsLpd(ptr noundef nonnull align 8 dereferenceable(720) %0, ptr noundef nonnull align 8 dereferenceable(920) %1, double noundef %2) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %class.HighsHashTable.207, align 8
  %5 = alloca %class.HighsHashTable.216, align 8
  %6 = alloca %class.HighsMatrixColoring, align 8
  %7 = alloca %"class.std::vector", align 8
  %8 = alloca %"class.std::allocator.0", align 1
  %9 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %10 = alloca %struct.MatrixColumn, align 4
  %11 = alloca %struct.MatrixRow, align 4
  store ptr %1, ptr %0, align 8, !tbaa !5
  %12 = load i32, ptr %1, align 8, !tbaa !56
  %13 = getelementptr inbounds i8, ptr %0, i64 676
  store i32 %12, ptr %13, align 4, !tbaa !85
  %14 = getelementptr inbounds i8, ptr %1, i64 4
  %15 = load i32, ptr %14, align 4, !tbaa !86
  %16 = getelementptr inbounds i8, ptr %0, i64 680
  store i32 %15, ptr %16, align 8, !tbaa !87
  %17 = add nsw i32 %15, %12
  %18 = getelementptr inbounds i8, ptr %0, i64 684
  store i32 %17, ptr %18, align 4, !tbaa !88
  %19 = getelementptr inbounds i8, ptr %0, i64 296
  %20 = sext i32 %17 to i64
  tail call void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %20)
  %21 = getelementptr inbounds i8, ptr %0, i64 152
  %22 = load i32, ptr %18, align 4, !tbaa !88
  %23 = sext i32 %22 to i64
  tail call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %23)
  %24 = getelementptr inbounds i8, ptr %0, i64 320
  %25 = load i32, ptr %18, align 4, !tbaa !88
  %26 = sext i32 %25 to i64
  tail call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %26)
  %27 = getelementptr inbounds i8, ptr %0, i64 416
  %28 = load i32, ptr %18, align 4, !tbaa !88
  %29 = sext i32 %28 to i64
  tail call void @_ZNSt6vectorIjSaIjEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %29)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4) #5
  call void @_ZN14HighsHashTableI12MatrixColumniEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %4)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #5
  invoke void @_ZN14HighsHashTableI9MatrixRowiEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %5)
          to label %30 unwind label %71

30:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %6) #5
  invoke void @_ZN19HighsMatrixColoringC2Ed(ptr noundef nonnull align 8 dereferenceable(56) %6, double noundef %2)
          to label %31 unwind label %73

31:                                               ; preds = %30
  %32 = getelementptr inbounds i8, ptr %0, i64 80
  %33 = load i32, ptr %18, align 4, !tbaa !88
  %34 = sext i32 %33 to i64
  invoke void @_ZNSt6vectorISt4pairIijESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %34)
          to label %35 unwind label %75

35:                                               ; preds = %31
  %36 = getelementptr inbounds i8, ptr %1, i64 192
  %37 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %36) #5
  %38 = trunc i64 %37 to i32
  %39 = getelementptr inbounds i8, ptr %0, i64 56
  %40 = shl nsw i32 %38, 1
  %41 = sext i32 %40 to i64
  invoke void @_ZNSt6vectorISt4pairIijESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %39, i64 noundef %41)
          to label %42 unwind label %77

42:                                               ; preds = %35
  %43 = call ptr @_ZNKSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %36) #5
  %44 = call ptr @_ZNKSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %36) #5
  %45 = call ptr @_ZNSt6vectorISt4pairIijESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %39) #5
  %46 = invoke ptr @"_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS1_IPSt4pairIijES4_IS9_SaIS9_EEEEZN22HighsSymmetryDetection16loadModelAsGraphERK7HighsLpdE3$_0ET0_T_SK_SJ_T1_"(ptr %43, ptr %44, ptr %45, ptr nonnull %0)
          to label %47 unwind label %77

47:                                               ; preds = %42
  %48 = getelementptr inbounds i8, ptr %0, i64 8
  %49 = load i32, ptr %18, align 4, !tbaa !88
  %50 = add nsw i32 %49, 1
  %51 = sext i32 %50 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %51)
          to label %52 unwind label %77

52:                                               ; preds = %47
  %53 = getelementptr inbounds i8, ptr %1, i64 144
  %54 = call ptr @_ZNKSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %53) #5
  %55 = call ptr @_ZNKSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %53) #5
  %56 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %48) #5
  %57 = invoke ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS1_IPiS6_EEET0_T_SB_SA_(ptr %54, ptr %55, ptr %56)
          to label %58 unwind label %77

58:                                               ; preds = %52
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #5
  %59 = load i32, ptr %16, align 8, !tbaa !87
  %60 = sext i32 %59 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #5
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %60, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %61 unwind label %79

61:                                               ; preds = %58
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #5
  %62 = load i32, ptr %13, align 4, !tbaa !85
  %63 = icmp sgt i32 %62, 0
  br i1 %63, label %.lr.ph163, label %.preheader151

.lr.ph163:                                        ; preds = %61
  %64 = getelementptr inbounds i8, ptr %1, i64 216
  br label %81

.loopexit152:                                     ; preds = %91, %81
  %65 = load i32, ptr %13, align 4, !tbaa !85
  %66 = sext i32 %65 to i64
  %67 = icmp slt i64 %indvars.iv.next200, %66
  br i1 %67, label %81, label %.preheader151, !llvm.loop !89

.preheader151:                                    ; preds = %.loopexit152, %61
  %68 = phi i32 [ %62, %61 ], [ %65, %.loopexit152 ]
  %69 = load i32, ptr %16, align 8, !tbaa !87
  %70 = icmp sgt i32 %69, 0
  br i1 %70, label %.lr.ph166, label %._crit_edge

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

73:                                               ; preds = %30
  %74 = landingpad { ptr, i32 }
          cleanup
  br label %319

75:                                               ; preds = %31
  %76 = landingpad { ptr, i32 }
          cleanup
  br label %318

77:                                               ; preds = %52, %47, %42, %35
  %78 = landingpad { ptr, i32 }
          cleanup
  br label %318

79:                                               ; preds = %58
  %80 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #5
  br label %317

81:                                               ; preds = %.lr.ph163, %.loopexit152
  %indvars.iv199 = phi i64 [ 0, %.lr.ph163 ], [ %indvars.iv.next200, %.loopexit152 ]
  %82 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %indvars.iv199) #5
  %83 = load i32, ptr %82, align 4, !tbaa !91
  %indvars.iv.next200 = add nuw nsw i64 %indvars.iv199, 1
  %84 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %indvars.iv.next200) #5
  %85 = load i32, ptr %84, align 4, !tbaa !91
  %86 = icmp slt i32 %83, %85
  br i1 %86, label %.lr.ph.preheader, label %.loopexit152

.lr.ph.preheader:                                 ; preds = %81
  %87 = sext i32 %83 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %91
  %indvars.iv = phi i64 [ %87, %.lr.ph.preheader ], [ %indvars.iv.next, %91 ]
  %88 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %64, i64 noundef %indvars.iv) #5
  %89 = load double, ptr %88, align 8, !tbaa !92
  %90 = invoke noundef i32 @_ZN19HighsMatrixColoring5colorEd(ptr noundef nonnull align 8 dereferenceable(56) %6, double noundef %89)
          to label %91 unwind label %104

91:                                               ; preds = %.lr.ph
  %92 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIijESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %39, i64 noundef %indvars.iv) #5
  %93 = getelementptr inbounds i8, ptr %92, i64 4
  store i32 %90, ptr %93, align 4, !tbaa !93
  %94 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %indvars.iv) #5
  %95 = load i32, ptr %94, align 4, !tbaa !91
  %96 = sext i32 %95 to i64
  %97 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %96) #5
  %98 = load i32, ptr %97, align 4, !tbaa !91
  %99 = add nsw i32 %98, 1
  store i32 %99, ptr %97, align 4, !tbaa !91
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %100 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %indvars.iv.next200) #5
  %101 = load i32, ptr %100, align 4, !tbaa !91
  %102 = sext i32 %101 to i64
  %103 = icmp slt i64 %indvars.iv.next, %102
  br i1 %103, label %.lr.ph, label %.loopexit152, !llvm.loop !95

104:                                              ; preds = %.lr.ph
  %105 = landingpad { ptr, i32 }
          cleanup
  br label %316

._crit_edge.loopexit:                             ; preds = %.lr.ph166
  %.pre = load i32, ptr %13, align 4, !tbaa !85
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %.preheader151
  %106 = phi i32 [ %68, %.preheader151 ], [ %.pre, %._crit_edge.loopexit ]
  %.0129.lcssa = phi i32 [ %38, %.preheader151 ], [ %121, %._crit_edge.loopexit ]
  %.lcssa158 = phi i32 [ %69, %.preheader151 ], [ %122, %._crit_edge.loopexit ]
  %107 = add nsw i32 %106, %.lcssa158
  %108 = sext i32 %107 to i64
  %109 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %108) #5
  store i32 %.0129.lcssa, ptr %109, align 4, !tbaa !91
  %110 = getelementptr inbounds i8, ptr %0, i64 32
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #5
  %111 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %48) #5
  store ptr %111, ptr %9, align 8
  %112 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %9, i64 noundef 1) #5
  %113 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %48) #5
  invoke void @_ZNSt6vectorIiSaIiEE6assignIN9__gnu_cxx17__normal_iteratorIPiS1_EEvEEvT_S7_(ptr noundef nonnull align 8 dereferenceable(24) %110, ptr %112, ptr %113)
          to label %125 unwind label %141

.lr.ph166:                                        ; preds = %.preheader151, %.lr.ph166
  %indvars.iv202 = phi i64 [ %indvars.iv.next203, %.lr.ph166 ], [ 0, %.preheader151 ]
  %.0129165 = phi i32 [ %121, %.lr.ph166 ], [ %38, %.preheader151 ]
  %114 = load i32, ptr %13, align 4, !tbaa !85
  %115 = trunc nuw nsw i64 %indvars.iv202 to i32
  %116 = add nsw i32 %114, %115
  %117 = sext i32 %116 to i64
  %118 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %117) #5
  store i32 %.0129165, ptr %118, align 4, !tbaa !91
  %119 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %indvars.iv202) #5
  %120 = load i32, ptr %119, align 4, !tbaa !91
  %121 = add nsw i32 %120, %.0129165
  %indvars.iv.next203 = add nuw nsw i64 %indvars.iv202, 1
  %122 = load i32, ptr %16, align 8, !tbaa !87
  %123 = sext i32 %122 to i64
  %124 = icmp slt i64 %indvars.iv.next203, %123
  br i1 %124, label %.lr.ph166, label %._crit_edge.loopexit, !llvm.loop !96

125:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  %126 = load i32, ptr %13, align 4, !tbaa !85
  %127 = icmp sgt i32 %126, 0
  br i1 %127, label %.lr.ph174, label %._crit_edge180

.loopexit:                                        ; preds = %.lr.ph170, %.lr.ph174
  %128 = load i32, ptr %13, align 4, !tbaa !85
  %129 = sext i32 %128 to i64
  %130 = icmp slt i64 %indvars.iv.next209, %129
  br i1 %130, label %.lr.ph174, label %._crit_edge175, !llvm.loop !97

._crit_edge175:                                   ; preds = %.loopexit
  %131 = add nsw i32 %128, 1
  %132 = icmp sgt i32 %128, 0
  br i1 %132, label %.lr.ph179, label %._crit_edge180

.lr.ph179:                                        ; preds = %._crit_edge175
  %133 = getelementptr inbounds i8, ptr %1, i64 8
  %134 = getelementptr inbounds i8, ptr %1, i64 32
  %135 = getelementptr inbounds i8, ptr %10, i64 4
  %136 = getelementptr inbounds i8, ptr %1, i64 56
  %137 = getelementptr inbounds i8, ptr %10, i64 8
  %138 = getelementptr inbounds i8, ptr %1, i64 376
  %139 = getelementptr inbounds i8, ptr %10, i64 12
  %140 = getelementptr inbounds i8, ptr %10, i64 16
  br label %184

141:                                              ; preds = %._crit_edge
  %142 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  br label %316

.lr.ph174:                                        ; preds = %125, %.loopexit
  %indvars.iv208 = phi i64 [ %indvars.iv.next209, %.loopexit ], [ 0, %125 ]
  %143 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %indvars.iv208) #5
  %144 = load i32, ptr %143, align 4, !tbaa !91
  %indvars.iv.next209 = add nuw nsw i64 %indvars.iv208, 1
  %145 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %indvars.iv.next209) #5
  %146 = load i32, ptr %145, align 4, !tbaa !91
  %147 = icmp slt i32 %144, %146
  br i1 %147, label %.lr.ph170.preheader, label %.loopexit

.lr.ph170.preheader:                              ; preds = %.lr.ph174
  %148 = sext i32 %144 to i64
  %149 = trunc nuw nsw i64 %indvars.iv208 to i32
  br label %.lr.ph170

.lr.ph170:                                        ; preds = %.lr.ph170.preheader, %.lr.ph170
  %indvars.iv205 = phi i64 [ %148, %.lr.ph170.preheader ], [ %indvars.iv.next206, %.lr.ph170 ]
  %150 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %indvars.iv205) #5
  %151 = load i32, ptr %150, align 4, !tbaa !91
  %152 = load i32, ptr %13, align 4, !tbaa !85
  %153 = add i32 %151, 1
  %154 = add i32 %153, %152
  %155 = sext i32 %154 to i64
  %156 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %155) #5
  %157 = load i32, ptr %156, align 4, !tbaa !91
  %158 = sext i32 %151 to i64
  %159 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %158) #5
  %160 = load i32, ptr %159, align 4, !tbaa !91
  %161 = sub nsw i32 %157, %160
  %162 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %158) #5
  %163 = load i32, ptr %162, align 4, !tbaa !91
  %164 = add nsw i32 %163, -1
  store i32 %164, ptr %162, align 4, !tbaa !91
  %165 = sext i32 %161 to i64
  %166 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIijESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %39, i64 noundef %165) #5
  store i32 %149, ptr %166, align 4, !tbaa !98
  %167 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIijESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %39, i64 noundef %indvars.iv205) #5
  %168 = getelementptr inbounds i8, ptr %167, i64 4
  %169 = load i32, ptr %168, align 4, !tbaa !93
  %170 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIijESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %39, i64 noundef %165) #5
  %171 = getelementptr inbounds i8, ptr %170, i64 4
  store i32 %169, ptr %171, align 4, !tbaa !93
  %indvars.iv.next206 = add nsw i64 %indvars.iv205, 1
  %172 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %indvars.iv.next209) #5
  %173 = load i32, ptr %172, align 4, !tbaa !91
  %174 = sext i32 %173 to i64
  %175 = icmp slt i64 %indvars.iv.next206, %174
  br i1 %175, label %.lr.ph170, label %.loopexit, !llvm.loop !99

._crit_edge180:                                   ; preds = %230, %125, %._crit_edge175
  %.lcssa153 = phi i32 [ %128, %._crit_edge175 ], [ %126, %125 ], [ %233, %230 ]
  %176 = shl nsw i32 %.lcssa153, 1
  %177 = or disjoint i32 %176, 1
  %178 = load i32, ptr %16, align 8, !tbaa !87
  %179 = icmp sgt i32 %178, 0
  br i1 %179, label %.lr.ph184, label %._crit_edge185

.lr.ph184:                                        ; preds = %._crit_edge180
  %180 = getelementptr inbounds i8, ptr %1, i64 80
  %181 = getelementptr inbounds i8, ptr %1, i64 104
  %182 = getelementptr inbounds i8, ptr %11, i64 4
  %183 = getelementptr inbounds i8, ptr %11, i64 8
  br label %240

184:                                              ; preds = %.lr.ph179, %230
  %indvars.iv211 = phi i64 [ 0, %.lr.ph179 ], [ %indvars.iv.next212, %230 ]
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %10) #5
  %185 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %133, i64 noundef %indvars.iv211) #5
  %186 = load double, ptr %185, align 8, !tbaa !92
  %187 = invoke noundef i32 @_ZN19HighsMatrixColoring5colorEd(ptr noundef nonnull align 8 dereferenceable(56) %6, double noundef %186)
          to label %188 unwind label %226

188:                                              ; preds = %184
  store i32 %187, ptr %10, align 4, !tbaa !100
  %189 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %134, i64 noundef %indvars.iv211) #5
  %190 = load double, ptr %189, align 8, !tbaa !92
  %191 = invoke noundef i32 @_ZN19HighsMatrixColoring5colorEd(ptr noundef nonnull align 8 dereferenceable(56) %6, double noundef %190)
          to label %192 unwind label %226

192:                                              ; preds = %188
  store i32 %191, ptr %135, align 4, !tbaa !102
  %193 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %136, i64 noundef %indvars.iv211) #5
  %194 = load double, ptr %193, align 8, !tbaa !92
  %195 = invoke noundef i32 @_ZN19HighsMatrixColoring5colorEd(ptr noundef nonnull align 8 dereferenceable(56) %6, double noundef %194)
          to label %196 unwind label %226

196:                                              ; preds = %192
  store i32 %195, ptr %137, align 4, !tbaa !103
  %197 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %138, i64 noundef %indvars.iv211) #5
  %198 = load i8, ptr %197, align 1, !tbaa !104
  %199 = zext i8 %198 to i32
  store i32 %199, ptr %139, align 4, !tbaa !106
  %indvars.iv.next212 = add nuw nsw i64 %indvars.iv211, 1
  %200 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %indvars.iv.next212) #5
  %201 = load i32, ptr %200, align 4, !tbaa !91
  %202 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %indvars.iv211) #5
  %203 = load i32, ptr %202, align 4, !tbaa !91
  %204 = sub nsw i32 %201, %203
  store i32 %204, ptr %140, align 4, !tbaa !107
  %205 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN14HighsHashTableI12MatrixColumniEixERKS0_(ptr noundef nonnull align 8 dereferenceable(40) %4, ptr noundef nonnull align 4 dereferenceable(20) %10)
          to label %206 unwind label %228

206:                                              ; preds = %196
  %207 = load i32, ptr %205, align 4, !tbaa !91
  %208 = icmp eq i32 %207, 0
  br i1 %208, label %209, label %230

209:                                              ; preds = %206
  %210 = call noundef i64 @_ZNK14HighsHashTableI12MatrixColumniE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %4)
  %211 = trunc i64 %210 to i32
  store i32 %211, ptr %205, align 4, !tbaa !91
  %212 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %134, i64 noundef %indvars.iv211) #5
  %213 = load double, ptr %212, align 8, !tbaa !92
  %214 = fcmp une double %213, 0.000000e+00
  br i1 %214, label %223, label %215

215:                                              ; preds = %209
  %216 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %136, i64 noundef %indvars.iv211) #5
  %217 = load double, ptr %216, align 8, !tbaa !92
  %218 = fcmp une double %217, 1.000000e+00
  br i1 %218, label %223, label %219

219:                                              ; preds = %215
  %220 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %138, i64 noundef %indvars.iv211) #5
  %221 = load i8, ptr %220, align 1, !tbaa !104
  %222 = icmp eq i8 %221, 0
  br i1 %222, label %223, label %._crit_edge220

._crit_edge220:                                   ; preds = %219
  %.pre221 = load i32, ptr %205, align 4, !tbaa !91
  br label %230

223:                                              ; preds = %219, %215, %209
  %224 = load i32, ptr %205, align 4, !tbaa !91
  %225 = add nsw i32 %131, %224
  store i32 %225, ptr %205, align 4, !tbaa !91
  br label %230

226:                                              ; preds = %192, %188, %184
  %227 = landingpad { ptr, i32 }
          cleanup
  br label %236

228:                                              ; preds = %196
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %236

230:                                              ; preds = %._crit_edge220, %223, %206
  %231 = phi i32 [ %.pre221, %._crit_edge220 ], [ %225, %223 ], [ %207, %206 ]
  %232 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv211) #5
  store i32 %231, ptr %232, align 4, !tbaa !91
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %10) #5
  %233 = load i32, ptr %13, align 4, !tbaa !85
  %234 = sext i32 %233 to i64
  %235 = icmp slt i64 %indvars.iv.next212, %234
  br i1 %235, label %184, label %._crit_edge180, !llvm.loop !108

236:                                              ; preds = %228, %226
  %.pn140 = phi { ptr, i32 } [ %229, %228 ], [ %227, %226 ]
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %10) #5
  br label %316

._crit_edge185:                                   ; preds = %273, %._crit_edge180
  %237 = getelementptr inbounds i8, ptr %0, i64 104
  %238 = load i32, ptr %18, align 4, !tbaa !88
  %239 = sext i32 %238 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %237, i64 noundef %239)
          to label %284 unwind label %297

240:                                              ; preds = %.lr.ph184, %273
  %indvars.iv214 = phi i64 [ 0, %.lr.ph184 ], [ %indvars.iv.next215, %273 ]
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %11) #5
  %241 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %180, i64 noundef %indvars.iv214) #5
  %242 = load double, ptr %241, align 8, !tbaa !92
  %243 = invoke noundef i32 @_ZN19HighsMatrixColoring5colorEd(ptr noundef nonnull align 8 dereferenceable(56) %6, double noundef %242)
          to label %244 unwind label %269

244:                                              ; preds = %240
  store i32 %243, ptr %11, align 4, !tbaa !109
  %245 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %181, i64 noundef %indvars.iv214) #5
  %246 = load double, ptr %245, align 8, !tbaa !92
  %247 = invoke noundef i32 @_ZN19HighsMatrixColoring5colorEd(ptr noundef nonnull align 8 dereferenceable(56) %6, double noundef %246)
          to label %248 unwind label %269

248:                                              ; preds = %244
  store i32 %247, ptr %182, align 4, !tbaa !111
  %249 = load i32, ptr %13, align 4, !tbaa !85
  %indvars.iv.next215 = add nuw nsw i64 %indvars.iv214, 1
  %250 = trunc nuw nsw i64 %indvars.iv.next215 to i32
  %251 = add i32 %249, %250
  %252 = sext i32 %251 to i64
  %253 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %252) #5
  %254 = load i32, ptr %253, align 4, !tbaa !91
  %255 = load i32, ptr %13, align 4, !tbaa !85
  %256 = trunc nuw nsw i64 %indvars.iv214 to i32
  %257 = add nsw i32 %255, %256
  %258 = sext i32 %257 to i64
  %259 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %258) #5
  %260 = load i32, ptr %259, align 4, !tbaa !91
  %261 = sub nsw i32 %254, %260
  store i32 %261, ptr %183, align 4, !tbaa !112
  %262 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN14HighsHashTableI9MatrixRowiEixERKS0_(ptr noundef nonnull align 8 dereferenceable(40) %5, ptr noundef nonnull align 4 dereferenceable(12) %11)
          to label %263 unwind label %271

263:                                              ; preds = %248
  %264 = load i32, ptr %262, align 4, !tbaa !91
  %265 = icmp eq i32 %264, 0
  br i1 %265, label %266, label %273

266:                                              ; preds = %263
  %267 = call noundef i64 @_ZNK14HighsHashTableI9MatrixRowiE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %5)
  %268 = trunc i64 %267 to i32
  store i32 %268, ptr %262, align 4, !tbaa !91
  br label %273

269:                                              ; preds = %244, %240
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %283

271:                                              ; preds = %248
  %272 = landingpad { ptr, i32 }
          cleanup
  br label %283

273:                                              ; preds = %266, %263
  %274 = phi i32 [ %268, %266 ], [ %264, %263 ]
  %275 = add nsw i32 %177, %274
  %276 = load i32, ptr %13, align 4, !tbaa !85
  %277 = add nsw i32 %276, %256
  %278 = sext i32 %277 to i64
  %279 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %278) #5
  store i32 %275, ptr %279, align 4, !tbaa !91
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %11) #5
  %280 = load i32, ptr %16, align 8, !tbaa !87
  %281 = sext i32 %280 to i64
  %282 = icmp slt i64 %indvars.iv.next215, %281
  br i1 %282, label %240, label %._crit_edge185, !llvm.loop !113

283:                                              ; preds = %271, %269
  %.pn = phi { ptr, i32 } [ %272, %271 ], [ %270, %269 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %11) #5
  br label %316

284:                                              ; preds = %._crit_edge185
  %285 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %237) #5
  %286 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %237) #5
  call void @_ZSt4iotaIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiEvT_S7_T0_(ptr %285, ptr %286, i32 noundef 0)
  %287 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %237) #5
  %288 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %237) #5
  invoke void @"_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN22HighsSymmetryDetection16loadModelAsGraphERK7HighsLpdE3$_1EvT_SC_T0_"(ptr %287, ptr %288, ptr nonnull %0)
          to label %289 unwind label %297

289:                                              ; preds = %284
  %290 = getelementptr inbounds i8, ptr %0, i64 128
  %291 = load i32, ptr %18, align 4, !tbaa !88
  %292 = sext i32 %291 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %290, i64 noundef %292)
          to label %.preheader unwind label %297

.preheader:                                       ; preds = %289
  %293 = load i32, ptr %18, align 4, !tbaa !88
  %294 = icmp sgt i32 %293, 0
  br i1 %294, label %.lr.ph189, label %._crit_edge190

._crit_edge190.loopexit:                          ; preds = %310
  %295 = sext i32 %.1116 to i64
  br label %._crit_edge190

._crit_edge190:                                   ; preds = %._crit_edge190.loopexit, %.preheader
  %.0115.lcssa = phi i64 [ 0, %.preheader ], [ %295, %._crit_edge190.loopexit ]
  %.lcssa = phi i32 [ %293, %.preheader ], [ %313, %._crit_edge190.loopexit ]
  %296 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %290, i64 noundef %.0115.lcssa) #5
  store i32 %.lcssa, ptr %296, align 4, !tbaa !91
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #5
  call void @_ZN19HighsMatrixColoringD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %6) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %6) #5
  call void @_ZN14HighsHashTableI9MatrixRowiED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #5
  call void @_ZN14HighsHashTableI12MatrixColumniED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %4) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #5
  ret void

297:                                              ; preds = %289, %284, %._crit_edge185
  %298 = landingpad { ptr, i32 }
          cleanup
  br label %316

.lr.ph189:                                        ; preds = %.preheader, %310
  %indvars.iv217 = phi i64 [ %indvars.iv.next218, %310 ], [ 0, %.preheader ]
  %.0113187 = phi i32 [ %.1114, %310 ], [ 0, %.preheader ]
  %.0115186 = phi i32 [ %.1116, %310 ], [ 0, %.preheader ]
  %299 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %237, i64 noundef %indvars.iv217) #5
  %300 = load i32, ptr %299, align 4, !tbaa !91
  %301 = sext i32 %300 to i64
  %302 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %301) #5
  %303 = load i32, ptr %302, align 4, !tbaa !91
  %.not = icmp eq i32 %.0113187, %303
  br i1 %.not, label %310, label %304

304:                                              ; preds = %.lr.ph189
  %305 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %301) #5
  %306 = load i32, ptr %305, align 4, !tbaa !91
  %307 = sext i32 %.0115186 to i64
  %308 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %290, i64 noundef %307) #5
  %309 = trunc nuw nsw i64 %indvars.iv217 to i32
  store i32 %309, ptr %308, align 4, !tbaa !91
  br label %310

310:                                              ; preds = %304, %.lr.ph189
  %.1116 = phi i32 [ %309, %304 ], [ %.0115186, %.lr.ph189 ]
  %.1114 = phi i32 [ %306, %304 ], [ %.0113187, %.lr.ph189 ]
  %311 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %301) #5
  store i32 %.1116, ptr %311, align 4, !tbaa !91
  %312 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %290, i64 noundef %indvars.iv217) #5
  store i32 %.1116, ptr %312, align 4, !tbaa !91
  %indvars.iv.next218 = add nuw nsw i64 %indvars.iv217, 1
  %313 = load i32, ptr %18, align 4, !tbaa !88
  %314 = sext i32 %313 to i64
  %315 = icmp slt i64 %indvars.iv.next218, %314
  br i1 %315, label %.lr.ph189, label %._crit_edge190.loopexit, !llvm.loop !114

316:                                              ; preds = %141, %297, %283, %236, %104
  %.pn144 = phi { ptr, i32 } [ %105, %104 ], [ %142, %141 ], [ %.pn140, %236 ], [ %.pn, %283 ], [ %298, %297 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #5
  br label %317

317:                                              ; preds = %316, %79
  %.pn144.pn = phi { ptr, i32 } [ %.pn144, %316 ], [ %80, %79 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #5
  br label %318

318:                                              ; preds = %77, %317, %75
  %.pn144.pn.pn.pn = phi { ptr, i32 } [ %76, %75 ], [ %.pn144.pn, %317 ], [ %78, %77 ]
  call void @_ZN19HighsMatrixColoringD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %6) #5
  br label %319

319:                                              ; preds = %318, %73
  %.pn144.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn144.pn.pn.pn, %318 ], [ %74, %73 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %6) #5
  call void @_ZN14HighsHashTableI9MatrixRowiED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #5
  br label %320

320:                                              ; preds = %319, %71
  %.pn144.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn144.pn.pn.pn.pn, %319 ], [ %72, %71 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #5
  call void @_ZN14HighsHashTableI12MatrixColumniED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %4) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #5
  resume { ptr, i32 } %.pn144.pn.pn.pn.pn.pn
}

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden ptr @"_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS1_IPSt4pairIijES4_IS9_SaIS9_EEEEZN22HighsSymmetryDetection16loadModelAsGraphERK7HighsLpdE3$_0ET0_T_SK_SJ_T1_"(ptr, ptr, ptr, ptr) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS1_IPiS6_EEET0_T_SB_SA_(ptr, ptr, ptr) local_unnamed_addr #3

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN14HighsHashTableI12MatrixColumniEixERKS0_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(20)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN14HighsHashTableI9MatrixRowiEixERKS0_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN22HighsSymmetryDetection16loadModelAsGraphERK7HighsLpdE3$_1EvT_SC_T0_"(ptr, ptr, ptr) local_unnamed_addr #3

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTS22HighsSymmetryDetection", !7, i64 0, !10, i64 8, !10, i64 32, !14, i64 56, !14, i64 80, !10, i64 104, !10, i64 128, !10, i64 152, !10, i64 176, !10, i64 200, !10, i64 224, !10, i64 248, !10, i64 272, !18, i64 296, !10, i64 320, !22, i64 344, !10, i64 368, !10, i64 392, !26, i64 416, !26, i64 440, !26, i64 464, !10, i64 488, !10, i64 512, !30, i64 536, !44, i64 576, !44, i64 616, !51, i64 656, !51, i64 660, !51, i64 664, !51, i64 668, !51, i64 672, !51, i64 676, !51, i64 680, !51, i64 684, !51, i64 688, !52, i64 696}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSSt6vectorIiSaIiEE", !11, i64 0}
!11 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !12, i64 0}
!12 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !13, i64 0}
!13 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!14 = !{!"_ZTSSt6vectorISt4pairIijESaIS1_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseISt4pairIijESaIS1_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseISt4pairIijESaIS1_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseISt4pairIijESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!18 = !{!"_ZTSSt6vectorIhSaIhEE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!22 = !{!"_ZTSSt6vectorIPiSaIS0_EE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseIPiSaIS0_EE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIPiSaIS0_EE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIPiSaIS0_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!26 = !{!"_ZTSSt6vectorIjSaIjEE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!30 = !{!"_ZTS14HighsHashTableIijE", !31, i64 0, !37, i64 8, !43, i64 16, !43, i64 24, !43, i64 32}
!31 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEE", !32, i64 0}
!32 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterELb1ELb1EE", !33, i64 0}
!33 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEE", !34, i64 0}
!34 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEEE", !35, i64 0}
!35 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEEE", !36, i64 0}
!36 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryIijELb0EE", !7, i64 0}
!37 = !{!"_ZTSSt10unique_ptrIA_hSt14default_deleteIS0_EE", !38, i64 0}
!38 = !{!"_ZTSSt15__uniq_ptr_dataIhSt14default_deleteIA_hELb1ELb1EE", !39, i64 0}
!39 = !{!"_ZTSSt15__uniq_ptr_implIhSt14default_deleteIA_hEE", !40, i64 0}
!40 = !{!"_ZTSSt5tupleIJPhSt14default_deleteIA_hEEE", !41, i64 0}
!41 = !{!"_ZTSSt11_Tuple_implILm0EJPhSt14default_deleteIA_hEEE", !42, i64 0}
!42 = !{!"_ZTSSt10_Head_baseILm0EPhLb0EE", !7, i64 0}
!43 = !{!"long", !8, i64 0}
!44 = !{!"_ZTS14HighsHashTableISt5tupleIJiijEEvE", !45, i64 0, !37, i64 8, !43, i64 16, !43, i64 24, !43, i64 32}
!45 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterEE", !46, i64 0}
!46 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterELb1ELb1EE", !47, i64 0}
!47 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterEE", !48, i64 0}
!48 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIS_IJiijEEvEN14HighsHashTableIS1_vE12OpNewDeleterEEE", !49, i64 0}
!49 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterEEE", !50, i64 0}
!50 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryISt5tupleIJiijEEvELb0EE", !7, i64 0}
!51 = !{!"int", !8, i64 0}
!52 = !{!"_ZTSSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE", !53, i64 0}
!53 = !{!"_ZTSSt12_Vector_baseIN22HighsSymmetryDetection4NodeESaIS1_EE", !54, i64 0}
!54 = !{!"_ZTSNSt12_Vector_baseIN22HighsSymmetryDetection4NodeESaIS1_EE12_Vector_implE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIN22HighsSymmetryDetection4NodeESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!56 = !{!57, !51, i64 0}
!57 = !{!"_ZTS7HighsLp", !51, i64 0, !51, i64 4, !58, i64 8, !58, i64 32, !58, i64 56, !58, i64 80, !58, i64 104, !62, i64 128, !64, i64 240, !65, i64 248, !66, i64 256, !66, i64 288, !51, i64 320, !51, i64 324, !68, i64 328, !68, i64 352, !72, i64 376, !76, i64 400, !76, i64 456, !51, i64 512, !51, i64 516, !82, i64 520, !83, i64 592, !83, i64 593, !51, i64 596, !83, i64 600, !84, i64 608}
!58 = !{!"_ZTSSt6vectorIdSaIdEE", !59, i64 0}
!59 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !60, i64 0}
!60 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !61, i64 0}
!61 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!62 = !{!"_ZTS17HighsSparseMatrix", !63, i64 0, !51, i64 4, !51, i64 8, !10, i64 16, !10, i64 40, !10, i64 64, !58, i64 88}
!63 = !{!"_ZTS12MatrixFormat", !8, i64 0}
!64 = !{!"_ZTS8ObjSense", !8, i64 0}
!65 = !{!"double", !8, i64 0}
!66 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !67, i64 0, !43, i64 8, !8, i64 16}
!67 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!68 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !69, i64 0}
!69 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !71, i64 0}
!71 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!72 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !73, i64 0}
!73 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!76 = !{!"_ZTS13HighsNameHash", !77, i64 0}
!77 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !78, i64 0}
!78 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE", !7, i64 0, !43, i64 8, !79, i64 16, !43, i64 24, !80, i64 32, !7, i64 48}
!79 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !7, i64 0}
!80 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !81, i64 0, !43, i64 8}
!81 = !{!"float", !8, i64 0}
!82 = !{!"_ZTS10HighsScale", !51, i64 0, !83, i64 4, !51, i64 8, !51, i64 12, !65, i64 16, !58, i64 24, !58, i64 48}
!83 = !{!"bool", !8, i64 0}
!84 = !{!"_ZTS11HighsLpMods", !10, i64 0, !10, i64 24, !58, i64 48, !58, i64 72, !72, i64 96, !10, i64 120, !58, i64 144, !10, i64 168, !58, i64 192, !10, i64 216, !58, i64 240, !58, i64 264, !58, i64 288}
!85 = !{!6, !51, i64 676}
!86 = !{!57, !51, i64 4}
!87 = !{!6, !51, i64 680}
!88 = !{!6, !51, i64 684}
!89 = distinct !{!89, !90}
!90 = !{!"llvm.loop.mustprogress"}
!91 = !{!51, !51, i64 0}
!92 = !{!65, !65, i64 0}
!93 = !{!94, !51, i64 4}
!94 = !{!"_ZTSSt4pairIijE", !51, i64 0, !51, i64 4}
!95 = distinct !{!95, !90}
!96 = distinct !{!96, !90}
!97 = distinct !{!97, !90}
!98 = !{!94, !51, i64 0}
!99 = distinct !{!99, !90}
!100 = !{!101, !51, i64 0}
!101 = !{!"_ZTS12MatrixColumn", !51, i64 0, !51, i64 4, !51, i64 8, !51, i64 12, !51, i64 16}
!102 = !{!101, !51, i64 4}
!103 = !{!101, !51, i64 8}
!104 = !{!105, !105, i64 0}
!105 = !{!"_ZTS12HighsVarType", !8, i64 0}
!106 = !{!101, !51, i64 12}
!107 = !{!101, !51, i64 16}
!108 = distinct !{!108, !90}
!109 = !{!110, !51, i64 0}
!110 = !{!"_ZTS9MatrixRow", !51, i64 0, !51, i64 4, !51, i64 8}
!111 = !{!110, !51, i64 4}
!112 = !{!110, !51, i64 8}
!113 = distinct !{!113, !90}
!114 = distinct !{!114, !90}


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