; LLVM IR from fdabrandao/vpsolver :: src/arcflow.ll (ZN7Arcflow2goESt6vectorIiSaIiEE)

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

%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.10" = type { i8 }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.36" = type { ptr }
%class.Arc = type { i32, i32, i32 }
%"struct.std::pair" = type <{ %"struct.std::_Rb_tree_const_iterator", i8, [7 x i8] }>
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%class.Arcflow = type <{ i8, [7 x i8], %"class.std::set", %class.NodeSet, %"class.std::vector.8", %"class.std::map", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.13", %"class.std::vector", i32, [4 x i8], i64, %class.Instance, i32, i32, i32, [4 x i8], %"class.std::vector.8", %"class.std::vector.23", i32, [4 x i8] }>
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<Arc, Arc, std::_Identity<Arc>, std::less<Arc>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<Arc, Arc, std::_Identity<Arc>, std::less<Arc>>::_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 }
%class.NodeSet = type { %"class.std::map", %"class.std::vector" }
%"class.std::map" = type { %"class.std::_Rb_tree.0" }
%"class.std::_Rb_tree.0" = type { %"struct.std::_Rb_tree<std::vector<int>, std::pair<const std::vector<int>, int>, std::_Select1st<std::pair<const std::vector<int>, int>>, std::less<std::vector<int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::vector<int>, std::pair<const std::vector<int>, int>, std::_Select1st<std::pair<const std::vector<int>, int>>, std::less<std::vector<int>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<Item, std::allocator<Item>>::_Vector_impl" }
%"struct.std::_Vector_base<Item, std::allocator<Item>>::_Vector_impl" = type { %"struct.std::_Vector_base<Item, std::allocator<Item>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Item, std::allocator<Item>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.Instance = type { i32, i32, i32, i32, i32, %"class.std::vector", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.13", i32, i8, i8, i8, %"class.std::vector.18", %"class.std::vector.8", %"class.std::vector.8" }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = type { %"struct.std::_Vector_base<Arc, std::allocator<Arc>>::_Vector_impl" }
%"struct.std::_Vector_base<Arc, std::allocator<Arc>>::_Vector_impl" = type { %"struct.std::_Vector_base<Arc, std::allocator<Arc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Arc, std::allocator<Arc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.37" = type <{ %"class.std::vector.8", i32, [4 x i8] }>
%class.Item = type { %"class.std::vector.8", %"class.std::vector.8", i32, i32, i32, i32, i32, i32 }

@.str = external hidden unnamed_addr constant [54 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [69 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.16 = external hidden unnamed_addr constant [9 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: nounwind
declare i32 @snprintf(ptr noundef, i64 noundef, ptr noundef, ...) #2

declare ptr @__cxa_allocate_exception(i64)

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #3

declare void @__cxa_free_exception(ptr)

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2

declare void @__cxa_throw(ptr, ptr, ptr)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7Arcflow2goESt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(604) %0, ptr noundef %1) #5 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::vector.8", align 8
  %9 = alloca %"class.std::vector.8", align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::vector.8", align 8
  %13 = alloca i32, align 4
  %14 = alloca %"class.std::allocator.10", align 1
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca %"class.std::vector.8", align 8
  %19 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %20 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.std::vector.8", align 8
  %23 = alloca %"class.std::vector.8", align 8
  %24 = alloca [256 x i8], align 16
  %25 = alloca %"class.std::vector.8", align 8
  %26 = alloca %"class.std::vector.8", align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.36", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator.36", align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca %"class.std::vector.8", align 8
  %34 = alloca ptr, align 8
  %35 = alloca %"class.std::vector.8", align 8
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %class.Arc, align 4
  %41 = alloca %"struct.std::pair", align 8
  %42 = alloca %class.Arc, align 4
  %43 = alloca %"struct.std::pair", align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  %44 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #7
  %45 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %46 = getelementptr inbounds %class.Instance, ptr %45, i32 0, i32 0
  %47 = load i32, ptr %46, align 8, !tbaa !9
  %48 = sext i32 %47 to i64
  %49 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %48) #7
  %50 = load i32, ptr %49, align 4, !tbaa !49
  store i32 %50, ptr %6, align 4, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  %51 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %52 = getelementptr inbounds %class.Instance, ptr %51, i32 0, i32 10
  %53 = load i8, ptr %52, align 4, !tbaa !50, !range !51, !noundef !52
  %54 = trunc i8 %53 to i1
  br i1 %54, label %55, label %56

55:                                               ; preds = %2
  br label %64

56:                                               ; preds = %2
  %57 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %58 = getelementptr inbounds %class.Instance, ptr %57, i32 0, i32 0
  %59 = load i32, ptr %58, align 8, !tbaa !9
  %60 = add nsw i32 %59, 1
  %61 = sext i32 %60 to i64
  %62 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %61) #7
  %63 = load i32, ptr %62, align 4, !tbaa !49
  br label %64

64:                                               ; preds = %56, %55
  %65 = phi i32 [ 0, %55 ], [ %63, %56 ]
  store i32 %65, ptr %7, align 4, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #7
  %66 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 6
  invoke void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %66)
          to label %67 unwind label %80

67:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 24, ptr %12) #7
  %68 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %69 = getelementptr inbounds %class.Instance, ptr %68, i32 0, i32 0
  %70 = load i32, ptr %69, align 8, !tbaa !9
  %71 = sext i32 %70 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  store i32 0, ptr %13, align 4, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %71, ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %72 unwind label %84

72:                                               ; preds = %67
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  store i32 0, ptr %15, align 4, !tbaa !49
  br label %73

73:                                               ; preds = %152, %72
  %74 = load i32, ptr %15, align 4, !tbaa !49
  %75 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %76 = getelementptr inbounds %class.Instance, ptr %75, i32 0, i32 1
  %77 = load i32, ptr %76, align 4, !tbaa !53
  %78 = icmp slt i32 %74, %77
  br i1 %78, label %88, label %79

79:                                               ; preds = %73
  store i32 2, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  br label %156

80:                                               ; preds = %64
  %81 = landingpad { ptr, i32 }
          cleanup
  %82 = extractvalue { ptr, i32 } %81, 0
  store ptr %82, ptr %10, align 8
  %83 = extractvalue { ptr, i32 } %81, 1
  store i32 %83, ptr %11, align 4
  br label %553

84:                                               ; preds = %67
  %85 = landingpad { ptr, i32 }
          cleanup
  %86 = extractvalue { ptr, i32 } %85, 0
  store ptr %86, ptr %10, align 8
  %87 = extractvalue { ptr, i32 } %85, 1
  store i32 %87, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %552

88:                                               ; preds = %73
  %89 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %90 = getelementptr inbounds %class.Instance, ptr %89, i32 0, i32 5
  %91 = load i32, ptr %15, align 4, !tbaa !49
  %92 = sext i32 %91 to i64
  %93 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef %92) #7
  %94 = call noundef zeroext i1 @_ZNK7Arcflow8is_validERKSt6vectorIiSaIiEES4_(ptr noundef nonnull align 8 dereferenceable(604) %44, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %93)
  br i1 %94, label %95, label %151

95:                                               ; preds = %88
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 4 dereferenceable(4) %15)
          to label %96 unwind label %104

96:                                               ; preds = %95
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  store i32 0, ptr %17, align 4, !tbaa !49
  br label %97

97:                                               ; preds = %143, %96
  %98 = load i32, ptr %17, align 4, !tbaa !49
  %99 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %100 = getelementptr inbounds %class.Instance, ptr %99, i32 0, i32 0
  %101 = load i32, ptr %100, align 8, !tbaa !9
  %102 = icmp slt i32 %98, %101
  br i1 %102, label %108, label %103

103:                                              ; preds = %97
  store i32 5, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %150

104:                                              ; preds = %95
  %105 = landingpad { ptr, i32 }
          cleanup
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %10, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %11, align 4
  br label %155

108:                                              ; preds = %97
  %109 = load i32, ptr %17, align 4, !tbaa !49
  %110 = sext i32 %109 to i64
  %111 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %110) #7
  %112 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %113 = getelementptr inbounds %class.Instance, ptr %112, i32 0, i32 5
  %114 = load i32, ptr %15, align 4, !tbaa !49
  %115 = sext i32 %114 to i64
  %116 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %113, i64 noundef %115) #7
  %117 = load i32, ptr %17, align 4, !tbaa !49
  %118 = sext i32 %117 to i64
  %119 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %116, i64 noundef %118) #7
  %120 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %111, ptr noundef nonnull align 4 dereferenceable(4) %119)
          to label %121 unwind label %146

