; 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::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"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.std::vector.30" = type { %"struct.std::_Vector_base.31" }
%"struct.std::_Vector_base.31" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, 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.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::allocator.32" = type { i8 }
%"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.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 }
%"class.std::valarray" = type { i64, ptr }
%"class.std::valarray.13" = type { i64, ptr }
%"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 }

@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.2 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [18 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

declare i32 @__gxx_personality_v0(...)

; 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: nounwind
declare double @sqrt(double noundef) #2

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef double @_ZNK7fastjet25ClusterSequenceActiveArea16pt_per_unit_areaENS0_18mean_pt_strategiesEd(ptr noundef nonnull align 8 dereferenceable(424) %0, i32 noundef %1, double noundef %2) #5 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca double, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca double, align 8
  %8 = alloca %"class.std::vector", align 8
  %9 = alloca double, align 8
  %10 = alloca %"class.std::vector.30", align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca double, align 8
  %15 = alloca %"class.fastjet::PseudoJet", align 8
  %16 = alloca double, align 8
  %17 = alloca i32, align 4
  %18 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca i32, align 4
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca i32, align 4
  %31 = alloca double, align 8
  %32 = alloca %"class.fastjet::PseudoJet", align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca %"class.std::vector.30", align 8
  %37 = alloca %"class.std::allocator.32", align 1
  %38 = alloca %"class.std::vector.30", align 8
  %39 = alloca %"class.std::allocator.32", align 1
  %40 = alloca i32, align 4
  %41 = alloca double, align 8
  %42 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store i32 %1, ptr %6, align 4, !tbaa !9
  store double %2, ptr %7, align 8, !tbaa !11
  %43 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #8
  store double 0.000000e+00, ptr %9, align 8, !tbaa !11
  call void @_ZNK7fastjet15ClusterSequence14inclusive_jetsERKd(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %8, ptr noundef nonnull align 8 dereferenceable(276) %43, ptr noundef nonnull align 8 dereferenceable(8) %9)
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  store i32 0, ptr %11, align 4, !tbaa !13
  br label %44

44:                                               ; preds = %115, %3
  %45 = load i32, ptr %11, align 4, !tbaa !13
  %46 = zext i32 %45 to i64
  %47 = call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  %48 = icmp ult i64 %46, %47
  br i1 %48, label %50, label %49

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

50:                                               ; preds = %44
  %51 = load i32, ptr %11, align 4, !tbaa !13
  %52 = zext i32 %51 to i64
  %53 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %52) #8
  %54 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %53)
          to label %55 unwind label %74

55:                                               ; preds = %50
  %56 = invoke noundef double @_ZSt3absd(double noundef %54)
          to label %57 unwind label %74

57:                                               ; preds = %55
  %58 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %43, i32 0, i32 8
  %59 = load double, ptr %58, align 8, !tbaa !15
  %60 = fcmp olt double %56, %59
  br i1 %60, label %61, label %114

61:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  %62 = load i32, ptr %6, align 4, !tbaa !9
  %63 = icmp eq i32 %62, 6
  br i1 %63, label %64, label %87

64:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 88, ptr %15) #8
  %65 = load i32, ptr %11, align 4, !tbaa !13
  %66 = zext i32 %65 to i64
  %67 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %66) #8
  %68 = load ptr, ptr %43, align 8, !tbaa !49
  %69 = getelementptr inbounds ptr, ptr %68, i64 4
  %70 = load ptr, ptr %69, align 8
  invoke void %70(ptr dead_on_unwind writable sret(%"class.fastjet::PseudoJet") align 8 %15, ptr noundef nonnull align 8 dereferenceable(424) %43, ptr noundef nonnull align 8 dereferenceable(88) %67)
          to label %71 unwind label %78

71:                                               ; preds = %64
  %72 = invoke noundef double @_ZNK7fastjet9PseudoJet4perpEv(ptr noundef nonnull align 8 dereferenceable(88) %15)
          to label %73 unwind label %82

73:                                               ; preds = %71
  store double %72, ptr %14, align 8, !tbaa !11
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %15) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %15) #8
  br label %100

74:                                               ; preds = %55, %50
  %75 = landingpad { ptr, i32 }
          cleanup
  %76 = extractvalue { ptr, i32 } %75, 0
  store ptr %76, ptr %12, align 8
  %77 = extractvalue { ptr, i32 } %75, 1
  store i32 %77, ptr %13, align 4
  br label %118

78:                                               ; preds = %64
  %79 = landingpad { ptr, i32 }
          cleanup
  %80 = extractvalue { ptr, i32 } %79, 0
  store ptr %80, ptr %12, align 8
  %81 = extractvalue { ptr, i32 } %79, 1
  store i32 %81, ptr %13, align 4
  br label %86

82:                                               ; preds = %71
  %83 = landingpad { ptr, i32 }
          cleanup
  %84 = extractvalue { ptr, i32 } %83, 0
  store ptr %84, ptr %12, align 8
  %85 = extractvalue { ptr, i32 } %83, 1
  store i32 %85, ptr %13, align 4
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %15) #8
  br label %86

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

87:                                               ; preds = %61
  %88 = load i32, ptr %11, align 4, !tbaa !13
  %89 = zext i32 %88 to i64
  %90 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %89) #8
  %91 = load ptr, ptr %43, align 8, !tbaa !49
  %92 = getelementptr inbounds ptr, ptr %91, i64 2
  %93 = load ptr, ptr %92, align 8
  %94 = invoke noundef double %93(ptr noundef nonnull align 8 dereferenceable(424) %43, ptr noundef nonnull align 8 dereferenceable(88) %90)
          to label %95 unwind label %96

95:                                               ; preds = %87
  store double %94, ptr %14, align 8, !tbaa !11
  br label %100

96:                                               ; preds = %87
  %97 = landingpad { ptr, i32 }
          cleanup
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %12, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %13, align 4
  br label %113

100:                                              ; preds = %95, %73
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %101 = load i32, ptr %11, align 4, !tbaa !13
  %102 = zext i32 %101 to i64
  %103 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %102) #8
  %104 = invoke noundef double @_ZNK7fastjet9PseudoJet4perpEv(ptr noundef nonnull align 8 dereferenceable(88) %103)
          to label %105 unwind label %109

105:                                              ; preds = %100
  %106 = load double, ptr %14, align 8, !tbaa !11
  %107 = fdiv double %104, %106
  store double %107, ptr %16, align 8, !tbaa !11
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %108 unwind label %109

108:                                              ; preds = %105
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  br label %114

109:                                              ; preds = %105, %100
  %110 = landingpad { ptr, i32 }
          cleanup
  %111 = extractvalue { ptr, i32 } %110, 0
  store ptr %111, ptr %12, align 8
  %112 = extractvalue { ptr, i32 } %110, 1
  store i32 %112, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  br label %113

113:                                              ; preds = %109, %96, %86
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  br label %118

114:                                              ; preds = %108, %57
  br label %115

