; LLVM IR from ERGO-Code/HiGHS :: src/mip (HighsCliqueTable)

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

%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HighsCliqueTable::CliqueVar" = type { i32 }
%"class.__gnu_cxx::__normal_iterator.60" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%class.anon.125 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.57" = type { ptr }
%"struct.HighsCliqueTable::BronKerboschData" = type { ptr, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.120", %"class.std::vector.26", double, double, double, i32, i32, i32, i64, i64 }
%"class.std::vector.120" = type { %"struct.std::_Vector_base.121" }
%"struct.std::_Vector_base.121" = type { %"struct.std::_Vector_base<std::vector<HighsCliqueTable::CliqueVar>, std::allocator<std::vector<HighsCliqueTable::CliqueVar>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<HighsCliqueTable::CliqueVar>, std::allocator<std::vector<HighsCliqueTable::CliqueVar>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<HighsCliqueTable::CliqueVar>, std::allocator<std::vector<HighsCliqueTable::CliqueVar>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<HighsCliqueTable::CliqueVar>, std::allocator<std::vector<HighsCliqueTable::CliqueVar>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.26" = type { %"struct.std::_Vector_base.27" }
%"struct.std::_Vector_base.27" = 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 }

@.str.52 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [11 x i8], align 1
@__PRETTY_FUNCTION__._ZNK16HighsCliqueTable19bronKerboschRecurseERNS_16BronKerboschDataEiPKNS_9CliqueVarEi = external hidden unnamed_addr constant [108 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: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #1

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK16HighsCliqueTable19bronKerboschRecurseERNS_16BronKerboschDataEiPKNS_9CliqueVarEi(ptr noundef nonnull align 8 dereferenceable(488) %0, ptr noundef nonnull align 8 dereferenceable(184) %1, i32 noundef %2, ptr noundef %3, i32 noundef %4) #5 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca double, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca %"class.std::vector", align 8
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca double, align 8
  %18 = alloca %"struct.HighsCliqueTable::CliqueVar", align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::vector", align 8
  %22 = alloca %"struct.HighsCliqueTable::CliqueVar", align 4
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.60", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator.60", align 8
  %27 = alloca i32, align 4
  %28 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %30 = alloca %class.anon.125, align 8
  %31 = alloca %"class.std::vector", align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator.57", align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %35 = alloca ptr, align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %38 = alloca %"struct.HighsCliqueTable::CliqueVar", align 4
  %39 = alloca i32, align 4
  %40 = alloca %"struct.HighsCliqueTable::CliqueVar", align 4
  %41 = alloca i32, align 4
  %42 = alloca %"struct.HighsCliqueTable::CliqueVar", align 4
  %43 = alloca double, align 8
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store i32 %2, ptr %8, align 4, !tbaa !9
  store ptr %3, ptr %9, align 8, !tbaa !5
  store i32 %4, ptr %10, align 4, !tbaa !9
  %46 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %47 = load ptr, ptr %7, align 8, !tbaa !5
  %48 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %47, i32 0, i32 6
  %49 = load double, ptr %48, align 8, !tbaa !11
  store double %49, ptr %11, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  store i32 0, ptr %12, align 4, !tbaa !9
  br label %50

50:                                               ; preds = %67, %5
  %51 = load i32, ptr %12, align 4, !tbaa !9
  %52 = load i32, ptr %8, align 4, !tbaa !9
  %53 = icmp ne i32 %51, %52
  br i1 %53, label %55, label %54

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

55:                                               ; preds = %50
  %56 = load ptr, ptr %7, align 8, !tbaa !5
  %57 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %56, i32 0, i32 1
  %58 = load i32, ptr %12, align 4, !tbaa !9
  %59 = sext i32 %58 to i64
  %60 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %59) #7
  %61 = load ptr, ptr %7, align 8, !tbaa !5
  %62 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %61, i32 0, i32 0
  %63 = load ptr, ptr %62, align 8, !tbaa !28
  %64 = call noundef double @_ZNK16HighsCliqueTable9CliqueVar6weightERKSt6vectorIdSaIdEE(ptr noundef nonnull align 4 dereferenceable(4) %60, ptr noundef nonnull align 8 dereferenceable(24) %63)
  %65 = load double, ptr %11, align 8, !tbaa !27
  %66 = fadd double %65, %64
  store double %66, ptr %11, align 8, !tbaa !27
  br label %67

67:                                               ; preds = %55
  %68 = load i32, ptr %12, align 4, !tbaa !9
  %69 = add nsw i32 %68, 1
  store i32 %69, ptr %12, align 4, !tbaa !9
  br label %50, !llvm.loop !29

70:                                               ; preds = %54
  %71 = load double, ptr %11, align 8, !tbaa !27
  %72 = load ptr, ptr %7, align 8, !tbaa !5
  %73 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %72, i32 0, i32 7
  %74 = load double, ptr %73, align 8, !tbaa !31
  %75 = load ptr, ptr %7, align 8, !tbaa !5
  %76 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %75, i32 0, i32 8
  %77 = load double, ptr %76, align 8, !tbaa !32
  %78 = fsub double %74, %77
  %79 = fcmp olt double %71, %78
  br i1 %79, label %80, label %81

80:                                               ; preds = %70
  store i32 1, ptr %13, align 4
  br label %470

81:                                               ; preds = %70
  %82 = load i32, ptr %8, align 4, !tbaa !9
  %83 = icmp eq i32 %82, 0
  br i1 %83, label %84, label %123

84:                                               ; preds = %81
  %85 = load i32, ptr %10, align 4, !tbaa !9
  %86 = icmp eq i32 %85, 0
  br i1 %86, label %87, label %123

87:                                               ; preds = %84
  call void @llvm.lifetime.start.p0(i64 24, ptr %14) #7
  %88 = load ptr, ptr %7, align 8, !tbaa !5
  %89 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %88, i32 0, i32 2
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(24) %89)
  %90 = load ptr, ptr %7, align 8, !tbaa !5
  %91 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %90, i32 0, i32 7
  %92 = load double, ptr %91, align 8, !tbaa !31
  %93 = load double, ptr %11, align 8, !tbaa !27
  %94 = load ptr, ptr %7, align 8, !tbaa !5
  %95 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %94, i32 0, i32 8
  %96 = load double, ptr %95, align 8, !tbaa !32
  %97 = fsub double %93, %96
  %98 = fcmp olt double %92, %97
  br i1 %98, label %99, label %114

99:                                               ; preds = %87
  %100 = load ptr, ptr %7, align 8, !tbaa !5
  %101 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %100, i32 0, i32 4
  %102 = call noundef i64 @_ZNKSt6vectorIS_IN16HighsCliqueTable9CliqueVarESaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %101) #7
  %103 = load ptr, ptr %7, align 8, !tbaa !5
  %104 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %103, i32 0, i32 11
  %105 = load i32, ptr %104, align 8, !tbaa !33
  %106 = sext i32 %105 to i64
  %107 = sub i64 %106, %102
  %108 = trunc i64 %107 to i32
  store i32 %108, ptr %104, align 8, !tbaa !33
  %109 = load ptr, ptr %7, align 8, !tbaa !5
  %110 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %109, i32 0, i32 4
  call void @_ZNSt6vectorIS_IN16HighsCliqueTable9CliqueVarESaIS1_EESaIS3_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %110) #7
  %111 = load double, ptr %11, align 8, !tbaa !27
  %112 = load ptr, ptr %7, align 8, !tbaa !5
  %113 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %112, i32 0, i32 7
  store double %111, ptr %113, align 8, !tbaa !31
  br label %114

114:                                              ; preds = %99, %87
  %115 = load ptr, ptr %7, align 8, !tbaa !5
  %116 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %115, i32 0, i32 4
  %117 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN16HighsCliqueTable9CliqueVarESaIS1_EESaIS3_EE12emplace_backIJS3_EEERS3_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %116, ptr noundef nonnull align 8 dereferenceable(24) %14)
          to label %118 unwind label %119