121:                                              ; preds = %108
  %122 = load i32, ptr %120, align 4, !tbaa !49
  %123 = load i32, ptr %17, align 4, !tbaa !49
  %124 = sext i32 %123 to i64
  %125 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %124) #7
  store i32 %122, ptr %125, align 4, !tbaa !49
  %126 = load i32, ptr %17, align 4, !tbaa !49
  %127 = sext i32 %126 to i64
  %128 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %127) #7
  %129 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %130 = getelementptr inbounds %class.Instance, ptr %129, i32 0, i32 5
  %131 = load i32, ptr %15, align 4, !tbaa !49
  %132 = sext i32 %131 to i64
  %133 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %132) #7
  %134 = load i32, ptr %17, align 4, !tbaa !49
  %135 = sext i32 %134 to i64
  %136 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %133, i64 noundef %135) #7
  %137 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %128, ptr noundef nonnull align 4 dereferenceable(4) %136)
          to label %138 unwind label %146

138:                                              ; preds = %121
  %139 = load i32, ptr %137, align 4, !tbaa !49
  %140 = load i32, ptr %17, align 4, !tbaa !49
  %141 = sext i32 %140 to i64
  %142 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %141) #7
  store i32 %139, ptr %142, align 4, !tbaa !49
  br label %143

143:                                              ; preds = %138
  %144 = load i32, ptr %17, align 4, !tbaa !49
  %145 = add nsw i32 %144, 1
  store i32 %145, ptr %17, align 4, !tbaa !49
  br label %97, !llvm.loop !54

146:                                              ; preds = %121, %108
  %147 = landingpad { ptr, i32 }
          cleanup
  %148 = extractvalue { ptr, i32 } %147, 0
  store ptr %148, ptr %10, align 8
  %149 = extractvalue { ptr, i32 } %147, 1
  store i32 %149, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %155

150:                                              ; preds = %103
  br label %151

151:                                              ; preds = %150, %88
  br label %152

152:                                              ; preds = %151
  %153 = load i32, ptr %15, align 4, !tbaa !49
  %154 = add nsw i32 %153, 1
  store i32 %154, ptr %15, align 4, !tbaa !49
  br label %73, !llvm.loop !56

155:                                              ; preds = %146, %104
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  br label %551

156:                                              ; preds = %79
  %157 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  br i1 %157, label %158, label %159

158:                                              ; preds = %156
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %16, align 4
  br label %549

159:                                              ; preds = %156
  %160 = call noundef zeroext i1 @_ZNK7Arcflow7is_fullERKSt6vectorIiSaIiEES4_(ptr noundef nonnull align 8 dereferenceable(604) %44, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %12)
  br i1 %160, label %161, label %169

161:                                              ; preds = %159
  %162 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 3
  %163 = invoke noundef i32 @_ZN7NodeSet9get_indexERKSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(72) %162, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %164 unwind label %165

164:                                              ; preds = %161
  store i32 %163, ptr %3, align 4
  store i32 1, ptr %16, align 4
  br label %549

165:                                              ; preds = %169, %161
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %10, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %11, align 4
  br label %551

169:                                              ; preds = %159
  %170 = load i32, ptr %6, align 4, !tbaa !49
  %171 = load i32, ptr %7, align 4, !tbaa !49
  invoke void @_ZNK7Arcflow10lift_stateERKSt6vectorIiSaIiEERS2_ii(ptr noundef nonnull align 8 dereferenceable(604) %44, ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef %170, i32 noundef %171)
          to label %172 unwind label %165

172:                                              ; preds = %169
  br label %173

173:                                              ; preds = %172
  br label %174

174:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #7
  invoke void @_ZN7Arcflow4hashERKSt6vectorIiSaIiEE(ptr dead_on_unwind writable sret(%"class.std::vector.8") align 8 %18, ptr noundef nonnull align 8 dereferenceable(604) %44, ptr noundef nonnull align 8 dereferenceable(24) %1)
          to label %175 unwind label %188

175:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %176 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 5
  %177 = invoke ptr @_ZNSt3mapISt6vectorIiSaIiEEiSt4lessIS2_ESaISt4pairIKS2_iEEE4findERS6_(ptr noundef nonnull align 8 dereferenceable(48) %176, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %178 unwind label %192

178:                                              ; preds = %175
  %179 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %19, i32 0, i32 0
  store ptr %177, ptr %179, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %180 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 5
  %181 = call ptr @_ZNSt3mapISt6vectorIiSaIiEEiSt4lessIS2_ESaISt4pairIKS2_iEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %180) #7
  %182 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %20, i32 0, i32 0
  store ptr %181, ptr %182, align 8
  %183 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKSt6vectorIiSaIiEEiEES8_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br i1 %183, label %184, label %196

184:                                              ; preds = %178
  %185 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKSt6vectorIiSaIiEEiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  %186 = getelementptr inbounds %"struct.std::pair.37", ptr %185, i32 0, i32 1
  %187 = load i32, ptr %186, align 8, !tbaa !57
  store i32 %187, ptr %3, align 4
  store i32 1, ptr %16, align 4
  br label %546

188:                                              ; preds = %174
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %10, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %11, align 4
  br label %548

192:                                              ; preds = %175
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %10, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %11, align 4
  br label %547

196:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  store i32 -1, ptr %21, align 4, !tbaa !49
  %197 = load i32, ptr %6, align 4, !tbaa !49
  %198 = add nsw i32 %197, 1
  %199 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %200 = getelementptr inbounds %class.Instance, ptr %199, i32 0, i32 2
  %201 = load i32, ptr %200, align 8, !tbaa !59
  %202 = icmp slt i32 %198, %201
  br i1 %202, label %203, label %267

203:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(24) %1)
          to label %204 unwind label %223

204:                                              ; preds = %203
  %205 = load i32, ptr %6, align 4, !tbaa !49
  %206 = add nsw i32 %205, 1
  %207 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %208 = getelementptr inbounds %class.Instance, ptr %207, i32 0, i32 0
  %209 = load i32, ptr %208, align 8, !tbaa !9
  %210 = sext i32 %209 to i64
  %211 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %210) #7
  store i32 %206, ptr %211, align 4, !tbaa !49
  %212 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %213 = getelementptr inbounds %class.Instance, ptr %212, i32 0, i32 10
  %214 = load i8, ptr %213, align 4, !tbaa !50, !range !51, !noundef !52
  %215 = trunc i8 %214 to i1
  br i1 %215, label %227, label %216

216:                                              ; preds = %204
  %217 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %218 = getelementptr inbounds %class.Instance, ptr %217, i32 0, i32 0
  %219 = load i32, ptr %218, align 8, !tbaa !9
  %220 = add nsw i32 %219, 1
  %221 = sext i32 %220 to i64
  %222 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %221) #7
  store i32 0, ptr %222, align 4, !tbaa !49
  br label %227

223:                                              ; preds = %203
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %10, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %11, align 4
  br label %266

227:                                              ; preds = %216, %204
  invoke void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(24) %22)
          to label %228 unwind label %239

228:                                              ; preds = %227
  %229 = invoke noundef i32 @_ZN7Arcflow2goESt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(604) %44, ptr noundef %23)
          to label %230 unwind label %243

230:                                              ; preds = %228
  store i32 %229, ptr %21, align 4, !tbaa !49
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  %231 = load i32, ptr %21, align 4, !tbaa !49
  %232 = icmp ne i32 %231, -1
  br i1 %232, label %256, label %233

233:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 256, ptr %24) #7
  %234 = getelementptr inbounds [256 x i8], ptr %24, i64 0, i64 0
  %235 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %234, i64 noundef 256, ptr noundef @.str, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 312) #7
  %236 = call ptr @__cxa_allocate_exception(i64 16) #7
  %237 = getelementptr inbounds [256 x i8], ptr %24, i64 0, i64 0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %236, ptr noundef %237)
          to label %238 unwind label %247

238:                                              ; preds = %233
  invoke void @__cxa_throw(ptr %236, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #8
          to label %559 unwind label %251

239:                                              ; preds = %227
  %240 = landingpad { ptr, i32 }
          cleanup
  %241 = extractvalue { ptr, i32 } %240, 0
  store ptr %241, ptr %10, align 8
  %242 = extractvalue { ptr, i32 } %240, 1
  store i32 %242, ptr %11, align 4
  br label %265

243:                                              ; preds = %228
  %244 = landingpad { ptr, i32 }
          cleanup
  %245 = extractvalue { ptr, i32 } %244, 0
  store ptr %245, ptr %10, align 8
  %246 = extractvalue { ptr, i32 } %244, 1
  store i32 %246, ptr %11, align 4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  br label %265

247:                                              ; preds = %233
  %248 = landingpad { ptr, i32 }
          cleanup
  %249 = extractvalue { ptr, i32 } %248, 0
  store ptr %249, ptr %10, align 8
  %250 = extractvalue { ptr, i32 } %248, 1
  store i32 %250, ptr %11, align 4
  call void @__cxa_free_exception(ptr %236) #7
  br label %255

251:                                              ; preds = %238
  %252 = landingpad { ptr, i32 }
          cleanup
  %253 = extractvalue { ptr, i32 } %252, 0
  store ptr %253, ptr %10, align 8
  %254 = extractvalue { ptr, i32 } %252, 1
  store i32 %254, ptr %11, align 4
  br label %255

255:                                              ; preds = %251, %247
  call void @llvm.lifetime.end.p0(i64 256, ptr %24) #7
  br label %265

256:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 24, ptr %25) #7
  %257 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 3
  %258 = load i32, ptr %21, align 4, !tbaa !49
  invoke void @_ZNK7NodeSet9get_labelEi(ptr dead_on_unwind writable sret(%"class.std::vector.8") align 8 %25, ptr noundef nonnull align 8 dereferenceable(72) %257, i32 noundef %258)
          to label %259 unwind label %261

