; LLVM IR from CWI-EvolutionaryIntelligence/GOMEA :: gomea/src/common (linkage_model)

; 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.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.19" = type { ptr }
%"class.std::vector.14" = type { %"struct.std::_Vector_base.15" }
%"struct.std::_Vector_base.15" = type { %"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type <{ %"struct.std::_Rb_tree_const_iterator", i8, [7 x i8] }>
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"class.std::allocator.6" = type { i8 }
%class.anon = type { ptr }
%"class.std::vector.33" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%"class.std::allocator.37" = type { i8 }
%"struct.std::_Bit_reference" = type { ptr, i64 }
%"class.gomea::linkage_model_t" = type { ptr, %"class.std::vector", i64, %"class.std::vector", %"class.std::vector.4", %"class.std::vector.4", %"class.std::vector.4", i32, i8, i32, %"class.std::vector.4", %"class.std::vector.9", %"class.std::vector.14", i8, i32 }
%"class.std::vector.9" = type { %"struct.std::_Vector_base.10" }
%"struct.std::_Vector_base.10" = type { %"struct.std::_Vector_base<std::vector<double>, std::allocator<std::vector<double>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<double>, std::allocator<std::vector<double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<double>, std::allocator<std::vector<double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<double>, std::allocator<std::vector<double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.8 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [46 x i8], align 1
@__PRETTY_FUNCTION__._ZN5gomea15linkage_model_t13graphColoringERSt3mapIiSt3setIiSt4lessIiESaIiEES4_SaISt4pairIKiS6_EEE = external hidden unnamed_addr constant [81 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [21 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 void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZSt4iotaIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiEvT_S7_T0_(ptr, ptr, i32 noundef) #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5gomea15linkage_model_t13graphColoringERSt3mapIiSt3setIiSt4lessIiESaIiEES4_SaISt4pairIKiS6_EEE(ptr dead_on_unwind noalias writable sret(%"class.std::vector.4") align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull align 8 dereferenceable(48) %2) #3 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %"class.std::vector", align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i64, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca %"class.std::vector.14", align 8
  %18 = alloca i64, align 8
  %19 = alloca ptr, align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %26 = alloca i32, align 4
  %27 = alloca %"struct.std::pair", align 8
  %28 = alloca ptr, align 8
  %29 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %30 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %35 = alloca i32, align 4
  %36 = alloca %"struct.std::pair", align 8
  %37 = alloca i1, align 1
  %38 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %40 = alloca i32, align 4
  %41 = alloca %"class.std::vector.4", align 8
  %42 = alloca %"class.std::allocator.6", align 1
  %43 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %46 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %47 = alloca %class.anon, align 8
  %48 = alloca i32, align 4
  %49 = alloca i64, align 8
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca %"class.std::vector.33", align 8
  %53 = alloca i8, align 1
  %54 = alloca %"class.std::allocator.37", align 1
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %58 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca %"struct.std::_Bit_reference", align 8
  %62 = alloca %"struct.std::_Bit_reference", align 8
  %63 = alloca i32, align 4
  %64 = alloca %"struct.std::_Bit_reference", align 8
  store ptr %0, ptr %4, align 8
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  %65 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %7) #6
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #6
  %66 = getelementptr inbounds %"class.gomea::linkage_model_t", ptr %65, i32 0, i32 2
  %67 = load i64, ptr %66, align 8, !tbaa !9
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %67)
          to label %68 unwind label %75

68:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #6
  store i64 0, ptr %10, align 8, !tbaa !31
  br label %69

69:                                               ; preds = %108, %68
  %70 = load i64, ptr %10, align 8, !tbaa !31
  %71 = getelementptr inbounds %"class.gomea::linkage_model_t", ptr %65, i32 0, i32 1
  %72 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %71) #6
  %73 = icmp ult i64 %70, %72
  br i1 %73, label %79, label %74

74:                                               ; preds = %69
  store i32 2, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #6
  br label %111

75:                                               ; preds = %3
  %76 = landingpad { ptr, i32 }
          cleanup
  %77 = extractvalue { ptr, i32 } %76, 0
  store ptr %77, ptr %8, align 8
  %78 = extractvalue { ptr, i32 } %76, 1
  store i32 %78, ptr %9, align 4
  br label %478

79:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #6
  %80 = getelementptr inbounds %"class.gomea::linkage_model_t", ptr %65, i32 0, i32 1
  %81 = load i64, ptr %10, align 8, !tbaa !31
  %82 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %80, i64 noundef %81) #6
  store ptr %82, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #6
  %83 = load ptr, ptr %12, align 8, !tbaa !5
  %84 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %83) #6
  %85 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %13, i32 0, i32 0
  store ptr %84, ptr %85, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #6
  %86 = load ptr, ptr %12, align 8, !tbaa !5
  %87 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %86) #6
  %88 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %14, i32 0, i32 0
  store ptr %87, ptr %88, align 8
  br label %89

89:                                               ; preds = %101, %79
  %90 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #6
  br i1 %90, label %92, label %91

91:                                               ; preds = %89
  store i32 5, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  br label %107

92:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #6
  %93 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #6
  %94 = load i32, ptr %93, align 4, !tbaa !32
  store i32 %94, ptr %15, align 4, !tbaa !32
  %95 = load i32, ptr %15, align 4, !tbaa !32
  %96 = sext i32 %95 to i64
  %97 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %96) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  %98 = load i64, ptr %10, align 8, !tbaa !31
  %99 = trunc i64 %98 to i32
  store i32 %99, ptr %16, align 4, !tbaa !32
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %97, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %100 unwind label %103

100:                                              ; preds = %92
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  br label %101

101:                                              ; preds = %100
  %102 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #6
  br label %89

103:                                              ; preds = %92
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %8, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #6
  br label %478

107:                                              ; preds = %91
  br label %108

108:                                              ; preds = %107
  %109 = load i64, ptr %10, align 8, !tbaa !31
  %110 = add i64 %109, 1
  store i64 %110, ptr %10, align 8, !tbaa !31
  br label %69, !llvm.loop !33

111:                                              ; preds = %74
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #6
  call void @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  %112 = getelementptr inbounds %"class.gomea::linkage_model_t", ptr %65, i32 0, i32 1
  %113 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %112) #6
  invoke void @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %113)
          to label %114 unwind label %121

114:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  store i64 0, ptr %18, align 8, !tbaa !31
  br label %115

115:                                              ; preds = %240, %114
  %116 = load i64, ptr %18, align 8, !tbaa !31
  %117 = getelementptr inbounds %"class.gomea::linkage_model_t", ptr %65, i32 0, i32 1
  %118 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %117) #6
  %119 = icmp ult i64 %116, %118
  br i1 %119, label %125, label %120

120:                                              ; preds = %115
  store i32 7, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  br label %243

