; LLVM IR from thekyria/elabtsaot2 :: powersystem/powersystem.ll (ZN9elabtsaot11Powersystem8validateEv)

; 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::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<unsigned int, unsigned int, std::_Identity<unsigned int>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, unsigned int, std::_Identity<unsigned int>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"struct.std::pair" = type <{ %"struct.std::_Rb_tree_const_iterator", i8, [7 x i8] }>
%"class.elabtsaot::Powersystem" = type { %"class.std::__cxx11::basic_string", double, double, i32, %"class.std::vector", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.13", %"class.boost::bimaps::bimap", %"class.boost::bimaps::bimap", %"class.boost::bimaps::bimap", %"class.boost::bimaps::bimap", %"class.std::vector.65", %"class.std::vector.65", %"class.std::vector.65" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<elabtsaot::Bus, std::allocator<elabtsaot::Bus>>::_Vector_impl" }
%"struct.std::_Vector_base<elabtsaot::Bus, std::allocator<elabtsaot::Bus>>::_Vector_impl" = type { %"struct.std::_Vector_base<elabtsaot::Bus, std::allocator<elabtsaot::Bus>>::_Vector_impl_data" }
%"struct.std::_Vector_base<elabtsaot::Bus, std::allocator<elabtsaot::Bus>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<elabtsaot::Branch, std::allocator<elabtsaot::Branch>>::_Vector_impl" }
%"struct.std::_Vector_base<elabtsaot::Branch, std::allocator<elabtsaot::Branch>>::_Vector_impl" = type { %"struct.std::_Vector_base<elabtsaot::Branch, std::allocator<elabtsaot::Branch>>::_Vector_impl_data" }
%"struct.std::_Vector_base<elabtsaot::Branch, std::allocator<elabtsaot::Branch>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<elabtsaot::Generator, std::allocator<elabtsaot::Generator>>::_Vector_impl" }
%"struct.std::_Vector_base<elabtsaot::Generator, std::allocator<elabtsaot::Generator>>::_Vector_impl" = type { %"struct.std::_Vector_base<elabtsaot::Generator, std::allocator<elabtsaot::Generator>>::_Vector_impl_data" }
%"struct.std::_Vector_base<elabtsaot::Generator, std::allocator<elabtsaot::Generator>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<elabtsaot::Load, std::allocator<elabtsaot::Load>>::_Vector_impl" }
%"struct.std::_Vector_base<elabtsaot::Load, std::allocator<elabtsaot::Load>>::_Vector_impl" = type { %"struct.std::_Vector_base<elabtsaot::Load, std::allocator<elabtsaot::Load>>::_Vector_impl_data" }
%"struct.std::_Vector_base<elabtsaot::Load, std::allocator<elabtsaot::Load>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.boost::bimaps::bimap" = type { %"class.boost::bimaps::views::set_view", %"class.boost::multi_index::multi_index_container", %"class.boost::bimaps::views::map_view", %"class.boost::bimaps::views::map_view.42" }
%"class.boost::bimaps::views::set_view" = type { %"class.boost::bimaps::container_adaptor::set_adaptor" }
%"class.boost::bimaps::container_adaptor::set_adaptor" = type { %"class.boost::bimaps::container_adaptor::ordered_associative_container_adaptor" }
%"class.boost::bimaps::container_adaptor::ordered_associative_container_adaptor" = type { %"class.boost::bimaps::container_adaptor::associative_container_adaptor" }
%"class.boost::bimaps::container_adaptor::associative_container_adaptor" = type { %"class.boost::bimaps::container_adaptor::container_adaptor" }
%"class.boost::bimaps::container_adaptor::container_adaptor" = type { %"struct.boost::bimaps::container_adaptor::detail::data_with_functor_bag" }
%"struct.boost::bimaps::container_adaptor::detail::data_with_functor_bag" = type { [8 x i8], ptr }
%"class.boost::multi_index::multi_index_container" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder", [8 x i8], i64 }
%"struct.boost::multi_index::detail::header_holder" = type { ptr }
%"class.boost::bimaps::views::map_view" = type { %"class.boost::bimaps::container_adaptor::map_adaptor" }
%"class.boost::bimaps::container_adaptor::map_adaptor" = type { %"class.boost::bimaps::container_adaptor::ordered_associative_container_adaptor.25" }
%"class.boost::bimaps::container_adaptor::ordered_associative_container_adaptor.25" = type { %"class.boost::bimaps::container_adaptor::associative_container_adaptor.26" }
%"class.boost::bimaps::container_adaptor::associative_container_adaptor.26" = type { %"class.boost::bimaps::container_adaptor::container_adaptor.27" }
%"class.boost::bimaps::container_adaptor::container_adaptor.27" = type { %"struct.boost::bimaps::container_adaptor::detail::data_with_functor_bag.28" }
%"struct.boost::bimaps::container_adaptor::detail::data_with_functor_bag.28" = type { ptr }
%"class.boost::bimaps::views::map_view.42" = type { %"class.boost::bimaps::container_adaptor::map_adaptor.43" }
%"class.boost::bimaps::container_adaptor::map_adaptor.43" = type { %"class.boost::bimaps::container_adaptor::ordered_associative_container_adaptor.44" }
%"class.boost::bimaps::container_adaptor::ordered_associative_container_adaptor.44" = type { %"class.boost::bimaps::container_adaptor::associative_container_adaptor.45" }
%"class.boost::bimaps::container_adaptor::associative_container_adaptor.45" = type { %"class.boost::bimaps::container_adaptor::container_adaptor.46" }
%"class.boost::bimaps::container_adaptor::container_adaptor.46" = type { %"struct.boost::bimaps::container_adaptor::detail::data_with_functor_bag.47" }
%"struct.boost::bimaps::container_adaptor::detail::data_with_functor_bag.47" = type { ptr }
%"class.std::vector.65" = type { %"struct.std::_Vector_base.66" }
%"struct.std::_Vector_base.66" = type { %"struct.std::_Vector_base<std::set<unsigned long>, std::allocator<std::set<unsigned long>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::set<unsigned long>, std::allocator<std::set<unsigned long>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::set<unsigned long>, std::allocator<std::set<unsigned long>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::set<unsigned long>, std::allocator<std::set<unsigned long>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.elabtsaot::Bus" = type { i32, %"class.std::__cxx11::basic_string", i32, double, double, double, double, double, double, double }
%"class.elabtsaot::Branch" = type { i32, i8, i32, i32, double, double, double, double, double, double, double, double }
%"class.elabtsaot::Generator" = type { i32, i8, %"class.std::__cxx11::basic_string", i32, double, double, %"class.std::complex", i32, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double }
%"class.std::complex" = type { { double, double } }
%"class.elabtsaot::Load" = type { i32, i32, double, double, %"class.std::complex", double, double, double, double }

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN9elabtsaot11Powersystem8validateEv(ptr noundef nonnull align 8 dereferenceable(480) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca i32, align 4
  %3 = alloca ptr, align 8
  %4 = alloca i64, align 8
  %5 = alloca %"class.std::set", align 8
  %6 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %10 = alloca i32, align 4
  %11 = alloca %"struct.std::pair", align 8
  %12 = alloca %"class.std::set", align 8
  %13 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %14 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %15 = alloca %"struct.std::pair", align 8
  %16 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %17 = alloca i32, align 4
  %18 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %19 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %20 = alloca i32, align 4
  %21 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %22 = alloca i32, align 4
  %23 = alloca %"class.std::set", align 8
  %24 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %25 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %26 = alloca %"struct.std::pair", align 8
  %27 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %28 = alloca i32, align 4
  %29 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %30 = alloca %"class.std::set", align 8
  %31 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %32 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %33 = alloca %"struct.std::pair", align 8
  %34 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %35 = alloca i32, align 4
  %36 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  %37 = load ptr, ptr %3, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #4
  call void @llvm.lifetime.start.p0(i64 48, ptr %5) #4
  call void @_ZNSt3setIjSt4lessIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %5) #4
  store i64 0, ptr %4, align 8, !tbaa !9
  br label %38

38:                                               ; preds = %75, %1
  %39 = load i64, ptr %4, align 8, !tbaa !9
  %40 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 4
  %41 = call noundef i64 @_ZNKSt6vectorIN9elabtsaot3BusESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %40) #4
  %42 = icmp ne i64 %39, %41
  br i1 %42, label %43, label %78

43:                                               ; preds = %38
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #4
  %44 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 4
  %45 = load i64, ptr %4, align 8, !tbaa !9
  %46 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorIN9elabtsaot3BusESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %45) #4
  %47 = getelementptr inbounds %"class.elabtsaot::Bus", ptr %46, i32 0, i32 0
  %48 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %5, ptr noundef nonnull align 4 dereferenceable(4) %47)
          to label %49 unwind label %55

49:                                               ; preds = %43
  %50 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %6, i32 0, i32 0
  store ptr %48, ptr %50, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #4
  %51 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %5) #4
  %52 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %9, i32 0, i32 0
  store ptr %51, ptr %52, align 8
  %53 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %9) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #4
  br i1 %53, label %54, label %59

54:                                               ; preds = %49
  store i32 1, ptr %2, align 4
  store i32 1, ptr %10, align 4
  br label %311

55:                                               ; preds = %43
  %56 = landingpad { ptr, i32 }
          cleanup
  %57 = extractvalue { ptr, i32 } %56, 0
  store ptr %57, ptr %7, align 8
  %58 = extractvalue { ptr, i32 } %56, 1
  store i32 %58, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #4
  br label %313

59:                                               ; preds = %49
  %60 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 4
  %61 = load i64, ptr %4, align 8, !tbaa !9
  %62 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorIN9elabtsaot3BusESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %61) #4
  %63 = getelementptr inbounds %"class.elabtsaot::Bus", ptr %62, i32 0, i32 0
  %64 = invoke { ptr, i8 } @_ZNSt3setIjSt4lessIjESaIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(48) %5, ptr noundef nonnull align 4 dereferenceable(4) %63)
          to label %65 unwind label %70

65:                                               ; preds = %59
  %66 = getelementptr inbounds { ptr, i8 }, ptr %11, i32 0, i32 0
  %67 = extractvalue { ptr, i8 } %64, 0
  store ptr %67, ptr %66, align 8
  %68 = getelementptr inbounds { ptr, i8 }, ptr %11, i32 0, i32 1
  %69 = extractvalue { ptr, i8 } %64, 1
  store i8 %69, ptr %68, align 8
  br label %74

70:                                               ; preds = %81, %80, %79, %78, %59
  %71 = landingpad { ptr, i32 }
          cleanup
  %72 = extractvalue { ptr, i32 } %71, 0
  store ptr %72, ptr %7, align 8
  %73 = extractvalue { ptr, i32 } %71, 1
  store i32 %73, ptr %8, align 4
  br label %313

74:                                               ; preds = %65
  br label %75

75:                                               ; preds = %74
  %76 = load i64, ptr %4, align 8, !tbaa !9
  %77 = add i64 %76, 1
  store i64 %77, ptr %4, align 8, !tbaa !9
  br label %38, !llvm.loop !11

78:                                               ; preds = %38
  invoke void @_ZN9elabtsaot11Powersystem18_rebuildBusIdBimapEv(ptr noundef nonnull align 8 dereferenceable(480) %37)
          to label %79 unwind label %70

79:                                               ; preds = %78
  invoke void @_ZN9elabtsaot11Powersystem16_rebuildBusBrMapEv(ptr noundef nonnull align 8 dereferenceable(480) %37)
          to label %80 unwind label %70

80:                                               ; preds = %79
  invoke void @_ZN9elabtsaot11Powersystem17_rebuildBusGenMapEv(ptr noundef nonnull align 8 dereferenceable(480) %37)
          to label %81 unwind label %70

81:                                               ; preds = %80
  invoke void @_ZN9elabtsaot11Powersystem18_rebuildBusLoadMapEv(ptr noundef nonnull align 8 dereferenceable(480) %37)
          to label %82 unwind label %70

82:                                               ; preds = %81
  call void @llvm.lifetime.start.p0(i64 48, ptr %12) #4
  call void @_ZNSt3setIjSt4lessIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %12) #4
  store i64 0, ptr %4, align 8, !tbaa !9
  br label %83