259:                                              ; preds = %256
  %260 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %25) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #7
  br label %267

261:                                              ; preds = %256
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %10, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #7
  br label %265

265:                                              ; preds = %261, %255, %243, %239
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  br label %266

266:                                              ; preds = %265, %223
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #7
  br label %545

267:                                              ; preds = %259, %196
  %268 = load i32, ptr %6, align 4, !tbaa !49
  %269 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %270 = getelementptr inbounds %class.Instance, ptr %269, i32 0, i32 2
  %271 = load i32, ptr %270, align 8, !tbaa !59
  %272 = icmp slt i32 %268, %271
  br i1 %272, label %273, label %533

273:                                              ; preds = %267
  %274 = load i32, ptr %7, align 4, !tbaa !49
  %275 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 8
  %276 = load i32, ptr %6, align 4, !tbaa !49
  %277 = sext i32 %276 to i64
  %278 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %275, i64 noundef %277) #7
  %279 = load i32, ptr %278, align 4, !tbaa !49
  %280 = icmp slt i32 %274, %279
  br i1 %280, label %281, label %533

281:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(24) %1)
          to label %282 unwind label %301

282:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %283 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 10
  %284 = load i32, ptr %6, align 4, !tbaa !49
  %285 = sext i32 %284 to i64
  %286 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %283, i64 noundef %285) #7
  store ptr %286, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %287 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 9
  %288 = load i32, ptr %6, align 4, !tbaa !49
  %289 = sext i32 %288 to i64
  %290 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNSt6vectorI4ItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %287, i64 noundef %289) #7
  %291 = getelementptr inbounds %class.Item, ptr %290, i32 0, i32 1
  store ptr %291, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %292 = load ptr, ptr %28, align 8, !tbaa !5
  %293 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %292) #7
  %294 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.36", ptr %29, i32 0, i32 0
  store ptr %293, ptr %294, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  %295 = load ptr, ptr %28, align 8, !tbaa !5
  %296 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %295) #7
  %297 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.36", ptr %30, i32 0, i32 0
  store ptr %296, ptr %297, align 8
  br label %298

298:                                              ; preds = %342, %282
  %299 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  br i1 %299, label %305, label %300

300:                                              ; preds = %298
  store i32 8, ptr %16, align 4
  br label %344

301:                                              ; preds = %281
  %302 = landingpad { ptr, i32 }
          cleanup
  %303 = extractvalue { ptr, i32 } %302, 0
  store ptr %303, ptr %10, align 8
  %304 = extractvalue { ptr, i32 } %302, 1
  store i32 %304, ptr %11, align 4
  br label %532

305:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  %306 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  %307 = load i32, ptr %306, align 4, !tbaa !49
  store i32 %307, ptr %31, align 4, !tbaa !49
  %308 = load ptr, ptr %27, align 8, !tbaa !5
  %309 = load i32, ptr %31, align 4, !tbaa !49
  %310 = sext i32 %309 to i64
  %311 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %308, i64 noundef %310) #7
  %312 = load i32, ptr %311, align 4, !tbaa !49
  %313 = load i32, ptr %31, align 4, !tbaa !49
  %314 = sext i32 %313 to i64
  %315 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %314) #7
  %316 = load i32, ptr %315, align 4, !tbaa !49
  %317 = add nsw i32 %316, %312
  store i32 %317, ptr %315, align 4, !tbaa !49
  %318 = load i32, ptr %31, align 4, !tbaa !49
  %319 = sext i32 %318 to i64
  %320 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %319) #7
  %321 = load i32, ptr %320, align 4, !tbaa !49
  %322 = load i32, ptr %31, align 4, !tbaa !49
  %323 = sext i32 %322 to i64
  %324 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %323) #7
  %325 = load i32, ptr %324, align 4, !tbaa !49
  %326 = icmp sgt i32 %321, %325
  br i1 %326, label %327, label %338

327:                                              ; preds = %305
  %328 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 3
  %329 = invoke noundef i32 @_ZN7NodeSet9get_indexERKSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(72) %328, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %330 unwind label %334

330:                                              ; preds = %327
  %331 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 5
  %332 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapISt6vectorIiSaIiEEiSt4lessIS2_ESaISt4pairIKS2_iEEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %331, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %333 unwind label %334

333:                                              ; preds = %330
  store i32 %329, ptr %332, align 4, !tbaa !49
  store i32 %329, ptr %3, align 4
  store i32 1, ptr %16, align 4
  br label %339

334:                                              ; preds = %330, %327
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %10, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  br label %531

338:                                              ; preds = %305
  store i32 0, ptr %16, align 4
  br label %339

339:                                              ; preds = %338, %333
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  %340 = load i32, ptr %16, align 4
  switch i32 %340, label %344 [
    i32 0, label %341
  ]

341:                                              ; preds = %339
  br label %342

342:                                              ; preds = %341
  %343 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  br label %298

344:                                              ; preds = %339, %300
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  %345 = load i32, ptr %16, align 4
  switch i32 %345, label %527 [
    i32 8, label %346
  ]

346:                                              ; preds = %344
  %347 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %348 = getelementptr inbounds %class.Instance, ptr %347, i32 0, i32 10
  %349 = load i8, ptr %348, align 4, !tbaa !50, !range !51, !noundef !52
  %350 = trunc i8 %349 to i1
  br i1 %350, label %351, label %359

351:                                              ; preds = %346
  %352 = load i32, ptr %6, align 4, !tbaa !49
  %353 = add nsw i32 %352, 1
  %354 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %355 = getelementptr inbounds %class.Instance, ptr %354, i32 0, i32 0
  %356 = load i32, ptr %355, align 8, !tbaa !9
  %357 = sext i32 %356 to i64
  %358 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %357) #7
  store i32 %353, ptr %358, align 4, !tbaa !49
  br label %398

359:                                              ; preds = %346
  %360 = load i32, ptr %7, align 4, !tbaa !49
  %361 = add nsw i32 %360, 1
  %362 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 8
  %363 = load i32, ptr %6, align 4, !tbaa !49
  %364 = sext i32 %363 to i64
  %365 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %362, i64 noundef %364) #7
  %366 = load i32, ptr %365, align 4, !tbaa !49
  %367 = icmp slt i32 %361, %366
  br i1 %367, label %368, label %383

368:                                              ; preds = %359
  %369 = load i32, ptr %6, align 4, !tbaa !49
  %370 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %371 = getelementptr inbounds %class.Instance, ptr %370, i32 0, i32 0
  %372 = load i32, ptr %371, align 8, !tbaa !9
  %373 = sext i32 %372 to i64
  %374 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %373) #7
  store i32 %369, ptr %374, align 4, !tbaa !49
  %375 = load i32, ptr %7, align 4, !tbaa !49
  %376 = add nsw i32 %375, 1
  %377 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %378 = getelementptr inbounds %class.Instance, ptr %377, i32 0, i32 0
  %379 = load i32, ptr %378, align 8, !tbaa !9
  %380 = add nsw i32 %379, 1
  %381 = sext i32 %380 to i64
  %382 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %381) #7
  store i32 %376, ptr %382, align 4, !tbaa !49
  br label %397

383:                                              ; preds = %359
  %384 = load i32, ptr %6, align 4, !tbaa !49
  %385 = add nsw i32 %384, 1
  %386 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %387 = getelementptr inbounds %class.Instance, ptr %386, i32 0, i32 0
  %388 = load i32, ptr %387, align 8, !tbaa !9
  %389 = sext i32 %388 to i64
  %390 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %389) #7
  store i32 %385, ptr %390, align 4, !tbaa !49
  %391 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %392 = getelementptr inbounds %class.Instance, ptr %391, i32 0, i32 0
  %393 = load i32, ptr %392, align 8, !tbaa !9
  %394 = add nsw i32 %393, 1
  %395 = sext i32 %394 to i64
  %396 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %395) #7
  store i32 0, ptr %396, align 4, !tbaa !49
  br label %397

397:                                              ; preds = %383, %368
  br label %398

398:                                              ; preds = %397, %351
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %399 unwind label %415

399:                                              ; preds = %398
  %400 = invoke noundef i32 @_ZN7Arcflow2goESt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(604) %44, ptr noundef %33)
          to label %401 unwind label %419

401:                                              ; preds = %399
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  store i32 %400, ptr %32, align 4, !tbaa !49
  %402 = load i32, ptr %32, align 4, !tbaa !49
  %403 = icmp ne i32 %402, -1
  br i1 %403, label %404, label %526

