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

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

%struct.HighsOrbitopeMatrix = type { i32, i32, i32, %class.HighsHashTable.56, %"class.std::vector.128", %"class.std::vector" }
%class.HighsHashTable.56 = type { %"class.std::unique_ptr.57", %"class.std::unique_ptr.25", i64, i64, i64 }
%"class.std::unique_ptr.57" = type { %"struct.std::__uniq_ptr_data.58" }
%"struct.std::__uniq_ptr_data.58" = type { %"class.std::__uniq_ptr_impl.59" }
%"class.std::__uniq_ptr_impl.59" = type { %"class.std::tuple.60" }
%"class.std::tuple.60" = type { %"struct.std::_Tuple_impl.61" }
%"struct.std::_Tuple_impl.61" = type { %"struct.std::_Head_base.64" }
%"struct.std::_Head_base.64" = 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.std::vector.128" = type { %"struct.std::_Vector_base.129" }
%"struct.std::_Vector_base.129" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = 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.HighsHashTable.114 = type { %"class.std::unique_ptr.115", %"class.std::unique_ptr.25", i64, i64, i64 }
%"class.std::unique_ptr.115" = type { %"struct.std::__uniq_ptr_data.116" }
%"struct.std::__uniq_ptr_data.116" = type { %"class.std::__uniq_ptr_impl.117" }
%"class.std::__uniq_ptr_impl.117" = type { %"class.std::tuple.118" }
%"class.std::tuple.118" = type { %"struct.std::_Tuple_impl.119" }
%"struct.std::_Tuple_impl.119" = type { %"struct.std::_Head_base.122" }
%"struct.std::_Head_base.122" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.47" = type { ptr }
%"struct.HighsSymmetryDetection::ComponentData" = type { %class.HighsDisjointSets, %"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.HighsDisjointSets = type { %"class.std::vector", %"class.std::vector", %"class.std::vector" }
%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.HighsSymmetries = type { %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.51", %class.HighsHashTable.56, i32, i32 }
%"class.std::vector.51" = type { %"struct.std::_Vector_base.52" }
%"struct.std::_Vector_base.52" = type { %"struct.std::_Vector_base<HighsOrbitopeMatrix, std::allocator<HighsOrbitopeMatrix>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsOrbitopeMatrix, std::allocator<HighsOrbitopeMatrix>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsOrbitopeMatrix, std::allocator<HighsOrbitopeMatrix>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsOrbitopeMatrix, std::allocator<HighsOrbitopeMatrix>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.52 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [67 x i8], align 1
@__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection14isFullOrbitopeERKNS_13ComponentDataEiR15HighsSymmetries = external hidden unnamed_addr constant [96 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN22HighsSymmetryDetection14isFullOrbitopeERKNS_13ComponentDataEiR15HighsSymmetries(ptr noundef nonnull align 8 dereferenceable(720) %0, ptr noundef nonnull align 8 dereferenceable(264) %1, i32 noundef %2, ptr noundef nonnull align 8 dereferenceable(216) %3) #4 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca i1, align 1
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca %struct.HighsOrbitopeMatrix, align 8
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca %class.HighsHashTable.114, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i8, align 1
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca i8, align 1
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca ptr, align 8
  %40 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %42 = alloca i32, align 4
  %43 = alloca i64, align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store i32 %2, ptr %8, align 4, !tbaa !9
  store ptr %3, ptr %9, align 8, !tbaa !5
  %44 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #6
  %45 = load ptr, ptr %7, align 8, !tbaa !5
  %46 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %45, i32 0, i32 1
  %47 = load i32, ptr %8, align 4, !tbaa !9
  %48 = add nsw i32 %47, 1
  %49 = sext i32 %48 to i64
  %50 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %49) #6
  %51 = load i32, ptr %50, align 4, !tbaa !9
  %52 = load ptr, ptr %7, align 8, !tbaa !5
  %53 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %52, i32 0, i32 1
  %54 = load i32, ptr %8, align 4, !tbaa !9
  %55 = sext i32 %54 to i64
  %56 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %55) #6
  %57 = load i32, ptr %56, align 4, !tbaa !9
  %58 = sub nsw i32 %51, %57
  store i32 %58, ptr %10, align 4, !tbaa !9
  %59 = load i32, ptr %10, align 4, !tbaa !9
  %60 = icmp eq i32 %59, 1
  br i1 %60, label %61, label %62

61:                                               ; preds = %4
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %610

62:                                               ; preds = %4
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #6
  %63 = load ptr, ptr %7, align 8, !tbaa !5
  %64 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %63, i32 0, i32 1
  %65 = load i32, ptr %8, align 4, !tbaa !9
  %66 = sext i32 %65 to i64
  %67 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %64, i64 noundef %66) #6
  %68 = load i32, ptr %67, align 4, !tbaa !9
  store i32 %68, ptr %12, align 4, !tbaa !9
  br label %69

69:                                               ; preds = %118, %62
  %70 = load i32, ptr %12, align 4, !tbaa !9
  %71 = load ptr, ptr %7, align 8, !tbaa !5
  %72 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %71, i32 0, i32 1
  %73 = load i32, ptr %8, align 4, !tbaa !9
  %74 = add nsw i32 %73, 1
  %75 = sext i32 %74 to i64
  %76 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %72, i64 noundef %75) #6
  %77 = load i32, ptr %76, align 4, !tbaa !9
  %78 = icmp slt i32 %70, %77
  br i1 %78, label %80, label %79

79:                                               ; preds = %69
  store i32 2, ptr %11, align 4
  br label %121

80:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #6
  %81 = load ptr, ptr %7, align 8, !tbaa !5
  %82 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %81, i32 0, i32 2
  %83 = load i32, ptr %12, align 4, !tbaa !9
  %84 = sext i32 %83 to i64
  %85 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %82, i64 noundef %84) #6
  %86 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %86, ptr %13, align 4, !tbaa !9
  %87 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %44, i32 0, i32 0
  %88 = load ptr, ptr %87, align 8, !tbaa !11
  %89 = getelementptr inbounds %class.HighsLp, ptr %88, i32 0, i32 16
  %90 = load i32, ptr %13, align 4, !tbaa !9
  %91 = sext i32 %90 to i64
  %92 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %89, i64 noundef %91) #6
  %93 = load i8, ptr %92, align 1, !tbaa !58
  %94 = icmp eq i8 %93, 0
  br i1 %94, label %113, label %95

95:                                               ; preds = %80
  %96 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %44, i32 0, i32 0
  %97 = load ptr, ptr %96, align 8, !tbaa !11
  %98 = getelementptr inbounds %class.HighsLp, ptr %97, i32 0, i32 3
  %99 = load i32, ptr %13, align 4, !tbaa !9
  %100 = sext i32 %99 to i64
  %101 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %98, i64 noundef %100) #6
  %102 = load double, ptr %101, align 8, !tbaa !60
  %103 = fcmp une double %102, 0.000000e+00
  br i1 %103, label %113, label %104

104:                                              ; preds = %95
  %105 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %44, i32 0, i32 0
  %106 = load ptr, ptr %105, align 8, !tbaa !11
  %107 = getelementptr inbounds %class.HighsLp, ptr %106, i32 0, i32 4
  %108 = load i32, ptr %13, align 4, !tbaa !9
  %109 = sext i32 %108 to i64
  %110 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %107, i64 noundef %109) #6
  %111 = load double, ptr %110, align 8, !tbaa !60
  %112 = fcmp une double %111, 1.000000e+00
  br i1 %112, label %113, label %114

113:                                              ; preds = %104, %95, %80
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %115

114:                                              ; preds = %104
  store i32 0, ptr %11, align 4
  br label %115

115:                                              ; preds = %114, %113
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  %116 = load i32, ptr %11, align 4
  switch i32 %116, label %121 [
    i32 0, label %117
  ]

117:                                              ; preds = %115
  br label %118

118:                                              ; preds = %117
  %119 = load i32, ptr %12, align 4, !tbaa !9
  %120 = add nsw i32 %119, 1
  store i32 %120, ptr %12, align 4, !tbaa !9
  br label %69, !llvm.loop !62

121:                                              ; preds = %115, %79
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  %122 = load i32, ptr %11, align 4
  switch i32 %122, label %610 [
    i32 2, label %123
  ]

123:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #6
  %124 = load ptr, ptr %7, align 8, !tbaa !5
  %125 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %124, i32 0, i32 6
  %126 = load ptr, ptr %7, align 8, !tbaa !5
  %127 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %126, i32 0, i32 5
  %128 = load i32, ptr %8, align 4, !tbaa !9
  %129 = sext i32 %128 to i64
  %130 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %127, i64 noundef %129) #6
  %131 = load i32, ptr %130, align 4, !tbaa !9
  %132 = sext i32 %131 to i64
  %133 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %125, i64 noundef %132) #6
  %134 = load i32, ptr %133, align 4, !tbaa !9
  store i32 %134, ptr %14, align 4, !tbaa !9
  %135 = load ptr, ptr %7, align 8, !tbaa !5
  %136 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %135, i32 0, i32 8
  %137 = load i32, ptr %14, align 4, !tbaa !9
  %138 = sext i32 %137 to i64
  %139 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %136, i64 noundef %138) #6
  %140 = load i32, ptr %139, align 4, !tbaa !9
  %141 = and i32 %140, 1
  %142 = icmp ne i32 %141, 0
  br i1 %142, label %143, label %144