118:                                              ; preds = %114
  store i32 1, ptr %13, align 4
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #7
  br label %470

119:                                              ; preds = %114
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %15, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %16, align 4
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #7
  br label %476

123:                                              ; preds = %84, %81
  %124 = load ptr, ptr %7, align 8, !tbaa !5
  %125 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %124, i32 0, i32 9
  %126 = load i32, ptr %125, align 8, !tbaa !34
  %127 = add nsw i32 %126, 1
  store i32 %127, ptr %125, align 8, !tbaa !34
  %128 = load ptr, ptr %7, align 8, !tbaa !5
  %129 = call noundef zeroext i1 @_ZNK16HighsCliqueTable16BronKerboschData4stopEv(ptr noundef nonnull align 8 dereferenceable(184) %128)
  br i1 %129, label %130, label %131

130:                                              ; preds = %123
  store i32 1, ptr %13, align 4
  br label %470

131:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  store double -1.000000e+00, ptr %17, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  call void @_ZN16HighsCliqueTable9CliqueVarC2Eii(ptr noundef nonnull align 4 dereferenceable(4) %18, i32 noundef 0, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %132

132:                                              ; preds = %170, %131
  %133 = load i32, ptr %19, align 4, !tbaa !9
  %134 = load i32, ptr %10, align 4, !tbaa !9
  %135 = icmp ne i32 %133, %134
  br i1 %135, label %137, label %136

136:                                              ; preds = %132
  store i32 5, ptr %13, align 4
  br label %173

137:                                              ; preds = %132
  %138 = load ptr, ptr %9, align 8, !tbaa !5
  %139 = load i32, ptr %19, align 4, !tbaa !9
  %140 = sext i32 %139 to i64
  %141 = getelementptr inbounds %"struct.HighsCliqueTable::CliqueVar", ptr %138, i64 %140
  %142 = load ptr, ptr %7, align 8, !tbaa !5
  %143 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %142, i32 0, i32 0
  %144 = load ptr, ptr %143, align 8, !tbaa !28
  %145 = call noundef double @_ZNK16HighsCliqueTable9CliqueVar6weightERKSt6vectorIdSaIdEE(ptr noundef nonnull align 4 dereferenceable(4) %141, ptr noundef nonnull align 8 dereferenceable(24) %144)
  %146 = load double, ptr %17, align 8, !tbaa !27
  %147 = fcmp ogt double %145, %146
  br i1 %147, label %148, label %169

148:                                              ; preds = %137
  %149 = load ptr, ptr %9, align 8, !tbaa !5
  %150 = load i32, ptr %19, align 4, !tbaa !9
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds %"struct.HighsCliqueTable::CliqueVar", ptr %149, i64 %151
  %153 = load ptr, ptr %7, align 8, !tbaa !5
  %154 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %153, i32 0, i32 0
  %155 = load ptr, ptr %154, align 8, !tbaa !28
  %156 = call noundef double @_ZNK16HighsCliqueTable9CliqueVar6weightERKSt6vectorIdSaIdEE(ptr noundef nonnull align 4 dereferenceable(4) %152, ptr noundef nonnull align 8 dereferenceable(24) %155)
  store double %156, ptr %17, align 8, !tbaa !27
  %157 = load ptr, ptr %9, align 8, !tbaa !5
  %158 = load i32, ptr %19, align 4, !tbaa !9
  %159 = sext i32 %158 to i64
  %160 = getelementptr inbounds %"struct.HighsCliqueTable::CliqueVar", ptr %157, i64 %159
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %18, ptr align 4 %160, i64 4, i1 false), !tbaa.struct !35
  %161 = load double, ptr %17, align 8, !tbaa !27
  %162 = load ptr, ptr %7, align 8, !tbaa !5
  %163 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %162, i32 0, i32 8
  %164 = load double, ptr %163, align 8, !tbaa !32
  %165 = fsub double 1.000000e+00, %164
  %166 = fcmp oge double %161, %165
  br i1 %166, label %167, label %168

167:                                              ; preds = %148
  store i32 5, ptr %13, align 4
  br label %173

168:                                              ; preds = %148
  br label %169

169:                                              ; preds = %168, %137
  br label %170

170:                                              ; preds = %169
  %171 = load i32, ptr %19, align 4, !tbaa !9
  %172 = add nsw i32 %171, 1
  store i32 %172, ptr %19, align 4, !tbaa !9
  br label %132, !llvm.loop !37

173:                                              ; preds = %167, %136
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %174

174:                                              ; preds = %173
  %175 = load double, ptr %17, align 8, !tbaa !27
  %176 = load ptr, ptr %7, align 8, !tbaa !5
  %177 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %176, i32 0, i32 8
  %178 = load double, ptr %177, align 8, !tbaa !32
  %179 = fsub double 1.000000e+00, %178
  %180 = fcmp olt double %175, %179
  br i1 %180, label %181, label %228

181:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %182

182:                                              ; preds = %223, %181
  %183 = load i32, ptr %20, align 4, !tbaa !9
  %184 = load i32, ptr %8, align 4, !tbaa !9
  %185 = icmp ne i32 %183, %184
  br i1 %185, label %187, label %186

186:                                              ; preds = %182
  store i32 8, ptr %13, align 4
  br label %226

187:                                              ; preds = %182
  %188 = load ptr, ptr %7, align 8, !tbaa !5
  %189 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %188, i32 0, i32 1
  %190 = load i32, ptr %20, align 4, !tbaa !9
  %191 = sext i32 %190 to i64
  %192 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %189, i64 noundef %191) #7
  %193 = load ptr, ptr %7, align 8, !tbaa !5
  %194 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %193, i32 0, i32 0
  %195 = load ptr, ptr %194, align 8, !tbaa !28
  %196 = call noundef double @_ZNK16HighsCliqueTable9CliqueVar6weightERKSt6vectorIdSaIdEE(ptr noundef nonnull align 4 dereferenceable(4) %192, ptr noundef nonnull align 8 dereferenceable(24) %195)
  %197 = load double, ptr %17, align 8, !tbaa !27
  %198 = fcmp ogt double %196, %197
  br i1 %198, label %199, label %222

199:                                              ; preds = %187
  %200 = load ptr, ptr %7, align 8, !tbaa !5
  %201 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %200, i32 0, i32 1
  %202 = load i32, ptr %20, align 4, !tbaa !9
  %203 = sext i32 %202 to i64
  %204 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %201, i64 noundef %203) #7
  %205 = load ptr, ptr %7, align 8, !tbaa !5
  %206 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %205, i32 0, i32 0
  %207 = load ptr, ptr %206, align 8, !tbaa !28
  %208 = call noundef double @_ZNK16HighsCliqueTable9CliqueVar6weightERKSt6vectorIdSaIdEE(ptr noundef nonnull align 4 dereferenceable(4) %204, ptr noundef nonnull align 8 dereferenceable(24) %207)
  store double %208, ptr %17, align 8, !tbaa !27
  %209 = load ptr, ptr %7, align 8, !tbaa !5
  %210 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %209, i32 0, i32 1
  %211 = load i32, ptr %20, align 4, !tbaa !9
  %212 = sext i32 %211 to i64
  %213 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %210, i64 noundef %212) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %18, ptr align 4 %213, i64 4, i1 false), !tbaa.struct !35
  %214 = load double, ptr %17, align 8, !tbaa !27
  %215 = load ptr, ptr %7, align 8, !tbaa !5
  %216 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %215, i32 0, i32 8
  %217 = load double, ptr %216, align 8, !tbaa !32
  %218 = fsub double 1.000000e+00, %217
  %219 = fcmp oge double %214, %218
  br i1 %219, label %220, label %221

220:                                              ; preds = %199
  store i32 8, ptr %13, align 4
  br label %226