404:                                              ; preds = %401
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #7
  %405 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 3
  %406 = load i32, ptr %32, align 4, !tbaa !49
  invoke void @_ZNK7NodeSet9get_labelEi(ptr dead_on_unwind writable sret(%"class.std::vector.8") align 8 %35, ptr noundef nonnull align 8 dereferenceable(72) %405, i32 noundef %406)
          to label %407 unwind label %423

407:                                              ; preds = %404
  store ptr %35, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #7
  store i32 0, ptr %36, align 4, !tbaa !49
  br label %408

408:                                              ; preds = %448, %407
  %409 = load i32, ptr %36, align 4, !tbaa !49
  %410 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %411 = getelementptr inbounds %class.Instance, ptr %410, i32 0, i32 0
  %412 = load i32, ptr %411, align 8, !tbaa !9
  %413 = icmp slt i32 %409, %412
  br i1 %413, label %427, label %414

414:                                              ; preds = %408
  store i32 10, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  br label %455

415:                                              ; preds = %398
  %416 = landingpad { ptr, i32 }
          cleanup
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %10, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %11, align 4
  br label %530

419:                                              ; preds = %399
  %420 = landingpad { ptr, i32 }
          cleanup
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %10, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %11, align 4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  br label %530

423:                                              ; preds = %404
  %424 = landingpad { ptr, i32 }
          cleanup
  %425 = extractvalue { ptr, i32 } %424, 0
  store ptr %425, ptr %10, align 8
  %426 = extractvalue { ptr, i32 } %424, 1
  store i32 %426, ptr %11, align 4
  br label %525

427:                                              ; preds = %408
  %428 = load i32, ptr %36, align 4, !tbaa !49
  %429 = sext i32 %428 to i64
  %430 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %429) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  %431 = load ptr, ptr %34, align 8, !tbaa !5
  %432 = load i32, ptr %36, align 4, !tbaa !49
  %433 = sext i32 %432 to i64
  %434 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %431, i64 noundef %433) #7
  %435 = load i32, ptr %434, align 4, !tbaa !49
  %436 = load ptr, ptr %27, align 8, !tbaa !5
  %437 = load i32, ptr %36, align 4, !tbaa !49
  %438 = sext i32 %437 to i64
  %439 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %436, i64 noundef %438) #7
  %440 = load i32, ptr %439, align 4, !tbaa !49
  %441 = sub nsw i32 %435, %440
  store i32 %441, ptr %37, align 4, !tbaa !49
  %442 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %430, ptr noundef nonnull align 4 dereferenceable(4) %37)
          to label %443 unwind label %451

443:                                              ; preds = %427
  %444 = load i32, ptr %442, align 4, !tbaa !49
  %445 = load i32, ptr %36, align 4, !tbaa !49
  %446 = sext i32 %445 to i64
  %447 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %446) #7
  store i32 %444, ptr %447, align 4, !tbaa !49
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br label %448

448:                                              ; preds = %443
  %449 = load i32, ptr %36, align 4, !tbaa !49
  %450 = add nsw i32 %449, 1
  store i32 %450, ptr %36, align 4, !tbaa !49
  br label %408, !llvm.loop !60

451:                                              ; preds = %427
  %452 = landingpad { ptr, i32 }
          cleanup
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %10, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  br label %524

455:                                              ; preds = %414
  %456 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %457 = getelementptr inbounds %class.Instance, ptr %456, i32 0, i32 10
  %458 = load i8, ptr %457, align 4, !tbaa !50, !range !51, !noundef !52
  %459 = trunc i8 %458 to i1
  br i1 %459, label %460, label %480

460:                                              ; preds = %455
  %461 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %462 = getelementptr inbounds %class.Instance, ptr %461, i32 0, i32 0
  %463 = load i32, ptr %462, align 8, !tbaa !9
  %464 = sext i32 %463 to i64
  %465 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %464) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  %466 = load i32, ptr %6, align 4, !tbaa !49
  %467 = add nsw i32 %466, 1
  store i32 %467, ptr %38, align 4, !tbaa !49
  %468 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %465, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %469 unwind label %476

469:                                              ; preds = %460
  %470 = load i32, ptr %468, align 4, !tbaa !49
  %471 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 14
  %472 = getelementptr inbounds %class.Instance, ptr %471, i32 0, i32 0
  %473 = load i32, ptr %472, align 8, !tbaa !9
  %474 = sext i32 %473 to i64
  %475 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %474) #7
  store i32 %470, ptr %475, align 4, !tbaa !49
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %480

476:                                              ; preds = %460
  %477 = landingpad { ptr, i32 }
          cleanup
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %10, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %524

480:                                              ; preds = %469, %455
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  %481 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 3
  %482 = invoke noundef i32 @_ZN7NodeSet9get_indexERKSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(72) %481, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %483 unwind label %510

483:                                              ; preds = %480
  store i32 %482, ptr %39, align 4, !tbaa !49
  %484 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 12, ptr %40) #7
  %485 = load i32, ptr %6, align 4, !tbaa !49
  invoke void @_ZN3ArcC2ERKiS1_i(ptr noundef nonnull align 4 dereferenceable(12) %40, ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull align 4 dereferenceable(4) %32, i32 noundef %485)
          to label %486 unwind label %514

486:                                              ; preds = %483
  %487 = invoke { ptr, i8 } @_ZNSt3setI3ArcSt4lessIS0_ESaIS0_EE6insertEOS0_(ptr noundef nonnull align 8 dereferenceable(48) %484, ptr noundef nonnull align 4 dereferenceable(12) %40)
          to label %488 unwind label %514

488:                                              ; preds = %486
  %489 = getelementptr inbounds { ptr, i8 }, ptr %41, i32 0, i32 0
  %490 = extractvalue { ptr, i8 } %487, 0
  store ptr %490, ptr %489, align 8
  %491 = getelementptr inbounds { ptr, i8 }, ptr %41, i32 0, i32 1
  %492 = extractvalue { ptr, i8 } %487, 1
  store i8 %492, ptr %491, align 8
  call void @llvm.lifetime.end.p0(i64 12, ptr %40) #7
  %493 = load i32, ptr %21, align 4, !tbaa !49
  %494 = icmp ne i32 %493, -1
  br i1 %494, label %495, label %522

495:                                              ; preds = %488
  %496 = load i32, ptr %39, align 4, !tbaa !49
  %497 = load i32, ptr %21, align 4, !tbaa !49
  %498 = icmp ne i32 %496, %497
  br i1 %498, label %499, label %522

499:                                              ; preds = %495
  %500 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 12, ptr %42) #7
  %501 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 21
  %502 = load i32, ptr %501, align 8, !tbaa !61
  invoke void @_ZN3ArcC2ERKiS1_i(ptr noundef nonnull align 4 dereferenceable(12) %42, ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull align 4 dereferenceable(4) %21, i32 noundef %502)
          to label %503 unwind label %518

503:                                              ; preds = %499
  %504 = invoke { ptr, i8 } @_ZNSt3setI3ArcSt4lessIS0_ESaIS0_EE6insertEOS0_(ptr noundef nonnull align 8 dereferenceable(48) %500, ptr noundef nonnull align 4 dereferenceable(12) %42)
          to label %505 unwind label %518

505:                                              ; preds = %503
  %506 = getelementptr inbounds { ptr, i8 }, ptr %43, i32 0, i32 0
  %507 = extractvalue { ptr, i8 } %504, 0
  store ptr %507, ptr %506, align 8
  %508 = getelementptr inbounds { ptr, i8 }, ptr %43, i32 0, i32 1
  %509 = extractvalue { ptr, i8 } %504, 1
  store i8 %509, ptr %508, align 8
  call void @llvm.lifetime.end.p0(i64 12, ptr %42) #7
  br label %522

510:                                              ; preds = %480
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %10, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %11, align 4
  br label %523

514:                                              ; preds = %486, %483
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %10, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 12, ptr %40) #7
  br label %523

518:                                              ; preds = %503, %499
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %10, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 12, ptr %42) #7
  br label %523

522:                                              ; preds = %505, %495, %488
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %526

523:                                              ; preds = %518, %514, %510
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %524

524:                                              ; preds = %523, %476, %451
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #7
  br label %525

525:                                              ; preds = %524, %423
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %530

526:                                              ; preds = %522, %401
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  store i32 0, ptr %16, align 4
  br label %527

527:                                              ; preds = %526, %344
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #7
  %528 = load i32, ptr %16, align 4
  switch i32 %528, label %544 [
    i32 0, label %529
  ]

529:                                              ; preds = %527
  br label %533

530:                                              ; preds = %525, %419, %415
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  br label %531

531:                                              ; preds = %530, %334
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  br label %532

532:                                              ; preds = %531, %301
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #7
  br label %545

533:                                              ; preds = %529, %273, %267
  %534 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 3
  %535 = invoke noundef i32 @_ZN7NodeSet9get_indexERKSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(72) %534, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %536 unwind label %540