121:                                              ; preds = %111
  %122 = landingpad { ptr, i32 }
          cleanup
  %123 = extractvalue { ptr, i32 } %122, 0
  store ptr %123, ptr %8, align 8
  %124 = extractvalue { ptr, i32 } %122, 1
  store i32 %124, ptr %9, align 4
  br label %477

125:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  %126 = getelementptr inbounds %"class.gomea::linkage_model_t", ptr %65, i32 0, i32 1
  %127 = load i64, ptr %18, align 8, !tbaa !31
  %128 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %126, i64 noundef %127) #6
  store ptr %128, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  %129 = load ptr, ptr %19, align 8, !tbaa !5
  %130 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %129) #6
  %131 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %20, i32 0, i32 0
  store ptr %130, ptr %131, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  %132 = load ptr, ptr %19, align 8, !tbaa !5
  %133 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %132) #6
  %134 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %21, i32 0, i32 0
  store ptr %133, ptr %134, align 8
  br label %135

135:                                              ; preds = %236, %125
  %136 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #6
  br i1 %136, label %138, label %137

137:                                              ; preds = %135
  store i32 10, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  br label %239

138:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #6
  %139 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #6
  %140 = load i32, ptr %139, align 4, !tbaa !32
  store i32 %140, ptr %22, align 4, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #6
  %141 = load i32, ptr %22, align 4, !tbaa !32
  %142 = sext i32 %141 to i64
  %143 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %142) #6
  store ptr %143, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #6
  %144 = load ptr, ptr %23, align 8, !tbaa !5
  %145 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %144) #6
  %146 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %24, i32 0, i32 0
  store ptr %145, ptr %146, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #6
  %147 = load ptr, ptr %23, align 8, !tbaa !5
  %148 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %147) #6
  %149 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %25, i32 0, i32 0
  store ptr %148, ptr %149, align 8
  br label %150

150:                                              ; preds = %174, %138
  %151 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #6
  br i1 %151, label %153, label %152

152:                                              ; preds = %150
  store i32 12, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  br label %176

153:                                              ; preds = %150
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  %154 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #6
  %155 = load i32, ptr %154, align 4, !tbaa !32
  store i32 %155, ptr %26, align 4, !tbaa !32
  %156 = load i32, ptr %26, align 4, !tbaa !32
  %157 = load i64, ptr %18, align 8, !tbaa !31
  %158 = trunc i64 %157 to i32
  %159 = icmp ne i32 %156, %158
  br i1 %159, label %160, label %173

160:                                              ; preds = %153
  %161 = load i64, ptr %18, align 8, !tbaa !31
  %162 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %161) #6
  %163 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %162, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %164 unwind label %169

164:                                              ; preds = %160
  %165 = getelementptr inbounds { ptr, i8 }, ptr %27, i32 0, i32 0
  %166 = extractvalue { ptr, i8 } %163, 0
  store ptr %166, ptr %165, align 8
  %167 = getelementptr inbounds { ptr, i8 }, ptr %27, i32 0, i32 1
  %168 = extractvalue { ptr, i8 } %163, 1
  store i8 %168, ptr %167, align 8
  br label %173

169:                                              ; preds = %160
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %8, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  br label %238

173:                                              ; preds = %164, %153
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  br label %174

174:                                              ; preds = %173
  %175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #6
  br label %150

176:                                              ; preds = %152
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #6
  %177 = load ptr, ptr %6, align 8, !tbaa !5
  %178 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3mapIiSt3setIiSt4lessIiESaIiEES2_SaISt4pairIKiS4_EEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %177, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %179 unwind label %189

179:                                              ; preds = %176
  store ptr %178, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #6
  %180 = load ptr, ptr %28, align 8, !tbaa !5
  %181 = call ptr @_ZNKSt3setIiSt4lessIiESaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %180) #6
  %182 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %29, i32 0, i32 0
  store ptr %181, ptr %182, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #6
  %183 = load ptr, ptr %28, align 8, !tbaa !5
  %184 = call ptr @_ZNKSt3setIiSt4lessIiESaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %183) #6
  %185 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %30, i32 0, i32 0
  store ptr %184, ptr %185, align 8
  br label %186

186:                                              ; preds = %232, %179
  %187 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIiES2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #6
  br i1 %187, label %193, label %188

188:                                              ; preds = %186
  store i32 14, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #6
  br label %235

189:                                              ; preds = %176
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %8, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %9, align 4
  br label %234

193:                                              ; preds = %186
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #6
  %194 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt23_Rb_tree_const_iteratorIiEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #6
  %195 = load i32, ptr %194, align 4, !tbaa !32
  store i32 %195, ptr %31, align 4, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #6
  %196 = load i32, ptr %31, align 4, !tbaa !32
  %197 = sext i32 %196 to i64
  %198 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %197) #6
  store ptr %198, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #6
  %199 = load ptr, ptr %32, align 8, !tbaa !5
  %200 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %199) #6
  %201 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %33, i32 0, i32 0
  store ptr %200, ptr %201, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #6
  %202 = load ptr, ptr %32, align 8, !tbaa !5
  %203 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %202) #6
  %204 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %34, i32 0, i32 0
  store ptr %203, ptr %204, align 8
  br label %205

205:                                              ; preds = %229, %193
  %206 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  br i1 %206, label %208, label %207

207:                                              ; preds = %205
  store i32 16, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  br label %231

208:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #6
  %209 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #6
  %210 = load i32, ptr %209, align 4, !tbaa !32
  store i32 %210, ptr %35, align 4, !tbaa !32
  %211 = load i32, ptr %35, align 4, !tbaa !32
  %212 = load i64, ptr %18, align 8, !tbaa !31
  %213 = trunc i64 %212 to i32
  %214 = icmp ne i32 %211, %213
  br i1 %214, label %215, label %228

215:                                              ; preds = %208
  %216 = load i64, ptr %18, align 8, !tbaa !31
  %217 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %216) #6
  %218 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %217, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %219 unwind label %224

219:                                              ; preds = %215
  %220 = getelementptr inbounds { ptr, i8 }, ptr %36, i32 0, i32 0
  %221 = extractvalue { ptr, i8 } %218, 0
  store ptr %221, ptr %220, align 8
  %222 = getelementptr inbounds { ptr, i8 }, ptr %36, i32 0, i32 1
  %223 = extractvalue { ptr, i8 } %218, 1
  store i8 %223, ptr %222, align 8
  br label %228

224:                                              ; preds = %215
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  store ptr %226, ptr %8, align 8
  %227 = extractvalue { ptr, i32 } %225, 1
  store i32 %227, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #6
  br label %234

228:                                              ; preds = %219, %208
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  br label %229

229:                                              ; preds = %228
  %230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #6
  br label %205

231:                                              ; preds = %207
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  br label %232

232:                                              ; preds = %231
  %233 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIiEppEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #6
  br label %186

234:                                              ; preds = %224, %189
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #6
  br label %238

235:                                              ; preds = %188
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  br label %236

236:                                              ; preds = %235
  %237 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #6
  br label %135

