; LLVM IR from mickypaganini/SSI2016-jet-clustering :: spartyjet-4.0.2_mac/External/fastjet-3.0.0/src (ClusterSequence_Delaunay)

; 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.45" = type { %"struct.std::_Vector_base.46" }
%"struct.std::_Vector_base.46" = type { %"struct.std::_Vector_base<fastjet::EtaPhi, std::allocator<fastjet::EtaPhi>>::_Vector_impl" }
%"struct.std::_Vector_base<fastjet::EtaPhi, std::allocator<fastjet::EtaPhi>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastjet::EtaPhi, std::allocator<fastjet::EtaPhi>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastjet::EtaPhi, std::allocator<fastjet::EtaPhi>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.47" = type { i8 }
%"class.fastjet::EtaPhi" = type { double, double }
%"class.std::auto_ptr" = type { ptr }
%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::multimap" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<double, std::pair<const double, std::pair<int, int>>, std::_Select1st<std::pair<const double, std::pair<int, int>>>, std::less<double>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<double, std::pair<const double, std::pair<int, int>>, std::_Select1st<std::pair<const double, std::pair<int, int>>>, std::less<double>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.std::pair" = type { i32, i32 }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"class.std::vector.17" = type { %"struct.std::_Vector_base.18" }
%"struct.std::_Vector_base.18" = 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.51" = type { i8 }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.fastjet::ClusterSequence" = type <{ ptr, %"class.fastjet::JetDefinition", %"class.std::vector.28", %"class.std::vector.33", i8, [3 x i8], i32, double, double, double, double, i32, i32, %"class.fastjet::SharedPtr.38", i32, i8, i8, [2 x i8], %"class.fastjet::SharedPtr.39", %"class.std::vector.40", double, double, double, double, i32, i32, i32, [4 x i8] }>
%"class.fastjet::JetDefinition" = type { i32, double, double, i32, ptr, %"class.fastjet::SharedPtr", %"class.fastjet::JetDefinition::DefaultRecombiner", ptr, %"class.fastjet::SharedPtr.27" }
%"class.fastjet::SharedPtr" = type { ptr }
%"class.fastjet::JetDefinition::DefaultRecombiner" = type <{ %"class.fastjet::JetDefinition::Recombiner", i32, [4 x i8] }>
%"class.fastjet::JetDefinition::Recombiner" = type { ptr }
%"class.fastjet::SharedPtr.27" = type { ptr }
%"class.std::vector.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = type { %"struct.std::_Vector_base<fastjet::PseudoJet, std::allocator<fastjet::PseudoJet>>::_Vector_impl" }
%"struct.std::_Vector_base<fastjet::PseudoJet, std::allocator<fastjet::PseudoJet>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastjet::PseudoJet, std::allocator<fastjet::PseudoJet>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastjet::PseudoJet, std::allocator<fastjet::PseudoJet>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = type { %"struct.std::_Vector_base<fastjet::ClusterSequence::history_element, std::allocator<fastjet::ClusterSequence::history_element>>::_Vector_impl" }
%"struct.std::_Vector_base<fastjet::ClusterSequence::history_element, std::allocator<fastjet::ClusterSequence::history_element>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastjet::ClusterSequence::history_element, std::allocator<fastjet::ClusterSequence::history_element>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastjet::ClusterSequence::history_element, std::allocator<fastjet::ClusterSequence::history_element>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.fastjet::SharedPtr.38" = type { ptr }
%"class.fastjet::SharedPtr.39" = type { ptr }
%"class.std::vector.40" = type { %"struct.std::_Vector_base.41" }
%"struct.std::_Vector_base.41" = type { %"struct.std::_Vector_base<fastjet::ClusterSequence::Tile, std::allocator<fastjet::ClusterSequence::Tile>>::_Vector_impl" }
%"struct.std::_Vector_base<fastjet::ClusterSequence::Tile, std::allocator<fastjet::ClusterSequence::Tile>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastjet::ClusterSequence::Tile, std::allocator<fastjet::ClusterSequence::Tile>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastjet::ClusterSequence::Tile, std::allocator<fastjet::ClusterSequence::Tile>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.57" = type { double, %"struct.std::pair" }

@.str.7 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [145 x i8], align 1
@__PRETTY_FUNCTION__._ZN7fastjet15ClusterSequence17_delaunay_clusterEv = external hidden unnamed_addr constant [51 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [42 x i8], align 1
@_ZTIN7fastjet5ErrorE = external dso_local constant { ptr, ptr }, align 8

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) #0

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7fastjet15ClusterSequence17_delaunay_clusterEv(ptr noundef nonnull align 8 dereferenceable(276) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca %"class.std::vector.45", align 8
  %5 = alloca %"class.std::allocator.47", align 1
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca %"class.fastjet::EtaPhi", align 8
  %10 = alloca %"class.std::auto_ptr", align 8
  %11 = alloca i8, align 1
  %12 = alloca i8, align 1
  %13 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %14 = alloca %"class.std::multimap", align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca %"struct.std::pair", align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca double, align 8
  %22 = alloca i8, align 1
  %23 = alloca i8, align 1
  %24 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %25 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %26 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %27 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %28 = alloca i32, align 4
  %29 = alloca %"class.fastjet::EtaPhi", align 8
  %30 = alloca %"class.std::vector.17", align 8
  %31 = alloca i32, align 4
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator.51", align 1
  %34 = alloca i1, align 1
  %35 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %37 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %38 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #10
  %39 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %38, i32 0, i32 2
  %40 = call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %39) #10
  %41 = trunc i64 %40 to i32
  store i32 %41, ptr %3, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %4) #10
  %42 = load i32, ptr %3, align 4, !tbaa !9
  %43 = sext i32 %42 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %5) #10
  call void @_ZNSaIN7fastjet6EtaPhiEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10
  invoke void @_ZNSt6vectorIN7fastjet6EtaPhiESaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %43, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %44 unwind label %50

44:                                               ; preds = %1
  call void @_ZNSt15__new_allocatorIN7fastjet6EtaPhiEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %5) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %45

45:                                               ; preds = %75, %44
  %46 = load i32, ptr %8, align 4, !tbaa !9
  %47 = load i32, ptr %3, align 4, !tbaa !9
  %48 = icmp slt i32 %46, %47
  br i1 %48, label %54, label %49

49:                                               ; preds = %45
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %87

50:                                               ; preds = %1
  %51 = landingpad { ptr, i32 }
          cleanup
  %52 = extractvalue { ptr, i32 } %51, 0
  store ptr %52, ptr %6, align 8
  %53 = extractvalue { ptr, i32 } %51, 1
  store i32 %53, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIN7fastjet6EtaPhiEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %5) #10
  br label %352

54:                                               ; preds = %45
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #10
  %55 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %38, i32 0, i32 2
  %56 = load i32, ptr %8, align 4, !tbaa !9
  %57 = sext i32 %56 to i64
  %58 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %55, i64 noundef %57) #10
  %59 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %58)
          to label %60 unwind label %78

60:                                               ; preds = %54
  %61 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %38, i32 0, i32 2
  %62 = load i32, ptr %8, align 4, !tbaa !9
  %63 = sext i32 %62 to i64
  %64 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %61, i64 noundef %63) #10
  %65 = invoke noundef double @_ZNK7fastjet9PseudoJet8phi_02piEv(ptr noundef nonnull align 8 dereferenceable(88) %64)
          to label %66 unwind label %78

66:                                               ; preds = %60
  invoke void @_ZN7fastjet6EtaPhiC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %9, double noundef %59, double noundef %65)
          to label %67 unwind label %78