536:                                              ; preds = %533
  %537 = getelementptr inbounds %class.Arcflow, ptr %44, i32 0, i32 5
  %538 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapISt6vectorIiSaIiEEiSt4lessIS2_ESaISt4pairIKS2_iEEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %537, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %539 unwind label %540

539:                                              ; preds = %536
  store i32 %535, ptr %538, align 4, !tbaa !49
  store i32 %535, ptr %3, align 4
  store i32 1, ptr %16, align 4
  br label %544

540:                                              ; preds = %536, %533
  %541 = landingpad { ptr, i32 }
          cleanup
  %542 = extractvalue { ptr, i32 } %541, 0
  store ptr %542, ptr %10, align 8
  %543 = extractvalue { ptr, i32 } %541, 1
  store i32 %543, ptr %11, align 4
  br label %545

544:                                              ; preds = %539, %527
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %546

545:                                              ; preds = %540, %532, %266
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %547

546:                                              ; preds = %544, %184
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #7
  br label %549

547:                                              ; preds = %545, %192
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  br label %548

548:                                              ; preds = %547, %188
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #7
  br label %551

549:                                              ; preds = %546, %164, %158
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  %550 = load i32, ptr %3, align 4
  ret i32 %550

551:                                              ; preds = %548, %165, %155
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  br label %552

552:                                              ; preds = %551, %84
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  br label %553

553:                                              ; preds = %552, %80
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  br label %554

554:                                              ; preds = %553
  %555 = load ptr, ptr %10, align 8
  %556 = load i32, ptr %11, align 4
  %557 = insertvalue { ptr, i32 } poison, ptr %555, 0
  %558 = insertvalue { ptr, i32 } %557, i32 %556, 1
  resume { ptr, i32 } %558

559:                                              ; preds = %238
  unreachable
}

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

declare noundef i32 @_ZN7NodeSet9get_indexERKSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(24)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7Arcflow4hashERKSt6vectorIiSaIiEE(ptr dead_on_unwind noalias writable sret(%"class.std::vector.8") align 8, ptr noundef nonnull align 8 dereferenceable(604), ptr noundef nonnull align 8 dereferenceable(24)) #6 align 2

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

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

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

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

declare void @_ZNK7NodeSet9get_labelEi(ptr dead_on_unwind writable sret(%"class.std::vector.8") align 8, ptr noundef nonnull align 8 dereferenceable(72), i32 noundef) #3

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

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

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

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

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

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

!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, !39, i64 336}
!10 = !{!"_ZTS7Arcflow", !11, i64 0, !12, i64 8, !21, i64 56, !31, i64 128, !22, i64 152, !31, i64 200, !31, i64 224, !31, i64 248, !35, i64 272, !27, i64 296, !39, i64 320, !20, i64 328, !40, i64 336, !39, i64 536, !39, i64 540, !39, i64 544, !31, i64 552, !45, i64 576, !39, i64 600}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"_ZTSSt3setI3ArcSt4lessIS0_ESaIS0_EE", !13, i64 0}
!13 = !{!"_ZTSSt8_Rb_treeI3ArcS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE", !14, i64 0}
!14 = !{!"_ZTSNSt8_Rb_treeI3ArcS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EEE", !15, i64 0, !17, i64 8}
!15 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessI3ArcEE", !16, i64 0}
!16 = !{!"_ZTSSt4lessI3ArcE"}
!17 = !{!"_ZTSSt15_Rb_tree_header", !18, i64 0, !20, i64 32}
!18 = !{!"_ZTSSt18_Rb_tree_node_base", !19, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!19 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!20 = !{!"long", !7, i64 0}
!21 = !{!"_ZTS7NodeSet", !22, i64 0, !27, i64 48}
!22 = !{!"_ZTSSt3mapISt6vectorIiSaIiEEiSt4lessIS2_ESaISt4pairIKS2_iEEE", !23, i64 0}
!23 = !{!"_ZTSSt8_Rb_treeISt6vectorIiSaIiEESt4pairIKS2_iESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE", !24, i64 0}
!24 = !{!"_ZTSNSt8_Rb_treeISt6vectorIiSaIiEESt4pairIKS2_iESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !25, i64 0, !17, i64 8}
!25 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt6vectorIiSaIiEEEE", !26, i64 0}
!26 = !{!"_ZTSSt4lessISt6vectorIiSaIiEEE"}
!27 = !{!"_ZTSSt6vectorIS_IiSaIiEESaIS1_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!31 = !{!"_ZTSSt6vectorIiSaIiEE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!35 = !{!"_ZTSSt6vectorI4ItemSaIS0_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseI4ItemSaIS0_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseI4ItemSaIS0_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseI4ItemSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!39 = !{!"int", !7, i64 0}
!40 = !{!"_ZTS8Instance", !39, i64 0, !39, i64 4, !39, i64 8, !39, i64 12, !39, i64 16, !27, i64 24, !31, i64 48, !31, i64 72, !35, i64 96, !39, i64 120, !11, i64 124, !11, i64 125, !7, i64 126, !41, i64 128, !31, i64 152, !31, i64 176}
!41 = !{!"_ZTSSt6vectorIcSaIcEE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!45 = !{!"_ZTSSt6vectorI3ArcSaIS0_EE", !46, i64 0}
!46 = !{!"_ZTSSt12_Vector_baseI3ArcSaIS0_EE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseI3ArcSaIS0_EE12_Vector_implE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseI3ArcSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!49 = !{!39, !39, i64 0}
!50 = !{!10, !11, i64 460}
!51 = !{i8 0, i8 2}
!52 = !{}
!53 = !{!10, !39, i64 340}
!54 = distinct !{!54, !55}
!55 = !{!"llvm.loop.mustprogress"}
!56 = distinct !{!56, !55}
!57 = !{!58, !39, i64 24}
!58 = !{!"_ZTSSt4pairIKSt6vectorIiSaIiEEiE", !31, i64 0, !39, i64 24}
!59 = !{!10, !39, i64 344}
!60 = distinct !{!60, !55}
!61 = !{!10, !39, i64 600}


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

%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.10" = type { i8 }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.36" = type { ptr }
%class.Arc = type { i32, i32, i32 }

@.str = external hidden unnamed_addr constant [54 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [69 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.16 = external hidden unnamed_addr constant [9 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: nofree nounwind
declare noundef i32 @snprintf(ptr noalias nocapture noundef writeonly, i64 noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #2

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #3

declare void @__cxa_free_exception(ptr) local_unnamed_addr

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7Arcflow2goESt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(604) %0, ptr noundef nonnull %1) local_unnamed_addr #6 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::vector.8", align 8
  %4 = alloca %"class.std::vector.8", align 8
  %5 = alloca %"class.std::vector.8", align 8
  %6 = alloca i32, align 4
  %7 = alloca %"class.std::allocator.10", align 1
  %8 = alloca i32, align 4
  %9 = alloca %"class.std::vector.8", align 8
  %10 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %11 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::vector.8", align 8
  %14 = alloca %"class.std::vector.8", align 8
  %15 = alloca [256 x i8], align 16
  %16 = alloca %"class.std::vector.8", align 8
  %17 = alloca %"class.std::vector.8", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.36", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.36", align 8
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::vector.8", align 8
  %22 = alloca %"class.std::vector.8", align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %class.Arc, align 4
  %27 = alloca %class.Arc, align 4
  %28 = getelementptr inbounds i8, ptr %0, i64 336
  %29 = load i32, ptr %28, align 8, !tbaa !5
  %30 = sext i32 %29 to i64
  %31 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %30) #8
  %32 = load i32, ptr %31, align 4, !tbaa !48
  %33 = getelementptr inbounds i8, ptr %0, i64 460
  %34 = load i8, ptr %33, align 4, !tbaa !49, !range !50, !noundef !51
  %35 = trunc nuw i8 %34 to i1
  br i1 %35, label %42, label %36

36:                                               ; preds = %2
  %37 = load i32, ptr %28, align 8, !tbaa !5
  %38 = add nsw i32 %37, 1
  %39 = sext i32 %38 to i64
  %40 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %39) #8
  %41 = load i32, ptr %40, align 4, !tbaa !48
  br label %42

42:                                               ; preds = %2, %36
  %43 = phi i32 [ %41, %36 ], [ 0, %2 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #8
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #8
  %44 = getelementptr inbounds i8, ptr %0, i64 200
  invoke void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %44)
          to label %45 unwind label %54

45:                                               ; preds = %42
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #8
  %46 = load i32, ptr %28, align 8, !tbaa !5
  %47 = sext i32 %46 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #8
  store i32 0, ptr %6, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #8
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %47, ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %48 unwind label %56

48:                                               ; preds = %45
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #8
  %49 = getelementptr inbounds i8, ptr %0, i64 340
  store i32 0, ptr %8, align 4, !tbaa !48
  %50 = load i32, ptr %49, align 4, !tbaa !52
  %51 = icmp sgt i32 %50, 0
  br i1 %51, label %.lr.ph114, label %._crit_edge

.lr.ph114:                                        ; preds = %48
  %52 = getelementptr inbounds i8, ptr %0, i64 360
  br label %58

._crit_edge:                                      ; preds = %.loopexit, %48
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #8
  %53 = call noundef zeroext i1 @_ZNKSt6vectorIiSaIiEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #8
  br i1 %53, label %293, label %90

54:                                               ; preds = %42
  %55 = landingpad { ptr, i32 }
          cleanup
  br label %296

56:                                               ; preds = %45
  %57 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #8
  br label %295

58:                                               ; preds = %.lr.ph114, %.loopexit
  %storemerge113 = phi i32 [ 0, %.lr.ph114 ], [ %87, %.loopexit ]
  %59 = sext i32 %storemerge113 to i64
  %60 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %52, i64 noundef %59) #8
  %61 = call noundef zeroext i1 @_ZNK7Arcflow8is_validERKSt6vectorIiSaIiEES4_(ptr noundef nonnull align 8 dereferenceable(604) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %60)
  br i1 %61, label %62, label %.loopexit

62:                                               ; preds = %58
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %.preheader109 unwind label %65

.preheader109:                                    ; preds = %62
  %63 = load i32, ptr %28, align 8, !tbaa !5
  %64 = icmp sgt i32 %63, 0
  br i1 %64, label %.lr.ph, label %.loopexit

65:                                               ; preds = %62
  %66 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #8
  br label %294

.lr.ph:                                           ; preds = %.preheader109, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %.preheader109 ]
  %67 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %indvars.iv) #8
  %68 = load i32, ptr %8, align 4, !tbaa !48
  %69 = sext i32 %68 to i64
  %70 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %52, i64 noundef %69) #8
  %71 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %70, i64 noundef %indvars.iv) #8
  %72 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %67, ptr noundef nonnull align 4 dereferenceable(4) %71)
  %73 = load i32, ptr %72, align 4, !tbaa !48
  %74 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %indvars.iv) #8
  store i32 %73, ptr %74, align 4, !tbaa !48
  %75 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv) #8
  %76 = load i32, ptr %8, align 4, !tbaa !48
  %77 = sext i32 %76 to i64
  %78 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %52, i64 noundef %77) #8
  %79 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef %indvars.iv) #8
  %80 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %75, ptr noundef nonnull align 4 dereferenceable(4) %79)
  %81 = load i32, ptr %80, align 4, !tbaa !48
  %82 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv) #8
  store i32 %81, ptr %82, align 4, !tbaa !48
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %83 = load i32, ptr %28, align 8, !tbaa !5
  %84 = sext i32 %83 to i64
  %85 = icmp slt i64 %indvars.iv.next, %84
  br i1 %85, label %.lr.ph, label %.loopexit, !llvm.loop !53