238:                                              ; preds = %234, %169
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  br label %477

239:                                              ; preds = %137
  br label %240

240:                                              ; preds = %239
  %241 = load i64, ptr %18, align 8, !tbaa !31
  %242 = add i64 %241, 1
  store i64 %242, ptr %18, align 8, !tbaa !31
  br label %115, !llvm.loop !35

243:                                              ; preds = %120
  store i1 false, ptr %37, align 1
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  %244 = call noundef i64 @_ZNKSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %244)
          to label %245 unwind label %283

245:                                              ; preds = %243
  %246 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  %247 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %38, i32 0, i32 0
  store ptr %246, ptr %247, align 8
  %248 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  %249 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %39, i32 0, i32 0
  store ptr %248, ptr %249, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #6
  store i32 -1, ptr %40, align 4, !tbaa !32
  %250 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %38, i32 0, i32 0
  %251 = load ptr, ptr %250, align 8
  %252 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %39, i32 0, i32 0
  %253 = load ptr, ptr %252, align 8
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiEvT_S7_RKT0_(ptr %251, ptr %253, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %254 unwind label %287

254:                                              ; preds = %245
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr %41) #6
  %255 = call noundef i64 @_ZNKSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #6
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #6
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %255, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %256 unwind label %291

256:                                              ; preds = %254
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #6
  %257 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #6
  %258 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %43, i32 0, i32 0
  store ptr %257, ptr %258, align 8
  %259 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #6
  %260 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %44, i32 0, i32 0
  store ptr %259, ptr %260, align 8
  %261 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %43, i32 0, i32 0
  %262 = load ptr, ptr %261, align 8
  %263 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %44, i32 0, i32 0
  %264 = load ptr, ptr %263, align 8
  invoke void @_ZSt4iotaIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiEvT_S7_T0_(ptr %262, ptr %264, i32 noundef 0)
          to label %265 unwind label %295

265:                                              ; preds = %256
  %266 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #6
  %267 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %45, i32 0, i32 0
  store ptr %266, ptr %267, align 8
  %268 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #6
  %269 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %46, i32 0, i32 0
  store ptr %268, ptr %269, align 8
  %270 = getelementptr inbounds %class.anon, ptr %47, i32 0, i32 0
  store ptr %17, ptr %270, align 8, !tbaa !5
  %271 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %45, i32 0, i32 0
  %272 = load ptr, ptr %271, align 8
  %273 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %46, i32 0, i32 0
  %274 = load ptr, ptr %273, align 8
  %275 = getelementptr inbounds %class.anon, ptr %47, i32 0, i32 0
  %276 = load ptr, ptr %275, align 8
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN5gomea15linkage_model_t13graphColoringERSt3mapIiSt3setIiSt4lessIiES4_ESC_SaISt4pairIKiSD_EEEE3$_0EvT_SL_T0_"(ptr %272, ptr %274, ptr %276)
          to label %277 unwind label %295

277:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #6
  store i32 0, ptr %48, align 4, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #6
  store i64 0, ptr %49, align 8, !tbaa !31
  br label %278

278:                                              ; preds = %465, %277
  %279 = load i64, ptr %49, align 8, !tbaa !31
  %280 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #6
  %281 = icmp ult i64 %279, %280
  br i1 %281, label %299, label %282

282:                                              ; preds = %278
  store i32 18, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #6
  br label %470

283:                                              ; preds = %243
  %284 = landingpad { ptr, i32 }
          cleanup
  %285 = extractvalue { ptr, i32 } %284, 0
  store ptr %285, ptr %8, align 8
  %286 = extractvalue { ptr, i32 } %284, 1
  store i32 %286, ptr %9, align 4
  br label %476

287:                                              ; preds = %245
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %8, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  br label %476

291:                                              ; preds = %254
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %8, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %9, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #6
  br label %473

295:                                              ; preds = %265, %256
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %8, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %9, align 4
  br label %472

299:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #6
  %300 = load i64, ptr %49, align 8, !tbaa !31
  %301 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %300) #6
  %302 = load i32, ptr %301, align 4, !tbaa !32
  store i32 %302, ptr %50, align 4, !tbaa !32
  %303 = load i64, ptr %49, align 8, !tbaa !31
  %304 = icmp ugt i64 %303, 0
  br i1 %304, label %305, label %322

305:                                              ; preds = %299
  %306 = load i64, ptr %49, align 8, !tbaa !31
  %307 = sub i64 %306, 1
  %308 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %307) #6
  %309 = load i32, ptr %308, align 4, !tbaa !32
  %310 = sext i32 %309 to i64
  %311 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %310) #6
  %312 = call noundef i64 @_ZNKSt3setIiSt4lessIiESaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %311) #6
  %313 = load i32, ptr %50, align 4, !tbaa !32
  %314 = sext i32 %313 to i64
  %315 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %314) #6
  %316 = call noundef i64 @_ZNKSt3setIiSt4lessIiESaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %315) #6
  %317 = icmp uge i64 %312, %316
  br i1 %317, label %318, label %319

318:                                              ; preds = %305
  br label %321

319:                                              ; preds = %305
  call void @__assert_fail(ptr noundef @.str.30, ptr noundef @.str.8, i32 noundef 405, ptr noundef @__PRETTY_FUNCTION__._ZN5gomea15linkage_model_t13graphColoringERSt3mapIiSt3setIiSt4lessIiESaIiEES4_SaISt4pairIKiS6_EEE) #7
  unreachable

320:                                              ; No predecessors!
  br label %321

321:                                              ; preds = %320, %318
  br label %322

322:                                              ; preds = %321, %299
  %323 = load i32, ptr %48, align 4, !tbaa !32
  %324 = icmp eq i32 %323, 0
  br i1 %324, label %325, label %331

325:                                              ; preds = %322
  %326 = load i32, ptr %50, align 4, !tbaa !32
  %327 = sext i32 %326 to i64
  %328 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %327) #6
  store i32 0, ptr %328, align 4, !tbaa !32
  %329 = load i32, ptr %48, align 4, !tbaa !32
  %330 = add nsw i32 %329, 1
  store i32 %330, ptr %48, align 4, !tbaa !32
  store i32 20, ptr %11, align 4
  br label %462

331:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #6
  store i32 0, ptr %51, align 4, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 40, ptr %52) #6
  %332 = load i32, ptr %48, align 4, !tbaa !32
  %333 = sext i32 %332 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #6
  store i8 0, ptr %53, align 1, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #6
  call void @_ZNSaIbEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #6
  invoke void @_ZNSt6vectorIbSaIbEEC2EmRKbRKS0_(ptr noundef nonnull align 8 dereferenceable(40) %52, i64 noundef %333, ptr noundef nonnull align 1 dereferenceable(1) %53, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %334 unwind label %347

334:                                              ; preds = %331
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #6
  store i32 -1, ptr %55, align 4, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #6
  %335 = load i32, ptr %50, align 4, !tbaa !32
  %336 = sext i32 %335 to i64
  %337 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %336) #6
  store ptr %337, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #6
  %338 = load ptr, ptr %56, align 8, !tbaa !5
  %339 = call ptr @_ZNKSt3setIiSt4lessIiESaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %338) #6
  %340 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %57, i32 0, i32 0
  store ptr %339, ptr %340, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #6
  %341 = load ptr, ptr %56, align 8, !tbaa !5
  %342 = call ptr @_ZNKSt3setIiSt4lessIiESaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %341) #6
  %343 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %58, i32 0, i32 0
  store ptr %342, ptr %343, align 8
  br label %344