67:                                               ; preds = %66
  %68 = load i32, ptr %8, align 4, !tbaa !9
  %69 = sext i32 %68 to i64
  %70 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet6EtaPhiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %69) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %70, ptr align 8 %9, i64 16, i1 false), !tbaa.struct !11
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #10
  %71 = load i32, ptr %8, align 4, !tbaa !9
  %72 = sext i32 %71 to i64
  %73 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet6EtaPhiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %72) #10
  invoke void @_ZN7fastjet6EtaPhi8sanitizeEv(ptr noundef nonnull align 8 dereferenceable(16) %73)
          to label %74 unwind label %82

74:                                               ; preds = %67
  br label %75

75:                                               ; preds = %74
  %76 = load i32, ptr %8, align 4, !tbaa !9
  %77 = add nsw i32 %76, 1
  store i32 %77, ptr %8, align 4, !tbaa !9
  br label %45, !llvm.loop !14

78:                                               ; preds = %66, %60, %54
  %79 = landingpad { ptr, i32 }
          cleanup
  %80 = extractvalue { ptr, i32 } %79, 0
  store ptr %80, ptr %6, align 8
  %81 = extractvalue { ptr, i32 } %79, 1
  store i32 %81, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #10
  br label %86

82:                                               ; preds = %67
  %83 = landingpad { ptr, i32 }
          cleanup
  %84 = extractvalue { ptr, i32 } %83, 0
  store ptr %84, ptr %6, align 8
  %85 = extractvalue { ptr, i32 } %83, 1
  store i32 %85, ptr %7, align 4
  br label %86

86:                                               ; preds = %82, %78
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %351

87:                                               ; preds = %49
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #10
  call void @_ZNSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef null) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #10
  store i8 0, ptr %11, align 1, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #10
  %88 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %38, i32 0, i32 7
  %89 = load double, ptr %88, align 8, !tbaa !18
  %90 = fcmp olt double %89, 0x401921FB54442D18
  %91 = zext i1 %90 to i8
  store i8 %91, ptr %12, align 1, !tbaa !16
  %92 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %38, i32 0, i32 11
  %93 = load i32, ptr %92, align 8, !tbaa !42
  %94 = icmp eq i32 %93, 4
  br i1 %94, label %95, label %107

95:                                               ; preds = %87
  %96 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 32) #11
          to label %97 unwind label %99

97:                                               ; preds = %95
  invoke void @_ZN7fastjet14Dnn4piCylinderC1ERKSt6vectorINS_6EtaPhiESaIS2_EERKb(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %98 unwind label %103

98:                                               ; preds = %97
  call void @_ZNSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEE5resetEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef %96) #10
  br label %152

99:                                               ; preds = %123, %111, %95
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %6, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %7, align 4
  br label %350

103:                                              ; preds = %97
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %6, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %7, align 4
  call void @_ZdlPvm(ptr noundef %96, i64 noundef 32) #12
  br label %350

107:                                              ; preds = %87
  %108 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %38, i32 0, i32 11
  %109 = load i32, ptr %108, align 8, !tbaa !42
  %110 = icmp eq i32 %109, 3
  br i1 %110, label %111, label %119

111:                                              ; preds = %107
  %112 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 72) #11
          to label %113 unwind label %99

113:                                              ; preds = %111
  invoke void @_ZN7fastjet14Dnn3piCylinderC1ERKSt6vectorINS_6EtaPhiESaIS2_EERKbS8_(ptr noundef nonnull align 8 dereferenceable(72) %112, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 1 dereferenceable(1) %12, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %114 unwind label %115

114:                                              ; preds = %113
  call void @_ZNSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEE5resetEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef %112) #10
  br label %151

115:                                              ; preds = %113
  %116 = landingpad { ptr, i32 }
          cleanup
  %117 = extractvalue { ptr, i32 } %116, 0
  store ptr %117, ptr %6, align 8
  %118 = extractvalue { ptr, i32 } %116, 1
  store i32 %118, ptr %7, align 4
  call void @_ZdlPvm(ptr noundef %112, i64 noundef 72) #12
  br label %350

119:                                              ; preds = %107
  %120 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %38, i32 0, i32 11
  %121 = load i32, ptr %120, align 8, !tbaa !42
  %122 = icmp eq i32 %121, 2
  br i1 %122, label %123, label %131

123:                                              ; preds = %119
  %124 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 72) #11
          to label %125 unwind label %99

125:                                              ; preds = %123
  invoke void @_ZN7fastjet14Dnn2piCylinderC1ERKSt6vectorINS_6EtaPhiESaIS2_EERKbS8_(ptr noundef nonnull align 8 dereferenceable(72) %124, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 1 dereferenceable(1) %12, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %126 unwind label %127

126:                                              ; preds = %125
  call void @_ZNSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEE5resetEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef %124) #10
  br label %150

127:                                              ; preds = %125
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %6, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %7, align 4
  call void @_ZdlPvm(ptr noundef %124, i64 noundef 72) #12
  br label %350

131:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 376, ptr %13) #10
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %13)
          to label %132 unwind label %141

132:                                              ; preds = %131
  %133 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef @.str.7)
          to label %134 unwind label %145

134:                                              ; preds = %132
  %135 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %38, i32 0, i32 11
  %136 = load i32, ptr %135, align 8, !tbaa !42
  %137 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %133, i32 noundef %136)
          to label %138 unwind label %145

138:                                              ; preds = %134
  %139 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %140 unwind label %145

140:                                              ; preds = %138
  call void @__assert_fail(ptr noundef @.str.8, ptr noundef @.str.9, i32 noundef 91, ptr noundef @__PRETTY_FUNCTION__._ZN7fastjet15ClusterSequence17_delaunay_clusterEv) #13
  unreachable

141:                                              ; preds = %131
  %142 = landingpad { ptr, i32 }
          cleanup
  %143 = extractvalue { ptr, i32 } %142, 0
  store ptr %143, ptr %6, align 8
  %144 = extractvalue { ptr, i32 } %142, 1
  store i32 %144, ptr %7, align 4
  br label %149

145:                                              ; preds = %138, %134, %132
  %146 = landingpad { ptr, i32 }
          cleanup
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %6, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %7, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %13) #10
  br label %149

149:                                              ; preds = %145, %141
  call void @llvm.lifetime.end.p0(i64 376, ptr %13) #10
  br label %350

150:                                              ; preds = %126
  br label %151

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

152:                                              ; preds = %151, %98
  call void @llvm.lifetime.start.p0(i64 48, ptr %14) #10
  call void @_ZNSt8multimapIdSt4pairIiiESt4lessIdESaIS0_IKdS1_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  store i32 0, ptr %15, align 4, !tbaa !9
  br label %153

153:                                              ; preds = %161, %152
  %154 = load i32, ptr %15, align 4, !tbaa !9
  %155 = load i32, ptr %3, align 4, !tbaa !9
  %156 = icmp slt i32 %154, %155
  br i1 %156, label %158, label %157

157:                                              ; preds = %153
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %168

158:                                              ; preds = %153
  %159 = call noundef ptr @_ZNKSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  invoke void @_ZN7fastjet15ClusterSequence22_add_ktdistance_to_mapERKiRSt8multimapIdSt4pairIiiESt4lessIdESaIS4_IKdS5_EEEPKNS_24DynamicNearestNeighboursE(ptr noundef nonnull align 8 dereferenceable(276) %38, ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 8 dereferenceable(48) %14, ptr noundef %159)
          to label %160 unwind label %164

