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

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

%class.HighsHashTable.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::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 }
%"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.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.__gnu_cxx::__normal_iterator.48" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.47" = type { 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.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.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 }
%"struct.HighsSymmetryDetection::Node" = type { i32, i32, i32, i32 }
%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 }
%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 }

@.str.52 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [19 x i8], align 1
@__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries = external hidden unnamed_addr constant [52 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [194 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [83 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 uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN22HighsSymmetryDetection11mergeOrbitsEii(ptr noundef nonnull align 8 dereferenceable(720), i32 noundef, i32 noundef) #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN22HighsSymmetryDetection19partitionRefinementEv(ptr noundef nonnull align 8 dereferenceable(720)) #1 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN22HighsSymmetryDetection26determineNextToDistinguishEv(ptr noundef nonnull align 8 dereferenceable(720)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN22HighsSymmetryDetection17distinguishVertexEi(ptr noundef nonnull align 8 dereferenceable(720), i32 noundef) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN22HighsSymmetryDetection16dumpCurrentGraphEv(ptr dead_on_unwind noalias writable sret(%class.HighsHashTable.33) align 8, ptr noundef nonnull align 8 dereferenceable(720)) #1 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK22HighsSymmetryDetection18isFromBinaryColumnEi(ptr noundef nonnull align 8 dereferenceable(720), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN22HighsSymmetryDetection20computeComponentDataERK15HighsSymmetries(ptr dead_on_unwind noalias writable sret(%"struct.HighsSymmetryDetection::ComponentData") align 8, ptr noundef nonnull align 8 dereferenceable(720), ptr noundef nonnull align 8 dereferenceable(216)) #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN22HighsSymmetryDetection14isFullOrbitopeERKNS_13ComponentDataEiR15HighsSymmetries(ptr noundef nonnull align 8 dereferenceable(720), ptr noundef nonnull align 8 dereferenceable(264), i32 noundef, ptr noundef nonnull align 8 dereferenceable(216)) #1 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)) #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)) #1 align 2

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

58:                                               ; preds = %2
  br label %61

59:                                               ; preds = %2
  call void @__assert_fail(ptr noundef @.str.67, ptr noundef @.str.52, i32 noundef 1686, ptr noundef @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries) #6
  unreachable

60:                                               ; No predecessors!
  br label %61

61:                                               ; preds = %60, %58
  call void @_ZN22HighsSymmetryDetection19initializeGroundSetEv(ptr noundef nonnull align 8 dereferenceable(720) %54)
  %62 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  call void @_ZNSt6vectorIjSaIjEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %62) #7
  %63 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 12
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %63) #7
  call void @_ZN22HighsSymmetryDetection10createNodeEv(ptr noundef nonnull align 8 dereferenceable(720) %54)
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #7
  %64 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %65 = load i32, ptr %64, align 8, !tbaa !9
  %66 = sdiv i32 64000000, %65
  store i32 %66, ptr %5, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #7
  %67 = call noundef ptr @_ZN17HighsTaskExecutor18getThisWorkerDequeEv()
  store ptr %67, ptr %6, align 8, !tbaa !5
  br label %68

68:                                               ; preds = %573, %571, %61
  %69 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 35
  %70 = call noundef zeroext i1 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %69) #7
  %71 = xor i1 %70, true
  br i1 %71, label %72, label %574

72:                                               ; preds = %68
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  %73 = call noundef i32 @_ZN22HighsSymmetryDetection16selectTargetCellEv(ptr noundef nonnull align 8 dereferenceable(720) %54)
  store i32 %73, ptr %7, align 4, !tbaa !57
  %74 = load i32, ptr %7, align 4, !tbaa !57
  %75 = icmp eq i32 %74, -1
  br i1 %75, label %76, label %539

76:                                               ; preds = %72
  %77 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 21
  %78 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %77) #7
  br i1 %78, label %79, label %130

79:                                               ; preds = %76
  %80 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 5
  %81 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 21
  %82 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %81, ptr noundef nonnull align 8 dereferenceable(24) %80)
  %83 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %84 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 19
  %85 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIjSaIjEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %84, ptr noundef nonnull align 8 dereferenceable(24) %83)
  %86 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %87 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 20
  %88 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIjSaIjEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %87, ptr noundef nonnull align 8 dereferenceable(24) %86)
  call void @llvm.lifetime.start.p0(i64 40, ptr %8) #7
  call void @_ZN22HighsSymmetryDetection16dumpCurrentGraphEv(ptr dead_on_unwind writable sret(%class.HighsHashTable.33) align 8 %8, ptr noundef nonnull align 8 dereferenceable(720) %54)
  %89 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 24
  %90 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN14HighsHashTableISt5tupleIJiijEEvEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(40) %89, ptr noundef nonnull align 8 dereferenceable(40) %8) #7
  call void @_ZN14HighsHashTableISt5tupleIJiijEEvED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %8) #7
  %91 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 35
  %92 = call noundef i64 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %91) #7
  %93 = trunc i64 %92 to i32
  %94 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 28
  store i32 %93, ptr %94, align 8, !tbaa !58
  %95 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 35
  %96 = call noundef i64 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %95) #7
  %97 = trunc i64 %96 to i32
  %98 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 29
  store i32 %97, ptr %98, align 4, !tbaa !59
  %99 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %100 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %99) #7
  %101 = trunc i64 %100 to i32
  %102 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 26
  store i32 %101, ptr %102, align 8, !tbaa !60
  %103 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %104 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %103) #7
  %105 = trunc i64 %104 to i32
  %106 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 27
  store i32 %105, ptr %106, align 4, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  %107 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 28
  %108 = load i32, ptr %107, align 8, !tbaa !58
  %109 = sub nsw i32 %108, 1
  store i32 %109, ptr %9, align 4, !tbaa !57
  br label %110

110:                                              ; preds = %125, %79
  %111 = load i32, ptr %9, align 4, !tbaa !57
  %112 = icmp sgt i32 %111, 0
  br i1 %112, label %113, label %123

113:                                              ; preds = %110
  %114 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 35
  %115 = load i32, ptr %9, align 4, !tbaa !57
  %116 = sub nsw i32 %115, 1
  %117 = sext i32 %116 to i64
  %118 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %114, i64 noundef %117) #7
  %119 = getelementptr inbounds %"struct.HighsSymmetryDetection::Node", ptr %118, i32 0, i32 2
  %120 = load i32, ptr %119, align 4, !tbaa !62
  %121 = call noundef zeroext i1 @_ZNK22HighsSymmetryDetection18isFromBinaryColumnEi(ptr noundef nonnull align 8 dereferenceable(720) %54, i32 noundef %120)
  %122 = xor i1 %121, true
  br label %123

123:                                              ; preds = %113, %110
  %124 = phi i1 [ false, %110 ], [ %122, %113 ]
  br i1 %124, label %125, label %128

125:                                              ; preds = %123
  %126 = load i32, ptr %9, align 4, !tbaa !57
  %127 = add nsw i32 %126, -1
  store i32 %127, ptr %9, align 4, !tbaa !57
  br label %110, !llvm.loop !64

128:                                              ; preds = %123
  %129 = load i32, ptr %9, align 4, !tbaa !57
  call void @_ZN22HighsSymmetryDetection16switchToNextNodeEi(ptr noundef nonnull align 8 dereferenceable(720) %54, i32 noundef %129)
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  br label %537

130:                                              ; preds = %76
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  store i32 -1, ptr %10, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #7
  %131 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 35
  %132 = call noundef i64 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %131) #7
  %133 = sub i64 %132, 1
  %134 = trunc i64 %133 to i32
  store i32 %134, ptr %11, align 4, !tbaa !57
  %135 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %136 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %135) #7
  %137 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 19
  %138 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %137) #7
  %139 = icmp eq i64 %136, %138
  br i1 %139, label %140, label %141

140:                                              ; preds = %130
  br label %143

141:                                              ; preds = %130
  call void @__assert_fail(ptr noundef @.str.68, ptr noundef @.str.52, i32 noundef 1714, ptr noundef @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries) #6
  unreachable

142:                                              ; No predecessors!
  br label %143

143:                                              ; preds = %142, %140
  %144 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 26
  %145 = load i32, ptr %144, align 8, !tbaa !60
  %146 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %147 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %146) #7
  %148 = trunc i64 %147 to i32
  %149 = icmp eq i32 %145, %148
  br i1 %149, label %157, label %150

150:                                              ; preds = %143
  %151 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 27
  %152 = load i32, ptr %151, align 4, !tbaa !61
  %153 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %154 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %153) #7
  %155 = trunc i64 %154 to i32
  %156 = icmp eq i32 %152, %155
  br i1 %156, label %157, label %485

157:                                              ; preds = %150, %143
  %158 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 26
  %159 = load i32, ptr %158, align 8, !tbaa !60
  %160 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %161 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %160) #7
  %162 = trunc i64 %161 to i32
  %163 = icmp eq i32 %159, %162
  br i1 %163, label %164, label %287

164:                                              ; preds = %157
  %165 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 24
  %166 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection19compareCurrentGraphERK14HighsHashTableISt5tupleIJiijEEvERi(ptr noundef nonnull align 8 dereferenceable(720) %54, ptr noundef nonnull align 8 dereferenceable(40) %165, ptr noundef nonnull align 4 dereferenceable(4) %10)
  br i1 %166, label %167, label %287

167:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  %168 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 30
  %169 = load i32, ptr %168, align 8, !tbaa !66
  %170 = add nsw i32 %169, 1
  store i32 %170, ptr %168, align 8, !tbaa !66
  %171 = and i32 %169, 63
  store i32 %171, ptr %12, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %172 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 16
  %173 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %172) #7
  %174 = load i32, ptr %12, align 4, !tbaa !57
  %175 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 33
  %176 = load i32, ptr %175, align 4, !tbaa !67
  %177 = mul nsw i32 %174, %176
  %178 = sext i32 %177 to i64
  %179 = getelementptr inbounds i32, ptr %173, i64 %178
  store ptr %179, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  store i32 0, ptr %14, align 4, !tbaa !57
  br label %180

180:                                              ; preds = %205, %167
  %181 = load i32, ptr %14, align 4, !tbaa !57
  %182 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 33
  %183 = load i32, ptr %182, align 4, !tbaa !67
  %184 = icmp slt i32 %181, %183
  br i1 %184, label %186, label %185

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

186:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  %187 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 21
  %188 = load i32, ptr %14, align 4, !tbaa !57
  %189 = sext i32 %188 to i64
  %190 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %187, i64 noundef %189) #7
  %191 = load i32, ptr %190, align 4, !tbaa !57
  store i32 %191, ptr %15, align 4, !tbaa !57
  %192 = load i32, ptr %15, align 4, !tbaa !57
  %193 = load ptr, ptr %13, align 8, !tbaa !5
  %194 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 8
  %195 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 5
  %196 = load i32, ptr %14, align 4, !tbaa !57
  %197 = sext i32 %196 to i64
  %198 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %195, i64 noundef %197) #7
  %199 = load i32, ptr %198, align 4, !tbaa !57
  %200 = sext i32 %199 to i64
  %201 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %194, i64 noundef %200) #7
  %202 = load i32, ptr %201, align 4, !tbaa !57
  %203 = sext i32 %202 to i64
  %204 = getelementptr inbounds i32, ptr %193, i64 %203
  store i32 %192, ptr %204, align 4, !tbaa !57
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  br label %205

205:                                              ; preds = %186
  %206 = load i32, ptr %14, align 4, !tbaa !57
  %207 = add nsw i32 %206, 1
  store i32 %207, ptr %14, align 4, !tbaa !57
  br label %180, !llvm.loop !68

208:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #7
  store i8 0, ptr %16, align 1, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  store i32 0, ptr %17, align 4, !tbaa !57
  br label %209

209:                                              ; preds = %246, %208
  %210 = load i32, ptr %17, align 4, !tbaa !57
  %211 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 33
  %212 = load i32, ptr %211, align 4, !tbaa !67
  %213 = icmp slt i32 %210, %212
  br i1 %213, label %215, label %214

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

215:                                              ; preds = %209
  %216 = load ptr, ptr %13, align 8, !tbaa !5
  %217 = load i32, ptr %17, align 4, !tbaa !57
  %218 = sext i32 %217 to i64
  %219 = getelementptr inbounds i32, ptr %216, i64 %218
  %220 = load i32, ptr %219, align 4, !tbaa !57
  %221 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 9
  %222 = load i32, ptr %17, align 4, !tbaa !57
  %223 = sext i32 %222 to i64
  %224 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %221, i64 noundef %223) #7
  %225 = load i32, ptr %224, align 4, !tbaa !57
  %226 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection11mergeOrbitsEii(ptr noundef nonnull align 8 dereferenceable(720) %54, i32 noundef %220, i32 noundef %225)
  br i1 %226, label %227, label %245

227:                                              ; preds = %215
  %228 = load i32, ptr %17, align 4, !tbaa !57
  %229 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %230 = load i32, ptr %229, align 8, !tbaa !9
  %231 = icmp slt i32 %228, %230
  br i1 %231, label %232, label %245

232:                                              ; preds = %227
  %233 = load ptr, ptr %13, align 8, !tbaa !5
  %234 = load i32, ptr %17, align 4, !tbaa !57
  %235 = sext i32 %234 to i64
  %236 = getelementptr inbounds i32, ptr %233, i64 %235
  %237 = load i32, ptr %236, align 4, !tbaa !57
  %238 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 31
  %239 = load i32, ptr %238, align 4, !tbaa !71
  %240 = icmp slt i32 %237, %239
  br i1 %240, label %241, label %242

241:                                              ; preds = %232
  br label %244

242:                                              ; preds = %232
  call void @__assert_fail(ptr noundef @.str.69, ptr noundef @.str.52, i32 noundef 1730, ptr noundef @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries) #6
  unreachable

243:                                              ; No predecessors!
  br label %244

244:                                              ; preds = %243, %241
  store i8 1, ptr %16, align 1, !tbaa !69
  br label %245

245:                                              ; preds = %244, %227, %215
  br label %246

246:                                              ; preds = %245
  %247 = load i32, ptr %17, align 4, !tbaa !57
  %248 = add nsw i32 %247, 1
  store i32 %248, ptr %17, align 4, !tbaa !57
  br label %209, !llvm.loop !72

249:                                              ; preds = %214
  %250 = load i8, ptr %16, align 1, !tbaa !69, !range !73, !noundef !74
  %251 = trunc i8 %250 to i1
  br i1 %251, label %252, label %280

