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

; 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.__gnu_cxx::__normal_iterator" = type { ptr }
%class.anon = type { ptr }
%"class.__gnu_cxx::__normal_iterator.48" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.47" = type { ptr }
%class.anon.49 = type { ptr, ptr }
%class.anon.50 = 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.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsHashTable = 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::unique_ptr.25" = type { %"struct.std::__uniq_ptr_data.26" }
%"struct.std::__uniq_ptr_data.26" = type { %"class.std::__uniq_ptr_impl.27" }
%"class.std::__uniq_ptr_impl.27" = type { %"class.std::tuple.28" }
%"class.std::tuple.28" = type { %"struct.std::_Tuple_impl.29" }
%"struct.std::_Tuple_impl.29" = type { %"struct.std::_Head_base.32" }
%"struct.std::_Head_base.32" = type { ptr }
%class.HighsHashTable.33 = type { %"class.std::unique_ptr.34", %"class.std::unique_ptr.25", i64, i64, i64 }
%"class.std::unique_ptr.34" = type { %"struct.std::__uniq_ptr_data.35" }
%"struct.std::__uniq_ptr_data.35" = type { %"class.std::__uniq_ptr_impl.36" }
%"class.std::__uniq_ptr_impl.36" = type { %"class.std::tuple.37" }
%"class.std::tuple.37" = type { %"struct.std::_Tuple_impl.38" }
%"struct.std::_Tuple_impl.38" = type { %"struct.std::_Head_base.41" }
%"struct.std::_Head_base.41" = type { ptr }
%"class.std::vector.42" = type { %"struct.std::_Vector_base.43" }
%"struct.std::_Vector_base.43" = type { %"struct.std::_Vector_base<HighsSymmetryDetection::Node, std::allocator<HighsSymmetryDetection::Node>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsSymmetryDetection::Node, std::allocator<HighsSymmetryDetection::Node>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsSymmetryDetection::Node, std::allocator<HighsSymmetryDetection::Node>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsSymmetryDetection::Node, std::allocator<HighsSymmetryDetection::Node>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type { i32, i32 }

@.str.51 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [80 x i8], align 1
@__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection15removeFixPointsEv = external hidden unnamed_addr constant [47 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [38 x i8], align 1

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN22HighsSymmetryDetection15removeFixPointsEv(ptr noundef nonnull align 8 dereferenceable(720) %0) #1 align 2 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %5 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %6 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %9 = alloca %class.anon, align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.48", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %16 = alloca %class.anon.49, align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator.48", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i8, align 1
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %31 = alloca %class.anon.50, align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %33 = load ptr, ptr %2, align 8
  %34 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 2
  %35 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 33
  %36 = load i32, ptr %35, align 4, !tbaa !9
  %37 = sext i32 %36 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %37)
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #6
  store i32 0, ptr %3, align 4, !tbaa !57
  br label %38

38:                                               ; preds = %116, %1
  %39 = load i32, ptr %3, align 4, !tbaa !57
  %40 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 33
  %41 = load i32, ptr %40, align 4, !tbaa !9
  %42 = icmp slt i32 %39, %41
  br i1 %42, label %44, label %43

43:                                               ; preds = %38
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #6
  br label %119

44:                                               ; preds = %38
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #6
  %45 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 3
  %46 = call ptr @_ZNSt6vectorISt4pairIijESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #6
  %47 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %6, i32 0, i32 0
  store ptr %46, ptr %47, align 8
  %48 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 1
  %49 = load i32, ptr %3, align 4, !tbaa !57
  %50 = sext i32 %49 to i64
  %51 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %50) #6
  %52 = load i32, ptr %51, align 4, !tbaa !57
  %53 = sext i32 %52 to i64
  %54 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIijESt6vectorIS2_SaIS2_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %6, i64 noundef %53) #6
  %55 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %5, i32 0, i32 0
  store ptr %54, ptr %55, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #6
  %56 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 3
  %57 = call ptr @_ZNSt6vectorISt4pairIijESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %56) #6
  %58 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %8, i32 0, i32 0
  store ptr %57, ptr %58, align 8
  %59 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 1
  %60 = load i32, ptr %3, align 4, !tbaa !57
  %61 = add nsw i32 %60, 1
  %62 = sext i32 %61 to i64
  %63 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %62) #6
  %64 = load i32, ptr %63, align 4, !tbaa !57
  %65 = sext i32 %64 to i64
  %66 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIijESt6vectorIS2_SaIS2_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %8, i64 noundef %65) #6
  %67 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %7, i32 0, i32 0
  store ptr %66, ptr %67, align 8
  %68 = getelementptr inbounds %class.anon, ptr %9, i32 0, i32 0
  store ptr %33, ptr %68, align 8, !tbaa !58
  %69 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %5, i32 0, i32 0
  %70 = load ptr, ptr %69, align 8
  %71 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %7, i32 0, i32 0
  %72 = load ptr, ptr %71, align 8
  %73 = getelementptr inbounds %class.anon, ptr %9, i32 0, i32 0
  %74 = load ptr, ptr %73, align 8
  %75 = call ptr @"_ZSt9partitionIN9__gnu_cxx17__normal_iteratorIPSt4pairIijESt6vectorIS3_SaIS3_EEEEZN22HighsSymmetryDetection15removeFixPointsEvE3$_0ET_SB_SB_T0_"(ptr %70, ptr %72, ptr %74)
  %76 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %4, i32 0, i32 0
  store ptr %75, ptr %76, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #6
  %77 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 3
  %78 = call ptr @_ZNSt6vectorISt4pairIijESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %77) #6
  %79 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %10, i32 0, i32 0
  store ptr %78, ptr %79, align 8
  %80 = call noundef i64 @_ZN9__gnu_cxxmiIPSt4pairIijESt6vectorIS2_SaIS2_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSA_SD_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %10) #6
  %81 = trunc i64 %80 to i32
  %82 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 2
  %83 = load i32, ptr %3, align 4, !tbaa !57
  %84 = sext i32 %83 to i64
  %85 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %82, i64 noundef %84) #6
  store i32 %81, ptr %85, align 4, !tbaa !57
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #6
  %86 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 2
  %87 = load i32, ptr %3, align 4, !tbaa !57
  %88 = sext i32 %87 to i64
  %89 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %88) #6
  %90 = load i32, ptr %89, align 4, !tbaa !57
  %91 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 1
  %92 = load i32, ptr %3, align 4, !tbaa !57
  %93 = sext i32 %92 to i64
  %94 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %93) #6
  %95 = load i32, ptr %94, align 4, !tbaa !57
  %96 = icmp sge i32 %90, %95
  br i1 %96, label %97, label %110