143:                                              ; preds = %123
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %609

144:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #6
  %145 = load ptr, ptr %7, align 8, !tbaa !5
  %146 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %145, i32 0, i32 5
  %147 = load i32, ptr %8, align 4, !tbaa !9
  %148 = sext i32 %147 to i64
  %149 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %146, i64 noundef %148) #6
  %150 = load i32, ptr %149, align 4, !tbaa !9
  %151 = add nsw i32 %150, 1
  store i32 %151, ptr %15, align 4, !tbaa !9
  br label %152

152:                                              ; preds = %188, %144
  %153 = load i32, ptr %15, align 4, !tbaa !9
  %154 = load ptr, ptr %7, align 8, !tbaa !5
  %155 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %154, i32 0, i32 5
  %156 = load i32, ptr %8, align 4, !tbaa !9
  %157 = add nsw i32 %156, 1
  %158 = sext i32 %157 to i64
  %159 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %155, i64 noundef %158) #6
  %160 = load i32, ptr %159, align 4, !tbaa !9
  %161 = icmp slt i32 %153, %160
  br i1 %161, label %163, label %162

162:                                              ; preds = %152
  store i32 5, ptr %11, align 4
  br label %191

163:                                              ; preds = %152
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  %164 = load ptr, ptr %7, align 8, !tbaa !5
  %165 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %164, i32 0, i32 6
  %166 = load i32, ptr %15, align 4, !tbaa !9
  %167 = sext i32 %166 to i64
  %168 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %165, i64 noundef %167) #6
  %169 = load i32, ptr %168, align 4, !tbaa !9
  store i32 %169, ptr %16, align 4, !tbaa !9
  %170 = load ptr, ptr %7, align 8, !tbaa !5
  %171 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %170, i32 0, i32 8
  %172 = load i32, ptr %16, align 4, !tbaa !9
  %173 = sext i32 %172 to i64
  %174 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %171, i64 noundef %173) #6
  %175 = load i32, ptr %174, align 4, !tbaa !9
  %176 = load ptr, ptr %7, align 8, !tbaa !5
  %177 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %176, i32 0, i32 8
  %178 = load i32, ptr %14, align 4, !tbaa !9
  %179 = sext i32 %178 to i64
  %180 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %177, i64 noundef %179) #6
  %181 = load i32, ptr %180, align 4, !tbaa !9
  %182 = icmp ne i32 %175, %181
  br i1 %182, label %183, label %184

183:                                              ; preds = %163
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %185

184:                                              ; preds = %163
  store i32 0, ptr %11, align 4
  br label %185

185:                                              ; preds = %184, %183
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  %186 = load i32, ptr %11, align 4
  switch i32 %186, label %191 [
    i32 0, label %187
  ]

187:                                              ; preds = %185
  br label %188

188:                                              ; preds = %187
  %189 = load i32, ptr %15, align 4, !tbaa !9
  %190 = add nsw i32 %189, 1
  store i32 %190, ptr %15, align 4, !tbaa !9
  br label %152, !llvm.loop !64

191:                                              ; preds = %185, %162
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  %192 = load i32, ptr %11, align 4
  switch i32 %192, label %609 [
    i32 5, label %193
  ]

193:                                              ; preds = %191
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #6
  %194 = load ptr, ptr %7, align 8, !tbaa !5
  %195 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %194, i32 0, i32 8
  %196 = load i32, ptr %14, align 4, !tbaa !9
  %197 = sext i32 %196 to i64
  %198 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %195, i64 noundef %197) #6
  %199 = load i32, ptr %198, align 4, !tbaa !9
  %200 = ashr i32 %199, 1
  store i32 %200, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  %201 = load i32, ptr %10, align 4, !tbaa !9
  %202 = load i32, ptr %17, align 4, !tbaa !9
  %203 = sdiv i32 %201, %202
  store i32 %203, ptr %18, align 4, !tbaa !9
  %204 = load i32, ptr %18, align 4, !tbaa !9
  %205 = load i32, ptr %17, align 4, !tbaa !9
  %206 = mul nsw i32 %204, %205
  %207 = load i32, ptr %10, align 4, !tbaa !9
  %208 = icmp ne i32 %206, %207
  br i1 %208, label %209, label %210

209:                                              ; preds = %193
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %608

210:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #6
  %211 = load ptr, ptr %7, align 8, !tbaa !5
  %212 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %211, i32 0, i32 5
  %213 = load i32, ptr %8, align 4, !tbaa !9
  %214 = add nsw i32 %213, 1
  %215 = sext i32 %214 to i64
  %216 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %212, i64 noundef %215) #6
  %217 = load i32, ptr %216, align 4, !tbaa !9
  %218 = load ptr, ptr %7, align 8, !tbaa !5
  %219 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %218, i32 0, i32 5
  %220 = load i32, ptr %8, align 4, !tbaa !9
  %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) #6
  %223 = load i32, ptr %222, align 4, !tbaa !9
  %224 = sub nsw i32 %217, %223
  store i32 %224, ptr %19, align 4, !tbaa !9
  %225 = load i32, ptr %19, align 4, !tbaa !9
  %226 = load i32, ptr %18, align 4, !tbaa !9
  %227 = sub nsw i32 %226, 1
  %228 = icmp ne i32 %225, %227
  br i1 %228, label %229, label %230

229:                                              ; preds = %210
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %607

230:                                              ; preds = %210
  call void @llvm.lifetime.start.p0(i64 104, ptr %20) #6
  call void @_ZN19HighsOrbitopeMatrixC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %20)
  %231 = getelementptr inbounds %struct.HighsOrbitopeMatrix, ptr %20, i32 0, i32 5
  %232 = load i32, ptr %10, align 4, !tbaa !9
  %233 = sext i32 %232 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #6
  store i32 -1, ptr %21, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %231, i64 noundef %233, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %234 unwind label %248

234:                                              ; preds = %230
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  %235 = load i32, ptr %17, align 4, !tbaa !9
  %236 = getelementptr inbounds %struct.HighsOrbitopeMatrix, ptr %20, i32 0, i32 1
  store i32 %235, ptr %236, align 4, !tbaa !65
  %237 = load i32, ptr %18, align 4, !tbaa !9
  %238 = getelementptr inbounds %struct.HighsOrbitopeMatrix, ptr %20, i32 0, i32 0
  store i32 %237, ptr %238, align 8, !tbaa !78
  %239 = load i32, ptr %10, align 4, !tbaa !9
  %240 = getelementptr inbounds %struct.HighsOrbitopeMatrix, ptr %20, i32 0, i32 1
  %241 = load i32, ptr %240, align 4, !tbaa !65
  %242 = getelementptr inbounds %struct.HighsOrbitopeMatrix, ptr %20, i32 0, i32 0
  %243 = load i32, ptr %242, align 8, !tbaa !78
  %244 = mul nsw i32 %241, %243
  %245 = icmp eq i32 %239, %244
  br i1 %245, label %246, label %247

246:                                              ; preds = %234
  br label %253

247:                                              ; preds = %234
  call void @__assert_fail(ptr noundef @.str.66, ptr noundef @.str.52, i32 noundef 1573, ptr noundef @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection14isFullOrbitopeERKNS_13ComponentDataEiR15HighsSymmetries) #7
  unreachable

248:                                              ; preds = %230
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %22, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  br label %606

252:                                              ; No predecessors!
  br label %253

253:                                              ; preds = %252, %246
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #6
  %254 = load ptr, ptr %9, align 8, !tbaa !5
  %255 = getelementptr inbounds %struct.HighsSymmetries, ptr %254, i32 0, i32 1
  %256 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %255) #6
  %257 = load i32, ptr %14, align 4, !tbaa !9
  %258 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %44, i32 0, i32 34
  %259 = load i32, ptr %258, align 8, !tbaa !79
  %260 = mul nsw i32 %257, %259
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds i32, ptr %256, i64 %261
  store ptr %262, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %25) #6
  invoke void @_ZN14HighsHashTableIivEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %25)
          to label %263 unwind label %270

263:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  store i32 0, ptr %26, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  store i32 0, ptr %27, align 4, !tbaa !9
  br label %264

264:                                              ; preds = %353, %263
  %265 = load i32, ptr %27, align 4, !tbaa !9
  %266 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %44, i32 0, i32 34
  %267 = load i32, ptr %266, align 8, !tbaa !79
  %268 = icmp slt i32 %265, %267
  br i1 %268, label %274, label %269

269:                                              ; preds = %264
  store i32 8, ptr %11, align 4
  br label %356

270:                                              ; preds = %253
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %22, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %23, align 4
  br label %605

274:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  %275 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %44, i32 0, i32 8
  %276 = load ptr, ptr %24, align 8, !tbaa !5
  %277 = load i32, ptr %27, align 4, !tbaa !9
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds i32, ptr %276, i64 %278
  %280 = load i32, ptr %279, align 4, !tbaa !9
  %281 = sext i32 %280 to i64
  %282 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %275, i64 noundef %281) #6
  %283 = load i32, ptr %282, align 4, !tbaa !9
  store i32 %283, ptr %28, align 4, !tbaa !9
  %284 = load i32, ptr %28, align 4, !tbaa !9
  %285 = load i32, ptr %27, align 4, !tbaa !9
  %286 = icmp sle i32 %284, %285
  br i1 %286, label %287, label %288

287:                                              ; preds = %274
  store i32 10, ptr %11, align 4
  br label %350

288:                                              ; preds = %274
  %289 = load i32, ptr %26, align 4, !tbaa !9
  %290 = load i32, ptr %17, align 4, !tbaa !9
  %291 = icmp eq i32 %289, %290
  br i1 %291, label %292, label %293

292:                                              ; preds = %288
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %350

293:                                              ; preds = %288
  %294 = load ptr, ptr %24, align 8, !tbaa !5
  %295 = load i32, ptr %28, align 4, !tbaa !9
  %296 = sext i32 %295 to i64
  %297 = getelementptr inbounds i32, ptr %294, i64 %296
  %298 = load i32, ptr %297, align 4, !tbaa !9
  %299 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %44, i32 0, i32 9
  %300 = load i32, ptr %27, align 4, !tbaa !9
  %301 = sext i32 %300 to i64
  %302 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %299, i64 noundef %301) #6
  %303 = load i32, ptr %302, align 4, !tbaa !9
  %304 = icmp ne i32 %298, %303
  br i1 %304, label %305, label %306

305:                                              ; preds = %293
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %350

306:                                              ; preds = %293
  %307 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %44, i32 0, i32 9
  %308 = load i32, ptr %27, align 4, !tbaa !9
  %309 = sext i32 %308 to i64
  %310 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %307, i64 noundef %309) #6
  %311 = load i32, ptr %310, align 4, !tbaa !9
  %312 = getelementptr inbounds %struct.HighsOrbitopeMatrix, ptr %20, i32 0, i32 5
  %313 = load i32, ptr %26, align 4, !tbaa !9
  %314 = sext i32 %313 to i64
  %315 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %312, i64 noundef %314) #6
  store i32 %311, ptr %315, align 4, !tbaa !9
  %316 = load ptr, ptr %24, align 8, !tbaa !5
  %317 = load i32, ptr %27, align 4, !tbaa !9
  %318 = sext i32 %317 to i64
  %319 = getelementptr inbounds i32, ptr %316, i64 %318
  %320 = load i32, ptr %319, align 4, !tbaa !9
  %321 = getelementptr inbounds %struct.HighsOrbitopeMatrix, ptr %20, i32 0, i32 5
  %322 = getelementptr inbounds %struct.HighsOrbitopeMatrix, ptr %20, i32 0, i32 1
  %323 = load i32, ptr %322, align 4, !tbaa !65
  %324 = load i32, ptr %26, align 4, !tbaa !9
  %325 = add nsw i32 %323, %324
  %326 = sext i32 %325 to i64
  %327 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %321, i64 noundef %326) #6
  store i32 %320, ptr %327, align 4, !tbaa !9
  %328 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %44, i32 0, i32 9
  %329 = load i32, ptr %27, align 4, !tbaa !9
  %330 = sext i32 %329 to i64
  %331 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %328, i64 noundef %330) #6
  %332 = invoke noundef zeroext i1 @_ZN14HighsHashTableIivE6insertIJRiEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40) %25, ptr noundef nonnull align 4 dereferenceable(4) %331)
          to label %333 unwind label %335

333:                                              ; preds = %306
  br i1 %332, label %339, label %334

334:                                              ; preds = %333
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %350

335:                                              ; preds = %339, %306
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %22, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %604

339:                                              ; preds = %333
  %340 = load ptr, ptr %24, align 8, !tbaa !5
  %341 = load i32, ptr %27, align 4, !tbaa !9
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds i32, ptr %340, i64 %342
  %344 = invoke noundef zeroext i1 @_ZN14HighsHashTableIivE6insertIJRKiEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40) %25, ptr noundef nonnull align 4 dereferenceable(4) %343)
          to label %345 unwind label %335

345:                                              ; preds = %339
  br i1 %344, label %347, label %346

346:                                              ; preds = %345
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %350

347:                                              ; preds = %345
  %348 = load i32, ptr %26, align 4, !tbaa !9
  %349 = add nsw i32 %348, 1
  store i32 %349, ptr %26, align 4, !tbaa !9
  store i32 0, ptr %11, align 4
  br label %350

350:                                              ; preds = %347, %346, %334, %305, %292, %287
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  %351 = load i32, ptr %11, align 4
  switch i32 %351, label %356 [
    i32 0, label %352
    i32 10, label %353
  ]

352:                                              ; preds = %350
  br label %353

353:                                              ; preds = %352, %350
  %354 = load i32, ptr %27, align 4, !tbaa !9
  %355 = add nsw i32 %354, 1
  store i32 %355, ptr %27, align 4, !tbaa !9
  br label %264, !llvm.loop !80

356:                                              ; preds = %350, %269
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  %357 = load i32, ptr %11, align 4
  switch i32 %357, label %603 [
    i32 8, label %358
  ]

358:                                              ; preds = %356
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #6
  store i32 2, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #6
  store i8 0, ptr %30, align 1, !tbaa !81
  br label %359

359:                                              ; preds = %558, %358
  %360 = load i32, ptr %29, align 4, !tbaa !9
  %361 = getelementptr inbounds %struct.HighsOrbitopeMatrix, ptr %20, i32 0, i32 0
  %362 = load i32, ptr %361, align 8, !tbaa !78
  %363 = icmp slt i32 %360, %362
  br i1 %363, label %364, label %562

364:                                              ; preds = %359
  %365 = invoke noundef i64 @_ZNK14HighsHashTableIivE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %25)
          to label %366 unwind label %374

366:                                              ; preds = %364
  %367 = load i32, ptr %29, align 4, !tbaa !9
  %368 = getelementptr inbounds %struct.HighsOrbitopeMatrix, ptr %20, i32 0, i32 1
  %369 = load i32, ptr %368, align 4, !tbaa !65
  %370 = mul nsw i32 %367, %369
  %371 = sext i32 %370 to i64
  %372 = icmp ne i64 %365, %371
  br i1 %372, label %373, label %378

373:                                              ; preds = %366
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %601

374:                                              ; preds = %596, %562, %364
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %22, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %23, align 4
  br label %602

378:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #6
  %379 = load i32, ptr %29, align 4, !tbaa !9
  %380 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN19HighsOrbitopeMatrixclEii(ptr noundef nonnull align 8 dereferenceable(104) %20, i32 noundef 0, i32 noundef %379)
          to label %381 unwind label %413

381:                                              ; preds = %378
  store ptr %380, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #6
  %382 = load i32, ptr %29, align 4, !tbaa !9
  %383 = sub nsw i32 %382, 1
  %384 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN19HighsOrbitopeMatrixclEii(ptr noundef nonnull align 8 dereferenceable(104) %20, i32 noundef 0, i32 noundef %383)
          to label %385 unwind label %417

385:                                              ; preds = %381
  store ptr %384, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #6
  store i8 0, ptr %33, align 1, !tbaa !81
  br label %386

386:                                              ; preds = %483, %385
  br label %387

387:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #6
  %388 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %44, i32 0, i32 8
  %389 = load ptr, ptr %32, align 8, !tbaa !5
  %390 = getelementptr inbounds i32, ptr %389, i64 0
  %391 = load i32, ptr %390, align 4, !tbaa !9
  %392 = sext i32 %391 to i64
  %393 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %388, i64 noundef %392) #6
  %394 = load i32, ptr %393, align 4, !tbaa !9
  store i32 %394, ptr %34, align 4, !tbaa !9
  store ptr null, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #6
  %395 = load ptr, ptr %7, align 8, !tbaa !5
  %396 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %395, i32 0, i32 5
  %397 = load i32, ptr %8, align 4, !tbaa !9
  %398 = sext i32 %397 to i64
  %399 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %396, i64 noundef %398) #6
  %400 = load i32, ptr %399, align 4, !tbaa !9
  %401 = add nsw i32 %400, 1
  store i32 %401, ptr %35, align 4, !tbaa !9
  br label %402

402:                                              ; preds = %465, %387
  %403 = load i32, ptr %35, align 4, !tbaa !9
  %404 = load ptr, ptr %7, align 8, !tbaa !5
  %405 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %404, i32 0, i32 5
  %406 = load i32, ptr %8, align 4, !tbaa !9
  %407 = add nsw i32 %406, 1
  %408 = sext i32 %407 to i64
  %409 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %405, i64 noundef %408) #6
  %410 = load i32, ptr %409, align 4, !tbaa !9
  %411 = icmp slt i32 %403, %410
  br i1 %411, label %421, label %412

412:                                              ; preds = %402
  store i32 15, ptr %11, align 4
  br label %468