344:                                              ; preds = %408, %334
  %345 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIiES2_(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull align 8 dereferenceable(8) %58) #6
  br i1 %345, label %351, label %346

346:                                              ; preds = %344
  store i32 21, ptr %11, align 4
  br label %411

347:                                              ; preds = %331
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %8, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %9, align 4
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #6
  br label %469

351:                                              ; preds = %344
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #6
  %352 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt23_Rb_tree_const_iteratorIiEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %57) #6
  %353 = load i32, ptr %352, align 4, !tbaa !32
  store i32 %353, ptr %59, align 4, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #6
  %354 = load i32, ptr %59, align 4, !tbaa !32
  %355 = sext i32 %354 to i64
  %356 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %355) #6
  %357 = load i32, ptr %356, align 4, !tbaa !32
  store i32 %357, ptr %60, align 4, !tbaa !32
  %358 = load i32, ptr %60, align 4, !tbaa !32
  %359 = icmp ne i32 %358, -1
  call void @llvm.lifetime.start.p0(i64 16, ptr %61) #6
  br i1 %359, label %360, label %371

360:                                              ; preds = %351
  %361 = load i32, ptr %60, align 4, !tbaa !32
  %362 = sext i32 %361 to i64
  %363 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %52, i64 noundef %362)
          to label %364 unwind label %385

364:                                              ; preds = %360
  %365 = getelementptr inbounds { ptr, i64 }, ptr %61, i32 0, i32 0
  %366 = extractvalue { ptr, i64 } %363, 0
  store ptr %366, ptr %365, align 8
  %367 = getelementptr inbounds { ptr, i64 }, ptr %61, i32 0, i32 1
  %368 = extractvalue { ptr, i64 } %363, 1
  store i64 %368, ptr %367, align 8
  %369 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %61) #6
  %370 = xor i1 %369, true
  br label %371

371:                                              ; preds = %364, %351
  %372 = phi i1 [ false, %351 ], [ %370, %364 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #6
  br i1 %372, label %373, label %393

373:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #6
  %374 = load i32, ptr %60, align 4, !tbaa !32
  %375 = sext i32 %374 to i64
  %376 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %52, i64 noundef %375)
          to label %377 unwind label %389

377:                                              ; preds = %373
  %378 = getelementptr inbounds { ptr, i64 }, ptr %62, i32 0, i32 0
  %379 = extractvalue { ptr, i64 } %376, 0
  store ptr %379, ptr %378, align 8
  %380 = getelementptr inbounds { ptr, i64 }, ptr %62, i32 0, i32 1
  %381 = extractvalue { ptr, i64 } %376, 1
  store i64 %381, ptr %380, align 8
  %382 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %62, i1 noundef zeroext true) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #6
  %383 = load i32, ptr %51, align 4, !tbaa !32
  %384 = add nsw i32 %383, 1
  store i32 %384, ptr %51, align 4, !tbaa !32
  br label %393

385:                                              ; preds = %360
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %8, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #6
  br label %410

389:                                              ; preds = %373
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %8, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #6
  br label %410

393:                                              ; preds = %377, %371
  %394 = load i32, ptr %51, align 4, !tbaa !32
  %395 = load i32, ptr %48, align 4, !tbaa !32
  %396 = icmp eq i32 %394, %395
  br i1 %396, label %397, label %401

397:                                              ; preds = %393
  %398 = load i32, ptr %48, align 4, !tbaa !32
  store i32 %398, ptr %55, align 4, !tbaa !32
  %399 = load i32, ptr %48, align 4, !tbaa !32
  %400 = add nsw i32 %399, 1
  store i32 %400, ptr %48, align 4, !tbaa !32
  store i32 21, ptr %11, align 4
  br label %402

401:                                              ; preds = %393
  store i32 0, ptr %11, align 4
  br label %402

402:                                              ; preds = %401, %397
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #6
  %403 = load i32, ptr %11, align 4
  switch i32 %403, label %405 [
    i32 0, label %404
  ]

404:                                              ; preds = %402
  store i32 0, ptr %11, align 4
  br label %405

405:                                              ; preds = %404, %402
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #6
  %406 = load i32, ptr %11, align 4
  switch i32 %406, label %411 [
    i32 0, label %407
  ]

407:                                              ; preds = %405
  br label %408

408:                                              ; preds = %407
  %409 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIiEppEv(ptr noundef nonnull align 8 dereferenceable(8) %57) #6
  br label %344

410:                                              ; preds = %389, %385
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #6
  br label %468

411:                                              ; preds = %405, %346
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #6
  br label %412

412:                                              ; preds = %411
  %413 = load i32, ptr %55, align 4, !tbaa !32
  %414 = icmp eq i32 %413, -1
  br i1 %414, label %415, label %451

415:                                              ; preds = %412
  %416 = load i32, ptr %51, align 4, !tbaa !32
  %417 = load i32, ptr %48, align 4, !tbaa !32
  %418 = icmp ne i32 %416, %417
  br i1 %418, label %419, label %420

419:                                              ; preds = %415
  br label %422

420:                                              ; preds = %415
  call void @__assert_fail(ptr noundef @.str.31, ptr noundef @.str.8, i32 noundef 436, ptr noundef @__PRETTY_FUNCTION__._ZN5gomea15linkage_model_t13graphColoringERSt3mapIiSt3setIiSt4lessIiESaIiEES4_SaISt4pairIKiS6_EEE) #7
  unreachable

421:                                              ; No predecessors!
  br label %422

422:                                              ; preds = %421, %419
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #6
  store i32 0, ptr %63, align 4, !tbaa !32
  br label %423

423:                                              ; preds = %446, %422
  %424 = load i32, ptr %63, align 4, !tbaa !32
  %425 = load i32, ptr %48, align 4, !tbaa !32
  %426 = icmp slt i32 %424, %425
  br i1 %426, label %428, label %427

427:                                              ; preds = %423
  store i32 23, ptr %11, align 4
  br label %449

428:                                              ; preds = %423
  call void @llvm.lifetime.start.p0(i64 16, ptr %64) #6
  %429 = load i32, ptr %63, align 4, !tbaa !32
  %430 = sext i32 %429 to i64
  %431 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %52, i64 noundef %430)
          to label %432 unwind label %441