97:                                               ; preds = %44
  %98 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 2
  %99 = load i32, ptr %3, align 4, !tbaa !57
  %100 = sext i32 %99 to i64
  %101 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %98, i64 noundef %100) #6
  %102 = load i32, ptr %101, align 4, !tbaa !57
  %103 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 1
  %104 = load i32, ptr %3, align 4, !tbaa !57
  %105 = add nsw i32 %104, 1
  %106 = sext i32 %105 to i64
  %107 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %103, i64 noundef %106) #6
  %108 = load i32, ptr %107, align 4, !tbaa !57
  %109 = icmp sle i32 %102, %108
  br label %110

110:                                              ; preds = %97, %44
  %111 = phi i1 [ false, %44 ], [ %109, %97 ]
  br i1 %111, label %112, label %113

112:                                              ; preds = %110
  br label %115

113:                                              ; preds = %110
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.52, i32 noundef 33, ptr noundef @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection15removeFixPointsEv) #7
  unreachable

114:                                              ; No predecessors!
  br label %115

115:                                              ; preds = %114, %112
  br label %116

116:                                              ; preds = %115
  %117 = load i32, ptr %3, align 4, !tbaa !57
  %118 = add nsw i32 %117, 1
  store i32 %118, ptr %3, align 4, !tbaa !57
  br label %38, !llvm.loop !60

119:                                              ; preds = %43
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #6
  %120 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 33
  %121 = load i32, ptr %120, align 4, !tbaa !9
  store i32 %121, ptr %11, align 4, !tbaa !57
  %122 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #6
  %123 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 5
  %124 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %123) #6
  %125 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %14, i32 0, i32 0
  store ptr %124, ptr %125, align 8
  %126 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 5
  %127 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %126) #6
  %128 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %15, i32 0, i32 0
  store ptr %127, ptr %128, align 8
  %129 = getelementptr inbounds %class.anon.49, ptr %16, i32 0, i32 0
  store ptr %33, ptr %129, align 8, !tbaa !62
  %130 = getelementptr inbounds %class.anon.49, ptr %16, i32 0, i32 1
  store ptr %11, ptr %130, align 8, !tbaa !5
  %131 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %14, i32 0, i32 0
  %132 = load ptr, ptr %131, align 8
  %133 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %15, i32 0, i32 0
  %134 = load ptr, ptr %133, align 8
  %135 = getelementptr inbounds { ptr, ptr }, ptr %16, i32 0, i32 0
  %136 = load ptr, ptr %135, align 8
  %137 = getelementptr inbounds { ptr, ptr }, ptr %16, i32 0, i32 1
  %138 = load ptr, ptr %137, align 8
  %139 = call ptr @"_ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN22HighsSymmetryDetection15removeFixPointsEvE3$_1ET_S9_S9_T0_"(ptr %132, ptr %134, ptr %136, ptr %138)
  %140 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %13, i32 0, i32 0
  store ptr %139, ptr %140, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  %141 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 5
  %142 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %141) #6
  %143 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %18, i32 0, i32 0
  store ptr %142, ptr %143, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #6
  %144 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.48", ptr %12, i32 0, i32 0
  %145 = load ptr, ptr %144, align 8
  %146 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.48", ptr %17, i32 0, i32 0
  %147 = load ptr, ptr %146, align 8
  %148 = call ptr @_ZNSt6vectorIiSaIiEE5eraseEN9__gnu_cxx17__normal_iteratorIPKiS1_EES6_(ptr noundef nonnull align 8 dereferenceable(24) %122, ptr %145, ptr %147)
  %149 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %19, i32 0, i32 0
  store ptr %148, ptr %149, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #6
  store i32 0, ptr %20, align 4, !tbaa !57
  br label %150