221:                                              ; preds = %199
  br label %222

222:                                              ; preds = %221, %187
  br label %223

223:                                              ; preds = %222
  %224 = load i32, ptr %20, align 4, !tbaa !9
  %225 = add nsw i32 %224, 1
  store i32 %225, ptr %20, align 4, !tbaa !9
  br label %182, !llvm.loop !38

226:                                              ; preds = %220, %186
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %227

227:                                              ; preds = %226
  br label %228

228:                                              ; preds = %227, %174
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #7
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  %229 = load i32, ptr %8, align 4, !tbaa !9
  %230 = sext i32 %229 to i64
  invoke void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %230)
          to label %231 unwind label %257

231:                                              ; preds = %228
  %232 = load ptr, ptr %7, align 8, !tbaa !5
  %233 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %232, i32 0, i32 5
  %234 = load ptr, ptr %7, align 8, !tbaa !5
  %235 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %234, i32 0, i32 13
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %22, ptr align 4 %18, i64 4, i1 false), !tbaa.struct !35
  %236 = load ptr, ptr %7, align 8, !tbaa !5
  %237 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %236, i32 0, i32 1
  %238 = call noundef ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %237) #7
  %239 = load i32, ptr %8, align 4, !tbaa !9
  %240 = getelementptr inbounds %"struct.HighsCliqueTable::CliqueVar", ptr %22, i32 0, i32 0
  %241 = load i32, ptr %240, align 4
  invoke void @_ZNK16HighsCliqueTable18queryNeighbourhoodERSt6vectorIiSaIiEERlNS_9CliqueVarEPS5_i(ptr noundef nonnull align 8 dereferenceable(488) %46, ptr noundef nonnull align 8 dereferenceable(24) %233, ptr noundef nonnull align 8 dereferenceable(8) %235, i32 %241, ptr noundef %238, i32 noundef %239)
          to label %242 unwind label %257

242:                                              ; preds = %231
  %243 = load ptr, ptr %7, align 8, !tbaa !5
  %244 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %243, i32 0, i32 5
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %244, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %245 unwind label %257

245:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  store i32 0, ptr %23, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %246 = load ptr, ptr %7, align 8, !tbaa !5
  %247 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %246, i32 0, i32 5
  store ptr %247, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %248 = load ptr, ptr %24, align 8, !tbaa !5
  %249 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %248) #7
  %250 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.60", ptr %25, i32 0, i32 0
  store ptr %249, ptr %250, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %251 = load ptr, ptr %24, align 8, !tbaa !5
  %252 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %251) #7
  %253 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.60", ptr %26, i32 0, i32 0
  store ptr %252, ptr %253, align 8
  br label %254

254:                                              ; preds = %283, %245
  %255 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  br i1 %255, label %261, label %256

256:                                              ; preds = %254
  store i32 11, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %285

257:                                              ; preds = %242, %231, %228
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %15, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %16, align 4
  br label %475

261:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  %262 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  %263 = load i32, ptr %262, align 4, !tbaa !9
  store i32 %263, ptr %27, align 4, !tbaa !9
  br label %264

264:                                              ; preds = %275, %261
  %265 = load i32, ptr %23, align 4, !tbaa !9
  %266 = load i32, ptr %27, align 4, !tbaa !9
  %267 = icmp slt i32 %265, %266
  br i1 %267, label %268, label %280

268:                                              ; preds = %264
  %269 = load ptr, ptr %7, align 8, !tbaa !5
  %270 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %269, i32 0, i32 1
  %271 = load i32, ptr %23, align 4, !tbaa !9
  %272 = add nsw i32 %271, 1
  store i32 %272, ptr %23, align 4, !tbaa !9
  %273 = sext i32 %271 to i64
  %274 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %270, i64 noundef %273) #7
  invoke void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 4 dereferenceable(4) %274)
          to label %275 unwind label %276

275:                                              ; preds = %268
  br label %264, !llvm.loop !39

276:                                              ; preds = %268
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %15, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %474

280:                                              ; preds = %264
  %281 = load i32, ptr %23, align 4, !tbaa !9
  %282 = add nsw i32 %281, 1
  store i32 %282, ptr %23, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %283

283:                                              ; preds = %280
  %284 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  br label %254

285:                                              ; preds = %256
  %286 = call ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  %287 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %28, i32 0, i32 0
  store ptr %286, ptr %287, align 8
  %288 = call ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  %289 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %29, i32 0, i32 0
  store ptr %288, ptr %289, align 8
  %290 = getelementptr inbounds %class.anon.125, ptr %30, i32 0, i32 0
  %291 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %291, ptr %290, align 8, !tbaa !5
  %292 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %28, i32 0, i32 0
  %293 = load ptr, ptr %292, align 8
  %294 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %29, i32 0, i32 0
  %295 = load ptr, ptr %294, align 8
  %296 = getelementptr inbounds %class.anon.125, ptr %30, i32 0, i32 0
  %297 = load ptr, ptr %296, align 8
  invoke void @"_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPN16HighsCliqueTable9CliqueVarESt6vectorIS3_SaIS3_EEEEZNKS2_19bronKerboschRecurseERNS2_16BronKerboschDataEiPKS3_iE3$_0EvT_SE_T0_"(ptr %293, ptr %295, ptr %297)
          to label %298 unwind label %320

298:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 24, ptr %31) #7
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  %299 = call ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  %300 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %33, i32 0, i32 0
  store ptr %299, ptr %300, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN16HighsCliqueTable9CliqueVarESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #7
  %301 = load ptr, ptr %9, align 8, !tbaa !5
  %302 = load ptr, ptr %9, align 8, !tbaa !5
  %303 = load i32, ptr %10, align 4, !tbaa !9
  %304 = sext i32 %303 to i64
  %305 = getelementptr inbounds %"struct.HighsCliqueTable::CliqueVar", ptr %302, i64 %304
  %306 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.57", ptr %32, i32 0, i32 0
  %307 = load ptr, ptr %306, align 8
  %308 = invoke ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE6insertIPKS1_vEEN9__gnu_cxx17__normal_iteratorIPS1_S3_EENS8_IS6_S3_EET_SC_(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr %307, ptr noundef %301, ptr noundef %305)
          to label %309 unwind label %324

309:                                              ; preds = %298
  %310 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %34, i32 0, i32 0
  store ptr %308, ptr %310, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #7
  store ptr %21, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  %311 = load ptr, ptr %35, align 8, !tbaa !5
  %312 = call ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %311) #7
  %313 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %36, i32 0, i32 0
  store ptr %312, ptr %313, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #7
  %314 = load ptr, ptr %35, align 8, !tbaa !5
  %315 = call ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %314) #7
  %316 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %37, i32 0, i32 0
  store ptr %315, ptr %316, align 8
  br label %317

317:                                              ; preds = %456, %309
  %318 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN16HighsCliqueTable9CliqueVarESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #7
  br i1 %318, label %328, label %319

319:                                              ; preds = %317
  store i32 15, ptr %13, align 4
  br label %466

320:                                              ; preds = %285
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %15, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %16, align 4
  br label %474

324:                                              ; preds = %298
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %15, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  br label %473

328:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  %329 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN16HighsCliqueTable9CliqueVarESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %38, ptr align 4 %329, i64 4, i1 false), !tbaa.struct !35
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  %330 = load ptr, ptr %7, align 8, !tbaa !5
  %331 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %330, i32 0, i32 5
  %332 = load ptr, ptr %7, align 8, !tbaa !5
  %333 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %332, i32 0, i32 13
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %40, ptr align 4 %38, i64 4, i1 false), !tbaa.struct !35
  %334 = load ptr, ptr %7, align 8, !tbaa !5
  %335 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %334, i32 0, i32 1
  %336 = call noundef ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %335) #7
  %337 = load i32, ptr %8, align 4, !tbaa !9
  %338 = getelementptr inbounds %"struct.HighsCliqueTable::CliqueVar", ptr %40, i32 0, i32 0
  %339 = load i32, ptr %338, align 4
  %340 = invoke noundef i32 @_ZNK16HighsCliqueTable22partitionNeighbourhoodERSt6vectorIiSaIiEERlNS_9CliqueVarEPS5_i(ptr noundef nonnull align 8 dereferenceable(488) %46, ptr noundef nonnull align 8 dereferenceable(24) %331, ptr noundef nonnull align 8 dereferenceable(8) %333, i32 %339, ptr noundef %336, i32 noundef %337)
          to label %341 unwind label %375