252:                                              ; preds = %249
  %253 = load ptr, ptr %4, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.HighsSymmetries, ptr %253, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %255 = load ptr, ptr %4, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.HighsSymmetries, ptr %255, i32 0, i32 1
  %257 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %256) #7
  %258 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %19, i32 0, i32 0
  store ptr %257, ptr %258, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  %259 = load ptr, ptr %13, align 8, !tbaa !5
  %260 = load ptr, ptr %13, align 8, !tbaa !5
  %261 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %262 = load i32, ptr %261, align 8, !tbaa !9
  %263 = sext i32 %262 to i64
  %264 = getelementptr inbounds i32, ptr %260, i64 %263
  %265 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.48", ptr %18, i32 0, i32 0
  %266 = load ptr, ptr %265, align 8
  %267 = call ptr @_ZNSt6vectorIiSaIiEE6insertIPivEEN9__gnu_cxx17__normal_iteratorIS3_S1_EENS5_IPKiS1_EET_SA_(ptr noundef nonnull align 8 dereferenceable(24) %254, ptr %266, ptr noundef %259, ptr noundef %264)
  %268 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %20, i32 0, i32 0
  store ptr %267, ptr %268, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  %269 = load ptr, ptr %4, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.HighsSymmetries, ptr %269, i32 0, i32 8
  %271 = load i32, ptr %270, align 8, !tbaa !75
  %272 = add nsw i32 %271, 1
  store i32 %272, ptr %270, align 8, !tbaa !75
  %273 = load ptr, ptr %4, align 8, !tbaa !5
  %274 = getelementptr inbounds %struct.HighsSymmetries, ptr %273, i32 0, i32 8
  %275 = load i32, ptr %274, align 8, !tbaa !75
  %276 = load i32, ptr %5, align 4, !tbaa !57
  %277 = icmp eq i32 %275, %276
  br i1 %277, label %278, label %279

278:                                              ; preds = %252
  store i32 3, ptr %21, align 4
  br label %284

279:                                              ; preds = %252
  br label %280

280:                                              ; preds = %279, %249
  %281 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 28
  %282 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %281)
  %283 = load i32, ptr %282, align 4, !tbaa !57
  store i32 %283, ptr %11, align 4, !tbaa !57
  store i32 0, ptr %21, align 4
  br label %284

284:                                              ; preds = %280, %278
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  %285 = load i32, ptr %21, align 4
  switch i32 %285, label %534 [
    i32 0, label %286
  ]

286:                                              ; preds = %284
  br label %484

287:                                              ; preds = %164, %157
  %288 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 22
  %289 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %288) #7
  br i1 %289, label %420, label %290

290:                                              ; preds = %287
  %291 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 27
  %292 = load i32, ptr %291, align 4, !tbaa !61
  %293 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %294 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %293) #7
  %295 = trunc i64 %294 to i32
  %296 = icmp eq i32 %292, %295
  br i1 %296, label %297, label %420

297:                                              ; preds = %290
  %298 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 25
  %299 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection19compareCurrentGraphERK14HighsHashTableISt5tupleIJiijEEvERi(ptr noundef nonnull align 8 dereferenceable(720) %54, ptr noundef nonnull align 8 dereferenceable(40) %298, ptr noundef nonnull align 4 dereferenceable(4) %10)
  br i1 %299, label %300, label %420

300:                                              ; preds = %297
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  %301 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 30
  %302 = load i32, ptr %301, align 8, !tbaa !66
  %303 = add nsw i32 %302, 1
  store i32 %303, ptr %301, align 8, !tbaa !66
  %304 = and i32 %302, 63
  store i32 %304, ptr %22, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %305 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 16
  %306 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %305) #7
  %307 = load i32, ptr %22, align 4, !tbaa !57
  %308 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 33
  %309 = load i32, ptr %308, align 4, !tbaa !67
  %310 = mul nsw i32 %307, %309
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds i32, ptr %306, i64 %311
  store ptr %312, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  store i32 0, ptr %24, align 4, !tbaa !57
  br label %313

313:                                              ; preds = %338, %300
  %314 = load i32, ptr %24, align 4, !tbaa !57
  %315 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 33
  %316 = load i32, ptr %315, align 4, !tbaa !67
  %317 = icmp slt i32 %314, %316
  br i1 %317, label %319, label %318

318:                                              ; preds = %313
  store i32 12, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %341

319:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  %320 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 22
  %321 = load i32, ptr %24, align 4, !tbaa !57
  %322 = sext i32 %321 to i64
  %323 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %320, i64 noundef %322) #7
  %324 = load i32, ptr %323, align 4, !tbaa !57
  store i32 %324, ptr %25, align 4, !tbaa !57
  %325 = load i32, ptr %25, align 4, !tbaa !57
  %326 = load ptr, ptr %23, align 8, !tbaa !5
  %327 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 8
  %328 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 5
  %329 = load i32, ptr %24, align 4, !tbaa !57
  %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) #7
  %332 = load i32, ptr %331, align 4, !tbaa !57
  %333 = sext i32 %332 to i64
  %334 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %327, i64 noundef %333) #7
  %335 = load i32, ptr %334, align 4, !tbaa !57
  %336 = sext i32 %335 to i64
  %337 = getelementptr inbounds i32, ptr %326, i64 %336
  store i32 %325, ptr %337, align 4, !tbaa !57
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %338

338:                                              ; preds = %319
  %339 = load i32, ptr %24, align 4, !tbaa !57
  %340 = add nsw i32 %339, 1
  store i32 %340, ptr %24, align 4, !tbaa !57
  br label %313, !llvm.loop !88

341:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #7
  store i8 0, ptr %26, align 1, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  store i32 0, ptr %27, align 4, !tbaa !57
  br label %342

342:                                              ; preds = %379, %341
  %343 = load i32, ptr %27, align 4, !tbaa !57
  %344 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 33
  %345 = load i32, ptr %344, align 4, !tbaa !67
  %346 = icmp slt i32 %343, %345
  br i1 %346, label %348, label %347

347:                                              ; preds = %342
  store i32 15, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %382

348:                                              ; preds = %342
  %349 = load ptr, ptr %23, align 8, !tbaa !5
  %350 = load i32, ptr %27, align 4, !tbaa !57
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds i32, ptr %349, i64 %351
  %353 = load i32, ptr %352, align 4, !tbaa !57
  %354 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 9
  %355 = load i32, ptr %27, align 4, !tbaa !57
  %356 = sext i32 %355 to i64
  %357 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %354, i64 noundef %356) #7
  %358 = load i32, ptr %357, align 4, !tbaa !57
  %359 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection11mergeOrbitsEii(ptr noundef nonnull align 8 dereferenceable(720) %54, i32 noundef %353, i32 noundef %358)
  br i1 %359, label %360, label %378

360:                                              ; preds = %348
  %361 = load i32, ptr %27, align 4, !tbaa !57
  %362 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %363 = load i32, ptr %362, align 8, !tbaa !9
  %364 = icmp slt i32 %361, %363
  br i1 %364, label %365, label %378

365:                                              ; preds = %360
  %366 = load ptr, ptr %23, align 8, !tbaa !5
  %367 = load i32, ptr %27, align 4, !tbaa !57
  %368 = sext i32 %367 to i64
  %369 = getelementptr inbounds i32, ptr %366, i64 %368
  %370 = load i32, ptr %369, align 4, !tbaa !57
  %371 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 31
  %372 = load i32, ptr %371, align 4, !tbaa !71
  %373 = icmp slt i32 %370, %372
  br i1 %373, label %374, label %375

374:                                              ; preds = %365
  br label %377

375:                                              ; preds = %365
  call void @__assert_fail(ptr noundef @.str.69, ptr noundef @.str.52, i32 noundef 1758, ptr noundef @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries) #6
  unreachable

376:                                              ; No predecessors!
  br label %377

377:                                              ; preds = %376, %374
  store i8 1, ptr %26, align 1, !tbaa !69
  br label %378

378:                                              ; preds = %377, %360, %348
  br label %379

379:                                              ; preds = %378
  %380 = load i32, ptr %27, align 4, !tbaa !57
  %381 = add nsw i32 %380, 1
  store i32 %381, ptr %27, align 4, !tbaa !57
  br label %342, !llvm.loop !89

382:                                              ; preds = %347
  %383 = load i8, ptr %26, align 1, !tbaa !69, !range !73, !noundef !74
  %384 = trunc i8 %383 to i1
  br i1 %384, label %385, label %413

385:                                              ; preds = %382
  %386 = load ptr, ptr %4, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.HighsSymmetries, ptr %386, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %388 = load ptr, ptr %4, align 8, !tbaa !5
  %389 = getelementptr inbounds %struct.HighsSymmetries, ptr %388, i32 0, i32 1
  %390 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %389) #7
  %391 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %29, i32 0, i32 0
  store ptr %390, ptr %391, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  %392 = load ptr, ptr %23, align 8, !tbaa !5
  %393 = load ptr, ptr %23, align 8, !tbaa !5
  %394 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %395 = load i32, ptr %394, align 8, !tbaa !9
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds i32, ptr %393, i64 %396
  %398 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.48", ptr %28, i32 0, i32 0
  %399 = load ptr, ptr %398, align 8
  %400 = call ptr @_ZNSt6vectorIiSaIiEE6insertIPivEEN9__gnu_cxx17__normal_iteratorIS3_S1_EENS5_IPKiS1_EET_SA_(ptr noundef nonnull align 8 dereferenceable(24) %387, ptr %399, ptr noundef %392, ptr noundef %397)
  %401 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %30, i32 0, i32 0
  store ptr %400, ptr %401, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  %402 = load ptr, ptr %4, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.HighsSymmetries, ptr %402, i32 0, i32 8
  %404 = load i32, ptr %403, align 8, !tbaa !75
  %405 = add nsw i32 %404, 1
  store i32 %405, ptr %403, align 8, !tbaa !75
  %406 = load ptr, ptr %4, align 8, !tbaa !5
  %407 = getelementptr inbounds %struct.HighsSymmetries, ptr %406, i32 0, i32 8
  %408 = load i32, ptr %407, align 8, !tbaa !75
  %409 = load i32, ptr %5, align 4, !tbaa !57
  %410 = icmp eq i32 %408, %409
  br i1 %410, label %411, label %412

411:                                              ; preds = %385
  store i32 3, ptr %21, align 4
  br label %417

412:                                              ; preds = %385
  br label %413

413:                                              ; preds = %412, %382
  %414 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 29
  %415 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %414)
  %416 = load i32, ptr %415, align 4, !tbaa !57
  store i32 %416, ptr %11, align 4, !tbaa !57
  store i32 0, ptr %21, align 4
  br label %417

417:                                              ; preds = %413, %411
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  %418 = load i32, ptr %21, align 4
  switch i32 %418, label %534 [
    i32 0, label %419
  ]

419:                                              ; preds = %417
  br label %483

420:                                              ; preds = %297, %290, %287
  %421 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 27
  %422 = load i32, ptr %421, align 4, !tbaa !61
  %423 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %424 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %423) #7
  %425 = trunc i64 %424 to i32
  %426 = icmp slt i32 %422, %425
  br i1 %426, label %427, label %461

427:                                              ; preds = %420
  %428 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %429 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 27
  %430 = load i32, ptr %429, align 4, !tbaa !61
  %431 = sext i32 %430 to i64
  %432 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %428, i64 noundef %431) #7
  %433 = load i32, ptr %432, align 4, !tbaa !57
  %434 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 20
  %435 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 27
  %436 = load i32, ptr %435, align 4, !tbaa !61
  %437 = sext i32 %436 to i64
  %438 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %434, i64 noundef %437) #7
  %439 = load i32, ptr %438, align 4, !tbaa !57
  %440 = icmp ugt i32 %433, %439
  br i1 %440, label %441, label %461

441:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  %442 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 28
  %443 = load i32, ptr %442, align 8, !tbaa !58
  %444 = sub nsw i32 %443, 1
  store i32 %444, ptr %31, align 4, !tbaa !57
  br label %445

445:                                              ; preds = %455, %441
  %446 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 35
  %447 = load i32, ptr %31, align 4, !tbaa !57
  %448 = sext i32 %447 to i64
  %449 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %446, i64 noundef %448) #7
  %450 = getelementptr inbounds %"struct.HighsSymmetryDetection::Node", ptr %449, i32 0, i32 1
  %451 = load i32, ptr %450, align 4, !tbaa !90
  %452 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 27
  %453 = load i32, ptr %452, align 4, !tbaa !61
  %454 = icmp sle i32 %451, %453
  br i1 %454, label %455, label %458

455:                                              ; preds = %445
  %456 = load i32, ptr %31, align 4, !tbaa !57
  %457 = add nsw i32 %456, 1
  store i32 %457, ptr %31, align 4, !tbaa !57
  br label %445, !llvm.loop !91

458:                                              ; preds = %445
  %459 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull align 4 dereferenceable(4) %11)
  %460 = load i32, ptr %459, align 4, !tbaa !57
  store i32 %460, ptr %11, align 4, !tbaa !57
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br label %482

461:                                              ; preds = %427, %420
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #7
  %462 = load i32, ptr %11, align 4, !tbaa !57
  store i32 %462, ptr %32, align 4, !tbaa !57
  br label %463

463:                                              ; preds = %478, %461
  %464 = load i32, ptr %32, align 4, !tbaa !57
  %465 = icmp sge i32 %464, 0
  br i1 %465, label %466, label %481

466:                                              ; preds = %463
  %467 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 35
  %468 = load i32, ptr %32, align 4, !tbaa !57
  %469 = sext i32 %468 to i64
  %470 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %467, i64 noundef %469) #7
  %471 = getelementptr inbounds %"struct.HighsSymmetryDetection::Node", ptr %470, i32 0, i32 2
  %472 = load i32, ptr %471, align 4, !tbaa !62
  %473 = load i32, ptr %10, align 4, !tbaa !57
  %474 = icmp eq i32 %472, %473
  br i1 %474, label %475, label %477

475:                                              ; preds = %466
  %476 = load i32, ptr %32, align 4, !tbaa !57
  store i32 %476, ptr %11, align 4, !tbaa !57
  br label %481

477:                                              ; preds = %466
  br label %478

478:                                              ; preds = %477
  %479 = load i32, ptr %32, align 4, !tbaa !57
  %480 = add nsw i32 %479, -1
  store i32 %480, ptr %32, align 4, !tbaa !57
  br label %463, !llvm.loop !92

481:                                              ; preds = %475, %463
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  br label %482

482:                                              ; preds = %481, %458
  br label %483

483:                                              ; preds = %482, %419
  br label %484