83:                                               ; preds = %169, %82
  %84 = load i64, ptr %4, align 8, !tbaa !9
  %85 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 5
  %86 = call noundef i64 @_ZNKSt6vectorIN9elabtsaot6BranchESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %85) #4
  %87 = icmp ne i64 %84, %86
  br i1 %87, label %88, label %172

88:                                               ; preds = %83
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #4
  %89 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 5
  %90 = load i64, ptr %4, align 8, !tbaa !9
  %91 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNSt6vectorIN9elabtsaot6BranchESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %89, i64 noundef %90) #4
  %92 = getelementptr inbounds %"class.elabtsaot::Branch", ptr %91, i32 0, i32 0
  %93 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %12, ptr noundef nonnull align 4 dereferenceable(4) %92)
          to label %94 unwind label %100

94:                                               ; preds = %88
  %95 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %13, i32 0, i32 0
  store ptr %93, ptr %95, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #4
  %96 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %12) #4
  %97 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %14, i32 0, i32 0
  store ptr %96, ptr %97, align 8
  %98 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #4
  br i1 %98, label %99, label %104

99:                                               ; preds = %94
  store i32 3, ptr %2, align 4
  store i32 1, ptr %10, align 4
  br label %309

100:                                              ; preds = %88
  %101 = landingpad { ptr, i32 }
          cleanup
  %102 = extractvalue { ptr, i32 } %101, 0
  store ptr %102, ptr %7, align 8
  %103 = extractvalue { ptr, i32 } %101, 1
  store i32 %103, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #4
  br label %310

104:                                              ; preds = %94
  %105 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 5
  %106 = load i64, ptr %4, align 8, !tbaa !9
  %107 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNSt6vectorIN9elabtsaot6BranchESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %105, i64 noundef %106) #4
  %108 = getelementptr inbounds %"class.elabtsaot::Branch", ptr %107, i32 0, i32 0
  %109 = invoke { ptr, i8 } @_ZNSt3setIjSt4lessIjESaIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(48) %12, ptr noundef nonnull align 4 dereferenceable(4) %108)
          to label %110 unwind label %115

110:                                              ; preds = %104
  %111 = getelementptr inbounds { ptr, i8 }, ptr %15, i32 0, i32 0
  %112 = extractvalue { ptr, i8 } %109, 0
  store ptr %112, ptr %111, align 8
  %113 = getelementptr inbounds { ptr, i8 }, ptr %15, i32 0, i32 1
  %114 = extractvalue { ptr, i8 } %109, 1
  store i8 %114, ptr %113, align 8
  br label %119

115:                                              ; preds = %172, %104
  %116 = landingpad { ptr, i32 }
          cleanup
  %117 = extractvalue { ptr, i32 } %116, 0
  store ptr %117, ptr %7, align 8
  %118 = extractvalue { ptr, i32 } %116, 1
  store i32 %118, ptr %8, align 4
  br label %310

119:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  %120 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 5
  %121 = load i64, ptr %4, align 8, !tbaa !9
  %122 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNSt6vectorIN9elabtsaot6BranchESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %120, i64 noundef %121) #4
  %123 = getelementptr inbounds %"class.elabtsaot::Branch", ptr %122, i32 0, i32 2
  %124 = load i32, ptr %123, align 8, !tbaa !13
  store i32 %124, ptr %17, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #4
  %125 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %5, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %126 unwind label %146

126:                                              ; preds = %119
  %127 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %16, i32 0, i32 0
  store ptr %125, ptr %127, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #4
  %128 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %5) #4
  %129 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %18, i32 0, i32 0
  store ptr %128, ptr %129, align 8
  %130 = call noundef zeroext i1 @_ZSteqRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %18) #4
  br i1 %130, label %143, label %131

131:                                              ; preds = %126
  %132 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 5
  %133 = load i64, ptr %4, align 8, !tbaa !9
  %134 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNSt6vectorIN9elabtsaot6BranchESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %133) #4
  %135 = getelementptr inbounds %"class.elabtsaot::Branch", ptr %134, i32 0, i32 3
  %136 = load i32, ptr %135, align 4, !tbaa !19
  store i32 %136, ptr %20, align 4, !tbaa !18
  %137 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %5, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %138 unwind label %150

138:                                              ; preds = %131
  %139 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %19, i32 0, i32 0
  store ptr %137, ptr %139, align 8
  %140 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %5) #4
  %141 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %21, i32 0, i32 0
  store ptr %140, ptr %141, align 8
  %142 = call noundef zeroext i1 @_ZSteqRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %21) #4
  br label %143

143:                                              ; preds = %138, %126
  %144 = phi i1 [ true, %126 ], [ %142, %138 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #4
  br i1 %144, label %145, label %155

145:                                              ; preds = %143
  store i32 4, ptr %2, align 4
  store i32 1, ptr %10, align 4
  br label %309

146:                                              ; preds = %119
  %147 = landingpad { ptr, i32 }
          cleanup
  %148 = extractvalue { ptr, i32 } %147, 0
  store ptr %148, ptr %7, align 8
  %149 = extractvalue { ptr, i32 } %147, 1
  store i32 %149, ptr %8, align 4
  br label %154

150:                                              ; preds = %131
  %151 = landingpad { ptr, i32 }
          cleanup
  %152 = extractvalue { ptr, i32 } %151, 0
  store ptr %152, ptr %7, align 8
  %153 = extractvalue { ptr, i32 } %151, 1
  store i32 %153, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  br label %154

154:                                              ; preds = %150, %146
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #4
  br label %310

155:                                              ; preds = %143
  %156 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 5
  %157 = load i64, ptr %4, align 8, !tbaa !9
  %158 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNSt6vectorIN9elabtsaot6BranchESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %156, i64 noundef %157) #4
  %159 = getelementptr inbounds %"class.elabtsaot::Branch", ptr %158, i32 0, i32 2
  %160 = load i32, ptr %159, align 8, !tbaa !13
  %161 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 5
  %162 = load i64, ptr %4, align 8, !tbaa !9
  %163 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNSt6vectorIN9elabtsaot6BranchESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %161, i64 noundef %162) #4
  %164 = getelementptr inbounds %"class.elabtsaot::Branch", ptr %163, i32 0, i32 3
  %165 = load i32, ptr %164, align 4, !tbaa !19
  %166 = icmp eq i32 %160, %165
  br i1 %166, label %167, label %168

167:                                              ; preds = %155
  store i32 5, ptr %2, align 4
  store i32 1, ptr %10, align 4
  br label %309

168:                                              ; preds = %155
  br label %169

169:                                              ; preds = %168
  %170 = load i64, ptr %4, align 8, !tbaa !9
  %171 = add i64 %170, 1
  store i64 %171, ptr %4, align 8, !tbaa !9
  br label %83, !llvm.loop !20

172:                                              ; preds = %83
  invoke void @_ZN9elabtsaot11Powersystem17_rebuildBrIdBimapEv(ptr noundef nonnull align 8 dereferenceable(480) %37)
          to label %173 unwind label %115

173:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  %174 = invoke noundef i32 @_ZN9elabtsaot5graph12countIslandsERKNS_11PowersystemE(ptr noundef nonnull align 8 dereferenceable(480) %37)
          to label %175 unwind label %179

175:                                              ; preds = %173
  store i32 %174, ptr %22, align 4, !tbaa !18
  %176 = load i32, ptr %22, align 4, !tbaa !18
  %177 = icmp sgt i32 %176, 1
  br i1 %177, label %178, label %183

178:                                              ; preds = %175
  store i32 12, ptr %2, align 4
  store i32 1, ptr %10, align 4
  br label %307

179:                                              ; preds = %173
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %7, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %8, align 4
  br label %308

183:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 48, ptr %23) #4
  call void @_ZNSt3setIjSt4lessIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #4
  store i64 0, ptr %4, align 8, !tbaa !9
  br label %184

184:                                              ; preds = %238, %183
  %185 = load i64, ptr %4, align 8, !tbaa !9
  %186 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 6
  %187 = call noundef i64 @_ZNKSt6vectorIN9elabtsaot9GeneratorESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %186) #4
  %188 = icmp ne i64 %185, %187
  br i1 %188, label %189, label %241

189:                                              ; preds = %184
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #4
  %190 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 6
  %191 = load i64, ptr %4, align 8, !tbaa !9
  %192 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZNSt6vectorIN9elabtsaot9GeneratorESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef %191) #4
  %193 = getelementptr inbounds %"class.elabtsaot::Generator", ptr %192, i32 0, i32 0
  %194 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %23, ptr noundef nonnull align 4 dereferenceable(4) %193)
          to label %195 unwind label %201

195:                                              ; preds = %189
  %196 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %24, i32 0, i32 0
  store ptr %194, ptr %196, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #4
  %197 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %23) #4
  %198 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %25, i32 0, i32 0
  store ptr %197, ptr %198, align 8
  %199 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #4
  br i1 %199, label %200, label %205

200:                                              ; preds = %195
  store i32 6, ptr %2, align 4
  store i32 1, ptr %10, align 4
  br label %305

201:                                              ; preds = %189
  %202 = landingpad { ptr, i32 }
          cleanup
  %203 = extractvalue { ptr, i32 } %202, 0
  store ptr %203, ptr %7, align 8
  %204 = extractvalue { ptr, i32 } %202, 1
  store i32 %204, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #4
  br label %306

205:                                              ; preds = %195
  %206 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 6
  %207 = load i64, ptr %4, align 8, !tbaa !9
  %208 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZNSt6vectorIN9elabtsaot9GeneratorESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %206, i64 noundef %207) #4
  %209 = getelementptr inbounds %"class.elabtsaot::Generator", ptr %208, i32 0, i32 0
  %210 = invoke { ptr, i8 } @_ZNSt3setIjSt4lessIjESaIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(48) %23, ptr noundef nonnull align 4 dereferenceable(4) %209)
          to label %211 unwind label %216

211:                                              ; preds = %205
  %212 = getelementptr inbounds { ptr, i8 }, ptr %26, i32 0, i32 0
  %213 = extractvalue { ptr, i8 } %210, 0
  store ptr %213, ptr %212, align 8
  %214 = getelementptr inbounds { ptr, i8 }, ptr %26, i32 0, i32 1
  %215 = extractvalue { ptr, i8 } %210, 1
  store i8 %215, ptr %214, align 8
  br label %220

216:                                              ; preds = %241, %205
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %7, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %8, align 4
  br label %306

220:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #4
  %221 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 6
  %222 = load i64, ptr %4, align 8, !tbaa !9
  %223 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZNSt6vectorIN9elabtsaot9GeneratorESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %221, i64 noundef %222) #4
  %224 = getelementptr inbounds %"class.elabtsaot::Generator", ptr %223, i32 0, i32 3
  %225 = load i32, ptr %224, align 8, !tbaa !21
  store i32 %225, ptr %28, align 4, !tbaa !18
  %226 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %5, ptr noundef nonnull align 4 dereferenceable(4) %28)
          to label %227 unwind label %233

227:                                              ; preds = %220
  %228 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %27, i32 0, i32 0
  store ptr %226, ptr %228, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #4
  %229 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %5) #4
  %230 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %29, i32 0, i32 0
  store ptr %229, ptr %230, align 8
  %231 = call noundef zeroext i1 @_ZSteqRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %29) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  br i1 %231, label %232, label %237

232:                                              ; preds = %227
  store i32 7, ptr %2, align 4
  store i32 1, ptr %10, align 4
  br label %305

233:                                              ; preds = %220
  %234 = landingpad { ptr, i32 }
          cleanup
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %7, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  br label %306

237:                                              ; preds = %227
  br label %238

238:                                              ; preds = %237
  %239 = load i64, ptr %4, align 8, !tbaa !9
  %240 = add i64 %239, 1
  store i64 %240, ptr %4, align 8, !tbaa !9
  br label %184, !llvm.loop !26

241:                                              ; preds = %184
  invoke void @_ZN9elabtsaot11Powersystem18_rebuildGenIdBimapEv(ptr noundef nonnull align 8 dereferenceable(480) %37)
          to label %242 unwind label %216

242:                                              ; preds = %241
  call void @llvm.lifetime.start.p0(i64 48, ptr %30) #4
  call void @_ZNSt3setIjSt4lessIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %30) #4
  store i64 0, ptr %4, align 8, !tbaa !9
  br label %243