160:                                              ; preds = %158
  br label %161

161:                                              ; preds = %160
  %162 = load i32, ptr %15, align 4, !tbaa !9
  %163 = add nsw i32 %162, 1
  store i32 %163, ptr %15, align 4, !tbaa !9
  br label %153, !llvm.loop !43

164:                                              ; preds = %158
  %165 = landingpad { ptr, i32 }
          cleanup
  %166 = extractvalue { ptr, i32 } %165, 0
  store ptr %166, ptr %6, align 8
  %167 = extractvalue { ptr, i32 } %165, 1
  store i32 %167, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %349

168:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  store i32 0, ptr %16, align 4, !tbaa !9
  br label %169

169:                                              ; preds = %341, %168
  %170 = load i32, ptr %16, align 4, !tbaa !9
  %171 = load i32, ptr %3, align 4, !tbaa !9
  %172 = icmp slt i32 %170, %171
  br i1 %172, label %174, label %173

173:                                              ; preds = %169
  store i32 8, ptr %17, align 4
  br label %347

174:                                              ; preds = %169
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  invoke void @_ZNSt4pairIiiEC2IiiTnNSt9enable_ifIXsr6__and_ISt37__is_implicitly_default_constructibleIT_ES3_IT0_EEE5valueEbE4typeELb1EEEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %175 unwind label %212

175:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #10
  br label %176

176:                                              ; preds = %237, %175
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #10
  %177 = call ptr @_ZNSt8multimapIdSt4pairIiiESt4lessIdESaIS0_IKdS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %14) #10
  %178 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %24, i32 0, i32 0
  store ptr %177, ptr %178, align 8
  %179 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKdS0_IiiEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #10
  %180 = getelementptr inbounds %"struct.std::pair.57", ptr %179, i32 0, i32 0
  %181 = load double, ptr %180, align 8, !tbaa !44
  store double %181, ptr %21, align 8, !tbaa !12
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  %182 = call ptr @_ZNSt8multimapIdSt4pairIiiESt4lessIdESaIS0_IKdS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %14) #10
  %183 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %25, i32 0, i32 0
  store ptr %182, ptr %183, align 8
  %184 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKdS0_IiiEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #10
  %185 = getelementptr inbounds %"struct.std::pair.57", ptr %184, i32 0, i32 1
  %186 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt4pairIiiEaSERKS0_(ptr noundef nonnull align 4 dereferenceable(8) %18, ptr noundef nonnull align 4 dereferenceable(8) %185)
          to label %187 unwind label %216

187:                                              ; preds = %176
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  %188 = getelementptr inbounds %"struct.std::pair", ptr %18, i32 0, i32 0
  %189 = load i32, ptr %188, align 4, !tbaa !47
  store i32 %189, ptr %19, align 4, !tbaa !9
  %190 = getelementptr inbounds %"struct.std::pair", ptr %18, i32 0, i32 1
  %191 = load i32, ptr %190, align 4, !tbaa !48
  store i32 %191, ptr %20, align 4, !tbaa !9
  %192 = call ptr @_ZNSt8multimapIdSt4pairIiiESt4lessIdESaIS0_IKdS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %14) #10
  %193 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %26, i32 0, i32 0
  store ptr %192, ptr %193, align 8
  %194 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %26, i32 0, i32 0
  %195 = load ptr, ptr %194, align 8
  %196 = invoke ptr @_ZNSt8multimapIdSt4pairIiiESt4lessIdESaIS0_IKdS1_EEE5eraseB5cxx11ESt17_Rb_tree_iteratorIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %14, ptr %195)
          to label %197 unwind label %220

197:                                              ; preds = %187
  %198 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %27, i32 0, i32 0
  store ptr %196, ptr %198, align 8
  %199 = load i32, ptr %20, align 4, !tbaa !9
  %200 = icmp eq i32 %199, -1
  %201 = zext i1 %200 to i8
  store i8 %201, ptr %23, align 1, !tbaa !16
  %202 = load i8, ptr %23, align 1, !tbaa !16, !range !49, !noundef !50
  %203 = trunc i8 %202 to i1
  br i1 %203, label %224, label %204

204:                                              ; preds = %197
  %205 = call noundef ptr @_ZNKSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  %206 = load ptr, ptr %205, align 8, !tbaa !51
  %207 = getelementptr inbounds ptr, ptr %206, i64 2
  %208 = load ptr, ptr %207, align 8
  %209 = invoke noundef zeroext i1 %208(ptr noundef nonnull align 8 dereferenceable(8) %205, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %210 unwind label %220

210:                                              ; preds = %204
  %211 = zext i1 %209 to i8
  store i8 %211, ptr %22, align 1, !tbaa !16
  br label %225

212:                                              ; preds = %174
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %6, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %7, align 4
  br label %346

216:                                              ; preds = %176
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %6, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  br label %345

220:                                              ; preds = %268, %226, %204, %187
  %221 = landingpad { ptr, i32 }
          cleanup
  %222 = extractvalue { ptr, i32 } %221, 0
  store ptr %222, ptr %6, align 8
  %223 = extractvalue { ptr, i32 } %221, 1
  store i32 %223, ptr %7, align 4
  br label %345

224:                                              ; preds = %197
  store i8 1, ptr %22, align 1, !tbaa !16
  br label %225

225:                                              ; preds = %224, %210
  br label %226

226:                                              ; preds = %225
  %227 = call noundef ptr @_ZNKSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  %228 = load ptr, ptr %227, align 8, !tbaa !51
  %229 = getelementptr inbounds ptr, ptr %228, i64 2
  %230 = load ptr, ptr %229, align 8
  %231 = invoke noundef zeroext i1 %230(ptr noundef nonnull align 8 dereferenceable(8) %227, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %232 unwind label %220

232:                                              ; preds = %226
  br i1 %231, label %233, label %237

233:                                              ; preds = %232
  %234 = load i8, ptr %22, align 1, !tbaa !16, !range !49, !noundef !50
  %235 = trunc i8 %234 to i1
  %236 = xor i1 %235, true
  br label %237

237:                                              ; preds = %233, %232
  %238 = phi i1 [ true, %232 ], [ %236, %233 ]
  br i1 %238, label %176, label %239, !llvm.loop !53

239:                                              ; preds = %237
  %240 = load i8, ptr %23, align 1, !tbaa !16, !range !49, !noundef !50
  %241 = trunc i8 %240 to i1
  br i1 %241, label %268, label %242

242:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  invoke void @_ZN7fastjet15ClusterSequence25_do_ij_recombination_stepERKiS2_RKdRi(ptr noundef nonnull align 8 dereferenceable(276) %38, ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 4 dereferenceable(4) %28)
          to label %243 unwind label %259

243:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 16, ptr %29) #10
  %244 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %38, i32 0, i32 2
  %245 = load i32, ptr %28, align 4, !tbaa !9
  %246 = sext i32 %245 to i64
  %247 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %244, i64 noundef %246) #10
  %248 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %247)
          to label %249 unwind label %263

249:                                              ; preds = %243
  %250 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %38, i32 0, i32 2
  %251 = load i32, ptr %28, align 4, !tbaa !9
  %252 = sext i32 %251 to i64
  %253 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %250, i64 noundef %252) #10
  %254 = invoke noundef double @_ZNK7fastjet9PseudoJet8phi_02piEv(ptr noundef nonnull align 8 dereferenceable(88) %253)
          to label %255 unwind label %263

255:                                              ; preds = %249
  invoke void @_ZN7fastjet6EtaPhiC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %29, double noundef %248, double noundef %254)
          to label %256 unwind label %263