150:                                              ; preds = %206, %119
  %151 = load i32, ptr %20, align 4, !tbaa !57
  %152 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 33
  %153 = load i32, ptr %152, align 4, !tbaa !9
  %154 = icmp slt i32 %151, %153
  br i1 %154, label %156, label %155

155:                                              ; preds = %150
  store i32 5, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  br label %209

156:                                              ; preds = %150
  %157 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 2
  %158 = load i32, ptr %20, align 4, !tbaa !57
  %159 = sext i32 %158 to i64
  %160 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %157, i64 noundef %159) #6
  %161 = load i32, ptr %160, align 4, !tbaa !57
  %162 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 1
  %163 = load i32, ptr %20, align 4, !tbaa !57
  %164 = add nsw i32 %163, 1
  %165 = sext i32 %164 to i64
  %166 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef %165) #6
  %167 = load i32, ptr %166, align 4, !tbaa !57
  %168 = icmp eq i32 %161, %167
  br i1 %168, label %169, label %170

169:                                              ; preds = %156
  br label %206

170:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #6
  %171 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 2
  %172 = load i32, ptr %20, align 4, !tbaa !57
  %173 = sext i32 %172 to i64
  %174 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %171, i64 noundef %173) #6
  %175 = load i32, ptr %174, align 4, !tbaa !57
  store i32 %175, ptr %22, align 4, !tbaa !57
  br label %176

176:                                              ; preds = %202, %170
  %177 = load i32, ptr %22, align 4, !tbaa !57
  %178 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 1
  %179 = load i32, ptr %20, align 4, !tbaa !57
  %180 = add nsw i32 %179, 1
  %181 = sext i32 %180 to i64
  %182 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %178, i64 noundef %181) #6
  %183 = load i32, ptr %182, align 4, !tbaa !57
  %184 = icmp slt i32 %177, %183
  br i1 %184, label %186, label %185

185:                                              ; preds = %176
  store i32 8, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  br label %205

186:                                              ; preds = %176
  %187 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 7
  %188 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 3
  %189 = load i32, ptr %22, align 4, !tbaa !57
  %190 = sext i32 %189 to i64
  %191 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIijESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %188, i64 noundef %190) #6
  %192 = getelementptr inbounds %"struct.std::pair", ptr %191, i32 0, i32 0
  %193 = load i32, ptr %192, align 4, !tbaa !64
  %194 = sext i32 %193 to i64
  %195 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %187, i64 noundef %194) #6
  %196 = load i32, ptr %195, align 4, !tbaa !57
  %197 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 3
  %198 = load i32, ptr %22, align 4, !tbaa !57
  %199 = sext i32 %198 to i64
  %200 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIijESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %197, i64 noundef %199) #6
  %201 = getelementptr inbounds %"struct.std::pair", ptr %200, i32 0, i32 0
  store i32 %196, ptr %201, align 4, !tbaa !64
  br label %202

202:                                              ; preds = %186
  %203 = load i32, ptr %22, align 4, !tbaa !57
  %204 = add nsw i32 %203, 1
  store i32 %204, ptr %22, align 4, !tbaa !57
  br label %176, !llvm.loop !66

205:                                              ; preds = %185
  br label %206

206:                                              ; preds = %205, %169
  %207 = load i32, ptr %20, align 4, !tbaa !57
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr %20, align 4, !tbaa !57
  br label %150, !llvm.loop !67

209:                                              ; preds = %155
  %210 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 5
  %211 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %210) #6
  %212 = trunc i64 %211 to i32
  %213 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 33
  %214 = load i32, ptr %213, align 4, !tbaa !9
  %215 = icmp slt i32 %212, %214
  br i1 %215, label %216, label %316