.loopexit:                                        ; preds = %.lr.ph, %.preheader109, %58
  %86 = load i32, ptr %8, align 4, !tbaa !48
  %87 = add nsw i32 %86, 1
  store i32 %87, ptr %8, align 4, !tbaa !48
  %88 = load i32, ptr %49, align 4, !tbaa !52
  %89 = icmp slt i32 %87, %88
  br i1 %89, label %58, label %._crit_edge, !llvm.loop !55

90:                                               ; preds = %._crit_edge
  %91 = call noundef zeroext i1 @_ZNK7Arcflow7is_fullERKSt6vectorIiSaIiEES4_(ptr noundef nonnull align 8 dereferenceable(604) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %5)
  br i1 %91, label %92, label %97

92:                                               ; preds = %90
  %93 = getelementptr inbounds i8, ptr %0, i64 56
  %94 = invoke noundef i32 @_ZN7NodeSet9get_indexERKSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(72) %93, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %293 unwind label %95

95:                                               ; preds = %97, %92
  %96 = landingpad { ptr, i32 }
          cleanup
  br label %294

97:                                               ; preds = %90
  invoke void @_ZNK7Arcflow10lift_stateERKSt6vectorIiSaIiEERS2_ii(ptr noundef nonnull align 8 dereferenceable(604) %0, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef %32, i32 noundef %43)
          to label %98 unwind label %95

98:                                               ; preds = %97
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #8
  invoke void @_ZN7Arcflow4hashERKSt6vectorIiSaIiEE(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.8") align 8 %9, ptr noundef nonnull align 8 dereferenceable(604) %0, ptr noundef nonnull align 8 dereferenceable(24) %1)
          to label %99 unwind label %109

99:                                               ; preds = %98
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #8
  %100 = getelementptr inbounds i8, ptr %0, i64 152
  %101 = invoke ptr @_ZNSt3mapISt6vectorIiSaIiEEiSt4lessIS2_ESaISt4pairIKS2_iEEE4findERS6_(ptr noundef nonnull align 8 dereferenceable(48) %100, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %102 unwind label %111

102:                                              ; preds = %99
  store ptr %101, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #8
  %103 = call ptr @_ZNSt3mapISt6vectorIiSaIiEEiSt4lessIS2_ESaISt4pairIKS2_iEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %100) #8
  store ptr %103, ptr %11, align 8
  %104 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKSt6vectorIiSaIiEEiEES8_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  br i1 %104, label %105, label %113

105:                                              ; preds = %102
  %106 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKSt6vectorIiSaIiEEiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #8
  %107 = getelementptr inbounds i8, ptr %106, i64 24
  %108 = load i32, ptr %107, align 8, !tbaa !56
  br label %290

109:                                              ; preds = %98
  %110 = landingpad { ptr, i32 }
          cleanup
  br label %292

111:                                              ; preds = %99
  %112 = landingpad { ptr, i32 }
          cleanup
  br label %291

113:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #8
  store i32 -1, ptr %12, align 4, !tbaa !48
  %114 = add nsw i32 %32, 1
  %115 = getelementptr inbounds i8, ptr %0, i64 344
  %116 = load i32, ptr %115, align 8, !tbaa !58
  %117 = icmp slt i32 %114, %116
  br i1 %117, label %118, label %157

118:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #8
  invoke void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(24) %1)
          to label %119 unwind label %130

119:                                              ; preds = %118
  %120 = load i32, ptr %28, align 8, !tbaa !5
  %121 = sext i32 %120 to i64
  %122 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %121) #8
  store i32 %114, ptr %122, align 4, !tbaa !48
  %123 = load i8, ptr %33, align 4, !tbaa !49, !range !50, !noundef !51
  %124 = trunc nuw i8 %123 to i1
  br i1 %124, label %132, label %125

125:                                              ; preds = %119
  %126 = load i32, ptr %28, align 8, !tbaa !5
  %127 = add nsw i32 %126, 1
  %128 = sext i32 %127 to i64
  %129 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %128) #8
  store i32 0, ptr %129, align 4, !tbaa !48
  br label %132

130:                                              ; preds = %118
  %131 = landingpad { ptr, i32 }
          cleanup
  br label %156

132:                                              ; preds = %125, %119
  invoke void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(24) %13)
          to label %133 unwind label %140

133:                                              ; preds = %132
  %134 = invoke noundef i32 @_ZN7Arcflow2goESt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(604) %0, ptr noundef nonnull %14)
          to label %135 unwind label %142

135:                                              ; preds = %133
  store i32 %134, ptr %12, align 4, !tbaa !48
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  %.not = icmp eq i32 %134, -1
  br i1 %.not, label %136, label %149

136:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %15) #8
  %137 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %15, i64 noundef 256, ptr noundef nonnull @.str, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.2, i32 noundef 312) #8
  %138 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef nonnull %15)
          to label %139 unwind label %144

139:                                              ; preds = %136
  invoke void @__cxa_throw(ptr nonnull %138, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %297 unwind label %146

140:                                              ; preds = %132
  %141 = landingpad { ptr, i32 }
          cleanup
  br label %155

142:                                              ; preds = %133
  %143 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  br label %155

144:                                              ; preds = %136
  %145 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %138) #8
  br label %148

146:                                              ; preds = %139
  %147 = landingpad { ptr, i32 }
          cleanup
  br label %148

148:                                              ; preds = %146, %144
  %.pn = phi { ptr, i32 } [ %147, %146 ], [ %145, %144 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %15) #8
  br label %155

149:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #8
  %150 = getelementptr inbounds i8, ptr %0, i64 56
  invoke void @_ZNK7NodeSet9get_labelEi(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.8") align 8 %16, ptr noundef nonnull align 8 dereferenceable(72) %150, i32 noundef %134)
          to label %151 unwind label %153

151:                                              ; preds = %149
  %152 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %16) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #8
  %.pre = load i32, ptr %115, align 8, !tbaa !58
  br label %157

153:                                              ; preds = %149
  %154 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #8
  br label %155