484:                                              ; preds = %483, %286
  br label %532

485:                                              ; preds = %150
  %486 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 20
  %487 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 27
  %488 = load i32, ptr %487, align 4, !tbaa !61
  %489 = sext i32 %488 to i64
  %490 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %486, i64 noundef %489) #7
  %491 = load i32, ptr %490, align 4, !tbaa !57
  %492 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %493 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 27
  %494 = load i32, ptr %493, align 4, !tbaa !61
  %495 = sext i32 %494 to i64
  %496 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %492, i64 noundef %495) #7
  %497 = load i32, ptr %496, align 4, !tbaa !57
  %498 = icmp ugt i32 %491, %497
  br i1 %498, label %499, label %510

499:                                              ; preds = %485
  %500 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 20
  %501 = call noundef ptr @_ZNSt6vectorIjSaIjEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %500) #7
  %502 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %503 = call noundef ptr @_ZNSt6vectorIjSaIjEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %502) #7
  %504 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 27
  %505 = load i32, ptr %504, align 4, !tbaa !61
  %506 = sext i32 %505 to i64
  %507 = mul i64 %506, 4
  %508 = call i32 @memcmp(ptr noundef %501, ptr noundef %503, i64 noundef %507) #8
  %509 = icmp eq i32 %508, 0
  br label %510

510:                                              ; preds = %499, %485
  %511 = phi i1 [ false, %485 ], [ %509, %499 ]
  br i1 %511, label %512, label %513

512:                                              ; preds = %510
  br label %515

513:                                              ; preds = %510
  call void @__assert_fail(ptr noundef @.str.70, ptr noundef @.str.52, i32 noundef 1813, ptr noundef @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries) #6
  unreachable

514:                                              ; No predecessors!
  br label %515

515:                                              ; preds = %514, %512
  %516 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %517 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 20
  %518 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIjSaIjEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %517, ptr noundef nonnull align 8 dereferenceable(24) %516)
  call void @llvm.lifetime.start.p0(i64 40, ptr %33) #7
  call void @_ZN22HighsSymmetryDetection16dumpCurrentGraphEv(ptr dead_on_unwind writable sret(%class.HighsHashTable.33) align 8 %33, ptr noundef nonnull align 8 dereferenceable(720) %54)
  %519 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 25
  %520 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN14HighsHashTableISt5tupleIJiijEEvEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(40) %519, ptr noundef nonnull align 8 dereferenceable(40) %33) #7
  call void @_ZN14HighsHashTableISt5tupleIJiijEEvED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %33) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %33) #7
  %521 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 5
  %522 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 22
  %523 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %522, ptr noundef nonnull align 8 dereferenceable(24) %521)
  %524 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 35
  %525 = call noundef i64 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %524) #7
  %526 = trunc i64 %525 to i32
  %527 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 29
  store i32 %526, ptr %527, align 4, !tbaa !59
  %528 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 18
  %529 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %528) #7
  %530 = trunc i64 %529 to i32
  %531 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 27
  store i32 %530, ptr %531, align 4, !tbaa !61
  br label %532

532:                                              ; preds = %515, %484
  %533 = load i32, ptr %11, align 4, !tbaa !57
  call void @_ZN22HighsSymmetryDetection16switchToNextNodeEi(ptr noundef nonnull align 8 dereferenceable(720) %54, i32 noundef %533)
  store i32 0, ptr %21, align 4
  br label %534

534:                                              ; preds = %532, %417, %284
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  %535 = load i32, ptr %21, align 4
  switch i32 %535, label %571 [
    i32 0, label %536
  ]

536:                                              ; preds = %534
  br label %537

537:                                              ; preds = %536, %128
  %538 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN15HighsSplitDeque14checkInterruptEv(ptr noundef nonnull align 64 dereferenceable(524544) %538)
  br label %570

539:                                              ; preds = %72
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  %540 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 35
  %541 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %540) #7
  store ptr %541, ptr %34, align 8, !tbaa !5
  %542 = load i32, ptr %7, align 4, !tbaa !57
  %543 = load ptr, ptr %34, align 8, !tbaa !5
  %544 = getelementptr inbounds %"struct.HighsSymmetryDetection::Node", ptr %543, i32 0, i32 2
  store i32 %542, ptr %544, align 4, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #7
  %545 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection26determineNextToDistinguishEv(ptr noundef nonnull align 8 dereferenceable(720) %54)
  %546 = zext i1 %545 to i8
  store i8 %546, ptr %35, align 1, !tbaa !69
  %547 = load i8, ptr %35, align 1, !tbaa !69, !range !73, !noundef !74
  %548 = trunc i8 %547 to i1
  br i1 %548, label %549, label %550

549:                                              ; preds = %539
  br label %552

550:                                              ; preds = %539
  call void @__assert_fail(ptr noundef @.str.71, ptr noundef @.str.52, i32 noundef 1829, ptr noundef @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries) #6
  unreachable

551:                                              ; No predecessors!
  br label %552

552:                                              ; preds = %551, %549
  %553 = load i32, ptr %7, align 4, !tbaa !57
  %554 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection17distinguishVertexEi(ptr noundef nonnull align 8 dereferenceable(720) %54, i32 noundef %553)
  br i1 %554, label %560, label %555

555:                                              ; preds = %552
  %556 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 35
  %557 = call noundef i64 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %556) #7
  %558 = sub i64 %557, 1
  %559 = trunc i64 %558 to i32
  call void @_ZN22HighsSymmetryDetection16switchToNextNodeEi(ptr noundef nonnull align 8 dereferenceable(720) %54, i32 noundef %559)
  store i32 2, ptr %21, align 4
  br label %567, !llvm.loop !93

560:                                              ; preds = %552
  %561 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection19partitionRefinementEv(ptr noundef nonnull align 8 dereferenceable(720) %54)
  br i1 %561, label %566, label %562

562:                                              ; preds = %560
  %563 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 35
  %564 = call noundef i64 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %563) #7
  %565 = trunc i64 %564 to i32
  call void @_ZN22HighsSymmetryDetection16switchToNextNodeEi(ptr noundef nonnull align 8 dereferenceable(720) %54, i32 noundef %565)
  store i32 2, ptr %21, align 4
  br label %567, !llvm.loop !93

566:                                              ; preds = %560
  call void @_ZN22HighsSymmetryDetection10createNodeEv(ptr noundef nonnull align 8 dereferenceable(720) %54)
  store i32 0, ptr %21, align 4
  br label %567

567:                                              ; preds = %566, %562, %555
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  %568 = load i32, ptr %21, align 4
  switch i32 %568, label %571 [
    i32 0, label %569
  ]

569:                                              ; preds = %567
  br label %570

570:                                              ; preds = %569, %537
  store i32 0, ptr %21, align 4
  br label %571

571:                                              ; preds = %570, %567, %534
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  %572 = load i32, ptr %21, align 4
  switch i32 %572, label %912 [
    i32 0, label %573
    i32 3, label %574
    i32 2, label %68
  ]

573:                                              ; preds = %571
  br label %68, !llvm.loop !93

574:                                              ; preds = %571, %68
  %575 = load ptr, ptr %4, align 8, !tbaa !5
  %576 = getelementptr inbounds %struct.HighsSymmetries, ptr %575, i32 0, i32 8
  %577 = load i32, ptr %576, align 8, !tbaa !75
  %578 = load ptr, ptr %4, align 8, !tbaa !5
  %579 = getelementptr inbounds %struct.HighsSymmetries, ptr %578, i32 0, i32 9
  store i32 %577, ptr %579, align 4, !tbaa !94
  %580 = load ptr, ptr %4, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.HighsSymmetries, ptr %580, i32 0, i32 8
  %582 = load i32, ptr %581, align 8, !tbaa !75
  %583 = icmp sgt i32 %582, 0
  br i1 %583, label %584, label %906

584:                                              ; preds = %574
  %585 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 8
  %586 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 31
  %587 = load i32, ptr %586, align 4, !tbaa !71
  %588 = sext i32 %587 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %585, i64 noundef %588)
  call void @llvm.lifetime.start.p0(i64 264, ptr %36) #7
  %589 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN22HighsSymmetryDetection20computeComponentDataERK15HighsSymmetries(ptr dead_on_unwind writable sret(%"struct.HighsSymmetryDetection::ComponentData") align 8 %36, ptr noundef nonnull align 8 dereferenceable(720) %54, ptr noundef nonnull align 8 dereferenceable(216) %589)
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  %590 = invoke noundef i32 @_ZNK22HighsSymmetryDetection13ComponentData13numComponentsEv(ptr noundef nonnull align 8 dereferenceable(264) %36)
          to label %591 unwind label %597

591:                                              ; preds = %584
  store i32 %590, ptr %37, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #7
  store i32 0, ptr %40, align 4, !tbaa !57
  br label %592

592:                                              ; preds = %616, %591
  %593 = load i32, ptr %40, align 4, !tbaa !57
  %594 = load i32, ptr %37, align 4, !tbaa !57
  %595 = icmp slt i32 %593, %594
  br i1 %595, label %601, label %596

596:                                              ; preds = %592
  store i32 23, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %619

597:                                              ; preds = %584
  %598 = landingpad { ptr, i32 }
          cleanup
  %599 = extractvalue { ptr, i32 } %598, 0
  store ptr %599, ptr %38, align 8
  %600 = extractvalue { ptr, i32 } %598, 1
  store i32 %600, ptr %39, align 4
  br label %905

601:                                              ; preds = %592
  %602 = load i32, ptr %40, align 4, !tbaa !57
  %603 = invoke noundef i32 @_ZNK22HighsSymmetryDetection13ComponentData13componentSizeEi(ptr noundef nonnull align 8 dereferenceable(264) %36, i32 noundef %602)
          to label %604 unwind label %607

604:                                              ; preds = %601
  %605 = icmp eq i32 %603, 1
  br i1 %605, label %606, label %611

606:                                              ; preds = %604
  br label %616

607:                                              ; preds = %611, %601
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %38, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %905

611:                                              ; preds = %604
  %612 = load i32, ptr %40, align 4, !tbaa !57
  %613 = load ptr, ptr %4, align 8, !tbaa !5
  %614 = invoke noundef zeroext i1 @_ZN22HighsSymmetryDetection14isFullOrbitopeERKNS_13ComponentDataEiR15HighsSymmetries(ptr noundef nonnull align 8 dereferenceable(720) %54, ptr noundef nonnull align 8 dereferenceable(264) %36, i32 noundef %612, ptr noundef nonnull align 8 dereferenceable(216) %613)
          to label %615 unwind label %607

615:                                              ; preds = %611
  br label %616

616:                                              ; preds = %615, %606
  %617 = load i32, ptr %40, align 4, !tbaa !57
  %618 = add nsw i32 %617, 1
  store i32 %618, ptr %40, align 4, !tbaa !57
  br label %592, !llvm.loop !95

619:                                              ; preds = %596
  call void @llvm.lifetime.start.p0(i64 40, ptr %41) #7
  invoke void @_ZN14HighsHashTableIivEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %41)
          to label %620 unwind label %628

620:                                              ; preds = %619
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #7
  store i32 0, ptr %42, align 4, !tbaa !57
  br label %621

621:                                              ; preds = %683, %620
  %622 = load i32, ptr %42, align 4, !tbaa !57
  %623 = load ptr, ptr %4, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct.HighsSymmetries, ptr %623, i32 0, i32 8
  %625 = load i32, ptr %624, align 8, !tbaa !75
  %626 = icmp slt i32 %622, %625
  br i1 %626, label %632, label %627

627:                                              ; preds = %621
  store i32 26, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br label %686

628:                                              ; preds = %619
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %38, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %39, align 4
  br label %904

632:                                              ; preds = %621
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #7
  %633 = load ptr, ptr %4, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.HighsSymmetries, ptr %633, i32 0, i32 1
  %635 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %634) #7
  %636 = load i32, ptr %42, align 4, !tbaa !57
  %637 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %638 = load i32, ptr %637, align 8, !tbaa !9
  %639 = mul nsw i32 %636, %638
  %640 = sext i32 %639 to i64
  %641 = getelementptr inbounds i32, ptr %635, i64 %640
  store ptr %641, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #7
  store i32 0, ptr %44, align 4, !tbaa !57
  br label %642

642:                                              ; preds = %678, %632
  %643 = load i32, ptr %44, align 4, !tbaa !57
  %644 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %645 = load i32, ptr %644, align 8, !tbaa !9
  %646 = icmp slt i32 %643, %645
  br i1 %646, label %648, label %647

647:                                              ; preds = %642
  store i32 29, ptr %21, align 4
  br label %681

648:                                              ; preds = %642
  %649 = load ptr, ptr %43, align 8, !tbaa !5
  %650 = load i32, ptr %44, align 4, !tbaa !57
  %651 = sext i32 %650 to i64
  %652 = getelementptr inbounds i32, ptr %649, i64 %651
  %653 = load i32, ptr %652, align 4, !tbaa !57
  %654 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 9
  %655 = load i32, ptr %44, align 4, !tbaa !57
  %656 = sext i32 %655 to i64
  %657 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %654, i64 noundef %656) #7
  %658 = load i32, ptr %657, align 4, !tbaa !57
  %659 = icmp ne i32 %653, %658
  br i1 %659, label %660, label %677

660:                                              ; preds = %648
  %661 = load ptr, ptr %4, align 8, !tbaa !5
  %662 = getelementptr inbounds %struct.HighsSymmetries, ptr %661, i32 0, i32 7
  %663 = load ptr, ptr %43, align 8, !tbaa !5
  %664 = load i32, ptr %44, align 4, !tbaa !57
  %665 = sext i32 %664 to i64
  %666 = getelementptr inbounds i32, ptr %663, i64 %665
  %667 = invoke noundef ptr @_ZN14HighsHashTableIiiE4findERKi(ptr noundef nonnull align 8 dereferenceable(40) %662, ptr noundef nonnull align 4 dereferenceable(4) %666)
          to label %668 unwind label %673

668:                                              ; preds = %660
  %669 = icmp ne ptr %667, null
  br i1 %669, label %670, label %677

670:                                              ; preds = %668
  %671 = invoke noundef zeroext i1 @_ZN14HighsHashTableIivE6insertIJRiEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40) %41, ptr noundef nonnull align 4 dereferenceable(4) %42)
          to label %672 unwind label %673

672:                                              ; preds = %670
  store i32 29, ptr %21, align 4
  br label %681