256:                                              ; preds = %255
  invoke void @_ZN7fastjet6EtaPhi8sanitizeEv(ptr noundef nonnull align 8 dereferenceable(16) %29)
          to label %257 unwind label %263

257:                                              ; preds = %256
  invoke void @_ZNSt6vectorIN7fastjet6EtaPhiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(16) %29)
          to label %258 unwind label %263

258:                                              ; preds = %257
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %270

259:                                              ; preds = %242
  %260 = landingpad { ptr, i32 }
          cleanup
  %261 = extractvalue { ptr, i32 } %260, 0
  store ptr %261, ptr %6, align 8
  %262 = extractvalue { ptr, i32 } %260, 1
  store i32 %262, ptr %7, align 4
  br label %267

263:                                              ; preds = %257, %256, %255, %249, %243
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %6, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #10
  br label %267

267:                                              ; preds = %263, %259
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %345

268:                                              ; preds = %239
  invoke void @_ZN7fastjet15ClusterSequence25_do_iB_recombination_stepERKiRKd(ptr noundef nonnull align 8 dereferenceable(276) %38, ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %269 unwind label %220

269:                                              ; preds = %268
  br label %270

270:                                              ; preds = %269, %258
  %271 = load i32, ptr %16, align 4, !tbaa !9
  %272 = load i32, ptr %3, align 4, !tbaa !9
  %273 = sub nsw i32 %272, 1
  %274 = icmp eq i32 %271, %273
  br i1 %274, label %275, label %276

275:                                              ; preds = %270
  store i32 8, ptr %17, align 4
  br label %338

276:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 24, ptr %30) #10
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #10
  %277 = load i8, ptr %23, align 1, !tbaa !16, !range !49, !noundef !50
  %278 = trunc i8 %277 to i1
  br i1 %278, label %312, label %279

279:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  %280 = call noundef ptr @_ZNKSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  %281 = call noundef i64 @_ZNKSt6vectorIN7fastjet6EtaPhiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #10
  %282 = sub i64 %281, 1
  %283 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet6EtaPhiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %282) #10
  invoke void @_ZN7fastjet24DynamicNearestNeighbours28RemoveCombinedAddCombinationERKiS2_RKNS_6EtaPhiERiRSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(8) %280, ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 8 dereferenceable(16) %283, ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull align 8 dereferenceable(24) %30)
          to label %284 unwind label %294

284:                                              ; preds = %279
  %285 = load i32, ptr %31, align 4, !tbaa !9
  %286 = zext i32 %285 to i64
  %287 = call noundef i64 @_ZNKSt6vectorIN7fastjet6EtaPhiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #10
  %288 = sub i64 %287, 1
  %289 = icmp ne i64 %286, %288
  br i1 %289, label %290, label %310

290:                                              ; preds = %284
  store i1 true, ptr %34, align 1
  %291 = call ptr @__cxa_allocate_exception(i64 40) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %292 unwind label %298

292:                                              ; preds = %290
  invoke void @_ZN7fastjet5ErrorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %291, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %293 unwind label %302

293:                                              ; preds = %292
  store i1 false, ptr %34, align 1
  invoke void @__cxa_throw(ptr %291, ptr @_ZTIN7fastjet5ErrorE, ptr @_ZN7fastjet5ErrorD2Ev) #14
          to label %358 unwind label %302

294:                                              ; preds = %279
  %295 = landingpad { ptr, i32 }
          cleanup
  %296 = extractvalue { ptr, i32 } %295, 0
  store ptr %296, ptr %6, align 8
  %297 = extractvalue { ptr, i32 } %295, 1
  store i32 %297, ptr %7, align 4
  br label %311

298:                                              ; preds = %290
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %6, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %7, align 4
  br label %306

302:                                              ; preds = %293, %292
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %6, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  br label %306

306:                                              ; preds = %302, %298
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #10
  %307 = load i1, ptr %34, align 1
  br i1 %307, label %308, label %309

308:                                              ; preds = %306
  call void @__cxa_free_exception(ptr %291) #10
  br label %309

309:                                              ; preds = %308, %306
  br label %311

310:                                              ; preds = %284
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %319

311:                                              ; preds = %309, %294
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %344

312:                                              ; preds = %276
  %313 = call noundef ptr @_ZNKSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  invoke void @_ZN7fastjet24DynamicNearestNeighbours11RemovePointERKiRSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(8) %313, ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 8 dereferenceable(24) %30)
          to label %314 unwind label %315

314:                                              ; preds = %312
  br label %319

315:                                              ; preds = %312
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %6, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %7, align 4
  br label %344

319:                                              ; preds = %314, %310
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  %320 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %30) #10
  %321 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %35, i32 0, i32 0
  store ptr %320, ptr %321, align 8
  br label %322

322:                                              ; preds = %331, %319
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #10
  %323 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %30) #10
  %324 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %36, i32 0, i32 0
  store ptr %323, ptr %324, align 8
  %325 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  br i1 %325, label %326, label %337

326:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  %327 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %35) #10
  %328 = load i32, ptr %327, align 4, !tbaa !9
  store i32 %328, ptr %37, align 4, !tbaa !9
  %329 = call noundef ptr @_ZNKSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  invoke void @_ZN7fastjet15ClusterSequence22_add_ktdistance_to_mapERKiRSt8multimapIdSt4pairIiiESt4lessIdESaIS4_IKdS5_EEEPKNS_24DynamicNearestNeighboursE(ptr noundef nonnull align 8 dereferenceable(276) %38, ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 8 dereferenceable(48) %14, ptr noundef %329)
          to label %330 unwind label %333

330:                                              ; preds = %326
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %331

331:                                              ; preds = %330
  %332 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %35) #10
  br label %322, !llvm.loop !54

333:                                              ; preds = %326
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %6, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  br label %344

337:                                              ; preds = %322
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #10
  store i32 0, ptr %17, align 4
  br label %338

338:                                              ; preds = %337, %275
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  %339 = load i32, ptr %17, align 4
  switch i32 %339, label %347 [
    i32 0, label %340
  ]

340:                                              ; preds = %338
  br label %341

341:                                              ; preds = %340
  %342 = load i32, ptr %16, align 4, !tbaa !9
  %343 = add nsw i32 %342, 1
  store i32 %343, ptr %16, align 4, !tbaa !9
  br label %169, !llvm.loop !55

344:                                              ; preds = %333, %315, %311
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #10
  br label %345

345:                                              ; preds = %344, %267, %220, %216
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %346

346:                                              ; preds = %345, %212
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %349

347:                                              ; preds = %338, %173
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %348

348:                                              ; preds = %347
  call void @_ZNSt8multimapIdSt4pairIiiESt4lessIdESaIS0_IKdS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #10
  call void @_ZNSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  call void @_ZNSt6vectorIN7fastjet6EtaPhiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %4) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #10
  ret void

349:                                              ; preds = %346, %164
  call void @_ZNSt8multimapIdSt4pairIiiESt4lessIdESaIS0_IKdS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %14) #10
  br label %350

350:                                              ; preds = %349, %149, %127, %115, %103, %99
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #10
  call void @_ZNSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  br label %351

351:                                              ; preds = %350, %86
  call void @_ZNSt6vectorIN7fastjet6EtaPhiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #10
  br label %352

352:                                              ; preds = %351, %50
  call void @llvm.lifetime.end.p0(i64 24, ptr %4) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #10
  br label %353