413:                                              ; preds = %378
  %414 = landingpad { ptr, i32 }
          cleanup
  %415 = extractvalue { ptr, i32 } %414, 0
  store ptr %415, ptr %22, align 8
  %416 = extractvalue { ptr, i32 } %414, 1
  store i32 %416, ptr %23, align 4
  br label %561

417:                                              ; preds = %381
  %418 = landingpad { ptr, i32 }
          cleanup
  %419 = extractvalue { ptr, i32 } %418, 0
  store ptr %419, ptr %22, align 8
  %420 = extractvalue { ptr, i32 } %418, 1
  store i32 %420, ptr %23, align 4
  br label %560

421:                                              ; preds = %402
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #6
  %422 = load ptr, ptr %7, align 8, !tbaa !5
  %423 = getelementptr inbounds %"struct.HighsSymmetryDetection::ComponentData", ptr %422, i32 0, i32 6
  %424 = load i32, ptr %35, align 4, !tbaa !9
  %425 = sext i32 %424 to i64
  %426 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %423, i64 noundef %425) #6
  %427 = load i32, ptr %426, align 4, !tbaa !9
  store i32 %427, ptr %36, align 4, !tbaa !9
  %428 = load ptr, ptr %9, align 8, !tbaa !5
  %429 = getelementptr inbounds %struct.HighsSymmetries, ptr %428, i32 0, i32 1
  %430 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %429) #6
  %431 = load i32, ptr %36, align 4, !tbaa !9
  %432 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %44, i32 0, i32 34
  %433 = load i32, ptr %432, align 8, !tbaa !79
  %434 = mul nsw i32 %431, %433
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds i32, ptr %430, i64 %435
  store ptr %436, ptr %24, align 8, !tbaa !5
  %437 = load ptr, ptr %24, align 8, !tbaa !5
  %438 = load i32, ptr %34, align 4, !tbaa !9
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds i32, ptr %437, i64 %439
  %441 = load i32, ptr %440, align 4, !tbaa !9
  %442 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %44, i32 0, i32 9
  %443 = load i32, ptr %34, align 4, !tbaa !9
  %444 = sext i32 %443 to i64
  %445 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %442, i64 noundef %444) #6
  %446 = load i32, ptr %445, align 4, !tbaa !9
  %447 = icmp ne i32 %441, %446
  br i1 %447, label %448, label %461

448:                                              ; preds = %421
  %449 = load ptr, ptr %24, align 8, !tbaa !5
  %450 = load i32, ptr %34, align 4, !tbaa !9
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds i32, ptr %449, i64 %451
  %453 = invoke noundef ptr @_ZN14HighsHashTableIivE4findERKi(ptr noundef nonnull align 8 dereferenceable(40) %25, ptr noundef nonnull align 4 dereferenceable(4) %452)
          to label %454 unwind label %457

454:                                              ; preds = %448
  %455 = icmp ne ptr %453, null
  br i1 %455, label %461, label %456

456:                                              ; preds = %454
  store i8 1, ptr %33, align 1, !tbaa !81
  store i32 15, ptr %11, align 4
  br label %462

457:                                              ; preds = %448
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %22, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  br label %485

461:                                              ; preds = %454, %421
  store i32 0, ptr %11, align 4
  br label %462

462:                                              ; preds = %461, %456
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  %463 = load i32, ptr %11, align 4
  switch i32 %463, label %468 [
    i32 0, label %464
  ]

464:                                              ; preds = %462
  br label %465

465:                                              ; preds = %464
  %466 = load i32, ptr %35, align 4, !tbaa !9
  %467 = add nsw i32 %466, 1
  store i32 %467, ptr %35, align 4, !tbaa !9
  br label %402, !llvm.loop !83

468:                                              ; preds = %462, %412
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  br label %469

469:                                              ; preds = %468
  %470 = load i8, ptr %33, align 1, !tbaa !81, !range !84, !noundef !85
  %471 = trunc i8 %470 to i1
  br i1 %471, label %482, label %472

472:                                              ; preds = %469
  %473 = load i8, ptr %30, align 1, !tbaa !81, !range !84, !noundef !85
  %474 = trunc i8 %473 to i1
  br i1 %474, label %482, label %475

475:                                              ; preds = %472
  %476 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN19HighsOrbitopeMatrixclEii(ptr noundef nonnull align 8 dereferenceable(104) %20, i32 noundef 0, i32 noundef 0)
          to label %477 unwind label %478

477:                                              ; preds = %475
  store ptr %476, ptr %32, align 8, !tbaa !5
  store i8 1, ptr %30, align 1, !tbaa !81
  store i32 13, ptr %11, align 4
  br label %483, !llvm.loop !86

478:                                              ; preds = %475
  %479 = landingpad { ptr, i32 }
          cleanup
  %480 = extractvalue { ptr, i32 } %479, 0
  store ptr %480, ptr %22, align 8
  %481 = extractvalue { ptr, i32 } %479, 1
  store i32 %481, ptr %23, align 4
  br label %485

482:                                              ; preds = %472, %469
  store i32 14, ptr %11, align 4
  br label %483

483:                                              ; preds = %482, %477
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  %484 = load i32, ptr %11, align 4
  switch i32 %484, label %617 [
    i32 13, label %386
    i32 14, label %486
  ]

485:                                              ; preds = %478, %457
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  br label %559

486:                                              ; preds = %483
  %487 = load i8, ptr %33, align 1, !tbaa !81, !range !84, !noundef !85
  %488 = trunc i8 %487 to i1
  br i1 %488, label %490, label %489

489:                                              ; preds = %486
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %556

490:                                              ; preds = %486
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #6
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %491

491:                                              ; preds = %548, %490
  %492 = load i32, ptr %37, align 4, !tbaa !9
  %493 = getelementptr inbounds %struct.HighsOrbitopeMatrix, ptr %20, i32 0, i32 1
  %494 = load i32, ptr %493, align 4, !tbaa !65
  %495 = icmp slt i32 %492, %494
  br i1 %495, label %497, label %496

496:                                              ; preds = %491
  store i32 18, ptr %11, align 4
  br label %551

497:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #6
  %498 = load ptr, ptr %24, align 8, !tbaa !5
  %499 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %44, i32 0, i32 8
  %500 = load ptr, ptr %32, align 8, !tbaa !5
  %501 = load i32, ptr %37, align 4, !tbaa !9
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds i32, ptr %500, i64 %502
  %504 = load i32, ptr %503, align 4, !tbaa !9
  %505 = sext i32 %504 to i64
  %506 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %499, i64 noundef %505) #6
  %507 = load i32, ptr %506, align 4, !tbaa !9
  %508 = sext i32 %507 to i64
  %509 = getelementptr inbounds i32, ptr %498, i64 %508
  %510 = load i32, ptr %509, align 4, !tbaa !9
  store i32 %510, ptr %38, align 4, !tbaa !9
  %511 = load i32, ptr %38, align 4, !tbaa !9
  %512 = load ptr, ptr %31, align 8, !tbaa !5
  %513 = load i32, ptr %37, align 4, !tbaa !9
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds i32, ptr %512, i64 %514
  store i32 %511, ptr %515, align 4, !tbaa !9
  %516 = load ptr, ptr %24, align 8, !tbaa !5
  %517 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %44, i32 0, i32 8
  %518 = load i32, ptr %38, align 4, !tbaa !9
  %519 = sext i32 %518 to i64
  %520 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %517, i64 noundef %519) #6
  %521 = load i32, ptr %520, align 4, !tbaa !9
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds i32, ptr %516, i64 %522
  %524 = load i32, ptr %523, align 4, !tbaa !9
  %525 = load ptr, ptr %32, align 8, !tbaa !5
  %526 = load i32, ptr %37, align 4, !tbaa !9
  %527 = sext i32 %526 to i64
  %528 = getelementptr inbounds i32, ptr %525, i64 %527
  %529 = load i32, ptr %528, align 4, !tbaa !9
  %530 = icmp ne i32 %524, %529
  br i1 %530, label %531, label %532

531:                                              ; preds = %497
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %545

532:                                              ; preds = %497
  %533 = load ptr, ptr %31, align 8, !tbaa !5
  %534 = load i32, ptr %37, align 4, !tbaa !9
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds i32, ptr %533, i64 %535
  %537 = invoke noundef zeroext i1 @_ZN14HighsHashTableIivE6insertIJRiEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40) %25, ptr noundef nonnull align 4 dereferenceable(4) %536)
          to label %538 unwind label %540

538:                                              ; preds = %532
  br i1 %537, label %544, label %539

539:                                              ; preds = %538
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %545

540:                                              ; preds = %532
  %541 = landingpad { ptr, i32 }
          cleanup
  %542 = extractvalue { ptr, i32 } %541, 0
  store ptr %542, ptr %22, align 8
  %543 = extractvalue { ptr, i32 } %541, 1
  store i32 %543, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  br label %559

544:                                              ; preds = %538
  store i32 0, ptr %11, align 4
  br label %545

545:                                              ; preds = %544, %539, %531
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  %546 = load i32, ptr %11, align 4
  switch i32 %546, label %551 [
    i32 0, label %547
  ]