243:                                              ; preds = %297, %242
  %244 = load i64, ptr %4, align 8, !tbaa !9
  %245 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 7
  %246 = call noundef i64 @_ZNKSt6vectorIN9elabtsaot4LoadESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %245) #4
  %247 = icmp ne i64 %244, %246
  br i1 %247, label %248, label %300

248:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #4
  %249 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 7
  %250 = load i64, ptr %4, align 8, !tbaa !9
  %251 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNSt6vectorIN9elabtsaot4LoadESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %249, i64 noundef %250) #4
  %252 = getelementptr inbounds %"class.elabtsaot::Load", ptr %251, i32 0, i32 0
  %253 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %30, ptr noundef nonnull align 4 dereferenceable(4) %252)
          to label %254 unwind label %260

254:                                              ; preds = %248
  %255 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %31, i32 0, i32 0
  store ptr %253, ptr %255, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #4
  %256 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %30) #4
  %257 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %32, i32 0, i32 0
  store ptr %256, ptr %257, align 8
  %258 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #4
  br i1 %258, label %259, label %264

259:                                              ; preds = %254
  store i32 10, ptr %2, align 4
  store i32 1, ptr %10, align 4
  br label %303

260:                                              ; preds = %248
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %7, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #4
  br label %304

264:                                              ; preds = %254
  %265 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 7
  %266 = load i64, ptr %4, align 8, !tbaa !9
  %267 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNSt6vectorIN9elabtsaot4LoadESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %265, i64 noundef %266) #4
  %268 = getelementptr inbounds %"class.elabtsaot::Load", ptr %267, i32 0, i32 0
  %269 = invoke { ptr, i8 } @_ZNSt3setIjSt4lessIjESaIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(48) %30, ptr noundef nonnull align 4 dereferenceable(4) %268)
          to label %270 unwind label %275

270:                                              ; preds = %264
  %271 = getelementptr inbounds { ptr, i8 }, ptr %33, i32 0, i32 0
  %272 = extractvalue { ptr, i8 } %269, 0
  store ptr %272, ptr %271, align 8
  %273 = getelementptr inbounds { ptr, i8 }, ptr %33, i32 0, i32 1
  %274 = extractvalue { ptr, i8 } %269, 1
  store i8 %274, ptr %273, align 8
  br label %279

275:                                              ; preds = %300, %264
  %276 = landingpad { ptr, i32 }
          cleanup
  %277 = extractvalue { ptr, i32 } %276, 0
  store ptr %277, ptr %7, align 8
  %278 = extractvalue { ptr, i32 } %276, 1
  store i32 %278, ptr %8, align 4
  br label %304

279:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  %280 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 7
  %281 = load i64, ptr %4, align 8, !tbaa !9
  %282 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNSt6vectorIN9elabtsaot4LoadESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %280, i64 noundef %281) #4
  %283 = getelementptr inbounds %"class.elabtsaot::Load", ptr %282, i32 0, i32 1
  %284 = load i32, ptr %283, align 4, !tbaa !27
  store i32 %284, ptr %35, align 4, !tbaa !18
  %285 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %5, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %286 unwind label %292

286:                                              ; preds = %279
  %287 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %34, i32 0, i32 0
  store ptr %285, ptr %287, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #4
  %288 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %5) #4
  %289 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %36, i32 0, i32 0
  store ptr %288, ptr %289, align 8
  %290 = call noundef zeroext i1 @_ZSteqRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  br i1 %290, label %291, label %296

291:                                              ; preds = %286
  store i32 11, ptr %2, align 4
  store i32 1, ptr %10, align 4
  br label %303

292:                                              ; preds = %279
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %7, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  br label %304

296:                                              ; preds = %286
  br label %297

297:                                              ; preds = %296
  %298 = load i64, ptr %4, align 8, !tbaa !9
  %299 = add i64 %298, 1
  store i64 %299, ptr %4, align 8, !tbaa !9
  br label %243, !llvm.loop !29

300:                                              ; preds = %243
  invoke void @_ZN9elabtsaot11Powersystem19_rebuildLoadIdBimapEv(ptr noundef nonnull align 8 dereferenceable(480) %37)
          to label %301 unwind label %275

301:                                              ; preds = %300
  %302 = getelementptr inbounds %"class.elabtsaot::Powersystem", ptr %37, i32 0, i32 3
  store i32 1, ptr %302, align 8, !tbaa !30
  store i32 0, ptr %2, align 4
  store i32 1, ptr %10, align 4
  br label %303

303:                                              ; preds = %301, %291, %259
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %30) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr %30) #4
  br label %305

304:                                              ; preds = %292, %275, %260
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %30) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr %30) #4
  br label %306

305:                                              ; preds = %303, %232, %200
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr %23) #4
  br label %307

306:                                              ; preds = %304, %233, %216, %201
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr %23) #4
  br label %308

307:                                              ; preds = %305, %178
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  br label %309

308:                                              ; preds = %306, %179
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  br label %310

309:                                              ; preds = %307, %167, %145, %99
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %12) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr %12) #4
  br label %311

310:                                              ; preds = %308, %154, %115, %100
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %12) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr %12) #4
  br label %313

311:                                              ; preds = %309, %54
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %5) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr %5) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #4
  %312 = load i32, ptr %2, align 4
  ret i32 %312

313:                                              ; preds = %310, %70, %55
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %5) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr %5) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #4
  br label %314

314:                                              ; preds = %313
  %315 = load ptr, ptr %7, align 8
  %316 = load i32, ptr %8, align 4
  %317 = insertvalue { ptr, i32 } poison, ptr %315, 0
  %318 = insertvalue { ptr, i32 } %317, i32 %316, 1
  resume { ptr, i32 } %318
}

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

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

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

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

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

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

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

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