155:                                              ; preds = %153, %148, %142, %140
  %.pn83 = phi { ptr, i32 } [ %154, %153 ], [ %.pn, %148 ], [ %143, %142 ], [ %141, %140 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #8
  br label %156

156:                                              ; preds = %155, %130
  %.pn83.pn = phi { ptr, i32 } [ %.pn83, %155 ], [ %131, %130 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #8
  br label %289

157:                                              ; preds = %151, %113
  %158 = phi i32 [ %134, %151 ], [ -1, %113 ]
  %159 = phi i32 [ %.pre, %151 ], [ %116, %113 ]
  %160 = icmp slt i32 %32, %159
  br i1 %160, label %161, label %280

161:                                              ; preds = %157
  %162 = getelementptr inbounds i8, ptr %0, i64 248
  %163 = sext i32 %32 to i64
  %164 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef %163) #8
  %165 = load i32, ptr %164, align 4, !tbaa !48
  %166 = icmp slt i32 %43, %165
  br i1 %166, label %167, label %280

167:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #8
  invoke void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 8 dereferenceable(24) %1)
          to label %168 unwind label %177

168:                                              ; preds = %167
  %169 = getelementptr inbounds i8, ptr %0, i64 296
  %170 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %169, i64 noundef %163) #8
  %171 = getelementptr inbounds i8, ptr %0, i64 272
  %172 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNSt6vectorI4ItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %171, i64 noundef %163) #8
  %173 = getelementptr inbounds i8, ptr %172, i64 24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #8
  %174 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %173) #8
  store ptr %174, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #8
  %175 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %173) #8
  store ptr %175, ptr %19, align 8
  %176 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #8
  br i1 %176, label %.lr.ph116, label %._crit_edge117

177:                                              ; preds = %167
  %178 = landingpad { ptr, i32 }
          cleanup
  br label %279

.lr.ph116:                                        ; preds = %168, %198
  %179 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  %180 = load i32, ptr %179, align 4, !tbaa !48
  %181 = sext i32 %180 to i64
  %182 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef %181) #8
  %183 = load i32, ptr %182, align 4, !tbaa !48
  %184 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %181) #8
  %185 = load i32, ptr %184, align 4, !tbaa !48
  %186 = add nsw i32 %185, %183
  store i32 %186, ptr %184, align 4, !tbaa !48
  %187 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %181) #8
  %188 = load i32, ptr %187, align 4, !tbaa !48
  %189 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %181) #8
  %190 = load i32, ptr %189, align 4, !tbaa !48
  %.not86 = icmp sgt i32 %188, %190
  br i1 %.not86, label %191, label %198

191:                                              ; preds = %.lr.ph116
  %192 = getelementptr inbounds i8, ptr %0, i64 56
  %193 = invoke noundef i32 @_ZN7NodeSet9get_indexERKSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(72) %192, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %194 unwind label %196

194:                                              ; preds = %191
  %195 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapISt6vectorIiSaIiEEiSt4lessIS2_ESaISt4pairIKS2_iEEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %100, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %.critedge unwind label %196

196:                                              ; preds = %194, %191
  %197 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  br label %278

198:                                              ; preds = %.lr.ph116
  %199 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  %200 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #8
  br i1 %200, label %.lr.ph116, label %._crit_edge117

._crit_edge117:                                   ; preds = %198, %168
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  %201 = load i8, ptr %33, align 4, !tbaa !49, !range !50, !noundef !51
  %202 = trunc nuw i8 %201 to i1
  br i1 %202, label %203, label %205

203:                                              ; preds = %._crit_edge117
  %204 = load i32, ptr %28, align 8, !tbaa !5
  br label %219

205:                                              ; preds = %._crit_edge117
  %206 = add nsw i32 %43, 1
  %207 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef %163) #8
  %208 = load i32, ptr %207, align 4, !tbaa !48
  %209 = icmp slt i32 %206, %208
  %210 = load i32, ptr %28, align 8, !tbaa !5
  %211 = sext i32 %210 to i64
  %212 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %211) #8
  br i1 %209, label %213, label %216

213:                                              ; preds = %205
  store i32 %32, ptr %212, align 4, !tbaa !48
  %214 = load i32, ptr %28, align 8, !tbaa !5
  %215 = add nsw i32 %214, 1
  br label %219

216:                                              ; preds = %205
  store i32 %114, ptr %212, align 4, !tbaa !48
  %217 = load i32, ptr %28, align 8, !tbaa !5
  %218 = add nsw i32 %217, 1
  br label %219

219:                                              ; preds = %213, %216, %203
  %.sink132 = phi i32 [ %215, %213 ], [ %218, %216 ], [ %204, %203 ]
  %.sink = phi i32 [ %206, %213 ], [ 0, %216 ], [ %114, %203 ]
  %220 = sext i32 %.sink132 to i64
  %221 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %220) #8
  store i32 %.sink, ptr %221, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #8
  invoke void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %222 unwind label %231

222:                                              ; preds = %219
  %223 = invoke noundef i32 @_ZN7Arcflow2goESt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(604) %0, ptr noundef nonnull %21)
          to label %224 unwind label %233

224:                                              ; preds = %222
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  store i32 %223, ptr %20, align 4, !tbaa !48
  %.not87 = icmp eq i32 %223, -1
  br i1 %.not87, label %.thread108, label %225

.thread108:                                       ; preds = %224
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #8
  br label %280

225:                                              ; preds = %224
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #8
  %226 = getelementptr inbounds i8, ptr %0, i64 56
  invoke void @_ZNK7NodeSet9get_labelEi(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.8") align 8 %22, ptr noundef nonnull align 8 dereferenceable(72) %226, i32 noundef %223)
          to label %.preheader unwind label %235

.preheader:                                       ; preds = %225
  %227 = load i32, ptr %28, align 8, !tbaa !5
  %228 = icmp sgt i32 %227, 0
  br i1 %228, label %.lr.ph119, label %._crit_edge120

._crit_edge120:                                   ; preds = %.lr.ph119, %.preheader
  %.lcssa = phi i32 [ %227, %.preheader ], [ %246, %.lr.ph119 ]
  %229 = load i8, ptr %33, align 4, !tbaa !49, !range !50, !noundef !51
  %230 = trunc nuw i8 %229 to i1
  br i1 %230, label %249, label %257

231:                                              ; preds = %219
  %232 = landingpad { ptr, i32 }
          cleanup
  br label %277

233:                                              ; preds = %222
  %234 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  br label %277

235:                                              ; preds = %225
  %236 = landingpad { ptr, i32 }
          cleanup
  br label %277

.lr.ph119:                                        ; preds = %.preheader, %.lr.ph119
  %indvars.iv125 = phi i64 [ %indvars.iv.next126, %.lr.ph119 ], [ 0, %.preheader ]
  %237 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %indvars.iv125) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #8
  %238 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %indvars.iv125) #8
  %239 = load i32, ptr %238, align 4, !tbaa !48
  %240 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef %indvars.iv125) #8
  %241 = load i32, ptr %240, align 4, !tbaa !48
  %242 = sub nsw i32 %239, %241
  store i32 %242, ptr %23, align 4, !tbaa !48
  %243 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %237, ptr noundef nonnull align 4 dereferenceable(4) %23)
  %244 = load i32, ptr %243, align 4, !tbaa !48
  %245 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %indvars.iv125) #8
  store i32 %244, ptr %245, align 4, !tbaa !48
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #8
  %indvars.iv.next126 = add nuw nsw i64 %indvars.iv125, 1
  %246 = load i32, ptr %28, align 8, !tbaa !5
  %247 = sext i32 %246 to i64
  %248 = icmp slt i64 %indvars.iv.next126, %247
  br i1 %248, label %.lr.ph119, label %._crit_edge120, !llvm.loop !59

249:                                              ; preds = %._crit_edge120
  %250 = sext i32 %.lcssa to i64
  %251 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %250) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #8
  store i32 %114, ptr %24, align 4, !tbaa !48
  %252 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %251, ptr noundef nonnull align 4 dereferenceable(4) %24)
  %253 = load i32, ptr %252, align 4, !tbaa !48
  %254 = load i32, ptr %28, align 8, !tbaa !5
  %255 = sext i32 %254 to i64
  %256 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %255) #8
  store i32 %253, ptr %256, align 4, !tbaa !48
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #8
  br label %257

257:                                              ; preds = %249, %._crit_edge120
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #8
  %258 = invoke noundef i32 @_ZN7NodeSet9get_indexERKSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(72) %226, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %259 unwind label %269

259:                                              ; preds = %257
  store i32 %258, ptr %25, align 4, !tbaa !48
  %260 = getelementptr inbounds i8, ptr %0, i64 8
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %26) #8
  call void @_ZN3ArcC2ERKiS1_i(ptr noundef nonnull align 4 dereferenceable(12) %26, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 4 dereferenceable(4) %20, i32 noundef %32)
  %261 = invoke { ptr, i8 } @_ZNSt3setI3ArcSt4lessIS0_ESaIS0_EE6insertEOS0_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 4 dereferenceable(12) %26)
          to label %262 unwind label %271