673:                                              ; preds = %670, %660
  %674 = landingpad { ptr, i32 }
          cleanup
  %675 = extractvalue { ptr, i32 } %674, 0
  store ptr %675, ptr %38, align 8
  %676 = extractvalue { ptr, i32 } %674, 1
  store i32 %676, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br label %903

677:                                              ; preds = %668, %648
  br label %678

678:                                              ; preds = %677
  %679 = load i32, ptr %44, align 4, !tbaa !57
  %680 = add nsw i32 %679, 1
  store i32 %680, ptr %44, align 4, !tbaa !57
  br label %642, !llvm.loop !96

681:                                              ; preds = %672, %647
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br label %682

682:                                              ; preds = %681
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  br label %683

683:                                              ; preds = %682
  %684 = load i32, ptr %42, align 4, !tbaa !57
  %685 = add nsw i32 %684, 1
  store i32 %685, ptr %42, align 4, !tbaa !57
  br label %621, !llvm.loop !97

686:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  store i32 0, ptr %45, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  store i32 0, ptr %46, align 4, !tbaa !57
  br label %687

687:                                              ; preds = %736, %686
  %688 = load i32, ptr %46, align 4, !tbaa !57
  %689 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %690 = load i32, ptr %689, align 8, !tbaa !9
  %691 = icmp slt i32 %688, %690
  br i1 %691, label %693, label %692

692:                                              ; preds = %687
  store i32 32, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %739

693:                                              ; preds = %687
  %694 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 11
  %695 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 9
  %696 = load i32, ptr %46, align 4, !tbaa !57
  %697 = sext i32 %696 to i64
  %698 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %695, i64 noundef %697) #7
  %699 = load i32, ptr %698, align 4, !tbaa !57
  %700 = invoke noundef i32 @_ZN22HighsSymmetryDetection8getOrbitEi(ptr noundef nonnull align 8 dereferenceable(720) %54, i32 noundef %699)
          to label %701 unwind label %731

701:                                              ; preds = %693
  %702 = sext i32 %700 to i64
  %703 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %694, i64 noundef %702) #7
  %704 = load i32, ptr %703, align 4, !tbaa !57
  %705 = icmp eq i32 %704, 1
  br i1 %705, label %716, label %706

706:                                              ; preds = %701
  %707 = load ptr, ptr %4, align 8, !tbaa !5
  %708 = getelementptr inbounds %struct.HighsSymmetries, ptr %707, i32 0, i32 7
  %709 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 9
  %710 = load i32, ptr %46, align 4, !tbaa !57
  %711 = sext i32 %710 to i64
  %712 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %709, i64 noundef %711) #7
  %713 = invoke noundef ptr @_ZN14HighsHashTableIiiE4findERKi(ptr noundef nonnull align 8 dereferenceable(40) %708, ptr noundef nonnull align 4 dereferenceable(4) %712)
          to label %714 unwind label %731

714:                                              ; preds = %706
  %715 = icmp ne ptr %713, null
  br i1 %715, label %716, label %735

716:                                              ; preds = %714, %701
  %717 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 8
  %718 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 9
  %719 = load i32, ptr %46, align 4, !tbaa !57
  %720 = sext i32 %719 to i64
  %721 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %718, i64 noundef %720) #7
  %722 = load i32, ptr %721, align 4, !tbaa !57
  %723 = sext i32 %722 to i64
  %724 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %717, i64 noundef %723) #7
  store i32 -1, ptr %724, align 4, !tbaa !57
  %725 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 9
  %726 = load i32, ptr %46, align 4, !tbaa !57
  %727 = sext i32 %726 to i64
  %728 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %725, i64 noundef %727) #7
  store i32 -1, ptr %728, align 4, !tbaa !57
  %729 = load i32, ptr %45, align 4, !tbaa !57
  %730 = add nsw i32 %729, 1
  store i32 %730, ptr %45, align 4, !tbaa !57
  br label %735

731:                                              ; preds = %706, %693
  %732 = landingpad { ptr, i32 }
          cleanup
  %733 = extractvalue { ptr, i32 } %732, 0
  store ptr %733, ptr %38, align 8
  %734 = extractvalue { ptr, i32 } %732, 1
  store i32 %734, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %902

735:                                              ; preds = %716, %714
  br label %736

736:                                              ; preds = %735
  %737 = load i32, ptr %46, align 4, !tbaa !57
  %738 = add nsw i32 %737, 1
  store i32 %738, ptr %46, align 4, !tbaa !57
  br label %687, !llvm.loop !98

739:                                              ; preds = %692
  %740 = load i32, ptr %45, align 4, !tbaa !57
  %741 = icmp ne i32 %740, 0
  br i1 %741, label %742, label %874

742:                                              ; preds = %739
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #7
  store i32 0, ptr %47, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  %743 = load ptr, ptr %4, align 8, !tbaa !5
  %744 = getelementptr inbounds %struct.HighsSymmetries, ptr %743, i32 0, i32 1
  %745 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %744) #7
  store ptr %745, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %746 = load ptr, ptr %4, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.HighsSymmetries, ptr %746, i32 0, i32 1
  %748 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %747) #7
  %749 = load ptr, ptr %4, align 8, !tbaa !5
  %750 = getelementptr inbounds %struct.HighsSymmetries, ptr %749, i32 0, i32 8
  %751 = load i32, ptr %750, align 8, !tbaa !75
  %752 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %753 = load i32, ptr %752, align 8, !tbaa !9
  %754 = mul nsw i32 %751, %753
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds i32, ptr %748, i64 %755
  store ptr %756, ptr %49, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  %757 = load ptr, ptr %4, align 8, !tbaa !5
  %758 = getelementptr inbounds %struct.HighsSymmetries, ptr %757, i32 0, i32 1
  %759 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %758) #7
  store ptr %759, ptr %50, align 8, !tbaa !5
  br label %760

760:                                              ; preds = %805, %742
  %761 = load ptr, ptr %48, align 8, !tbaa !5
  %762 = load ptr, ptr %49, align 8, !tbaa !5
  %763 = icmp ne ptr %761, %762
  br i1 %763, label %764, label %813

764:                                              ; preds = %760
  %765 = invoke noundef ptr @_ZN14HighsHashTableIivE4findERKi(ptr noundef nonnull align 8 dereferenceable(40) %41, ptr noundef nonnull align 4 dereferenceable(4) %47)
          to label %766 unwind label %775

766:                                              ; preds = %764
  %767 = icmp ne ptr %765, null
  br i1 %767, label %800, label %768

768:                                              ; preds = %766
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  store i32 0, ptr %51, align 4, !tbaa !57
  br label %769

769:                                              ; preds = %796, %768
  %770 = load i32, ptr %51, align 4, !tbaa !57
  %771 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %772 = load i32, ptr %771, align 8, !tbaa !9
  %773 = icmp slt i32 %770, %772
  br i1 %773, label %779, label %774

774:                                              ; preds = %769
  store i32 37, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %799

775:                                              ; preds = %764
  %776 = landingpad { ptr, i32 }
          cleanup
  %777 = extractvalue { ptr, i32 } %776, 0
  store ptr %777, ptr %38, align 8
  %778 = extractvalue { ptr, i32 } %776, 1
  store i32 %778, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br label %902

779:                                              ; preds = %769
  %780 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 9
  %781 = load i32, ptr %51, align 4, !tbaa !57
  %782 = sext i32 %781 to i64
  %783 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %780, i64 noundef %782) #7
  %784 = load i32, ptr %783, align 4, !tbaa !57
  %785 = icmp eq i32 %784, -1
  br i1 %785, label %786, label %787

786:                                              ; preds = %779
  br label %796

787:                                              ; preds = %779
  %788 = load ptr, ptr %48, align 8, !tbaa !5
  %789 = load i32, ptr %51, align 4, !tbaa !57
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds i32, ptr %788, i64 %790
  %792 = load i32, ptr %791, align 4, !tbaa !57
  %793 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 %792, ptr %793, align 4, !tbaa !57
  %794 = load ptr, ptr %50, align 8, !tbaa !5
  %795 = getelementptr inbounds i32, ptr %794, i32 1
  store ptr %795, ptr %50, align 8, !tbaa !5
  br label %796

796:                                              ; preds = %787, %786
  %797 = load i32, ptr %51, align 4, !tbaa !57
  %798 = add nsw i32 %797, 1
  store i32 %798, ptr %51, align 4, !tbaa !57
  br label %769, !llvm.loop !99

799:                                              ; preds = %774
  br label %805

800:                                              ; preds = %766
  %801 = load ptr, ptr %4, align 8, !tbaa !5
  %802 = getelementptr inbounds %struct.HighsSymmetries, ptr %801, i32 0, i32 8
  %803 = load i32, ptr %802, align 8, !tbaa !75
  %804 = add nsw i32 %803, -1
  store i32 %804, ptr %802, align 8, !tbaa !75
  br label %805

805:                                              ; preds = %800, %799
  %806 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %807 = load i32, ptr %806, align 8, !tbaa !9
  %808 = load ptr, ptr %48, align 8, !tbaa !5
  %809 = sext i32 %807 to i64
  %810 = getelementptr inbounds i32, ptr %808, i64 %809
  store ptr %810, ptr %48, align 8, !tbaa !5
  %811 = load i32, ptr %47, align 4, !tbaa !57
  %812 = add nsw i32 %811, 1
  store i32 %812, ptr %47, align 4, !tbaa !57
  br label %760, !llvm.loop !100

813:                                              ; preds = %760
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #7
  store i32 0, ptr %52, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #7
  store i32 0, ptr %53, align 4, !tbaa !57
  br label %814

814:                                              ; preds = %849, %813
  %815 = load i32, ptr %53, align 4, !tbaa !57
  %816 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %817 = load i32, ptr %816, align 8, !tbaa !9
  %818 = icmp slt i32 %815, %817
  br i1 %818, label %820, label %819

819:                                              ; preds = %814
  store i32 40, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  br label %852

820:                                              ; preds = %814
  %821 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 9
  %822 = load i32, ptr %53, align 4, !tbaa !57
  %823 = sext i32 %822 to i64
  %824 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %821, i64 noundef %823) #7
  %825 = load i32, ptr %824, align 4, !tbaa !57
  %826 = icmp eq i32 %825, -1
  br i1 %826, label %827, label %828

827:                                              ; preds = %820
  br label %849

828:                                              ; preds = %820
  %829 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 9
  %830 = load i32, ptr %53, align 4, !tbaa !57
  %831 = sext i32 %830 to i64
  %832 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %829, i64 noundef %831) #7
  %833 = load i32, ptr %832, align 4, !tbaa !57
  %834 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 9
  %835 = load i32, ptr %52, align 4, !tbaa !57
  %836 = sext i32 %835 to i64
  %837 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %834, i64 noundef %836) #7
  store i32 %833, ptr %837, align 4, !tbaa !57
  %838 = load i32, ptr %52, align 4, !tbaa !57
  %839 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 8
  %840 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 9
  %841 = load i32, ptr %52, align 4, !tbaa !57
  %842 = sext i32 %841 to i64
  %843 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %840, i64 noundef %842) #7
  %844 = load i32, ptr %843, align 4, !tbaa !57
  %845 = sext i32 %844 to i64
  %846 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %839, i64 noundef %845) #7
  store i32 %838, ptr %846, align 4, !tbaa !57
  %847 = load i32, ptr %52, align 4, !tbaa !57
  %848 = add nsw i32 %847, 1
  store i32 %848, ptr %52, align 4, !tbaa !57
  br label %849

849:                                              ; preds = %828, %827
  %850 = load i32, ptr %53, align 4, !tbaa !57
  %851 = add nsw i32 %850, 1
  store i32 %851, ptr %53, align 4, !tbaa !57
  br label %814, !llvm.loop !101

852:                                              ; preds = %819
  %853 = load i32, ptr %45, align 4, !tbaa !57
  %854 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %855 = load i32, ptr %854, align 8, !tbaa !9
  %856 = sub nsw i32 %855, %853
  store i32 %856, ptr %854, align 8, !tbaa !9
  %857 = load ptr, ptr %50, align 8, !tbaa !5
  %858 = load ptr, ptr %4, align 8, !tbaa !5
  %859 = getelementptr inbounds %struct.HighsSymmetries, ptr %858, i32 0, i32 1
  %860 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %859) #7
  %861 = load ptr, ptr %4, align 8, !tbaa !5
  %862 = getelementptr inbounds %struct.HighsSymmetries, ptr %861, i32 0, i32 8
  %863 = load i32, ptr %862, align 8, !tbaa !75
  %864 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %865 = load i32, ptr %864, align 8, !tbaa !9
  %866 = mul nsw i32 %863, %865
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds i32, ptr %860, i64 %867
  %869 = icmp eq ptr %857, %868
  br i1 %869, label %870, label %871

870:                                              ; preds = %852
  br label %873

871:                                              ; preds = %852
  call void @__assert_fail(ptr noundef @.str.72, ptr noundef @.str.52, i32 noundef 1913, ptr noundef @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries) #6
  unreachable

872:                                              ; No predecessors!
  br label %873

873:                                              ; preds = %872, %870
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br label %874

874:                                              ; preds = %873, %739
  %875 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 9
  %876 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %877 = load i32, ptr %876, align 8, !tbaa !9
  %878 = sext i32 %877 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %875, i64 noundef %878)
          to label %879 unwind label %898

879:                                              ; preds = %874
  %880 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 9
  %881 = load ptr, ptr %4, align 8, !tbaa !5
  %882 = getelementptr inbounds %struct.HighsSymmetries, ptr %881, i32 0, i32 0
  %883 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %882, ptr noundef nonnull align 8 dereferenceable(24) %880) #7
  %884 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 8
  %885 = load ptr, ptr %4, align 8, !tbaa !5
  %886 = getelementptr inbounds %struct.HighsSymmetries, ptr %885, i32 0, i32 4
  %887 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %886, ptr noundef nonnull align 8 dereferenceable(24) %884) #7
  %888 = load ptr, ptr %4, align 8, !tbaa !5
  %889 = getelementptr inbounds %struct.HighsSymmetries, ptr %888, i32 0, i32 1
  %890 = load ptr, ptr %4, align 8, !tbaa !5
  %891 = getelementptr inbounds %struct.HighsSymmetries, ptr %890, i32 0, i32 8
  %892 = load i32, ptr %891, align 8, !tbaa !75
  %893 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %54, i32 0, i32 34
  %894 = load i32, ptr %893, align 8, !tbaa !9
  %895 = mul nsw i32 %892, %894
  %896 = sext i32 %895 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %889, i64 noundef %896)
          to label %897 unwind label %898