216:                                              ; preds = %209
  %217 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 5
  %218 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %217) #6
  %219 = trunc i64 %218 to i32
  %220 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 33
  store i32 %219, ptr %220, align 4, !tbaa !9
  %221 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 33
  %222 = load i32, ptr %221, align 4, !tbaa !9
  %223 = icmp eq i32 %222, 0
  br i1 %223, label %224, label %226

224:                                              ; preds = %216
  %225 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 34
  store i32 0, ptr %225, align 8, !tbaa !68
  store i32 1, ptr %21, align 4
  br label %321

226:                                              ; preds = %216
  %227 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 6
  %228 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 33
  %229 = load i32, ptr %228, align 4, !tbaa !9
  %230 = sext i32 %229 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %227, i64 noundef %230)
  %231 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 13
  %232 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 33
  %233 = load i32, ptr %232, align 4, !tbaa !9
  %234 = sext i32 %233 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #6
  store i8 0, ptr %23, align 1, !tbaa !69
  call void @_ZNSt6vectorIhSaIhEE6assignEmRKh(ptr noundef nonnull align 8 dereferenceable(24) %231, i64 noundef %234, ptr noundef nonnull align 1 dereferenceable(1) %23)
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #6
  %235 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 14
  %236 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %235) #6
  br i1 %236, label %237, label %238

237:                                              ; preds = %226
  br label %240

238:                                              ; preds = %226
  call void @__assert_fail(ptr noundef @.str.53, ptr noundef @.str.52, i32 noundef 64, ptr noundef @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection15removeFixPointsEv) #7
  unreachable

239:                                              ; No predecessors!
  br label %240

240:                                              ; preds = %239, %237
  %241 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 14
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %241) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  store i32 0, ptr %24, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  store i32 0, ptr %25, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  store i32 0, ptr %26, align 4, !tbaa !57
  br label %242

242:                                              ; preds = %277, %240
  %243 = load i32, ptr %26, align 4, !tbaa !57
  %244 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 33
  %245 = load i32, ptr %244, align 4, !tbaa !9
  %246 = icmp slt i32 %243, %245
  br i1 %246, label %248, label %247

247:                                              ; preds = %242
  store i32 11, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  br label %280

248:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  %249 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 5
  %250 = load i32, ptr %26, align 4, !tbaa !57
  %251 = sext i32 %250 to i64
  %252 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %249, i64 noundef %251) #6
  %253 = load i32, ptr %252, align 4, !tbaa !57
  store i32 %253, ptr %27, align 4, !tbaa !57
  %254 = load i32, ptr %25, align 4, !tbaa !57
  %255 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 7
  %256 = load i32, ptr %27, align 4, !tbaa !57
  %257 = sext i32 %256 to i64
  %258 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %255, i64 noundef %257) #6
  %259 = load i32, ptr %258, align 4, !tbaa !57
  %260 = icmp ne i32 %254, %259
  br i1 %260, label %261, label %273

261:                                              ; preds = %248
  %262 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 7
  %263 = load i32, ptr %27, align 4, !tbaa !57
  %264 = sext i32 %263 to i64
  %265 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %262, i64 noundef %264) #6
  %266 = load i32, ptr %265, align 4, !tbaa !57
  store i32 %266, ptr %25, align 4, !tbaa !57
  %267 = load i32, ptr %26, align 4, !tbaa !57
  %268 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 6
  %269 = load i32, ptr %24, align 4, !tbaa !57
  %270 = sext i32 %269 to i64
  %271 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %268, i64 noundef %270) #6
  store i32 %267, ptr %271, align 4, !tbaa !57
  %272 = load i32, ptr %26, align 4, !tbaa !57
  store i32 %272, ptr %24, align 4, !tbaa !57
  br label %273

273:                                              ; preds = %261, %248
  %274 = load i32, ptr %26, align 4, !tbaa !57
  %275 = load i32, ptr %24, align 4, !tbaa !57
  %276 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection20updateCellMembershipEiib(ptr noundef nonnull align 8 dereferenceable(720) %33, i32 noundef %274, i32 noundef %275, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %277

277:                                              ; preds = %273
  %278 = load i32, ptr %26, align 4, !tbaa !57
  %279 = add nsw i32 %278, 1
  store i32 %279, ptr %26, align 4, !tbaa !57
  br label %242, !llvm.loop !70

280:                                              ; preds = %247
  %281 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 6
  %282 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %281) #6
  %283 = trunc i64 %282 to i32
  %284 = icmp sgt i32 %283, 0
  br i1 %284, label %285, label %286

285:                                              ; preds = %280
  br label %288

286:                                              ; preds = %280
  call void @__assert_fail(ptr noundef @.str.54, ptr noundef @.str.52, i32 noundef 88, ptr noundef @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection15removeFixPointsEv) #7
  unreachable