115:                                              ; preds = %114
  %116 = load i32, ptr %11, align 4, !tbaa !13
  %117 = add i32 %116, 1
  store i32 %117, ptr %11, align 4, !tbaa !13
  br label %44, !llvm.loop !51

118:                                              ; preds = %113, %74
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  br label %503

119:                                              ; preds = %49
  %120 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  %121 = icmp eq i64 %120, 0
  br i1 %121, label %122, label %123

122:                                              ; preds = %119
  store double 0.000000e+00, ptr %4, align 8
  store i32 1, ptr %17, align 4
  br label %501

123:                                              ; preds = %119
  %124 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  %125 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %18, i32 0, i32 0
  store ptr %124, ptr %125, align 8
  %126 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  %127 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %19, i32 0, i32 0
  store ptr %126, ptr %127, align 8
  %128 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %18, i32 0, i32 0
  %129 = load ptr, ptr %128, align 8
  %130 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %19, i32 0, i32 0
  %131 = load ptr, ptr %130, align 8
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEEEvT_S7_(ptr %129, ptr %131)
          to label %132 unwind label %172

132:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  %133 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  %134 = udiv i64 %133, 2
  %135 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %134) #8
  %136 = load double, ptr %135, align 8, !tbaa !11
  store double %136, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %137 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  %138 = sub i64 %137, 1
  %139 = uitofp i64 %138 to double
  %140 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %43, i32 0, i32 6
  %141 = load double, ptr %140, align 8, !tbaa !53
  %142 = fsub double %139, %141
  %143 = fdiv double %142, 2.000000e+00
  store double %143, ptr %21, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %144 = load double, ptr %21, align 8, !tbaa !11
  %145 = fcmp oge double %144, 0.000000e+00
  br i1 %145, label %146, label %176

146:                                              ; preds = %132
  %147 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  %148 = icmp ugt i64 %147, 1
  br i1 %148, label %149, label %176

149:                                              ; preds = %146
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %150 = load double, ptr %21, align 8, !tbaa !11
  %151 = fptosi double %150 to i32
  store i32 %151, ptr %23, align 4, !tbaa !13
  %152 = load i32, ptr %23, align 4, !tbaa !13
  %153 = sext i32 %152 to i64
  %154 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %153) #8
  %155 = load double, ptr %154, align 8, !tbaa !11
  %156 = load i32, ptr %23, align 4, !tbaa !13
  %157 = add nsw i32 %156, 1
  %158 = sitofp i32 %157 to double
  %159 = load double, ptr %21, align 8, !tbaa !11
  %160 = fsub double %158, %159
  %161 = load i32, ptr %23, align 4, !tbaa !13
  %162 = add nsw i32 %161, 1
  %163 = sext i32 %162 to i64
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %163) #8
  %165 = load double, ptr %164, align 8, !tbaa !11
  %166 = load double, ptr %21, align 8, !tbaa !11
  %167 = load i32, ptr %23, align 4, !tbaa !13
  %168 = sitofp i32 %167 to double
  %169 = fsub double %166, %168
  %170 = fmul double %165, %169
  %171 = call double @llvm.fmuladd.f64(double %155, double %160, double %170)
  store double %171, ptr %22, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %177

172:                                              ; preds = %123
  %173 = landingpad { ptr, i32 }
          cleanup
  %174 = extractvalue { ptr, i32 } %173, 0
  store ptr %174, ptr %12, align 8
  %175 = extractvalue { ptr, i32 } %173, 1
  store i32 %175, ptr %13, align 4
  br label %503

176:                                              ; preds = %146, %132
  store double 0.000000e+00, ptr %22, align 8, !tbaa !11
  br label %177

177:                                              ; preds = %176, %149
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  store double 0.000000e+00, ptr %24, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  store double 0.000000e+00, ptr %25, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  %178 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %43, i32 0, i32 4
  %179 = load double, ptr %178, align 8, !tbaa !54
  store double %179, ptr %26, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %180 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %43, i32 0, i32 4
  %181 = load double, ptr %180, align 8, !tbaa !54
  store double %181, ptr %27, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  store double 0.000000e+00, ptr %28, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  %182 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %43, i32 0, i32 6
  %183 = load double, ptr %182, align 8, !tbaa !53
  store double %183, ptr %29, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  store i32 0, ptr %30, align 4, !tbaa !13
  br label %184

184:                                              ; preds = %286, %177
  %185 = load i32, ptr %30, align 4, !tbaa !13
  %186 = zext i32 %185 to i64
  %187 = call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  %188 = icmp ult i64 %186, %187
  br i1 %188, label %190, label %189

189:                                              ; preds = %184
  store i32 5, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %290

190:                                              ; preds = %184
  %191 = load i32, ptr %30, align 4, !tbaa !13
  %192 = zext i32 %191 to i64
  %193 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %192) #8
  %194 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %193)
          to label %195 unwind label %214

195:                                              ; preds = %190
  %196 = invoke noundef double @_ZSt3absd(double noundef %194)
          to label %197 unwind label %214

197:                                              ; preds = %195
  %198 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %43, i32 0, i32 8
  %199 = load double, ptr %198, align 8, !tbaa !15
  %200 = fcmp olt double %196, %199
  br i1 %200, label %201, label %285

201:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %202 = load i32, ptr %6, align 4, !tbaa !9
  %203 = icmp eq i32 %202, 6
  br i1 %203, label %204, label %227

204:                                              ; preds = %201
  call void @llvm.lifetime.start.p0(i64 88, ptr %32) #8
  %205 = load i32, ptr %30, align 4, !tbaa !13
  %206 = zext i32 %205 to i64
  %207 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %206) #8
  %208 = load ptr, ptr %43, align 8, !tbaa !49
  %209 = getelementptr inbounds ptr, ptr %208, i64 4
  %210 = load ptr, ptr %209, align 8
  invoke void %210(ptr dead_on_unwind writable sret(%"class.fastjet::PseudoJet") align 8 %32, ptr noundef nonnull align 8 dereferenceable(424) %43, ptr noundef nonnull align 8 dereferenceable(88) %207)
          to label %211 unwind label %218

211:                                              ; preds = %204
  %212 = invoke noundef double @_ZNK7fastjet9PseudoJet4perpEv(ptr noundef nonnull align 8 dereferenceable(88) %32)
          to label %213 unwind label %222

213:                                              ; preds = %211
  store double %212, ptr %31, align 8, !tbaa !11
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %32) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %32) #8
  br label %240

214:                                              ; preds = %195, %190
  %215 = landingpad { ptr, i32 }
          cleanup
  %216 = extractvalue { ptr, i32 } %215, 0
  store ptr %216, ptr %12, align 8
  %217 = extractvalue { ptr, i32 } %215, 1
  store i32 %217, ptr %13, align 4
  br label %289

218:                                              ; preds = %204
  %219 = landingpad { ptr, i32 }
          cleanup
  %220 = extractvalue { ptr, i32 } %219, 0
  store ptr %220, ptr %12, align 8
  %221 = extractvalue { ptr, i32 } %219, 1
  store i32 %221, ptr %13, align 4
  br label %226