547:                                              ; preds = %545
  br label %548

548:                                              ; preds = %547
  %549 = load i32, ptr %37, align 4, !tbaa !9
  %550 = add nsw i32 %549, 1
  store i32 %550, ptr %37, align 4, !tbaa !9
  br label %491, !llvm.loop !87

551:                                              ; preds = %545, %496
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  %552 = load i32, ptr %11, align 4
  switch i32 %552, label %556 [
    i32 18, label %553
  ]

553:                                              ; preds = %551
  %554 = load i32, ptr %29, align 4, !tbaa !9
  %555 = add nsw i32 %554, 1
  store i32 %555, ptr %29, align 4, !tbaa !9
  store i32 0, ptr %11, align 4
  br label %556

556:                                              ; preds = %553, %551, %489
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  %557 = load i32, ptr %11, align 4
  switch i32 %557, label %601 [
    i32 0, label %558
  ]

558:                                              ; preds = %556
  br label %359, !llvm.loop !88

559:                                              ; preds = %540, %485
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #6
  br label %560

560:                                              ; preds = %559, %417
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  br label %561

561:                                              ; preds = %560, %413
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  br label %602

562:                                              ; preds = %359
  %563 = invoke noundef i64 @_ZNK14HighsHashTableIivE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %25)
          to label %564 unwind label %374

564:                                              ; preds = %562
  %565 = load i32, ptr %10, align 4, !tbaa !9
  %566 = sext i32 %565 to i64
  %567 = icmp ne i64 %563, %566
  br i1 %567, label %568, label %569

568:                                              ; preds = %564
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %601

569:                                              ; preds = %564
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #6
  %570 = getelementptr inbounds %struct.HighsOrbitopeMatrix, ptr %20, i32 0, i32 5
  store ptr %570, ptr %39, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #6
  %571 = load ptr, ptr %39, align 8, !tbaa !5
  %572 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %571) #6
  %573 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %40, i32 0, i32 0
  store ptr %572, ptr %573, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #6
  %574 = load ptr, ptr %39, align 8, !tbaa !5
  %575 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %574) #6
  %576 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %41, i32 0, i32 0
  store ptr %575, ptr %576, align 8
  br label %577

577:                                              ; preds = %590, %569
  %578 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %41) #6
  br i1 %578, label %580, label %579

579:                                              ; preds = %577
  store i32 21, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #6
  br label %596

580:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #6
  %581 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %40) #6
  %582 = load i32, ptr %581, align 4, !tbaa !9
  store i32 %582, ptr %42, align 4, !tbaa !9
  %583 = load ptr, ptr %9, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.HighsSymmetries, ptr %583, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #6
  %585 = load ptr, ptr %9, align 8, !tbaa !5
  %586 = getelementptr inbounds %struct.HighsSymmetries, ptr %585, i32 0, i32 6
  %587 = call noundef i64 @_ZNKSt6vectorI19HighsOrbitopeMatrixSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %586) #6
  store i64 %587, ptr %43, align 8, !tbaa !89
  %588 = invoke noundef zeroext i1 @_ZN14HighsHashTableIiiE6insertIJRimEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40) %584, ptr noundef nonnull align 4 dereferenceable(4) %42, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %589 unwind label %592

589:                                              ; preds = %580
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  br label %590

590:                                              ; preds = %589
  %591 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %40) #6
  br label %577

592:                                              ; preds = %580
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %22, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #6
  br label %602

596:                                              ; preds = %579
  %597 = load ptr, ptr %9, align 8, !tbaa !5
  %598 = getelementptr inbounds %struct.HighsSymmetries, ptr %597, i32 0, i32 6
  %599 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorI19HighsOrbitopeMatrixSaIS0_EE12emplace_backIJS0_EEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %598, ptr noundef nonnull align 8 dereferenceable(104) %20)
          to label %600 unwind label %374

600:                                              ; preds = %596
  store i1 true, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %601

601:                                              ; preds = %600, %568, %556, %373
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  br label %603

602:                                              ; preds = %592, %561, %374
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  br label %604

603:                                              ; preds = %601, %356
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @_ZN14HighsHashTableIivED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %25) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @_ZN19HighsOrbitopeMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %20) #6
  call void @llvm.lifetime.end.p0(i64 104, ptr %20) #6
  br label %607

604:                                              ; preds = %602, %335
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @_ZN14HighsHashTableIivED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %25) #6
  br label %605

605:                                              ; preds = %604, %270
  call void @llvm.lifetime.end.p0(i64 40, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  br label %606

606:                                              ; preds = %605, %248
  call void @_ZN19HighsOrbitopeMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %20) #6
  call void @llvm.lifetime.end.p0(i64 104, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  br label %612

607:                                              ; preds = %603, %229
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  br label %608

608:                                              ; preds = %607, %209
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  br label %609

609:                                              ; preds = %608, %191, %143
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  br label %610

610:                                              ; preds = %609, %121, %61
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  %611 = load i1, ptr %5, align 1
  ret i1 %611

612:                                              ; preds = %606
  %613 = load ptr, ptr %22, align 8
  %614 = load i32, ptr %23, align 4
  %615 = insertvalue { ptr, i32 } poison, ptr %613, 0
  %616 = insertvalue { ptr, i32 } %615, i32 %614, 1
  resume { ptr, i32 } %616

617:                                              ; preds = %483
  unreachable
}

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN14HighsHashTableIivE6insertIJRiEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN14HighsHashTableIivE6insertIJRKiEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4)) #4 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN14HighsHashTableIiiE6insertIJRimEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) #4 align 2

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!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, !10, i64 656, !10, i64 660, !10, i64 664, !10, i64 668, !10, i64 672, !10, i64 676, !10, i64 680, !10, i64 684, !10, i64 688, !54, 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 = !{!"_ZTSSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE", !55, i64 0}
!55 = !{!"_ZTSSt12_Vector_baseIN22HighsSymmetryDetection4NodeESaIS1_EE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseIN22HighsSymmetryDetection4NodeESaIS1_EE12_Vector_implE", !57, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseIN22HighsSymmetryDetection4NodeESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!58 = !{!59, !59, i64 0}
!59 = !{!"_ZTS12HighsVarType", !7, i64 0}
!60 = !{!61, !61, i64 0}
!61 = !{!"double", !7, i64 0}
!62 = distinct !{!62, !63}
!63 = !{!"llvm.loop.mustprogress"}
!64 = distinct !{!64, !63}
!65 = !{!66, !10, i64 4}
!66 = !{!"_ZTS19HighsOrbitopeMatrix", !10, i64 0, !10, i64 4, !10, i64 8, !67, i64 16, !74, i64 56, !13, i64 80}
!67 = !{!"_ZTS14HighsHashTableIiiE", !68, i64 0, !40, i64 8, !46, i64 16, !46, i64 24, !46, i64 32}
!68 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEE", !69, i64 0}
!69 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterELb1ELb1EE", !70, i64 0}
!70 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEE", !71, i64 0}
!71 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEEE", !72, i64 0}
!72 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEEE", !73, i64 0}
!73 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryIiiELb0EE", !6, i64 0}
!74 = !{!"_ZTSSt6vectorIaSaIaEE", !75, i64 0}
!75 = !{!"_ZTSSt12_Vector_baseIaSaIaEE", !76, i64 0}
!76 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE12_Vector_implE", !77, i64 0}
!77 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!78 = !{!66, !10, i64 0}
!79 = !{!12, !10, i64 688}
!80 = distinct !{!80, !63}
!81 = !{!82, !82, i64 0}
!82 = !{!"bool", !7, i64 0}
!83 = distinct !{!83, !63}
!84 = !{i8 0, i8 2}
!85 = !{}
!86 = distinct !{!86, !63}
!87 = distinct !{!87, !63}
!88 = distinct !{!88, !63}
!89 = !{!46, !46, i64 0}


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

%struct.HighsOrbitopeMatrix = type { i32, i32, i32, %class.HighsHashTable.56, %"class.std::vector.128", %"class.std::vector" }
%class.HighsHashTable.56 = type { %"class.std::unique_ptr.57", %"class.std::unique_ptr.25", i64, i64, i64 }
%"class.std::unique_ptr.57" = type { %"struct.std::__uniq_ptr_data.58" }
%"struct.std::__uniq_ptr_data.58" = type { %"class.std::__uniq_ptr_impl.59" }
%"class.std::__uniq_ptr_impl.59" = type { %"class.std::tuple.60" }
%"class.std::tuple.60" = type { %"struct.std::_Tuple_impl.61" }
%"struct.std::_Tuple_impl.61" = type { %"struct.std::_Head_base.64" }
%"struct.std::_Head_base.64" = 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.std::vector.128" = type { %"struct.std::_Vector_base.129" }
%"struct.std::_Vector_base.129" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = 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.HighsHashTable.114 = type { %"class.std::unique_ptr.115", %"class.std::unique_ptr.25", i64, i64, i64 }
%"class.std::unique_ptr.115" = type { %"struct.std::__uniq_ptr_data.116" }
%"struct.std::__uniq_ptr_data.116" = type { %"class.std::__uniq_ptr_impl.117" }
%"class.std::__uniq_ptr_impl.117" = type { %"class.std::tuple.118" }
%"class.std::tuple.118" = type { %"struct.std::_Tuple_impl.119" }
%"struct.std::_Tuple_impl.119" = type { %"struct.std::_Head_base.122" }
%"struct.std::_Head_base.122" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.47" = type { ptr }

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN22HighsSymmetryDetection14isFullOrbitopeERKNS_13ComponentDataEiR15HighsSymmetries(ptr noundef nonnull align 8 dereferenceable(720) %0, ptr noundef nonnull align 8 dereferenceable(264) %1, i32 noundef %2, ptr noundef nonnull align 8 dereferenceable(216) %3) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %struct.HighsOrbitopeMatrix, align 8
  %6 = alloca i32, align 4
  %7 = alloca %class.HighsHashTable.114, align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %10 = alloca i32, align 4
  %11 = alloca i64, align 8
  %12 = getelementptr inbounds i8, ptr %1, i64 72
  %13 = add nsw i32 %2, 1
  %14 = sext i32 %13 to i64
  %15 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %14) #5
  %16 = load i32, ptr %15, align 4, !tbaa !5
  %17 = sext i32 %2 to i64
  %18 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %17) #5
  %19 = load i32, ptr %18, align 4, !tbaa !5
  %20 = sub nsw i32 %16, %19
  %21 = icmp eq i32 %20, 1
  br i1 %21, label %.loopexit, label %22