897:                                              ; preds = %879
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  call void @_ZN14HighsHashTableIivED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %41) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  call void @_ZN22HighsSymmetryDetection13ComponentDataD2Ev(ptr noundef nonnull align 8 dereferenceable(264) %36) #7
  call void @llvm.lifetime.end.p0(i64 264, ptr %36) #7
  br label %906

898:                                              ; preds = %879, %874
  %899 = landingpad { ptr, i32 }
          cleanup
  %900 = extractvalue { ptr, i32 } %899, 0
  store ptr %900, ptr %38, align 8
  %901 = extractvalue { ptr, i32 } %899, 1
  store i32 %901, ptr %39, align 4
  br label %902

902:                                              ; preds = %898, %775, %731
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %903

903:                                              ; preds = %902, %673
  call void @_ZN14HighsHashTableIivED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %41) #7
  br label %904

904:                                              ; preds = %903, %628
  call void @llvm.lifetime.end.p0(i64 40, ptr %41) #7
  br label %905

905:                                              ; preds = %904, %607, %597
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  call void @_ZN22HighsSymmetryDetection13ComponentDataD2Ev(ptr noundef nonnull align 8 dereferenceable(264) %36) #7
  call void @llvm.lifetime.end.p0(i64 264, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  br label %907

906:                                              ; preds = %897, %574
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  ret void

907:                                              ; preds = %905
  %908 = load ptr, ptr %38, align 8
  %909 = load i32, ptr %39, align 4
  %910 = insertvalue { ptr, i32 } poison, ptr %908, 0
  %911 = insertvalue { ptr, i32 } %910, i32 %909, 1
  resume { ptr, i32 } %911

912:                                              ; preds = %571
  unreachable
}

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN17HighsTaskExecutor18getThisWorkerDequeEv() #1 align 2

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

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN15HighsSplitDeque14checkInterruptEv(ptr noundef nonnull align 64 dereferenceable(524544)) #1 align 2

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

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

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

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

!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, !52, i64 688}
!10 = !{!"_ZTS22HighsSymmetryDetection", !6, i64 0, !11, i64 8, !11, i64 32, !15, i64 56, !15, i64 80, !11, i64 104, !11, i64 128, !11, i64 152, !11, i64 176, !11, i64 200, !11, i64 224, !11, i64 248, !11, i64 272, !19, i64 296, !11, i64 320, !23, i64 344, !11, i64 368, !11, i64 392, !27, i64 416, !27, i64 440, !27, i64 464, !11, i64 488, !11, i64 512, !31, i64 536, !45, i64 576, !45, i64 616, !52, i64 656, !52, i64 660, !52, i64 664, !52, i64 668, !52, i64 672, !52, i64 676, !52, i64 680, !52, i64 684, !52, i64 688, !53, i64 696}
!11 = !{!"_ZTSSt6vectorIiSaIiEE", !12, i64 0}
!12 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !13, i64 0}
!13 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!15 = !{!"_ZTSSt6vectorISt4pairIijESaIS1_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseISt4pairIijESaIS1_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseISt4pairIijESaIS1_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseISt4pairIijESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!"_ZTSSt6vectorIhSaIhEE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!23 = !{!"_ZTSSt6vectorIPiSaIS0_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIPiSaIS0_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIPiSaIS0_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIPiSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTSSt6vectorIjSaIjEE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!31 = !{!"_ZTS14HighsHashTableIijE", !32, i64 0, !38, i64 8, !44, i64 16, !44, i64 24, !44, i64 32}
!32 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEE", !33, i64 0}
!33 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterELb1ELb1EE", !34, i64 0}
!34 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEE", !35, i64 0}
!35 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEEE", !36, i64 0}
!36 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryIijEN14HighsHashTableIijE12OpNewDeleterEEE", !37, i64 0}
!37 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryIijELb0EE", !6, i64 0}
!38 = !{!"_ZTSSt10unique_ptrIA_hSt14default_deleteIS0_EE", !39, i64 0}
!39 = !{!"_ZTSSt15__uniq_ptr_dataIhSt14default_deleteIA_hELb1ELb1EE", !40, i64 0}
!40 = !{!"_ZTSSt15__uniq_ptr_implIhSt14default_deleteIA_hEE", !41, i64 0}
!41 = !{!"_ZTSSt5tupleIJPhSt14default_deleteIA_hEEE", !42, i64 0}
!42 = !{!"_ZTSSt11_Tuple_implILm0EJPhSt14default_deleteIA_hEEE", !43, i64 0}
!43 = !{!"_ZTSSt10_Head_baseILm0EPhLb0EE", !6, i64 0}
!44 = !{!"long", !7, i64 0}
!45 = !{!"_ZTS14HighsHashTableISt5tupleIJiijEEvE", !46, i64 0, !38, i64 8, !44, i64 16, !44, i64 24, !44, i64 32}
!46 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterEE", !47, i64 0}
!47 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterELb1ELb1EE", !48, i64 0}
!48 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterEE", !49, i64 0}
!49 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIS_IJiijEEvEN14HighsHashTableIS1_vE12OpNewDeleterEEE", !50, i64 0}
!50 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryISt5tupleIJiijEEvEN14HighsHashTableIS2_vE12OpNewDeleterEEE", !51, i64 0}
!51 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryISt5tupleIJiijEEvELb0EE", !6, i64 0}
!52 = !{!"int", !7, i64 0}
!53 = !{!"_ZTSSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseIN22HighsSymmetryDetection4NodeESaIS1_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIN22HighsSymmetryDetection4NodeESaIS1_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseIN22HighsSymmetryDetection4NodeESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!57 = !{!52, !52, i64 0}
!58 = !{!10, !52, i64 664}
!59 = !{!10, !52, i64 668}
!60 = !{!10, !52, i64 656}
!61 = !{!10, !52, i64 660}
!62 = !{!63, !52, i64 8}
!63 = !{!"_ZTSN22HighsSymmetryDetection4NodeE", !52, i64 0, !52, i64 4, !52, i64 8, !52, i64 12}
!64 = distinct !{!64, !65}
!65 = !{!"llvm.loop.mustprogress"}
!66 = !{!10, !52, i64 672}
!67 = !{!10, !52, i64 684}
!68 = distinct !{!68, !65}
!69 = !{!70, !70, i64 0}
!70 = !{!"bool", !7, i64 0}
!71 = !{!10, !52, i64 676}
!72 = distinct !{!72, !65}
!73 = !{i8 0, i8 2}
!74 = !{}
!75 = !{!76, !52, i64 208}
!76 = !{!"_ZTS15HighsSymmetries", !11, i64 0, !11, i64 24, !11, i64 48, !11, i64 72, !11, i64 96, !11, i64 120, !77, i64 144, !81, i64 168, !52, i64 208, !52, i64 212}
!77 = !{!"_ZTSSt6vectorI19HighsOrbitopeMatrixSaIS0_EE", !78, i64 0}
!78 = !{!"_ZTSSt12_Vector_baseI19HighsOrbitopeMatrixSaIS0_EE", !79, i64 0}
!79 = !{!"_ZTSNSt12_Vector_baseI19HighsOrbitopeMatrixSaIS0_EE12_Vector_implE", !80, i64 0}
!80 = !{!"_ZTSNSt12_Vector_baseI19HighsOrbitopeMatrixSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!81 = !{!"_ZTS14HighsHashTableIiiE", !82, i64 0, !38, i64 8, !44, i64 16, !44, i64 24, !44, i64 32}
!82 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEE", !83, i64 0}
!83 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterELb1ELb1EE", !84, i64 0}
!84 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEE", !85, i64 0}
!85 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEEE", !86, i64 0}
!86 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryIiiEN14HighsHashTableIiiE12OpNewDeleterEEE", !87, i64 0}
!87 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryIiiELb0EE", !6, i64 0}
!88 = distinct !{!88, !65}
!89 = distinct !{!89, !65}
!90 = !{!63, !52, i64 4}
!91 = distinct !{!91, !65}
!92 = distinct !{!92, !65}
!93 = distinct !{!93, !65}
!94 = !{!76, !52, i64 212}
!95 = distinct !{!95, !65}
!96 = distinct !{!96, !65}
!97 = distinct !{!97, !65}
!98 = distinct !{!98, !65}
!99 = distinct !{!99, !65}
!100 = distinct !{!100, !65}
!101 = distinct !{!101, !65}


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

%class.HighsHashTable.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::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 }
%"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.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.__gnu_cxx::__normal_iterator.48" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.47" = type { 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 }

@.str.52 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [19 x i8], align 1
@__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries = external hidden unnamed_addr constant [52 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [194 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [83 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN22HighsSymmetryDetection19partitionRefinementEv(ptr noundef nonnull align 8 dereferenceable(720)) local_unnamed_addr #1 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN22HighsSymmetryDetection26determineNextToDistinguishEv(ptr noundef nonnull align 8 dereferenceable(720)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN22HighsSymmetryDetection16dumpCurrentGraphEv(ptr dead_on_unwind noalias writable sret(%class.HighsHashTable.33) align 8, ptr noundef nonnull align 8 dereferenceable(720)) local_unnamed_addr #1 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN22HighsSymmetryDetection20computeComponentDataERK15HighsSymmetries(ptr dead_on_unwind noalias writable sret(%"struct.HighsSymmetryDetection::ComponentData") align 8, ptr noundef nonnull align 8 dereferenceable(720), ptr noundef nonnull align 8 dereferenceable(216)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN22HighsSymmetryDetection14isFullOrbitopeERKNS_13ComponentDataEiR15HighsSymmetries(ptr noundef nonnull align 8 dereferenceable(720), ptr noundef nonnull align 8 dereferenceable(264), i32 noundef, ptr noundef nonnull align 8 dereferenceable(216)) local_unnamed_addr #1 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 #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 #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN22HighsSymmetryDetection3runER15HighsSymmetries(ptr noundef nonnull align 8 dereferenceable(720) %0, ptr noundef nonnull align 8 dereferenceable(216) %1) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %class.HighsHashTable.33, align 8
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca %"class.__gnu_cxx::__normal_iterator.48", align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator.48", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %10 = alloca i32, align 4
  %11 = alloca %class.HighsHashTable.33, align 8
  %12 = alloca %"struct.HighsSymmetryDetection::ComponentData", align 8
  %13 = alloca %class.HighsHashTable.114, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = getelementptr inbounds i8, ptr %0, i64 688
  %17 = load i32, ptr %16, align 8, !tbaa !5
  %.not = icmp eq i32 %17, 0
  br i1 %.not, label %18, label %19

18:                                               ; preds = %2
  tail call void @__assert_fail(ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.52, i32 noundef 1686, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries) #7
  unreachable

19:                                               ; preds = %2
  tail call void @_ZN22HighsSymmetryDetection19initializeGroundSetEv(ptr noundef nonnull align 8 dereferenceable(720) %0)
  %20 = getelementptr inbounds i8, ptr %0, i64 416
  tail call void @_ZNSt6vectorIjSaIjEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  %21 = getelementptr inbounds i8, ptr %0, i64 272
  tail call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  tail call void @_ZN22HighsSymmetryDetection10createNodeEv(ptr noundef nonnull align 8 dereferenceable(720) %0)
  %22 = load i32, ptr %16, align 8, !tbaa !5
  %23 = sdiv i32 64000000, %22
  %24 = tail call noundef ptr @_ZN17HighsTaskExecutor18getThisWorkerDequeEv()
  %25 = getelementptr inbounds i8, ptr %0, i64 696
  %26 = tail call noundef zeroext i1 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #8
  br i1 %26, label %.loopexit206, label %.lr.ph232

.lr.ph232:                                        ; preds = %19
  %27 = getelementptr inbounds i8, ptr %0, i64 488
  %28 = getelementptr inbounds i8, ptr %0, i64 440
  %29 = getelementptr inbounds i8, ptr %0, i64 656
  %30 = getelementptr inbounds i8, ptr %0, i64 660
  %31 = getelementptr inbounds i8, ptr %0, i64 464
  %32 = getelementptr inbounds i8, ptr %0, i64 616
  %33 = getelementptr inbounds i8, ptr %0, i64 104
  %34 = getelementptr inbounds i8, ptr %0, i64 512
  %35 = getelementptr inbounds i8, ptr %0, i64 668
  %36 = getelementptr inbounds i8, ptr %0, i64 576
  %37 = getelementptr inbounds i8, ptr %0, i64 672
  %38 = getelementptr inbounds i8, ptr %0, i64 368
  %39 = getelementptr inbounds i8, ptr %0, i64 684
  %40 = getelementptr inbounds i8, ptr %0, i64 176
  %41 = getelementptr inbounds i8, ptr %0, i64 200
  %42 = getelementptr inbounds i8, ptr %0, i64 676
  %43 = getelementptr inbounds i8, ptr %1, i64 24
  %44 = getelementptr inbounds i8, ptr %1, i64 208
  %45 = getelementptr inbounds i8, ptr %0, i64 664
  br label %46

46:                                               ; preds = %.lr.ph232, %.thread193
  %47 = call noundef i32 @_ZN22HighsSymmetryDetection16selectTargetCellEv(ptr noundef nonnull align 8 dereferenceable(720) %0)
  %48 = icmp eq i32 %47, -1
  br i1 %48, label %49, label %292

49:                                               ; preds = %46
  %50 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %27) #8
  br i1 %50, label %51, label %76

51:                                               ; preds = %49
  %52 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %27, ptr noundef nonnull align 8 dereferenceable(24) %33)
  %53 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIjSaIjEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(24) %20)
  %54 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIjSaIjEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(24) %20)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #8
  call void @_ZN22HighsSymmetryDetection16dumpCurrentGraphEv(ptr dead_on_unwind nonnull writable sret(%class.HighsHashTable.33) align 8 %3, ptr noundef nonnull align 8 dereferenceable(720) %0)
  %55 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN14HighsHashTableISt5tupleIJiijEEvEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(40) %36, ptr noundef nonnull align 8 dereferenceable(40) %3) #8
  call void @_ZN14HighsHashTableISt5tupleIJiijEEvED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %3) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #8
  %56 = call noundef i64 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #8
  %57 = trunc i64 %56 to i32
  store i32 %57, ptr %45, align 8, !tbaa !56
  %58 = call noundef i64 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #8
  %59 = trunc i64 %58 to i32
  store i32 %59, ptr %35, align 4, !tbaa !57
  %60 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  %61 = trunc i64 %60 to i32
  store i32 %61, ptr %29, align 8, !tbaa !58
  %62 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  %63 = trunc i64 %62 to i32
  store i32 %63, ptr %30, align 4, !tbaa !59
  %64 = load i32, ptr %45, align 8, !tbaa !56
  %65 = zext i32 %64 to i64
  %smin = call i32 @llvm.smin.i32(i32 %64, i32 1)
  %66 = add i32 %smin, -1
  br label %67