341:                                              ; preds = %328
  store i32 %340, ptr %39, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #7
  %342 = load ptr, ptr %7, align 8, !tbaa !5
  %343 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %342, i32 0, i32 5
  %344 = load ptr, ptr %7, align 8, !tbaa !5
  %345 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %344, i32 0, i32 13
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %42, ptr align 4 %38, i64 4, i1 false), !tbaa.struct !35
  %346 = call noundef ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  %347 = call noundef i64 @_ZNKSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  %348 = trunc i64 %347 to i32
  %349 = getelementptr inbounds %"struct.HighsCliqueTable::CliqueVar", ptr %42, i32 0, i32 0
  %350 = load i32, ptr %349, align 4
  %351 = invoke noundef i32 @_ZNK16HighsCliqueTable22partitionNeighbourhoodERSt6vectorIiSaIiEERlNS_9CliqueVarEPS5_i(ptr noundef nonnull align 8 dereferenceable(488) %46, ptr noundef nonnull align 8 dereferenceable(24) %343, ptr noundef nonnull align 8 dereferenceable(8) %345, i32 %350, ptr noundef %346, i32 noundef %348)
          to label %352 unwind label %379

352:                                              ; preds = %341
  store i32 %351, ptr %41, align 4, !tbaa !9
  %353 = load ptr, ptr %7, align 8, !tbaa !5
  %354 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %353, i32 0, i32 2
  invoke void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %354, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %355 unwind label %379

355:                                              ; preds = %352
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #7
  %356 = load ptr, ptr %7, align 8, !tbaa !5
  %357 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %356, i32 0, i32 0
  %358 = load ptr, ptr %357, align 8, !tbaa !28
  %359 = invoke noundef double @_ZNK16HighsCliqueTable9CliqueVar6weightERKSt6vectorIdSaIdEE(ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 8 dereferenceable(24) %358)
          to label %360 unwind label %383

360:                                              ; preds = %355
  store double %359, ptr %43, align 8, !tbaa !27
  %361 = load double, ptr %43, align 8, !tbaa !27
  %362 = load ptr, ptr %7, align 8, !tbaa !5
  %363 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %362, i32 0, i32 6
  %364 = load double, ptr %363, align 8, !tbaa !11
  %365 = fadd double %364, %361
  store double %365, ptr %363, align 8, !tbaa !11
  %366 = load ptr, ptr %7, align 8, !tbaa !5
  %367 = load i32, ptr %39, align 4, !tbaa !9
  %368 = call noundef ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  %369 = load i32, ptr %41, align 4, !tbaa !9
  invoke void @_ZNK16HighsCliqueTable19bronKerboschRecurseERNS_16BronKerboschDataEiPKNS_9CliqueVarEi(ptr noundef nonnull align 8 dereferenceable(488) %46, ptr noundef nonnull align 8 dereferenceable(184) %366, i32 noundef %367, ptr noundef %368, i32 noundef %369)
          to label %370 unwind label %383

370:                                              ; preds = %360
  %371 = load ptr, ptr %7, align 8, !tbaa !5
  %372 = invoke noundef zeroext i1 @_ZNK16HighsCliqueTable16BronKerboschData4stopEv(ptr noundef nonnull align 8 dereferenceable(184) %371)
          to label %373 unwind label %383

373:                                              ; preds = %370
  br i1 %372, label %374, label %387

374:                                              ; preds = %373
  store i32 1, ptr %13, align 4
  br label %450

375:                                              ; preds = %328
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %15, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %16, align 4
  br label %465

379:                                              ; preds = %352, %341
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %15, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %16, align 4
  br label %464

383:                                              ; preds = %370, %360, %355
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %15, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %16, align 4
  br label %463

387:                                              ; preds = %373
  %388 = load ptr, ptr %7, align 8, !tbaa !5
  %389 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %388, i32 0, i32 2
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %389) #7
  %390 = load double, ptr %43, align 8, !tbaa !27
  %391 = load ptr, ptr %7, align 8, !tbaa !5
  %392 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %391, i32 0, i32 6
  %393 = load double, ptr %392, align 8, !tbaa !11
  %394 = fsub double %393, %390
  store double %394, ptr %392, align 8, !tbaa !11
  %395 = load double, ptr %43, align 8, !tbaa !27
  %396 = load double, ptr %11, align 8, !tbaa !27
  %397 = fsub double %396, %395
  store double %397, ptr %11, align 8, !tbaa !27
  %398 = load double, ptr %11, align 8, !tbaa !27
  %399 = load ptr, ptr %7, align 8, !tbaa !5
  %400 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %399, i32 0, i32 7
  %401 = load double, ptr %400, align 8, !tbaa !31
  %402 = fcmp olt double %398, %401
  br i1 %402, label %403, label %404

403:                                              ; preds = %387
  store i32 1, ptr %13, align 4
  br label %450

404:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #7
  store i32 -1, ptr %44, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  %405 = load i32, ptr %39, align 4, !tbaa !9
  store i32 %405, ptr %45, align 4, !tbaa !9
  br label %406

406:                                              ; preds = %426, %404
  %407 = load i32, ptr %45, align 4, !tbaa !9
  %408 = load i32, ptr %8, align 4, !tbaa !9
  %409 = icmp ne i32 %407, %408
  br i1 %409, label %411, label %410

410:                                              ; preds = %406
  store i32 17, ptr %13, align 4
  br label %429

411:                                              ; preds = %406
  %412 = load ptr, ptr %7, align 8, !tbaa !5
  %413 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %412, i32 0, i32 1
  %414 = load i32, ptr %45, align 4, !tbaa !9
  %415 = sext i32 %414 to i64
  %416 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %413, i64 noundef %415) #7
  %417 = invoke noundef zeroext i1 @_ZNK16HighsCliqueTable9CliqueVareqERKS0_(ptr noundef nonnull align 4 dereferenceable(4) %416, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %418 unwind label %421

418:                                              ; preds = %411
  br i1 %417, label %419, label %425

419:                                              ; preds = %418
  %420 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %420, ptr %44, align 4, !tbaa !9
  store i32 17, ptr %13, align 4
  br label %429

421:                                              ; preds = %411
  %422 = landingpad { ptr, i32 }
          cleanup
  %423 = extractvalue { ptr, i32 } %422, 0
  store ptr %423, ptr %15, align 8
  %424 = extractvalue { ptr, i32 } %422, 1
  store i32 %424, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %462

425:                                              ; preds = %418
  br label %426

426:                                              ; preds = %425
  %427 = load i32, ptr %45, align 4, !tbaa !9
  %428 = add nsw i32 %427, 1
  store i32 %428, ptr %45, align 4, !tbaa !9
  br label %406, !llvm.loop !40

429:                                              ; preds = %419, %410
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %430

430:                                              ; preds = %429
  %431 = load i32, ptr %44, align 4, !tbaa !9
  %432 = icmp ne i32 %431, -1
  br i1 %432, label %433, label %434

433:                                              ; preds = %430
  br label %436

434:                                              ; preds = %430
  call void @__assert_fail(ptr noundef @.str.54, ptr noundef @.str.52, i32 noundef 262, ptr noundef @__PRETTY_FUNCTION__._ZNK16HighsCliqueTable19bronKerboschRecurseERNS_16BronKerboschDataEiPKNS_9CliqueVarEi) #8
  unreachable

435:                                              ; No predecessors!
  br label %436

436:                                              ; preds = %435, %433
  %437 = load i32, ptr %8, align 4, !tbaa !9
  %438 = add nsw i32 %437, -1
  store i32 %438, ptr %8, align 4, !tbaa !9
  %439 = load ptr, ptr %7, align 8, !tbaa !5
  %440 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %439, i32 0, i32 1
  %441 = load i32, ptr %44, align 4, !tbaa !9
  %442 = sext i32 %441 to i64
  %443 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %440, i64 noundef %442) #7
  %444 = load ptr, ptr %7, align 8, !tbaa !5
  %445 = getelementptr inbounds %"struct.HighsCliqueTable::BronKerboschData", ptr %444, i32 0, i32 1
  %446 = load i32, ptr %8, align 4, !tbaa !9
  %447 = sext i32 %446 to i64
  %448 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %445, i64 noundef %447) #7
  call void @_ZSt4swapIN16HighsCliqueTable9CliqueVarEENSt9enable_ifIXsr6__and_ISt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS5_ESt18is_move_assignableIS5_EEE5valueEvE4typeERS5_SE_(ptr noundef nonnull align 4 dereferenceable(4) %443, ptr noundef nonnull align 4 dereferenceable(4) %448) #7
  invoke void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %449 unwind label %458

