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

; 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.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = 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::valarray" = type { i64, ptr }
%"class.std::valarray.13" = type { i64, ptr }
%"class.fastjet::PseudoJet" = type { ptr, %"class.fastjet::SharedPtr.6", %"class.fastjet::SharedPtr.25", double, double, double, double, double, double, double, i32, i32 }
%"class.fastjet::SharedPtr.6" = type { ptr }
%"class.fastjet::SharedPtr.25" = type { ptr }
%"class.fastjet::ClusterSequenceActiveArea::GhostJet" = type { %"class.fastjet::PseudoJet", double }
%"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::allocator.44" = type { i8 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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.fastjet::ClusterSequence" = type <{ ptr, %"class.fastjet::JetDefinition", %"class.std::vector", %"class.std::vector.1", i8, [3 x i8], i32, double, double, double, double, i32, i32, %"class.fastjet::SharedPtr.6", i32, i8, i8, [2 x i8], %"class.fastjet::SharedPtr.7", %"class.std::vector.8", 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.0" }
%"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.0" = type { ptr }
%"class.std::vector.1" = type { %"struct.std::_Vector_base.2" }
%"struct.std::_Vector_base.2" = 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.7" = type { ptr }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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.fastjet::ClusterSequence::history_element" = type { i32, i32, i32, i32, double, double }
%"class.fastjet::ClusterSequenceActiveArea" = type { %"class.fastjet::ClusterSequenceAreaBase.base", %"class.std::valarray", %"class.std::valarray", %"class.std::valarray.13", double, double, double, double, double, i8, i32, %"class.std::vector.14", %"class.std::vector.14" }
%"class.fastjet::ClusterSequenceAreaBase.base" = type { %"class.fastjet::ClusterSequence.base" }
%"class.fastjet::ClusterSequence.base" = type <{ ptr, %"class.fastjet::JetDefinition", %"class.std::vector", %"class.std::vector.1", i8, [3 x i8], i32, double, double, double, double, i32, i32, %"class.fastjet::SharedPtr.6", i32, i8, i8, [2 x i8], %"class.fastjet::SharedPtr.7", %"class.std::vector.8", double, double, double, double, i32, i32, i32 }>
%"class.std::vector.14" = type { %"struct.std::_Vector_base.15" }
%"struct.std::_Vector_base.15" = type { %"struct.std::_Vector_base<fastjet::ClusterSequenceActiveArea::GhostJet, std::allocator<fastjet::ClusterSequenceActiveArea::GhostJet>>::_Vector_impl" }
%"struct.std::_Vector_base<fastjet::ClusterSequenceActiveArea::GhostJet, std::allocator<fastjet::ClusterSequenceActiveArea::GhostJet>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastjet::ClusterSequenceActiveArea::GhostJet, std::allocator<fastjet::ClusterSequenceActiveArea::GhostJet>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastjet::ClusterSequenceActiveArea::GhostJet, std::allocator<fastjet::ClusterSequenceActiveArea::GhostJet>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@_ZTIN7fastjet5ErrorE = external dso_local constant { ptr, ptr }, align 8
@.str.12 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [54 x i8], align 1
@__PRETTY_FUNCTION__._ZN7fastjet25ClusterSequenceActiveArea15_transfer_areasERKSt6vectorIiSaIiEERKNS_39ClusterSequenceActiveAreaExplicitGhostsE = external hidden unnamed_addr constant [127 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [99 x i8], align 1

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

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

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

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

declare i32 @__gxx_personality_v0(...)

declare void @_ZN7fastjet9PseudoJetC1Edddd(ptr noundef nonnull align 8 dereferenceable(88), double noundef, double noundef, double noundef, double noundef) unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(88)) #2 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7fastjet25ClusterSequenceActiveArea15_transfer_areasERKSt6vectorIiSaIiEERKNS_39ClusterSequenceActiveAreaExplicitGhostsE(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(392) %2) #4 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %"class.std::vector.20", align 8
  %10 = alloca double, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::valarray", align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca double, align 8
  %17 = alloca %"class.std::valarray.13", align 8
  %18 = alloca %"class.fastjet::PseudoJet", align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca double, align 8
  %27 = alloca %"class.fastjet::PseudoJet", align 8
  %28 = alloca %"class.fastjet::ClusterSequenceActiveArea::GhostJet", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator.44", align 1
  %31 = alloca i1, align 1
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator.44", align 1
  %36 = alloca i1, align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator.44", align 1
  %39 = alloca i1, align 1
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca double, align 8
  %43 = alloca %"class.fastjet::PseudoJet", align 8
  %44 = alloca ptr, align 8
  %45 = alloca i32, align 4
  %46 = alloca %"class.fastjet::PseudoJet", align 8
  %47 = alloca ptr, align 8
  %48 = alloca i32, align 4
  %49 = alloca %"class.fastjet::PseudoJet", align 8
  %50 = alloca %"class.std::vector", align 8
  %51 = alloca i32, align 4
  %52 = alloca double, align 8
  %53 = alloca %"class.fastjet::ClusterSequenceActiveArea::GhostJet", align 8
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  %56 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  %57 = load ptr, ptr %6, align 8, !tbaa !5
  %58 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7fastjet15ClusterSequence7historyEv(ptr noundef nonnull align 8 dereferenceable(276) %57)
  store ptr %58, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #8
  %59 = load ptr, ptr %6, align 8, !tbaa !5
  %60 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7fastjet15ClusterSequence4jetsEv(ptr noundef nonnull align 8 dereferenceable(276) %59)
  store ptr %60, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #8
  %61 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZNK7fastjet15ClusterSequence20unique_history_orderEv(ptr dead_on_unwind writable sret(%"class.std::vector.20") align 8 %9, ptr noundef nonnull align 8 dereferenceable(276) %61)
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  store double 0x3DA5FD7FE1796495, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  store i32 -1, ptr %11, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  store i32 -1, ptr %12, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #8
  %62 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 3
  %63 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %62) #8
  invoke void @_ZNSt8valarrayIdEC2Em(ptr noundef nonnull align 8 dereferenceable(16) %13, i64 noundef %63)
          to label %64 unwind label %80

64:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  store double 0.000000e+00, ptr %16, align 8, !tbaa !9
  %65 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt8valarrayIdEaSERKd(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %66 unwind label %84

66:                                               ; preds = %64
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #8
  %67 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 3
  %68 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %67) #8
  invoke void @_ZNSt8valarrayIN7fastjet9PseudoJetEEC2Em(ptr noundef nonnull align 8 dereferenceable(16) %17, i64 noundef %68)
          to label %69 unwind label %88

69:                                               ; preds = %66
  call void @llvm.lifetime.start.p0(i64 88, ptr %18) #8
  invoke void @_ZN7fastjet9PseudoJetC1Edddd(ptr noundef nonnull align 8 dereferenceable(88) %18, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %70 unwind label %92

70:                                               ; preds = %69
  %71 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(88) %18)
          to label %72 unwind label %96

72:                                               ; preds = %70
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %18) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  store i32 0, ptr %19, align 4, !tbaa !11
  br label %73

73:                                               ; preds = %571, %72
  %74 = load i32, ptr %19, align 4, !tbaa !11
  %75 = zext i32 %74 to i64
  %76 = load ptr, ptr %7, align 8, !tbaa !5
  %77 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %76) #8
  %78 = icmp ult i64 %75, %77
  br i1 %78, label %101, label %79

79:                                               ; preds = %73
  store i32 2, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %576

80:                                               ; preds = %3
  %81 = landingpad { ptr, i32 }
          cleanup
  %82 = extractvalue { ptr, i32 } %81, 0
  store ptr %82, ptr %14, align 8
  %83 = extractvalue { ptr, i32 } %81, 1
  store i32 %83, ptr %15, align 4
  br label %712

84:                                               ; preds = %64
  %85 = landingpad { ptr, i32 }
          cleanup
  %86 = extractvalue { ptr, i32 } %85, 0
  store ptr %86, ptr %14, align 8
  %87 = extractvalue { ptr, i32 } %85, 1
  store i32 %87, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  br label %711

88:                                               ; preds = %66
  %89 = landingpad { ptr, i32 }
          cleanup
  %90 = extractvalue { ptr, i32 } %89, 0
  store ptr %90, ptr %14, align 8
  %91 = extractvalue { ptr, i32 } %89, 1
  store i32 %91, ptr %15, align 4
  br label %710

92:                                               ; preds = %69
  %93 = landingpad { ptr, i32 }
          cleanup
  %94 = extractvalue { ptr, i32 } %93, 0
  store ptr %94, ptr %14, align 8
  %95 = extractvalue { ptr, i32 } %93, 1
  store i32 %95, ptr %15, align 4
  br label %100

96:                                               ; preds = %70
  %97 = landingpad { ptr, i32 }
          cleanup
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %14, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %15, align 4
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %18) #8
  br label %100

100:                                              ; preds = %96, %92
  call void @llvm.lifetime.end.p0(i64 88, ptr %18) #8
  br label %709

101:                                              ; preds = %73
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  %102 = load i32, ptr %19, align 4, !tbaa !11
  %103 = zext i32 %102 to i64
  %104 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %103) #8
  %105 = load i32, ptr %104, align 4, !tbaa !11
  store i32 %105, ptr %21, align 4, !tbaa !11
  %106 = load i32, ptr %21, align 4, !tbaa !11
  %107 = load ptr, ptr %6, align 8, !tbaa !5
  %108 = invoke noundef i32 @_ZNK7fastjet15ClusterSequence11n_particlesEv(ptr noundef nonnull align 8 dereferenceable(276) %107)
          to label %109 unwind label %112

109:                                              ; preds = %101
  %110 = icmp ult i32 %106, %108
  br i1 %110, label %111, label %116

111:                                              ; preds = %109
  store i32 4, ptr %20, align 4
  br label %568

112:                                              ; preds = %101
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %14, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %15, align 4
  br label %575

116:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %117 = load ptr, ptr %7, align 8, !tbaa !5
  %118 = load i32, ptr %19, align 4, !tbaa !11
  %119 = zext i32 %118 to i64
  %120 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %119) #8
  %121 = load i32, ptr %120, align 4, !tbaa !11
  %122 = sext i32 %121 to i64
  %123 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %117, i64 noundef %122) #8
  store ptr %123, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %124 = load ptr, ptr %22, align 8, !tbaa !5
  %125 = getelementptr inbounds %"struct.fastjet::ClusterSequence::history_element", ptr %124, i32 0, i32 0
  %126 = load i32, ptr %125, align 8, !tbaa !13
  store i32 %126, ptr %23, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  %127 = load ptr, ptr %22, align 8, !tbaa !5
  %128 = getelementptr inbounds %"struct.fastjet::ClusterSequence::history_element", ptr %127, i32 0, i32 1
  %129 = load i32, ptr %128, align 4, !tbaa !15
  store i32 %129, ptr %24, align 4, !tbaa !11
  %130 = load i32, ptr %24, align 4, !tbaa !11
  %131 = icmp eq i32 %130, -1
  br i1 %131, label %132, label %320

132:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %133 = load ptr, ptr %8, align 8, !tbaa !5
  %134 = load ptr, ptr %7, align 8, !tbaa !5
  %135 = load i32, ptr %23, align 4, !tbaa !11
  %136 = sext i32 %135 to i64
  %137 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %134, i64 noundef %136) #8
  %138 = getelementptr inbounds %"struct.fastjet::ClusterSequence::history_element", ptr %137, i32 0, i32 3
  %139 = load i32, ptr %138, align 4, !tbaa !16
  %140 = sext i32 %139 to i64
  %141 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %133, i64 noundef %140) #8
  store ptr %141, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  %142 = load ptr, ptr %6, align 8, !tbaa !5
  %143 = load ptr, ptr %25, align 8, !tbaa !5
  %144 = load ptr, ptr %142, align 8, !tbaa !17
  %145 = getelementptr inbounds ptr, ptr %144, i64 2
  %146 = load ptr, ptr %145, align 8
  %147 = invoke noundef double %146(ptr noundef nonnull align 8 dereferenceable(392) %142, ptr noundef nonnull align 8 dereferenceable(88) %143)
          to label %148 unwind label %186

148:                                              ; preds = %132
  store double %147, ptr %26, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 88, ptr %27) #8
  %149 = load ptr, ptr %6, align 8, !tbaa !5
  %150 = load ptr, ptr %25, align 8, !tbaa !5
  %151 = load ptr, ptr %149, align 8, !tbaa !17
  %152 = getelementptr inbounds ptr, ptr %151, i64 4
  %153 = load ptr, ptr %152, align 8
  invoke void %153(ptr dead_on_unwind writable sret(%"class.fastjet::PseudoJet") align 8 %27, ptr noundef nonnull align 8 dereferenceable(392) %149, ptr noundef nonnull align 8 dereferenceable(88) %150)
          to label %154 unwind label %190