287:                                              ; No predecessors!
  br label %288

288:                                              ; preds = %287, %285
  %289 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 33
  %290 = load i32, ptr %289, align 4, !tbaa !9
  %291 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 6
  %292 = load i32, ptr %24, align 4, !tbaa !57
  %293 = sext i32 %292 to i64
  %294 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %291, i64 noundef %293) #6
  store i32 %290, ptr %294, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #6
  %295 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 5
  %296 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %295) #6
  %297 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %29, i32 0, i32 0
  store ptr %296, ptr %297, align 8
  %298 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 5
  %299 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %298) #6
  %300 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %30, i32 0, i32 0
  store ptr %299, ptr %300, align 8
  %301 = getelementptr inbounds %class.anon.50, ptr %31, i32 0, i32 0
  store ptr %33, ptr %301, align 8, !tbaa !71
  %302 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %29, i32 0, i32 0
  %303 = load ptr, ptr %302, align 8
  %304 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %30, i32 0, i32 0
  %305 = load ptr, ptr %304, align 8
  %306 = getelementptr inbounds %class.anon.50, ptr %31, i32 0, i32 0
  %307 = load ptr, ptr %306, align 8
  %308 = call ptr @"_ZSt15partition_pointIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN22HighsSymmetryDetection15removeFixPointsEvE3$_2ET_S9_S9_T0_"(ptr %303, ptr %305, ptr %307)
  %309 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %28, i32 0, i32 0
  store ptr %308, ptr %309, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #6
  %310 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 5
  %311 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %310) #6
  %312 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47", ptr %32, i32 0, i32 0
  store ptr %311, ptr %312, align 8
  %313 = call noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %32) #6
  %314 = trunc i64 %313 to i32
  %315 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 34
  store i32 %314, ptr %315, align 8, !tbaa !68
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  br label %320

316:                                              ; preds = %209
  %317 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 31
  %318 = load i32, ptr %317, align 4, !tbaa !73
  %319 = getelementptr inbounds %class.HighsSymmetryDetection, ptr %33, i32 0, i32 34
  store i32 %318, ptr %319, align 8, !tbaa !68
  br label %320

320:                                              ; preds = %316, %288
  store i32 0, ptr %21, align 4
  br label %321

321:                                              ; preds = %320, %224
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #6
  %322 = load i32, ptr %21, align 4
  switch i32 %322, label %324 [
    i32 0, label %323
    i32 1, label %323
  ]

323:                                              ; preds = %321, %321
  ret void

324:                                              ; preds = %321
  unreachable
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden ptr @"_ZSt9partitionIN9__gnu_cxx17__normal_iteratorIPSt4pairIijESt6vectorIS3_SaIS3_EEEEZN22HighsSymmetryDetection15removeFixPointsEvE3$_0ET_SB_SB_T0_"(ptr, ptr, ptr) #3

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden ptr @"_ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN22HighsSymmetryDetection15removeFixPointsEvE3$_1ET_S9_S9_T0_"(ptr, ptr, ptr, ptr) #3

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !52, i64 684}
!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 = !{!59, !6, i64 0}
!59 = !{!"_ZTSZN22HighsSymmetryDetection15removeFixPointsEvE3$_0", !6, i64 0}
!60 = distinct !{!60, !61}
!61 = !{!"llvm.loop.mustprogress"}
!62 = !{!63, !6, i64 0}
!63 = !{!"_ZTSZN22HighsSymmetryDetection15removeFixPointsEvE3$_1", !6, i64 0, !6, i64 8}
!64 = !{!65, !52, i64 0}
!65 = !{!"_ZTSSt4pairIijE", !52, i64 0, !52, i64 4}
!66 = distinct !{!66, !61}
!67 = distinct !{!67, !61}
!68 = !{!10, !52, i64 688}
!69 = !{!7, !7, i64 0}
!70 = distinct !{!70, !61}
!71 = !{!72, !6, i64 0}
!72 = !{!"_ZTSZN22HighsSymmetryDetection15removeFixPointsEvE3$_2", !6, i64 0}
!73 = !{!10, !52, i64 676}


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

@.str.51 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [80 x i8], align 1
@__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection15removeFixPointsEv = external hidden unnamed_addr constant [47 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [38 x i8], align 1

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN22HighsSymmetryDetection15removeFixPointsEv(ptr noundef nonnull align 8 dereferenceable(720) %0) local_unnamed_addr #1 align 2 {
  %2 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %3 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %4 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %5 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %6 = alloca i32, align 4
  %7 = alloca %"class.__gnu_cxx::__normal_iterator.48", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator.48", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %11 = alloca i8, align 1
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 8
  %14 = getelementptr inbounds i8, ptr %0, i64 32
  %15 = getelementptr inbounds i8, ptr %0, i64 684
  %16 = load i32, ptr %15, align 4, !tbaa !5
  %17 = sext i32 %16 to i64
  tail call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %17)
  %18 = getelementptr inbounds i8, ptr %0, i64 56
  %19 = getelementptr inbounds i8, ptr %0, i64 8
  br label %20