449:                                              ; preds = %436
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  store i32 0, ptr %13, align 4
  br label %450

450:                                              ; preds = %449, %403, %374
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  %451 = load i32, ptr %13, align 4
  switch i32 %451, label %453 [
    i32 0, label %452
  ]

452:                                              ; preds = %450
  store i32 0, ptr %13, align 4
  br label %453

453:                                              ; preds = %452, %450
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  %454 = load i32, ptr %13, align 4
  switch i32 %454, label %466 [
    i32 0, label %455
  ]

455:                                              ; preds = %453
  br label %456

456:                                              ; preds = %455
  %457 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN16HighsCliqueTable9CliqueVarESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #7
  br label %317

458:                                              ; preds = %436
  %459 = landingpad { ptr, i32 }
          cleanup
  %460 = extractvalue { ptr, i32 } %459, 0
  store ptr %460, ptr %15, align 8
  %461 = extractvalue { ptr, i32 } %459, 1
  store i32 %461, ptr %16, align 4
  br label %462

462:                                              ; preds = %458, %421
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br label %463

463:                                              ; preds = %462, %383
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  br label %464

464:                                              ; preds = %463, %379
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  br label %465

465:                                              ; preds = %464, %375
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  br label %473

466:                                              ; preds = %453, %319
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  %467 = load i32, ptr %13, align 4
  switch i32 %467, label %469 [
    i32 15, label %468
  ]

468:                                              ; preds = %466
  store i32 0, ptr %13, align 4
  br label %469

469:                                              ; preds = %468, %466
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %470

470:                                              ; preds = %469, %130, %118, %80
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  %471 = load i32, ptr %13, align 4
  switch i32 %471, label %482 [
    i32 0, label %472
    i32 1, label %472
  ]

472:                                              ; preds = %470, %470
  ret void

473:                                              ; preds = %465, %324
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #7
  br label %474

474:                                              ; preds = %473, %320, %276
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %475

475:                                              ; preds = %474, %257
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %476

476:                                              ; preds = %475, %119
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  br label %477

477:                                              ; preds = %476
  %478 = load ptr, ptr %15, align 8
  %479 = load i32, ptr %16, align 4
  %480 = insertvalue { ptr, i32 } poison, ptr %478, 0
  %481 = insertvalue { ptr, i32 } %480, i32 %479, 1
  resume { ptr, i32 } %481

482:                                              ; preds = %470
  unreachable
}

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK16HighsCliqueTable18queryNeighbourhoodERSt6vectorIiSaIiEERlNS_9CliqueVarEPS5_i(ptr noundef nonnull align 8 dereferenceable(488), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8), i32, ptr noundef, i32 noundef) #5 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPN16HighsCliqueTable9CliqueVarESt6vectorIS3_SaIS3_EEEEZNKS2_19bronKerboschRecurseERNS2_16BronKerboschDataEiPKS3_iE3$_0EvT_SE_T0_"(ptr, ptr, ptr) #6

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK16HighsCliqueTable22partitionNeighbourhoodERSt6vectorIiSaIiEERlNS_9CliqueVarEPS5_i(ptr noundef nonnull align 8 dereferenceable(488), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8), i32, ptr noundef, i32 noundef) #5 align 2

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !25, i64 128}
!12 = !{!"_ZTSN16HighsCliqueTable16BronKerboschDataE", !6, i64 0, !13, i64 8, !13, i64 32, !13, i64 56, !17, i64 80, !21, i64 104, !25, i64 128, !25, i64 136, !25, i64 144, !10, i64 152, !10, i64 156, !10, i64 160, !26, i64 168, !26, i64 176}
!13 = !{!"_ZTSSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseIN16HighsCliqueTable9CliqueVarESaIS1_EE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable9CliqueVarESaIS1_EE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable9CliqueVarESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!17 = !{!"_ZTSSt6vectorIS_IN16HighsCliqueTable9CliqueVarESaIS1_EESaIS3_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseISt6vectorIN16HighsCliqueTable9CliqueVarESaIS2_EESaIS4_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN16HighsCliqueTable9CliqueVarESaIS2_EESaIS4_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN16HighsCliqueTable9CliqueVarESaIS2_EESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!21 = !{!"_ZTSSt6vectorIiSaIiEE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!25 = !{!"double", !7, i64 0}
!26 = !{!"long", !7, i64 0}
!27 = !{!25, !25, i64 0}
!28 = !{!12, !6, i64 0}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = !{!12, !25, i64 136}
!32 = !{!12, !25, i64 144}
!33 = !{!12, !10, i64 160}
!34 = !{!12, !10, i64 152}
!35 = !{i64 0, i64 4, !36}
!36 = !{!7, !7, i64 0}
!37 = distinct !{!37, !30}
!38 = distinct !{!38, !30}
!39 = distinct !{!39, !30}
!40 = distinct !{!40, !30}


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

%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HighsCliqueTable::CliqueVar" = type { i32 }
%"class.__gnu_cxx::__normal_iterator.60" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.57" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

@.str.52 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [11 x i8], align 1
@__PRETTY_FUNCTION__._ZNK16HighsCliqueTable19bronKerboschRecurseERNS_16BronKerboschDataEiPKNS_9CliqueVarEi = external hidden unnamed_addr constant [108 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: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK16HighsCliqueTable19bronKerboschRecurseERNS_16BronKerboschDataEiPKNS_9CliqueVarEi(ptr noundef nonnull align 8 dereferenceable(488) %0, ptr noundef nonnull align 8 dereferenceable(184) %1, i32 noundef %2, ptr noundef %3, i32 noundef %4) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca i32, align 4
  %7 = alloca %"class.std::vector", align 8
  %8 = alloca %"struct.HighsCliqueTable::CliqueVar", align 4
  %9 = alloca %"class.std::vector", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.60", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.60", align 8
  %12 = alloca %"class.std::vector", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.57", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %17 = alloca %"struct.HighsCliqueTable::CliqueVar", align 4
  store i32 %2, ptr %6, align 4, !tbaa !5
  %18 = getelementptr inbounds i8, ptr %1, i64 128
  %19 = load double, ptr %18, align 8, !tbaa !9
  %.not168 = icmp eq i32 %2, 0
  br i1 %.not168, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %5
  %20 = getelementptr inbounds i8, ptr %1, i64 8
  %21 = zext i32 %2 to i64
  br label %28

._crit_edge:                                      ; preds = %28, %5
  %.0116.lcssa = phi double [ %19, %5 ], [ %32, %28 ]
  %22 = getelementptr inbounds i8, ptr %1, i64 136
  %23 = load double, ptr %22, align 8, !tbaa !26
  %24 = getelementptr inbounds i8, ptr %1, i64 144
  %25 = load double, ptr %24, align 8, !tbaa !27
  %26 = fsub double %23, %25
  %27 = fcmp olt double %.0116.lcssa, %26
  br i1 %27, label %193, label %33

28:                                               ; preds = %.lr.ph, %28
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %28 ]
  %.0116170 = phi double [ %19, %.lr.ph ], [ %32, %28 ]
  %29 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %indvars.iv) #7
  %30 = load ptr, ptr %1, align 8, !tbaa !28
  %31 = tail call noundef double @_ZNK16HighsCliqueTable9CliqueVar6weightERKSt6vectorIdSaIdEE(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 8 dereferenceable(24) %30)
  %32 = fadd double %.0116170, %31
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %.not = icmp eq i64 %indvars.iv.next, %21
  br i1 %.not, label %._crit_edge, label %28, !llvm.loop !29

33:                                               ; preds = %._crit_edge
  %34 = or i32 %2, %4
  %or.cond = icmp eq i32 %34, 0
  br i1 %or.cond, label %35, label %54

35:                                               ; preds = %33
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #7
  %36 = getelementptr inbounds i8, ptr %1, i64 32
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %36)
  %37 = load double, ptr %22, align 8, !tbaa !26
  %38 = load double, ptr %24, align 8, !tbaa !27
  %39 = fsub double %.0116.lcssa, %38
  %40 = fcmp olt double %37, %39
  br i1 %40, label %41, label %48