67:                                               ; preds = %70, %51
  %indvars.iv277 = phi i64 [ %indvars.iv.next278, %70 ], [ %65, %51 ]
  %68 = trunc nuw i64 %indvars.iv277 to i32
  %69 = icmp sgt i32 %68, 1
  br i1 %69, label %70, label %.critedge

70:                                               ; preds = %67
  %indvars.iv.next278 = add nsw i64 %indvars.iv277, -1
  %71 = add nsw i64 %indvars.iv277, -2
  %72 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %71) #8
  %73 = getelementptr inbounds i8, ptr %72, i64 8
  %74 = load i32, ptr %73, align 4, !tbaa !60
  %75 = call noundef zeroext i1 @_ZNK22HighsSymmetryDetection18isFromBinaryColumnEi(ptr noundef nonnull align 8 dereferenceable(720) %0, i32 noundef %74)
  br i1 %75, label %.critedge.split.loop.exit328, label %67, !llvm.loop !62

.critedge.split.loop.exit328:                     ; preds = %70
  %indvars.le = trunc i64 %indvars.iv.next278 to i32
  br label %.critedge

.critedge:                                        ; preds = %67, %.critedge.split.loop.exit328
  %.0137.lcssa = phi i32 [ %indvars.le, %.critedge.split.loop.exit328 ], [ %66, %67 ]
  call void @_ZN22HighsSymmetryDetection16switchToNextNodeEi(ptr noundef nonnull align 8 dereferenceable(720) %0, i32 noundef %.0137.lcssa)
  br label %291

76:                                               ; preds = %49
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #8
  store i32 -1, ptr %4, align 4, !tbaa !64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #8
  %77 = call noundef i64 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #8
  %78 = trunc i64 %77 to i32
  %79 = add i32 %78, -1
  store i32 %79, ptr %5, align 4, !tbaa !64
  %80 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  %81 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #8
  %82 = icmp eq i64 %80, %81
  br i1 %82, label %84, label %83

83:                                               ; preds = %76
  call void @__assert_fail(ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.52, i32 noundef 1714, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries) #7
  unreachable

84:                                               ; preds = %76
  %85 = load i32, ptr %29, align 8, !tbaa !58
  %86 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  %87 = trunc i64 %86 to i32
  %88 = icmp eq i32 %85, %87
  br i1 %88, label %94, label %89

89:                                               ; preds = %84
  %90 = load i32, ptr %30, align 4, !tbaa !59
  %91 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  %92 = trunc i64 %91 to i32
  %93 = icmp eq i32 %90, %92
  br i1 %93, label %94, label %265

94:                                               ; preds = %89, %84
  %95 = load i32, ptr %29, align 8, !tbaa !58
  %96 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  %97 = trunc i64 %96 to i32
  %98 = icmp eq i32 %95, %97
  br i1 %98, label %99, label %156

99:                                               ; preds = %94
  %100 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection19compareCurrentGraphERK14HighsHashTableISt5tupleIJiijEEvERi(ptr noundef nonnull align 8 dereferenceable(720) %0, ptr noundef nonnull align 8 dereferenceable(40) %36, ptr noundef nonnull align 4 dereferenceable(4) %4)
  br i1 %100, label %101, label %156

101:                                              ; preds = %99
  %102 = load i32, ptr %37, align 8, !tbaa !65
  %103 = add nsw i32 %102, 1
  store i32 %103, ptr %37, align 8, !tbaa !65
  %104 = and i32 %102, 63
  %105 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  %106 = load i32, ptr %39, align 4, !tbaa !66
  %107 = mul nsw i32 %106, %104
  %108 = sext i32 %107 to i64
  %109 = getelementptr inbounds i32, ptr %105, i64 %108
  %110 = icmp sgt i32 %106, 0
  br i1 %110, label %.lr.ph225, label %.thread

.preheader203:                                    ; preds = %.lr.ph225
  %111 = icmp sgt i32 %121, 0
  br i1 %111, label %.lr.ph228.outer, label %.thread

.lr.ph228.outer:                                  ; preds = %.preheader203, %.thread297
  %indvars.iv275.ph = phi i64 [ %indvars.iv.next276299, %.thread297 ], [ 0, %.preheader203 ]
  %.0153227.ph = phi i1 [ true, %.thread297 ], [ false, %.preheader203 ]
  br label %.lr.ph228

.lr.ph225:                                        ; preds = %101, %.lr.ph225
  %indvars.iv272 = phi i64 [ %indvars.iv.next273, %.lr.ph225 ], [ 0, %101 ]
  %112 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %indvars.iv272) #8
  %113 = load i32, ptr %112, align 4, !tbaa !64
  %114 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %indvars.iv272) #8
  %115 = load i32, ptr %114, align 4, !tbaa !64
  %116 = sext i32 %115 to i64
  %117 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef %116) #8
  %118 = load i32, ptr %117, align 4, !tbaa !64
  %119 = sext i32 %118 to i64
  %120 = getelementptr inbounds i32, ptr %109, i64 %119
  store i32 %113, ptr %120, align 4, !tbaa !64
  %indvars.iv.next273 = add nuw nsw i64 %indvars.iv272, 1
  %121 = load i32, ptr %39, align 4, !tbaa !66
  %122 = sext i32 %121 to i64
  %123 = icmp slt i64 %indvars.iv.next273, %122
  br i1 %123, label %.lr.ph225, label %.preheader203, !llvm.loop !67

._crit_edge229:                                   ; preds = %138
  br i1 %.0153227.ph, label %._crit_edge229.thread, label %.thread

.lr.ph228:                                        ; preds = %.lr.ph228.outer, %138
  %indvars.iv275 = phi i64 [ %indvars.iv.next276, %138 ], [ %indvars.iv275.ph, %.lr.ph228.outer ]
  %124 = getelementptr inbounds i32, ptr %109, i64 %indvars.iv275
  %125 = load i32, ptr %124, align 4, !tbaa !64
  %126 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %indvars.iv275) #8
  %127 = load i32, ptr %126, align 4, !tbaa !64
  %128 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection11mergeOrbitsEii(ptr noundef nonnull align 8 dereferenceable(720) %0, i32 noundef %125, i32 noundef %127)
  %129 = load i32, ptr %16, align 8
  %130 = sext i32 %129 to i64
  %131 = icmp slt i64 %indvars.iv275, %130
  %or.cond = select i1 %128, i1 %131, i1 false
  br i1 %or.cond, label %132, label %138

132:                                              ; preds = %.lr.ph228
  %133 = getelementptr inbounds i32, ptr %109, i64 %indvars.iv275
  %134 = load i32, ptr %133, align 4, !tbaa !64
  %135 = load i32, ptr %42, align 4, !tbaa !68
  %136 = icmp slt i32 %134, %135
  br i1 %136, label %.thread297, label %137

137:                                              ; preds = %132
  call void @__assert_fail(ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.52, i32 noundef 1730, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries) #7
  unreachable

138:                                              ; preds = %.lr.ph228
  %indvars.iv.next276 = add nuw nsw i64 %indvars.iv275, 1
  %139 = load i32, ptr %39, align 4, !tbaa !66
  %140 = sext i32 %139 to i64
  %141 = icmp slt i64 %indvars.iv.next276, %140
  br i1 %141, label %.lr.ph228, label %._crit_edge229, !llvm.loop !69

.thread297:                                       ; preds = %132
  %indvars.iv.next276299 = add nuw nsw i64 %indvars.iv275, 1
  %142 = load i32, ptr %39, align 4, !tbaa !66
  %143 = sext i32 %142 to i64
  %144 = icmp slt i64 %indvars.iv.next276299, %143
  br i1 %144, label %.lr.ph228.outer, label %._crit_edge229.thread, !llvm.loop !69

._crit_edge229.thread:                            ; preds = %.thread297, %._crit_edge229
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #8
  %145 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %43) #8
  store ptr %145, ptr %7, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #8
  %146 = load i32, ptr %16, align 8, !tbaa !5
  %147 = sext i32 %146 to i64
  %148 = getelementptr inbounds i32, ptr %109, i64 %147
  %149 = load ptr, ptr %6, align 8
  %150 = call ptr @_ZNSt6vectorIiSaIiEE6insertIPivEEN9__gnu_cxx17__normal_iteratorIS3_S1_EENS5_IPKiS1_EET_SA_(ptr noundef nonnull align 8 dereferenceable(24) %43, ptr %149, ptr noundef nonnull %109, ptr noundef %148)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #8
  %151 = load i32, ptr %44, align 8, !tbaa !70
  %152 = add nsw i32 %151, 1
  store i32 %152, ptr %44, align 8, !tbaa !70
  %153 = icmp eq i32 %152, %23
  br i1 %153, label %.thread196, label %.thread

.thread:                                          ; preds = %101, %.preheader203, %._crit_edge229, %._crit_edge229.thread
  %154 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull align 4 dereferenceable(4) %45)
  %155 = load i32, ptr %154, align 4, !tbaa !64
  store i32 %155, ptr %5, align 4, !tbaa !64
  br label %.loopexit204

156:                                              ; preds = %99, %94
  %157 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %34) #8
  br i1 %157, label %220, label %158

158:                                              ; preds = %156
  %159 = load i32, ptr %30, align 4, !tbaa !59
  %160 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  %161 = trunc i64 %160 to i32
  %162 = icmp eq i32 %159, %161
  br i1 %162, label %163, label %220

163:                                              ; preds = %158
  %164 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection19compareCurrentGraphERK14HighsHashTableISt5tupleIJiijEEvERi(ptr noundef nonnull align 8 dereferenceable(720) %0, ptr noundef nonnull align 8 dereferenceable(40) %32, ptr noundef nonnull align 4 dereferenceable(4) %4)
  br i1 %164, label %165, label %220

165:                                              ; preds = %163
  %166 = load i32, ptr %37, align 8, !tbaa !65
  %167 = add nsw i32 %166, 1
  store i32 %167, ptr %37, align 8, !tbaa !65
  %168 = and i32 %166, 63
  %169 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  %170 = load i32, ptr %39, align 4, !tbaa !66
  %171 = mul nsw i32 %170, %168
  %172 = sext i32 %171 to i64
  %173 = getelementptr inbounds i32, ptr %169, i64 %172
  %174 = icmp sgt i32 %170, 0
  br i1 %174, label %.lr.ph, label %.thread186

.preheader205:                                    ; preds = %.lr.ph
  %175 = icmp sgt i32 %185, 0
  br i1 %175, label %.lr.ph215.outer, label %.thread186

.lr.ph215.outer:                                  ; preds = %.preheader205, %.thread302
  %indvars.iv267.ph = phi i64 [ %indvars.iv.next268304, %.thread302 ], [ 0, %.preheader205 ]
  %.0163213.ph = phi i1 [ true, %.thread302 ], [ false, %.preheader205 ]
  br label %.lr.ph215

.lr.ph:                                           ; preds = %165, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %165 ]
  %176 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %indvars.iv) #8
  %177 = load i32, ptr %176, align 4, !tbaa !64
  %178 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %indvars.iv) #8
  %179 = load i32, ptr %178, align 4, !tbaa !64
  %180 = sext i32 %179 to i64
  %181 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef %180) #8
  %182 = load i32, ptr %181, align 4, !tbaa !64
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds i32, ptr %173, i64 %183
  store i32 %177, ptr %184, align 4, !tbaa !64
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %185 = load i32, ptr %39, align 4, !tbaa !66
  %186 = sext i32 %185 to i64
  %187 = icmp slt i64 %indvars.iv.next, %186
  br i1 %187, label %.lr.ph, label %.preheader205, !llvm.loop !83

._crit_edge:                                      ; preds = %202
  br i1 %.0163213.ph, label %._crit_edge.thread, label %.thread186

.lr.ph215:                                        ; preds = %.lr.ph215.outer, %202
  %indvars.iv267 = phi i64 [ %indvars.iv.next268, %202 ], [ %indvars.iv267.ph, %.lr.ph215.outer ]
  %188 = getelementptr inbounds i32, ptr %173, i64 %indvars.iv267
  %189 = load i32, ptr %188, align 4, !tbaa !64
  %190 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %indvars.iv267) #8
  %191 = load i32, ptr %190, align 4, !tbaa !64
  %192 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection11mergeOrbitsEii(ptr noundef nonnull align 8 dereferenceable(720) %0, i32 noundef %189, i32 noundef %191)
  %193 = load i32, ptr %16, align 8
  %194 = sext i32 %193 to i64
  %195 = icmp slt i64 %indvars.iv267, %194
  %or.cond183 = select i1 %192, i1 %195, i1 false
  br i1 %or.cond183, label %196, label %202

196:                                              ; preds = %.lr.ph215
  %197 = getelementptr inbounds i32, ptr %173, i64 %indvars.iv267
  %198 = load i32, ptr %197, align 4, !tbaa !64
  %199 = load i32, ptr %42, align 4, !tbaa !68
  %200 = icmp slt i32 %198, %199
  br i1 %200, label %.thread302, label %201

201:                                              ; preds = %196
  call void @__assert_fail(ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.52, i32 noundef 1758, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries) #7
  unreachable

202:                                              ; preds = %.lr.ph215
  %indvars.iv.next268 = add nuw nsw i64 %indvars.iv267, 1
  %203 = load i32, ptr %39, align 4, !tbaa !66
  %204 = sext i32 %203 to i64
  %205 = icmp slt i64 %indvars.iv.next268, %204
  br i1 %205, label %.lr.ph215, label %._crit_edge, !llvm.loop !84

.thread302:                                       ; preds = %196
  %indvars.iv.next268304 = add nuw nsw i64 %indvars.iv267, 1
  %206 = load i32, ptr %39, align 4, !tbaa !66
  %207 = sext i32 %206 to i64
  %208 = icmp slt i64 %indvars.iv.next268304, %207
  br i1 %208, label %.lr.ph215.outer, label %._crit_edge.thread, !llvm.loop !84