22:                                               ; preds = %4
  %23 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %17) #5
  %24 = load i32, ptr %23, align 4, !tbaa !5
  %25 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %14) #5
  %26 = load i32, ptr %25, align 4, !tbaa !5
  %.not254 = icmp slt i32 %24, %26
  br i1 %.not254, label %.lr.ph, label %.critedge201

.lr.ph:                                           ; preds = %22
  %27 = getelementptr inbounds i8, ptr %1, i64 96
  %28 = sext i32 %24 to i64
  br label %33

29:                                               ; preds = %.critedge
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %30 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %14) #5
  %31 = load i32, ptr %30, align 4, !tbaa !5
  %32 = sext i32 %31 to i64
  %.not = icmp slt i64 %indvars.iv.next, %32
  br i1 %.not, label %33, label %.critedge201, !llvm.loop !9

33:                                               ; preds = %.lr.ph, %29
  %indvars.iv = phi i64 [ %28, %.lr.ph ], [ %indvars.iv.next, %29 ]
  %34 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %indvars.iv) #5
  %35 = load i32, ptr %34, align 4, !tbaa !5
  %36 = load ptr, ptr %0, align 8, !tbaa !11
  %37 = getelementptr inbounds i8, ptr %36, i64 376
  %38 = sext i32 %35 to i64
  %39 = tail call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef %38) #5
  %40 = load i8, ptr %39, align 1, !tbaa !59
  %41 = icmp eq i8 %40, 0
  br i1 %41, label %.loopexit, label %42

42:                                               ; preds = %33
  %43 = load ptr, ptr %0, align 8, !tbaa !11
  %44 = getelementptr inbounds i8, ptr %43, i64 32
  %45 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %38) #5
  %46 = load double, ptr %45, align 8, !tbaa !61
  %47 = fcmp une double %46, 0.000000e+00
  br i1 %47, label %.loopexit, label %.critedge

.critedge:                                        ; preds = %42
  %48 = load ptr, ptr %0, align 8, !tbaa !11
  %49 = getelementptr inbounds i8, ptr %48, i64 56
  %50 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %38) #5
  %51 = load double, ptr %50, align 8, !tbaa !61
  %52 = fcmp une double %51, 1.000000e+00
  br i1 %52, label %.loopexit, label %29

.critedge201:                                     ; preds = %29, %22
  %53 = getelementptr inbounds i8, ptr %1, i64 192
  %54 = getelementptr inbounds i8, ptr %1, i64 168
  %55 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %54, i64 noundef %17) #5
  %56 = load i32, ptr %55, align 4, !tbaa !5
  %57 = sext i32 %56 to i64
  %58 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %57) #5
  %59 = load i32, ptr %58, align 4, !tbaa !5
  %60 = getelementptr inbounds i8, ptr %1, i64 240
  %61 = sext i32 %59 to i64
  %62 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %61) #5
  %63 = load i32, ptr %62, align 4, !tbaa !5
  %64 = and i32 %63, 1
  %.not181 = icmp eq i32 %64, 0
  br i1 %.not181, label %65, label %.loopexit

65:                                               ; preds = %.critedge201
  %66 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %54, i64 noundef %17) #5
  %67 = load i32, ptr %66, align 4, !tbaa !5
  %68 = sext i32 %67 to i64
  br label %69

69:                                               ; preds = %73, %65
  %indvars.iv283 = phi i64 [ %indvars.iv.next284, %73 ], [ %68, %65 ]
  %indvars.iv.next284 = add nsw i64 %indvars.iv283, 1
  %70 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %54, i64 noundef %14) #5
  %71 = load i32, ptr %70, align 4, !tbaa !5
  %72 = sext i32 %71 to i64
  %.not183 = icmp slt i64 %indvars.iv.next284, %72
  br i1 %.not183, label %73, label %.critedge203

73:                                               ; preds = %69
  %74 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %indvars.iv.next284) #5
  %75 = load i32, ptr %74, align 4, !tbaa !5
  %76 = sext i32 %75 to i64
  %77 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %76) #5
  %78 = load i32, ptr %77, align 4, !tbaa !5
  %79 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %61) #5
  %80 = load i32, ptr %79, align 4, !tbaa !5
  %.not182 = icmp eq i32 %78, %80
  br i1 %.not182, label %69, label %.loopexit, !llvm.loop !63

.critedge203:                                     ; preds = %69
  %81 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %61) #5
  %82 = load i32, ptr %81, align 4, !tbaa !5
  %83 = ashr i32 %82, 1
  %84 = sdiv i32 %20, %83
  %85 = mul nsw i32 %84, %83
  %.not184 = icmp eq i32 %85, %20
  br i1 %.not184, label %86, label %.loopexit

86:                                               ; preds = %.critedge203
  %87 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %54, i64 noundef %14) #5
  %88 = load i32, ptr %87, align 4, !tbaa !5
  %89 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %54, i64 noundef %17) #5
  %90 = load i32, ptr %89, align 4, !tbaa !5
  %91 = sub nsw i32 %88, %90
  %92 = add nsw i32 %84, -1
  %.not185 = icmp eq i32 %91, %92
  br i1 %.not185, label %93, label %.loopexit

93:                                               ; preds = %86
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %5) #5
  call void @_ZN19HighsOrbitopeMatrixC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %5)
  %94 = getelementptr inbounds i8, ptr %5, i64 80
  %95 = sext i32 %20 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #5
  store i32 -1, ptr %6, align 4, !tbaa !5
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef %95, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %98 unwind label %96

96:                                               ; preds = %93
  %97 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #5
  br label %244

98:                                               ; preds = %93
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #5
  %99 = getelementptr inbounds i8, ptr %5, i64 4
  store i32 %83, ptr %99, align 4, !tbaa !64
  store i32 %84, ptr %5, align 8, !tbaa !77
  %100 = getelementptr inbounds i8, ptr %3, i64 24
  %101 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %100) #5
  %102 = getelementptr inbounds i8, ptr %0, i64 688
  %103 = load i32, ptr %102, align 8, !tbaa !78
  %104 = mul nsw i32 %103, %59
  %105 = sext i32 %104 to i64
  %106 = getelementptr inbounds i32, ptr %101, i64 %105
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #5
  invoke void @_ZN14HighsHashTableIivEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %7)
          to label %.preheader unwind label %114

.preheader:                                       ; preds = %98
  %107 = load i32, ptr %102, align 8, !tbaa !78
  %.not188256 = icmp sgt i32 %107, 0
  br i1 %.not188256, label %.lr.ph259, label %.critedge205.preheader

.lr.ph259:                                        ; preds = %.preheader
  %108 = getelementptr inbounds i8, ptr %0, i64 176
  %109 = getelementptr inbounds i8, ptr %0, i64 200
  br label %116

.critedge205.preheader:                           ; preds = %select.unfold, %.preheader
  %110 = load i32, ptr %5, align 8, !tbaa !77
  %111 = icmp sgt i32 %110, 2
  br i1 %111, label %.lr.ph268, label %.critedge205._crit_edge

.lr.ph268:                                        ; preds = %.critedge205.preheader
  %112 = getelementptr inbounds i8, ptr %0, i64 176
  %113 = getelementptr inbounds i8, ptr %0, i64 200
  br label %151

114:                                              ; preds = %98
  %115 = landingpad { ptr, i32 }
          cleanup
  br label %243