20:                                               ; preds = %56, %1
  %indvars.iv = phi i64 [ %indvars.iv.next, %56 ], [ 0, %1 ]
  %21 = load i32, ptr %15, align 4, !tbaa !5
  %22 = sext i32 %21 to i64
  %23 = icmp slt i64 %indvars.iv, %22
  br i1 %23, label %36, label %24

24:                                               ; preds = %20
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #6
  store i32 %21, ptr %6, align 4, !tbaa !56
  %25 = getelementptr inbounds i8, ptr %0, i64 104
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #6
  %26 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #6
  %27 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #6
  %28 = call ptr @"_ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN22HighsSymmetryDetection15removeFixPointsEvE3$_1ET_S9_S9_T0_"(ptr %26, ptr %27, ptr nonnull %0, ptr nonnull %6)
  store ptr %28, ptr %8, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  %29 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #6
  store ptr %29, ptr %10, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #6
  %30 = load ptr, ptr %7, align 8
  %31 = load ptr, ptr %9, align 8
  %32 = call ptr @_ZNSt6vectorIiSaIiEE5eraseEN9__gnu_cxx17__normal_iteratorIPKiS1_EES6_(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr %30, ptr %31)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #6
  %33 = load i32, ptr %15, align 4, !tbaa !5
  %34 = icmp sgt i32 %33, 0
  br i1 %34, label %.lr.ph52, label %._crit_edge

.lr.ph52:                                         ; preds = %24
  %35 = getelementptr inbounds i8, ptr %0, i64 152
  br label %65

36:                                               ; preds = %20
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #6
  %37 = call ptr @_ZNSt6vectorISt4pairIijESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %18) #6
  store ptr %37, ptr %3, align 8
  %38 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %indvars.iv) #6
  %39 = load i32, ptr %38, align 4, !tbaa !56
  %40 = sext i32 %39 to i64
  %41 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIijESt6vectorIS2_SaIS2_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %3, i64 noundef %40) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #6
  %42 = call ptr @_ZNSt6vectorISt4pairIijESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %18) #6
  store ptr %42, ptr %4, align 8
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %43 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %indvars.iv.next) #6
  %44 = load i32, ptr %43, align 4, !tbaa !56
  %45 = sext i32 %44 to i64
  %46 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIijESt6vectorIS2_SaIS2_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 noundef %45) #6
  %47 = call ptr @"_ZSt9partitionIN9__gnu_cxx17__normal_iteratorIPSt4pairIijESt6vectorIS3_SaIS3_EEEEZN22HighsSymmetryDetection15removeFixPointsEvE3$_0ET_SB_SB_T0_"(ptr %41, ptr %46, ptr nonnull %0)
  store ptr %47, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #6
  %48 = call ptr @_ZNSt6vectorISt4pairIijESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %18) #6
  store ptr %48, ptr %5, align 8
  %49 = call noundef i64 @_ZN9__gnu_cxxmiIPSt4pairIijESt6vectorIS2_SaIS2_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSA_SD_(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %5) #6
  %50 = trunc i64 %49 to i32
  %51 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %indvars.iv) #6
  store i32 %50, ptr %51, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #6
  %52 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %indvars.iv) #6
  %53 = load i32, ptr %52, align 4, !tbaa !56
  %54 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %indvars.iv) #6
  %55 = load i32, ptr %54, align 4, !tbaa !56
  %.not47 = icmp slt i32 %53, %55
  br i1 %.not47, label %.critedge, label %56

56:                                               ; preds = %36
  %57 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %indvars.iv) #6
  %58 = load i32, ptr %57, align 4, !tbaa !56
  %59 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %indvars.iv.next) #6
  %60 = load i32, ptr %59, align 4, !tbaa !56
  %.not48 = icmp sgt i32 %58, %60
  br i1 %.not48, label %.critedge, label %20, !llvm.loop !57

.critedge:                                        ; preds = %36, %56
  call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.52, i32 noundef 33, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection15removeFixPointsEv) #7
  unreachable

._crit_edge:                                      ; preds = %.loopexit, %24
  %61 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #6
  %62 = trunc i64 %61 to i32
  %63 = load i32, ptr %15, align 4, !tbaa !5
  %64 = icmp sgt i32 %63, %62
  br i1 %64, label %91, label %142