154:                                              ; preds = %148
  %155 = load ptr, ptr %6, align 8, !tbaa !5
  %156 = load i32, ptr %23, align 4, !tbaa !11
  %157 = invoke noundef zeroext i1 @_ZNK7fastjet39ClusterSequenceActiveAreaExplicitGhosts13is_pure_ghostEi(ptr noundef nonnull align 8 dereferenceable(392) %155, i32 noundef %156)
          to label %158 unwind label %194

158:                                              ; preds = %154
  br i1 %157, label %159, label %208

159:                                              ; preds = %158
  %160 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %56, i32 0, i32 11
  call void @llvm.lifetime.start.p0(i64 96, ptr %28) #8
  %161 = load ptr, ptr %25, align 8, !tbaa !5
  %162 = load double, ptr %26, align 8, !tbaa !9
  invoke void @_ZN7fastjet25ClusterSequenceActiveArea8GhostJetC2ERKNS_9PseudoJetEd(ptr noundef nonnull align 8 dereferenceable(96) %28, ptr noundef nonnull align 8 dereferenceable(88) %161, double noundef %162)
          to label %163 unwind label %198

163:                                              ; preds = %159
  invoke void @_ZNSt6vectorIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %160, ptr noundef nonnull align 8 dereferenceable(96) %28)
          to label %164 unwind label %202

164:                                              ; preds = %163
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %28) #8
  call void @llvm.lifetime.end.p0(i64 96, ptr %28) #8
  %165 = load ptr, ptr %25, align 8, !tbaa !5
  %166 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %165)
          to label %167 unwind label %194

167:                                              ; preds = %164
  %168 = invoke noundef double @_ZSt3absd(double noundef %166)
          to label %169 unwind label %194

169:                                              ; preds = %167
  %170 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %56, i32 0, i32 8
  %171 = load double, ptr %170, align 8, !tbaa !19
  %172 = fcmp olt double %168, %171
  br i1 %172, label %173, label %207

173:                                              ; preds = %169
  %174 = load double, ptr %26, align 8, !tbaa !9
  %175 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %56, i32 0, i32 4
  %176 = load double, ptr %175, align 8, !tbaa !53
  %177 = fadd double %176, %174
  store double %177, ptr %175, align 8, !tbaa !53
  %178 = load double, ptr %26, align 8, !tbaa !9
  %179 = load double, ptr %26, align 8, !tbaa !9
  %180 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %56, i32 0, i32 5
  %181 = load double, ptr %180, align 8, !tbaa !54
  %182 = call double @llvm.fmuladd.f64(double %178, double %179, double %181)
  store double %182, ptr %180, align 8, !tbaa !54
  %183 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %56, i32 0, i32 6
  %184 = load double, ptr %183, align 8, !tbaa !55
  %185 = fadd double %184, 1.000000e+00
  store double %185, ptr %183, align 8, !tbaa !55
  br label %207

186:                                              ; preds = %132
  %187 = landingpad { ptr, i32 }
          cleanup
  %188 = extractvalue { ptr, i32 } %187, 0
  store ptr %188, ptr %14, align 8
  %189 = extractvalue { ptr, i32 } %187, 1
  store i32 %189, ptr %15, align 4
  br label %319

190:                                              ; preds = %148
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %14, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %15, align 4
  br label %318

194:                                              ; preds = %167, %164, %154
  %195 = landingpad { ptr, i32 }
          cleanup
  %196 = extractvalue { ptr, i32 } %195, 0
  store ptr %196, ptr %14, align 8
  %197 = extractvalue { ptr, i32 } %195, 1
  store i32 %197, ptr %15, align 4
  br label %317

198:                                              ; preds = %159
  %199 = landingpad { ptr, i32 }
          cleanup
  %200 = extractvalue { ptr, i32 } %199, 0
  store ptr %200, ptr %14, align 8
  %201 = extractvalue { ptr, i32 } %199, 1
  store i32 %201, ptr %15, align 4
  br label %206

202:                                              ; preds = %163
  %203 = landingpad { ptr, i32 }
          cleanup
  %204 = extractvalue { ptr, i32 } %203, 0
  store ptr %204, ptr %14, align 8
  %205 = extractvalue { ptr, i32 } %203, 1
  store i32 %205, ptr %15, align 4
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %28) #8
  br label %206

206:                                              ; preds = %202, %198
  call void @llvm.lifetime.end.p0(i64 96, ptr %28) #8
  br label %317

207:                                              ; preds = %173, %169
  br label %316

208:                                              ; preds = %158
  br label %209

209:                                              ; preds = %227, %208
  %210 = load i32, ptr %11, align 4, !tbaa !11
  %211 = add nsw i32 %210, 1
  store i32 %211, ptr %11, align 4, !tbaa !11
  %212 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 3
  %213 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %212) #8
  %214 = trunc i64 %213 to i32
  %215 = icmp slt i32 %211, %214
  br i1 %215, label %216, label %228

216:                                              ; preds = %209
  %217 = load ptr, ptr %5, align 8, !tbaa !5
  %218 = load i32, ptr %11, align 4, !tbaa !11
  %219 = sext i32 %218 to i64
  %220 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %217, i64 noundef %219) #8
  %221 = load i32, ptr %220, align 4, !tbaa !11
  store i32 %221, ptr %12, align 4, !tbaa !11
  %222 = load i32, ptr %12, align 4, !tbaa !11
  %223 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 6
  %224 = load i32, ptr %223, align 4, !tbaa !56
  %225 = icmp sge i32 %222, %224
  br i1 %225, label %226, label %227

226:                                              ; preds = %216
  br label %228

227:                                              ; preds = %216
  br label %209, !llvm.loop !57

228:                                              ; preds = %226, %209
  %229 = load i32, ptr %11, align 4, !tbaa !11
  %230 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 3
  %231 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %230) #8
  %232 = trunc i64 %231 to i32
  %233 = icmp sge i32 %229, %232
  br i1 %233, label %234, label %250

234:                                              ; preds = %228
  store i1 true, ptr %31, align 1
  %235 = call ptr @__cxa_allocate_exception(i64 40) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %236 unwind label %238

236:                                              ; preds = %234
  invoke void @_ZN7fastjet5ErrorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %235, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %237 unwind label %242

237:                                              ; preds = %236
  store i1 false, ptr %31, align 1
  invoke void @__cxa_throw(ptr %235, ptr @_ZTIN7fastjet5ErrorE, ptr @_ZN7fastjet5ErrorD2Ev) #9
          to label %718 unwind label %242

238:                                              ; preds = %234
  %239 = landingpad { ptr, i32 }
          cleanup
  %240 = extractvalue { ptr, i32 } %239, 0
  store ptr %240, ptr %14, align 8
  %241 = extractvalue { ptr, i32 } %239, 1
  store i32 %241, ptr %15, align 4
  br label %246

242:                                              ; preds = %237, %236
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %14, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %246

246:                                              ; preds = %242, %238
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  %247 = load i1, ptr %31, align 1
  br i1 %247, label %248, label %249

248:                                              ; preds = %246
  call void @__cxa_free_exception(ptr %235) #8
  br label %249

249:                                              ; preds = %248, %246
  br label %317

250:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %251 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 3
  %252 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 3
  %253 = load i32, ptr %12, align 4, !tbaa !11
  %254 = sext i32 %253 to i64
  %255 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %252, i64 noundef %254) #8
  %256 = getelementptr inbounds %"struct.fastjet::ClusterSequence::history_element", ptr %255, i32 0, i32 0
  %257 = load i32, ptr %256, align 8, !tbaa !13
  %258 = sext i32 %257 to i64
  %259 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %251, i64 noundef %258) #8
  %260 = getelementptr inbounds %"struct.fastjet::ClusterSequence::history_element", ptr %259, i32 0, i32 3
  %261 = load i32, ptr %260, align 4, !tbaa !16
  store i32 %261, ptr %32, align 4, !tbaa !11
  %262 = load i32, ptr %32, align 4, !tbaa !11
  %263 = icmp sge i32 %262, 0
  br i1 %263, label %264, label %270

264:                                              ; preds = %250
  %265 = load i32, ptr %32, align 4, !tbaa !11
  %266 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 2
  %267 = call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %266) #8
  %268 = trunc i64 %267 to i32
  %269 = icmp slt i32 %265, %268
  br label %270

270:                                              ; preds = %264, %250
  %271 = phi i1 [ false, %250 ], [ %269, %264 ]
  br i1 %271, label %272, label %273

272:                                              ; preds = %270
  br label %275

273:                                              ; preds = %270
  call void @__assert_fail(ptr noundef @.str.15, ptr noundef @.str.12, i32 noundef 621, ptr noundef @__PRETTY_FUNCTION__._ZN7fastjet25ClusterSequenceActiveArea15_transfer_areasERKSt6vectorIiSaIiEERKNS_39ClusterSequenceActiveAreaExplicitGhostsE) #10
  unreachable

274:                                              ; No predecessors!
  br label %275

275:                                              ; preds = %274, %272
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  %276 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 2
  %277 = load i32, ptr %32, align 4, !tbaa !11
  %278 = sext i32 %277 to i64
  %279 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %276, i64 noundef %278) #8
  store ptr %279, ptr %33, align 8, !tbaa !5
  %280 = load ptr, ptr %25, align 8, !tbaa !5
  %281 = load ptr, ptr %33, align 8, !tbaa !5
  %282 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZNK7fastjet25ClusterSequenceActiveArea38_throw_unless_jets_have_same_perp_or_EERKNS_9PseudoJetES3_dRKNS_39ClusterSequenceActiveAreaExplicitGhostsE(ptr noundef nonnull align 8 dereferenceable(424) %56, ptr noundef nonnull align 8 dereferenceable(88) %280, ptr noundef nonnull align 8 dereferenceable(88) %281, double noundef 0x3DA5FD7FE1796495, ptr noundef nonnull align 8 dereferenceable(392) %282)
          to label %283 unwind label %312

283:                                              ; preds = %275
  %284 = load double, ptr %26, align 8, !tbaa !9
  %285 = load i32, ptr %12, align 4, !tbaa !11
  %286 = sext i32 %285 to i64
  %287 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %13, i64 noundef %286) #8
  store double %284, ptr %287, align 8, !tbaa !9
  %288 = load i32, ptr %12, align 4, !tbaa !11
  %289 = sext i32 %288 to i64
  %290 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %17, i64 noundef %289) #8
  %291 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN7fastjet9PseudoJetaSERKS0_(ptr noundef nonnull align 8 dereferenceable(88) %290, ptr noundef nonnull align 8 dereferenceable(88) %27)
          to label %292 unwind label %312

292:                                              ; preds = %283
  %293 = load double, ptr %26, align 8, !tbaa !9
  %294 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 3
  %295 = load i32, ptr %12, align 4, !tbaa !11
  %296 = sext i32 %295 to i64
  %297 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %294, i64 noundef %296) #8
  %298 = getelementptr inbounds %"struct.fastjet::ClusterSequence::history_element", ptr %297, i32 0, i32 0
  %299 = load i32, ptr %298, align 8, !tbaa !13
  %300 = sext i32 %299 to i64
  %301 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %13, i64 noundef %300) #8
  store double %293, ptr %301, align 8, !tbaa !9
  %302 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 3
  %303 = load i32, ptr %12, align 4, !tbaa !11
  %304 = sext i32 %303 to i64
  %305 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %302, i64 noundef %304) #8
  %306 = getelementptr inbounds %"struct.fastjet::ClusterSequence::history_element", ptr %305, i32 0, i32 0
  %307 = load i32, ptr %306, align 8, !tbaa !13
  %308 = sext i32 %307 to i64
  %309 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %17, i64 noundef %308) #8
  %310 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN7fastjet9PseudoJetaSERKS0_(ptr noundef nonnull align 8 dereferenceable(88) %309, ptr noundef nonnull align 8 dereferenceable(88) %27)
          to label %311 unwind label %312

311:                                              ; preds = %292
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %316

312:                                              ; preds = %292, %283, %275
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %14, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %317

316:                                              ; preds = %311, %207
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %27) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %567

317:                                              ; preds = %312, %249, %206, %194
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %27) #8
  br label %318

318:                                              ; preds = %317, %190
  call void @llvm.lifetime.end.p0(i64 88, ptr %27) #8
  br label %319

319:                                              ; preds = %318, %186
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %574

320:                                              ; preds = %116
  %321 = load ptr, ptr %6, align 8, !tbaa !5
  %322 = load i32, ptr %23, align 4, !tbaa !11
  %323 = invoke noundef zeroext i1 @_ZNK7fastjet39ClusterSequenceActiveAreaExplicitGhosts13is_pure_ghostEi(ptr noundef nonnull align 8 dereferenceable(392) %321, i32 noundef %322)
          to label %324 unwind label %349

324:                                              ; preds = %320
  br i1 %323, label %566, label %325

325:                                              ; preds = %324
  %326 = load ptr, ptr %6, align 8, !tbaa !5
  %327 = load i32, ptr %24, align 4, !tbaa !11
  %328 = invoke noundef zeroext i1 @_ZNK7fastjet39ClusterSequenceActiveAreaExplicitGhosts13is_pure_ghostEi(ptr noundef nonnull align 8 dereferenceable(392) %326, i32 noundef %327)
          to label %329 unwind label %349