._crit_edge.thread:                               ; preds = %.thread302, %._crit_edge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #8
  %209 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %43) #8
  store ptr %209, ptr %9, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %9) #8
  %210 = load i32, ptr %16, align 8, !tbaa !5
  %211 = sext i32 %210 to i64
  %212 = getelementptr inbounds i32, ptr %173, i64 %211
  %213 = load ptr, ptr %8, align 8
  %214 = call ptr @_ZNSt6vectorIiSaIiEE6insertIPivEEN9__gnu_cxx17__normal_iteratorIS3_S1_EENS5_IPKiS1_EET_SA_(ptr noundef nonnull align 8 dereferenceable(24) %43, ptr %213, ptr noundef nonnull %173, ptr noundef %212)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #8
  %215 = load i32, ptr %44, align 8, !tbaa !70
  %216 = add nsw i32 %215, 1
  store i32 %216, ptr %44, align 8, !tbaa !70
  %217 = icmp eq i32 %216, %23
  br i1 %217, label %.thread196, label %.thread186

.thread186:                                       ; preds = %165, %.preheader205, %._crit_edge, %._crit_edge.thread
  %218 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull align 4 dereferenceable(4) %35)
  %219 = load i32, ptr %218, align 4, !tbaa !64
  store i32 %219, ptr %5, align 4, !tbaa !64
  br label %.loopexit204

220:                                              ; preds = %163, %158, %156
  %221 = load i32, ptr %30, align 4, !tbaa !59
  %222 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  %223 = trunc i64 %222 to i32
  %224 = icmp slt i32 %221, %223
  br i1 %224, label %225, label %252

225:                                              ; preds = %220
  %226 = load i32, ptr %30, align 4, !tbaa !59
  %227 = sext i32 %226 to i64
  %228 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %227) #8
  %229 = load i32, ptr %228, align 4, !tbaa !64
  %230 = load i32, ptr %30, align 4, !tbaa !59
  %231 = sext i32 %230 to i64
  %232 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %231) #8
  %233 = load i32, ptr %232, align 4, !tbaa !64
  %234 = icmp ugt i32 %229, %233
  br i1 %234, label %235, label %252

235:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #8
  %236 = load i32, ptr %45, align 8, !tbaa !56
  %237 = add nsw i32 %236, -1
  store i32 %237, ptr %10, align 4, !tbaa !64
  %238 = sext i32 %237 to i64
  %239 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %238) #8
  %240 = getelementptr inbounds i8, ptr %239, i64 4
  %241 = load i32, ptr %240, align 4, !tbaa !85
  %242 = load i32, ptr %30, align 4, !tbaa !59
  %.not167219 = icmp sgt i32 %241, %242
  br i1 %.not167219, label %._crit_edge222, label %.lr.ph221

.lr.ph221:                                        ; preds = %235, %.lr.ph221
  %243 = load i32, ptr %10, align 4, !tbaa !64
  %244 = add nsw i32 %243, 1
  store i32 %244, ptr %10, align 4, !tbaa !64
  %245 = sext i32 %244 to i64
  %246 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %245) #8
  %247 = getelementptr inbounds i8, ptr %246, i64 4
  %248 = load i32, ptr %247, align 4, !tbaa !85
  %249 = load i32, ptr %30, align 4, !tbaa !59
  %.not167 = icmp sgt i32 %248, %249
  br i1 %.not167, label %._crit_edge222, label %.lr.ph221, !llvm.loop !86

._crit_edge222:                                   ; preds = %.lr.ph221, %235
  %250 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 4 dereferenceable(4) %5)
  %251 = load i32, ptr %250, align 4, !tbaa !64
  store i32 %251, ptr %5, align 4, !tbaa !64
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8
  br label %.loopexit204

252:                                              ; preds = %225, %220
  %253 = load i32, ptr %5, align 4, !tbaa !64
  %254 = icmp sgt i32 %253, -1
  br i1 %254, label %.lr.ph218.preheader, label %.loopexit204

.lr.ph218.preheader:                              ; preds = %252
  %255 = zext nneg i32 %253 to i64
  br label %.lr.ph218

.lr.ph218:                                        ; preds = %.lr.ph218.preheader, %263
  %indvars.iv269 = phi i64 [ %255, %.lr.ph218.preheader ], [ %indvars.iv.next270, %263 ]
  %256 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv269) #8
  %257 = getelementptr inbounds i8, ptr %256, i64 8
  %258 = load i32, ptr %257, align 4, !tbaa !60
  %259 = load i32, ptr %4, align 4, !tbaa !64
  %260 = icmp eq i32 %258, %259
  br i1 %260, label %261, label %263

261:                                              ; preds = %.lr.ph218
  %262 = trunc nuw nsw i64 %indvars.iv269 to i32
  store i32 %262, ptr %5, align 4, !tbaa !64
  br label %.loopexit204

263:                                              ; preds = %.lr.ph218
  %indvars.iv.next270 = add nsw i64 %indvars.iv269, -1
  %264 = icmp sgt i64 %indvars.iv269, 0
  br i1 %264, label %.lr.ph218, label %.loopexit204, !llvm.loop !87

265:                                              ; preds = %89
  %266 = load i32, ptr %30, align 4, !tbaa !59
  %267 = sext i32 %266 to i64
  %268 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %267) #8
  %269 = load i32, ptr %268, align 4, !tbaa !64
  %270 = load i32, ptr %30, align 4, !tbaa !59
  %271 = sext i32 %270 to i64
  %272 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %271) #8
  %273 = load i32, ptr %272, align 4, !tbaa !64
  %274 = icmp ugt i32 %269, %273
  br i1 %274, label %275, label %.critedge5

275:                                              ; preds = %265
  %276 = call noundef ptr @_ZNSt6vectorIjSaIjEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #8
  %277 = call noundef ptr @_ZNSt6vectorIjSaIjEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  %278 = load i32, ptr %30, align 4, !tbaa !59
  %279 = sext i32 %278 to i64
  %280 = shl nsw i64 %279, 2
  %bcmp = call i32 @bcmp(ptr %276, ptr %277, i64 %280)
  %281 = icmp eq i32 %bcmp, 0
  br i1 %281, label %282, label %.critedge5

.critedge5:                                       ; preds = %265, %275
  call void @__assert_fail(ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.52, i32 noundef 1813, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries) #7
  unreachable

282:                                              ; preds = %275
  %283 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIjSaIjEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(24) %20)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #8
  call void @_ZN22HighsSymmetryDetection16dumpCurrentGraphEv(ptr dead_on_unwind nonnull writable sret(%class.HighsHashTable.33) align 8 %11, ptr noundef nonnull align 8 dereferenceable(720) %0)
  %284 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN14HighsHashTableISt5tupleIJiijEEvEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(40) %32, ptr noundef nonnull align 8 dereferenceable(40) %11) #8
  call void @_ZN14HighsHashTableISt5tupleIJiijEEvED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %11) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #8
  %285 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %34, ptr noundef nonnull align 8 dereferenceable(24) %33)
  %286 = call noundef i64 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #8
  %287 = trunc i64 %286 to i32
  store i32 %287, ptr %35, align 4, !tbaa !57
  %288 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  %289 = trunc i64 %288 to i32
  store i32 %289, ptr %30, align 4, !tbaa !59
  br label %.loopexit204

.thread196:                                       ; preds = %._crit_edge.thread, %._crit_edge229.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #8
  br label %.loopexit206

.loopexit204:                                     ; preds = %263, %252, %282, %._crit_edge222, %261, %.thread, %.thread186
  %290 = load i32, ptr %5, align 4, !tbaa !64
  call void @_ZN22HighsSymmetryDetection16switchToNextNodeEi(ptr noundef nonnull align 8 dereferenceable(720) %0, i32 noundef %290)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #8
  br label %291

291:                                              ; preds = %.loopexit204, %.critedge
  call void @_ZN15HighsSplitDeque14checkInterruptEv(ptr noundef nonnull align 64 dereferenceable(524544) %24)
  br label %.thread193

292:                                              ; preds = %46
  %293 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #8
  %294 = getelementptr inbounds i8, ptr %293, i64 8
  store i32 %47, ptr %294, align 4, !tbaa !60
  %295 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection26determineNextToDistinguishEv(ptr noundef nonnull align 8 dereferenceable(720) %0)
  br i1 %295, label %297, label %296

296:                                              ; preds = %292
  call void @__assert_fail(ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.52, i32 noundef 1829, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries) #7
  unreachable

297:                                              ; preds = %292
  %298 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection17distinguishVertexEi(ptr noundef nonnull align 8 dereferenceable(720) %0, i32 noundef %47)
  br i1 %298, label %303, label %299

299:                                              ; preds = %297
  %300 = call noundef i64 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #8
  %301 = trunc i64 %300 to i32
  %302 = add i32 %301, -1
  call void @_ZN22HighsSymmetryDetection16switchToNextNodeEi(ptr noundef nonnull align 8 dereferenceable(720) %0, i32 noundef %302)
  br label %.thread193, !llvm.loop !88

303:                                              ; preds = %297
  %304 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection19partitionRefinementEv(ptr noundef nonnull align 8 dereferenceable(720) %0)
  br i1 %304, label %308, label %305

305:                                              ; preds = %303
  %306 = call noundef i64 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #8
  %307 = trunc i64 %306 to i32
  call void @_ZN22HighsSymmetryDetection16switchToNextNodeEi(ptr noundef nonnull align 8 dereferenceable(720) %0, i32 noundef %307)
  br label %.thread193, !llvm.loop !88

308:                                              ; preds = %303
  call void @_ZN22HighsSymmetryDetection10createNodeEv(ptr noundef nonnull align 8 dereferenceable(720) %0)
  br label %.thread193

.thread193:                                       ; preds = %299, %305, %291, %308
  %309 = call noundef zeroext i1 @_ZNKSt6vectorIN22HighsSymmetryDetection4NodeESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #8
  br i1 %309, label %.loopexit206, label %46

.loopexit206:                                     ; preds = %.thread193, %19, %.thread196
  %310 = getelementptr inbounds i8, ptr %1, i64 208
  %311 = load i32, ptr %310, align 8, !tbaa !70
  %312 = getelementptr inbounds i8, ptr %1, i64 212
  store i32 %311, ptr %312, align 4, !tbaa !89
  %313 = icmp sgt i32 %311, 0
  br i1 %313, label %314, label %480

314:                                              ; preds = %.loopexit206
  %315 = getelementptr inbounds i8, ptr %0, i64 176
  %316 = getelementptr inbounds i8, ptr %0, i64 676
  %317 = load i32, ptr %316, align 4, !tbaa !68
  %318 = sext i32 %317 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %315, i64 noundef %318)
  call void @llvm.lifetime.start.p0(i64 264, ptr nonnull %12) #8
  call void @_ZN22HighsSymmetryDetection20computeComponentDataERK15HighsSymmetries(ptr dead_on_unwind nonnull writable sret(%"struct.HighsSymmetryDetection::ComponentData") align 8 %12, ptr noundef nonnull align 8 dereferenceable(720) %0, ptr noundef nonnull align 8 dereferenceable(216) %1)
  %319 = call noundef i32 @_ZNK22HighsSymmetryDetection13ComponentData13numComponentsEv(ptr noundef nonnull align 8 dereferenceable(264) %12)
  %320 = icmp sgt i32 %319, 0
  br i1 %320, label %.lr.ph235, label %._crit_edge236

._crit_edge236:                                   ; preds = %327, %314
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #8
  invoke void @_ZN14HighsHashTableIivEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %13)
          to label %329 unwind label %340

.lr.ph235:                                        ; preds = %314, %327
  %.0144233 = phi i32 [ %328, %327 ], [ 0, %314 ]
  %321 = call noundef i32 @_ZNK22HighsSymmetryDetection13ComponentData13componentSizeEi(ptr noundef nonnull align 8 dereferenceable(264) %12, i32 noundef %.0144233)
  %322 = icmp eq i32 %321, 1
  br i1 %322, label %327, label %325

323:                                              ; preds = %325
  %324 = landingpad { ptr, i32 }
          cleanup
  br label %479

325:                                              ; preds = %.lr.ph235
  %326 = invoke noundef zeroext i1 @_ZN22HighsSymmetryDetection14isFullOrbitopeERKNS_13ComponentDataEiR15HighsSymmetries(ptr noundef nonnull align 8 dereferenceable(720) %0, ptr noundef nonnull align 8 dereferenceable(264) %12, i32 noundef %.0144233, ptr noundef nonnull align 8 dereferenceable(216) %1)
          to label %327 unwind label %323

327:                                              ; preds = %325, %.lr.ph235
  %328 = add nuw nsw i32 %.0144233, 1
  %exitcond.not = icmp eq i32 %328, %319
  br i1 %exitcond.not, label %._crit_edge236, label %.lr.ph235, !llvm.loop !90

329:                                              ; preds = %._crit_edge236
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #8
  store i32 0, ptr %14, align 4, !tbaa !64
  %330 = load i32, ptr %310, align 8, !tbaa !70
  %331 = icmp sgt i32 %330, 0
  br i1 %331, label %.lr.ph241, label %._crit_edge242

.lr.ph241:                                        ; preds = %329
  %332 = getelementptr inbounds i8, ptr %1, i64 24
  %333 = getelementptr inbounds i8, ptr %0, i64 200
  %334 = getelementptr inbounds i8, ptr %1, i64 168
  br label %342

._crit_edge242:                                   ; preds = %.loopexit201, %329
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #8
  %335 = load i32, ptr %16, align 8, !tbaa !5
  %336 = icmp sgt i32 %335, 0
  br i1 %336, label %.lr.ph246, label %._crit_edge247.thread

.lr.ph246:                                        ; preds = %._crit_edge242
  %337 = getelementptr inbounds i8, ptr %0, i64 200
  %338 = getelementptr inbounds i8, ptr %0, i64 248
  %339 = getelementptr inbounds i8, ptr %1, i64 168
  br label %368

340:                                              ; preds = %._crit_edge236
  %341 = landingpad { ptr, i32 }
          cleanup
  br label %478

342:                                              ; preds = %.lr.ph241, %.loopexit201
  %343 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %332) #8
  %344 = load i32, ptr %14, align 4, !tbaa !64
  %345 = load i32, ptr %16, align 8, !tbaa !5
  %346 = mul nsw i32 %345, %344
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds i32, ptr %343, i64 %347
  %349 = icmp sgt i32 %345, 0
  br i1 %349, label %.lr.ph239, label %.loopexit201

.lr.ph239:                                        ; preds = %342, %360
  %indvars.iv280 = phi i64 [ %indvars.iv.next281, %360 ], [ 0, %342 ]
  %350 = getelementptr inbounds i32, ptr %348, i64 %indvars.iv280
  %351 = load i32, ptr %350, align 4, !tbaa !64
  %352 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %333, i64 noundef %indvars.iv280) #8
  %353 = load i32, ptr %352, align 4, !tbaa !64
  %.not174 = icmp eq i32 %351, %353
  br i1 %.not174, label %360, label %354