432:                                              ; preds = %428
  %433 = getelementptr inbounds { ptr, i64 }, ptr %64, i32 0, i32 0
  %434 = extractvalue { ptr, i64 } %431, 0
  store ptr %434, ptr %433, align 8
  %435 = getelementptr inbounds { ptr, i64 }, ptr %64, i32 0, i32 1
  %436 = extractvalue { ptr, i64 } %431, 1
  store i64 %436, ptr %435, align 8
  %437 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %64) #6
  %438 = xor i1 %437, true
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #6
  br i1 %438, label %439, label %445

439:                                              ; preds = %432
  %440 = load i32, ptr %63, align 4, !tbaa !32
  store i32 %440, ptr %55, align 4, !tbaa !32
  store i32 23, ptr %11, align 4
  br label %449

441:                                              ; preds = %428
  %442 = landingpad { ptr, i32 }
          cleanup
  %443 = extractvalue { ptr, i32 } %442, 0
  store ptr %443, ptr %8, align 8
  %444 = extractvalue { ptr, i32 } %442, 1
  store i32 %444, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #6
  br label %468

445:                                              ; preds = %432
  br label %446

446:                                              ; preds = %445
  %447 = load i32, ptr %63, align 4, !tbaa !32
  %448 = add nsw i32 %447, 1
  store i32 %448, ptr %63, align 4, !tbaa !32
  br label %423, !llvm.loop !37

449:                                              ; preds = %439, %427
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #6
  br label %450

450:                                              ; preds = %449
  br label %451

451:                                              ; preds = %450, %412
  %452 = load i32, ptr %55, align 4, !tbaa !32
  %453 = icmp ne i32 %452, -1
  br i1 %453, label %454, label %455

454:                                              ; preds = %451
  br label %457

455:                                              ; preds = %451
  call void @__assert_fail(ptr noundef @.str.32, ptr noundef @.str.8, i32 noundef 446, ptr noundef @__PRETTY_FUNCTION__._ZN5gomea15linkage_model_t13graphColoringERSt3mapIiSt3setIiSt4lessIiESaIiEES4_SaISt4pairIKiS6_EEE) #7
  unreachable

456:                                              ; No predecessors!
  br label %457

457:                                              ; preds = %456, %454
  %458 = load i32, ptr %55, align 4, !tbaa !32
  %459 = load i32, ptr %50, align 4, !tbaa !32
  %460 = sext i32 %459 to i64
  %461 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %460) #6
  store i32 %458, ptr %461, align 4, !tbaa !32
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #6
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %52) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #6
  store i32 0, ptr %11, align 4
  br label %462

462:                                              ; preds = %457, %325
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #6
  %463 = load i32, ptr %11, align 4
  switch i32 %463, label %484 [
    i32 0, label %464
    i32 20, label %465
  ]

464:                                              ; preds = %462
  br label %465

465:                                              ; preds = %464, %462
  %466 = load i64, ptr %49, align 8, !tbaa !31
  %467 = add i64 %466, 1
  store i64 %467, ptr %49, align 8, !tbaa !31
  br label %278, !llvm.loop !38

468:                                              ; preds = %441, %410
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #6
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %52) #6
  br label %469

469:                                              ; preds = %468, %347
  call void @llvm.lifetime.end.p0(i64 40, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  br label %472

470:                                              ; preds = %282
  store i1 true, ptr %37, align 1
  store i32 1, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %41) #6
  %471 = load i1, ptr %37, align 1
  br i1 %471, label %475, label %474

472:                                              ; preds = %469, %295
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #6
  br label %473

473:                                              ; preds = %472, %291
  call void @llvm.lifetime.end.p0(i64 24, ptr %41) #6
  br label %476

474:                                              ; preds = %470
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  br label %475

475:                                              ; preds = %474, %470
  call void @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #6
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #6
  ret void

476:                                              ; preds = %473, %287, %283
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  br label %477

477:                                              ; preds = %476, %238, %121
  call void @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #6
  br label %478

478:                                              ; preds = %477, %103, %75
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #6
  br label %479

479:                                              ; preds = %478
  %480 = load ptr, ptr %8, align 8
  %481 = load i32, ptr %9, align 4
  %482 = insertvalue { ptr, i32 } poison, ptr %480, 0
  %483 = insertvalue { ptr, i32 } %482, i32 %481, 1
  resume { ptr, i32 } %483

484:                                              ; preds = %462
  unreachable
}

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN5gomea15linkage_model_t13graphColoringERSt3mapIiSt3setIiSt4lessIiES4_ESC_SaISt4pairIKiSD_EEEE3$_0EvT_SL_T0_"(ptr, ptr, ptr) #5

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef) #3 align 2

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !15, i64 32}
!10 = !{!"_ZTSN5gomea15linkage_model_tE", !11, i64 8, !15, i64 32, !11, i64 40, !16, i64 64, !16, i64 88, !16, i64 112, !20, i64 136, !21, i64 140, !22, i64 144, !16, i64 152, !23, i64 176, !27, i64 200, !21, i64 224, !22, i64 228}
!11 = !{!"_ZTSSt6vectorIS_IiSaIiEESaIS1_EE", !12, i64 0}
!12 = !{!"_ZTSSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE", !13, i64 0}
!13 = !{!"_ZTSNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE12_Vector_implE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!15 = !{!"long", !7, i64 0}
!16 = !{!"_ZTSSt6vectorIiSaIiEE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!20 = !{!"_ZTSN5gomea7linkage18linkage_model_typeE", !7, i64 0}
!21 = !{!"bool", !7, i64 0}
!22 = !{!"int", !7, i64 0}
!23 = !{!"_ZTSSt6vectorIS_IdSaIdEESaIS1_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseISt6vectorIdSaIdEESaIS2_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseISt6vectorIdSaIdEESaIS2_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseISt6vectorIdSaIdEESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTSSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!31 = !{!15, !15, i64 0}
!32 = !{!22, !22, i64 0}
!33 = distinct !{!33, !34}
!34 = !{!"llvm.loop.mustprogress"}
!35 = distinct !{!35, !34}
!36 = !{!21, !21, i64 0}
!37 = distinct !{!37, !34}
!38 = distinct !{!38, !34}


; 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.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.19" = type { ptr }
%"class.std::vector.14" = type { %"struct.std::_Vector_base.15" }
%"struct.std::_Vector_base.15" = type { %"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::set<int>, std::allocator<std::set<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"class.std::allocator.6" = type { i8 }
%"class.std::vector.33" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%"class.std::allocator.37" = type { i8 }
%"struct.std::_Bit_reference" = type { ptr, i64 }

@.str.8 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [46 x i8], align 1
@__PRETTY_FUNCTION__._ZN5gomea15linkage_model_t13graphColoringERSt3mapIiSt3setIiSt4lessIiESaIiEES4_SaISt4pairIKiS6_EEE = external hidden unnamed_addr constant [81 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [21 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 void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZSt4iotaIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiEvT_S7_T0_(ptr, ptr, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5gomea15linkage_model_t13graphColoringERSt3mapIiSt3setIiSt4lessIiESaIiEES4_SaISt4pairIKiS6_EEE(ptr dead_on_unwind noalias writable sret(%"class.std::vector.4") align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull align 8 dereferenceable(48) %2) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::vector", align 8
  %5 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %6 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::vector.14", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %14 = alloca i32, align 4
  %15 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %16 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::vector.4", align 8
  %22 = alloca %"class.std::allocator.6", align 1
  %23 = alloca %"class.std::vector.33", align 8
  %24 = alloca i8, align 1
  %25 = alloca %"class.std::allocator.37", align 1
  %26 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %27 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %28 = alloca %"struct.std::_Bit_reference", align 8
  %29 = alloca %"struct.std::_Bit_reference", align 8
  %30 = alloca %"struct.std::_Bit_reference", align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #6
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #6
  %31 = getelementptr inbounds i8, ptr %1, i64 32
  %32 = load i64, ptr %31, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %32)
          to label %.preheader127 unwind label %37

.preheader127:                                    ; preds = %3
  %33 = getelementptr inbounds i8, ptr %1, i64 8
  %34 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %33) #6
  %.not166 = icmp eq i64 %34, 0
  br i1 %.not166, label %._crit_edge133, label %.lr.ph132

._crit_edge133:                                   ; preds = %._crit_edge, %.preheader127
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #6
  call void @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  %35 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %33) #6
  invoke void @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %35)
          to label %.preheader126 unwind label %58

.preheader126:                                    ; preds = %._crit_edge133
  %36 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %33) #6
  %.not167 = icmp eq i64 %36, 0
  br i1 %.not167, label %._crit_edge148, label %.lr.ph147

37:                                               ; preds = %3
  %38 = landingpad { ptr, i32 }
          cleanup
  br label %217

.lr.ph132:                                        ; preds = %.preheader127, %._crit_edge
  %.083131 = phi i64 [ %44, %._crit_edge ], [ 0, %.preheader127 ]
  %39 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %.083131) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #6
  %40 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %39) #6
  store ptr %40, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #6
  %41 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %39) #6
  store ptr %41, ptr %6, align 8
  %42 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6) #6
  br i1 %42, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.lr.ph132
  %43 = trunc i64 %.083131 to i32
  br label %47