41:                                               ; preds = %35
  %42 = getelementptr inbounds i8, ptr %1, i64 80
  %43 = call noundef i64 @_ZNKSt6vectorIS_IN16HighsCliqueTable9CliqueVarESaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %42) #7
  %44 = getelementptr inbounds i8, ptr %1, i64 160
  %45 = load i32, ptr %44, align 8, !tbaa !31
  %46 = trunc i64 %43 to i32
  %47 = sub i32 %45, %46
  store i32 %47, ptr %44, align 8, !tbaa !31
  call void @_ZNSt6vectorIS_IN16HighsCliqueTable9CliqueVarESaIS1_EESaIS3_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %42) #7
  store double %.0116.lcssa, ptr %22, align 8, !tbaa !26
  br label %48

48:                                               ; preds = %41, %35
  %49 = getelementptr inbounds i8, ptr %1, i64 80
  %50 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN16HighsCliqueTable9CliqueVarESaIS1_EESaIS3_EE12emplace_backIJS3_EEERS3_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(24) %7)
          to label %51 unwind label %52

51:                                               ; preds = %48
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #7
  br label %193

52:                                               ; preds = %48
  %53 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #7
  br label %196

54:                                               ; preds = %33
  %55 = getelementptr inbounds i8, ptr %1, i64 152
  %56 = load i32, ptr %55, align 8, !tbaa !32
  %57 = add nsw i32 %56, 1
  store i32 %57, ptr %55, align 8, !tbaa !32
  %58 = tail call noundef zeroext i1 @_ZNK16HighsCliqueTable16BronKerboschData4stopEv(ptr noundef nonnull align 8 dereferenceable(184) %1)
  br i1 %58, label %193, label %59

59:                                               ; preds = %54
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #7
  call void @_ZN16HighsCliqueTable9CliqueVarC2Eii(ptr noundef nonnull align 4 dereferenceable(4) %8, i32 noundef 0, i32 noundef 0)
  %.not145172 = icmp eq i32 %4, 0
  br i1 %.not145172, label %._crit_edge177, label %.lr.ph176.preheader

.lr.ph176.preheader:                              ; preds = %59
  %60 = zext i32 %4 to i64
  br label %.lr.ph176

.lr.ph176:                                        ; preds = %.lr.ph176.preheader, %72
  %indvars.iv201 = phi i64 [ 0, %.lr.ph176.preheader ], [ %indvars.iv.next202, %72 ]
  %.0130174 = phi double [ -1.000000e+00, %.lr.ph176.preheader ], [ %.1131, %72 ]
  %61 = getelementptr inbounds %"struct.HighsCliqueTable::CliqueVar", ptr %3, i64 %indvars.iv201
  %62 = load ptr, ptr %1, align 8, !tbaa !28
  %63 = call noundef double @_ZNK16HighsCliqueTable9CliqueVar6weightERKSt6vectorIdSaIdEE(ptr noundef nonnull align 4 dereferenceable(4) %61, ptr noundef nonnull align 8 dereferenceable(24) %62)
  %64 = fcmp ogt double %63, %.0130174
  br i1 %64, label %65, label %72

65:                                               ; preds = %.lr.ph176
  %66 = load ptr, ptr %1, align 8, !tbaa !28
  %67 = call noundef double @_ZNK16HighsCliqueTable9CliqueVar6weightERKSt6vectorIdSaIdEE(ptr noundef nonnull align 4 dereferenceable(4) %61, ptr noundef nonnull align 8 dereferenceable(24) %66)
  %68 = load i32, ptr %61, align 4, !tbaa !33
  store i32 %68, ptr %8, align 4, !tbaa !33
  %69 = load double, ptr %24, align 8, !tbaa !27
  %70 = fsub double 1.000000e+00, %69
  %71 = fcmp ult double %67, %70
  br i1 %71, label %72, label %._crit_edge177

72:                                               ; preds = %.lr.ph176, %65
  %.1131 = phi double [ %67, %65 ], [ %.0130174, %.lr.ph176 ]
  %indvars.iv.next202 = add nuw nsw i64 %indvars.iv201, 1
  %.not145 = icmp eq i64 %indvars.iv.next202, %60
  br i1 %.not145, label %._crit_edge177, label %.lr.ph176, !llvm.loop !34

._crit_edge177:                                   ; preds = %72, %65, %59
  %.2132 = phi double [ -1.000000e+00, %59 ], [ %67, %65 ], [ %.1131, %72 ]
  %73 = load double, ptr %24, align 8, !tbaa !27
  %74 = fsub double 1.000000e+00, %73
  %75 = fcmp uge double %.2132, %74
  %76 = load i32, ptr %6, align 4
  %.not146181 = icmp eq i32 %76, 0
  %or.cond196 = select i1 %75, i1 true, i1 %.not146181
  br i1 %or.cond196, label %.loopexit165, label %.lr.ph184

.lr.ph184:                                        ; preds = %._crit_edge177
  %77 = getelementptr inbounds i8, ptr %1, i64 8
  br label %78

78:                                               ; preds = %.lr.ph184, %92
  %indvars.iv204 = phi i64 [ 0, %.lr.ph184 ], [ %indvars.iv.next205, %92 ]
  %.3133183 = phi double [ %.2132, %.lr.ph184 ], [ %.4134, %92 ]
  %79 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %77, i64 noundef %indvars.iv204) #7
  %80 = load ptr, ptr %1, align 8, !tbaa !28
  %81 = call noundef double @_ZNK16HighsCliqueTable9CliqueVar6weightERKSt6vectorIdSaIdEE(ptr noundef nonnull align 4 dereferenceable(4) %79, ptr noundef nonnull align 8 dereferenceable(24) %80)
  %82 = fcmp ogt double %81, %.3133183
  br i1 %82, label %83, label %92

83:                                               ; preds = %78
  %84 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %77, i64 noundef %indvars.iv204) #7
  %85 = load ptr, ptr %1, align 8, !tbaa !28
  %86 = call noundef double @_ZNK16HighsCliqueTable9CliqueVar6weightERKSt6vectorIdSaIdEE(ptr noundef nonnull align 4 dereferenceable(4) %84, ptr noundef nonnull align 8 dereferenceable(24) %85)
  %87 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %77, i64 noundef %indvars.iv204) #7
  %88 = load i32, ptr %87, align 4, !tbaa !33
  store i32 %88, ptr %8, align 4, !tbaa !33
  %89 = load double, ptr %24, align 8, !tbaa !27
  %90 = fsub double 1.000000e+00, %89
  %91 = fcmp ult double %86, %90
  br i1 %91, label %92, label %.loopexit165