222:                                              ; preds = %211
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %12, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %13, align 4
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %32) #8
  br label %226

226:                                              ; preds = %222, %218
  call void @llvm.lifetime.end.p0(i64 88, ptr %32) #8
  br label %284

227:                                              ; preds = %201
  %228 = load i32, ptr %30, align 4, !tbaa !13
  %229 = zext i32 %228 to i64
  %230 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %229) #8
  %231 = load ptr, ptr %43, align 8, !tbaa !49
  %232 = getelementptr inbounds ptr, ptr %231, i64 2
  %233 = load ptr, ptr %232, align 8
  %234 = invoke noundef double %233(ptr noundef nonnull align 8 dereferenceable(424) %43, ptr noundef nonnull align 8 dereferenceable(88) %230)
          to label %235 unwind label %236

235:                                              ; preds = %227
  store double %234, ptr %31, align 8, !tbaa !11
  br label %240

236:                                              ; preds = %240, %227
  %237 = landingpad { ptr, i32 }
          cleanup
  %238 = extractvalue { ptr, i32 } %237, 0
  store ptr %238, ptr %12, align 8
  %239 = extractvalue { ptr, i32 } %237, 1
  store i32 %239, ptr %13, align 4
  br label %284

240:                                              ; preds = %235, %213
  %241 = load i32, ptr %30, align 4, !tbaa !13
  %242 = zext i32 %241 to i64
  %243 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %242) #8
  %244 = invoke noundef double @_ZNK7fastjet9PseudoJet4perpEv(ptr noundef nonnull align 8 dereferenceable(88) %243)
          to label %245 unwind label %236

245:                                              ; preds = %240
  %246 = load double, ptr %24, align 8, !tbaa !11
  %247 = fadd double %246, %244
  store double %247, ptr %24, align 8, !tbaa !11
  %248 = load double, ptr %31, align 8, !tbaa !11
  %249 = load double, ptr %26, align 8, !tbaa !11
  %250 = fadd double %249, %248
  store double %250, ptr %26, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  %251 = load i32, ptr %30, align 4, !tbaa !13
  %252 = zext i32 %251 to i64
  %253 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %252) #8
  %254 = invoke noundef double @_ZNK7fastjet9PseudoJet4perpEv(ptr noundef nonnull align 8 dereferenceable(88) %253)
          to label %255 unwind label %279

255:                                              ; preds = %245
  %256 = load double, ptr %31, align 8, !tbaa !11
  %257 = fdiv double %254, %256
  store double %257, ptr %33, align 8, !tbaa !11
  %258 = load double, ptr %33, align 8, !tbaa !11
  %259 = load double, ptr %7, align 8, !tbaa !11
  %260 = load double, ptr %22, align 8, !tbaa !11
  %261 = fmul double %259, %260
  %262 = fcmp olt double %258, %261
  br i1 %262, label %263, label %283

263:                                              ; preds = %255
  %264 = load i32, ptr %30, align 4, !tbaa !13
  %265 = zext i32 %264 to i64
  %266 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %265) #8
  %267 = invoke noundef double @_ZNK7fastjet9PseudoJet4perpEv(ptr noundef nonnull align 8 dereferenceable(88) %266)
          to label %268 unwind label %279

268:                                              ; preds = %263
  %269 = load double, ptr %25, align 8, !tbaa !11
  %270 = fadd double %269, %267
  store double %270, ptr %25, align 8, !tbaa !11
  %271 = load double, ptr %31, align 8, !tbaa !11
  %272 = load double, ptr %27, align 8, !tbaa !11
  %273 = fadd double %272, %271
  store double %273, ptr %27, align 8, !tbaa !11
  %274 = load double, ptr %33, align 8, !tbaa !11
  %275 = load double, ptr %28, align 8, !tbaa !11
  %276 = fadd double %275, %274
  store double %276, ptr %28, align 8, !tbaa !11
  %277 = load double, ptr %29, align 8, !tbaa !11
  %278 = fadd double %277, 1.000000e+00
  store double %278, ptr %29, align 8, !tbaa !11
  br label %283

279:                                              ; preds = %263, %245
  %280 = landingpad { ptr, i32 }
          cleanup
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %12, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  br label %284

283:                                              ; preds = %268, %255
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br label %285

284:                                              ; preds = %279, %236, %226
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br label %289

285:                                              ; preds = %283, %197
  br label %286

286:                                              ; preds = %285
  %287 = load i32, ptr %30, align 4, !tbaa !13
  %288 = add i32 %287, 1
  store i32 %288, ptr %30, align 4, !tbaa !13
  br label %184, !llvm.loop !55

289:                                              ; preds = %284, %214
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %500

290:                                              ; preds = %189
  %291 = load i32, ptr %6, align 4, !tbaa !9
  %292 = icmp eq i32 %291, 5
  br i1 %292, label %293, label %479

293:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  store double 0.000000e+00, ptr %34, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  store double 0.000000e+00, ptr %35, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 24, ptr %36) #8
  %294 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %294, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %295 unwind label %304

295:                                              ; preds = %293
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %38) #8
  %296 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %38, i64 noundef %296, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %297 unwind label %308

297:                                              ; preds = %295
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  store i32 0, ptr %40, align 4, !tbaa !13
  br label %298

298:                                              ; preds = %389, %297
  %299 = load i32, ptr %40, align 4, !tbaa !13
  %300 = zext i32 %299 to i64
  %301 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  %302 = icmp ult i64 %300, %301
  br i1 %302, label %312, label %303

303:                                              ; preds = %298
  store i32 8, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %396

304:                                              ; preds = %293
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %12, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %13, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #8
  br label %478

308:                                              ; preds = %295
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %12, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %13, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #8
  br label %477

312:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %313 = load i32, ptr %40, align 4, !tbaa !13
  %314 = zext i32 %313 to i64
  %315 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %314) #8
  %316 = load double, ptr %315, align 8, !tbaa !11
  store double %316, ptr %41, align 8, !tbaa !11
  %317 = load double, ptr %41, align 8, !tbaa !11
  %318 = load double, ptr %34, align 8, !tbaa !11
  %319 = fadd double %318, %317
  store double %319, ptr %34, align 8, !tbaa !11
  %320 = load double, ptr %41, align 8, !tbaa !11
  %321 = load double, ptr %41, align 8, !tbaa !11
  %322 = load double, ptr %35, align 8, !tbaa !11
  %323 = call double @llvm.fmuladd.f64(double %320, double %321, double %322)
  store double %323, ptr %35, align 8, !tbaa !11
  %324 = load double, ptr %34, align 8, !tbaa !11
  %325 = load i32, ptr %40, align 4, !tbaa !13
  %326 = add i32 %325, 1
  %327 = uitofp i32 %326 to double
  %328 = fdiv double %324, %327
  %329 = load i32, ptr %40, align 4, !tbaa !13
  %330 = zext i32 %329 to i64
  %331 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %330) #8
  store double %328, ptr %331, align 8, !tbaa !11
  %332 = load i32, ptr %40, align 4, !tbaa !13
  %333 = zext i32 %332 to i64
  %334 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %333) #8
  %335 = load double, ptr %334, align 8, !tbaa !11
  %336 = load i32, ptr %40, align 4, !tbaa !13
  %337 = zext i32 %336 to i64
  %338 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %337) #8
  %339 = load double, ptr %338, align 8, !tbaa !11
  %340 = load double, ptr %35, align 8, !tbaa !11
  %341 = load i32, ptr %40, align 4, !tbaa !13
  %342 = add i32 %341, 1
  %343 = uitofp i32 %342 to double
  %344 = fdiv double %340, %343
  %345 = fneg double %344
  %346 = call double @llvm.fmuladd.f64(double %335, double %339, double %345)
  %347 = invoke noundef double @_ZSt3absd(double noundef %346)
          to label %348 unwind label %392

348:                                              ; preds = %312
  %349 = call double @sqrt(double noundef %347) #8
  %350 = load i32, ptr %40, align 4, !tbaa !13
  %351 = zext i32 %350 to i64
  %352 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %38, i64 noundef %351) #8
  store double %349, ptr %352, align 8, !tbaa !11
  %353 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str)
          to label %354 unwind label %392

354:                                              ; preds = %348
  %355 = load i32, ptr %40, align 4, !tbaa !13
  %356 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %353, i32 noundef %355)
          to label %357 unwind label %392

357:                                              ; preds = %354
  %358 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %356, ptr noundef @.str.1)
          to label %359 unwind label %392

359:                                              ; preds = %357
  %360 = load i32, ptr %40, align 4, !tbaa !13
  %361 = zext i32 %360 to i64
  %362 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %361) #8
  %363 = load double, ptr %362, align 8, !tbaa !11
  %364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %358, double noundef %363)
          to label %365 unwind label %392

365:                                              ; preds = %359
  %366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef @.str.1)
          to label %367 unwind label %392

367:                                              ; preds = %365
  %368 = load i32, ptr %40, align 4, !tbaa !13
  %369 = zext i32 %368 to i64
  %370 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %38, i64 noundef %369) #8
  %371 = load double, ptr %370, align 8, !tbaa !11
  %372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %366, double noundef %371)
          to label %373 unwind label %392

373:                                              ; preds = %367
  %374 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef @.str.1)
          to label %375 unwind label %392

375:                                              ; preds = %373
  %376 = load i32, ptr %40, align 4, !tbaa !13
  %377 = zext i32 %376 to i64
  %378 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %38, i64 noundef %377) #8
  %379 = load double, ptr %378, align 8, !tbaa !11
  %380 = load i32, ptr %40, align 4, !tbaa !13
  %381 = uitofp i32 %380 to double
  %382 = fadd double %381, 1.000000e+00
  %383 = call double @sqrt(double noundef %382) #8
  %384 = fdiv double %379, %383
  %385 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %374, double noundef %384)
          to label %386 unwind label %392

386:                                              ; preds = %375
  %387 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %385, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %388 unwind label %392

388:                                              ; preds = %386
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  br label %389

389:                                              ; preds = %388
  %390 = load i32, ptr %40, align 4, !tbaa !13
  %391 = add i32 %390, 1
  store i32 %391, ptr %40, align 4, !tbaa !13
  br label %298, !llvm.loop !56

392:                                              ; preds = %386, %375, %373, %367, %365, %359, %357, %354, %348, %312
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %12, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %476

396:                                              ; preds = %303
  %397 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.2)
          to label %398 unwind label %408

398:                                              ; preds = %396
  %399 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %397, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %400 unwind label %408

400:                                              ; preds = %398
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  store i32 0, ptr %42, align 4, !tbaa !13
  br label %401

401:                                              ; preds = %428, %400
  %402 = load i32, ptr %42, align 4, !tbaa !13
  %403 = zext i32 %402 to i64
  %404 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  %405 = udiv i64 %404, 2
  %406 = icmp ule i64 %403, %405
  br i1 %406, label %412, label %407

407:                                              ; preds = %401
  store i32 11, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %435

408:                                              ; preds = %473, %470, %468, %466, %463, %461, %459, %453, %451, %449, %445, %443, %441, %437, %435, %398, %396
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %12, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %13, align 4
  br label %476

412:                                              ; preds = %401
  %413 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.3)
          to label %414 unwind label %431

414:                                              ; preds = %412
  %415 = load i32, ptr %42, align 4, !tbaa !13
  %416 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %413, i32 noundef %415)
          to label %417 unwind label %431

417:                                              ; preds = %414
  %418 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %416, ptr noundef @.str.4)
          to label %419 unwind label %431

419:                                              ; preds = %417
  %420 = load i32, ptr %42, align 4, !tbaa !13
  %421 = zext i32 %420 to i64
  %422 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %421) #8
  %423 = load double, ptr %422, align 8, !tbaa !11
  %424 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %418, double noundef %423)
          to label %425 unwind label %431

425:                                              ; preds = %419
  %426 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %424, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %427 unwind label %431

427:                                              ; preds = %425
  br label %428

428:                                              ; preds = %427
  %429 = load i32, ptr %42, align 4, !tbaa !13
  %430 = add i32 %429, 1
  store i32 %430, ptr %42, align 4, !tbaa !13
  br label %401, !llvm.loop !57

431:                                              ; preds = %425, %419, %417, %414, %412
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %12, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %476

435:                                              ; preds = %407
  %436 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.5)
          to label %437 unwind label %408

437:                                              ; preds = %435
  %438 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %43, i32 0, i32 6
  %439 = load double, ptr %438, align 8, !tbaa !53
  %440 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %436, double noundef %439)
          to label %441 unwind label %408

441:                                              ; preds = %437
  %442 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %440, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %443 unwind label %408

443:                                              ; preds = %441
  %444 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.6)
          to label %445 unwind label %408

445:                                              ; preds = %443
  %446 = getelementptr inbounds %"class.fastjet::ClusterSequenceActiveArea", ptr %43, i32 0, i32 4
  %447 = load double, ptr %446, align 8, !tbaa !54
  %448 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %444, double noundef %447)
          to label %449 unwind label %408

449:                                              ; preds = %445
  %450 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %448, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %451 unwind label %408

451:                                              ; preds = %449
  %452 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.7)
          to label %453 unwind label %408

453:                                              ; preds = %451
  %454 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  %455 = sub i64 %454, 1
  %456 = uitofp i64 %455 to double
  %457 = fdiv double %456, 2.000000e+00
  %458 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %452, double noundef %457)
          to label %459 unwind label %408

459:                                              ; preds = %453
  %460 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %458, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %461 unwind label %408

461:                                              ; preds = %459
  %462 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.8)
          to label %463 unwind label %408

463:                                              ; preds = %461
  %464 = load double, ptr %21, align 8, !tbaa !11
  %465 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %462, double noundef %464)
          to label %466 unwind label %408

466:                                              ; preds = %463
  %467 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %465, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %468 unwind label %408

468:                                              ; preds = %466
  %469 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.9)
          to label %470 unwind label %408

470:                                              ; preds = %468
  %471 = load double, ptr %22, align 8, !tbaa !11
  %472 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %469, double noundef %471)
          to label %473 unwind label %408

473:                                              ; preds = %470
  %474 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %472, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %475 unwind label %408

475:                                              ; preds = %473
  store double 0.000000e+00, ptr %4, align 8
  store i32 1, ptr %17, align 4
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %499

476:                                              ; preds = %431, %408, %392
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  br label %477

477:                                              ; preds = %476, %308
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #8
  br label %478

478:                                              ; preds = %477, %304
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %500

479:                                              ; preds = %290
  %480 = load i32, ptr %6, align 4, !tbaa !9
  switch i32 %480, label %497 [
    i32 0, label %481
    i32 6, label %481
    i32 1, label %483
    i32 2, label %485
    i32 3, label %489
    i32 4, label %493
  ]

481:                                              ; preds = %479, %479
  %482 = load double, ptr %22, align 8, !tbaa !11
  store double %482, ptr %4, align 8
  store i32 1, ptr %17, align 4
  br label %499

483:                                              ; preds = %479
  %484 = load double, ptr %20, align 8, !tbaa !11
  store double %484, ptr %4, align 8
  store i32 1, ptr %17, align 4
  br label %499

485:                                              ; preds = %479
  %486 = load double, ptr %24, align 8, !tbaa !11
  %487 = load double, ptr %26, align 8, !tbaa !11
  %488 = fdiv double %486, %487
  store double %488, ptr %4, align 8
  store i32 1, ptr %17, align 4
  br label %499

489:                                              ; preds = %479
  %490 = load double, ptr %25, align 8, !tbaa !11
  %491 = load double, ptr %27, align 8, !tbaa !11
  %492 = fdiv double %490, %491
  store double %492, ptr %4, align 8
  store i32 1, ptr %17, align 4
  br label %499

493:                                              ; preds = %479
  %494 = load double, ptr %28, align 8, !tbaa !11
  %495 = load double, ptr %29, align 8, !tbaa !11
  %496 = fdiv double %494, %495
  store double %496, ptr %4, align 8
  store i32 1, ptr %17, align 4
  br label %499

497:                                              ; preds = %479
  %498 = load double, ptr %22, align 8, !tbaa !11
  store double %498, ptr %4, align 8
  store i32 1, ptr %17, align 4
  br label %499

499:                                              ; preds = %497, %493, %489, %485, %483, %481, %475
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, 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
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br label %501

500:                                              ; preds = %478, %289
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, 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
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br label %503

501:                                              ; preds = %499, %122
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #8
  call void @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #8
  %502 = load double, ptr %4, align 8
  ret double %502

503:                                              ; preds = %500, %172, %118
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #8
  call void @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #8
  br label %504

504:                                              ; preds = %503
  %505 = load ptr, ptr %12, align 8
  %506 = load i32, ptr %13, align 4
  %507 = insertvalue { ptr, i32 } poison, ptr %505, 0
  %508 = insertvalue { ptr, i32 } %507, i32 %506, 1
  resume { ptr, i32 } %508
}

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEEEvT_S7_(ptr, ptr) #7

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88)) 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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }

!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 = !{!"_ZTSN7fastjet25ClusterSequenceActiveArea18mean_pt_strategiesE", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{!16, !12, i64 360}
!16 = !{!"_ZTSN7fastjet25ClusterSequenceActiveAreaE", !17, i64 0, !42, i64 280, !42, i64 296, !44, i64 312, !12, i64 328, !12, i64 336, !12, i64 344, !12, i64 352, !12, i64 360, !35, i64 368, !14, i64 372, !45, i64 376, !45, i64 400}
!17 = !{!"_ZTSN7fastjet23ClusterSequenceAreaBaseE", !18, i64 0}
!18 = !{!"_ZTSN7fastjet15ClusterSequenceE", !19, i64 8, !27, i64 88, !31, i64 112, !35, i64 136, !14, i64 140, !12, i64 144, !12, i64 152, !12, i64 160, !12, i64 168, !21, i64 176, !20, i64 180, !36, i64 184, !14, i64 192, !35, i64 196, !35, i64 197, !37, i64 200, !38, i64 208, !12, i64 232, !12, i64 240, !12, i64 248, !12, i64 256, !14, i64 264, !14, i64 268, !14, i64 272}
!19 = !{!"_ZTSN7fastjet13JetDefinitionE", !20, i64 0, !12, i64 8, !12, i64 16, !21, i64 24, !6, i64 32, !22, i64 40, !23, i64 48, !6, i64 64, !26, i64 72}
!20 = !{!"_ZTSN7fastjet12JetAlgorithmE", !7, i64 0}
!21 = !{!"_ZTSN7fastjet8StrategyE", !7, i64 0}
!22 = !{!"_ZTSN7fastjet9SharedPtrIKNS_13JetDefinition6PluginEEE", !6, i64 0}
!23 = !{!"_ZTSN7fastjet13JetDefinition17DefaultRecombinerE", !24, i64 0, !25, i64 8}
!24 = !{!"_ZTSN7fastjet13JetDefinition10RecombinerE"}
!25 = !{!"_ZTSN7fastjet19RecombinationSchemeE", !7, i64 0}
!26 = !{!"_ZTSN7fastjet9SharedPtrIKNS_13JetDefinition10RecombinerEEE", !6, i64 0}
!27 = !{!"_ZTSSt6vectorIN7fastjet9PseudoJetESaIS1_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!31 = !{!"_ZTSSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!35 = !{!"bool", !7, i64 0}
!36 = !{!"_ZTSN7fastjet9SharedPtrINS_22PseudoJetStructureBaseEEE", !6, i64 0}
!37 = !{!"_ZTSN7fastjet9SharedPtrINS_15ClusterSequence6ExtrasEEE", !6, i64 0}
!38 = !{!"_ZTSSt6vectorIN7fastjet15ClusterSequence4TileESaIS2_EE", !39, i64 0}
!39 = !{!"_ZTSSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE12_Vector_implE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!42 = !{!"_ZTSSt8valarrayIdE", !43, i64 0, !6, i64 8}
!43 = !{!"long", !7, i64 0}
!44 = !{!"_ZTSSt8valarrayIN7fastjet9PseudoJetEE", !43, i64 0, !6, i64 8}
!45 = !{!"_ZTSSt6vectorIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE", !46, i64 0}
!46 = !{!"_ZTSSt12_Vector_baseIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE12_Vector_implE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseIN7fastjet25ClusterSequenceActiveArea8GhostJetESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!49 = !{!50, !50, i64 0}
!50 = !{!"vtable pointer", !8, i64 0}
!51 = distinct !{!51, !52}
!52 = !{!"llvm.loop.mustprogress"}
!53 = !{!16, !12, i64 344}
!54 = !{!16, !12, i64 328}
!55 = distinct !{!55, !52}
!56 = distinct !{!56, !52}
!57 = distinct !{!57, !52}


; 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::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"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.std::vector.30" = type { %"struct.std::_Vector_base.31" }
%"struct.std::_Vector_base.31" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, 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.std::allocator.32" = type { i8 }

@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.2 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [18 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

declare i32 @__gxx_personality_v0(...)

; 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: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #2

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef double @_ZNK7fastjet25ClusterSequenceActiveArea16pt_per_unit_areaENS0_18mean_pt_strategiesEd(ptr noundef nonnull align 8 dereferenceable(424) %0, i32 noundef %1, double noundef %2) local_unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::vector", align 8
  %5 = alloca double, align 8
  %6 = alloca %"class.std::vector.30", align 8
  %7 = alloca %"class.fastjet::PseudoJet", align 8
  %8 = alloca double, align 8
  %9 = alloca %"class.fastjet::PseudoJet", align 8
  %10 = alloca %"class.std::vector.30", align 8
  %11 = alloca %"class.std::allocator.32", align 1
  %12 = alloca %"class.std::vector.30", align 8
  %13 = alloca %"class.std::allocator.32", align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  store double 0.000000e+00, ptr %5, align 8, !tbaa !5
  call void @_ZNK7fastjet15ClusterSequence14inclusive_jetsERKd(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %4, ptr noundef nonnull align 8 dereferenceable(276) %0, ptr noundef nonnull align 8 dereferenceable(8) %5)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #9
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  %14 = call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  %.not169 = icmp eq i64 %14, 0
  br i1 %.not169, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %3
  %15 = getelementptr inbounds i8, ptr %0, i64 360
  %16 = icmp eq i32 %1, 6
  br label %19

._crit_edge:                                      ; preds = %54, %3
  %17 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  %18 = icmp eq i64 %17, 0
  br i1 %18, label %286, label %59

19:                                               ; preds = %.lr.ph, %54
  %20 = phi i64 [ 0, %.lr.ph ], [ %56, %54 ]
  %.084152 = phi i32 [ 0, %.lr.ph ], [ %55, %54 ]
  %21 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %20) #9
  %22 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %21)
          to label %23 unwind label %35

23:                                               ; preds = %19
  %24 = call noundef double @_ZSt3absd(double noundef %22)
  %25 = load double, ptr %15, align 8, !tbaa !9
  %26 = fcmp olt double %24, %25
  br i1 %26, label %27, label %54

27:                                               ; preds = %23
  br i1 %16, label %28, label %39

28:                                               ; preds = %27
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %7) #9
  %29 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %20) #9
  %30 = load ptr, ptr %0, align 8, !tbaa !45
  %31 = getelementptr inbounds i8, ptr %30, i64 32
  %32 = load ptr, ptr %31, align 8
  invoke void %32(ptr dead_on_unwind nonnull writable sret(%"class.fastjet::PseudoJet") align 8 %7, ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull align 8 dereferenceable(88) %29)
          to label %33 unwind label %37

33:                                               ; preds = %28
  %34 = call noundef double @_ZNK7fastjet9PseudoJet4perpEv(ptr noundef nonnull align 8 dereferenceable(88) %7)
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %7) #9
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %7) #9
  br label %47

35:                                               ; preds = %19
  %36 = landingpad { ptr, i32 }
          cleanup
  br label %287

37:                                               ; preds = %28
  %38 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %7) #9
  br label %287

39:                                               ; preds = %27
  %40 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %20) #9
  %41 = load ptr, ptr %0, align 8, !tbaa !45
  %42 = getelementptr inbounds i8, ptr %41, i64 16
  %43 = load ptr, ptr %42, align 8
  %44 = invoke noundef double %43(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull align 8 dereferenceable(88) %40)
          to label %47 unwind label %45

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

47:                                               ; preds = %39, %33
  %.0115 = phi double [ %34, %33 ], [ %44, %39 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  %48 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %20) #9
  %49 = call noundef double @_ZNK7fastjet9PseudoJet4perpEv(ptr noundef nonnull align 8 dereferenceable(88) %48)
  %50 = fdiv double %49, %.0115
  store double %50, ptr %8, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %51 unwind label %52

51:                                               ; preds = %47
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  br label %54

52:                                               ; preds = %47
  %53 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  br label %287

54:                                               ; preds = %23, %51
  %55 = add i32 %.084152, 1
  %56 = zext i32 %55 to i64
  %57 = call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  %58 = icmp ugt i64 %57, %56
  br i1 %58, label %19, label %._crit_edge, !llvm.loop !47

59:                                               ; preds = %._crit_edge
  %60 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  %61 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEEEvT_S7_(ptr %60, ptr %61)
          to label %62 unwind label %93

62:                                               ; preds = %59
  %63 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  %64 = lshr i64 %63, 1
  %65 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %64) #9
  %66 = load double, ptr %65, align 8, !tbaa !5
  %67 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  %68 = add i64 %67, -1
  %69 = uitofp i64 %68 to double
  %70 = getelementptr inbounds i8, ptr %0, i64 344
  %71 = load double, ptr %70, align 8, !tbaa !49
  %72 = fsub double %69, %71
  %73 = fmul double %72, 5.000000e-01
  %74 = fcmp ult double %73, 0.000000e+00
  br i1 %74, label %95, label %75

75:                                               ; preds = %62
  %76 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  %77 = icmp ugt i64 %76, 1
  br i1 %77, label %78, label %95

78:                                               ; preds = %75
  %79 = fptosi double %73 to i32
  %80 = sext i32 %79 to i64
  %81 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %80) #9
  %82 = load double, ptr %81, align 8, !tbaa !5
  %83 = add nsw i32 %79, 1
  %84 = sitofp i32 %83 to double
  %85 = fsub double %84, %73
  %86 = sext i32 %83 to i64
  %87 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %86) #9
  %88 = load double, ptr %87, align 8, !tbaa !5
  %89 = sitofp i32 %79 to double
  %90 = fsub double %73, %89
  %91 = fmul double %90, %88
  %92 = call double @llvm.fmuladd.f64(double %82, double %85, double %91)
  br label %95

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

95:                                               ; preds = %62, %75, %78
  %.0105 = phi double [ %92, %78 ], [ 0.000000e+00, %75 ], [ 0.000000e+00, %62 ]
  %96 = getelementptr inbounds i8, ptr %0, i64 328
  %97 = load double, ptr %96, align 8, !tbaa !50
  %98 = load double, ptr %70, align 8, !tbaa !49
  %99 = call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  %.not170 = icmp eq i64 %99, 0
  br i1 %.not170, label %._crit_edge162, label %.lr.ph161

.lr.ph161:                                        ; preds = %95
  %100 = getelementptr inbounds i8, ptr %0, i64 360
  %101 = icmp eq i32 %1, 6
  %102 = fmul double %.0105, %2
  br label %103

._crit_edge162:                                   ; preds = %147, %95
  %.0100.lcssa = phi double [ 0.000000e+00, %95 ], [ %.1101, %147 ]
  %.097.lcssa = phi double [ 0.000000e+00, %95 ], [ %.299, %147 ]
  %.095.lcssa = phi double [ %97, %95 ], [ %.196, %147 ]
  %.092.lcssa = phi double [ %97, %95 ], [ %.294, %147 ]
  %.089.lcssa = phi double [ 0.000000e+00, %95 ], [ %.291, %147 ]
  %.087.lcssa = phi double [ %98, %95 ], [ %.2, %147 ]
  switch i32 %1, label %286 [
    i32 5, label %152
    i32 4, label %284
    i32 3, label %282
    i32 1, label %279
    i32 2, label %280
  ]

103:                                              ; preds = %.lr.ph161, %147
  %104 = phi i64 [ 0, %.lr.ph161 ], [ %149, %147 ]
  %.086159 = phi i32 [ 0, %.lr.ph161 ], [ %148, %147 ]
  %.087158 = phi double [ %98, %.lr.ph161 ], [ %.2, %147 ]
  %.089157 = phi double [ 0.000000e+00, %.lr.ph161 ], [ %.291, %147 ]
  %.092156 = phi double [ %97, %.lr.ph161 ], [ %.294, %147 ]
  %.095155 = phi double [ %97, %.lr.ph161 ], [ %.196, %147 ]
  %.097154 = phi double [ 0.000000e+00, %.lr.ph161 ], [ %.299, %147 ]
  %.0100153 = phi double [ 0.000000e+00, %.lr.ph161 ], [ %.1101, %147 ]
  %105 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %104) #9
  %106 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %105)
          to label %107 unwind label %119

107:                                              ; preds = %103
  %108 = call noundef double @_ZSt3absd(double noundef %106)
  %109 = load double, ptr %100, align 8, !tbaa !9
  %110 = fcmp olt double %108, %109
  br i1 %110, label %111, label %147

111:                                              ; preds = %107
  br i1 %101, label %112, label %123

112:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %9) #9
  %113 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %104) #9
  %114 = load ptr, ptr %0, align 8, !tbaa !45
  %115 = getelementptr inbounds i8, ptr %114, i64 32
  %116 = load ptr, ptr %115, align 8
  invoke void %116(ptr dead_on_unwind nonnull writable sret(%"class.fastjet::PseudoJet") align 8 %9, ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull align 8 dereferenceable(88) %113)
          to label %117 unwind label %121

117:                                              ; preds = %112
  %118 = call noundef double @_ZNK7fastjet9PseudoJet4perpEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
  call void @_ZN7fastjet9PseudoJetD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %9) #9
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #9
  br label %131

119:                                              ; preds = %103
  %120 = landingpad { ptr, i32 }
          cleanup
  br label %287

121:                                              ; preds = %112
  %122 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #9
  br label %287

123:                                              ; preds = %111
  %124 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %104) #9
  %125 = load ptr, ptr %0, align 8, !tbaa !45
  %126 = getelementptr inbounds i8, ptr %125, i64 16
  %127 = load ptr, ptr %126, align 8
  %128 = invoke noundef double %127(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull align 8 dereferenceable(88) %124)
          to label %131 unwind label %129

129:                                              ; preds = %123
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %287

131:                                              ; preds = %123, %117
  %.085 = phi double [ %118, %117 ], [ %128, %123 ]
  %132 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %104) #9
  %133 = call noundef double @_ZNK7fastjet9PseudoJet4perpEv(ptr noundef nonnull align 8 dereferenceable(88) %132)
  %134 = fadd double %.0100153, %133
  %135 = fadd double %.095155, %.085
  %136 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %104) #9
  %137 = call noundef double @_ZNK7fastjet9PseudoJet4perpEv(ptr noundef nonnull align 8 dereferenceable(88) %136)
  %138 = fdiv double %137, %.085
  %139 = fcmp olt double %138, %102
  br i1 %139, label %140, label %147

140:                                              ; preds = %131
  %141 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %104) #9
  %142 = call noundef double @_ZNK7fastjet9PseudoJet4perpEv(ptr noundef nonnull align 8 dereferenceable(88) %141)
  %143 = fadd double %.097154, %142
  %144 = fadd double %.092156, %.085
  %145 = fadd double %.089157, %138
  %146 = fadd double %.087158, 1.000000e+00
  br label %147

147:                                              ; preds = %131, %140, %107
  %.1101 = phi double [ %.0100153, %107 ], [ %134, %140 ], [ %134, %131 ]
  %.299 = phi double [ %.097154, %107 ], [ %143, %140 ], [ %.097154, %131 ]
  %.196 = phi double [ %.095155, %107 ], [ %135, %140 ], [ %135, %131 ]
  %.294 = phi double [ %.092156, %107 ], [ %144, %140 ], [ %.092156, %131 ]
  %.291 = phi double [ %.089157, %107 ], [ %145, %140 ], [ %.089157, %131 ]
  %.2 = phi double [ %.087158, %107 ], [ %146, %140 ], [ %.087158, %131 ]
  %148 = add i32 %.086159, 1
  %149 = zext i32 %148 to i64
  %150 = call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  %151 = icmp ugt i64 %150, %149
  br i1 %151, label %103, label %._crit_edge162, !llvm.loop !51

152:                                              ; preds = %._crit_edge162
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #9
  %153 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %153, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %154 unwind label %163

154:                                              ; preds = %152
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #9
  %155 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %155, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %156 unwind label %165

156:                                              ; preds = %154
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #9
  br label %157

157:                                              ; preds = %210, %156
  %.083 = phi double [ 0.000000e+00, %156 ], [ %170, %210 ]
  %.082 = phi double [ 0.000000e+00, %156 ], [ %171, %210 ]
  %.081 = phi i32 [ 0, %156 ], [ %172, %210 ]
  %158 = zext i32 %.081 to i64
  %159 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  %160 = icmp ugt i64 %159, %158
  br i1 %160, label %167, label %161

161:                                              ; preds = %157
  %162 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.2)
          to label %214 unwind label %219

163:                                              ; preds = %152
  %164 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #9
  br label %278

165:                                              ; preds = %154
  %166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #9
  br label %277

167:                                              ; preds = %157
  %168 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %158) #9
  %169 = load double, ptr %168, align 8, !tbaa !5
  %170 = fadd double %.083, %169
  %171 = call double @llvm.fmuladd.f64(double %169, double %169, double %.082)
  %172 = add i32 %.081, 1
  %173 = uitofp i32 %172 to double
  %174 = fdiv double %170, %173
  %175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %158) #9
  store double %174, ptr %175, align 8, !tbaa !5
  %176 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %158) #9
  %177 = load double, ptr %176, align 8, !tbaa !5
  %178 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %158) #9
  %179 = load double, ptr %178, align 8, !tbaa !5
  %180 = fneg double %171
  %181 = fdiv double %180, %173
  %182 = call double @llvm.fmuladd.f64(double %177, double %179, double %181)
  %183 = call noundef double @_ZSt3absd(double noundef %182)
  %184 = call double @sqrt(double noundef %183) #9
  %185 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %158) #9
  store double %184, ptr %185, align 8, !tbaa !5
  %186 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str)
          to label %187 unwind label %212

187:                                              ; preds = %167
  %188 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %186, i32 noundef %.081)
          to label %189 unwind label %212

189:                                              ; preds = %187
  %190 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %188, ptr noundef nonnull @.str.1)
          to label %191 unwind label %212

191:                                              ; preds = %189
  %192 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %158) #9
  %193 = load double, ptr %192, align 8, !tbaa !5
  %194 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %190, double noundef %193)
          to label %195 unwind label %212

195:                                              ; preds = %191
  %196 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %194, ptr noundef nonnull @.str.1)
          to label %197 unwind label %212

197:                                              ; preds = %195
  %198 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %158) #9
  %199 = load double, ptr %198, align 8, !tbaa !5
  %200 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %196, double noundef %199)
          to label %201 unwind label %212

201:                                              ; preds = %197
  %202 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %200, ptr noundef nonnull @.str.1)
          to label %203 unwind label %212

203:                                              ; preds = %201
  %204 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %158) #9
  %205 = load double, ptr %204, align 8, !tbaa !5
  %206 = uitofp i32 %.081 to double
  %207 = fadd double %206, 1.000000e+00
  %sqrt = call double @llvm.sqrt.f64(double %207)
  %208 = fdiv double %205, %sqrt
  %209 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %202, double noundef %208)
          to label %210 unwind label %212

210:                                              ; preds = %203
  %211 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %209, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %157 unwind label %212, !llvm.loop !52

212:                                              ; preds = %210, %203, %201, %197, %195, %191, %189, %187, %167
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %276

214:                                              ; preds = %161
  %215 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %162, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.preheader unwind label %219

.preheader:                                       ; preds = %214
  %216 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  br label %221

217:                                              ; preds = %234
  %218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.5)
          to label %241 unwind label %219

219:                                              ; preds = %273, %271, %269, %267, %265, %263, %261, %255, %253, %251, %248, %246, %244, %241, %217, %214, %161
  %220 = landingpad { ptr, i32 }
          cleanup
  br label %276

221:                                              ; preds = %.preheader, %234
  %222 = phi i64 [ 0, %.preheader ], [ %236, %234 ]
  %.0168 = phi i32 [ 0, %.preheader ], [ %235, %234 ]
  %223 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.3)
          to label %224 unwind label %239

224:                                              ; preds = %221
  %225 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %223, i32 noundef %.0168)
          to label %226 unwind label %239

226:                                              ; preds = %224
  %227 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %225, ptr noundef nonnull @.str.4)
          to label %228 unwind label %239

228:                                              ; preds = %226
  %229 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %222) #9
  %230 = load double, ptr %229, align 8, !tbaa !5
  %231 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %227, double noundef %230)
          to label %232 unwind label %239

232:                                              ; preds = %228
  %233 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %231, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %234 unwind label %239

234:                                              ; preds = %232
  %235 = add i32 %.0168, 1
  %236 = zext i32 %235 to i64
  %237 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  %238 = lshr i64 %237, 1
  %.not = icmp ult i64 %238, %236
  br i1 %.not, label %217, label %221, !llvm.loop !53

239:                                              ; preds = %232, %228, %226, %224, %221
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %276

241:                                              ; preds = %217
  %242 = load double, ptr %70, align 8, !tbaa !49
  %243 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %218, double noundef %242)
          to label %244 unwind label %219

244:                                              ; preds = %241
  %245 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %243, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %246 unwind label %219

246:                                              ; preds = %244
  %247 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.6)
          to label %248 unwind label %219

248:                                              ; preds = %246
  %249 = load double, ptr %96, align 8, !tbaa !50
  %250 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %247, double noundef %249)
          to label %251 unwind label %219

251:                                              ; preds = %248
  %252 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %253 unwind label %219

253:                                              ; preds = %251
  %254 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.7)
          to label %255 unwind label %219

255:                                              ; preds = %253
  %256 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  %257 = add i64 %256, -1
  %258 = uitofp i64 %257 to double
  %259 = fmul double %258, 5.000000e-01
  %260 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %254, double noundef %259)
          to label %261 unwind label %219

261:                                              ; preds = %255
  %262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %260, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %263 unwind label %219

263:                                              ; preds = %261
  %264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.8)
          to label %265 unwind label %219

265:                                              ; preds = %263
  %266 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %264, double noundef %73)
          to label %267 unwind label %219

267:                                              ; preds = %265
  %268 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %266, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %269 unwind label %219

269:                                              ; preds = %267
  %270 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.9)
          to label %271 unwind label %219

271:                                              ; preds = %269
  %272 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %270, double noundef %.0105)
          to label %273 unwind label %219

273:                                              ; preds = %271
  %274 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %272, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %275 unwind label %219

275:                                              ; preds = %273
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #9
  br label %286

276:                                              ; preds = %239, %219, %212
  %.pn = phi { ptr, i32 } [ %213, %212 ], [ %240, %239 ], [ %220, %219 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #9
  br label %277

277:                                              ; preds = %276, %165
  %.pn.pn = phi { ptr, i32 } [ %.pn, %276 ], [ %166, %165 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #9
  br label %278

278:                                              ; preds = %277, %163
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %277 ], [ %164, %163 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #9
  br label %287

279:                                              ; preds = %._crit_edge162
  br label %286

280:                                              ; preds = %._crit_edge162
  %281 = fdiv double %.0100.lcssa, %.095.lcssa
  br label %286

282:                                              ; preds = %._crit_edge162
  %283 = fdiv double %.097.lcssa, %.092.lcssa
  br label %286

284:                                              ; preds = %._crit_edge162
  %285 = fdiv double %.089.lcssa, %.087.lcssa
  br label %286

286:                                              ; preds = %275, %279, %280, %282, %284, %._crit_edge162, %._crit_edge
  %.1 = phi double [ 0.000000e+00, %._crit_edge ], [ 0.000000e+00, %275 ], [ %285, %284 ], [ %283, %282 ], [ %281, %280 ], [ %66, %279 ], [ %.0105, %._crit_edge162 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #9
  call void @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #9
  ret double %.1

287:                                              ; preds = %278, %121, %129, %119, %35, %52, %45, %37, %93
  %.pn130.pn.pn = phi { ptr, i32 } [ %94, %93 ], [ %36, %35 ], [ %53, %52 ], [ %38, %37 ], [ %46, %45 ], [ %.pn.pn.pn, %278 ], [ %120, %119 ], [ %122, %121 ], [ %130, %129 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #9
  call void @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #9
  resume { ptr, i32 } %.pn130.pn.pn
}

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEEEvT_S7_(ptr, ptr) local_unnamed_addr #7

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 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: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.sqrt.f64(double) #8

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


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