._crit_edge:                                      ; preds = %52, %.lr.ph132
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #6
  %44 = add nuw i64 %.083131, 1
  %45 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %33) #6
  %46 = icmp ult i64 %44, %45
  br i1 %46, label %.lr.ph132, label %._crit_edge133, !llvm.loop !30

47:                                               ; preds = %.lr.ph, %52
  %48 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #6
  %49 = load i32, ptr %48, align 4, !tbaa !32
  %50 = sext i32 %49 to i64
  %51 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %50) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #6
  store i32 %43, ptr %7, align 4, !tbaa !32
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %51, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %52 unwind label %55

52:                                               ; preds = %47
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  %53 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #6
  %54 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6) #6
  br i1 %54, label %47, label %._crit_edge

55:                                               ; preds = %47
  %56 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #6
  br label %217

._crit_edge148:                                   ; preds = %._crit_edge145, %.preheader126
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  %57 = call noundef i64 @_ZNKSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %57)
          to label %115 unwind label %129

58:                                               ; preds = %._crit_edge133
  %59 = landingpad { ptr, i32 }
          cleanup
  br label %216

.lr.ph147:                                        ; preds = %.preheader126, %._crit_edge145
  %.099146 = phi i64 [ %65, %._crit_edge145 ], [ 0, %.preheader126 ]
  %60 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %.099146) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #6
  %61 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %60) #6
  store ptr %61, ptr %9, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  %62 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %60) #6
  store ptr %62, ptr %10, align 8
  %63 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #6
  br i1 %63, label %.lr.ph144, label %._crit_edge145

.lr.ph144:                                        ; preds = %.lr.ph147
  %64 = trunc i64 %.099146 to i32
  br label %68

._crit_edge145:                                   ; preds = %._crit_edge142, %.lr.ph147
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  %65 = add nuw i64 %.099146, 1
  %66 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %33) #6
  %67 = icmp ult i64 %65, %66
  br i1 %67, label %.lr.ph147, label %._crit_edge148, !llvm.loop !33

68:                                               ; preds = %.lr.ph144, %._crit_edge142
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #6
  %69 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #6
  %70 = load i32, ptr %69, align 4, !tbaa !32
  store i32 %70, ptr %11, align 4, !tbaa !32
  %71 = sext i32 %70 to i64
  %72 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %71) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  %73 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %72) #6
  store ptr %73, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  %74 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %72) #6
  store ptr %74, ptr %13, align 8
  %75 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #6
  br i1 %75, label %.lr.ph135, label %._crit_edge136

._crit_edge136:                                   ; preds = %84, %68
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  %76 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3mapIiSt3setIiSt4lessIiESaIiEES2_SaISt4pairIKiS4_EEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 4 dereferenceable(4) %11)
          to label %87 unwind label %93

.lr.ph135:                                        ; preds = %68, %84
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  %77 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #6
  %78 = load i32, ptr %77, align 4, !tbaa !32
  store i32 %78, ptr %14, align 4, !tbaa !32
  %.not116 = icmp eq i32 %78, %64
  br i1 %.not116, label %84, label %79

79:                                               ; preds = %.lr.ph135
  %80 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.099146) #6
  %81 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %80, ptr noundef nonnull align 4 dereferenceable(4) %14)
          to label %84 unwind label %82

82:                                               ; preds = %79
  %83 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  br label %114

84:                                               ; preds = %79, %.lr.ph135
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  %85 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #6
  %86 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #6
  br i1 %86, label %.lr.ph135, label %._crit_edge136

87:                                               ; preds = %._crit_edge136
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #6
  %88 = call ptr @_ZNKSt3setIiSt4lessIiESaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %76) #6
  store ptr %88, ptr %15, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #6
  %89 = call ptr @_ZNKSt3setIiSt4lessIiESaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %76) #6
  store ptr %89, ptr %16, align 8
  %90 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIiES2_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #6
  br i1 %90, label %.lr.ph141, label %._crit_edge142

._crit_edge142:                                   ; preds = %._crit_edge139, %87
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  %91 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #6
  %92 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #6
  br i1 %92, label %68, label %._crit_edge145

93:                                               ; preds = %._crit_edge136
  %94 = landingpad { ptr, i32 }
          cleanup
  br label %114

.lr.ph141:                                        ; preds = %87, %._crit_edge139
  %95 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt23_Rb_tree_const_iteratorIiEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #6
  %96 = load i32, ptr %95, align 4, !tbaa !32
  %97 = sext i32 %96 to i64
  %98 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %97) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #6
  %99 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %98) #6
  store ptr %99, ptr %17, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #6
  %100 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %98) #6
  store ptr %100, ptr %18, align 8
  %101 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #6
  br i1 %101, label %.lr.ph138, label %._crit_edge139