92:                                               ; preds = %78, %83
  %.4134 = phi double [ %86, %83 ], [ %.3133183, %78 ]
  %indvars.iv.next205 = add nuw nsw i64 %indvars.iv204, 1
  %93 = load i32, ptr %6, align 4, !tbaa !5
  %94 = zext i32 %93 to i64
  %.not146 = icmp eq i64 %indvars.iv.next205, %94
  br i1 %.not146, label %.loopexit165, label %78, !llvm.loop !35

.loopexit165:                                     ; preds = %83, %92, %._crit_edge177
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #7
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  %95 = load i32, ptr %6, align 4, !tbaa !5
  %96 = sext i32 %95 to i64
  invoke void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %96)
          to label %97 unwind label %110

97:                                               ; preds = %.loopexit165
  %98 = getelementptr inbounds i8, ptr %1, i64 104
  %99 = getelementptr inbounds i8, ptr %1, i64 176
  %.sroa.028.0.copyload = load i32, ptr %8, align 4, !tbaa !33
  %100 = getelementptr inbounds i8, ptr %1, i64 8
  %101 = call noundef ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %100) #7
  %102 = load i32, ptr %6, align 4, !tbaa !5
  invoke void @_ZNK16HighsCliqueTable18queryNeighbourhoodERSt6vectorIiSaIiEERlNS_9CliqueVarEPS5_i(ptr noundef nonnull align 8 dereferenceable(488) %0, ptr noundef nonnull align 8 dereferenceable(24) %98, ptr noundef nonnull align 8 dereferenceable(8) %99, i32 %.sroa.028.0.copyload, ptr noundef %101, i32 noundef %102)
          to label %103 unwind label %110

103:                                              ; preds = %97
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %98, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %104 unwind label %110

104:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  %105 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %98) #7
  store ptr %105, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #7
  %106 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %98) #7
  store ptr %106, ptr %11, align 8
  %107 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  br i1 %107, label %.lr.ph188, label %._crit_edge189

._crit_edge189:                                   ; preds = %120, %104
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  %108 = call ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  %109 = call ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  invoke void @"_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPN16HighsCliqueTable9CliqueVarESt6vectorIS3_SaIS3_EEEEZNKS2_19bronKerboschRecurseERNS2_16BronKerboschDataEiPKS3_iE3$_0EvT_SE_T0_"(ptr %108, ptr %109, ptr nonnull %1)
          to label %124 unwind label %135

110:                                              ; preds = %103, %97, %.loopexit165
  %111 = landingpad { ptr, i32 }
          cleanup
  br label %195

.lr.ph188:                                        ; preds = %104, %120
  %.0137186 = phi i32 [ %121, %120 ], [ 0, %104 ]
  %112 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  %113 = load i32, ptr %112, align 4, !tbaa !5
  %114 = zext nneg i32 %.0137186 to i64
  %smax = call i32 @llvm.smax.i32(i32 %.0137186, i32 %113)
  %wide.trip.count = zext nneg i32 %smax to i64
  br label %115

115:                                              ; preds = %116, %.lr.ph188
  %indvars.iv207 = phi i64 [ %indvars.iv.next208, %116 ], [ %114, %.lr.ph188 ]
  %exitcond.not = icmp eq i64 %indvars.iv207, %wide.trip.count
  br i1 %exitcond.not, label %120, label %116

116:                                              ; preds = %115
  %indvars.iv.next208 = add nuw nsw i64 %indvars.iv207, 1
  %117 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %100, i64 noundef %indvars.iv207) #7
  invoke void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 4 dereferenceable(4) %117)
          to label %115 unwind label %118, !llvm.loop !36

118:                                              ; preds = %116
  %119 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  br label %195

120:                                              ; preds = %115
  %121 = add nuw nsw i32 %smax, 1
  %122 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  %123 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  br i1 %123, label %.lr.ph188, label %._crit_edge189

124:                                              ; preds = %._crit_edge189
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #7
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #7
  %125 = call ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  store ptr %125, ptr %14, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN16HighsCliqueTable9CliqueVarESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  %126 = sext i32 %4 to i64
  %127 = getelementptr inbounds %"struct.HighsCliqueTable::CliqueVar", ptr %3, i64 %126
  %128 = load ptr, ptr %13, align 8
  %129 = invoke ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE6insertIPKS1_vEEN9__gnu_cxx17__normal_iteratorIPS1_S3_EENS8_IS6_S3_EET_SC_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr %128, ptr noundef %3, ptr noundef %127)
          to label %130 unwind label %137

130:                                              ; preds = %124
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #7
  %131 = call ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  store ptr %131, ptr %15, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #7
  %132 = call ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  store ptr %132, ptr %16, align 8
  %133 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN16HighsCliqueTable9CliqueVarESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  br i1 %133, label %.lr.ph195, label %.loopexit

.lr.ph195:                                        ; preds = %130
  %134 = getelementptr inbounds i8, ptr %1, i64 32
  br label %139

135:                                              ; preds = %._crit_edge189
  %136 = landingpad { ptr, i32 }
          cleanup
  br label %195

137:                                              ; preds = %124
  %138 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  br label %194

139:                                              ; preds = %.lr.ph195, %187
  %.1193 = phi double [ %.0116.lcssa, %.lr.ph195 ], [ %168, %187 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #7
  %140 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN16HighsCliqueTable9CliqueVarESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #7
  %141 = load i32, ptr %140, align 4, !tbaa !33
  store i32 %141, ptr %17, align 4, !tbaa !33
  %142 = call noundef ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %100) #7
  %143 = load i32, ptr %6, align 4, !tbaa !5
  %144 = invoke noundef i32 @_ZNK16HighsCliqueTable22partitionNeighbourhoodERSt6vectorIiSaIiEERlNS_9CliqueVarEPS5_i(ptr noundef nonnull align 8 dereferenceable(488) %0, ptr noundef nonnull align 8 dereferenceable(24) %98, ptr noundef nonnull align 8 dereferenceable(8) %99, i32 %141, ptr noundef %142, i32 noundef %143)
          to label %145 unwind label %159

145:                                              ; preds = %139
  %.sroa.0.0.copyload = load i32, ptr %17, align 4, !tbaa !33
  %146 = call noundef ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  %147 = call noundef i64 @_ZNKSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  %148 = trunc i64 %147 to i32
  %149 = invoke noundef i32 @_ZNK16HighsCliqueTable22partitionNeighbourhoodERSt6vectorIiSaIiEERlNS_9CliqueVarEPS5_i(ptr noundef nonnull align 8 dereferenceable(488) %0, ptr noundef nonnull align 8 dereferenceable(24) %98, ptr noundef nonnull align 8 dereferenceable(8) %99, i32 %.sroa.0.0.copyload, ptr noundef %146, i32 noundef %148)
          to label %150 unwind label %161

150:                                              ; preds = %145
  invoke void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %134, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %151 unwind label %161

151:                                              ; preds = %150
  %152 = load ptr, ptr %1, align 8, !tbaa !28
  %153 = call noundef double @_ZNK16HighsCliqueTable9CliqueVar6weightERKSt6vectorIdSaIdEE(ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull align 8 dereferenceable(24) %152)
  %154 = load double, ptr %18, align 8, !tbaa !9
  %155 = fadd double %153, %154
  store double %155, ptr %18, align 8, !tbaa !9
  %156 = call noundef ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  invoke void @_ZNK16HighsCliqueTable19bronKerboschRecurseERNS_16BronKerboschDataEiPKNS_9CliqueVarEi(ptr noundef nonnull align 8 dereferenceable(488) %0, ptr noundef nonnull align 8 dereferenceable(184) %1, i32 noundef %144, ptr noundef %156, i32 noundef %149)
          to label %157 unwind label %163