65:                                               ; preds = %.lr.ph52, %.loopexit
  %indvars.iv64 = phi i64 [ 0, %.lr.ph52 ], [ %indvars.iv.next65, %.loopexit ]
  %66 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %indvars.iv64) #6
  %67 = load i32, ptr %66, align 4, !tbaa !56
  %indvars.iv.next65 = add nuw nsw i64 %indvars.iv64, 1
  %68 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %indvars.iv.next65) #6
  %69 = load i32, ptr %68, align 4, !tbaa !56
  %70 = icmp eq i32 %67, %69
  br i1 %70, label %.loopexit, label %71

71:                                               ; preds = %65
  %72 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %indvars.iv64) #6
  %73 = load i32, ptr %72, align 4, !tbaa !56
  %74 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %indvars.iv.next65) #6
  %75 = load i32, ptr %74, align 4, !tbaa !56
  %76 = icmp slt i32 %73, %75
  br i1 %76, label %.lr.ph.preheader, label %.loopexit

.lr.ph.preheader:                                 ; preds = %71
  %77 = sext i32 %73 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv61 = phi i64 [ %77, %.lr.ph.preheader ], [ %indvars.iv.next62, %.lr.ph ]
  %78 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIijESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef %indvars.iv61) #6
  %79 = load i32, ptr %78, align 4, !tbaa !59
  %80 = sext i32 %79 to i64
  %81 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %80) #6
  %82 = load i32, ptr %81, align 4, !tbaa !56
  %83 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIijESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef %indvars.iv61) #6
  store i32 %82, ptr %83, align 4, !tbaa !59
  %indvars.iv.next62 = add nsw i64 %indvars.iv61, 1
  %84 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %indvars.iv.next65) #6
  %85 = load i32, ptr %84, align 4, !tbaa !56
  %86 = sext i32 %85 to i64
  %87 = icmp slt i64 %indvars.iv.next62, %86
  br i1 %87, label %.lr.ph, label %.loopexit, !llvm.loop !61

.loopexit:                                        ; preds = %.lr.ph, %71, %65
  %88 = load i32, ptr %15, align 4, !tbaa !5
  %89 = sext i32 %88 to i64
  %90 = icmp slt i64 %indvars.iv.next65, %89
  br i1 %90, label %65, label %._crit_edge, !llvm.loop !62

91:                                               ; preds = %._crit_edge
  %92 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #6
  %93 = trunc i64 %92 to i32
  store i32 %93, ptr %15, align 4, !tbaa !5
  %94 = icmp eq i32 %93, 0
  br i1 %94, label %95, label %97

95:                                               ; preds = %91
  %96 = getelementptr inbounds i8, ptr %0, i64 688
  store i32 0, ptr %96, align 8, !tbaa !63
  br label %146

97:                                               ; preds = %91
  %98 = getelementptr inbounds i8, ptr %0, i64 128
  %sext = shl i64 %92, 32
  %99 = ashr exact i64 %sext, 32
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %98, i64 noundef %99)
  %100 = getelementptr inbounds i8, ptr %0, i64 296
  %101 = load i32, ptr %15, align 4, !tbaa !5
  %102 = sext i32 %101 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #6
  store i8 0, ptr %11, align 1, !tbaa !64
  call void @_ZNSt6vectorIhSaIhEE6assignEmRKh(ptr noundef nonnull align 8 dereferenceable(24) %100, i64 noundef %102, ptr noundef nonnull align 1 dereferenceable(1) %11)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #6
  %103 = getelementptr inbounds i8, ptr %0, i64 320
  %104 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %103) #6
  br i1 %104, label %106, label %105

105:                                              ; preds = %97
  call void @__assert_fail(ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.52, i32 noundef 64, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection15removeFixPointsEv) #7
  unreachable

106:                                              ; preds = %97
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %103) #6
  %107 = load i32, ptr %15, align 4, !tbaa !5
  %108 = icmp sgt i32 %107, 0
  br i1 %108, label %.lr.ph57, label %._crit_edge58

.lr.ph57:                                         ; preds = %106
  %109 = getelementptr inbounds i8, ptr %0, i64 152
  br label %114

._crit_edge58.loopexit:                           ; preds = %126
  %110 = sext i32 %.145 to i64
  br label %._crit_edge58

._crit_edge58:                                    ; preds = %._crit_edge58.loopexit, %106
  %.044.lcssa = phi i64 [ 0, %106 ], [ %110, %._crit_edge58.loopexit ]
  %111 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %98) #6
  %112 = trunc i64 %111 to i32
  %113 = icmp sgt i32 %112, 0
  br i1 %113, label %132, label %131