262:                                              ; preds = %259
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %26) #8
  %.not88 = icmp eq i32 %158, -1
  %263 = load i32, ptr %25, align 4
  %.not89 = icmp eq i32 %263, %158
  %or.cond = select i1 %.not88, i1 true, i1 %.not89
  br i1 %or.cond, label %276, label %264

264:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %27) #8
  %265 = getelementptr inbounds i8, ptr %0, i64 600
  %266 = load i32, ptr %265, align 8, !tbaa !60
  call void @_ZN3ArcC2ERKiS1_i(ptr noundef nonnull align 4 dereferenceable(12) %27, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 4 dereferenceable(4) %12, i32 noundef %266)
  %267 = invoke { ptr, i8 } @_ZNSt3setI3ArcSt4lessIS0_ESaIS0_EE6insertEOS0_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 4 dereferenceable(12) %27)
          to label %268 unwind label %273

268:                                              ; preds = %264
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %27) #8
  br label %276

269:                                              ; preds = %257
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %275

271:                                              ; preds = %259
  %272 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %26) #8
  br label %275

273:                                              ; preds = %264
  %274 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %27) #8
  br label %275

275:                                              ; preds = %273, %271, %269
  %.pn90 = phi { ptr, i32 } [ %274, %273 ], [ %272, %271 ], [ %270, %269 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #8
  br label %277

276:                                              ; preds = %262, %268
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #8
  br label %280

277:                                              ; preds = %235, %275, %233, %231
  %.pn90.pn.pn = phi { ptr, i32 } [ %234, %233 ], [ %232, %231 ], [ %.pn90, %275 ], [ %236, %235 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #8
  br label %278

278:                                              ; preds = %277, %196
  %.pn90.pn.pn.pn = phi { ptr, i32 } [ %.pn90.pn.pn, %277 ], [ %197, %196 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  br label %279

279:                                              ; preds = %278, %177
  %.pn90.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn90.pn.pn.pn, %278 ], [ %178, %177 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #8
  br label %289

280:                                              ; preds = %276, %.thread108, %161, %157
  %281 = getelementptr inbounds i8, ptr %0, i64 56
  %282 = invoke noundef i32 @_ZN7NodeSet9get_indexERKSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(72) %281, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %283 unwind label %286

283:                                              ; preds = %280
  %284 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapISt6vectorIiSaIiEEiSt4lessIS2_ESaISt4pairIKS2_iEEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %100, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %285 unwind label %286

285:                                              ; preds = %283
  store i32 %282, ptr %284, align 4, !tbaa !48
  br label %288

286:                                              ; preds = %283, %280
  %287 = landingpad { ptr, i32 }
          cleanup
  br label %289

.critedge:                                        ; preds = %194
  store i32 %193, ptr %195, align 4, !tbaa !48
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #8
  br label %288

288:                                              ; preds = %.critedge, %285
  %.3 = phi i32 [ %282, %285 ], [ %193, %.critedge ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #8
  br label %290

289:                                              ; preds = %286, %279, %156
  %.pn96 = phi { ptr, i32 } [ %287, %286 ], [ %.pn90.pn.pn.pn.pn, %279 ], [ %.pn83.pn, %156 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #8
  br label %291

290:                                              ; preds = %288, %105
  %.4 = phi i32 [ %108, %105 ], [ %.3, %288 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #8
  br label %293

291:                                              ; preds = %289, %111
  %.pn96.pn = phi { ptr, i32 } [ %.pn96, %289 ], [ %112, %111 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  br label %292

292:                                              ; preds = %291, %109
  %.pn96.pn.pn = phi { ptr, i32 } [ %.pn96.pn, %291 ], [ %110, %109 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #8
  br label %294

293:                                              ; preds = %92, %._crit_edge, %290
  %.5 = phi i32 [ %.4, %290 ], [ -1, %._crit_edge ], [ %94, %92 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #8
  ret i32 %.5

294:                                              ; preds = %292, %95, %65
  %.pn100 = phi { ptr, i32 } [ %66, %65 ], [ %96, %95 ], [ %.pn96.pn.pn, %292 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #8
  br label %295

295:                                              ; preds = %294, %56
  %.pn100.pn = phi { ptr, i32 } [ %.pn100, %294 ], [ %57, %56 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #8
  br label %296

296:                                              ; preds = %295, %54
  %.pn100.pn.pn = phi { ptr, i32 } [ %.pn100.pn, %295 ], [ %55, %54 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #8
  resume { ptr, i32 } %.pn100.pn.pn

297:                                              ; preds = %139
  unreachable
}

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

declare noundef i32 @_ZN7NodeSet9get_indexERKSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7Arcflow4hashERKSt6vectorIiSaIiEE(ptr dead_on_unwind noalias writable sret(%"class.std::vector.8") align 8, ptr noundef nonnull align 8 dereferenceable(604), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #7 align 2

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

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

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

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

declare void @_ZNK7NodeSet9get_labelEi(ptr dead_on_unwind writable sret(%"class.std::vector.8") align 8, ptr noundef nonnull align 8 dereferenceable(72), i32 noundef) local_unnamed_addr #3

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

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

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

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

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

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

!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, !38, i64 336}
!6 = !{!"_ZTS7Arcflow", !7, i64 0, !10, i64 8, !20, i64 56, !30, i64 128, !21, i64 152, !30, i64 200, !30, i64 224, !30, i64 248, !34, i64 272, !26, i64 296, !38, i64 320, !19, i64 328, !39, i64 336, !38, i64 536, !38, i64 540, !38, i64 544, !30, i64 552, !44, i64 576, !38, i64 600}
!7 = !{!"bool", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSSt3setI3ArcSt4lessIS0_ESaIS0_EE", !11, i64 0}
!11 = !{!"_ZTSSt8_Rb_treeI3ArcS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE", !12, i64 0}
!12 = !{!"_ZTSNSt8_Rb_treeI3ArcS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EEE", !13, i64 0, !15, i64 8}
!13 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessI3ArcEE", !14, i64 0}
!14 = !{!"_ZTSSt4lessI3ArcE"}
!15 = !{!"_ZTSSt15_Rb_tree_header", !16, i64 0, !19, i64 32}
!16 = !{!"_ZTSSt18_Rb_tree_node_base", !17, i64 0, !18, i64 8, !18, i64 16, !18, i64 24}
!17 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!18 = !{!"any pointer", !8, i64 0}
!19 = !{!"long", !8, i64 0}
!20 = !{!"_ZTS7NodeSet", !21, i64 0, !26, i64 48}
!21 = !{!"_ZTSSt3mapISt6vectorIiSaIiEEiSt4lessIS2_ESaISt4pairIKS2_iEEE", !22, i64 0}
!22 = !{!"_ZTSSt8_Rb_treeISt6vectorIiSaIiEESt4pairIKS2_iESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE", !23, i64 0}
!23 = !{!"_ZTSNSt8_Rb_treeISt6vectorIiSaIiEESt4pairIKS2_iESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !24, i64 0, !15, i64 8}
!24 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt6vectorIiSaIiEEEE", !25, i64 0}
!25 = !{!"_ZTSSt4lessISt6vectorIiSaIiEEE"}
!26 = !{!"_ZTSSt6vectorIS_IiSaIiEESaIS1_EE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!30 = !{!"_ZTSSt6vectorIiSaIiEE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!34 = !{!"_ZTSSt6vectorI4ItemSaIS0_EE", !35, i64 0}
!35 = !{!"_ZTSSt12_Vector_baseI4ItemSaIS0_EE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseI4ItemSaIS0_EE12_Vector_implE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseI4ItemSaIS0_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!38 = !{!"int", !8, i64 0}
!39 = !{!"_ZTS8Instance", !38, i64 0, !38, i64 4, !38, i64 8, !38, i64 12, !38, i64 16, !26, i64 24, !30, i64 48, !30, i64 72, !34, i64 96, !38, i64 120, !7, i64 124, !7, i64 125, !8, i64 126, !40, i64 128, !30, i64 152, !30, i64 176}
!40 = !{!"_ZTSSt6vectorIcSaIcEE", !41, i64 0}
!41 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!44 = !{!"_ZTSSt6vectorI3ArcSaIS0_EE", !45, i64 0}
!45 = !{!"_ZTSSt12_Vector_baseI3ArcSaIS0_EE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseI3ArcSaIS0_EE12_Vector_implE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseI3ArcSaIS0_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!48 = !{!38, !38, i64 0}
!49 = !{!6, !7, i64 460}
!50 = !{i8 0, i8 2}
!51 = !{}
!52 = !{!6, !38, i64 340}
!53 = distinct !{!53, !54}
!54 = !{!"llvm.loop.mustprogress"}
!55 = distinct !{!55, !54}
!56 = !{!57, !38, i64 24}
!57 = !{!"_ZTSSt4pairIKSt6vectorIiSaIiEEiE", !30, i64 0, !38, i64 24}
!58 = !{!6, !38, i64 344}
!59 = distinct !{!59, !54}
!60 = !{!6, !38, i64 600}


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