354:                                              ; preds = %.lr.ph239
  %355 = invoke noundef ptr @_ZN14HighsHashTableIiiE4findERKi(ptr noundef nonnull align 8 dereferenceable(40) %334, ptr noundef nonnull align 4 dereferenceable(4) %350)
          to label %356 unwind label %.loopexit202

356:                                              ; preds = %354
  %.not175 = icmp eq ptr %355, null
  br i1 %.not175, label %360, label %357

357:                                              ; preds = %356
  %358 = invoke noundef zeroext i1 @_ZN14HighsHashTableIivE6insertIJRiEEEbDpOT_(ptr noundef nonnull align 8 dereferenceable(40) %13, ptr noundef nonnull align 4 dereferenceable(4) %14)
          to label %.loopexit201 unwind label %.loopexit.split-lp

.loopexit202:                                     ; preds = %354
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %359

.loopexit.split-lp:                               ; preds = %357
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %359

359:                                              ; preds = %.loopexit.split-lp, %.loopexit202
  %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit202 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #8
  br label %477

360:                                              ; preds = %.lr.ph239, %356
  %indvars.iv.next281 = add nuw nsw i64 %indvars.iv280, 1
  %361 = load i32, ptr %16, align 8, !tbaa !5
  %362 = sext i32 %361 to i64
  %363 = icmp slt i64 %indvars.iv.next281, %362
  br i1 %363, label %.lr.ph239, label %.loopexit201, !llvm.loop !91

.loopexit201:                                     ; preds = %360, %342, %357
  %364 = load i32, ptr %14, align 4, !tbaa !64
  %365 = add nsw i32 %364, 1
  store i32 %365, ptr %14, align 4, !tbaa !64
  %366 = load i32, ptr %310, align 8, !tbaa !70
  %367 = icmp slt i32 %365, %366
  br i1 %367, label %342, label %._crit_edge242, !llvm.loop !92

._crit_edge247:                                   ; preds = %390
  %.not169 = icmp eq i32 %.1141, 0
  br i1 %.not169, label %._crit_edge247.thread, label %394

368:                                              ; preds = %.lr.ph246, %390
  %indvars.iv284 = phi i64 [ 0, %.lr.ph246 ], [ %indvars.iv.next285, %390 ]
  %.0140243 = phi i32 [ 0, %.lr.ph246 ], [ %.1141, %390 ]
  %369 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %337, i64 noundef %indvars.iv284) #8
  %370 = load i32, ptr %369, align 4, !tbaa !64
  %371 = invoke noundef i32 @_ZN22HighsSymmetryDetection8getOrbitEi(ptr noundef nonnull align 8 dereferenceable(720) %0, i32 noundef %370)
          to label %372 unwind label %388

372:                                              ; preds = %368
  %373 = sext i32 %371 to i64
  %374 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %338, i64 noundef %373) #8
  %375 = load i32, ptr %374, align 4, !tbaa !64
  %376 = icmp eq i32 %375, 1
  br i1 %376, label %381, label %377

377:                                              ; preds = %372
  %378 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %337, i64 noundef %indvars.iv284) #8
  %379 = invoke noundef ptr @_ZN14HighsHashTableIiiE4findERKi(ptr noundef nonnull align 8 dereferenceable(40) %339, ptr noundef nonnull align 4 dereferenceable(4) %378)
          to label %380 unwind label %388

380:                                              ; preds = %377
  %.not173 = icmp eq ptr %379, null
  br i1 %.not173, label %390, label %381

381:                                              ; preds = %380, %372
  %382 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %337, i64 noundef %indvars.iv284) #8
  %383 = load i32, ptr %382, align 4, !tbaa !64
  %384 = sext i32 %383 to i64
  %385 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %315, i64 noundef %384) #8
  store i32 -1, ptr %385, align 4, !tbaa !64
  %386 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %337, i64 noundef %indvars.iv284) #8
  store i32 -1, ptr %386, align 4, !tbaa !64
  %387 = add nsw i32 %.0140243, 1
  br label %390

388:                                              ; preds = %377, %368
  %389 = landingpad { ptr, i32 }
          cleanup
  br label %477

390:                                              ; preds = %380, %381
  %.1141 = phi i32 [ %387, %381 ], [ %.0140243, %380 ]
  %indvars.iv.next285 = add nuw nsw i64 %indvars.iv284, 1
  %391 = load i32, ptr %16, align 8, !tbaa !5
  %392 = sext i32 %391 to i64
  %393 = icmp slt i64 %indvars.iv.next285, %392
  br i1 %393, label %368, label %._crit_edge247, !llvm.loop !93

394:                                              ; preds = %._crit_edge247
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #8
  store i32 0, ptr %15, align 4, !tbaa !64
  %395 = getelementptr inbounds i8, ptr %1, i64 24
  %396 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %395) #8
  %397 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %395) #8
  %398 = load i32, ptr %310, align 8, !tbaa !70
  %399 = load i32, ptr %16, align 8, !tbaa !5
  %400 = mul nsw i32 %399, %398
  %401 = sext i32 %400 to i64
  %402 = getelementptr inbounds i32, ptr %397, i64 %401
  %403 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %395) #8
  %.not170253 = icmp eq ptr %396, %402
  br i1 %.not170253, label %..preheader_crit_edge, label %.lr.ph257

..preheader_crit_edge:                            ; preds = %394
  %.pre296 = load i32, ptr %16, align 8, !tbaa !5
  br label %.preheader

.lr.ph257:                                        ; preds = %394
  %404 = getelementptr inbounds i8, ptr %0, i64 200
  br label %408

.preheader:                                       ; preds = %.loopexit, %..preheader_crit_edge
  %405 = phi i32 [ %.pre296, %..preheader_crit_edge ], [ %429, %.loopexit ]
  %.0135.lcssa = phi ptr [ %403, %..preheader_crit_edge ], [ %.3, %.loopexit ]
  %406 = icmp sgt i32 %405, 0
  br i1 %406, label %.lr.ph261, label %._crit_edge262

.lr.ph261:                                        ; preds = %.preheader
  %407 = getelementptr inbounds i8, ptr %0, i64 200
  br label %442

408:                                              ; preds = %.lr.ph257, %.loopexit
  %.0135255 = phi ptr [ %403, %.lr.ph257 ], [ %.3, %.loopexit ]
  %.0138254 = phi ptr [ %396, %.lr.ph257 ], [ %431, %.loopexit ]
  %409 = invoke noundef ptr @_ZN14HighsHashTableIivE4findERKi(ptr noundef nonnull align 8 dereferenceable(40) %13, ptr noundef nonnull align 4 dereferenceable(4) %15)
          to label %410 unwind label %413

410:                                              ; preds = %408
  %.not171 = icmp eq ptr %409, null
  br i1 %.not171, label %.preheader200, label %426

.preheader200:                                    ; preds = %410
  %411 = load i32, ptr %16, align 8, !tbaa !5
  %412 = icmp sgt i32 %411, 0
  br i1 %412, label %.lr.ph251, label %.loopexit

413:                                              ; preds = %408
  %414 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #8
  br label %477

.lr.ph251:                                        ; preds = %.preheader200, %422
  %indvars.iv288 = phi i64 [ %indvars.iv.next289, %422 ], [ 0, %.preheader200 ]
  %.1136249 = phi ptr [ %.2, %422 ], [ %.0135255, %.preheader200 ]
  %415 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %404, i64 noundef %indvars.iv288) #8
  %416 = load i32, ptr %415, align 4, !tbaa !64
  %417 = icmp eq i32 %416, -1
  br i1 %417, label %422, label %418

418:                                              ; preds = %.lr.ph251
  %419 = getelementptr inbounds i32, ptr %.0138254, i64 %indvars.iv288
  %420 = load i32, ptr %419, align 4, !tbaa !64
  store i32 %420, ptr %.1136249, align 4, !tbaa !64
  %421 = getelementptr inbounds i8, ptr %.1136249, i64 4
  br label %422

422:                                              ; preds = %.lr.ph251, %418
  %.2 = phi ptr [ %.1136249, %.lr.ph251 ], [ %421, %418 ]
  %indvars.iv.next289 = add nuw nsw i64 %indvars.iv288, 1
  %423 = load i32, ptr %16, align 8, !tbaa !5
  %424 = sext i32 %423 to i64
  %425 = icmp slt i64 %indvars.iv.next289, %424
  br i1 %425, label %.lr.ph251, label %.loopexit, !llvm.loop !94

426:                                              ; preds = %410
  %427 = load i32, ptr %310, align 8, !tbaa !70
  %428 = add nsw i32 %427, -1
  store i32 %428, ptr %310, align 8, !tbaa !70
  %.pre = load i32, ptr %16, align 8, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %422, %.preheader200, %426
  %429 = phi i32 [ %.pre, %426 ], [ %411, %.preheader200 ], [ %423, %422 ]
  %.3 = phi ptr [ %.0135255, %426 ], [ %.0135255, %.preheader200 ], [ %.2, %422 ]
  %430 = sext i32 %429 to i64
  %431 = getelementptr inbounds i32, ptr %.0138254, i64 %430
  %432 = load i32, ptr %15, align 4, !tbaa !64
  %433 = add nsw i32 %432, 1
  store i32 %433, ptr %15, align 4, !tbaa !64
  %.not170 = icmp eq ptr %431, %402
  br i1 %.not170, label %.preheader, label %408, !llvm.loop !95

._crit_edge262:                                   ; preds = %456, %.preheader
  %.lcssa = phi i32 [ %405, %.preheader ], [ %457, %456 ]
  %434 = sub nsw i32 %.lcssa, %.1141
  store i32 %434, ptr %16, align 8, !tbaa !5
  %435 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %395) #8
  %436 = load i32, ptr %310, align 8, !tbaa !70
  %437 = load i32, ptr %16, align 8, !tbaa !5
  %438 = mul nsw i32 %437, %436
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds i32, ptr %435, i64 %439
  %441 = icmp eq ptr %.0135.lcssa, %440
  br i1 %441, label %461, label %460

442:                                              ; preds = %.lr.ph261, %456
  %indvars.iv292 = phi i64 [ 0, %.lr.ph261 ], [ %indvars.iv.next293, %456 ]
  %.0133259 = phi i32 [ 0, %.lr.ph261 ], [ %.1, %456 ]
  %443 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %407, i64 noundef %indvars.iv292) #8
  %444 = load i32, ptr %443, align 4, !tbaa !64
  %445 = icmp eq i32 %444, -1
  br i1 %445, label %456, label %446

446:                                              ; preds = %442
  %447 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %407, i64 noundef %indvars.iv292) #8
  %448 = load i32, ptr %447, align 4, !tbaa !64
  %449 = sext i32 %.0133259 to i64
  %450 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %407, i64 noundef %449) #8
  store i32 %448, ptr %450, align 4, !tbaa !64
  %451 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %407, i64 noundef %449) #8
  %452 = load i32, ptr %451, align 4, !tbaa !64
  %453 = sext i32 %452 to i64
  %454 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %315, i64 noundef %453) #8
  store i32 %.0133259, ptr %454, align 4, !tbaa !64
  %455 = add nsw i32 %.0133259, 1
  br label %456

456:                                              ; preds = %442, %446
  %.1 = phi i32 [ %.0133259, %442 ], [ %455, %446 ]
  %indvars.iv.next293 = add nuw nsw i64 %indvars.iv292, 1
  %457 = load i32, ptr %16, align 8, !tbaa !5
  %458 = sext i32 %457 to i64
  %459 = icmp slt i64 %indvars.iv.next293, %458
  br i1 %459, label %442, label %._crit_edge262, !llvm.loop !96

460:                                              ; preds = %._crit_edge262
  call void @__assert_fail(ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.52, i32 noundef 1913, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection3runER15HighsSymmetries) #7
  unreachable

461:                                              ; preds = %._crit_edge262
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #8
  br label %._crit_edge247.thread

._crit_edge247.thread:                            ; preds = %._crit_edge242, %461, %._crit_edge247
  %462 = phi i32 [ %437, %461 ], [ %391, %._crit_edge247 ], [ %335, %._crit_edge242 ]
  %463 = getelementptr inbounds i8, ptr %0, i64 200
  %464 = sext i32 %462 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %463, i64 noundef %464)
          to label %465 unwind label %475

465:                                              ; preds = %._crit_edge247.thread
  %466 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %463) #8
  %467 = getelementptr inbounds i8, ptr %1, i64 96
  %468 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %467, ptr noundef nonnull align 8 dereferenceable(24) %315) #8
  %469 = getelementptr inbounds i8, ptr %1, i64 24
  %470 = load i32, ptr %310, align 8, !tbaa !70
  %471 = load i32, ptr %16, align 8, !tbaa !5
  %472 = mul nsw i32 %471, %470
  %473 = sext i32 %472 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %469, i64 noundef %473)
          to label %474 unwind label %475

474:                                              ; preds = %465
  call void @_ZN14HighsHashTableIivED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %13) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #8
  call void @_ZN22HighsSymmetryDetection13ComponentDataD2Ev(ptr noundef nonnull align 8 dereferenceable(264) %12) #8
  call void @llvm.lifetime.end.p0(i64 264, ptr nonnull %12) #8
  br label %480

475:                                              ; preds = %465, %._crit_edge247.thread
  %476 = landingpad { ptr, i32 }
          cleanup
  br label %477

477:                                              ; preds = %388, %413, %475, %359
  %.pn176 = phi { ptr, i32 } [ %lpad.phi, %359 ], [ %389, %388 ], [ %414, %413 ], [ %476, %475 ]
  call void @_ZN14HighsHashTableIivED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %13) #8
  br label %478

478:                                              ; preds = %477, %340
  %.pn176.pn = phi { ptr, i32 } [ %.pn176, %477 ], [ %341, %340 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #8
  br label %479

479:                                              ; preds = %478, %323
  %.pn179 = phi { ptr, i32 } [ %324, %323 ], [ %.pn176.pn, %478 ]
  call void @_ZN22HighsSymmetryDetection13ComponentDataD2Ev(ptr noundef nonnull align 8 dereferenceable(264) %12) #8
  call void @llvm.lifetime.end.p0(i64 264, ptr nonnull %12) #8
  resume { ptr, i32 } %.pn179

480:                                              ; preds = %474, %.loopexit206
  ret void
}

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN17HighsTaskExecutor18getThisWorkerDequeEv() local_unnamed_addr #1 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN15HighsSplitDeque14checkInterruptEv(ptr noundef nonnull align 64 dereferenceable(524544)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smin.i32(i32, i32) #6

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


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