declare noundef i32 @_ZN9elabtsaot5graph12countIslandsERKNS_11PowersystemE(ptr noundef nonnull align 8 dereferenceable(480)) #3

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!14, !15, i64 8}
!14 = !{!"_ZTSN9elabtsaot6BranchE", !15, i64 0, !16, i64 4, !15, i64 8, !15, i64 12, !17, i64 16, !17, i64 24, !17, i64 32, !17, i64 40, !17, i64 48, !17, i64 56, !17, i64 64, !17, i64 72}
!15 = !{!"int", !7, i64 0}
!16 = !{!"bool", !7, i64 0}
!17 = !{!"double", !7, i64 0}
!18 = !{!15, !15, i64 0}
!19 = !{!14, !15, i64 12}
!20 = distinct !{!20, !12}
!21 = !{!22, !15, i64 40}
!22 = !{!"_ZTSN9elabtsaot9GeneratorE", !15, i64 0, !16, i64 4, !23, i64 8, !15, i64 40, !17, i64 48, !17, i64 56, !25, i64 64, !15, i64 80, !17, i64 88, !17, i64 96, !17, i64 104, !17, i64 112, !17, i64 120, !17, i64 128, !17, i64 136, !17, i64 144, !17, i64 152, !17, i64 160, !17, i64 168, !17, i64 176, !17, i64 184, !17, i64 192, !17, i64 200, !17, i64 208}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !10, i64 8, !7, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!25 = !{!"_ZTSSt7complexIdE", !7, i64 0}
!26 = distinct !{!26, !12}
!27 = !{!28, !15, i64 4}
!28 = !{!"_ZTSN9elabtsaot4LoadE", !15, i64 0, !15, i64 4, !17, i64 8, !17, i64 16, !25, i64 24, !17, i64 40, !17, i64 48, !17, i64 56, !17, i64 64}
!29 = distinct !{!29, !12}
!30 = !{!31, !15, i64 48}
!31 = !{!"_ZTSN9elabtsaot11PowersystemE", !23, i64 0, !17, i64 32, !17, i64 40, !15, i64 48, !32, i64 56, !36, i64 80, !40, i64 104, !44, i64 128, !48, i64 152, !48, i64 216, !48, i64 280, !48, i64 344, !81, i64 408, !81, i64 432, !81, i64 456}
!32 = !{!"_ZTSSt6vectorIN9elabtsaot3BusESaIS1_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIN9elabtsaot3BusESaIS1_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot3BusESaIS1_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot3BusESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!"_ZTSSt6vectorIN9elabtsaot6BranchESaIS1_EE", !37, i64 0}
!37 = !{!"_ZTSSt12_Vector_baseIN9elabtsaot6BranchESaIS1_EE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot6BranchESaIS1_EE12_Vector_implE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot6BranchESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!40 = !{!"_ZTSSt6vectorIN9elabtsaot9GeneratorESaIS1_EE", !41, i64 0}
!41 = !{!"_ZTSSt12_Vector_baseIN9elabtsaot9GeneratorESaIS1_EE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot9GeneratorESaIS1_EE12_Vector_implE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot9GeneratorESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!44 = !{!"_ZTSSt6vectorIN9elabtsaot4LoadESaIS1_EE", !45, i64 0}
!45 = !{!"_ZTSSt12_Vector_baseIN9elabtsaot4LoadESaIS1_EE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot4LoadESaIS1_EE12_Vector_implE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot4LoadESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!48 = !{!"_ZTSN5boost6bimaps5bimapIjjN4mpl_2naES3_S3_EE", !49, i64 0, !59, i64 16, !69, i64 48, !75, i64 56}
!49 = !{!"_ZTSN5boost6bimaps5views8set_viewINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEEEE", !50, i64 0}
!50 = !{!"_ZTSN5boost6bimaps17container_adaptor11set_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17set_view_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS4_15index_node_baseISQ_SV_EEEEEEEENSR_23const_set_view_iteratorIS1B_EENS15_INS_9iterators16reverse_iteratorIS1B_EEEENS1D_IS1H_EENS1_7support23iterator_facade_to_baseIS1C_S1E_EESP_SP_NS8_28get_mutable_relation_functorISQ_EENS7_7support22get_above_view_functorISQ_EENSR_20set_view_key_to_baseIjSQ_SJ_EENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EEEE", !51, i64 0}
!51 = !{!"_ZTSN5boost6bimaps17container_adaptor37ordered_associative_container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17set_view_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS4_15index_node_baseISQ_SV_EEEEEEEENSR_23const_set_view_iteratorIS1B_EENS15_INS_9iterators16reverse_iteratorIS1B_EEEENS1D_IS1H_EENSN_ISF_SH_SP_Lb0EEENS1_7support23iterator_facade_to_baseIS1C_S1E_EESP_SP_NS8_28get_mutable_relation_functorISQ_EENS7_7support22get_above_view_functorISQ_EENSR_20set_view_key_to_baseIjSQ_SJ_EENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EEEE", !52, i64 0}
!52 = !{!"_ZTSN5boost6bimaps17container_adaptor29associative_container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17set_view_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS4_15index_node_baseISQ_SV_EEEEEEEENSR_23const_set_view_iteratorIS1B_EENSN_ISF_SH_SP_Lb0EEENS1_7support23iterator_facade_to_baseIS1C_S1E_EESP_NS8_28get_mutable_relation_functorISQ_EENS7_7support22get_above_view_functorISQ_EENSR_20set_view_key_to_baseIjSQ_SJ_EENSY_INS1_6detail27iterator_from_base_identityINS_9iterators16reverse_iteratorIS1B_EENS15_IS1U_EES1U_NS1D_IS1U_EEEENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EELi1EEEEE", !53, i64 0}
!53 = !{!"_ZTSN5boost6bimaps17container_adaptor17container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17set_view_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS4_15index_node_baseISQ_SV_EEEEEEEENSR_23const_set_view_iteratorIS1B_EENS1_7support23iterator_facade_to_baseIS1C_S1E_EESP_NS8_28get_mutable_relation_functorISQ_EENS7_7support22get_above_view_functorISQ_EENSY_INSR_20set_view_key_to_baseIjSQ_SJ_EENSY_INS1_6detail27iterator_from_base_identityINS_9iterators16reverse_iteratorIS1B_EENS15_IS1T_EES1T_NS1D_IS1T_EEEENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EELi1EEELi1EEEEE", !54, i64 0}
!54 = !{!"_ZTSN5boost6bimaps17container_adaptor6detail21data_with_functor_bagIRNS_11multi_index6detail13ordered_indexINS4_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS8_9member_at4leftEEENSC_ISD_NSE_5rightEEELb1EEEjXadL_ZNSJ_4leftEEEEESt4lessIjENS5_9nth_layerILi2ENS8_15mutant_relationISG_SI_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSQ_SQ_SQ_E12core_indicesESaISR_EEENS_3mpl6v_itemISF_NSY_7vector0ISQ_EELi0EEENS5_18ordered_unique_tagENS5_19null_augment_policyEEENSZ_INS8_7support22get_above_view_functorISR_EENSZ_INS9_28get_mutable_relation_functorISR_EENSZ_INS2_27iterator_from_base_identityINS5_19bidir_node_iteratorINS5_18ordered_index_nodeIS14_NS5_15index_node_baseISR_SW_EEEEEENSS_17set_view_iteratorIS1I_EES1I_NSS_23const_set_view_iteratorIS1I_EEEENSZ_INS1_7support23iterator_facade_to_baseIS1K_S1M_EENSZ_INSS_20set_view_key_to_baseIjSR_SK_EENSZ_INS1C_INS_9iterators16reverse_iteratorIS1I_EENS1J_IS1V_EES1V_NS1L_IS1V_EEEENSY_6vectorISQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_EELi1EEELi1EEELi1EEELi1EEELi1EEELi1EEEEE", !55, i64 0, !6, i64 8}
!55 = !{!"_ZTSN5boost3mpl8inherit2INS1_INS1_INS1_INS1_INS_6bimaps8relation7support22get_above_view_functorINS3_15mutant_relationINS2_4tags6taggedIKjNS3_9member_at4leftEEENS8_IS9_NSA_5rightEEEN4mpl_2naELb1EEEEENS3_6detail28get_mutable_relation_functorISH_EEEENS2_17container_adaptor6detail27iterator_from_base_identityINS_11multi_index6detail19bidir_node_iteratorINSR_18ordered_index_nodeINSR_19null_augment_policyENSR_15index_node_baseISH_SaISH_EEEEEEENS2_6detail17set_view_iteratorISZ_EESZ_NS10_23const_set_view_iteratorISZ_EEEEEENSN_7support23iterator_facade_to_baseIS12_S14_EEEENS10_20set_view_key_to_baseIjSH_NSQ_6memberINSJ_16relation_storageISC_SE_Lb1EEEjXadL_ZNS1E_4leftEEEEEEEEENSP_INS_9iterators16reverse_iteratorISZ_EENS11_IS1K_EES1K_NS13_IS1K_EEEEEE", !56, i64 0}
!56 = !{!"_ZTSN5boost3mpl8inherit2INS1_INS1_INS1_INS_6bimaps8relation7support22get_above_view_functorINS3_15mutant_relationINS2_4tags6taggedIKjNS3_9member_at4leftEEENS8_IS9_NSA_5rightEEEN4mpl_2naELb1EEEEENS3_6detail28get_mutable_relation_functorISH_EEEENS2_17container_adaptor6detail27iterator_from_base_identityINS_11multi_index6detail19bidir_node_iteratorINSR_18ordered_index_nodeINSR_19null_augment_policyENSR_15index_node_baseISH_SaISH_EEEEEEENS2_6detail17set_view_iteratorISZ_EESZ_NS10_23const_set_view_iteratorISZ_EEEEEENSN_7support23iterator_facade_to_baseIS12_S14_EEEENS10_20set_view_key_to_baseIjSH_NSQ_6memberINSJ_16relation_storageISC_SE_Lb1EEEjXadL_ZNS1E_4leftEEEEEEEEE", !57, i64 0}
!57 = !{!"_ZTSN5boost6bimaps6detail20set_view_key_to_baseIjNS0_8relation15mutant_relationINS0_4tags6taggedIKjNS3_9member_at4leftEEENS6_IS7_NS8_5rightEEEN4mpl_2naELb1EEENS_11multi_index6memberINS3_6detail16relation_storageISA_SC_Lb1EEEjXadL_ZNSK_4leftEEEEEEE", !58, i64 0}
!58 = !{!"_ZTSN5boost11multi_index6memberINS_6bimaps8relation6detail16relation_storageINS2_4tags6taggedIKjNS3_9member_at4leftEEENS7_IS8_NS9_5rightEEELb1EEEjXadL_ZNSE_4leftEEEEE"}
!59 = !{!"_ZTSN5boost11multi_index21multi_index_containerINS_6bimaps8relation15mutant_relationINS2_4tags6taggedIKjNS3_9member_at4leftEEENS6_IS7_NS8_5rightEEEN4mpl_2naELb1EEENS2_6detail10bimap_coreIjjSE_SE_SE_E12core_indicesESaISF_EEE", !60, i64 0, !62, i64 8, !63, i64 16, !10, i64 24}
!60 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail18ordered_index_nodeINS2_19null_augment_policyENS3_IS4_NS2_15index_node_baseINS_6bimaps8relation15mutant_relationINS6_4tags6taggedIKjNS7_9member_at4leftEEENSA_ISB_NSC_5rightEEEN4mpl_2naELb1EEESaISJ_EEEEEEEELi0EEE", !61, i64 0}
!61 = !{!"_ZTSSaIN5boost11multi_index6detail18ordered_index_nodeINS1_19null_augment_policyENS2_IS3_NS1_15index_node_baseINS_6bimaps8relation15mutant_relationINS5_4tags6taggedIKjNS6_9member_at4leftEEENS9_ISA_NSB_5rightEEEN4mpl_2naELb1EEESaISI_EEEEEEEE"}
!62 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_18ordered_index_nodeINS1_19null_augment_policyENS3_IS4_NS1_15index_node_baseINS_6bimaps8relation15mutant_relationINS6_4tags6taggedIKjNS7_9member_at4leftEEENSA_ISB_NSC_5rightEEEN4mpl_2naELb1EEESaISJ_EEEEEEENS0_21multi_index_containerISJ_NS6_6detail10bimap_coreIjjSI_SI_SI_E12core_indicesESK_EEEE", !6, i64 0}
!63 = !{!"_ZTSN5boost11multi_index6detail13ordered_indexINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKjNS5_9member_at4leftEEENS9_ISA_NSB_5rightEEELb1EEEjXadL_ZNSG_5rightEEEEESt4lessIjENS1_9nth_layerILi1ENS5_15mutant_relationISD_SF_N4mpl_2naELb1EEENS4_6detail10bimap_coreIjjSN_SN_SN_E12core_indicesESaISO_EEENS_3mpl6v_itemISE_NSV_7vector0ISN_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEEE", !64, i64 0}
!64 = !{!"_ZTSN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKjNS5_9member_at4leftEEENS9_ISA_NSB_5rightEEELb1EEEjXadL_ZNSG_5rightEEEEESt4lessIjENS1_9nth_layerILi1ENS5_15mutant_relationISD_SF_N4mpl_2naELb1EEENS4_6detail10bimap_coreIjjSN_SN_SN_E12core_indicesESaISO_EEENS_3mpl6v_itemISE_NSV_7vector0ISN_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEEE", !65, i64 0, !68, i64 2, !67, i64 3}
!65 = !{!"_ZTSN5boost11multi_index6detail13ordered_indexINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKjNS5_9member_at4leftEEENS9_ISA_NSB_5rightEEELb1EEEjXadL_ZNSG_4leftEEEEESt4lessIjENS1_9nth_layerILi2ENS5_15mutant_relationISD_SF_N4mpl_2naELb1EEENS4_6detail10bimap_coreIjjSN_SN_SN_E12core_indicesESaISO_EEENS_3mpl6v_itemISC_NSV_7vector0ISN_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEEE", !66, i64 0}
!66 = !{!"_ZTSN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKjNS5_9member_at4leftEEENS9_ISA_NSB_5rightEEELb1EEEjXadL_ZNSG_4leftEEEEESt4lessIjENS1_9nth_layerILi2ENS5_15mutant_relationISD_SF_N4mpl_2naELb1EEENS4_6detail10bimap_coreIjjSN_SN_SN_E12core_indicesESaISO_EEENS_3mpl6v_itemISC_NSV_7vector0ISN_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEEE", !58, i64 0, !67, i64 1}
!67 = !{!"_ZTSSt4lessIjE"}
!68 = !{!"_ZTSN5boost11multi_index6memberINS_6bimaps8relation6detail16relation_storageINS2_4tags6taggedIKjNS3_9member_at4leftEEENS7_IS8_NS9_5rightEEELb1EEEjXadL_ZNSE_5rightEEEEE"}
!69 = !{!"_ZTSN5boost6bimaps5views8map_viewINS0_8relation9member_at4leftENS0_6detail10bimap_coreIjjN4mpl_2naES9_S9_EEEE", !70, i64 0}
!70 = !{!"_ZTSN5boost6bimaps17container_adaptor11map_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISE_ST_EENSR_23const_map_view_iteratorISE_ST_EENSR_25reverse_map_view_iteratorISE_ST_EENSR_31const_reverse_map_view_iteratorISE_ST_EENS1_7support23iterator_facade_to_baseIS16_S18_EESP_SP_NS8_24pair_to_relation_functorISE_SQ_EENS7_7support16get_pair_functorISE_SQ_EESP_NSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EEEE", !71, i64 0}
!71 = !{!"_ZTSN5boost6bimaps17container_adaptor37ordered_associative_container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISE_ST_EENSR_23const_map_view_iteratorISE_ST_EENSR_25reverse_map_view_iteratorISE_ST_EENSR_31const_reverse_map_view_iteratorISE_ST_EESC_NS1_7support23iterator_facade_to_baseIS16_S18_EESP_SP_NS8_24pair_to_relation_functorISE_SQ_EENS7_7support16get_pair_functorISE_SQ_EESP_NSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EEEE", !72, i64 0}
!72 = !{!"_ZTSN5boost6bimaps17container_adaptor29associative_container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISE_ST_EENSR_23const_map_view_iteratorISE_ST_EESC_NS1_7support23iterator_facade_to_baseIS16_S18_EESP_NS8_24pair_to_relation_functorISE_SQ_EENS7_7support16get_pair_functorISE_SQ_EESP_NSY_INS1_6detail27iterator_from_base_identityINS_9iterators16reverse_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS4_15index_node_baseISQ_SV_EEEEEEEENSR_25reverse_map_view_iteratorISE_ST_EES1R_NSR_31const_reverse_map_view_iteratorISE_ST_EEEENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EELi1EEEEE", !73, i64 0}
!73 = !{!"_ZTSN5boost6bimaps17container_adaptor17container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISE_ST_EENSR_23const_map_view_iteratorISE_ST_EENS1_7support23iterator_facade_to_baseIS16_S18_EESP_NS8_24pair_to_relation_functorISE_SQ_EENS7_7support16get_pair_functorISE_SQ_EENSY_INS1_6detail20key_to_base_identityIjSC_EENSY_INS1H_27iterator_from_base_identityINS_9iterators16reverse_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS4_15index_node_baseISQ_SV_EEEEEEEENSR_25reverse_map_view_iteratorISE_ST_EES1T_NSR_31const_reverse_map_view_iteratorISE_ST_EEEENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EELi1EEELi1EEEEE", !74, i64 0}
!74 = !{!"_ZTSN5boost6bimaps17container_adaptor6detail21data_with_functor_bagIRNS_11multi_index6detail13ordered_indexINS4_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS8_9member_at4leftEEENSC_ISD_NSE_5rightEEELb1EEEjXadL_ZNSJ_4leftEEEEESt4lessIjENS5_9nth_layerILi2ENS8_15mutant_relationISG_SI_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSQ_SQ_SQ_E12core_indicesESaISR_EEENS_3mpl6v_itemISF_NSY_7vector0ISQ_EELi0EEENS5_18ordered_unique_tagENS5_19null_augment_policyEEENSZ_INS8_7support16get_pair_functorISF_SR_EENSZ_INS9_24pair_to_relation_functorISF_SR_EENSZ_INS2_27iterator_from_base_identityINS5_19bidir_node_iteratorINS5_18ordered_index_nodeIS14_NS5_15index_node_baseISR_SW_EEEEEENSS_17map_view_iteratorISF_SU_EES1I_NSS_23const_map_view_iteratorISF_SU_EEEENSZ_INS1_7support23iterator_facade_to_baseIS1K_S1M_EENSZ_INS2_20key_to_base_identityIjSD_EENSZ_INS1C_INS_9iterators16reverse_iteratorIS1I_EENSS_25reverse_map_view_iteratorISF_SU_EES1V_NSS_31const_reverse_map_view_iteratorISF_SU_EEEENSY_6vectorISQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_EELi1EEELi1EEELi1EEELi1EEELi1EEELi1EEEEE", !6, i64 0}
!75 = !{!"_ZTSN5boost6bimaps5views8map_viewINS0_8relation9member_at5rightENS0_6detail10bimap_coreIjjN4mpl_2naES9_S9_EEEE", !76, i64 0}
!76 = !{!"_ZTSN5boost6bimaps17container_adaptor11map_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_5rightEEEEESt4lessIjENS4_9nth_layerILi1ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISG_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISG_ST_EENSR_23const_map_view_iteratorISG_ST_EENSR_25reverse_map_view_iteratorISG_ST_EENSR_31const_reverse_map_view_iteratorISG_ST_EENS1_7support23iterator_facade_to_baseIS16_S18_EESP_SP_NS8_24pair_to_relation_functorISG_SQ_EENS7_7support16get_pair_functorISG_SQ_EESP_NSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EEEE", !77, i64 0}
!77 = !{!"_ZTSN5boost6bimaps17container_adaptor37ordered_associative_container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_5rightEEEEESt4lessIjENS4_9nth_layerILi1ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISG_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISG_ST_EENSR_23const_map_view_iteratorISG_ST_EENSR_25reverse_map_view_iteratorISG_ST_EENSR_31const_reverse_map_view_iteratorISG_ST_EESC_NS1_7support23iterator_facade_to_baseIS16_S18_EESP_SP_NS8_24pair_to_relation_functorISG_SQ_EENS7_7support16get_pair_functorISG_SQ_EESP_NSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EEEE", !78, i64 0}
!78 = !{!"_ZTSN5boost6bimaps17container_adaptor29associative_container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_5rightEEEEESt4lessIjENS4_9nth_layerILi1ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISG_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISG_ST_EENSR_23const_map_view_iteratorISG_ST_EESC_NS1_7support23iterator_facade_to_baseIS16_S18_EESP_NS8_24pair_to_relation_functorISG_SQ_EENS7_7support16get_pair_functorISG_SQ_EESP_NSY_INS1_6detail27iterator_from_base_identityINS_9iterators16reverse_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS1M_IS13_NS4_15index_node_baseISQ_SV_EEEEEEEEEENSR_25reverse_map_view_iteratorISG_ST_EES1S_NSR_31const_reverse_map_view_iteratorISG_ST_EEEENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EELi1EEEEE", !79, i64 0}
!79 = !{!"_ZTSN5boost6bimaps17container_adaptor17container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_5rightEEEEESt4lessIjENS4_9nth_layerILi1ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISG_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISG_ST_EENSR_23const_map_view_iteratorISG_ST_EENS1_7support23iterator_facade_to_baseIS16_S18_EESP_NS8_24pair_to_relation_functorISG_SQ_EENS7_7support16get_pair_functorISG_SQ_EENSY_INS1_6detail20key_to_base_identityIjSC_EENSY_INS1H_27iterator_from_base_identityINS_9iterators16reverse_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS1O_IS13_NS4_15index_node_baseISQ_SV_EEEEEEEEEENSR_25reverse_map_view_iteratorISG_ST_EES1U_NSR_31const_reverse_map_view_iteratorISG_ST_EEEENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EELi1EEELi1EEEEE", !80, i64 0}
!80 = !{!"_ZTSN5boost6bimaps17container_adaptor6detail21data_with_functor_bagIRNS_11multi_index6detail13ordered_indexINS4_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS8_9member_at4leftEEENSC_ISD_NSE_5rightEEELb1EEEjXadL_ZNSJ_5rightEEEEESt4lessIjENS5_9nth_layerILi1ENS8_15mutant_relationISG_SI_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSQ_SQ_SQ_E12core_indicesESaISR_EEENS_3mpl6v_itemISH_NSY_7vector0ISQ_EELi0EEENS5_18ordered_unique_tagENS5_19null_augment_policyEEENSZ_INS8_7support16get_pair_functorISH_SR_EENSZ_INS9_24pair_to_relation_functorISH_SR_EENSZ_INS2_27iterator_from_base_identityINS5_19bidir_node_iteratorINS5_18ordered_index_nodeIS14_NS1E_IS14_NS5_15index_node_baseISR_SW_EEEEEEEENSS_17map_view_iteratorISH_SU_EES1J_NSS_23const_map_view_iteratorISH_SU_EEEENSZ_INS1_7support23iterator_facade_to_baseIS1L_S1N_EENSZ_INS2_20key_to_base_identityIjSD_EENSZ_INS1C_INS_9iterators16reverse_iteratorIS1J_EENSS_25reverse_map_view_iteratorISH_SU_EES1W_NSS_31const_reverse_map_view_iteratorISH_SU_EEEENSY_6vectorISQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_EELi1EEELi1EEELi1EEELi1EEELi1EEELi1EEEEE", !6, i64 0}
!81 = !{!"_ZTSSt6vectorISt3setImSt4lessImESaImEESaIS4_EE", !82, i64 0}
!82 = !{!"_ZTSSt12_Vector_baseISt3setImSt4lessImESaImEESaIS4_EE", !83, i64 0}
!83 = !{!"_ZTSNSt12_Vector_baseISt3setImSt4lessImESaImEESaIS4_EE12_Vector_implE", !84, i64 0}
!84 = !{!"_ZTSNSt12_Vector_baseISt3setImSt4lessImESaImEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}


; 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::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<unsigned int, unsigned int, std::_Identity<unsigned int>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, unsigned int, std::_Identity<unsigned int>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef range(i32 0, 13) i32 @_ZN9elabtsaot11Powersystem8validateEv(ptr noundef nonnull align 8 dereferenceable(480) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::set", align 8
  %3 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %4 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %5 = alloca %"class.std::set", align 8
  %6 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %7 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %8 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %9 = alloca i32, align 4
  %10 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %11 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %12 = alloca i32, align 4
  %13 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %14 = alloca %"class.std::set", align 8
  %15 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %16 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %17 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %18 = alloca i32, align 4
  %19 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %20 = alloca %"class.std::set", align 8
  %21 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %22 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %23 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %24 = alloca i32, align 4
  %25 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %2) #4
  call void @_ZNSt3setIjSt4lessIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %2) #4
  %26 = getelementptr inbounds i8, ptr %0, i64 56
  %27 = call noundef i64 @_ZNKSt6vectorIN9elabtsaot3BusESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #4
  %.not78 = icmp eq i64 %27, 0
  br i1 %.not78, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %1, %38
  %.03279 = phi i64 [ %39, %38 ], [ 0, %1 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #4
  %28 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorIN9elabtsaot3BusESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %.03279) #4
  %29 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 4 dereferenceable(4) %28)
          to label %30 unwind label %33

30:                                               ; preds = %.lr.ph
  store ptr %29, ptr %3, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #4
  %31 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %2) #4
  store ptr %31, ptr %4, align 8
  %32 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %4) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #4
  br i1 %32, label %.loopexit72, label %35

33:                                               ; preds = %.lr.ph
  %34 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #4
  br label %152

35:                                               ; preds = %30
  %36 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorIN9elabtsaot3BusESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %.03279) #4
  %37 = invoke { ptr, i8 } @_ZNSt3setIjSt4lessIjESaIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 4 dereferenceable(4) %36)
          to label %38 unwind label %.loopexit73