116:                                              ; preds = %.lr.ph259, %select.unfold
  %indvars.iv286 = phi i64 [ 0, %.lr.ph259 ], [ %indvars.iv.next287, %select.unfold ]
  %.0175257 = phi i32 [ 0, %.lr.ph259 ], [ %.1176, %select.unfold ]
  %117 = getelementptr inbounds i32, ptr %106, i64 %indvars.iv286
  %118 = load i32, ptr %117, align 4, !tbaa !5
  %119 = sext i32 %118 to i64
  %120 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %108, i64 noundef %119) #5
  %121 = load i32, ptr %120, align 4, !tbaa !5
  %122 = sext i32 %121 to i64
  %.not186 = icmp slt i64 %indvars.iv286, %122
  br i1 %.not186, label %123, label %select.unfold

123:                                              ; preds = %116
  %124 = icmp eq i32 %.0175257, %83
  br i1 %124, label %.thread236, label %125

125:                                              ; preds = %123
  %126 = getelementptr inbounds i32, ptr %106, i64 %122
  %127 = load i32, ptr %126, align 4, !tbaa !5
  %128 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %109, i64 noundef %indvars.iv286) #5
  %129 = load i32, ptr %128, align 4, !tbaa !5
  %.not187 = icmp eq i32 %127, %129
  br i1 %.not187, label %130, label %.thread236

130:                                              ; preds = %125
  %131 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %109, i64 noundef %indvars.iv286) #5
  %132 = load i32, ptr %131, align 4, !tbaa !5
  %133 = sext i32 %.0175257 to i64
  %134 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef %133) #5
  store i32 %132, ptr %134, align 4, !tbaa !5
  %135 = load i32, ptr %117, align 4, !tbaa !5
  %136 = load i32, ptr %99, align 4, !tbaa !64
  %137 = add nsw i32 %136, %.0175257
  %138 = sext i32 %137 to i64
  %139 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef %138) #5
  store i32 %135, ptr %139, align 4, !tbaa !5
  %140 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %109, i64 noundef %indvars.iv286) #5
  %141 = invoke noundef zeroext i1 @_ZN14HighsHashTableIivE6insertIJRiEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40) %7, ptr noundef nonnull align 4 dereferenceable(4) %140)
          to label %142 unwind label %143

142:                                              ; preds = %130
  br i1 %141, label %145, label %.thread236

143:                                              ; preds = %145, %130
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %242

145:                                              ; preds = %142
  %146 = invoke noundef zeroext i1 @_ZN14HighsHashTableIivE6insertIJRKiEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40) %7, ptr noundef nonnull align 4 dereferenceable(4) %117)
          to label %147 unwind label %143

147:                                              ; preds = %145
  %148 = add nsw i32 %.0175257, 1
  br i1 %146, label %select.unfold, label %.thread236

select.unfold:                                    ; preds = %147, %116
  %.1176 = phi i32 [ %.0175257, %116 ], [ %148, %147 ]
  %indvars.iv.next287 = add nuw nsw i64 %indvars.iv286, 1
  %149 = load i32, ptr %102, align 8, !tbaa !78
  %150 = sext i32 %149 to i64
  %.not188 = icmp slt i64 %indvars.iv.next287, %150
  br i1 %.not188, label %116, label %.critedge205.preheader, !llvm.loop !79

151:                                              ; preds = %.lr.ph268, %.critedge205
  %.0164267 = phi i1 [ false, %.lr.ph268 ], [ %.1165, %.critedge205 ]
  %.0167266 = phi i32 [ 2, %.lr.ph268 ], [ %220, %.critedge205 ]
  %152 = call noundef i64 @_ZNK14HighsHashTableIivE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %7)
  %153 = load i32, ptr %99, align 4, !tbaa !64
  %154 = mul nsw i32 %153, %.0167266
  %155 = sext i32 %154 to i64
  %.not190 = icmp eq i64 %152, %155
  br i1 %.not190, label %158, label %.thread236

156:                                              ; preds = %._crit_edge271
  %157 = landingpad { ptr, i32 }
          cleanup
  br label %242

158:                                              ; preds = %151
  %159 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN19HighsOrbitopeMatrixclEii(ptr noundef nonnull align 8 dereferenceable(104) %5, i32 noundef 0, i32 noundef %.0167266)
  %160 = add nsw i32 %.0167266, -1
  br label %161

161:                                              ; preds = %._crit_edge, %158
  %.sink = phi i32 [ %160, %158 ], [ 0, %._crit_edge ]
  %.1165 = phi i1 [ %.0164267, %158 ], [ true, %._crit_edge ]
  %162 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN19HighsOrbitopeMatrixclEii(ptr noundef nonnull align 8 dereferenceable(104) %5, i32 noundef 0, i32 noundef %.sink)
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = sext i32 %163 to i64
  %165 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %112, i64 noundef %164) #5
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %54, i64 noundef %17) #5
  %168 = load i32, ptr %167, align 4, !tbaa !5
  %.0151260 = add i32 %168, 1
  %169 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %54, i64 noundef %14) #5
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = icmp slt i32 %.0151260, %170
  br i1 %171, label %.lr.ph262, label %._crit_edge

.lr.ph262:                                        ; preds = %161
  %172 = sext i32 %166 to i64
  %173 = sext i32 %.0151260 to i64
  br label %174

174:                                              ; preds = %.lr.ph262, %191
  %indvars.iv289 = phi i64 [ %173, %.lr.ph262 ], [ %indvars.iv.next290, %191 ]
  %175 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %indvars.iv289) #5
  %176 = load i32, ptr %175, align 4, !tbaa !5
  %177 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %100) #5
  %178 = load i32, ptr %102, align 8, !tbaa !78
  %179 = mul nsw i32 %178, %176
  %180 = sext i32 %179 to i64
  %181 = getelementptr inbounds i32, ptr %177, i64 %180
  %182 = getelementptr inbounds i32, ptr %181, i64 %172
  %183 = load i32, ptr %182, align 4, !tbaa !5
  %184 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %113, i64 noundef %172) #5
  %185 = load i32, ptr %184, align 4, !tbaa !5
  %.not191 = icmp eq i32 %183, %185
  br i1 %.not191, label %191, label %186

186:                                              ; preds = %174
  %187 = invoke noundef ptr @_ZN14HighsHashTableIivE4findERKi(ptr noundef nonnull align 8 dereferenceable(40) %7, ptr noundef nonnull align 4 dereferenceable(4) %182)
          to label %188 unwind label %189

188:                                              ; preds = %186
  %.not192 = icmp eq ptr %187, null
  br i1 %.not192, label %.thread216.loopexit, label %191

189:                                              ; preds = %186
  %190 = landingpad { ptr, i32 }
          cleanup
  br label %242

191:                                              ; preds = %174, %188
  %indvars.iv.next290 = add nsw i64 %indvars.iv289, 1
  %192 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %54, i64 noundef %14) #5
  %193 = load i32, ptr %192, align 4, !tbaa !5
  %194 = sext i32 %193 to i64
  %195 = icmp slt i64 %indvars.iv.next290, %194
  br i1 %195, label %174, label %._crit_edge, !llvm.loop !80

._crit_edge:                                      ; preds = %191, %161
  br i1 %.1165, label %.thread236, label %161

.thread216.loopexit:                              ; preds = %188
  %196 = load i32, ptr %99, align 4, !tbaa !64
  %.not199263 = icmp sgt i32 %196, 0
  br i1 %.not199263, label %.lr.ph265, label %.critedge205

.thread216:                                       ; preds = %217
  %indvars.iv.next293 = add nuw nsw i64 %indvars.iv292, 1
  %197 = load i32, ptr %99, align 4, !tbaa !64
  %198 = sext i32 %197 to i64
  %.not199 = icmp slt i64 %indvars.iv.next293, %198
  br i1 %.not199, label %.lr.ph265, label %.critedge205, !llvm.loop !81

.lr.ph265:                                        ; preds = %.thread216.loopexit, %.thread216
  %indvars.iv292 = phi i64 [ %indvars.iv.next293, %.thread216 ], [ 0, %.thread216.loopexit ]
  %199 = getelementptr inbounds i32, ptr %162, i64 %indvars.iv292
  %200 = load i32, ptr %199, align 4, !tbaa !5
  %201 = sext i32 %200 to i64
  %202 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %112, i64 noundef %201) #5
  %203 = load i32, ptr %202, align 4, !tbaa !5
  %204 = sext i32 %203 to i64
  %205 = getelementptr inbounds i32, ptr %181, i64 %204
  %206 = load i32, ptr %205, align 4, !tbaa !5
  %207 = getelementptr inbounds i32, ptr %159, i64 %indvars.iv292
  store i32 %206, ptr %207, align 4, !tbaa !5
  %208 = sext i32 %206 to i64
  %209 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %112, i64 noundef %208) #5
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = sext i32 %210 to i64
  %212 = getelementptr inbounds i32, ptr %181, i64 %211
  %213 = load i32, ptr %212, align 4, !tbaa !5
  %214 = load i32, ptr %199, align 4, !tbaa !5
  %.not193 = icmp eq i32 %213, %214
  br i1 %.not193, label %215, label %.thread236

215:                                              ; preds = %.lr.ph265
  %216 = invoke noundef zeroext i1 @_ZN14HighsHashTableIivE6insertIJRiEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40) %7, ptr noundef nonnull align 4 dereferenceable(4) %207)
          to label %217 unwind label %218