._crit_edge139:                                   ; preds = %111, %.lr.ph141
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  %102 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIiEppEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #6
  %103 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIiES2_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #6
  br i1 %103, label %.lr.ph141, label %._crit_edge142

.lr.ph138:                                        ; preds = %.lr.ph141, %111
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  %104 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  %105 = load i32, ptr %104, align 4, !tbaa !32
  store i32 %105, ptr %19, align 4, !tbaa !32
  %.not113 = icmp eq i32 %105, %64
  br i1 %.not113, label %111, label %106

106:                                              ; preds = %.lr.ph138
  %107 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.099146) #6
  %108 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %107, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %111 unwind label %109

109:                                              ; preds = %106
  %110 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  br label %114

111:                                              ; preds = %106, %.lr.ph138
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  %112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  %113 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #6
  br i1 %113, label %.lr.ph138, label %._crit_edge139

114:                                              ; preds = %93, %109, %82
  %.pn117 = phi { ptr, i32 } [ %83, %82 ], [ %110, %109 ], [ %94, %93 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  br label %216

115:                                              ; preds = %._crit_edge148
  %116 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  %117 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  store i32 -1, ptr %20, align 4, !tbaa !32
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiEvT_S7_RKT0_(ptr %116, ptr %117, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %118 unwind label %131

118:                                              ; preds = %115
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #6
  %119 = call noundef i64 @_ZNKSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #6
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %119, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %120 unwind label %133

120:                                              ; preds = %118
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #6
  %121 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #6
  %122 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #6
  call void @_ZSt4iotaIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiEvT_S7_T0_(ptr %121, ptr %122, i32 noundef 0)
  %123 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #6
  %124 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #6
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEZN5gomea15linkage_model_t13graphColoringERSt3mapIiSt3setIiSt4lessIiES4_ESC_SaISt4pairIKiSD_EEEE3$_0EvT_SL_T0_"(ptr %123, ptr %124, ptr nonnull %8)
          to label %.preheader125 unwind label %135

.preheader125:                                    ; preds = %120
  %125 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #6
  %.not168 = icmp eq i64 %125, 0
  br i1 %.not168, label %._crit_edge165, label %.lr.ph164

.lr.ph164:                                        ; preds = %.preheader125
  %126 = getelementptr inbounds i8, ptr %28, i64 8
  %127 = getelementptr inbounds i8, ptr %29, i64 8
  %128 = getelementptr inbounds i8, ptr %30, i64 8
  br label %137

._crit_edge165:                                   ; preds = %207, %.preheader125
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #6
  call void @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #6
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #6
  ret void

129:                                              ; preds = %._crit_edge148
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %215

131:                                              ; preds = %115
  %132 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  br label %215

133:                                              ; preds = %118
  %134 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #6
  br label %214

135:                                              ; preds = %120
  %136 = landingpad { ptr, i32 }
          cleanup
  br label %213

137:                                              ; preds = %.lr.ph164, %207
  %.093163 = phi i64 [ 0, %.lr.ph164 ], [ %208, %207 ]
  %.094162 = phi i32 [ 0, %.lr.ph164 ], [ %.498, %207 ]
  %138 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %.093163) #6
  %139 = load i32, ptr %138, align 4, !tbaa !32
  %.not = icmp eq i64 %.093163, 0
  br i1 %.not, label %151, label %140

140:                                              ; preds = %137
  %141 = add i64 %.093163, -1
  %142 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %141) #6
  %143 = load i32, ptr %142, align 4, !tbaa !32
  %144 = sext i32 %143 to i64
  %145 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %144) #6
  %146 = call noundef i64 @_ZNKSt3setIiSt4lessIiESaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %145) #6
  %147 = sext i32 %139 to i64
  %148 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %147) #6
  %149 = call noundef i64 @_ZNKSt3setIiSt4lessIiESaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %148) #6
  %.not101 = icmp ult i64 %146, %149
  br i1 %.not101, label %150, label %151

150:                                              ; preds = %140
  call void @__assert_fail(ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.8, i32 noundef 405, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5gomea15linkage_model_t13graphColoringERSt3mapIiSt3setIiSt4lessIiESaIiEES4_SaISt4pairIKiS6_EEE) #7
  unreachable

151:                                              ; preds = %140, %137
  %152 = icmp eq i32 %.094162, 0
  br i1 %152, label %153, label %156

153:                                              ; preds = %151
  %154 = sext i32 %139 to i64
  %155 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %154) #6
  store i32 0, ptr %155, align 4, !tbaa !32
  br label %207

156:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %23) #6
  %157 = sext i32 %.094162 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #6
  store i8 0, ptr %24, align 1, !tbaa !34
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #6
  call void @_ZNSaIbEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #6
  invoke void @_ZNSt6vectorIbSaIbEEC2EmRKbRKS0_(ptr noundef nonnull align 8 dereferenceable(40) %23, i64 noundef %157, ptr noundef nonnull align 1 dereferenceable(1) %24, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %158 unwind label %164

158:                                              ; preds = %156
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  %159 = sext i32 %139 to i64
  %160 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %159) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #6
  %161 = call ptr @_ZNKSt3setIiSt4lessIiESaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %160) #6
  store ptr %161, ptr %26, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #6
  %162 = call ptr @_ZNKSt3setIiSt4lessIiESaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %160) #6
  store ptr %162, ptr %27, align 8
  %163 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIiES2_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #6
  br i1 %163, label %.lr.ph155, label %.loopexit185

164:                                              ; preds = %156
  %165 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  br label %212

.lr.ph155:                                        ; preds = %158, %190
  %.089153 = phi i32 [ %.190, %190 ], [ 0, %158 ]
  %166 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt23_Rb_tree_const_iteratorIiEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #6
  %167 = load i32, ptr %166, align 4, !tbaa !32
  %168 = sext i32 %167 to i64
  %169 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %168) #6
  %170 = load i32, ptr %169, align 4, !tbaa !32
  %.not102 = icmp eq i32 %170, -1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #6
  br i1 %.not102, label %.critedge, label %171

171:                                              ; preds = %.lr.ph155
  %172 = sext i32 %170 to i64
  %173 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %23, i64 noundef %172)
          to label %174 unwind label %185

174:                                              ; preds = %171
  %175 = extractvalue { ptr, i64 } %173, 0
  store ptr %175, ptr %28, align 8
  %176 = extractvalue { ptr, i64 } %173, 1
  store i64 %176, ptr %126, align 8
  %177 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %28) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #6
  br i1 %177, label %189, label %178

178:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29) #6
  %179 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %23, i64 noundef %172)
          to label %180 unwind label %187

180:                                              ; preds = %178
  %181 = extractvalue { ptr, i64 } %179, 0
  store ptr %181, ptr %29, align 8
  %182 = extractvalue { ptr, i64 } %179, 1
  store i64 %182, ptr %127, align 8
  %183 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %29, i1 noundef zeroext true) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #6
  %184 = add nsw i32 %.089153, 1
  br label %189