353:                                              ; preds = %352
  %354 = load ptr, ptr %6, align 8
  %355 = load i32, ptr %7, align 4
  %356 = insertvalue { ptr, i32 } poison, ptr %354, 0
  %357 = insertvalue { ptr, i32 } %356, i32 %355, 1
  resume { ptr, i32 } %357

358:                                              ; preds = %293
  unreachable
}

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNK7fastjet9PseudoJet8phi_02piEv(ptr noundef nonnull align 8 dereferenceable(88)) #4 align 2

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

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

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

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

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #6

declare void @_ZN7fastjet14Dnn4piCylinderC1ERKSt6vectorINS_6EtaPhiESaIS2_EERKb(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #7

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #8

declare void @_ZN7fastjet14Dnn3piCylinderC1ERKSt6vectorINS_6EtaPhiESaIS2_EERKbS8_(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #7

declare void @_ZN7fastjet14Dnn2piCylinderC1ERKSt6vectorINS_6EtaPhiESaIS2_EERKbS8_(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #4

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #7

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

declare void @_ZN7fastjet15ClusterSequence25_do_ij_recombination_stepERKiS2_RKdRi(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) #7

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

declare void @_ZN7fastjet15ClusterSequence25_do_iB_recombination_stepERKiRKd(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) #7

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

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

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

declare ptr @__cxa_allocate_exception(i64)

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

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

declare void @_ZN7fastjet5ErrorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #7

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

declare void @__cxa_throw(ptr, ptr, ptr)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

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

declare void @__cxa_free_exception(ptr)

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

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

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

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

; 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)) #3 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)) #3 align 2

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { nobuiltin allocsize(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 = { "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 = { nobuiltin 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 #9 = { 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 #10 = { nounwind }
attributes #11 = { builtin allocsize(0) }
attributes #12 = { builtin nounwind }
attributes #13 = { noreturn nounwind }
attributes #14 = { 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, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{i64 0, i64 8, !12, i64 8, i64 8, !12}
!12 = !{!13, !13, i64 0}
!13 = !{!"double", !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = !{!17, !17, i64 0}
!17 = !{!"bool", !7, i64 0}
!18 = !{!19, !13, i64 144}
!19 = !{!"_ZTSN7fastjet15ClusterSequenceE", !20, i64 8, !28, i64 88, !32, i64 112, !17, i64 136, !10, i64 140, !13, i64 144, !13, i64 152, !13, i64 160, !13, i64 168, !22, i64 176, !21, i64 180, !36, i64 184, !10, i64 192, !17, i64 196, !17, i64 197, !37, i64 200, !38, i64 208, !13, i64 232, !13, i64 240, !13, i64 248, !13, i64 256, !10, i64 264, !10, i64 268, !10, i64 272}
!20 = !{!"_ZTSN7fastjet13JetDefinitionE", !21, i64 0, !13, i64 8, !13, i64 16, !22, i64 24, !6, i64 32, !23, i64 40, !24, i64 48, !6, i64 64, !27, i64 72}
!21 = !{!"_ZTSN7fastjet12JetAlgorithmE", !7, i64 0}
!22 = !{!"_ZTSN7fastjet8StrategyE", !7, i64 0}
!23 = !{!"_ZTSN7fastjet9SharedPtrIKNS_13JetDefinition6PluginEEE", !6, i64 0}
!24 = !{!"_ZTSN7fastjet13JetDefinition17DefaultRecombinerE", !25, i64 0, !26, i64 8}
!25 = !{!"_ZTSN7fastjet13JetDefinition10RecombinerE"}
!26 = !{!"_ZTSN7fastjet19RecombinationSchemeE", !7, i64 0}
!27 = !{!"_ZTSN7fastjet9SharedPtrIKNS_13JetDefinition10RecombinerEEE", !6, i64 0}
!28 = !{!"_ZTSSt6vectorIN7fastjet9PseudoJetESaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTSSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!"_ZTSN7fastjet9SharedPtrINS_22PseudoJetStructureBaseEEE", !6, i64 0}
!37 = !{!"_ZTSN7fastjet9SharedPtrINS_15ClusterSequence6ExtrasEEE", !6, i64 0}
!38 = !{!"_ZTSSt6vectorIN7fastjet15ClusterSequence4TileESaIS2_EE", !39, i64 0}
!39 = !{!"_ZTSSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE12_Vector_implE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!42 = !{!19, !22, i64 176}
!43 = distinct !{!43, !15}
!44 = !{!45, !13, i64 0}
!45 = !{!"_ZTSSt4pairIKdS_IiiEE", !13, i64 0, !46, i64 8}
!46 = !{!"_ZTSSt4pairIiiE", !10, i64 0, !10, i64 4}
!47 = !{!46, !10, i64 0}
!48 = !{!46, !10, i64 4}
!49 = !{i8 0, i8 2}
!50 = !{}
!51 = !{!52, !52, i64 0}
!52 = !{!"vtable pointer", !8, i64 0}
!53 = distinct !{!53, !15}
!54 = distinct !{!54, !15}
!55 = distinct !{!55, !15}


; 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.45" = type { %"struct.std::_Vector_base.46" }
%"struct.std::_Vector_base.46" = type { %"struct.std::_Vector_base<fastjet::EtaPhi, std::allocator<fastjet::EtaPhi>>::_Vector_impl" }
%"struct.std::_Vector_base<fastjet::EtaPhi, std::allocator<fastjet::EtaPhi>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastjet::EtaPhi, std::allocator<fastjet::EtaPhi>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastjet::EtaPhi, std::allocator<fastjet::EtaPhi>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.47" = type { i8 }
%"class.fastjet::EtaPhi" = type { double, double }
%"class.std::auto_ptr" = type { ptr }
%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::multimap" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<double, std::pair<const double, std::pair<int, int>>, std::_Select1st<std::pair<const double, std::pair<int, int>>>, std::less<double>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<double, std::pair<const double, std::pair<int, int>>, std::_Select1st<std::pair<const double, std::pair<int, int>>>, std::less<double>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.std::pair" = type { i32, i32 }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"class.std::vector.17" = type { %"struct.std::_Vector_base.18" }
%"struct.std::_Vector_base.18" = 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.51" = type { i8 }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

@.str.7 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [145 x i8], align 1
@__PRETTY_FUNCTION__._ZN7fastjet15ClusterSequence17_delaunay_clusterEv = external hidden unnamed_addr constant [51 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [42 x i8], align 1
@_ZTIN7fastjet5ErrorE = external dso_local constant { ptr, ptr }, align 8

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) #0

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7fastjet15ClusterSequence17_delaunay_clusterEv(ptr noundef nonnull align 8 dereferenceable(276) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::vector.45", align 8
  %3 = alloca %"class.std::allocator.47", align 1
  %4 = alloca %"class.fastjet::EtaPhi", align 8
  %5 = alloca %"class.std::auto_ptr", align 8
  %6 = alloca i8, align 1
  %7 = alloca i8, align 1
  %8 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %9 = alloca %"class.std::multimap", align 8
  %10 = alloca i32, align 4
  %11 = alloca %"struct.std::pair", align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca double, align 8
  %15 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %16 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %17 = alloca i32, align 4
  %18 = alloca %"class.fastjet::EtaPhi", align 8
  %19 = alloca %"class.std::vector.17", align 8
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator.51", align 1
  %23 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %25 = alloca i32, align 4
  %26 = getelementptr inbounds i8, ptr %0, i64 88
  %27 = tail call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #10
  %28 = trunc i64 %27 to i32
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2) #10
  %sext = shl i64 %27, 32
  %29 = ashr exact i64 %sext, 32
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #10
  call void @_ZNSaIN7fastjet6EtaPhiEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #10
  invoke void @_ZNSt6vectorIN7fastjet6EtaPhiESaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %29, ptr noundef nonnull align 1 dereferenceable(1) %3)
          to label %30 unwind label %38

30:                                               ; preds = %1
  call void @_ZNSt15__new_allocatorIN7fastjet6EtaPhiEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #10
  %31 = icmp sgt i32 %28, 0
  br i1 %31, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %30
  %wide.trip.count = and i64 %27, 2147483647
  br label %.lr.ph

._crit_edge:                                      ; preds = %45, %30
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #10
  call void @_ZNSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef null) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #10
  store i8 0, ptr %6, align 1, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #10
  %32 = getelementptr inbounds i8, ptr %0, i64 144
  %33 = load double, ptr %32, align 8, !tbaa !9
  %34 = fcmp olt double %33, 0x401921FB54442D18
  %35 = zext i1 %34 to i8
  store i8 %35, ptr %7, align 1, !tbaa !5
  %36 = getelementptr inbounds i8, ptr %0, i64 176
  %37 = load i32, ptr %36, align 8, !tbaa !36
  switch i32 %37, label %67 [
    i32 4, label %50
    i32 3, label %57
    i32 2, label %62
  ]

38:                                               ; preds = %1
  %39 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIN7fastjet6EtaPhiEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #10
  br label %184

.lr.ph:                                           ; preds = %.lr.ph.preheader, %45
  %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %45 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #10
  %40 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv) #10
  %41 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %40)
          to label %42 unwind label %48

42:                                               ; preds = %.lr.ph
  %43 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv) #10
  %44 = invoke noundef double @_ZNK7fastjet9PseudoJet8phi_02piEv(ptr noundef nonnull align 8 dereferenceable(88) %43)
          to label %45 unwind label %48

45:                                               ; preds = %42
  call void @_ZN7fastjet6EtaPhiC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %4, double noundef %41, double noundef %44)
  %46 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet6EtaPhiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef nonnull align 8 dereferenceable(16) %4, i64 16, i1 false), !tbaa.struct !37
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #10
  %47 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet6EtaPhiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv) #10
  call void @_ZN7fastjet6EtaPhi8sanitizeEv(ptr noundef nonnull align 8 dereferenceable(16) %47)
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !39

48:                                               ; preds = %42, %.lr.ph
  %49 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #10
  br label %183

50:                                               ; preds = %._crit_edge
  %51 = invoke noalias noundef nonnull dereferenceable(32) ptr @_Znwm(i64 noundef 32) #11
          to label %52 unwind label %53

52:                                               ; preds = %50
  invoke void @_ZN7fastjet14Dnn4piCylinderC1ERKSt6vectorINS_6EtaPhiESaIS2_EERKb(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %81 unwind label %55

53:                                               ; preds = %62, %57, %50
  %54 = landingpad { ptr, i32 }
          cleanup
  br label %182

55:                                               ; preds = %52
  %56 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %51, i64 noundef 32) #12
  br label %182

57:                                               ; preds = %._crit_edge
  %58 = invoke noalias noundef nonnull dereferenceable(72) ptr @_Znwm(i64 noundef 72) #11
          to label %59 unwind label %53

59:                                               ; preds = %57
  invoke void @_ZN7fastjet14Dnn3piCylinderC1ERKSt6vectorINS_6EtaPhiESaIS2_EERKbS8_(ptr noundef nonnull align 8 dereferenceable(72) %58, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 1 dereferenceable(1) %7, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %81 unwind label %60

60:                                               ; preds = %59
  %61 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %58, i64 noundef 72) #12
  br label %182

62:                                               ; preds = %._crit_edge
  %63 = invoke noalias noundef nonnull dereferenceable(72) ptr @_Znwm(i64 noundef 72) #11
          to label %64 unwind label %53

64:                                               ; preds = %62
  invoke void @_ZN7fastjet14Dnn2piCylinderC1ERKSt6vectorINS_6EtaPhiESaIS2_EERKbS8_(ptr noundef nonnull align 8 dereferenceable(72) %63, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 1 dereferenceable(1) %7, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %81 unwind label %65

65:                                               ; preds = %64
  %66 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %63, i64 noundef 72) #12
  br label %182

67:                                               ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %8) #10
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %8)
          to label %68 unwind label %76

68:                                               ; preds = %67
  %69 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.7)
          to label %70 unwind label %78

70:                                               ; preds = %68
  %71 = load i32, ptr %36, align 8, !tbaa !36
  %72 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %69, i32 noundef %71)
          to label %73 unwind label %78

73:                                               ; preds = %70
  %74 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %75 unwind label %78

75:                                               ; preds = %73
  call void @__assert_fail(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.9, i32 noundef 91, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7fastjet15ClusterSequence17_delaunay_clusterEv) #13
  unreachable

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

78:                                               ; preds = %73, %70, %68
  %79 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %8) #10
  br label %80

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

81:                                               ; preds = %64, %59, %52
  %.sink = phi ptr [ %51, %52 ], [ %58, %59 ], [ %63, %64 ]
  call void @_ZNSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEE5resetEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull %.sink) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9) #10
  call void @_ZNSt8multimapIdSt4pairIiiESt4lessIdESaIS0_IKdS1_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #10
  store i32 0, ptr %10, align 4, !tbaa !41
  br i1 %31, label %.lr.ph66, label %._crit_edge67.thread

._crit_edge67.thread:                             ; preds = %81
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #10
  br label %.loopexit63

._crit_edge67:                                    ; preds = %85
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #10
  br i1 %31, label %.lr.ph73, label %.loopexit63

.lr.ph73:                                         ; preds = %._crit_edge67
  %82 = getelementptr inbounds i8, ptr %11, i64 4
  %83 = add nsw i32 %28, -1
  br label %91

.lr.ph66:                                         ; preds = %81, %85
  %84 = call noundef ptr @_ZNKSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #10
  invoke void @_ZN7fastjet15ClusterSequence22_add_ktdistance_to_mapERKiRSt8multimapIdSt4pairIiiESt4lessIdESaIS4_IKdS5_EEEPKNS_24DynamicNearestNeighboursE(ptr noundef nonnull align 8 dereferenceable(276) %0, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef %84)
          to label %85 unwind label %89

85:                                               ; preds = %.lr.ph66
  %86 = load i32, ptr %10, align 4, !tbaa !41
  %87 = add nsw i32 %86, 1
  store i32 %87, ptr %10, align 4, !tbaa !41
  %88 = icmp slt i32 %87, %28
  br i1 %88, label %.lr.ph66, label %._crit_edge67, !llvm.loop !42

89:                                               ; preds = %.lr.ph66
  %90 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #10
  br label %181

91:                                               ; preds = %.lr.ph73, %._crit_edge70
  %.03871 = phi i32 [ 0, %.lr.ph73 ], [ %178, %._crit_edge70 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #10
  call void @_ZNSt4pairIiiEC2IiiTnNSt9enable_ifIXsr6__and_ISt37__is_implicitly_default_constructibleIT_ES3_IT0_EEE5valueEbE4typeELb1EEEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #10
  br label %92

92:                                               ; preds = %119, %91
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #10
  %93 = call ptr @_ZNSt8multimapIdSt4pairIiiESt4lessIdESaIS0_IKdS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %9) #10
  store ptr %93, ptr %15, align 8
  %94 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKdS0_IiiEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #10
  %95 = load double, ptr %94, align 8, !tbaa !43
  store double %95, ptr %14, align 8, !tbaa !38
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #10
  %96 = call ptr @_ZNSt8multimapIdSt4pairIiiESt4lessIdESaIS0_IKdS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %9) #10
  store ptr %96, ptr %16, align 8
  %97 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKdS0_IiiEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #10
  %98 = getelementptr inbounds i8, ptr %97, i64 8
  %99 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt4pairIiiEaSERKS0_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %98)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #10
  %100 = load i32, ptr %11, align 4, !tbaa !46
  store i32 %100, ptr %12, align 4, !tbaa !41
  %101 = load i32, ptr %82, align 4, !tbaa !47
  store i32 %101, ptr %13, align 4, !tbaa !41
  %102 = call ptr @_ZNSt8multimapIdSt4pairIiiESt4lessIdESaIS0_IKdS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %9) #10
  %103 = invoke ptr @_ZNSt8multimapIdSt4pairIiiESt4lessIdESaIS0_IKdS1_EEE5eraseB5cxx11ESt17_Rb_tree_iteratorIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr %102)
          to label %104 unwind label %.loopexit

104:                                              ; preds = %92
  %105 = load i32, ptr %13, align 4, !tbaa !41
  %106 = icmp eq i32 %105, -1
  br i1 %106, label %113, label %107

107:                                              ; preds = %104
  %108 = call noundef ptr @_ZNKSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #10
  %109 = load ptr, ptr %108, align 8, !tbaa !48
  %110 = getelementptr inbounds i8, ptr %109, i64 16
  %111 = load ptr, ptr %110, align 8
  %112 = invoke noundef zeroext i1 %111(ptr noundef nonnull align 8 dereferenceable(8) %108, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %113 unwind label %.loopexit

.loopexit:                                        ; preds = %92, %107, %113
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %180

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

113:                                              ; preds = %104, %107
  %.036 = phi i1 [ %112, %107 ], [ true, %104 ]
  %114 = call noundef ptr @_ZNKSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #10
  %115 = load ptr, ptr %114, align 8, !tbaa !48
  %116 = getelementptr inbounds i8, ptr %115, i64 16
  %117 = load ptr, ptr %116, align 8
  %118 = invoke noundef zeroext i1 %117(ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %119 unwind label %.loopexit

119:                                              ; preds = %113
  %.demorgan = and i1 %.036, %118
  br i1 %.demorgan, label %120, label %92, !llvm.loop !50

120:                                              ; preds = %119
  br i1 %106, label %138, label %121

121:                                              ; preds = %120
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #10
  invoke void @_ZN7fastjet15ClusterSequence25_do_ij_recombination_stepERKiS2_RKdRi(ptr noundef nonnull align 8 dereferenceable(276) %0, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %122 unwind label %133

122:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #10
  %123 = load i32, ptr %17, align 4, !tbaa !41
  %124 = sext i32 %123 to i64
  %125 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %124) #10
  %126 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %125)
          to label %127 unwind label %135

127:                                              ; preds = %122
  %128 = load i32, ptr %17, align 4, !tbaa !41
  %129 = sext i32 %128 to i64
  %130 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %129) #10
  %131 = invoke noundef double @_ZNK7fastjet9PseudoJet8phi_02piEv(ptr noundef nonnull align 8 dereferenceable(88) %130)
          to label %132 unwind label %135

132:                                              ; preds = %127
  call void @_ZN7fastjet6EtaPhiC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %18, double noundef %126, double noundef %131)
  call void @_ZN7fastjet6EtaPhi8sanitizeEv(ptr noundef nonnull align 8 dereferenceable(16) %18)
  invoke void @_ZNSt6vectorIN7fastjet6EtaPhiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(16) %18)
          to label %.thread unwind label %135

133:                                              ; preds = %121
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %137

135:                                              ; preds = %132, %127, %122
  %136 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #10
  br label %137

137:                                              ; preds = %135, %133
  %.pn42 = phi { ptr, i32 } [ %136, %135 ], [ %134, %133 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #10
  br label %180

138:                                              ; preds = %120
  invoke void @_ZN7fastjet15ClusterSequence25_do_iB_recombination_stepERKiRKd(ptr noundef nonnull align 8 dereferenceable(276) %0, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %139 unwind label %.loopexit.split-lp

139:                                              ; preds = %138
  %.not50 = icmp eq i32 %.03871, %83
  br i1 %.not50, label %.critedge, label %144

.thread:                                          ; preds = %132
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #10
  %.not5057 = icmp eq i32 %.03871, %83
  br i1 %.not5057, label %.critedge, label %.thread58

.thread58:                                        ; preds = %.thread
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #10
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #10
  %140 = call noundef ptr @_ZNKSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #10
  %141 = call noundef i64 @_ZNKSt6vectorIN7fastjet6EtaPhiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #10
  %142 = add i64 %141, -1
  %143 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet6EtaPhiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %142) #10
  invoke void @_ZN7fastjet24DynamicNearestNeighbours28RemoveCombinedAddCombinationERKiS2_RKNS_6EtaPhiERiRSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 8 dereferenceable(16) %143, ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %146 unwind label %155

144:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #10
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #10
  %145 = call noundef ptr @_ZNKSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #10
  invoke void @_ZN7fastjet24DynamicNearestNeighbours11RemovePointERKiRSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(8) %145, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %165 unwind label %163

146:                                              ; preds = %.thread58
  %147 = load i32, ptr %20, align 4, !tbaa !41
  %148 = zext i32 %147 to i64
  %149 = call noundef i64 @_ZNKSt6vectorIN7fastjet6EtaPhiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #10
  %150 = add i64 %149, -1
  %.not = icmp eq i64 %150, %148
  br i1 %.not, label %161, label %151

151:                                              ; preds = %146
  %152 = call ptr @__cxa_allocate_exception(i64 40) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %153 unwind label %.thread59

153:                                              ; preds = %151
  invoke void @_ZN7fastjet5ErrorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %152, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %154 unwind label %158

154:                                              ; preds = %153
  invoke void @__cxa_throw(ptr nonnull %152, ptr nonnull @_ZTIN7fastjet5ErrorE, ptr nonnull @_ZN7fastjet5ErrorD2Ev) #14
          to label %185 unwind label %158

155:                                              ; preds = %.thread58
  %156 = landingpad { ptr, i32 }
          cleanup
  br label %162

.thread59:                                        ; preds = %151
  %157 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #10
  br label %160

158:                                              ; preds = %153, %154
  %.0 = phi i1 [ false, %154 ], [ true, %153 ]
  %159 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #10
  br i1 %.0, label %160, label %162

160:                                              ; preds = %.thread59, %158
  %.pn4462 = phi { ptr, i32 } [ %157, %.thread59 ], [ %159, %158 ]
  call void @__cxa_free_exception(ptr %152) #10
  br label %162

161:                                              ; preds = %146
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #10
  br label %165

162:                                              ; preds = %158, %160, %155
  %.pn44.pn = phi { ptr, i32 } [ %.pn4462, %160 ], [ %159, %158 ], [ %156, %155 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #10
  br label %179

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

165:                                              ; preds = %144, %161
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #10
  %166 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %19) #10
  store ptr %166, ptr %23, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #10
  %167 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %19) #10
  store ptr %167, ptr %24, align 8
  %168 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #10
  br i1 %168, label %.lr.ph69, label %._crit_edge70

.lr.ph69:                                         ; preds = %165, %172
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #10
  %169 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #10
  %170 = load i32, ptr %169, align 4, !tbaa !41
  store i32 %170, ptr %25, align 4, !tbaa !41
  %171 = call noundef ptr @_ZNKSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #10
  invoke void @_ZN7fastjet15ClusterSequence22_add_ktdistance_to_mapERKiRSt8multimapIdSt4pairIiiESt4lessIdESaIS4_IKdS5_EEEPKNS_24DynamicNearestNeighboursE(ptr noundef nonnull align 8 dereferenceable(276) %0, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef %171)
          to label %172 unwind label %176

172:                                              ; preds = %.lr.ph69
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #10
  %173 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #10
  %174 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %19) #10
  store ptr %174, ptr %24, align 8
  %175 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #10
  br i1 %175, label %.lr.ph69, label %._crit_edge70, !llvm.loop !51

176:                                              ; preds = %.lr.ph69
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #10
  br label %179

._crit_edge70:                                    ; preds = %172, %165
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #10
  %178 = add nuw nsw i32 %.03871, 1
  %exitcond75.not = icmp eq i32 %178, %28
  br i1 %exitcond75.not, label %.loopexit63, label %91, !llvm.loop !52

179:                                              ; preds = %176, %163, %162
  %.pn47 = phi { ptr, i32 } [ %177, %176 ], [ %164, %163 ], [ %.pn44.pn, %162 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #10
  br label %180

180:                                              ; preds = %.loopexit, %.loopexit.split-lp, %179, %137
  %.pn47.pn = phi { ptr, i32 } [ %.pn47, %179 ], [ %.pn42, %137 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #10
  br label %181

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

.loopexit63:                                      ; preds = %._crit_edge70, %._crit_edge67.thread, %._crit_edge67, %.critedge
  call void @_ZNSt8multimapIdSt4pairIiiESt4lessIdESaIS0_IKdS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #10
  call void @_ZNSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  call void @_ZNSt6vectorIN7fastjet6EtaPhiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #10
  ret void

181:                                              ; preds = %180, %89
  %.pn51 = phi { ptr, i32 } [ %90, %89 ], [ %.pn47.pn, %180 ]
  call void @_ZNSt8multimapIdSt4pairIiiESt4lessIdESaIS0_IKdS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #10
  br label %182

182:                                              ; preds = %181, %80, %65, %60, %55, %53
  %.pn51.pn = phi { ptr, i32 } [ %.pn51, %181 ], [ %56, %55 ], [ %54, %53 ], [ %61, %60 ], [ %66, %65 ], [ %.pn, %80 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #10
  call void @_ZNSt8auto_ptrIN7fastjet24DynamicNearestNeighboursEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  br label %183

183:                                              ; preds = %182, %48
  %.pn54 = phi { ptr, i32 } [ %49, %48 ], [ %.pn51.pn, %182 ]
  call void @_ZNSt6vectorIN7fastjet6EtaPhiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #10
  br label %184

184:                                              ; preds = %183, %38
  %.pn54.pn = phi { ptr, i32 } [ %.pn54, %183 ], [ %39, %38 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #10
  resume { ptr, i32 } %.pn54.pn

185:                                              ; preds = %154
  unreachable
}

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNK7fastjet9PseudoJet8phi_02piEv(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #4 align 2

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

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

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

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

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #6

declare void @_ZN7fastjet14Dnn4piCylinderC1ERKSt6vectorINS_6EtaPhiESaIS2_EERKb(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #7

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #8

declare void @_ZN7fastjet14Dnn3piCylinderC1ERKSt6vectorINS_6EtaPhiESaIS2_EERKbS8_(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #7

declare void @_ZN7fastjet14Dnn2piCylinderC1ERKSt6vectorINS_6EtaPhiESaIS2_EERKbS8_(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #7

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

declare void @_ZN7fastjet15ClusterSequence25_do_ij_recombination_stepERKiS2_RKdRi(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

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

declare void @_ZN7fastjet15ClusterSequence25_do_iB_recombination_stepERKiRKd(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7

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

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

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

declare void @_ZN7fastjet5ErrorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #7

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

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

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

; 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 #3 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 #3 align 2

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

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { nobuiltin allocsize(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 = { "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 = { nobuiltin 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 #9 = { 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 #10 = { nounwind }
attributes #11 = { builtin allocsize(0) }
attributes #12 = { builtin nounwind }
attributes #13 = { noreturn nounwind }
attributes #14 = { 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 = !{!"bool", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !13, i64 144}
!10 = !{!"_ZTSN7fastjet15ClusterSequenceE", !11, i64 8, !21, i64 88, !25, i64 112, !6, i64 136, !29, i64 140, !13, i64 144, !13, i64 152, !13, i64 160, !13, i64 168, !14, i64 176, !12, i64 180, !30, i64 184, !29, i64 192, !6, i64 196, !6, i64 197, !31, i64 200, !32, i64 208, !13, i64 232, !13, i64 240, !13, i64 248, !13, i64 256, !29, i64 264, !29, i64 268, !29, i64 272}
!11 = !{!"_ZTSN7fastjet13JetDefinitionE", !12, i64 0, !13, i64 8, !13, i64 16, !14, i64 24, !15, i64 32, !16, i64 40, !17, i64 48, !15, i64 64, !20, i64 72}
!12 = !{!"_ZTSN7fastjet12JetAlgorithmE", !7, i64 0}
!13 = !{!"double", !7, i64 0}
!14 = !{!"_ZTSN7fastjet8StrategyE", !7, i64 0}
!15 = !{!"any pointer", !7, i64 0}
!16 = !{!"_ZTSN7fastjet9SharedPtrIKNS_13JetDefinition6PluginEEE", !15, i64 0}
!17 = !{!"_ZTSN7fastjet13JetDefinition17DefaultRecombinerE", !18, i64 0, !19, i64 8}
!18 = !{!"_ZTSN7fastjet13JetDefinition10RecombinerE"}
!19 = !{!"_ZTSN7fastjet19RecombinationSchemeE", !7, i64 0}
!20 = !{!"_ZTSN7fastjet9SharedPtrIKNS_13JetDefinition10RecombinerEEE", !15, i64 0}
!21 = !{!"_ZTSSt6vectorIN7fastjet9PseudoJetESaIS1_EE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!25 = !{!"_ZTSSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!29 = !{!"int", !7, i64 0}
!30 = !{!"_ZTSN7fastjet9SharedPtrINS_22PseudoJetStructureBaseEEE", !15, i64 0}
!31 = !{!"_ZTSN7fastjet9SharedPtrINS_15ClusterSequence6ExtrasEEE", !15, i64 0}
!32 = !{!"_ZTSSt6vectorIN7fastjet15ClusterSequence4TileESaIS2_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!36 = !{!10, !14, i64 176}
!37 = !{i64 0, i64 8, !38, i64 8, i64 8, !38}
!38 = !{!13, !13, i64 0}
!39 = distinct !{!39, !40}
!40 = !{!"llvm.loop.mustprogress"}
!41 = !{!29, !29, i64 0}
!42 = distinct !{!42, !40}
!43 = !{!44, !13, i64 0}
!44 = !{!"_ZTSSt4pairIKdS_IiiEE", !13, i64 0, !45, i64 8}
!45 = !{!"_ZTSSt4pairIiiE", !29, i64 0, !29, i64 4}
!46 = !{!45, !29, i64 0}
!47 = !{!45, !29, i64 4}
!48 = !{!49, !49, i64 0}
!49 = !{!"vtable pointer", !8, i64 0}
!50 = distinct !{!50, !40}
!51 = distinct !{!51, !40}
!52 = distinct !{!52, !40}


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