217:                                              ; preds = %215
  br i1 %216, label %.thread216, label %.thread236

218:                                              ; preds = %215
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %242

.critedge205:                                     ; preds = %.thread216, %.thread216.loopexit
  %220 = add nuw nsw i32 %.0167266, 1
  %221 = load i32, ptr %5, align 8, !tbaa !77
  %222 = icmp slt i32 %220, %221
  br i1 %222, label %151, label %.critedge205._crit_edge

.critedge205._crit_edge:                          ; preds = %.critedge205, %.critedge205.preheader
  %223 = call noundef i64 @_ZNK14HighsHashTableIivE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %7)
  %.not189 = icmp eq i64 %223, %95
  br i1 %.not189, label %224, label %.thread236

224:                                              ; preds = %.critedge205._crit_edge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #5
  %225 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %94) #5
  store ptr %225, ptr %8, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #5
  %226 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %94) #5
  store ptr %226, ptr %9, align 8
  %227 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %9) #5
  br i1 %227, label %.lr.ph270, label %._crit_edge271

.lr.ph270:                                        ; preds = %224
  %228 = getelementptr inbounds i8, ptr %3, i64 168
  %229 = getelementptr inbounds i8, ptr %3, i64 144
  br label %232

._crit_edge271:                                   ; preds = %237, %224
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  %230 = getelementptr inbounds i8, ptr %3, i64 144
  %231 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorI19HighsOrbitopeMatrixSaIS0_EE12emplace_backIJS0_EEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %230, ptr noundef nonnull align 8 dereferenceable(104) %5)
          to label %.thread236 unwind label %156

232:                                              ; preds = %.lr.ph270, %237
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #5
  %233 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #5
  %234 = load i32, ptr %233, align 4, !tbaa !5
  store i32 %234, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #5
  %235 = call noundef i64 @_ZNKSt6vectorI19HighsOrbitopeMatrixSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %229) #5
  store i64 %235, ptr %11, align 8, !tbaa !82
  %236 = invoke noundef zeroext i1 @_ZN14HighsHashTableIiiE6insertIJRimEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40) %228, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %237 unwind label %240

237:                                              ; preds = %232
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5
  %238 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #5
  %239 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %9) #5
  br i1 %239, label %232, label %._crit_edge271

240:                                              ; preds = %232
  %241 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  br label %242

.thread236:                                       ; preds = %147, %142, %125, %123, %151, %._crit_edge, %.lr.ph265, %217, %.critedge205._crit_edge, %._crit_edge271
  %.15 = phi i1 [ false, %.critedge205._crit_edge ], [ true, %._crit_edge271 ], [ false, %217 ], [ false, %.lr.ph265 ], [ false, %._crit_edge ], [ false, %151 ], [ false, %123 ], [ false, %125 ], [ false, %142 ], [ false, %147 ]
  call void @_ZN14HighsHashTableIivED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %7) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #5
  call void @_ZN19HighsOrbitopeMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %5) #5
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %5) #5
  br label %.loopexit

242:                                              ; preds = %156, %240, %218, %189, %143
  %.pn.pn.pn = phi { ptr, i32 } [ %144, %143 ], [ %241, %240 ], [ %157, %156 ], [ %219, %218 ], [ %190, %189 ]
  call void @_ZN14HighsHashTableIivED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %7) #5
  br label %243

243:                                              ; preds = %242, %114
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %242 ], [ %115, %114 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #5
  br label %244

244:                                              ; preds = %243, %96
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %243 ], [ %97, %96 ]
  call void @_ZN19HighsOrbitopeMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %5) #5
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %5) #5
  resume { ptr, i32 } %.pn.pn.pn.pn.pn

.loopexit:                                        ; preds = %33, %42, %.critedge, %73, %.critedge201, %.thread236, %86, %.critedge203, %4
  %.19 = phi i1 [ false, %4 ], [ false, %.critedge201 ], [ false, %.critedge203 ], [ %.15, %.thread236 ], [ false, %86 ], [ false, %73 ], [ false, %.critedge ], [ false, %42 ], [ false, %33 ]
  ret i1 %.19
}

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN14HighsHashTableIivE6insertIJRiEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN14HighsHashTableIivE6insertIJRKiEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN14HighsHashTableIiiE6insertIJRimEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = !{!12, !13, i64 0}
!12 = !{!"_ZTS22HighsSymmetryDetection", !13, i64 0, !14, i64 8, !14, i64 32, !18, i64 56, !18, i64 80, !14, i64 104, !14, i64 128, !14, i64 152, !14, i64 176, !14, i64 200, !14, i64 224, !14, i64 248, !14, i64 272, !22, i64 296, !14, i64 320, !26, i64 344, !14, i64 368, !14, i64 392, !30, i64 416, !30, i64 440, !30, i64 464, !14, i64 488, !14, i64 512, !34, i64 536, !48, i64 576, !48, i64 616, !6, i64 656, !6, i64 660, !6, i64 664, !6, i64 668, !6, i64 672, !6, i64 676, !6, i64 680, !6, i64 684, !6, i64 688, !55, i64 696}
!13 = !{!"any pointer", !7, i64 0}
!14 = !{!"_ZTSSt6vectorIiSaIiEE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!18 = !{!"_ZTSSt6vectorISt4pairIijESaIS1_EE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseISt4pairIijESaIS1_EE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseISt4pairIijESaIS1_EE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseISt4pairIijESaIS1_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!22 = !{!"_ZTSSt6vectorIhSaIhEE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!26 = !{!"_ZTSSt6vectorIPiSaIS0_EE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseIPiSaIS0_EE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIPiSaIS0_EE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIPiSaIS0_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!30 = !{!"_ZTSSt6vectorIjSaIjEE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!34 = !{!"_ZTS14HighsHashTableIijE", !35, i64 0, !41, i64 8, !47, i64 16, !47, i64 24, !47, i64 32}
!35 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEE", !36, i64 0}
!36 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterELb1ELb1EE", !37, i64 0}
!37 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEE", !38, i64 0}
!38 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEEE", !39, i64 0}
!39 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEEE", !40, i64 0}
!40 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryIijELb0EE", !13, i64 0}
!41 = !{!"_ZTSSt10unique_ptrIA_hSt14default_deleteIS0_EE", !42, i64 0}
!42 = !{!"_ZTSSt15__uniq_ptr_dataIhSt14default_deleteIA_hELb1ELb1EE", !43, i64 0}
!43 = !{!"_ZTSSt15__uniq_ptr_implIhSt14default_deleteIA_hEE", !44, i64 0}
!44 = !{!"_ZTSSt5tupleIJPhSt14default_deleteIA_hEEE", !45, i64 0}
!45 = !{!"_ZTSSt11_Tuple_implILm0EJPhSt14default_deleteIA_hEEE", !46, i64 0}
!46 = !{!"_ZTSSt10_Head_baseILm0EPhLb0EE", !13, i64 0}
!47 = !{!"long", !7, i64 0}
!48 = !{!"_ZTS14HighsHashTableISt5tupleIJiijEEvE", !49, i64 0, !41, i64 8, !47, i64 16, !47, i64 24, !47, i64 32}
!49 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterEE", !50, i64 0}
!50 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterELb1ELb1EE", !51, i64 0}
!51 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterEE", !52, i64 0}
!52 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIS_IJiijEEvEN14HighsHashTableIS1_vE12OpNewDeleterEEE", !53, i64 0}
!53 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterEEE", !54, i64 0}
!54 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryISt5tupleIJiijEEvELb0EE", !13, 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", !13, i64 0, !13, i64 8, !13, i64 16}
!59 = !{!60, !60, i64 0}
!60 = !{!"_ZTS12HighsVarType", !7, i64 0}
!61 = !{!62, !62, i64 0}
!62 = !{!"double", !7, i64 0}
!63 = distinct !{!63, !10}
!64 = !{!65, !6, i64 4}
!65 = !{!"_ZTS19HighsOrbitopeMatrix", !6, i64 0, !6, i64 4, !6, i64 8, !66, i64 16, !73, i64 56, !14, i64 80}
!66 = !{!"_ZTS14HighsHashTableIiiE", !67, i64 0, !41, i64 8, !47, i64 16, !47, i64 24, !47, i64 32}
!67 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEE", !68, i64 0}
!68 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterELb1ELb1EE", !69, i64 0}
!69 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEE", !70, i64 0}
!70 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEEE", !71, i64 0}
!71 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEEE", !72, i64 0}
!72 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryIiiELb0EE", !13, i64 0}
!73 = !{!"_ZTSSt6vectorIaSaIaEE", !74, i64 0}
!74 = !{!"_ZTSSt12_Vector_baseIaSaIaEE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE12_Vector_implE", !76, i64 0}
!76 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!77 = !{!65, !6, i64 0}
!78 = !{!12, !6, i64 688}
!79 = distinct !{!79, !10}
!80 = distinct !{!80, !10}
!81 = distinct !{!81, !10}
!82 = !{!47, !47, i64 0}


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