38:                                               ; preds = %35
  %39 = add i64 %.03279, 1
  %40 = call noundef i64 @_ZNKSt6vectorIN9elabtsaot3BusESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #4
  %.not = icmp eq i64 %39, %40
  br i1 %.not, label %._crit_edge, label %.lr.ph, !llvm.loop !5

.loopexit73:                                      ; preds = %35
  %lpad.loopexit75 = landingpad { ptr, i32 }
          cleanup
  br label %152

.loopexit.split-lp74:                             ; preds = %._crit_edge, %41, %42, %43
  %lpad.loopexit.split-lp76 = landingpad { ptr, i32 }
          cleanup
  br label %152

._crit_edge:                                      ; preds = %38, %1
  invoke void @_ZN9elabtsaot11Powersystem18_rebuildBusIdBimapEv(ptr noundef nonnull align 8 dereferenceable(480) %0)
          to label %41 unwind label %.loopexit.split-lp74

41:                                               ; preds = %._crit_edge
  invoke void @_ZN9elabtsaot11Powersystem16_rebuildBusBrMapEv(ptr noundef nonnull align 8 dereferenceable(480) %0)
          to label %42 unwind label %.loopexit.split-lp74

42:                                               ; preds = %41
  invoke void @_ZN9elabtsaot11Powersystem17_rebuildBusGenMapEv(ptr noundef nonnull align 8 dereferenceable(480) %0)
          to label %43 unwind label %.loopexit.split-lp74

43:                                               ; preds = %42
  invoke void @_ZN9elabtsaot11Powersystem18_rebuildBusLoadMapEv(ptr noundef nonnull align 8 dereferenceable(480) %0)
          to label %44 unwind label %.loopexit.split-lp74

44:                                               ; preds = %43
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %5) #4
  call void @_ZNSt3setIjSt4lessIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %5) #4
  %45 = getelementptr inbounds i8, ptr %0, i64 80
  %46 = call noundef i64 @_ZNKSt6vectorIN9elabtsaot6BranchESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #4
  %.not4780 = icmp eq i64 %46, 0
  br i1 %.not4780, label %._crit_edge84, label %.lr.ph83

47:                                               ; preds = %81
  %48 = add i64 %.13381, 1
  %49 = call noundef i64 @_ZNKSt6vectorIN9elabtsaot6BranchESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #4
  %.not47 = icmp eq i64 %48, %49
  br i1 %.not47, label %._crit_edge84, label %.lr.ph83, !llvm.loop !7

.lr.ph83:                                         ; preds = %44, %47
  %.13381 = phi i64 [ %48, %47 ], [ 0, %44 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #4
  %50 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNSt6vectorIN9elabtsaot6BranchESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %.13381) #4
  %51 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %5, ptr noundef nonnull align 4 dereferenceable(4) %50)
          to label %52 unwind label %55

52:                                               ; preds = %.lr.ph83
  store ptr %51, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #4
  %53 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %5) #4
  store ptr %53, ptr %7, align 8
  %54 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #4
  br i1 %54, label %.loopexit66, label %57

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

57:                                               ; preds = %52
  %58 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNSt6vectorIN9elabtsaot6BranchESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %.13381) #4
  %59 = invoke { ptr, i8 } @_ZNSt3setIjSt4lessIjESaIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(48) %5, ptr noundef nonnull align 4 dereferenceable(4) %58)
          to label %60 unwind label %.loopexit67

60:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #4
  %61 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNSt6vectorIN9elabtsaot6BranchESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %.13381) #4
  %62 = getelementptr inbounds i8, ptr %61, i64 8
  %63 = load i32, ptr %62, align 8, !tbaa !8
  store i32 %63, ptr %9, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #4
  %64 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 4 dereferenceable(4) %9)
          to label %65 unwind label %76

.loopexit67:                                      ; preds = %57
  %lpad.loopexit69 = landingpad { ptr, i32 }
          cleanup
  br label %151

.loopexit.split-lp68:                             ; preds = %._crit_edge84
  %lpad.loopexit.split-lp70 = landingpad { ptr, i32 }
          cleanup
  br label %151

65:                                               ; preds = %60
  store ptr %64, ptr %8, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #4
  %66 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %2) #4
  store ptr %66, ptr %10, align 8
  %67 = call noundef zeroext i1 @_ZSteqRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %10) #4
  br i1 %67, label %.critedge, label %68

68:                                               ; preds = %65
  %69 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNSt6vectorIN9elabtsaot6BranchESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %.13381) #4
  %70 = getelementptr inbounds i8, ptr %69, i64 12
  %71 = load i32, ptr %70, align 4, !tbaa !16
  store i32 %71, ptr %12, align 4, !tbaa !15
  %72 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %73 unwind label %78