114:                                              ; preds = %.lr.ph57, %126
  %indvars.iv67 = phi i64 [ 0, %.lr.ph57 ], [ %indvars.iv.next68, %126 ]
  %.04354 = phi i32 [ 0, %.lr.ph57 ], [ %.1, %126 ]
  %.04453 = phi i32 [ 0, %.lr.ph57 ], [ %.145, %126 ]
  %115 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv67) #6
  %116 = load i32, ptr %115, align 4, !tbaa !56
  %117 = sext i32 %116 to i64
  %118 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %109, i64 noundef %117) #6
  %119 = load i32, ptr %118, align 4, !tbaa !56
  %.not = icmp eq i32 %.04354, %119
  br i1 %.not, label %._crit_edge70, label %120

._crit_edge70:                                    ; preds = %114
  %.pre = trunc nuw nsw i64 %indvars.iv67 to i32
  br label %126

120:                                              ; preds = %114
  %121 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %109, i64 noundef %117) #6
  %122 = load i32, ptr %121, align 4, !tbaa !56
  %123 = sext i32 %.04453 to i64
  %124 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %98, i64 noundef %123) #6
  %125 = trunc nuw nsw i64 %indvars.iv67 to i32
  store i32 %125, ptr %124, align 4, !tbaa !56
  br label %126

126:                                              ; preds = %._crit_edge70, %120
  %.pre-phi = phi i32 [ %.pre, %._crit_edge70 ], [ %125, %120 ]
  %.145 = phi i32 [ %.04453, %._crit_edge70 ], [ %125, %120 ]
  %.1 = phi i32 [ %.04354, %._crit_edge70 ], [ %122, %120 ]
  %127 = call noundef zeroext i1 @_ZN22HighsSymmetryDetection20updateCellMembershipEiib(ptr noundef nonnull align 8 dereferenceable(720) %0, i32 noundef %.pre-phi, i32 noundef %.145, i1 noundef zeroext false)
  %indvars.iv.next68 = add nuw nsw i64 %indvars.iv67, 1
  %128 = load i32, ptr %15, align 4, !tbaa !5
  %129 = sext i32 %128 to i64
  %130 = icmp slt i64 %indvars.iv.next68, %129
  br i1 %130, label %114, label %._crit_edge58.loopexit, !llvm.loop !65

131:                                              ; preds = %._crit_edge58
  call void @__assert_fail(ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.52, i32 noundef 88, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN22HighsSymmetryDetection15removeFixPointsEv) #7
  unreachable

132:                                              ; preds = %._crit_edge58
  %133 = load i32, ptr %15, align 4, !tbaa !5
  %134 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %98, i64 noundef %.044.lcssa) #6
  store i32 %133, ptr %134, align 4, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  %135 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #6
  %136 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #6
  %137 = call ptr @"_ZSt15partition_pointIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN22HighsSymmetryDetection15removeFixPointsEvE3$_2ET_S9_S9_T0_"(ptr %135, ptr %136, ptr nonnull %0)
  store ptr %137, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  %138 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #6
  store ptr %138, ptr %13, align 8
  %139 = call noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #6
  %140 = trunc i64 %139 to i32
  %141 = getelementptr inbounds i8, ptr %0, i64 688
  store i32 %140, ptr %141, align 8, !tbaa !63
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  br label %146

142:                                              ; preds = %._crit_edge
  %143 = getelementptr inbounds i8, ptr %0, i64 676
  %144 = load i32, ptr %143, align 4, !tbaa !66
  %145 = getelementptr inbounds i8, ptr %0, i64 688
  store i32 %144, ptr %145, align 8, !tbaa !63
  br label %146

146:                                              ; preds = %132, %142, %95
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  ret void
}

; 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN9__gnu_cxxmiIPSt4pairIijESt6vectorIS2_SaIS2_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSA_SD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden ptr @"_ZSt9partitionIN9__gnu_cxx17__normal_iteratorIPSt4pairIijESt6vectorIS3_SaIS3_EEEEZN22HighsSymmetryDetection15removeFixPointsEvE3$_0ET_SB_SB_T0_"(ptr, ptr, ptr) local_unnamed_addr #3

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden ptr @"_ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN22HighsSymmetryDetection15removeFixPointsEvE3$_1ET_S9_S9_T0_"(ptr, ptr, ptr, ptr) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !51, i64 684}
!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 = !{!51, !51, i64 0}
!57 = distinct !{!57, !58}
!58 = !{!"llvm.loop.mustprogress"}
!59 = !{!60, !51, i64 0}
!60 = !{!"_ZTSSt4pairIijE", !51, i64 0, !51, i64 4}
!61 = distinct !{!61, !58}
!62 = distinct !{!62, !58}
!63 = !{!6, !51, i64 688}
!64 = !{!8, !8, i64 0}
!65 = distinct !{!65, !58}
!66 = !{!6, !51, i64 676}


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