185:                                              ; preds = %171
  %186 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #6
  br label %193

187:                                              ; preds = %178
  %188 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #6
  br label %193

.critedge:                                        ; preds = %.lr.ph155
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #6
  br label %189

189:                                              ; preds = %.critedge, %180, %174
  %.190 = phi i32 [ %184, %180 ], [ %.089153, %174 ], [ %.089153, %.critedge ]
  %.not104 = icmp eq i32 %.190, %.094162
  br i1 %.not104, label %.split.loop.exit, label %190

190:                                              ; preds = %189
  %191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIiEppEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #6
  %192 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIiES2_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #6
  br i1 %192, label %.lr.ph155, label %.loopexit185

193:                                              ; preds = %187, %185
  %.pn = phi { ptr, i32 } [ %188, %187 ], [ %186, %185 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #6
  br label %211

.split.loop.exit:                                 ; preds = %189
  %194 = add nuw nsw i32 %.094162, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #6
  %195 = icmp eq i32 %.094162, -1
  br i1 %195, label %.preheader._crit_edge, label %.loopexit

.loopexit185:                                     ; preds = %190, %158
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #6
  %196 = icmp sgt i32 %.094162, 0
  br i1 %196, label %.lr.ph160.preheader, label %.preheader._crit_edge

.lr.ph160.preheader:                              ; preds = %.loopexit185
  %wide.trip.count = zext nneg i32 %.094162 to i64
  br label %.lr.ph160

.lr.ph160:                                        ; preds = %.lr.ph160.preheader, %204
  %indvars.iv = phi i64 [ 0, %.lr.ph160.preheader ], [ %indvars.iv.next, %204 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #6
  %197 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %23, i64 noundef %indvars.iv)
          to label %198 unwind label %202

198:                                              ; preds = %.lr.ph160
  %199 = extractvalue { ptr, i64 } %197, 0
  store ptr %199, ptr %30, align 8
  %200 = extractvalue { ptr, i64 } %197, 1
  store i64 %200, ptr %128, align 8
  %201 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %30) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #6
  br i1 %201, label %204, label %.loopexit.loopexit

202:                                              ; preds = %.lr.ph160
  %203 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #6
  br label %211

204:                                              ; preds = %198
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.preheader._crit_edge, label %.lr.ph160, !llvm.loop !35

.preheader._crit_edge:                            ; preds = %.split.loop.exit, %.loopexit185, %204
  call void @__assert_fail(ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.8, i32 noundef 446, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5gomea15linkage_model_t13graphColoringERSt3mapIiSt3setIiSt4lessIiESaIiEES4_SaISt4pairIKiS6_EEE) #7
  unreachable

.loopexit.loopexit:                               ; preds = %198
  %205 = trunc nuw nsw i64 %indvars.iv to i32
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit, %.split.loop.exit
  %.397178 = phi i32 [ %194, %.split.loop.exit ], [ %.094162, %.loopexit.loopexit ]
  %.488.ph = phi i32 [ %.094162, %.split.loop.exit ], [ %205, %.loopexit.loopexit ]
  %206 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %159) #6
  store i32 %.488.ph, ptr %206, align 4, !tbaa !32
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %23) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %23) #6
  br label %207

207:                                              ; preds = %.loopexit, %153
  %.498 = phi i32 [ 1, %153 ], [ %.397178, %.loopexit ]
  %208 = add nuw i64 %.093163, 1
  %209 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #6
  %210 = icmp ult i64 %208, %209
  br i1 %210, label %137, label %._crit_edge165, !llvm.loop !36

211:                                              ; preds = %202, %193
  %.pn106 = phi { ptr, i32 } [ %203, %202 ], [ %.pn, %193 ]
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %23) #6
  br label %212

212:                                              ; preds = %211, %164
  %.pn106.pn = phi { ptr, i32 } [ %.pn106, %211 ], [ %165, %164 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %23) #6
  br label %213

213:                                              ; preds = %212, %135
  %.pn106.pn.pn = phi { ptr, i32 } [ %.pn106.pn, %212 ], [ %136, %135 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #6
  br label %214

214:                                              ; preds = %213, %133
  %.pn106.pn.pn.pn = phi { ptr, i32 } [ %.pn106.pn.pn, %213 ], [ %134, %133 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #6
  br label %215

215:                                              ; preds = %214, %131, %129
  %.pn106.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn106.pn.pn.pn, %214 ], [ %132, %131 ], [ %130, %129 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  br label %216

216:                                              ; preds = %215, %114, %58
  %.pn117.pn = phi { ptr, i32 } [ %.pn117, %114 ], [ %.pn106.pn.pn.pn.pn, %215 ], [ %59, %58 ]
  call void @_ZNSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #6
  br label %217

217:                                              ; preds = %216, %55, %37
  %.pn120 = phi { ptr, i32 } [ %56, %55 ], [ %.pn117.pn, %216 ], [ %38, %37 ]
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #6
  resume { ptr, i32 } %.pn120
}

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef) local_unnamed_addr #3 align 2

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !14, i64 32}
!6 = !{!"_ZTSN5gomea15linkage_model_tE", !7, i64 8, !14, i64 32, !7, i64 40, !15, i64 64, !15, i64 88, !15, i64 112, !19, i64 136, !20, i64 140, !21, i64 144, !15, i64 152, !22, i64 176, !26, i64 200, !20, i64 224, !21, i64 228}
!7 = !{!"_ZTSSt6vectorIS_IiSaIiEESaIS1_EE", !8, i64 0}
!8 = !{!"_ZTSSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE", !9, i64 0}
!9 = !{!"_ZTSNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE12_Vector_implE", !10, i64 0}
!10 = !{!"_ZTSNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!11 = !{!"any pointer", !12, i64 0}
!12 = !{!"omnipotent char", !13, i64 0}
!13 = !{!"Simple C++ TBAA"}
!14 = !{!"long", !12, i64 0}
!15 = !{!"_ZTSSt6vectorIiSaIiEE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!19 = !{!"_ZTSN5gomea7linkage18linkage_model_typeE", !12, i64 0}
!20 = !{!"bool", !12, i64 0}
!21 = !{!"int", !12, i64 0}
!22 = !{!"_ZTSSt6vectorIS_IdSaIdEESaIS1_EE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseISt6vectorIdSaIdEESaIS2_EE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseISt6vectorIdSaIdEESaIS2_EE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseISt6vectorIdSaIdEESaIS2_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!26 = !{!"_ZTSSt6vectorISt3setIiSt4lessIiESaIiEESaIS4_EE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseISt3setIiSt4lessIiESaIiEESaIS4_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = !{!21, !21, i64 0}
!33 = distinct !{!33, !31}
!34 = !{!20, !20, i64 0}
!35 = distinct !{!35, !31}
!36 = distinct !{!36, !31}


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