329:                                              ; preds = %325
  br i1 %328, label %566, label %330

330:                                              ; preds = %329
  br label %331

331:                                              ; preds = %353, %330
  %332 = load i32, ptr %11, align 4, !tbaa !11
  %333 = add nsw i32 %332, 1
  store i32 %333, ptr %11, align 4, !tbaa !11
  %334 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 3
  %335 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %334) #8
  %336 = trunc i64 %335 to i32
  %337 = icmp slt i32 %333, %336
  br i1 %337, label %338, label %354

338:                                              ; preds = %331
  %339 = load ptr, ptr %5, align 8, !tbaa !5
  %340 = load i32, ptr %11, align 4, !tbaa !11
  %341 = sext i32 %340 to i64
  %342 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %339, i64 noundef %341) #8
  %343 = load i32, ptr %342, align 4, !tbaa !11
  store i32 %343, ptr %12, align 4, !tbaa !11
  %344 = load i32, ptr %12, align 4, !tbaa !11
  %345 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 6
  %346 = load i32, ptr %345, align 4, !tbaa !56
  %347 = icmp sge i32 %344, %346
  br i1 %347, label %348, label %353

348:                                              ; preds = %338
  br label %354

349:                                              ; preds = %325, %320
  %350 = landingpad { ptr, i32 }
          cleanup
  %351 = extractvalue { ptr, i32 } %350, 0
  store ptr %351, ptr %14, align 8
  %352 = extractvalue { ptr, i32 } %350, 1
  store i32 %352, ptr %15, align 4
  br label %574

353:                                              ; preds = %338
  br label %331, !llvm.loop !59

354:                                              ; preds = %348, %331
  %355 = load i32, ptr %11, align 4, !tbaa !11
  %356 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 3
  %357 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %356) #8
  %358 = trunc i64 %357 to i32
  %359 = icmp sge i32 %355, %358
  br i1 %359, label %360, label %376

360:                                              ; preds = %354
  store i1 true, ptr %36, align 1
  %361 = call ptr @__cxa_allocate_exception(i64 40) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %362 unwind label %364

362:                                              ; preds = %360
  invoke void @_ZN7fastjet5ErrorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %361, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %363 unwind label %368

363:                                              ; preds = %362
  store i1 false, ptr %36, align 1
  invoke void @__cxa_throw(ptr %361, ptr @_ZTIN7fastjet5ErrorE, ptr @_ZN7fastjet5ErrorD2Ev) #9
          to label %718 unwind label %368

364:                                              ; preds = %360
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %14, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %15, align 4
  br label %372

368:                                              ; preds = %363, %362
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %14, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  br label %372

372:                                              ; preds = %368, %364
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #8
  %373 = load i1, ptr %36, align 1
  br i1 %373, label %374, label %375

374:                                              ; preds = %372
  call void @__cxa_free_exception(ptr %361) #8
  br label %375

375:                                              ; preds = %374, %372
  br label %574

376:                                              ; preds = %354
  %377 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 3
  %378 = load i32, ptr %12, align 4, !tbaa !11
  %379 = sext i32 %378 to i64
  %380 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %377, i64 noundef %379) #8
  %381 = getelementptr inbounds %"struct.fastjet::ClusterSequence::history_element", ptr %380, i32 0, i32 1
  %382 = load i32, ptr %381, align 4, !tbaa !15
  %383 = icmp eq i32 %382, -1
  br i1 %383, label %384, label %400

384:                                              ; preds = %376
  store i1 true, ptr %39, align 1
  %385 = call ptr @__cxa_allocate_exception(i64 40) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %386 unwind label %388

386:                                              ; preds = %384
  invoke void @_ZN7fastjet5ErrorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %385, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %387 unwind label %392

387:                                              ; preds = %386
  store i1 false, ptr %39, align 1
  invoke void @__cxa_throw(ptr %385, ptr @_ZTIN7fastjet5ErrorE, ptr @_ZN7fastjet5ErrorD2Ev) #9
          to label %718 unwind label %392

388:                                              ; preds = %384
  %389 = landingpad { ptr, i32 }
          cleanup
  %390 = extractvalue { ptr, i32 } %389, 0
  store ptr %390, ptr %14, align 8
  %391 = extractvalue { ptr, i32 } %389, 1
  store i32 %391, ptr %15, align 4
  br label %396

392:                                              ; preds = %387, %386
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %14, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  br label %396

396:                                              ; preds = %392, %388
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  %397 = load i1, ptr %39, align 1
  br i1 %397, label %398, label %399

398:                                              ; preds = %396
  call void @__cxa_free_exception(ptr %385) #8
  br label %399

399:                                              ; preds = %398, %396
  br label %574

400:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  %401 = load ptr, ptr %8, align 8, !tbaa !5
  %402 = load ptr, ptr %22, align 8, !tbaa !5
  %403 = getelementptr inbounds %"struct.fastjet::ClusterSequence::history_element", ptr %402, i32 0, i32 3
  %404 = load i32, ptr %403, align 4, !tbaa !16
  %405 = sext i32 %404 to i64
  %406 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %401, i64 noundef %405) #8
  store ptr %406, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %407 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 2
  %408 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 3
  %409 = load i32, ptr %12, align 4, !tbaa !11
  %410 = sext i32 %409 to i64
  %411 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %408, i64 noundef %410) #8
  %412 = getelementptr inbounds %"struct.fastjet::ClusterSequence::history_element", ptr %411, i32 0, i32 3
  %413 = load i32, ptr %412, align 4, !tbaa !16
  %414 = sext i32 %413 to i64
  %415 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %407, i64 noundef %414) #8
  store ptr %415, ptr %41, align 8, !tbaa !5
  %416 = load ptr, ptr %40, align 8, !tbaa !5
  %417 = load ptr, ptr %41, align 8, !tbaa !5
  %418 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZNK7fastjet25ClusterSequenceActiveArea38_throw_unless_jets_have_same_perp_or_EERKNS_9PseudoJetES3_dRKNS_39ClusterSequenceActiveAreaExplicitGhostsE(ptr noundef nonnull align 8 dereferenceable(424) %56, ptr noundef nonnull align 8 dereferenceable(88) %416, ptr noundef nonnull align 8 dereferenceable(88) %417, double noundef 0x3DA5FD7FE1796495, ptr noundef nonnull align 8 dereferenceable(392) %418)
          to label %419 unwind label %518

419:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  %420 = load ptr, ptr %6, align 8, !tbaa !5
  %421 = load ptr, ptr %40, align 8, !tbaa !5
  %422 = load ptr, ptr %420, align 8, !tbaa !17
  %423 = getelementptr inbounds ptr, ptr %422, i64 2
  %424 = load ptr, ptr %423, align 8
  %425 = invoke noundef double %424(ptr noundef nonnull align 8 dereferenceable(392) %420, ptr noundef nonnull align 8 dereferenceable(88) %421)
          to label %426 unwind label %522

426:                                              ; preds = %419
  store double %425, ptr %42, align 8, !tbaa !9
  %427 = load double, ptr %42, align 8, !tbaa !9
  %428 = load i32, ptr %12, align 4, !tbaa !11
  %429 = sext i32 %428 to i64
  %430 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %13, i64 noundef %429) #8
  %431 = load double, ptr %430, align 8, !tbaa !9
  %432 = fadd double %431, %427
  store double %432, ptr %430, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 88, ptr %43) #8
  %433 = load ptr, ptr %6, align 8, !tbaa !5
  %434 = load ptr, ptr %40, align 8, !tbaa !5
  %435 = load ptr, ptr %433, align 8, !tbaa !17
  %436 = getelementptr inbounds ptr, ptr %435, i64 4
  %437 = load ptr, ptr %436, align 8
  invoke void %437(ptr dead_on_unwind writable sret(%"class.fastjet::PseudoJet") align 8 %43, ptr noundef nonnull align 8 dereferenceable(392) %433, ptr noundef nonnull align 8 dereferenceable(88) %434)
          to label %438 unwind label %526

438:                                              ; preds = %426
  %439 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 1
  %440 = invoke noundef ptr @_ZNK7fastjet13JetDefinition10recombinerEv(ptr noundef nonnull align 8 dereferenceable(80) %439)
          to label %441 unwind label %530

441:                                              ; preds = %438
  %442 = load i32, ptr %12, align 4, !tbaa !11
  %443 = sext i32 %442 to i64
  %444 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %17, i64 noundef %443) #8
  invoke void @_ZNK7fastjet13JetDefinition10Recombiner10plus_equalERNS_9PseudoJetERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %440, ptr noundef nonnull align 8 dereferenceable(88) %444, ptr noundef nonnull align 8 dereferenceable(88) %43)
          to label %445 unwind label %530

445:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %446 = load ptr, ptr %8, align 8, !tbaa !5
  %447 = load ptr, ptr %7, align 8, !tbaa !5
  %448 = load i32, ptr %23, align 4, !tbaa !11
  %449 = sext i32 %448 to i64
  %450 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %447, i64 noundef %449) #8
  %451 = getelementptr inbounds %"struct.fastjet::ClusterSequence::history_element", ptr %450, i32 0, i32 3
  %452 = load i32, ptr %451, align 4, !tbaa !16
  %453 = sext i32 %452 to i64
  %454 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %446, i64 noundef %453) #8
  store ptr %454, ptr %44, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  %455 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 3
  %456 = load i32, ptr %12, align 4, !tbaa !11
  %457 = sext i32 %456 to i64
  %458 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %455, i64 noundef %457) #8
  %459 = getelementptr inbounds %"struct.fastjet::ClusterSequence::history_element", ptr %458, i32 0, i32 0
  %460 = load i32, ptr %459, align 8, !tbaa !13
  store i32 %460, ptr %45, align 4, !tbaa !11
  %461 = load ptr, ptr %6, align 8, !tbaa !5
  %462 = load ptr, ptr %44, align 8, !tbaa !5
  %463 = load ptr, ptr %461, align 8, !tbaa !17
  %464 = getelementptr inbounds ptr, ptr %463, i64 2
  %465 = load ptr, ptr %464, align 8
  %466 = invoke noundef double %465(ptr noundef nonnull align 8 dereferenceable(392) %461, ptr noundef nonnull align 8 dereferenceable(88) %462)
          to label %467 unwind label %534

467:                                              ; preds = %445
  %468 = load i32, ptr %45, align 4, !tbaa !11
  %469 = sext i32 %468 to i64
  %470 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %13, i64 noundef %469) #8
  store double %466, ptr %470, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 88, ptr %46) #8
  %471 = load ptr, ptr %6, align 8, !tbaa !5
  %472 = load ptr, ptr %44, align 8, !tbaa !5
  %473 = load ptr, ptr %471, align 8, !tbaa !17
  %474 = getelementptr inbounds ptr, ptr %473, i64 4
  %475 = load ptr, ptr %474, align 8
  invoke void %475(ptr dead_on_unwind writable sret(%"class.fastjet::PseudoJet") align 8 %46, ptr noundef nonnull align 8 dereferenceable(392) %471, ptr noundef nonnull align 8 dereferenceable(88) %472)
          to label %476 unwind label %538

476:                                              ; preds = %467
  %477 = load i32, ptr %45, align 4, !tbaa !11
  %478 = sext i32 %477 to i64
  %479 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %17, i64 noundef %478) #8
  %480 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN7fastjet9PseudoJetaSERKS0_(ptr noundef nonnull align 8 dereferenceable(88) %479, ptr noundef nonnull align 8 dereferenceable(88) %46)
          to label %481 unwind label %542

481:                                              ; preds = %476
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %46) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  %482 = load ptr, ptr %8, align 8, !tbaa !5
  %483 = load ptr, ptr %7, align 8, !tbaa !5
  %484 = load i32, ptr %24, align 4, !tbaa !11
  %485 = sext i32 %484 to i64
  %486 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %483, i64 noundef %485) #8
  %487 = getelementptr inbounds %"struct.fastjet::ClusterSequence::history_element", ptr %486, i32 0, i32 3
  %488 = load i32, ptr %487, align 4, !tbaa !16
  %489 = sext i32 %488 to i64
  %490 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %482, i64 noundef %489) #8
  store ptr %490, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  %491 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 3
  %492 = load i32, ptr %12, align 4, !tbaa !11
  %493 = sext i32 %492 to i64
  %494 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %491, i64 noundef %493) #8
  %495 = getelementptr inbounds %"struct.fastjet::ClusterSequence::history_element", ptr %494, i32 0, i32 1
  %496 = load i32, ptr %495, align 4, !tbaa !15
  store i32 %496, ptr %48, align 4, !tbaa !11
  %497 = load ptr, ptr %6, align 8, !tbaa !5
  %498 = load ptr, ptr %47, align 8, !tbaa !5
  %499 = load ptr, ptr %497, align 8, !tbaa !17
  %500 = getelementptr inbounds ptr, ptr %499, i64 2
  %501 = load ptr, ptr %500, align 8
  %502 = invoke noundef double %501(ptr noundef nonnull align 8 dereferenceable(392) %497, ptr noundef nonnull align 8 dereferenceable(88) %498)
          to label %503 unwind label %547