73:                                               ; preds = %68
  store ptr %72, ptr %11, align 8
  %74 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %2) #4
  store ptr %74, ptr %13, align 8
  %75 = call noundef zeroext i1 @_ZSteqRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %13) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #4
  br i1 %75, label %.loopexit66, label %81

.critedge:                                        ; preds = %65
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #4
  br label %.loopexit66

76:                                               ; preds = %60
  %77 = landingpad { ptr, i32 }
          cleanup
  br label %80

78:                                               ; preds = %68
  %79 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #4
  br label %80

80:                                               ; preds = %78, %76
  %.pn54 = phi { ptr, i32 } [ %79, %78 ], [ %77, %76 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #4
  br label %151

81:                                               ; preds = %73
  %82 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNSt6vectorIN9elabtsaot6BranchESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %.13381) #4
  %83 = getelementptr inbounds i8, ptr %82, i64 8
  %84 = load i32, ptr %83, align 8, !tbaa !8
  %85 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNSt6vectorIN9elabtsaot6BranchESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %.13381) #4
  %86 = getelementptr inbounds i8, ptr %85, i64 12
  %87 = load i32, ptr %86, align 4, !tbaa !16
  %88 = icmp eq i32 %84, %87
  br i1 %88, label %.loopexit66, label %47

._crit_edge84:                                    ; preds = %47, %44
  invoke void @_ZN9elabtsaot11Powersystem17_rebuildBrIdBimapEv(ptr noundef nonnull align 8 dereferenceable(480) %0)
          to label %89 unwind label %.loopexit.split-lp68

89:                                               ; preds = %._crit_edge84
  %90 = invoke noundef i32 @_ZN9elabtsaot5graph12countIslandsERKNS_11PowersystemE(ptr noundef nonnull align 8 dereferenceable(480) %0)
          to label %91 unwind label %93

91:                                               ; preds = %89
  %92 = icmp sgt i32 %90, 1
  br i1 %92, label %.loopexit66, label %95

93:                                               ; preds = %89
  %94 = landingpad { ptr, i32 }
          cleanup
  br label %151

95:                                               ; preds = %91
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %14) #4
  call void @_ZNSt3setIjSt4lessIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #4
  %96 = getelementptr inbounds i8, ptr %0, i64 104
  %97 = call noundef i64 @_ZNKSt6vectorIN9elabtsaot9GeneratorESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %96) #4
  %.not4885 = icmp eq i64 %97, 0
  br i1 %.not4885, label %._crit_edge89, label %.lr.ph88

98:                                               ; preds = %116
  %99 = add i64 %.23486, 1
  %100 = call noundef i64 @_ZNKSt6vectorIN9elabtsaot9GeneratorESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %96) #4
  %.not48 = icmp eq i64 %99, %100
  br i1 %.not48, label %._crit_edge89, label %.lr.ph88, !llvm.loop !17

.lr.ph88:                                         ; preds = %95, %98
  %.23486 = phi i64 [ %99, %98 ], [ 0, %95 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #4
  %101 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZNSt6vectorIN9elabtsaot9GeneratorESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %96, i64 noundef %.23486) #4
  %102 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %14, ptr noundef nonnull align 4 dereferenceable(4) %101)
          to label %103 unwind label %106

103:                                              ; preds = %.lr.ph88
  store ptr %102, ptr %15, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #4
  %104 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %14) #4
  store ptr %104, ptr %16, align 8
  %105 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #4
  br i1 %105, label %.loopexit60, label %108

106:                                              ; preds = %.lr.ph88
  %107 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #4
  br label %150

108:                                              ; preds = %103
  %109 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZNSt6vectorIN9elabtsaot9GeneratorESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %96, i64 noundef %.23486) #4
  %110 = invoke { ptr, i8 } @_ZNSt3setIjSt4lessIjESaIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(48) %14, ptr noundef nonnull align 4 dereferenceable(4) %109)
          to label %111 unwind label %.loopexit61

111:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #4
  %112 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZNSt6vectorIN9elabtsaot9GeneratorESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %96, i64 noundef %.23486) #4
  %113 = getelementptr inbounds i8, ptr %112, i64 40
  %114 = load i32, ptr %113, align 8, !tbaa !18
  store i32 %114, ptr %18, align 4, !tbaa !15
  %115 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %116 unwind label %119

.loopexit61:                                      ; preds = %108
  %lpad.loopexit63 = landingpad { ptr, i32 }
          cleanup
  br label %150

.loopexit.split-lp62:                             ; preds = %._crit_edge89
  %lpad.loopexit.split-lp64 = landingpad { ptr, i32 }
          cleanup
  br label %150

116:                                              ; preds = %111
  store ptr %115, ptr %17, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #4
  %117 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %2) #4
  store ptr %117, ptr %19, align 8
  %118 = call noundef zeroext i1 @_ZSteqRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #4
  br i1 %118, label %.loopexit60, label %98

119:                                              ; preds = %111
  %120 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #4
  br label %150

._crit_edge89:                                    ; preds = %98, %95
  invoke void @_ZN9elabtsaot11Powersystem18_rebuildGenIdBimapEv(ptr noundef nonnull align 8 dereferenceable(480) %0)
          to label %121 unwind label %.loopexit.split-lp62

121:                                              ; preds = %._crit_edge89
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %20) #4
  call void @_ZNSt3setIjSt4lessIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #4
  %122 = getelementptr inbounds i8, ptr %0, i64 128
  %123 = call noundef i64 @_ZNKSt6vectorIN9elabtsaot4LoadESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %122) #4
  %.not4990 = icmp eq i64 %123, 0
  br i1 %.not4990, label %._crit_edge94, label %.lr.ph93

124:                                              ; preds = %142
  %125 = add i64 %.33591, 1
  %126 = call noundef i64 @_ZNKSt6vectorIN9elabtsaot4LoadESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %122) #4
  %.not49 = icmp eq i64 %125, %126
  br i1 %.not49, label %._crit_edge94, label %.lr.ph93, !llvm.loop !25

.lr.ph93:                                         ; preds = %121, %124
  %.33591 = phi i64 [ %125, %124 ], [ 0, %121 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #4
  %127 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNSt6vectorIN9elabtsaot4LoadESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %122, i64 noundef %.33591) #4
  %128 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %20, ptr noundef nonnull align 4 dereferenceable(4) %127)
          to label %129 unwind label %132

129:                                              ; preds = %.lr.ph93
  store ptr %128, ptr %21, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #4
  %130 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %20) #4
  store ptr %130, ptr %22, align 8
  %131 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  br i1 %131, label %.loopexit, label %134

132:                                              ; preds = %.lr.ph93
  %133 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  br label %149

134:                                              ; preds = %129
  %135 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNSt6vectorIN9elabtsaot4LoadESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %122, i64 noundef %.33591) #4
  %136 = invoke { ptr, i8 } @_ZNSt3setIjSt4lessIjESaIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(48) %20, ptr noundef nonnull align 4 dereferenceable(4) %135)
          to label %137 unwind label %.loopexit59

137:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #4
  %138 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNSt6vectorIN9elabtsaot4LoadESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %122, i64 noundef %.33591) #4
  %139 = getelementptr inbounds i8, ptr %138, i64 4
  %140 = load i32, ptr %139, align 4, !tbaa !26
  store i32 %140, ptr %24, align 4, !tbaa !15
  %141 = invoke ptr @_ZNSt3setIjSt4lessIjESaIjEE4findERKj(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %142 unwind label %145

.loopexit59:                                      ; preds = %134
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %149

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

142:                                              ; preds = %137
  store ptr %141, ptr %23, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #4
  %143 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %2) #4
  store ptr %143, ptr %25, align 8
  %144 = call noundef zeroext i1 @_ZSteqRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #4
  br i1 %144, label %.loopexit, label %124

145:                                              ; preds = %137
  %146 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #4
  br label %149

._crit_edge94:                                    ; preds = %124, %121
  invoke void @_ZN9elabtsaot11Powersystem19_rebuildLoadIdBimapEv(ptr noundef nonnull align 8 dereferenceable(480) %0)
          to label %147 unwind label %.loopexit.split-lp

147:                                              ; preds = %._crit_edge94
  %148 = getelementptr inbounds i8, ptr %0, i64 48
  store i32 1, ptr %148, align 8, !tbaa !28
  br label %.loopexit

.loopexit:                                        ; preds = %142, %129, %147
  %.0 = phi i32 [ 0, %147 ], [ 11, %142 ], [ 10, %129 ]
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %20) #4
  br label %.loopexit60

149:                                              ; preds = %.loopexit59, %.loopexit.split-lp, %145, %132
  %.pn = phi { ptr, i32 } [ %146, %145 ], [ %133, %132 ], [ %lpad.loopexit, %.loopexit59 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %20) #4
  br label %150

.loopexit60:                                      ; preds = %116, %103, %.loopexit
  %.1 = phi i32 [ %.0, %.loopexit ], [ 7, %116 ], [ 6, %103 ]
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) #4
  br label %.loopexit66

150:                                              ; preds = %.loopexit61, %.loopexit.split-lp62, %149, %119, %106
  %.pn51 = phi { ptr, i32 } [ %120, %119 ], [ %107, %106 ], [ %.pn, %149 ], [ %lpad.loopexit63, %.loopexit61 ], [ %lpad.loopexit.split-lp64, %.loopexit.split-lp62 ]
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) #4
  br label %151

.loopexit66:                                      ; preds = %81, %73, %52, %.loopexit60, %91, %.critedge
  %.3 = phi i32 [ 4, %.critedge ], [ %.1, %.loopexit60 ], [ 12, %91 ], [ 5, %81 ], [ 4, %73 ], [ 3, %52 ]
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %5) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %5) #4
  br label %.loopexit72

151:                                              ; preds = %.loopexit67, %.loopexit.split-lp68, %93, %150, %80, %55
  %.pn54.pn = phi { ptr, i32 } [ %.pn54, %80 ], [ %56, %55 ], [ %.pn51, %150 ], [ %94, %93 ], [ %lpad.loopexit69, %.loopexit67 ], [ %lpad.loopexit.split-lp70, %.loopexit.split-lp68 ]
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %5) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %5) #4
  br label %152

.loopexit72:                                      ; preds = %30, %.loopexit66
  %.4 = phi i32 [ %.3, %.loopexit66 ], [ 1, %30 ]
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %2) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %2) #4
  ret i32 %.4

152:                                              ; preds = %.loopexit73, %.loopexit.split-lp74, %151, %33
  %.pn57 = phi { ptr, i32 } [ %34, %33 ], [ %.pn54.pn, %151 ], [ %lpad.loopexit75, %.loopexit73 ], [ %lpad.loopexit.split-lp76, %.loopexit.split-lp74 ]
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %2) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %2) #4
  resume { ptr, i32 } %.pn57
}

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

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

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

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

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

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

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

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