157:                                              ; preds = %151
  %158 = call noundef zeroext i1 @_ZNK16HighsCliqueTable16BronKerboschData4stopEv(ptr noundef nonnull align 8 dereferenceable(184) %1)
  br i1 %158, label %.thread160, label %165

159:                                              ; preds = %139
  %160 = landingpad { ptr, i32 }
          cleanup
  br label %192

161:                                              ; preds = %150, %145
  %162 = landingpad { ptr, i32 }
          cleanup
  br label %192

163:                                              ; preds = %151
  %164 = landingpad { ptr, i32 }
          cleanup
  br label %192

165:                                              ; preds = %157
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %134) #7
  %166 = load double, ptr %18, align 8, !tbaa !9
  %167 = fsub double %166, %153
  store double %167, ptr %18, align 8, !tbaa !9
  %168 = fsub double %.1193, %153
  %169 = load double, ptr %22, align 8, !tbaa !26
  %170 = fcmp olt double %168, %169
  br i1 %170, label %.thread160, label %.preheader

.preheader:                                       ; preds = %165
  %171 = load i32, ptr %6, align 4, !tbaa !5
  %.not147190 = icmp eq i32 %144, %171
  br i1 %.not147190, label %.thread, label %.lr.ph192.preheader

.lr.ph192.preheader:                              ; preds = %.preheader
  %172 = sext i32 %144 to i64
  br label %.lr.ph192

.lr.ph192:                                        ; preds = %.lr.ph192.preheader, %175
  %indvars.iv210 = phi i64 [ %172, %.lr.ph192.preheader ], [ %indvars.iv.next211, %175 ]
  %173 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %100, i64 noundef %indvars.iv210) #7
  %174 = call noundef zeroext i1 @_ZNK16HighsCliqueTable9CliqueVareqERKS0_(ptr noundef nonnull align 4 dereferenceable(4) %173, ptr noundef nonnull align 4 dereferenceable(4) %17)
  br i1 %174, label %178, label %175

175:                                              ; preds = %.lr.ph192
  %indvars.iv.next211 = add nsw i64 %indvars.iv210, 1
  %176 = load i32, ptr %6, align 4, !tbaa !5
  %177 = trunc nsw i64 %indvars.iv.next211 to i32
  %.not147 = icmp eq i32 %176, %177
  br i1 %.not147, label %.thread, label %.lr.ph192, !llvm.loop !37

178:                                              ; preds = %.lr.ph192
  %.not148 = icmp eq i64 %indvars.iv210, -1
  br i1 %.not148, label %.thread, label %179

.thread:                                          ; preds = %178, %.preheader, %175
  call void @__assert_fail(ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.52, i32 noundef 262, ptr noundef nonnull @__PRETTY_FUNCTION__._ZNK16HighsCliqueTable19bronKerboschRecurseERNS_16BronKerboschDataEiPKNS_9CliqueVarEi) #8
  unreachable

179:                                              ; preds = %178
  %180 = load i32, ptr %6, align 4, !tbaa !5
  %181 = add nsw i32 %180, -1
  store i32 %181, ptr %6, align 4, !tbaa !5
  %sext = shl i64 %indvars.iv210, 32
  %182 = ashr exact i64 %sext, 32
  %183 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %100, i64 noundef %182) #7
  %184 = load i32, ptr %6, align 4, !tbaa !5
  %185 = sext i32 %184 to i64
  %186 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %100, i64 noundef %185) #7
  call void @_ZSt4swapIN16HighsCliqueTable9CliqueVarEENSt9enable_ifIXsr6__and_ISt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS5_ESt18is_move_assignableIS5_EEE5valueEvE4typeERS5_SE_(ptr noundef nonnull align 4 dereferenceable(4) %183, ptr noundef nonnull align 4 dereferenceable(4) %186) #7
  invoke void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %187 unwind label %190

.thread160:                                       ; preds = %157, %165
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  br label %.loopexit

187:                                              ; preds = %179
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  %188 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN16HighsCliqueTable9CliqueVarESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #7
  %189 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN16HighsCliqueTable9CliqueVarESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  br i1 %189, label %139, label %.loopexit

190:                                              ; preds = %179
  %191 = landingpad { ptr, i32 }
          cleanup
  br label %192

192:                                              ; preds = %161, %190, %163, %159
  %.pn.pn.pn = phi { ptr, i32 } [ %160, %159 ], [ %162, %161 ], [ %191, %190 ], [ %164, %163 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  br label %194

.loopexit:                                        ; preds = %187, %130, %.thread160
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #7
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  br label %193

193:                                              ; preds = %54, %._crit_edge, %.loopexit, %51
  ret void

194:                                              ; preds = %192, %137
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %192 ], [ %138, %137 ]
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #7
  br label %195

195:                                              ; preds = %118, %135, %194, %110
  %.pn153.pn = phi { ptr, i32 } [ %111, %110 ], [ %119, %118 ], [ %.pn.pn.pn.pn, %194 ], [ %136, %135 ]
  call void @_ZNSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  br label %196

196:                                              ; preds = %195, %52
  %.pn156 = phi { ptr, i32 } [ %53, %52 ], [ %.pn153.pn, %195 ]
  resume { ptr, i32 } %.pn156
}

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK16HighsCliqueTable18queryNeighbourhoodERSt6vectorIiSaIiEERlNS_9CliqueVarEPS5_i(ptr noundef nonnull align 8 dereferenceable(488), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8), i32, ptr noundef, i32 noundef) local_unnamed_addr #4 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPN16HighsCliqueTable9CliqueVarESt6vectorIS3_SaIS3_EEEEZNKS2_19bronKerboschRecurseERNS2_16BronKerboschDataEiPKS3_iE3$_0EvT_SE_T0_"(ptr, ptr, ptr) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK16HighsCliqueTable22partitionNeighbourhoodERSt6vectorIiSaIiEERlNS_9CliqueVarEPS5_i(ptr noundef nonnull align 8 dereferenceable(488), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8), i32, ptr noundef, i32 noundef) local_unnamed_addr #4 align 2

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !24, i64 128}
!10 = !{!"_ZTSN16HighsCliqueTable16BronKerboschDataE", !11, i64 0, !12, i64 8, !12, i64 32, !12, i64 56, !16, i64 80, !20, i64 104, !24, i64 128, !24, i64 136, !24, i64 144, !6, i64 152, !6, i64 156, !6, i64 160, !25, i64 168, !25, i64 176}
!11 = !{!"any pointer", !7, i64 0}
!12 = !{!"_ZTSSt6vectorIN16HighsCliqueTable9CliqueVarESaIS1_EE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIN16HighsCliqueTable9CliqueVarESaIS1_EE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable9CliqueVarESaIS1_EE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIN16HighsCliqueTable9CliqueVarESaIS1_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!16 = !{!"_ZTSSt6vectorIS_IN16HighsCliqueTable9CliqueVarESaIS1_EESaIS3_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseISt6vectorIN16HighsCliqueTable9CliqueVarESaIS2_EESaIS4_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN16HighsCliqueTable9CliqueVarESaIS2_EESaIS4_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN16HighsCliqueTable9CliqueVarESaIS2_EESaIS4_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!20 = !{!"_ZTSSt6vectorIiSaIiEE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!24 = !{!"double", !7, i64 0}
!25 = !{!"long", !7, i64 0}
!26 = !{!10, !24, i64 136}
!27 = !{!10, !24, i64 144}
!28 = !{!10, !11, i64 0}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = !{!10, !6, i64 160}
!32 = !{!10, !6, i64 152}
!33 = !{!7, !7, i64 0}
!34 = distinct !{!34, !30}
!35 = distinct !{!35, !30}
!36 = distinct !{!36, !30}
!37 = distinct !{!37, !30}


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