503:                                              ; preds = %481
  %504 = load i32, ptr %48, align 4, !tbaa !11
  %505 = sext i32 %504 to i64
  %506 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %13, i64 noundef %505) #8
  store double %502, ptr %506, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 88, ptr %49) #8
  %507 = load ptr, ptr %6, align 8, !tbaa !5
  %508 = load ptr, ptr %47, align 8, !tbaa !5
  %509 = load ptr, ptr %507, align 8, !tbaa !17
  %510 = getelementptr inbounds ptr, ptr %509, i64 4
  %511 = load ptr, ptr %510, align 8
  invoke void %511(ptr dead_on_unwind writable sret(%"class.fastjet::PseudoJet") align 8 %49, ptr noundef nonnull align 8 dereferenceable(392) %507, ptr noundef nonnull align 8 dereferenceable(88) %508)
          to label %512 unwind label %551

512:                                              ; preds = %503
  %513 = load i32, ptr %48, align 4, !tbaa !11
  %514 = sext i32 %513 to i64
  %515 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %17, i64 noundef %514) #8
  %516 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN7fastjet9PseudoJetaSERKS0_(ptr noundef nonnull align 8 dereferenceable(88) %515, ptr noundef nonnull align 8 dereferenceable(88) %49)
          to label %517 unwind label %555

517:                                              ; preds = %512
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %49) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %43) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  br label %566

518:                                              ; preds = %400
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %14, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %15, align 4
  br label %565

522:                                              ; preds = %419
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %14, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %15, align 4
  br label %564

526:                                              ; preds = %426
  %527 = landingpad { ptr, i32 }
          cleanup
  %528 = extractvalue { ptr, i32 } %527, 0
  store ptr %528, ptr %14, align 8
  %529 = extractvalue { ptr, i32 } %527, 1
  store i32 %529, ptr %15, align 4
  br label %563

530:                                              ; preds = %441, %438
  %531 = landingpad { ptr, i32 }
          cleanup
  %532 = extractvalue { ptr, i32 } %531, 0
  store ptr %532, ptr %14, align 8
  %533 = extractvalue { ptr, i32 } %531, 1
  store i32 %533, ptr %15, align 4
  br label %562

534:                                              ; preds = %445
  %535 = landingpad { ptr, i32 }
          cleanup
  %536 = extractvalue { ptr, i32 } %535, 0
  store ptr %536, ptr %14, align 8
  %537 = extractvalue { ptr, i32 } %535, 1
  store i32 %537, ptr %15, align 4
  br label %561

538:                                              ; preds = %467
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %14, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %15, align 4
  br label %546

542:                                              ; preds = %476
  %543 = landingpad { ptr, i32 }
          cleanup
  %544 = extractvalue { ptr, i32 } %543, 0
  store ptr %544, ptr %14, align 8
  %545 = extractvalue { ptr, i32 } %543, 1
  store i32 %545, ptr %15, align 4
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %46) #8
  br label %546

546:                                              ; preds = %542, %538
  call void @llvm.lifetime.end.p0(i64 88, ptr %46) #8
  br label %561

547:                                              ; preds = %481
  %548 = landingpad { ptr, i32 }
          cleanup
  %549 = extractvalue { ptr, i32 } %548, 0
  store ptr %549, ptr %14, align 8
  %550 = extractvalue { ptr, i32 } %548, 1
  store i32 %550, ptr %15, align 4
  br label %560

551:                                              ; preds = %503
  %552 = landingpad { ptr, i32 }
          cleanup
  %553 = extractvalue { ptr, i32 } %552, 0
  store ptr %553, ptr %14, align 8
  %554 = extractvalue { ptr, i32 } %552, 1
  store i32 %554, ptr %15, align 4
  br label %559

555:                                              ; preds = %512
  %556 = landingpad { ptr, i32 }
          cleanup
  %557 = extractvalue { ptr, i32 } %556, 0
  store ptr %557, ptr %14, align 8
  %558 = extractvalue { ptr, i32 } %556, 1
  store i32 %558, ptr %15, align 4
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %49) #8
  br label %559

559:                                              ; preds = %555, %551
  call void @llvm.lifetime.end.p0(i64 88, ptr %49) #8
  br label %560

560:                                              ; preds = %559, %547
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %561

561:                                              ; preds = %560, %546, %534
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  br label %562

562:                                              ; preds = %561, %530
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %43) #8
  br label %563

563:                                              ; preds = %562, %526
  call void @llvm.lifetime.end.p0(i64 88, ptr %43) #8
  br label %564

564:                                              ; preds = %563, %522
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %565

565:                                              ; preds = %564, %518
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  br label %574

566:                                              ; preds = %517, %329, %324
  br label %567

567:                                              ; preds = %566, %316
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  store i32 0, ptr %20, align 4
  br label %568

568:                                              ; preds = %567, %111
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  %569 = load i32, ptr %20, align 4
  switch i32 %569, label %718 [
    i32 0, label %570
    i32 4, label %571
  ]

570:                                              ; preds = %568
  br label %571

571:                                              ; preds = %570, %568
  %572 = load i32, ptr %19, align 4, !tbaa !11
  %573 = add i32 %572, 1
  store i32 %573, ptr %19, align 4, !tbaa !11
  br label %73, !llvm.loop !60

574:                                              ; preds = %565, %399, %375, %349, %319
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %575

575:                                              ; preds = %574, %112
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %709

576:                                              ; preds = %79
  call void @llvm.lifetime.start.p0(i64 24, ptr %50) #8
  %577 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZNK7fastjet15ClusterSequence21unclustered_particlesEv(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %50, ptr noundef nonnull align 8 dereferenceable(276) %577)
          to label %578 unwind label %585

578:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  store i32 0, ptr %51, align 4, !tbaa !11
  br label %579

579:                                              ; preds = %635, %578
  %580 = load i32, ptr %51, align 4, !tbaa !11
  %581 = zext i32 %580 to i64
  %582 = call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %50) #8
  %583 = icmp ult i64 %581, %582
  br i1 %583, label %589, label %584

584:                                              ; preds = %579
  store i32 9, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %639

585:                                              ; preds = %576
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %14, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %15, align 4
  br label %708

589:                                              ; preds = %579
  %590 = load ptr, ptr %6, align 8, !tbaa !5
  %591 = load i32, ptr %51, align 4, !tbaa !11
  %592 = zext i32 %591 to i64
  %593 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %50, i64 noundef %592) #8
  %594 = load ptr, ptr %590, align 8, !tbaa !17
  %595 = getelementptr inbounds ptr, ptr %594, i64 5
  %596 = load ptr, ptr %595, align 8
  %597 = invoke noundef zeroext i1 %596(ptr noundef nonnull align 8 dereferenceable(392) %590, ptr noundef nonnull align 8 dereferenceable(88) %593)
          to label %598 unwind label %616

598:                                              ; preds = %589
  br i1 %597, label %599, label %634

599:                                              ; preds = %598
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #8
  %600 = load ptr, ptr %6, align 8, !tbaa !5
  %601 = load i32, ptr %51, align 4, !tbaa !11
  %602 = zext i32 %601 to i64
  %603 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %50, i64 noundef %602) #8
  %604 = load ptr, ptr %600, align 8, !tbaa !17
  %605 = getelementptr inbounds ptr, ptr %604, i64 2
  %606 = load ptr, ptr %605, align 8
  %607 = invoke noundef double %606(ptr noundef nonnull align 8 dereferenceable(392) %600, ptr noundef nonnull align 8 dereferenceable(88) %603)
          to label %608 unwind label %620

608:                                              ; preds = %599
  store double %607, ptr %52, align 8, !tbaa !9
  %609 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %56, i32 0, i32 12
  call void @llvm.lifetime.start.p0(i64 96, ptr %53) #8
  %610 = load i32, ptr %51, align 4, !tbaa !11
  %611 = zext i32 %610 to i64
  %612 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %50, i64 noundef %611) #8
  %613 = load double, ptr %52, align 8, !tbaa !9
  invoke void @_ZN7fastjet25ClusterSequenceActiveArea8GhostJetC2ERKNS_9PseudoJetEd(ptr noundef nonnull align 8 dereferenceable(96) %53, ptr noundef nonnull align 8 dereferenceable(88) %612, double noundef %613)
          to label %614 unwind label %624

614:                                              ; preds = %608
  invoke void @_ZNSt6vectorIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %609, ptr noundef nonnull align 8 dereferenceable(96) %53)
          to label %615 unwind label %628

615:                                              ; preds = %614
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %53) #8
  call void @llvm.lifetime.end.p0(i64 96, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  br label %634

616:                                              ; preds = %589
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %14, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %15, align 4
  br label %638

620:                                              ; preds = %599
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %14, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %15, align 4
  br label %633

624:                                              ; preds = %608
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %14, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %15, align 4
  br label %632

628:                                              ; preds = %614
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %14, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %15, align 4
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %53) #8
  br label %632

632:                                              ; preds = %628, %624
  call void @llvm.lifetime.end.p0(i64 96, ptr %53) #8
  br label %633

633:                                              ; preds = %632, %620
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  br label %638

634:                                              ; preds = %615, %598
  br label %635

635:                                              ; preds = %634
  %636 = load i32, ptr %51, align 4, !tbaa !11
  %637 = add i32 %636, 1
  store i32 %637, ptr %51, align 4, !tbaa !11
  br label %579, !llvm.loop !61

638:                                              ; preds = %633, %616
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %707

639:                                              ; preds = %584
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #8
  store i32 0, ptr %54, align 4, !tbaa !11
  br label %640

640:                                              ; preds = %676, %639
  %641 = load i32, ptr %54, align 4, !tbaa !11
  %642 = zext i32 %641 to i64
  %643 = invoke noundef i64 @_ZNKSt8valarrayIdE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %644 unwind label %647

644:                                              ; preds = %640
  %645 = icmp ult i64 %642, %643
  br i1 %645, label %651, label %646

646:                                              ; preds = %644
  store i32 12, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %679

647:                                              ; preds = %640
  %648 = landingpad { ptr, i32 }
          cleanup
  %649 = extractvalue { ptr, i32 } %648, 0
  store ptr %649, ptr %14, align 8
  %650 = extractvalue { ptr, i32 } %648, 1
  store i32 %650, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %707

651:                                              ; preds = %644
  %652 = load i32, ptr %54, align 4, !tbaa !11
  %653 = zext i32 %652 to i64
  %654 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %13, i64 noundef %653) #8
  %655 = load double, ptr %654, align 8, !tbaa !9
  %656 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %56, i32 0, i32 1
  %657 = load i32, ptr %54, align 4, !tbaa !11
  %658 = zext i32 %657 to i64
  %659 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %656, i64 noundef %658) #8
  %660 = load double, ptr %659, align 8, !tbaa !9
  %661 = fadd double %660, %655
  store double %661, ptr %659, align 8, !tbaa !9
  %662 = load i32, ptr %54, align 4, !tbaa !11
  %663 = zext i32 %662 to i64
  %664 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %13, i64 noundef %663) #8
  %665 = load double, ptr %664, align 8, !tbaa !9
  %666 = load i32, ptr %54, align 4, !tbaa !11
  %667 = zext i32 %666 to i64
  %668 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %13, i64 noundef %667) #8
  %669 = load double, ptr %668, align 8, !tbaa !9
  %670 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %56, i32 0, i32 2
  %671 = load i32, ptr %54, align 4, !tbaa !11
  %672 = zext i32 %671 to i64
  %673 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %670, i64 noundef %672) #8
  %674 = load double, ptr %673, align 8, !tbaa !9
  %675 = call double @llvm.fmuladd.f64(double %665, double %669, double %674)
  store double %675, ptr %673, align 8, !tbaa !9
  br label %676

676:                                              ; preds = %651
  %677 = load i32, ptr %54, align 4, !tbaa !11
  %678 = add i32 %677, 1
  store i32 %678, ptr %54, align 4, !tbaa !11
  br label %640, !llvm.loop !62

679:                                              ; preds = %646
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #8
  store i32 0, ptr %55, align 4, !tbaa !11
  br label %680

680:                                              ; preds = %703, %679
  %681 = load i32, ptr %55, align 4, !tbaa !11
  %682 = zext i32 %681 to i64
  %683 = invoke noundef i64 @_ZNKSt8valarrayIN7fastjet9PseudoJetEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %684 unwind label %687

684:                                              ; preds = %680
  %685 = icmp ult i64 %682, %683
  br i1 %685, label %691, label %686

686:                                              ; preds = %684
  store i32 15, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %706

687:                                              ; preds = %694, %691, %680
  %688 = landingpad { ptr, i32 }
          cleanup
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %14, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %707

691:                                              ; preds = %684
  %692 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %56, i32 0, i32 1
  %693 = invoke noundef ptr @_ZNK7fastjet13JetDefinition10recombinerEv(ptr noundef nonnull align 8 dereferenceable(80) %692)
          to label %694 unwind label %687

694:                                              ; preds = %691
  %695 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %56, i32 0, i32 3
  %696 = load i32, ptr %55, align 4, !tbaa !11
  %697 = zext i32 %696 to i64
  %698 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %695, i64 noundef %697) #8
  %699 = load i32, ptr %55, align 4, !tbaa !11
  %700 = zext i32 %699 to i64
  %701 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %17, i64 noundef %700) #8
  invoke void @_ZNK7fastjet13JetDefinition10Recombiner10plus_equalERNS_9PseudoJetERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %693, ptr noundef nonnull align 8 dereferenceable(88) %698, ptr noundef nonnull align 8 dereferenceable(88) %701)
          to label %702 unwind label %687

702:                                              ; preds = %694
  br label %703

703:                                              ; preds = %702
  %704 = load i32, ptr %55, align 4, !tbaa !11
  %705 = add i32 %704, 1
  store i32 %705, ptr %55, align 4, !tbaa !11
  br label %680, !llvm.loop !63

706:                                              ; preds = %686
  call void @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #8
  call void @_ZNSt8valarrayIN7fastjet9PseudoJetEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #8
  call void @_ZNSt8valarrayIdED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  ret void

707:                                              ; preds = %687, %647, %638
  call void @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #8
  br label %708

708:                                              ; preds = %707, %585
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #8
  br label %709

709:                                              ; preds = %708, %575, %100
  call void @_ZNSt8valarrayIN7fastjet9PseudoJetEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #8
  br label %710

710:                                              ; preds = %709, %88
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #8
  br label %711

711:                                              ; preds = %710, %84
  call void @_ZNSt8valarrayIdED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  br label %712

712:                                              ; preds = %711, %80
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  br label %713

713:                                              ; preds = %712
  %714 = load ptr, ptr %14, align 8
  %715 = load i32, ptr %15, align 4
  %716 = insertvalue { ptr, i32 } poison, ptr %714, 0
  %717 = insertvalue { ptr, i32 } %716, i32 %715, 1
  resume { ptr, i32 } %717

718:                                              ; preds = %568, %387, %363, %237
  unreachable
}

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) #5

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt8valarrayIN7fastjet9PseudoJetEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16)) #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(88) ptr @_ZN7fastjet9PseudoJetaSERKS0_(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(88)) #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) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88)) #2 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 #1 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 #4 align 2

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

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

declare void @__cxa_free_exception(ptr)

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

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

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

declare noundef zeroext i1 @_ZNK7fastjet39ClusterSequenceActiveAreaExplicitGhosts13is_pure_ghostEi(ptr noundef nonnull align 8 dereferenceable(392), i32 noundef) #3

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt8valarrayIdEC2Em(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt8valarrayIN7fastjet9PseudoJetEEC2Em(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7fastjet15ClusterSequence11n_particlesEv(ptr noundef nonnull align 8 dereferenceable(276)) #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7fastjet25ClusterSequenceActiveArea8GhostJetC2ERKNS_9PseudoJetEd(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(88), double noundef) unnamed_addr #4 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7fastjet25ClusterSequenceActiveArea38_throw_unless_jets_have_same_perp_or_EERKNS_9PseudoJetES3_dRKNS_39ClusterSequenceActiveAreaExplicitGhostsE(ptr noundef nonnull align 8 dereferenceable(424), ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(88), double noundef, ptr noundef nonnull align 8 dereferenceable(392)) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) #5 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt8valarrayIdE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16)) #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt8valarrayIN7fastjet9PseudoJetEED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt8valarrayIdED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 align 2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !12, i64 0}
!14 = !{!"_ZTSN7fastjet15ClusterSequence15history_elementE", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !10, i64 16, !10, i64 24}
!15 = !{!14, !12, i64 4}
!16 = !{!14, !12, i64 12}
!17 = !{!18, !18, i64 0}
!18 = !{!"vtable pointer", !8, i64 0}
!19 = !{!20, !10, i64 360}
!20 = !{!"_ZTSN7fastjet25ClusterSequenceActiveAreaE", !21, i64 0, !46, i64 280, !46, i64 296, !48, i64 312, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !39, i64 368, !12, i64 372, !49, i64 376, !49, i64 400}
!21 = !{!"_ZTSN7fastjet23ClusterSequenceAreaBaseE", !22, i64 0}
!22 = !{!"_ZTSN7fastjet15ClusterSequenceE", !23, i64 8, !31, i64 88, !35, i64 112, !39, i64 136, !12, i64 140, !10, i64 144, !10, i64 152, !10, i64 160, !10, i64 168, !25, i64 176, !24, i64 180, !40, i64 184, !12, i64 192, !39, i64 196, !39, i64 197, !41, i64 200, !42, i64 208, !10, i64 232, !10, i64 240, !10, i64 248, !10, i64 256, !12, i64 264, !12, i64 268, !12, i64 272}
!23 = !{!"_ZTSN7fastjet13JetDefinitionE", !24, i64 0, !10, i64 8, !10, i64 16, !25, i64 24, !6, i64 32, !26, i64 40, !27, i64 48, !6, i64 64, !30, i64 72}
!24 = !{!"_ZTSN7fastjet12JetAlgorithmE", !7, i64 0}
!25 = !{!"_ZTSN7fastjet8StrategyE", !7, i64 0}
!26 = !{!"_ZTSN7fastjet9SharedPtrIKNS_13JetDefinition6PluginEEE", !6, i64 0}
!27 = !{!"_ZTSN7fastjet13JetDefinition17DefaultRecombinerE", !28, i64 0, !29, i64 8}
!28 = !{!"_ZTSN7fastjet13JetDefinition10RecombinerE"}
!29 = !{!"_ZTSN7fastjet19RecombinationSchemeE", !7, i64 0}
!30 = !{!"_ZTSN7fastjet9SharedPtrIKNS_13JetDefinition10RecombinerEEE", !6, i64 0}
!31 = !{!"_ZTSSt6vectorIN7fastjet9PseudoJetESaIS1_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!35 = !{!"_ZTSSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!39 = !{!"bool", !7, i64 0}
!40 = !{!"_ZTSN7fastjet9SharedPtrINS_22PseudoJetStructureBaseEEE", !6, i64 0}
!41 = !{!"_ZTSN7fastjet9SharedPtrINS_15ClusterSequence6ExtrasEEE", !6, i64 0}
!42 = !{!"_ZTSSt6vectorIN7fastjet15ClusterSequence4TileESaIS2_EE", !43, i64 0}
!43 = !{!"_ZTSSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE12_Vector_implE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!46 = !{!"_ZTSSt8valarrayIdE", !47, i64 0, !6, i64 8}
!47 = !{!"long", !7, i64 0}
!48 = !{!"_ZTSSt8valarrayIN7fastjet9PseudoJetEE", !47, i64 0, !6, i64 8}
!49 = !{!"_ZTSSt6vectorIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!53 = !{!20, !10, i64 328}
!54 = !{!20, !10, i64 336}
!55 = !{!20, !10, i64 344}
!56 = !{!22, !12, i64 140}
!57 = distinct !{!57, !58}
!58 = !{!"llvm.loop.mustprogress"}
!59 = distinct !{!59, !58}
!60 = distinct !{!60, !58}
!61 = distinct !{!61, !58}
!62 = distinct !{!62, !58}
!63 = distinct !{!63, !58}


; 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.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = 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::valarray" = type { i64, ptr }
%"class.std::valarray.13" = type { i64, ptr }
%"class.fastjet::PseudoJet" = type { ptr, %"class.fastjet::SharedPtr.6", %"class.fastjet::SharedPtr.25", double, double, double, double, double, double, double, i32, i32 }
%"class.fastjet::SharedPtr.6" = type { ptr }
%"class.fastjet::SharedPtr.25" = type { ptr }
%"class.fastjet::ClusterSequenceActiveArea::GhostJet" = type { %"class.fastjet::PseudoJet", double }
%"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::allocator.44" = type { i8 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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 }

@_ZTIN7fastjet5ErrorE = external dso_local constant { ptr, ptr }, align 8
@.str.12 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [54 x i8], align 1
@__PRETTY_FUNCTION__._ZN7fastjet25ClusterSequenceActiveArea15_transfer_areasERKSt6vectorIiSaIiEERKNS_39ClusterSequenceActiveAreaExplicitGhostsE = external hidden unnamed_addr constant [127 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [99 x i8], align 1

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

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

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

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

declare i32 @__gxx_personality_v0(...)

declare void @_ZN7fastjet9PseudoJetC1Edddd(ptr noundef nonnull align 8 dereferenceable(88), double noundef, double noundef, double noundef, double noundef) unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7fastjet25ClusterSequenceActiveArea15_transfer_areasERKSt6vectorIiSaIiEERKNS_39ClusterSequenceActiveAreaExplicitGhostsE(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(392) %2) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::vector.20", align 8
  %5 = alloca %"class.std::valarray", align 8
  %6 = alloca double, align 8
  %7 = alloca %"class.std::valarray.13", align 8
  %8 = alloca %"class.fastjet::PseudoJet", align 8
  %9 = alloca %"class.fastjet::PseudoJet", align 8
  %10 = alloca %"class.fastjet::ClusterSequenceActiveArea::GhostJet", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator.44", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.44", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.44", align 1
  %17 = alloca %"class.fastjet::PseudoJet", align 8
  %18 = alloca %"class.fastjet::PseudoJet", align 8
  %19 = alloca %"class.fastjet::PseudoJet", align 8
  %20 = alloca %"class.std::vector", align 8
  %21 = alloca %"class.fastjet::ClusterSequenceActiveArea::GhostJet", align 8
  %22 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7fastjet15ClusterSequence7historyEv(ptr noundef nonnull align 8 dereferenceable(276) %2)
  %23 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7fastjet15ClusterSequence4jetsEv(ptr noundef nonnull align 8 dereferenceable(276) %2)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #8
  call void @_ZNK7fastjet15ClusterSequence20unique_history_orderEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.20") align 8 %4, ptr noundef nonnull align 8 dereferenceable(276) %2)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %24 = getelementptr inbounds i8, ptr %0, i64 112
  %25 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #8
  invoke void @_ZNSt8valarrayIdEC2Em(ptr noundef nonnull align 8 dereferenceable(16) %5, i64 noundef %25)
          to label %26 unwind label %45

26:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #8
  store double 0.000000e+00, ptr %6, align 8, !tbaa !5
  %27 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt8valarrayIdEaSERKd(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %28 unwind label %47

28:                                               ; preds = %26
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #8
  %29 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #8
  invoke void @_ZNSt8valarrayIN7fastjet9PseudoJetEEC2Em(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %29)
          to label %30 unwind label %49

30:                                               ; preds = %28
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %8) #8
  invoke void @_ZN7fastjet9PseudoJetC1Edddd(ptr noundef nonnull align 8 dereferenceable(88) %8, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %31 unwind label %51

31:                                               ; preds = %30
  %32 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %33 unwind label %53

33:                                               ; preds = %31
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %8) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %8) #8
  %34 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  %.not256 = icmp eq i64 %34, 0
  br i1 %.not256, label %._crit_edge248, label %.lr.ph247

.lr.ph247:                                        ; preds = %33
  %35 = getelementptr inbounds i8, ptr %0, i64 140
  %36 = getelementptr inbounds i8, ptr %0, i64 88
  %37 = getelementptr inbounds i8, ptr %0, i64 8
  %38 = getelementptr inbounds i8, ptr %0, i64 376
  %39 = getelementptr inbounds i8, ptr %0, i64 360
  %40 = getelementptr inbounds i8, ptr %0, i64 328
  %41 = getelementptr inbounds i8, ptr %0, i64 336
  %42 = getelementptr inbounds i8, ptr %0, i64 344
  br label %56

._crit_edge248:                                   ; preds = %311, %33
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #8
  invoke void @_ZNK7fastjet15ClusterSequence21unclustered_particlesEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %20, ptr noundef nonnull align 8 dereferenceable(276) %2)
          to label %.preheader228 unwind label %319

.preheader228:                                    ; preds = %._crit_edge248
  %43 = call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  %.not257 = icmp eq i64 %43, 0
  br i1 %.not257, label %.preheader227, label %.lr.ph250

.lr.ph250:                                        ; preds = %.preheader228
  %44 = getelementptr inbounds i8, ptr %0, i64 400
  br label %321

45:                                               ; preds = %3
  %46 = landingpad { ptr, i32 }
          cleanup
  br label %391

47:                                               ; preds = %26
  %48 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  br label %390

49:                                               ; preds = %28
  %50 = landingpad { ptr, i32 }
          cleanup
  br label %389

51:                                               ; preds = %30
  %52 = landingpad { ptr, i32 }
          cleanup
  br label %55

53:                                               ; preds = %31
  %54 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %8) #8
  br label %55

55:                                               ; preds = %53, %51
  %.pn = phi { ptr, i32 } [ %54, %53 ], [ %52, %51 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %8) #8
  br label %388

56:                                               ; preds = %.lr.ph247, %311
  %57 = phi i64 [ 0, %.lr.ph247 ], [ %313, %311 ]
  %.0116245 = phi i32 [ -1, %.lr.ph247 ], [ %.5, %311 ]
  %.0118244 = phi i32 [ -1, %.lr.ph247 ], [ %.7, %311 ]
  %.0158243 = phi i32 [ 0, %.lr.ph247 ], [ %312, %311 ]
  %58 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %57) #8
  %59 = load i32, ptr %58, align 4, !tbaa !9
  %60 = call noundef i32 @_ZNK7fastjet15ClusterSequence11n_particlesEv(ptr noundef nonnull align 8 dereferenceable(276) %2)
  %61 = icmp ult i32 %59, %60
  br i1 %61, label %311, label %62

62:                                               ; preds = %56
  %63 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %57) #8
  %64 = load i32, ptr %63, align 4, !tbaa !9
  %65 = sext i32 %64 to i64
  %66 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %65) #8
  %67 = load i32, ptr %66, align 8, !tbaa !11
  %68 = getelementptr inbounds i8, ptr %66, i64 4
  %69 = load i32, ptr %68, align 4, !tbaa !13
  %70 = icmp eq i32 %69, -1
  br i1 %70, label %71, label %172

71:                                               ; preds = %62
  %72 = sext i32 %67 to i64
  %73 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %72) #8
  %74 = getelementptr inbounds i8, ptr %73, i64 12
  %75 = load i32, ptr %74, align 4, !tbaa !14
  %76 = sext i32 %75 to i64
  %77 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %76) #8
  %78 = load ptr, ptr %2, align 8, !tbaa !15
  %79 = getelementptr inbounds i8, ptr %78, i64 16
  %80 = load ptr, ptr %79, align 8
  %81 = invoke noundef double %80(ptr noundef nonnull align 8 dereferenceable(392) %2, ptr noundef nonnull align 8 dereferenceable(88) %77)
          to label %82 unwind label %109

82:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %9) #8
  %83 = load ptr, ptr %2, align 8, !tbaa !15
  %84 = getelementptr inbounds i8, ptr %83, i64 32
  %85 = load ptr, ptr %84, align 8
  invoke void %85(ptr dead_on_unwind nonnull writable sret(%"class.fastjet::PseudoJet") align 8 %9, ptr noundef nonnull align 8 dereferenceable(392) %2, ptr noundef nonnull align 8 dereferenceable(88) %77)
          to label %86 unwind label %111

86:                                               ; preds = %82
  %87 = invoke noundef zeroext i1 @_ZNK7fastjet39ClusterSequenceActiveAreaExplicitGhosts13is_pure_ghostEi(ptr noundef nonnull align 8 dereferenceable(392) %2, i32 noundef %67)
          to label %88 unwind label %113

88:                                               ; preds = %86
  br i1 %87, label %94, label %.preheader229

.preheader229:                                    ; preds = %88
  %89 = add i32 %.0116245, 1
  %90 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #8
  %91 = trunc i64 %90 to i32
  %92 = icmp slt i32 %89, %91
  br i1 %92, label %.lr.ph236.preheader, label %._crit_edge237

.lr.ph236.preheader:                              ; preds = %.preheader229
  %93 = sext i32 %89 to i64
  br label %.lr.ph236

94:                                               ; preds = %88
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %10) #8
  invoke void @_ZN7fastjet25ClusterSequenceActiveArea8GhostJetC2ERKNS_9PseudoJetEd(ptr noundef nonnull align 8 dereferenceable(96) %10, ptr noundef nonnull align 8 dereferenceable(88) %77, double noundef %81)
          to label %95 unwind label %115

95:                                               ; preds = %94
  invoke void @_ZNSt6vectorIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %38, ptr noundef nonnull align 8 dereferenceable(96) %10)
          to label %96 unwind label %117

96:                                               ; preds = %95
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %10) #8
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %10) #8
  %97 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %77)
          to label %98 unwind label %113

98:                                               ; preds = %96
  %99 = call noundef double @_ZSt3absd(double noundef %97)
  %100 = load double, ptr %39, align 8, !tbaa !17
  %101 = fcmp olt double %99, %100
  br i1 %101, label %102, label %169

102:                                              ; preds = %98
  %103 = load double, ptr %40, align 8, !tbaa !52
  %104 = fadd double %81, %103
  store double %104, ptr %40, align 8, !tbaa !52
  %105 = load double, ptr %41, align 8, !tbaa !53
  %106 = call double @llvm.fmuladd.f64(double %81, double %81, double %105)
  store double %106, ptr %41, align 8, !tbaa !53
  %107 = load double, ptr %42, align 8, !tbaa !54
  %108 = fadd double %107, 1.000000e+00
  store double %108, ptr %42, align 8, !tbaa !54
  br label %169

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

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

113:                                              ; preds = %96, %86
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %170

115:                                              ; preds = %94
  %116 = landingpad { ptr, i32 }
          cleanup
  br label %119

117:                                              ; preds = %95
  %118 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %10) #8
  br label %119

119:                                              ; preds = %117, %115
  %.pn205 = phi { ptr, i32 } [ %118, %117 ], [ %116, %115 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %10) #8
  br label %170

120:                                              ; preds = %.lr.ph236
  %indvars.iv.next264 = add nsw i64 %indvars.iv263, 1
  %121 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #8
  %sext267 = shl i64 %121, 32
  %122 = ashr exact i64 %sext267, 32
  %123 = icmp slt i64 %indvars.iv.next264, %122
  br i1 %123, label %.lr.ph236, label %._crit_edge237.loopexit, !llvm.loop !55

.lr.ph236:                                        ; preds = %.lr.ph236.preheader, %120
  %indvars.iv263 = phi i64 [ %93, %.lr.ph236.preheader ], [ %indvars.iv.next264, %120 ]
  %124 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv263) #8
  %125 = load i32, ptr %124, align 4, !tbaa !9
  %126 = load i32, ptr %35, align 4, !tbaa !57
  %.not201 = icmp slt i32 %125, %126
  br i1 %.not201, label %120, label %._crit_edge237.loopexit, !llvm.loop !55

._crit_edge237.loopexit:                          ; preds = %.lr.ph236, %120
  %.lcssa231.ph.in = phi i64 [ %indvars.iv.next264, %120 ], [ %indvars.iv263, %.lr.ph236 ]
  %.lcssa231.ph = trunc i64 %.lcssa231.ph.in to i32
  br label %._crit_edge237

._crit_edge237:                                   ; preds = %._crit_edge237.loopexit, %.preheader229
  %.lcssa231 = phi i32 [ %89, %.preheader229 ], [ %.lcssa231.ph, %._crit_edge237.loopexit ]
  %.2120 = phi i32 [ %.0118244, %.preheader229 ], [ %125, %._crit_edge237.loopexit ]
  %127 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #8
  %128 = trunc i64 %127 to i32
  %.not202 = icmp slt i32 %.lcssa231, %128
  br i1 %.not202, label %137, label %129

129:                                              ; preds = %._crit_edge237
  %130 = call ptr @__cxa_allocate_exception(i64 40) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %131 unwind label %.thread

131:                                              ; preds = %129
  invoke void @_ZN7fastjet5ErrorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %130, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %132 unwind label %134

132:                                              ; preds = %131
  invoke void @__cxa_throw(ptr nonnull %130, ptr nonnull @_ZTIN7fastjet5ErrorE, ptr nonnull @_ZN7fastjet5ErrorD2Ev) #9
          to label %392 unwind label %134

.thread:                                          ; preds = %129
  %133 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  br label %136

134:                                              ; preds = %131, %132
  %.0159 = phi i1 [ false, %132 ], [ true, %131 ]
  %135 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  br i1 %.0159, label %136, label %170

136:                                              ; preds = %.thread, %134
  %.pn203218 = phi { ptr, i32 } [ %133, %.thread ], [ %135, %134 ]
  call void @__cxa_free_exception(ptr %130) #8
  br label %170

137:                                              ; preds = %._crit_edge237
  %138 = sext i32 %.2120 to i64
  %139 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %138) #8
  %140 = load i32, ptr %139, align 8, !tbaa !11
  %141 = sext i32 %140 to i64
  %142 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %141) #8
  %143 = getelementptr inbounds i8, ptr %142, i64 12
  %144 = load i32, ptr %143, align 4, !tbaa !14
  %145 = icmp sgt i32 %144, -1
  br i1 %145, label %146, label %.critedge

146:                                              ; preds = %137
  %147 = call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %36) #8
  %148 = trunc i64 %147 to i32
  %149 = icmp slt i32 %144, %148
  br i1 %149, label %150, label %.critedge

.critedge:                                        ; preds = %137, %146
  call void @__assert_fail(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.12, i32 noundef 621, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7fastjet25ClusterSequenceActiveArea15_transfer_areasERKSt6vectorIiSaIiEERKNS_39ClusterSequenceActiveAreaExplicitGhostsE) #10
  unreachable

150:                                              ; preds = %146
  %151 = zext nneg i32 %144 to i64
  %152 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %151) #8
  invoke void @_ZNK7fastjet25ClusterSequenceActiveArea38_throw_unless_jets_have_same_perp_or_EERKNS_9PseudoJetES3_dRKNS_39ClusterSequenceActiveAreaExplicitGhostsE(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull align 8 dereferenceable(88) %77, ptr noundef nonnull align 8 dereferenceable(88) %152, double noundef 0x3DA5FD7FE1796495, ptr noundef nonnull align 8 dereferenceable(392) %2)
          to label %153 unwind label %167

153:                                              ; preds = %150
  %154 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %5, i64 noundef %138) #8
  store double %81, ptr %154, align 8, !tbaa !5
  %155 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %138) #8
  %156 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN7fastjet9PseudoJetaSERKS0_(ptr noundef nonnull align 8 dereferenceable(88) %155, ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %157 unwind label %167

157:                                              ; preds = %153
  %158 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %138) #8
  %159 = load i32, ptr %158, align 8, !tbaa !11
  %160 = sext i32 %159 to i64
  %161 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %5, i64 noundef %160) #8
  store double %81, ptr %161, align 8, !tbaa !5
  %162 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %138) #8
  %163 = load i32, ptr %162, align 8, !tbaa !11
  %164 = sext i32 %163 to i64
  %165 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %164) #8
  %166 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN7fastjet9PseudoJetaSERKS0_(ptr noundef nonnull align 8 dereferenceable(88) %165, ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %169 unwind label %167

167:                                              ; preds = %157, %153, %150
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %170

169:                                              ; preds = %157, %98, %102
  %.3121 = phi i32 [ %.0118244, %102 ], [ %.0118244, %98 ], [ %.2120, %157 ]
  %.2 = phi i32 [ %.0116245, %102 ], [ %.0116245, %98 ], [ %.lcssa231, %157 ]
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %9) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #8
  br label %311

170:                                              ; preds = %134, %136, %167, %119, %113
  %.pn207 = phi { ptr, i32 } [ %114, %113 ], [ %.pn205, %119 ], [ %.pn203218, %136 ], [ %135, %134 ], [ %168, %167 ]
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %9) #8
  br label %171

171:                                              ; preds = %170, %111
  %.pn207.pn = phi { ptr, i32 } [ %.pn207, %170 ], [ %112, %111 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #8
  br label %388

172:                                              ; preds = %62
  %173 = invoke noundef zeroext i1 @_ZNK7fastjet39ClusterSequenceActiveAreaExplicitGhosts13is_pure_ghostEi(ptr noundef nonnull align 8 dereferenceable(392) %2, i32 noundef %67)
          to label %174 unwind label %190

174:                                              ; preds = %172
  br i1 %173, label %311, label %175

175:                                              ; preds = %174
  %176 = invoke noundef zeroext i1 @_ZNK7fastjet39ClusterSequenceActiveAreaExplicitGhosts13is_pure_ghostEi(ptr noundef nonnull align 8 dereferenceable(392) %2, i32 noundef %69)
          to label %177 unwind label %190

177:                                              ; preds = %175
  br i1 %176, label %311, label %.preheader230

.preheader230:                                    ; preds = %177
  %178 = add i32 %.0116245, 1
  %179 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #8
  %180 = trunc i64 %179 to i32
  %181 = icmp slt i32 %178, %180
  br i1 %181, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %.preheader230
  %182 = sext i32 %178 to i64
  br label %.lr.ph

183:                                              ; preds = %.lr.ph
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %184 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #8
  %sext = shl i64 %184, 32
  %185 = ashr exact i64 %sext, 32
  %186 = icmp slt i64 %indvars.iv.next, %185
  br i1 %186, label %.lr.ph, label %._crit_edge.loopexit, !llvm.loop !58

.lr.ph:                                           ; preds = %.lr.ph.preheader, %183
  %indvars.iv = phi i64 [ %182, %.lr.ph.preheader ], [ %indvars.iv.next, %183 ]
  %187 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv) #8
  %188 = load i32, ptr %187, align 4, !tbaa !9
  %189 = load i32, ptr %35, align 4, !tbaa !57
  %.not = icmp slt i32 %188, %189
  br i1 %.not, label %183, label %._crit_edge.loopexit, !llvm.loop !58

190:                                              ; preds = %175, %172
  %191 = landingpad { ptr, i32 }
          cleanup
  br label %388

._crit_edge.loopexit:                             ; preds = %.lr.ph, %183
  %.lcssa.ph.in = phi i64 [ %indvars.iv.next, %183 ], [ %indvars.iv, %.lr.ph ]
  %.lcssa.ph = trunc i64 %.lcssa.ph.in to i32
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %.preheader230
  %.lcssa = phi i32 [ %178, %.preheader230 ], [ %.lcssa.ph, %._crit_edge.loopexit ]
  %.5123 = phi i32 [ %.0118244, %.preheader230 ], [ %188, %._crit_edge.loopexit ]
  %192 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #8
  %193 = trunc i64 %192 to i32
  %.not186 = icmp slt i32 %.lcssa, %193
  br i1 %.not186, label %202, label %194

194:                                              ; preds = %._crit_edge
  %195 = call ptr @__cxa_allocate_exception(i64 40) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %196 unwind label %.thread219

196:                                              ; preds = %194
  invoke void @_ZN7fastjet5ErrorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %195, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %197 unwind label %199

197:                                              ; preds = %196
  invoke void @__cxa_throw(ptr nonnull %195, ptr nonnull @_ZTIN7fastjet5ErrorE, ptr nonnull @_ZN7fastjet5ErrorD2Ev) #9
          to label %392 unwind label %199

.thread219:                                       ; preds = %194
  %198 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  br label %201

199:                                              ; preds = %196, %197
  %.0161 = phi i1 [ false, %197 ], [ true, %196 ]
  %200 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  br i1 %.0161, label %201, label %388

201:                                              ; preds = %.thread219, %199
  %.pn199222 = phi { ptr, i32 } [ %198, %.thread219 ], [ %200, %199 ]
  call void @__cxa_free_exception(ptr %195) #8
  br label %388

202:                                              ; preds = %._crit_edge
  %203 = sext i32 %.5123 to i64
  %204 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %203) #8
  %205 = getelementptr inbounds i8, ptr %204, i64 4
  %206 = load i32, ptr %205, align 4, !tbaa !13
  %207 = icmp eq i32 %206, -1
  br i1 %207, label %208, label %216

208:                                              ; preds = %202
  %209 = call ptr @__cxa_allocate_exception(i64 40) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %210 unwind label %.thread223

210:                                              ; preds = %208
  invoke void @_ZN7fastjet5ErrorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %209, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %211 unwind label %213

211:                                              ; preds = %210
  invoke void @__cxa_throw(ptr nonnull %209, ptr nonnull @_ZTIN7fastjet5ErrorE, ptr nonnull @_ZN7fastjet5ErrorD2Ev) #9
          to label %392 unwind label %213

.thread223:                                       ; preds = %208
  %212 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  br label %215

213:                                              ; preds = %210, %211
  %.0163 = phi i1 [ false, %211 ], [ true, %210 ]
  %214 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  br i1 %.0163, label %215, label %388

215:                                              ; preds = %.thread223, %213
  %.pn197226 = phi { ptr, i32 } [ %212, %.thread223 ], [ %214, %213 ]
  call void @__cxa_free_exception(ptr %209) #8
  br label %388

216:                                              ; preds = %202
  %217 = getelementptr inbounds i8, ptr %66, i64 12
  %218 = load i32, ptr %217, align 4, !tbaa !14
  %219 = sext i32 %218 to i64
  %220 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %219) #8
  %221 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %203) #8
  %222 = getelementptr inbounds i8, ptr %221, i64 12
  %223 = load i32, ptr %222, align 4, !tbaa !14
  %224 = sext i32 %223 to i64
  %225 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %224) #8
  invoke void @_ZNK7fastjet25ClusterSequenceActiveArea38_throw_unless_jets_have_same_perp_or_EERKNS_9PseudoJetES3_dRKNS_39ClusterSequenceActiveAreaExplicitGhostsE(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull align 8 dereferenceable(88) %220, ptr noundef nonnull align 8 dereferenceable(88) %225, double noundef 0x3DA5FD7FE1796495, ptr noundef nonnull align 8 dereferenceable(392) %2)
          to label %226 unwind label %287

226:                                              ; preds = %216
  %227 = load ptr, ptr %2, align 8, !tbaa !15
  %228 = getelementptr inbounds i8, ptr %227, i64 16
  %229 = load ptr, ptr %228, align 8
  %230 = invoke noundef double %229(ptr noundef nonnull align 8 dereferenceable(392) %2, ptr noundef nonnull align 8 dereferenceable(88) %220)
          to label %231 unwind label %289

231:                                              ; preds = %226
  %232 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %5, i64 noundef %203) #8
  %233 = load double, ptr %232, align 8, !tbaa !5
  %234 = fadd double %230, %233
  store double %234, ptr %232, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %17) #8
  %235 = load ptr, ptr %2, align 8, !tbaa !15
  %236 = getelementptr inbounds i8, ptr %235, i64 32
  %237 = load ptr, ptr %236, align 8
  invoke void %237(ptr dead_on_unwind nonnull writable sret(%"class.fastjet::PseudoJet") align 8 %17, ptr noundef nonnull align 8 dereferenceable(392) %2, ptr noundef nonnull align 8 dereferenceable(88) %220)
          to label %238 unwind label %291

238:                                              ; preds = %231
  %239 = call noundef ptr @_ZNK7fastjet13JetDefinition10recombinerEv(ptr noundef nonnull align 8 dereferenceable(80) %37)
  %240 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %203) #8
  invoke void @_ZNK7fastjet13JetDefinition10Recombiner10plus_equalERNS_9PseudoJetERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %239, ptr noundef nonnull align 8 dereferenceable(88) %240, ptr noundef nonnull align 8 dereferenceable(88) %17)
          to label %241 unwind label %293

241:                                              ; preds = %238
  %242 = sext i32 %67 to i64
  %243 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %242) #8
  %244 = getelementptr inbounds i8, ptr %243, i64 12
  %245 = load i32, ptr %244, align 4, !tbaa !14
  %246 = sext i32 %245 to i64
  %247 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %246) #8
  %248 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %203) #8
  %249 = load i32, ptr %248, align 8, !tbaa !11
  %250 = load ptr, ptr %2, align 8, !tbaa !15
  %251 = getelementptr inbounds i8, ptr %250, i64 16
  %252 = load ptr, ptr %251, align 8
  %253 = invoke noundef double %252(ptr noundef nonnull align 8 dereferenceable(392) %2, ptr noundef nonnull align 8 dereferenceable(88) %247)
          to label %254 unwind label %295

254:                                              ; preds = %241
  %255 = sext i32 %249 to i64
  %256 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %5, i64 noundef %255) #8
  store double %253, ptr %256, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %18) #8
  %257 = load ptr, ptr %2, align 8, !tbaa !15
  %258 = getelementptr inbounds i8, ptr %257, i64 32
  %259 = load ptr, ptr %258, align 8
  invoke void %259(ptr dead_on_unwind nonnull writable sret(%"class.fastjet::PseudoJet") align 8 %18, ptr noundef nonnull align 8 dereferenceable(392) %2, ptr noundef nonnull align 8 dereferenceable(88) %247)
          to label %260 unwind label %297

260:                                              ; preds = %254
  %261 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %255) #8
  %262 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN7fastjet9PseudoJetaSERKS0_(ptr noundef nonnull align 8 dereferenceable(88) %261, ptr noundef nonnull align 8 dereferenceable(88) %18)
          to label %263 unwind label %299

263:                                              ; preds = %260
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %18) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %18) #8
  %264 = sext i32 %69 to i64
  %265 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %264) #8
  %266 = getelementptr inbounds i8, ptr %265, i64 12
  %267 = load i32, ptr %266, align 4, !tbaa !14
  %268 = sext i32 %267 to i64
  %269 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %268) #8
  %270 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %203) #8
  %271 = getelementptr inbounds i8, ptr %270, i64 4
  %272 = load i32, ptr %271, align 4, !tbaa !13
  %273 = load ptr, ptr %2, align 8, !tbaa !15
  %274 = getelementptr inbounds i8, ptr %273, i64 16
  %275 = load ptr, ptr %274, align 8
  %276 = invoke noundef double %275(ptr noundef nonnull align 8 dereferenceable(392) %2, ptr noundef nonnull align 8 dereferenceable(88) %269)
          to label %277 unwind label %302

277:                                              ; preds = %263
  %278 = sext i32 %272 to i64
  %279 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %5, i64 noundef %278) #8
  store double %276, ptr %279, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %19) #8
  %280 = load ptr, ptr %2, align 8, !tbaa !15
  %281 = getelementptr inbounds i8, ptr %280, i64 32
  %282 = load ptr, ptr %281, align 8
  invoke void %282(ptr dead_on_unwind nonnull writable sret(%"class.fastjet::PseudoJet") align 8 %19, ptr noundef nonnull align 8 dereferenceable(392) %2, ptr noundef nonnull align 8 dereferenceable(88) %269)
          to label %283 unwind label %304

283:                                              ; preds = %277
  %284 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %278) #8
  %285 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN7fastjet9PseudoJetaSERKS0_(ptr noundef nonnull align 8 dereferenceable(88) %284, ptr noundef nonnull align 8 dereferenceable(88) %19)
          to label %286 unwind label %306

286:                                              ; preds = %283
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %19) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %19) #8
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %17) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %17) #8
  br label %311

287:                                              ; preds = %216
  %288 = landingpad { ptr, i32 }
          cleanup
  br label %388

289:                                              ; preds = %226
  %290 = landingpad { ptr, i32 }
          cleanup
  br label %388

291:                                              ; preds = %231
  %292 = landingpad { ptr, i32 }
          cleanup
  br label %310

293:                                              ; preds = %238
  %294 = landingpad { ptr, i32 }
          cleanup
  br label %309

295:                                              ; preds = %241
  %296 = landingpad { ptr, i32 }
          cleanup
  br label %309

297:                                              ; preds = %254
  %298 = landingpad { ptr, i32 }
          cleanup
  br label %301

299:                                              ; preds = %260
  %300 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %18) #8
  br label %301

301:                                              ; preds = %299, %297
  %.pn187 = phi { ptr, i32 } [ %300, %299 ], [ %298, %297 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %18) #8
  br label %309

302:                                              ; preds = %263
  %303 = landingpad { ptr, i32 }
          cleanup
  br label %309

304:                                              ; preds = %277
  %305 = landingpad { ptr, i32 }
          cleanup
  br label %308

306:                                              ; preds = %283
  %307 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %19) #8
  br label %308

308:                                              ; preds = %306, %304
  %.pn189 = phi { ptr, i32 } [ %307, %306 ], [ %305, %304 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %19) #8
  br label %309

309:                                              ; preds = %295, %301, %308, %302, %293
  %.pn189.pn.pn.pn = phi { ptr, i32 } [ %294, %293 ], [ %.pn187, %301 ], [ %296, %295 ], [ %.pn189, %308 ], [ %303, %302 ]
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %17) #8
  br label %310

310:                                              ; preds = %309, %291
  %.pn189.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn189.pn.pn.pn, %309 ], [ %292, %291 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %17) #8
  br label %388

311:                                              ; preds = %169, %286, %177, %174, %56
  %.7 = phi i32 [ %.0118244, %56 ], [ %.3121, %169 ], [ %.0118244, %174 ], [ %.0118244, %177 ], [ %.5123, %286 ]
  %.5 = phi i32 [ %.0116245, %56 ], [ %.2, %169 ], [ %.0116245, %174 ], [ %.0116245, %177 ], [ %.lcssa, %286 ]
  %312 = add i32 %.0158243, 1
  %313 = zext i32 %312 to i64
  %314 = call noundef i64 @_ZNKSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  %315 = icmp ugt i64 %314, %313
  br i1 %315, label %56, label %._crit_edge248, !llvm.loop !59

.preheader227:                                    ; preds = %348, %.preheader228
  %316 = call noundef i64 @_ZNKSt8valarrayIdE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %5)
  %.not258 = icmp eq i64 %316, 0
  br i1 %.not258, label %.preheader, label %.lr.ph252

.lr.ph252:                                        ; preds = %.preheader227
  %317 = getelementptr inbounds i8, ptr %0, i64 280
  %318 = getelementptr inbounds i8, ptr %0, i64 296
  br label %356

319:                                              ; preds = %._crit_edge248
  %320 = landingpad { ptr, i32 }
          cleanup
  br label %387

321:                                              ; preds = %.lr.ph250, %348
  %322 = phi i64 [ 0, %.lr.ph250 ], [ %350, %348 ]
  %.0117249 = phi i32 [ 0, %.lr.ph250 ], [ %349, %348 ]
  %323 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %322) #8
  %324 = load ptr, ptr %2, align 8, !tbaa !15
  %325 = getelementptr inbounds i8, ptr %324, i64 40
  %326 = load ptr, ptr %325, align 8
  %327 = invoke noundef zeroext i1 %326(ptr noundef nonnull align 8 dereferenceable(392) %2, ptr noundef nonnull align 8 dereferenceable(88) %323)
          to label %328 unwind label %339

328:                                              ; preds = %321
  br i1 %327, label %329, label %348

329:                                              ; preds = %328
  %330 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %322) #8
  %331 = load ptr, ptr %2, align 8, !tbaa !15
  %332 = getelementptr inbounds i8, ptr %331, i64 16
  %333 = load ptr, ptr %332, align 8
  %334 = invoke noundef double %333(ptr noundef nonnull align 8 dereferenceable(392) %2, ptr noundef nonnull align 8 dereferenceable(88) %330)
          to label %335 unwind label %341

335:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %21) #8
  %336 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %322) #8
  invoke void @_ZN7fastjet25ClusterSequenceActiveArea8GhostJetC2ERKNS_9PseudoJetEd(ptr noundef nonnull align 8 dereferenceable(96) %21, ptr noundef nonnull align 8 dereferenceable(88) %336, double noundef %334)
          to label %337 unwind label %343

337:                                              ; preds = %335
  invoke void @_ZNSt6vectorIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %44, ptr noundef nonnull align 8 dereferenceable(96) %21)
          to label %338 unwind label %345

338:                                              ; preds = %337
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %21) #8
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %21) #8
  br label %348

339:                                              ; preds = %321
  %340 = landingpad { ptr, i32 }
          cleanup
  br label %386

341:                                              ; preds = %329
  %342 = landingpad { ptr, i32 }
          cleanup
  br label %386

343:                                              ; preds = %335
  %344 = landingpad { ptr, i32 }
          cleanup
  br label %347

345:                                              ; preds = %337
  %346 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %21) #8
  br label %347

347:                                              ; preds = %345, %343
  %.pn180 = phi { ptr, i32 } [ %346, %345 ], [ %344, %343 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %21) #8
  br label %386

348:                                              ; preds = %328, %338
  %349 = add i32 %.0117249, 1
  %350 = zext i32 %349 to i64
  %351 = call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  %352 = icmp ugt i64 %351, %350
  br i1 %352, label %321, label %.preheader227, !llvm.loop !60

.preheader:                                       ; preds = %356, %.preheader227
  %353 = call noundef i64 @_ZNKSt8valarrayIN7fastjet9PseudoJetEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7)
  %.not259 = icmp eq i64 %353, 0
  br i1 %.not259, label %._crit_edge255, label %.lr.ph254

.lr.ph254:                                        ; preds = %.preheader
  %354 = getelementptr inbounds i8, ptr %0, i64 8
  %355 = getelementptr inbounds i8, ptr %0, i64 312
  br label %376

356:                                              ; preds = %.lr.ph252, %356
  %357 = phi i64 [ 0, %.lr.ph252 ], [ %371, %356 ]
  %.0115251 = phi i32 [ 0, %.lr.ph252 ], [ %370, %356 ]
  %358 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %5, i64 noundef %357) #8
  %359 = load double, ptr %358, align 8, !tbaa !5
  %360 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %317, i64 noundef %357) #8
  %361 = load double, ptr %360, align 8, !tbaa !5
  %362 = fadd double %359, %361
  store double %362, ptr %360, align 8, !tbaa !5
  %363 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %5, i64 noundef %357) #8
  %364 = load double, ptr %363, align 8, !tbaa !5
  %365 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %5, i64 noundef %357) #8
  %366 = load double, ptr %365, align 8, !tbaa !5
  %367 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8valarrayIdEixEm(ptr noundef nonnull align 8 dereferenceable(16) %318, i64 noundef %357) #8
  %368 = load double, ptr %367, align 8, !tbaa !5
  %369 = call double @llvm.fmuladd.f64(double %364, double %366, double %368)
  store double %369, ptr %367, align 8, !tbaa !5
  %370 = add i32 %.0115251, 1
  %371 = zext i32 %370 to i64
  %372 = call noundef i64 @_ZNKSt8valarrayIdE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %5)
  %373 = icmp ugt i64 %372, %371
  br i1 %373, label %356, label %.preheader, !llvm.loop !61

._crit_edge255:                                   ; preds = %381, %.preheader
  call void @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #8
  call void @_ZNSt8valarrayIN7fastjet9PseudoJetEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %7) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #8
  call void @_ZNSt8valarrayIdED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #8
  ret void

374:                                              ; preds = %376
  %375 = landingpad { ptr, i32 }
          cleanup
  br label %386

376:                                              ; preds = %.lr.ph254, %381
  %377 = phi i64 [ 0, %.lr.ph254 ], [ %383, %381 ]
  %.0253 = phi i32 [ 0, %.lr.ph254 ], [ %382, %381 ]
  %378 = call noundef ptr @_ZNK7fastjet13JetDefinition10recombinerEv(ptr noundef nonnull align 8 dereferenceable(80) %354)
  %379 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %355, i64 noundef %377) #8
  %380 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %377) #8
  invoke void @_ZNK7fastjet13JetDefinition10Recombiner10plus_equalERNS_9PseudoJetERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %378, ptr noundef nonnull align 8 dereferenceable(88) %379, ptr noundef nonnull align 8 dereferenceable(88) %380)
          to label %381 unwind label %374

381:                                              ; preds = %376
  %382 = add i32 %.0253, 1
  %383 = zext i32 %382 to i64
  %384 = call noundef i64 @_ZNKSt8valarrayIN7fastjet9PseudoJetEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7)
  %385 = icmp ugt i64 %384, %383
  br i1 %385, label %376, label %._crit_edge255, !llvm.loop !62

386:                                              ; preds = %339, %347, %341, %374
  %.pn180.pn.pn.pn = phi { ptr, i32 } [ %375, %374 ], [ %340, %339 ], [ %.pn180, %347 ], [ %342, %341 ]
  call void @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  br label %387

387:                                              ; preds = %386, %319
  %.pn180.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn, %386 ], [ %320, %319 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #8
  br label %388

388:                                              ; preds = %190, %201, %199, %215, %213, %171, %109, %289, %310, %287, %387, %55
  %.pn207.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn, %387 ], [ %.pn, %55 ], [ %.pn199222, %201 ], [ %200, %199 ], [ %.pn197226, %215 ], [ %214, %213 ], [ %191, %190 ], [ %.pn207.pn, %171 ], [ %110, %109 ], [ %288, %287 ], [ %.pn189.pn.pn.pn.pn, %310 ], [ %290, %289 ]
  call void @_ZNSt8valarrayIN7fastjet9PseudoJetEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %7) #8
  br label %389

389:                                              ; preds = %388, %49
  %.pn207.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn207.pn.pn.pn.pn, %388 ], [ %50, %49 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #8
  br label %390

390:                                              ; preds = %389, %47
  %.pn207.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn207.pn.pn.pn.pn.pn, %389 ], [ %48, %47 ]
  call void @_ZNSt8valarrayIdED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #8
  br label %391

391:                                              ; preds = %390, %45
  %.pn207.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn207.pn.pn.pn.pn.pn.pn, %390 ], [ %46, %45 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #8
  resume { ptr, i32 } %.pn207.pn.pn.pn.pn.pn.pn.pn

392:                                              ; preds = %211, %197, %132
  unreachable
}

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt8valarrayIN7fastjet9PseudoJetEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt8valarrayIN7fastjet9PseudoJetEEixEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(88) ptr @_ZN7fastjet9PseudoJetaSERKS0_(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(88)) local_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 #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #2 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 #1 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 #4 align 2

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

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

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

declare noundef zeroext i1 @_ZNK7fastjet39ClusterSequenceActiveAreaExplicitGhosts13is_pure_ghostEi(ptr noundef nonnull align 8 dereferenceable(392), i32 noundef) local_unnamed_addr #3

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt8valarrayIdEC2Em(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt8valarrayIN7fastjet9PseudoJetEEC2Em(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7fastjet15ClusterSequence11n_particlesEv(ptr noundef nonnull align 8 dereferenceable(276)) local_unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7fastjet25ClusterSequenceActiveArea8GhostJetC2ERKNS_9PseudoJetEd(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(88), double noundef) unnamed_addr #4 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7fastjet25ClusterSequenceActiveArea38_throw_unless_jets_have_same_perp_or_EERKNS_9PseudoJetES3_dRKNS_39ClusterSequenceActiveAreaExplicitGhostsE(ptr noundef nonnull align 8 dereferenceable(424), ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(88), double noundef, ptr noundef nonnull align 8 dereferenceable(392)) local_unnamed_addr #4 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt8valarrayIdE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt8valarrayIN7fastjet9PseudoJetEED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt8valarrayIdED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 align 2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 0}
!12 = !{!"_ZTSN7fastjet15ClusterSequence15history_elementE", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !6, i64 16, !6, i64 24}
!13 = !{!12, !10, i64 4}
!14 = !{!12, !10, i64 12}
!15 = !{!16, !16, i64 0}
!16 = !{!"vtable pointer", !8, i64 0}
!17 = !{!18, !6, i64 360}
!18 = !{!"_ZTSN7fastjet25ClusterSequenceActiveAreaE", !19, i64 0, !45, i64 280, !45, i64 296, !47, i64 312, !6, i64 328, !6, i64 336, !6, i64 344, !6, i64 352, !6, i64 360, !38, i64 368, !10, i64 372, !48, i64 376, !48, i64 400}
!19 = !{!"_ZTSN7fastjet23ClusterSequenceAreaBaseE", !20, i64 0}
!20 = !{!"_ZTSN7fastjet15ClusterSequenceE", !21, i64 8, !30, i64 88, !34, i64 112, !38, i64 136, !10, i64 140, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !23, i64 176, !22, i64 180, !39, i64 184, !10, i64 192, !38, i64 196, !38, i64 197, !40, i64 200, !41, i64 208, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !10, i64 264, !10, i64 268, !10, i64 272}
!21 = !{!"_ZTSN7fastjet13JetDefinitionE", !22, i64 0, !6, i64 8, !6, i64 16, !23, i64 24, !24, i64 32, !25, i64 40, !26, i64 48, !24, i64 64, !29, i64 72}
!22 = !{!"_ZTSN7fastjet12JetAlgorithmE", !7, i64 0}
!23 = !{!"_ZTSN7fastjet8StrategyE", !7, i64 0}
!24 = !{!"any pointer", !7, i64 0}
!25 = !{!"_ZTSN7fastjet9SharedPtrIKNS_13JetDefinition6PluginEEE", !24, i64 0}
!26 = !{!"_ZTSN7fastjet13JetDefinition17DefaultRecombinerE", !27, i64 0, !28, i64 8}
!27 = !{!"_ZTSN7fastjet13JetDefinition10RecombinerE"}
!28 = !{!"_ZTSN7fastjet19RecombinationSchemeE", !7, i64 0}
!29 = !{!"_ZTSN7fastjet9SharedPtrIKNS_13JetDefinition10RecombinerEEE", !24, i64 0}
!30 = !{!"_ZTSSt6vectorIN7fastjet9PseudoJetESaIS1_EE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE17_Vector_impl_dataE", !24, i64 0, !24, i64 8, !24, i64 16}
!34 = !{!"_ZTSSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE", !35, i64 0}
!35 = !{!"_ZTSSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE12_Vector_implE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE17_Vector_impl_dataE", !24, i64 0, !24, i64 8, !24, i64 16}
!38 = !{!"bool", !7, i64 0}
!39 = !{!"_ZTSN7fastjet9SharedPtrINS_22PseudoJetStructureBaseEEE", !24, i64 0}
!40 = !{!"_ZTSN7fastjet9SharedPtrINS_15ClusterSequence6ExtrasEEE", !24, i64 0}
!41 = !{!"_ZTSSt6vectorIN7fastjet15ClusterSequence4TileESaIS2_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE17_Vector_impl_dataE", !24, i64 0, !24, i64 8, !24, i64 16}
!45 = !{!"_ZTSSt8valarrayIdE", !46, i64 0, !24, i64 8}
!46 = !{!"long", !7, i64 0}
!47 = !{!"_ZTSSt8valarrayIN7fastjet9PseudoJetEE", !46, i64 0, !24, i64 8}
!48 = !{!"_ZTSSt6vectorIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE", !49, i64 0}
!49 = !{!"_ZTSSt12_Vector_baseIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE12_Vector_implE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE17_Vector_impl_dataE", !24, i64 0, !24, i64 8, !24, i64 16}
!52 = !{!18, !6, i64 328}
!53 = !{!18, !6, i64 336}
!54 = !{!18, !6, i64 344}
!55 = distinct !{!55, !56}
!56 = !{!"llvm.loop.mustprogress"}
!57 = !{!20, !10, i64 140}
!58 = distinct !{!58, !56}
!59 = distinct !{!59, !56}
!60 = distinct !{!60, !56}
!61 = distinct !{!61, !56}
!62 = distinct !{!62, !56}


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