declare noundef i32 @_ZN9elabtsaot5graph12countIslandsERKNS_11PowersystemE(ptr noundef nonnull align 8 dereferenceable(480)) local_unnamed_addr #3

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 #3 = { "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 = { 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 = distinct !{!5, !6}
!6 = !{!"llvm.loop.mustprogress"}
!7 = distinct !{!7, !6}
!8 = !{!9, !10, i64 8}
!9 = !{!"_ZTSN9elabtsaot6BranchE", !10, i64 0, !13, i64 4, !10, i64 8, !10, i64 12, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48, !14, i64 56, !14, i64 64, !14, i64 72}
!10 = !{!"int", !11, i64 0}
!11 = !{!"omnipotent char", !12, i64 0}
!12 = !{!"Simple C++ TBAA"}
!13 = !{!"bool", !11, i64 0}
!14 = !{!"double", !11, i64 0}
!15 = !{!10, !10, i64 0}
!16 = !{!9, !10, i64 12}
!17 = distinct !{!17, !6}
!18 = !{!19, !10, i64 40}
!19 = !{!"_ZTSN9elabtsaot9GeneratorE", !10, i64 0, !13, i64 4, !20, i64 8, !10, i64 40, !14, i64 48, !14, i64 56, !24, i64 64, !10, i64 80, !14, i64 88, !14, i64 96, !14, i64 104, !14, i64 112, !14, i64 120, !14, i64 128, !14, i64 136, !14, i64 144, !14, i64 152, !14, i64 160, !14, i64 168, !14, i64 176, !14, i64 184, !14, i64 192, !14, i64 200, !14, i64 208}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !21, i64 0, !23, i64 8, !11, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !22, i64 0}
!22 = !{!"any pointer", !11, i64 0}
!23 = !{!"long", !11, i64 0}
!24 = !{!"_ZTSSt7complexIdE", !11, i64 0}
!25 = distinct !{!25, !6}
!26 = !{!27, !10, i64 4}
!27 = !{!"_ZTSN9elabtsaot4LoadE", !10, i64 0, !10, i64 4, !14, i64 8, !14, i64 16, !24, i64 24, !14, i64 40, !14, i64 48, !14, i64 56, !14, i64 64}
!28 = !{!29, !10, i64 48}
!29 = !{!"_ZTSN9elabtsaot11PowersystemE", !20, i64 0, !14, i64 32, !14, i64 40, !10, i64 48, !30, i64 56, !34, i64 80, !38, i64 104, !42, i64 128, !46, i64 152, !46, i64 216, !46, i64 280, !46, i64 344, !79, i64 408, !79, i64 432, !79, i64 456}
!30 = !{!"_ZTSSt6vectorIN9elabtsaot3BusESaIS1_EE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseIN9elabtsaot3BusESaIS1_EE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot3BusESaIS1_EE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot3BusESaIS1_EE17_Vector_impl_dataE", !22, i64 0, !22, i64 8, !22, i64 16}
!34 = !{!"_ZTSSt6vectorIN9elabtsaot6BranchESaIS1_EE", !35, i64 0}
!35 = !{!"_ZTSSt12_Vector_baseIN9elabtsaot6BranchESaIS1_EE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot6BranchESaIS1_EE12_Vector_implE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot6BranchESaIS1_EE17_Vector_impl_dataE", !22, i64 0, !22, i64 8, !22, i64 16}
!38 = !{!"_ZTSSt6vectorIN9elabtsaot9GeneratorESaIS1_EE", !39, i64 0}
!39 = !{!"_ZTSSt12_Vector_baseIN9elabtsaot9GeneratorESaIS1_EE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot9GeneratorESaIS1_EE12_Vector_implE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot9GeneratorESaIS1_EE17_Vector_impl_dataE", !22, i64 0, !22, i64 8, !22, i64 16}
!42 = !{!"_ZTSSt6vectorIN9elabtsaot4LoadESaIS1_EE", !43, i64 0}
!43 = !{!"_ZTSSt12_Vector_baseIN9elabtsaot4LoadESaIS1_EE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot4LoadESaIS1_EE12_Vector_implE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIN9elabtsaot4LoadESaIS1_EE17_Vector_impl_dataE", !22, i64 0, !22, i64 8, !22, i64 16}
!46 = !{!"_ZTSN5boost6bimaps5bimapIjjN4mpl_2naES3_S3_EE", !47, i64 0, !57, i64 16, !67, i64 48, !73, i64 56}
!47 = !{!"_ZTSN5boost6bimaps5views8set_viewINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEEEE", !48, i64 0}
!48 = !{!"_ZTSN5boost6bimaps17container_adaptor11set_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17set_view_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS4_15index_node_baseISQ_SV_EEEEEEEENSR_23const_set_view_iteratorIS1B_EENS15_INS_9iterators16reverse_iteratorIS1B_EEEENS1D_IS1H_EENS1_7support23iterator_facade_to_baseIS1C_S1E_EESP_SP_NS8_28get_mutable_relation_functorISQ_EENS7_7support22get_above_view_functorISQ_EENSR_20set_view_key_to_baseIjSQ_SJ_EENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EEEE", !49, i64 0}
!49 = !{!"_ZTSN5boost6bimaps17container_adaptor37ordered_associative_container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17set_view_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS4_15index_node_baseISQ_SV_EEEEEEEENSR_23const_set_view_iteratorIS1B_EENS15_INS_9iterators16reverse_iteratorIS1B_EEEENS1D_IS1H_EENSN_ISF_SH_SP_Lb0EEENS1_7support23iterator_facade_to_baseIS1C_S1E_EESP_SP_NS8_28get_mutable_relation_functorISQ_EENS7_7support22get_above_view_functorISQ_EENSR_20set_view_key_to_baseIjSQ_SJ_EENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EEEE", !50, i64 0}
!50 = !{!"_ZTSN5boost6bimaps17container_adaptor29associative_container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17set_view_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS4_15index_node_baseISQ_SV_EEEEEEEENSR_23const_set_view_iteratorIS1B_EENSN_ISF_SH_SP_Lb0EEENS1_7support23iterator_facade_to_baseIS1C_S1E_EESP_NS8_28get_mutable_relation_functorISQ_EENS7_7support22get_above_view_functorISQ_EENSR_20set_view_key_to_baseIjSQ_SJ_EENSY_INS1_6detail27iterator_from_base_identityINS_9iterators16reverse_iteratorIS1B_EENS15_IS1U_EES1U_NS1D_IS1U_EEEENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EELi1EEEEE", !51, i64 0}
!51 = !{!"_ZTSN5boost6bimaps17container_adaptor17container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17set_view_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS4_15index_node_baseISQ_SV_EEEEEEEENSR_23const_set_view_iteratorIS1B_EENS1_7support23iterator_facade_to_baseIS1C_S1E_EESP_NS8_28get_mutable_relation_functorISQ_EENS7_7support22get_above_view_functorISQ_EENSY_INSR_20set_view_key_to_baseIjSQ_SJ_EENSY_INS1_6detail27iterator_from_base_identityINS_9iterators16reverse_iteratorIS1B_EENS15_IS1T_EES1T_NS1D_IS1T_EEEENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EELi1EEELi1EEEEE", !52, i64 0}
!52 = !{!"_ZTSN5boost6bimaps17container_adaptor6detail21data_with_functor_bagIRNS_11multi_index6detail13ordered_indexINS4_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS8_9member_at4leftEEENSC_ISD_NSE_5rightEEELb1EEEjXadL_ZNSJ_4leftEEEEESt4lessIjENS5_9nth_layerILi2ENS8_15mutant_relationISG_SI_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSQ_SQ_SQ_E12core_indicesESaISR_EEENS_3mpl6v_itemISF_NSY_7vector0ISQ_EELi0EEENS5_18ordered_unique_tagENS5_19null_augment_policyEEENSZ_INS8_7support22get_above_view_functorISR_EENSZ_INS9_28get_mutable_relation_functorISR_EENSZ_INS2_27iterator_from_base_identityINS5_19bidir_node_iteratorINS5_18ordered_index_nodeIS14_NS5_15index_node_baseISR_SW_EEEEEENSS_17set_view_iteratorIS1I_EES1I_NSS_23const_set_view_iteratorIS1I_EEEENSZ_INS1_7support23iterator_facade_to_baseIS1K_S1M_EENSZ_INSS_20set_view_key_to_baseIjSR_SK_EENSZ_INS1C_INS_9iterators16reverse_iteratorIS1I_EENS1J_IS1V_EES1V_NS1L_IS1V_EEEENSY_6vectorISQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_EELi1EEELi1EEELi1EEELi1EEELi1EEELi1EEEEE", !53, i64 0, !22, i64 8}
!53 = !{!"_ZTSN5boost3mpl8inherit2INS1_INS1_INS1_INS1_INS_6bimaps8relation7support22get_above_view_functorINS3_15mutant_relationINS2_4tags6taggedIKjNS3_9member_at4leftEEENS8_IS9_NSA_5rightEEEN4mpl_2naELb1EEEEENS3_6detail28get_mutable_relation_functorISH_EEEENS2_17container_adaptor6detail27iterator_from_base_identityINS_11multi_index6detail19bidir_node_iteratorINSR_18ordered_index_nodeINSR_19null_augment_policyENSR_15index_node_baseISH_SaISH_EEEEEEENS2_6detail17set_view_iteratorISZ_EESZ_NS10_23const_set_view_iteratorISZ_EEEEEENSN_7support23iterator_facade_to_baseIS12_S14_EEEENS10_20set_view_key_to_baseIjSH_NSQ_6memberINSJ_16relation_storageISC_SE_Lb1EEEjXadL_ZNS1E_4leftEEEEEEEEENSP_INS_9iterators16reverse_iteratorISZ_EENS11_IS1K_EES1K_NS13_IS1K_EEEEEE", !54, i64 0}
!54 = !{!"_ZTSN5boost3mpl8inherit2INS1_INS1_INS1_INS_6bimaps8relation7support22get_above_view_functorINS3_15mutant_relationINS2_4tags6taggedIKjNS3_9member_at4leftEEENS8_IS9_NSA_5rightEEEN4mpl_2naELb1EEEEENS3_6detail28get_mutable_relation_functorISH_EEEENS2_17container_adaptor6detail27iterator_from_base_identityINS_11multi_index6detail19bidir_node_iteratorINSR_18ordered_index_nodeINSR_19null_augment_policyENSR_15index_node_baseISH_SaISH_EEEEEEENS2_6detail17set_view_iteratorISZ_EESZ_NS10_23const_set_view_iteratorISZ_EEEEEENSN_7support23iterator_facade_to_baseIS12_S14_EEEENS10_20set_view_key_to_baseIjSH_NSQ_6memberINSJ_16relation_storageISC_SE_Lb1EEEjXadL_ZNS1E_4leftEEEEEEEEE", !55, i64 0}
!55 = !{!"_ZTSN5boost6bimaps6detail20set_view_key_to_baseIjNS0_8relation15mutant_relationINS0_4tags6taggedIKjNS3_9member_at4leftEEENS6_IS7_NS8_5rightEEEN4mpl_2naELb1EEENS_11multi_index6memberINS3_6detail16relation_storageISA_SC_Lb1EEEjXadL_ZNSK_4leftEEEEEEE", !56, i64 0}
!56 = !{!"_ZTSN5boost11multi_index6memberINS_6bimaps8relation6detail16relation_storageINS2_4tags6taggedIKjNS3_9member_at4leftEEENS7_IS8_NS9_5rightEEELb1EEEjXadL_ZNSE_4leftEEEEE"}
!57 = !{!"_ZTSN5boost11multi_index21multi_index_containerINS_6bimaps8relation15mutant_relationINS2_4tags6taggedIKjNS3_9member_at4leftEEENS6_IS7_NS8_5rightEEEN4mpl_2naELb1EEENS2_6detail10bimap_coreIjjSE_SE_SE_E12core_indicesESaISF_EEE", !58, i64 0, !60, i64 8, !61, i64 16, !23, i64 24}
!58 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail18ordered_index_nodeINS2_19null_augment_policyENS3_IS4_NS2_15index_node_baseINS_6bimaps8relation15mutant_relationINS6_4tags6taggedIKjNS7_9member_at4leftEEENSA_ISB_NSC_5rightEEEN4mpl_2naELb1EEESaISJ_EEEEEEEELi0EEE", !59, i64 0}
!59 = !{!"_ZTSSaIN5boost11multi_index6detail18ordered_index_nodeINS1_19null_augment_policyENS2_IS3_NS1_15index_node_baseINS_6bimaps8relation15mutant_relationINS5_4tags6taggedIKjNS6_9member_at4leftEEENS9_ISA_NSB_5rightEEEN4mpl_2naELb1EEESaISI_EEEEEEEE"}
!60 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_18ordered_index_nodeINS1_19null_augment_policyENS3_IS4_NS1_15index_node_baseINS_6bimaps8relation15mutant_relationINS6_4tags6taggedIKjNS7_9member_at4leftEEENSA_ISB_NSC_5rightEEEN4mpl_2naELb1EEESaISJ_EEEEEEENS0_21multi_index_containerISJ_NS6_6detail10bimap_coreIjjSI_SI_SI_E12core_indicesESK_EEEE", !22, i64 0}
!61 = !{!"_ZTSN5boost11multi_index6detail13ordered_indexINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKjNS5_9member_at4leftEEENS9_ISA_NSB_5rightEEELb1EEEjXadL_ZNSG_5rightEEEEESt4lessIjENS1_9nth_layerILi1ENS5_15mutant_relationISD_SF_N4mpl_2naELb1EEENS4_6detail10bimap_coreIjjSN_SN_SN_E12core_indicesESaISO_EEENS_3mpl6v_itemISE_NSV_7vector0ISN_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEEE", !62, i64 0}
!62 = !{!"_ZTSN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKjNS5_9member_at4leftEEENS9_ISA_NSB_5rightEEELb1EEEjXadL_ZNSG_5rightEEEEESt4lessIjENS1_9nth_layerILi1ENS5_15mutant_relationISD_SF_N4mpl_2naELb1EEENS4_6detail10bimap_coreIjjSN_SN_SN_E12core_indicesESaISO_EEENS_3mpl6v_itemISE_NSV_7vector0ISN_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEEE", !63, i64 0, !66, i64 2, !65, i64 3}
!63 = !{!"_ZTSN5boost11multi_index6detail13ordered_indexINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKjNS5_9member_at4leftEEENS9_ISA_NSB_5rightEEELb1EEEjXadL_ZNSG_4leftEEEEESt4lessIjENS1_9nth_layerILi2ENS5_15mutant_relationISD_SF_N4mpl_2naELb1EEENS4_6detail10bimap_coreIjjSN_SN_SN_E12core_indicesESaISO_EEENS_3mpl6v_itemISC_NSV_7vector0ISN_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEEE", !64, i64 0}
!64 = !{!"_ZTSN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKjNS5_9member_at4leftEEENS9_ISA_NSB_5rightEEELb1EEEjXadL_ZNSG_4leftEEEEESt4lessIjENS1_9nth_layerILi2ENS5_15mutant_relationISD_SF_N4mpl_2naELb1EEENS4_6detail10bimap_coreIjjSN_SN_SN_E12core_indicesESaISO_EEENS_3mpl6v_itemISC_NSV_7vector0ISN_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEEE", !56, i64 0, !65, i64 1}
!65 = !{!"_ZTSSt4lessIjE"}
!66 = !{!"_ZTSN5boost11multi_index6memberINS_6bimaps8relation6detail16relation_storageINS2_4tags6taggedIKjNS3_9member_at4leftEEENS7_IS8_NS9_5rightEEELb1EEEjXadL_ZNSE_5rightEEEEE"}
!67 = !{!"_ZTSN5boost6bimaps5views8map_viewINS0_8relation9member_at4leftENS0_6detail10bimap_coreIjjN4mpl_2naES9_S9_EEEE", !68, i64 0}
!68 = !{!"_ZTSN5boost6bimaps17container_adaptor11map_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISE_ST_EENSR_23const_map_view_iteratorISE_ST_EENSR_25reverse_map_view_iteratorISE_ST_EENSR_31const_reverse_map_view_iteratorISE_ST_EENS1_7support23iterator_facade_to_baseIS16_S18_EESP_SP_NS8_24pair_to_relation_functorISE_SQ_EENS7_7support16get_pair_functorISE_SQ_EESP_NSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EEEE", !69, i64 0}
!69 = !{!"_ZTSN5boost6bimaps17container_adaptor37ordered_associative_container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISE_ST_EENSR_23const_map_view_iteratorISE_ST_EENSR_25reverse_map_view_iteratorISE_ST_EENSR_31const_reverse_map_view_iteratorISE_ST_EESC_NS1_7support23iterator_facade_to_baseIS16_S18_EESP_SP_NS8_24pair_to_relation_functorISE_SQ_EENS7_7support16get_pair_functorISE_SQ_EESP_NSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EEEE", !70, i64 0}
!70 = !{!"_ZTSN5boost6bimaps17container_adaptor29associative_container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISE_ST_EENSR_23const_map_view_iteratorISE_ST_EESC_NS1_7support23iterator_facade_to_baseIS16_S18_EESP_NS8_24pair_to_relation_functorISE_SQ_EENS7_7support16get_pair_functorISE_SQ_EESP_NSY_INS1_6detail27iterator_from_base_identityINS_9iterators16reverse_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS4_15index_node_baseISQ_SV_EEEEEEEENSR_25reverse_map_view_iteratorISE_ST_EES1R_NSR_31const_reverse_map_view_iteratorISE_ST_EEEENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EELi1EEEEE", !71, i64 0}
!71 = !{!"_ZTSN5boost6bimaps17container_adaptor17container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_4leftEEEEESt4lessIjENS4_9nth_layerILi2ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISE_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISE_ST_EENSR_23const_map_view_iteratorISE_ST_EENS1_7support23iterator_facade_to_baseIS16_S18_EESP_NS8_24pair_to_relation_functorISE_SQ_EENS7_7support16get_pair_functorISE_SQ_EENSY_INS1_6detail20key_to_base_identityIjSC_EENSY_INS1H_27iterator_from_base_identityINS_9iterators16reverse_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS4_15index_node_baseISQ_SV_EEEEEEEENSR_25reverse_map_view_iteratorISE_ST_EES1T_NSR_31const_reverse_map_view_iteratorISE_ST_EEEENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EELi1EEELi1EEEEE", !72, i64 0}
!72 = !{!"_ZTSN5boost6bimaps17container_adaptor6detail21data_with_functor_bagIRNS_11multi_index6detail13ordered_indexINS4_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS8_9member_at4leftEEENSC_ISD_NSE_5rightEEELb1EEEjXadL_ZNSJ_4leftEEEEESt4lessIjENS5_9nth_layerILi2ENS8_15mutant_relationISG_SI_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSQ_SQ_SQ_E12core_indicesESaISR_EEENS_3mpl6v_itemISF_NSY_7vector0ISQ_EELi0EEENS5_18ordered_unique_tagENS5_19null_augment_policyEEENSZ_INS8_7support16get_pair_functorISF_SR_EENSZ_INS9_24pair_to_relation_functorISF_SR_EENSZ_INS2_27iterator_from_base_identityINS5_19bidir_node_iteratorINS5_18ordered_index_nodeIS14_NS5_15index_node_baseISR_SW_EEEEEENSS_17map_view_iteratorISF_SU_EES1I_NSS_23const_map_view_iteratorISF_SU_EEEENSZ_INS1_7support23iterator_facade_to_baseIS1K_S1M_EENSZ_INS2_20key_to_base_identityIjSD_EENSZ_INS1C_INS_9iterators16reverse_iteratorIS1I_EENSS_25reverse_map_view_iteratorISF_SU_EES1V_NSS_31const_reverse_map_view_iteratorISF_SU_EEEENSY_6vectorISQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_EELi1EEELi1EEELi1EEELi1EEELi1EEELi1EEEEE", !22, i64 0}
!73 = !{!"_ZTSN5boost6bimaps5views8map_viewINS0_8relation9member_at5rightENS0_6detail10bimap_coreIjjN4mpl_2naES9_S9_EEEE", !74, i64 0}
!74 = !{!"_ZTSN5boost6bimaps17container_adaptor11map_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_5rightEEEEESt4lessIjENS4_9nth_layerILi1ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISG_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISG_ST_EENSR_23const_map_view_iteratorISG_ST_EENSR_25reverse_map_view_iteratorISG_ST_EENSR_31const_reverse_map_view_iteratorISG_ST_EENS1_7support23iterator_facade_to_baseIS16_S18_EESP_SP_NS8_24pair_to_relation_functorISG_SQ_EENS7_7support16get_pair_functorISG_SQ_EESP_NSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EEEE", !75, i64 0}
!75 = !{!"_ZTSN5boost6bimaps17container_adaptor37ordered_associative_container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_5rightEEEEESt4lessIjENS4_9nth_layerILi1ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISG_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISG_ST_EENSR_23const_map_view_iteratorISG_ST_EENSR_25reverse_map_view_iteratorISG_ST_EENSR_31const_reverse_map_view_iteratorISG_ST_EESC_NS1_7support23iterator_facade_to_baseIS16_S18_EESP_SP_NS8_24pair_to_relation_functorISG_SQ_EENS7_7support16get_pair_functorISG_SQ_EESP_NSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EEEE", !76, i64 0}
!76 = !{!"_ZTSN5boost6bimaps17container_adaptor29associative_container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_5rightEEEEESt4lessIjENS4_9nth_layerILi1ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISG_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISG_ST_EENSR_23const_map_view_iteratorISG_ST_EESC_NS1_7support23iterator_facade_to_baseIS16_S18_EESP_NS8_24pair_to_relation_functorISG_SQ_EENS7_7support16get_pair_functorISG_SQ_EESP_NSY_INS1_6detail27iterator_from_base_identityINS_9iterators16reverse_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS1M_IS13_NS4_15index_node_baseISQ_SV_EEEEEEEEEENSR_25reverse_map_view_iteratorISG_ST_EES1S_NSR_31const_reverse_map_view_iteratorISG_ST_EEEENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EELi1EEEEE", !77, i64 0}
!77 = !{!"_ZTSN5boost6bimaps17container_adaptor17container_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_ISC_NSD_5rightEEELb1EEEjXadL_ZNSI_5rightEEEEESt4lessIjENS4_9nth_layerILi1ENS7_15mutant_relationISF_SH_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSP_SP_SP_E12core_indicesESaISQ_EEENS_3mpl6v_itemISG_NSX_7vector0ISP_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENSR_17map_view_iteratorISG_ST_EENSR_23const_map_view_iteratorISG_ST_EENS1_7support23iterator_facade_to_baseIS16_S18_EESP_NS8_24pair_to_relation_functorISG_SQ_EENS7_7support16get_pair_functorISG_SQ_EENSY_INS1_6detail20key_to_base_identityIjSC_EENSY_INS1H_27iterator_from_base_identityINS_9iterators16reverse_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS13_NS1O_IS13_NS4_15index_node_baseISQ_SV_EEEEEEEEEENSR_25reverse_map_view_iteratorISG_ST_EES1U_NSR_31const_reverse_map_view_iteratorISG_ST_EEEENSX_6vectorISP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_SP_EELi1EEELi1EEEEE", !78, i64 0}
!78 = !{!"_ZTSN5boost6bimaps17container_adaptor6detail21data_with_functor_bagIRNS_11multi_index6detail13ordered_indexINS4_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS8_9member_at4leftEEENSC_ISD_NSE_5rightEEELb1EEEjXadL_ZNSJ_5rightEEEEESt4lessIjENS5_9nth_layerILi1ENS8_15mutant_relationISG_SI_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjjSQ_SQ_SQ_E12core_indicesESaISR_EEENS_3mpl6v_itemISH_NSY_7vector0ISQ_EELi0EEENS5_18ordered_unique_tagENS5_19null_augment_policyEEENSZ_INS8_7support16get_pair_functorISH_SR_EENSZ_INS9_24pair_to_relation_functorISH_SR_EENSZ_INS2_27iterator_from_base_identityINS5_19bidir_node_iteratorINS5_18ordered_index_nodeIS14_NS1E_IS14_NS5_15index_node_baseISR_SW_EEEEEEEENSS_17map_view_iteratorISH_SU_EES1J_NSS_23const_map_view_iteratorISH_SU_EEEENSZ_INS1_7support23iterator_facade_to_baseIS1L_S1N_EENSZ_INS2_20key_to_base_identityIjSD_EENSZ_INS1C_INS_9iterators16reverse_iteratorIS1J_EENSS_25reverse_map_view_iteratorISH_SU_EES1W_NSS_31const_reverse_map_view_iteratorISH_SU_EEEENSY_6vectorISQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_SQ_EELi1EEELi1EEELi1EEELi1EEELi1EEELi1EEEEE", !22, i64 0}
!79 = !{!"_ZTSSt6vectorISt3setImSt4lessImESaImEESaIS4_EE", !80, i64 0}
!80 = !{!"_ZTSSt12_Vector_baseISt3setImSt4lessImESaImEESaIS4_EE", !81, i64 0}
!81 = !{!"_ZTSNSt12_Vector_baseISt3setImSt4lessImESaImEESaIS4_EE12_Vector_implE", !82, i64 0}
!82 = !{!"_ZTSNSt12_Vector_baseISt3setImSt4lessImESaImEESaIS4_EE17_Vector_impl_dataE", !22, i64 0, !22, i64 8, !22, i64 16}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass