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

; 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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.46" = type { i8 }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<fastjet::Private::MirrorInfo, std::allocator<fastjet::Private::MirrorInfo>>::_Vector_impl" }
%"struct.std::_Vector_base<fastjet::Private::MirrorInfo, std::allocator<fastjet::Private::MirrorInfo>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastjet::Private::MirrorInfo, std::allocator<fastjet::Private::MirrorInfo>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastjet::Private::MirrorInfo, std::allocator<fastjet::Private::MirrorInfo>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.15" = type { i8 }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.20" = type { i8 }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = type { %"struct.std::_Vector_base<fastjet::Coord2D, std::allocator<fastjet::Coord2D>>::_Vector_impl" }
%"struct.std::_Vector_base<fastjet::Coord2D, std::allocator<fastjet::Coord2D>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastjet::Coord2D, std::allocator<fastjet::Coord2D>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastjet::Coord2D, std::allocator<fastjet::Coord2D>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.25" = type { i8 }
%"class.fastjet::Private::MirrorInfo" = type { i32, i32 }
%"class.fastjet::Coord2D" = type { double, double }
%"class.fastjet::ClosestPair2D" = type <{ %"class.fastjet::ClosestPair2DBase", %"class.fastjet::ClosestPair2D::triplet", %"class.std::auto_ptr.29", %"class.std::vector.30", %"class.std::stack", %"class.std::vector.38", %"class.fastjet::Coord2D", double, %"class.fastjet::ClosestPair2D::triplet.40", %"class.fastjet::ClosestPair2D::triplet.40", i32, [4 x i8] }>
%"class.fastjet::ClosestPair2DBase" = type { ptr }
%"class.fastjet::ClosestPair2D::triplet" = type { [3 x %"class.std::auto_ptr"] }
%"class.std::auto_ptr" = type { ptr }
%"class.std::auto_ptr.29" = type { ptr }
%"class.std::vector.30" = type { %"struct.std::_Vector_base.31" }
%"struct.std::_Vector_base.31" = type { %"struct.std::_Vector_base<fastjet::ClosestPair2D::Point, std::allocator<fastjet::ClosestPair2D::Point>>::_Vector_impl" }
%"struct.std::_Vector_base<fastjet::ClosestPair2D::Point, std::allocator<fastjet::ClosestPair2D::Point>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastjet::ClosestPair2D::Point, std::allocator<fastjet::ClosestPair2D::Point>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastjet::ClosestPair2D::Point, std::allocator<fastjet::ClosestPair2D::Point>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::stack" = type { %"class.std::deque" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Deque_impl" }
%"struct.std::_Deque_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Deque_impl" = type { %"struct.std::_Deque_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Deque_impl_data" }
%"struct.std::_Deque_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"class.std::vector.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = type { %"struct.std::_Vector_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Vector_impl" }
%"struct.std::_Vector_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.fastjet::ClosestPair2D::triplet.40" = type { [3 x i32] }
%"class.std::vector.41" = type { %"struct.std::_Vector_base.42" }
%"struct.std::_Vector_base.42" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.43" = type { i8 }
%"class.fastjet::ClusterSequence" = type <{ ptr, %"class.fastjet::JetDefinition", %"class.std::vector", %"class.std::vector.1", i8, [3 x i8], i32, double, double, double, double, i32, i32, %"class.fastjet::SharedPtr.6", i32, i8, i8, [2 x i8], %"class.fastjet::SharedPtr.7", %"class.std::vector.8", double, double, double, double, i32, i32, i32, [4 x i8] }>
%"class.fastjet::JetDefinition" = type { i32, double, double, i32, ptr, %"class.fastjet::SharedPtr", %"class.fastjet::JetDefinition::DefaultRecombiner", ptr, %"class.fastjet::SharedPtr.0" }
%"class.fastjet::SharedPtr" = type { ptr }
%"class.fastjet::JetDefinition::DefaultRecombiner" = type <{ %"class.fastjet::JetDefinition::Recombiner", i32, [4 x i8] }>
%"class.fastjet::JetDefinition::Recombiner" = type { ptr }
%"class.fastjet::SharedPtr.0" = type { ptr }
%"class.std::vector" = 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.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.6" = type { 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 }

@.str = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [145 x i8], align 1
@_ZTIN7fastjet5ErrorE = external dso_local constant { ptr, ptr }, align 8
@.str.3 = external hidden unnamed_addr constant [78 x i8], align 1
@__PRETTY_FUNCTION__._ZN7fastjet15ClusterSequence17_CP2DChan_clusterEv = external hidden unnamed_addr constant [51 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: mustprogress nounwind uwtable
declare dso_local void @_ZNSaIN7fastjet7Private10MirrorInfoEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE3maxEv() #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #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 nounwind uwtable
declare dso_local noundef double @_ZNK7fastjet9PseudoJet1EEv(ptr noundef nonnull align 8 dereferenceable(88)) #3 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZNK7fastjet13ClosestPair2D12closest_pairERjS1_Rd(ptr noundef nonnull align 8 dereferenceable(220), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #6

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

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

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

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

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

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

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

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

declare ptr @__cxa_allocate_exception(i64)

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

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

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

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

declare void @__cxa_throw(ptr, ptr, ptr)

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

declare void @__cxa_free_exception(ptr)

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7fastjet15ClusterSequence17_CP2DChan_clusterEv(ptr noundef nonnull align 8 dereferenceable(276) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator.46", align 1
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i1, align 1
  %8 = alloca i32, align 4
  %9 = alloca %"class.std::vector.13", align 8
  %10 = alloca %"class.std::allocator.15", align 1
  %11 = alloca %"class.std::vector.18", align 8
  %12 = alloca %"class.std::allocator.20", align 1
  %13 = alloca %"class.std::vector.23", align 8
  %14 = alloca %"class.std::allocator.25", align 1
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca %"class.fastjet::Private::MirrorInfo", align 4
  %20 = alloca %"class.fastjet::Coord2D", align 8
  %21 = alloca %"class.fastjet::Coord2D", align 8
  %22 = alloca i32, align 4
  %23 = alloca %"class.fastjet::Coord2D", align 8
  %24 = alloca %"class.fastjet::Coord2D", align 8
  %25 = alloca %"class.fastjet::ClosestPair2D", align 8
  %26 = alloca %"class.std::vector.23", align 8
  %27 = alloca %"class.std::allocator.25", align 1
  %28 = alloca %"class.std::vector.41", align 8
  %29 = alloca %"class.std::allocator.43", align 1
  %30 = alloca %"class.std::vector.41", align 8
  %31 = alloca %"class.std::allocator.43", align 1
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca double, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca %"class.fastjet::Coord2D", align 8
  %40 = alloca %"class.fastjet::Coord2D", align 8
  %41 = alloca %"class.fastjet::Private::MirrorInfo", align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %42 = load ptr, ptr %2, align 8
  %43 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %42, i32 0, i32 12
  %44 = load i32, ptr %43, align 4, !tbaa !9
  %45 = icmp ne i32 %44, 1
  br i1 %45, label %46, label %62

46:                                               ; preds = %1
  store i1 true, ptr %7, align 1
  %47 = call ptr @__cxa_allocate_exception(i64 40) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %3) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %4) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %48 unwind label %50

48:                                               ; preds = %46
  invoke void @_ZN7fastjet5ErrorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %47, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %49 unwind label %54

49:                                               ; preds = %48
  store i1 false, ptr %7, align 1
  invoke void @__cxa_throw(ptr %47, ptr @_ZTIN7fastjet5ErrorE, ptr @_ZN7fastjet5ErrorD2Ev) #9
          to label %453 unwind label %54

50:                                               ; preds = %46
  %51 = landingpad { ptr, i32 }
          cleanup
  %52 = extractvalue { ptr, i32 } %51, 0
  store ptr %52, ptr %5, align 8
  %53 = extractvalue { ptr, i32 } %51, 1
  store i32 %53, ptr %6, align 4
  br label %58

54:                                               ; preds = %49, %48
  %55 = landingpad { ptr, i32 }
          cleanup
  %56 = extractvalue { ptr, i32 } %55, 0
  store ptr %56, ptr %5, align 8
  %57 = extractvalue { ptr, i32 } %55, 1
  store i32 %57, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #8
  br label %58

58:                                               ; preds = %54, %50
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #8
  %59 = load i1, ptr %7, align 1
  br i1 %59, label %60, label %61

60:                                               ; preds = %58
  call void @__cxa_free_exception(ptr %47) #8
  br label %61

61:                                               ; preds = %60, %58
  br label %448

62:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  %63 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %42, i32 0, i32 2
  %64 = call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %63) #8
  %65 = trunc i64 %64 to i32
  store i32 %65, ptr %8, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #8
  %66 = load i32, ptr %8, align 4, !tbaa !36
  %67 = mul i32 2, %66
  %68 = zext i32 %67 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #8
  call void @_ZNSaIN7fastjet7Private10MirrorInfoEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  invoke void @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEC2EmRKS3_(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %68, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %69 unwind label %86

69:                                               ; preds = %62
  call void @_ZNSt15__new_allocatorIN7fastjet7Private10MirrorInfoEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #8
  %70 = load i32, ptr %8, align 4, !tbaa !36
  %71 = mul i32 2, %70
  %72 = zext i32 %71 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #8
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %72, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %73 unwind label %90

73:                                               ; preds = %69
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #8
  %74 = load i32, ptr %8, align 4, !tbaa !36
  %75 = mul i32 2, %74
  %76 = zext i32 %75 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #8
  call void @_ZNSaIN7fastjet7Coord2DEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  invoke void @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %76, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %77 unwind label %94

77:                                               ; preds = %73
  call void @_ZNSt15__new_allocatorIN7fastjet7Coord2DEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  %78 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #8
  store double %78, ptr %15, align 8, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %79 = load double, ptr %15, align 8, !tbaa !37
  %80 = fneg double %79
  store double %80, ptr %16, align 8, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  store i32 0, ptr %17, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  store i32 0, ptr %18, align 4, !tbaa !36
  br label %81

81:                                               ; preds = %215, %77
  %82 = load i32, ptr %18, align 4, !tbaa !36
  %83 = load i32, ptr %8, align 4, !tbaa !36
  %84 = icmp ult i32 %82, %83
  br i1 %84, label %98, label %85

85:                                               ; preds = %81
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %219

86:                                               ; preds = %62
  %87 = landingpad { ptr, i32 }
          cleanup
  %88 = extractvalue { ptr, i32 } %87, 0
  store ptr %88, ptr %5, align 8
  %89 = extractvalue { ptr, i32 } %87, 1
  store i32 %89, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIN7fastjet7Private10MirrorInfoEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  br label %447

90:                                               ; preds = %69
  %91 = landingpad { ptr, i32 }
          cleanup
  %92 = extractvalue { ptr, i32 } %91, 0
  store ptr %92, ptr %5, align 8
  %93 = extractvalue { ptr, i32 } %91, 1
  store i32 %93, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #8
  br label %446

94:                                               ; preds = %73
  %95 = landingpad { ptr, i32 }
          cleanup
  %96 = extractvalue { ptr, i32 } %95, 0
  store ptr %96, ptr %5, align 8
  %97 = extractvalue { ptr, i32 } %95, 1
  store i32 %97, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIN7fastjet7Coord2DEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #8
  br label %445

98:                                               ; preds = %81
  %99 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %42, i32 0, i32 2
  %100 = load i32, ptr %18, align 4, !tbaa !36
  %101 = zext i32 %100 to i64
  %102 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %99, i64 noundef %101) #8
  %103 = invoke noundef double @_ZNK7fastjet9PseudoJet1EEv(ptr noundef nonnull align 8 dereferenceable(88) %102)
          to label %104 unwind label %127

104:                                              ; preds = %98
  %105 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %42, i32 0, i32 2
  %106 = load i32, ptr %18, align 4, !tbaa !36
  %107 = zext i32 %106 to i64
  %108 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %105, i64 noundef %107) #8
  %109 = invoke noundef double @_ZNK7fastjet9PseudoJet2pzEv(ptr noundef nonnull align 8 dereferenceable(88) %108)
          to label %110 unwind label %127

110:                                              ; preds = %104
  %111 = invoke noundef double @_ZSt3absd(double noundef %109)
          to label %112 unwind label %127

112:                                              ; preds = %110
  %113 = fcmp oeq double %103, %111
  br i1 %113, label %114, label %135

114:                                              ; preds = %112
  %115 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %42, i32 0, i32 2
  %116 = load i32, ptr %18, align 4, !tbaa !36
  %117 = zext i32 %116 to i64
  %118 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %115, i64 noundef %117) #8
  %119 = invoke noundef double @_ZNK7fastjet9PseudoJet5perp2Ev(ptr noundef nonnull align 8 dereferenceable(88) %118)
          to label %120 unwind label %127

120:                                              ; preds = %114
  %121 = fcmp oeq double %119, 0.000000e+00
  br i1 %121, label %122, label %135

122:                                              ; preds = %120
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  invoke void @_ZN7fastjet7Private10MirrorInfoC2Eii(ptr noundef nonnull align 4 dereferenceable(8) %19, i32 noundef -1, i32 noundef -1)
          to label %123 unwind label %131

123:                                              ; preds = %122
  %124 = load i32, ptr %18, align 4, !tbaa !36
  %125 = zext i32 %124 to i64
  %126 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %125) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %126, ptr align 4 %19, i64 8, i1 false), !tbaa.struct !38
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  br label %214

127:                                              ; preds = %195, %176, %114, %110, %104, %98
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %5, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %6, align 4
  br label %218

131:                                              ; preds = %122
  %132 = landingpad { ptr, i32 }
          cleanup
  %133 = extractvalue { ptr, i32 } %132, 0
  store ptr %133, ptr %5, align 8
  %134 = extractvalue { ptr, i32 } %132, 1
  store i32 %134, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  br label %218

135:                                              ; preds = %120, %112
  %136 = load i32, ptr %17, align 4, !tbaa !36
  %137 = load i32, ptr %18, align 4, !tbaa !36
  %138 = zext i32 %137 to i64
  %139 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %138) #8
  %140 = getelementptr inbounds %"class.fastjet::Private::MirrorInfo", ptr %139, i32 0, i32 0
  store i32 %136, ptr %140, align 4, !tbaa !39
  %141 = load i32, ptr %17, align 4, !tbaa !36
  %142 = add nsw i32 %141, 1
  %143 = load i32, ptr %18, align 4, !tbaa !36
  %144 = zext i32 %143 to i64
  %145 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %144) #8
  %146 = getelementptr inbounds %"class.fastjet::Private::MirrorInfo", ptr %145, i32 0, i32 1
  store i32 %142, ptr %146, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 16, ptr %20) #8
  %147 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %42, i32 0, i32 2
  %148 = load i32, ptr %18, align 4, !tbaa !36
  %149 = zext i32 %148 to i64
  %150 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %147, i64 noundef %149) #8
  %151 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %150)
          to label %152 unwind label %206

152:                                              ; preds = %135
  %153 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %42, i32 0, i32 2
  %154 = load i32, ptr %18, align 4, !tbaa !36
  %155 = zext i32 %154 to i64
  %156 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %153, i64 noundef %155) #8
  %157 = invoke noundef double @_ZNK7fastjet9PseudoJet8phi_02piEv(ptr noundef nonnull align 8 dereferenceable(88) %156)
          to label %158 unwind label %206

158:                                              ; preds = %152
  invoke void @_ZN7fastjet7Coord2DC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %20, double noundef %151, double noundef %157)
          to label %159 unwind label %206

159:                                              ; preds = %158
  %160 = load i32, ptr %17, align 4, !tbaa !36
  %161 = sext i32 %160 to i64
  %162 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %161) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %162, ptr align 8 %20, i64 16, i1 false), !tbaa.struct !42
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #8
  %163 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %42, i32 0, i32 2
  %164 = load i32, ptr %18, align 4, !tbaa !36
  %165 = zext i32 %164 to i64
  %166 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %163, i64 noundef %165) #8
  %167 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %166)
          to label %168 unwind label %210

168:                                              ; preds = %159
  %169 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %42, i32 0, i32 2
  %170 = load i32, ptr %18, align 4, !tbaa !36
  %171 = zext i32 %170 to i64
  %172 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %169, i64 noundef %171) #8
  %173 = invoke noundef double @_ZNK7fastjet9PseudoJet8phi_02piEv(ptr noundef nonnull align 8 dereferenceable(88) %172)
          to label %174 unwind label %210

174:                                              ; preds = %168
  %175 = fadd double %173, 0x401921FB54442D18
  invoke void @_ZN7fastjet7Coord2DC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %21, double noundef %167, double noundef %175)
          to label %176 unwind label %210

176:                                              ; preds = %174
  %177 = load i32, ptr %17, align 4, !tbaa !36
  %178 = add nsw i32 %177, 1
  %179 = sext i32 %178 to i64
  %180 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %179) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %180, ptr align 8 %21, i64 16, i1 false), !tbaa.struct !42
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #8
  %181 = load i32, ptr %18, align 4, !tbaa !36
  %182 = load i32, ptr %17, align 4, !tbaa !36
  %183 = sext i32 %182 to i64
  %184 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %183) #8
  store i32 %181, ptr %184, align 4, !tbaa !36
  %185 = load i32, ptr %18, align 4, !tbaa !36
  %186 = load i32, ptr %17, align 4, !tbaa !36
  %187 = add nsw i32 %186, 1
  %188 = sext i32 %187 to i64
  %189 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %188) #8
  store i32 %185, ptr %189, align 4, !tbaa !36
  %190 = load i32, ptr %17, align 4, !tbaa !36
  %191 = sext i32 %190 to i64
  %192 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %191) #8
  %193 = getelementptr inbounds %"class.fastjet::Coord2D", ptr %192, i32 0, i32 0
  %194 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %193, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %195 unwind label %127

195:                                              ; preds = %176
  %196 = load double, ptr %194, align 8, !tbaa !37
  store double %196, ptr %15, align 8, !tbaa !37
  %197 = load i32, ptr %17, align 4, !tbaa !36
  %198 = sext i32 %197 to i64
  %199 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %198) #8
  %200 = getelementptr inbounds %"class.fastjet::Coord2D", ptr %199, i32 0, i32 0
  %201 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %200, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %202 unwind label %127

202:                                              ; preds = %195
  %203 = load double, ptr %201, align 8, !tbaa !37
  store double %203, ptr %16, align 8, !tbaa !37
  %204 = load i32, ptr %17, align 4, !tbaa !36
  %205 = add nsw i32 %204, 2
  store i32 %205, ptr %17, align 4, !tbaa !36
  br label %214

206:                                              ; preds = %158, %152, %135
  %207 = landingpad { ptr, i32 }
          cleanup
  %208 = extractvalue { ptr, i32 } %207, 0
  store ptr %208, ptr %5, align 8
  %209 = extractvalue { ptr, i32 } %207, 1
  store i32 %209, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #8
  br label %218

210:                                              ; preds = %174, %168, %159
  %211 = landingpad { ptr, i32 }
          cleanup
  %212 = extractvalue { ptr, i32 } %211, 0
  store ptr %212, ptr %5, align 8
  %213 = extractvalue { ptr, i32 } %211, 1
  store i32 %213, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #8
  br label %218

214:                                              ; preds = %202, %123
  br label %215

215:                                              ; preds = %214
  %216 = load i32, ptr %18, align 4, !tbaa !36
  %217 = add i32 %216, 1
  store i32 %217, ptr %18, align 4, !tbaa !36
  br label %81, !llvm.loop !43

218:                                              ; preds = %210, %206, %131, %127
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %444

219:                                              ; preds = %85
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  %220 = load i32, ptr %8, align 4, !tbaa !36
  store i32 %220, ptr %22, align 4, !tbaa !36
  br label %221

221:                                              ; preds = %232, %219
  %222 = load i32, ptr %22, align 4, !tbaa !36
  %223 = load i32, ptr %8, align 4, !tbaa !36
  %224 = mul i32 2, %223
  %225 = icmp ult i32 %222, %224
  br i1 %225, label %227, label %226

226:                                              ; preds = %221
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %235

227:                                              ; preds = %221
  %228 = load i32, ptr %22, align 4, !tbaa !36
  %229 = zext i32 %228 to i64
  %230 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %229) #8
  %231 = getelementptr inbounds %"class.fastjet::Private::MirrorInfo", ptr %230, i32 0, i32 0
  store i32 -3, ptr %231, align 4, !tbaa !39
  br label %232

232:                                              ; preds = %227
  %233 = load i32, ptr %22, align 4, !tbaa !36
  %234 = add i32 %233, 1
  store i32 %234, ptr %22, align 4, !tbaa !36
  br label %221, !llvm.loop !45

235:                                              ; preds = %226
  %236 = load i32, ptr %17, align 4, !tbaa !36
  %237 = sext i32 %236 to i64
  invoke void @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %237)
          to label %238 unwind label %258

238:                                              ; preds = %235
  call void @llvm.lifetime.start.p0(i64 16, ptr %23) #8
  %239 = load double, ptr %15, align 8, !tbaa !37
  %240 = fsub double %239, 1.000000e+00
  invoke void @_ZN7fastjet7Coord2DC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %23, double noundef %240, double noundef 0.000000e+00)
          to label %241 unwind label %262

241:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #8
  %242 = load double, ptr %16, align 8, !tbaa !37
  %243 = fadd double %242, 1.000000e+00
  invoke void @_ZN7fastjet7Coord2DC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %24, double noundef %243, double noundef 0x402921FB54442D18)
          to label %244 unwind label %266

244:                                              ; preds = %241
  call void @llvm.lifetime.start.p0(i64 224, ptr %25) #8
  invoke void @_ZN7fastjet13ClosestPair2DC2ERKSt6vectorINS_7Coord2DESaIS2_EERKS2_S8_(ptr noundef nonnull align 8 dereferenceable(220) %25, ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 8 dereferenceable(16) %24)
          to label %245 unwind label %270

245:                                              ; preds = %244
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #8
  call void @_ZNSaIN7fastjet7Coord2DEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  invoke void @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef 2, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %246 unwind label %274

246:                                              ; preds = %245
  call void @_ZNSt15__new_allocatorIN7fastjet7Coord2DEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef 4, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %247 unwind label %278

247:                                              ; preds = %246
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %30) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef 2, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %248 unwind label %282

248:                                              ; preds = %247
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #8
  br label %249

249:                                              ; preds = %428, %248
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  invoke void @_ZNK7fastjet13ClosestPair2D12closest_pairERjS1_Rd(ptr noundef nonnull align 8 dereferenceable(220) %25, ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %250 unwind label %286

250:                                              ; preds = %249
  %251 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %42, i32 0, i32 9
  %252 = load double, ptr %251, align 8, !tbaa !46
  %253 = load double, ptr %34, align 8, !tbaa !37
  %254 = fmul double %253, %252
  store double %254, ptr %34, align 8, !tbaa !37
  %255 = load double, ptr %34, align 8, !tbaa !37
  %256 = fcmp ogt double %255, 1.000000e+00
  br i1 %256, label %257, label %290

257:                                              ; preds = %250
  store i32 8, ptr %35, align 4
  br label %425

258:                                              ; preds = %235
  %259 = landingpad { ptr, i32 }
          cleanup
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %5, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %6, align 4
  br label %444

262:                                              ; preds = %238
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %5, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %6, align 4
  br label %443

266:                                              ; preds = %241
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %5, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %6, align 4
  br label %442

270:                                              ; preds = %244
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %5, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %6, align 4
  br label %441

274:                                              ; preds = %245
  %275 = landingpad { ptr, i32 }
          cleanup
  %276 = extractvalue { ptr, i32 } %275, 0
  store ptr %276, ptr %5, align 8
  %277 = extractvalue { ptr, i32 } %275, 1
  store i32 %277, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIN7fastjet7Coord2DEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #8
  br label %440

278:                                              ; preds = %246
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %5, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  br label %439

282:                                              ; preds = %247
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %5, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #8
  br label %438

286:                                              ; preds = %249
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %5, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %6, align 4
  br label %432

290:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %291 = load i32, ptr %32, align 4, !tbaa !36
  %292 = zext i32 %291 to i64
  %293 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %292) #8
  %294 = load i32, ptr %293, align 4, !tbaa !36
  store i32 %294, ptr %36, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %295 = load i32, ptr %33, align 4, !tbaa !36
  %296 = zext i32 %295 to i64
  %297 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %296) #8
  %298 = load i32, ptr %297, align 4, !tbaa !36
  store i32 %298, ptr %37, align 4, !tbaa !36
  %299 = load i32, ptr %36, align 4, !tbaa !36
  %300 = load i32, ptr %37, align 4, !tbaa !36
  %301 = icmp ne i32 %299, %300
  br i1 %301, label %302, label %303

302:                                              ; preds = %290
  br label %305

303:                                              ; preds = %290
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 290, ptr noundef @__PRETTY_FUNCTION__._ZN7fastjet15ClusterSequence17_CP2DChan_clusterEv) #10
  unreachable

304:                                              ; No predecessors!
  br label %305

305:                                              ; preds = %304, %302
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  invoke void @_ZN7fastjet15ClusterSequence25_do_ij_recombination_stepERKiS2_RKdRi(ptr noundef nonnull align 8 dereferenceable(276) %42, ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %306 unwind label %407

306:                                              ; preds = %305
  %307 = load i32, ptr %36, align 4, !tbaa !36
  %308 = sext i32 %307 to i64
  %309 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %308) #8
  %310 = getelementptr inbounds %"class.fastjet::Private::MirrorInfo", ptr %309, i32 0, i32 0
  %311 = load i32, ptr %310, align 4, !tbaa !39
  %312 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef 0) #8
  store i32 %311, ptr %312, align 4, !tbaa !36
  %313 = load i32, ptr %36, align 4, !tbaa !36
  %314 = sext i32 %313 to i64
  %315 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %314) #8
  %316 = getelementptr inbounds %"class.fastjet::Private::MirrorInfo", ptr %315, i32 0, i32 1
  %317 = load i32, ptr %316, align 4, !tbaa !41
  %318 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef 1) #8
  store i32 %317, ptr %318, align 4, !tbaa !36
  %319 = load i32, ptr %37, align 4, !tbaa !36
  %320 = sext i32 %319 to i64
  %321 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %320) #8
  %322 = getelementptr inbounds %"class.fastjet::Private::MirrorInfo", ptr %321, i32 0, i32 0
  %323 = load i32, ptr %322, align 4, !tbaa !39
  %324 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef 2) #8
  store i32 %323, ptr %324, align 4, !tbaa !36
  %325 = load i32, ptr %37, align 4, !tbaa !36
  %326 = sext i32 %325 to i64
  %327 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %326) #8
  %328 = getelementptr inbounds %"class.fastjet::Private::MirrorInfo", ptr %327, i32 0, i32 1
  %329 = load i32, ptr %328, align 4, !tbaa !41
  %330 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef 3) #8
  store i32 %329, ptr %330, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 16, ptr %39) #8
  %331 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %42, i32 0, i32 2
  %332 = load i32, ptr %38, align 4, !tbaa !36
  %333 = sext i32 %332 to i64
  %334 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %331, i64 noundef %333) #8
  %335 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %334)
          to label %336 unwind label %411

336:                                              ; preds = %306
  %337 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %42, i32 0, i32 2
  %338 = load i32, ptr %38, align 4, !tbaa !36
  %339 = sext i32 %338 to i64
  %340 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %337, i64 noundef %339) #8
  %341 = invoke noundef double @_ZNK7fastjet9PseudoJet8phi_02piEv(ptr noundef nonnull align 8 dereferenceable(88) %340)
          to label %342 unwind label %411

342:                                              ; preds = %336
  invoke void @_ZN7fastjet7Coord2DC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %39, double noundef %335, double noundef %341)
          to label %343 unwind label %411

343:                                              ; preds = %342
  %344 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef 0) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %344, ptr align 8 %39, i64 16, i1 false), !tbaa.struct !42
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #8
  %345 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %42, i32 0, i32 2
  %346 = load i32, ptr %38, align 4, !tbaa !36
  %347 = sext i32 %346 to i64
  %348 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %345, i64 noundef %347) #8
  %349 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %348)
          to label %350 unwind label %415

350:                                              ; preds = %343
  %351 = getelementptr inbounds %"class.fastjet::ClusterSequence", ptr %42, i32 0, i32 2
  %352 = load i32, ptr %38, align 4, !tbaa !36
  %353 = sext i32 %352 to i64
  %354 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %351, i64 noundef %353) #8
  %355 = invoke noundef double @_ZNK7fastjet9PseudoJet8phi_02piEv(ptr noundef nonnull align 8 dereferenceable(88) %354)
          to label %356 unwind label %415

356:                                              ; preds = %350
  %357 = fadd double %355, 0x401921FB54442D18
  invoke void @_ZN7fastjet7Coord2DC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %40, double noundef %349, double noundef %357)
          to label %358 unwind label %415

358:                                              ; preds = %356
  %359 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef 1) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %359, ptr align 8 %40, i64 16, i1 false), !tbaa.struct !42
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #8
  %360 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef 0) #8
  %361 = load i32, ptr %360, align 4, !tbaa !36
  %362 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef 2) #8
  %363 = load i32, ptr %362, align 4, !tbaa !36
  %364 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef 0) #8
  %365 = invoke noundef i32 @_ZN7fastjet13ClosestPair2D7replaceEjjRKNS_7Coord2DE(ptr noundef nonnull align 8 dereferenceable(220) %25, i32 noundef %361, i32 noundef %363, ptr noundef nonnull align 8 dereferenceable(16) %364)
          to label %366 unwind label %407

366:                                              ; preds = %358
  %367 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef 0) #8
  store i32 %365, ptr %367, align 4, !tbaa !36
  %368 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef 1) #8
  %369 = load i32, ptr %368, align 4, !tbaa !36
  %370 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef 3) #8
  %371 = load i32, ptr %370, align 4, !tbaa !36
  %372 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef 1) #8
  %373 = invoke noundef i32 @_ZN7fastjet13ClosestPair2D7replaceEjjRKNS_7Coord2DE(ptr noundef nonnull align 8 dereferenceable(220) %25, i32 noundef %369, i32 noundef %371, ptr noundef nonnull align 8 dereferenceable(16) %372)
          to label %374 unwind label %407

374:                                              ; preds = %366
  %375 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef 1) #8
  store i32 %373, ptr %375, align 4, !tbaa !36
  %376 = load i32, ptr %36, align 4, !tbaa !36
  %377 = sext i32 %376 to i64
  %378 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %377) #8
  %379 = getelementptr inbounds %"class.fastjet::Private::MirrorInfo", ptr %378, i32 0, i32 0
  store i32 -3, ptr %379, align 4, !tbaa !39
  %380 = load i32, ptr %37, align 4, !tbaa !36
  %381 = sext i32 %380 to i64
  %382 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %381) #8
  %383 = getelementptr inbounds %"class.fastjet::Private::MirrorInfo", ptr %382, i32 0, i32 0
  store i32 -3, ptr %383, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %384 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef 0) #8
  %385 = load i32, ptr %384, align 4, !tbaa !36
  %386 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef 1) #8
  %387 = load i32, ptr %386, align 4, !tbaa !36
  invoke void @_ZN7fastjet7Private10MirrorInfoC2Eii(ptr noundef nonnull align 4 dereferenceable(8) %41, i32 noundef %385, i32 noundef %387)
          to label %388 unwind label %419

388:                                              ; preds = %374
  %389 = load i32, ptr %38, align 4, !tbaa !36
  %390 = sext i32 %389 to i64
  %391 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %390) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %391, ptr align 4 %41, i64 8, i1 false), !tbaa.struct !38
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  %392 = load i32, ptr %38, align 4, !tbaa !36
  %393 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef 0) #8
  %394 = load i32, ptr %393, align 4, !tbaa !36
  %395 = zext i32 %394 to i64
  %396 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %395) #8
  store i32 %392, ptr %396, align 4, !tbaa !36
  %397 = load i32, ptr %38, align 4, !tbaa !36
  %398 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef 1) #8
  %399 = load i32, ptr %398, align 4, !tbaa !36
  %400 = zext i32 %399 to i64
  %401 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %400) #8
  store i32 %397, ptr %401, align 4, !tbaa !36
  %402 = load i32, ptr %8, align 4, !tbaa !36
  %403 = add i32 %402, -1
  store i32 %403, ptr %8, align 4, !tbaa !36
  %404 = load i32, ptr %8, align 4, !tbaa !36
  %405 = icmp eq i32 %404, 1
  br i1 %405, label %406, label %423

406:                                              ; preds = %388
  store i32 8, ptr %35, align 4
  br label %424

407:                                              ; preds = %366, %358, %305
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %5, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %6, align 4
  br label %431

411:                                              ; preds = %342, %336, %306
  %412 = landingpad { ptr, i32 }
          cleanup
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %5, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #8
  br label %431

415:                                              ; preds = %356, %350, %343
  %416 = landingpad { ptr, i32 }
          cleanup
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %5, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #8
  br label %431

419:                                              ; preds = %374
  %420 = landingpad { ptr, i32 }
          cleanup
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %5, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  br label %431

423:                                              ; preds = %388
  store i32 0, ptr %35, align 4
  br label %424

424:                                              ; preds = %423, %406
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %425

425:                                              ; preds = %424, %257
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  %426 = load i32, ptr %35, align 4
  switch i32 %426, label %453 [
    i32 0, label %427
    i32 8, label %429
  ]

427:                                              ; preds = %425
  br label %428

428:                                              ; preds = %427
  br i1 true, label %249, label %429, !llvm.loop !47

429:                                              ; preds = %428, %425
  invoke void @_ZN7fastjet15ClusterSequence28_do_Cambridge_inclusive_jetsEv(ptr noundef nonnull align 8 dereferenceable(276) %42)
          to label %430 unwind label %433

430:                                              ; preds = %429
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #8
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #8
  call void @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #8
  call void @_ZN7fastjet13ClosestPair2DD2Ev(ptr noundef nonnull align 8 dereferenceable(220) %25) #8
  call void @llvm.lifetime.end.p0(i64 224, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #8
  call void @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  ret void

431:                                              ; preds = %419, %415, %411, %407
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %432

432:                                              ; preds = %431, %286
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %437

433:                                              ; preds = %429
  %434 = landingpad { ptr, i32 }
          cleanup
  %435 = extractvalue { ptr, i32 } %434, 0
  store ptr %435, ptr %5, align 8
  %436 = extractvalue { ptr, i32 } %434, 1
  store i32 %436, ptr %6, align 4
  br label %437

437:                                              ; preds = %433, %432
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #8
  br label %438

438:                                              ; preds = %437, %282
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #8
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #8
  br label %439

439:                                              ; preds = %438, %278
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #8
  call void @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #8
  br label %440

440:                                              ; preds = %439, %274
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #8
  call void @_ZN7fastjet13ClosestPair2DD2Ev(ptr noundef nonnull align 8 dereferenceable(220) %25) #8
  br label %441

441:                                              ; preds = %440, %270
  call void @llvm.lifetime.end.p0(i64 224, ptr %25) #8
  br label %442

442:                                              ; preds = %441, %266
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #8
  br label %443

443:                                              ; preds = %442, %262
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #8
  br label %444

444:                                              ; preds = %443, %258, %218
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #8
  br label %445

445:                                              ; preds = %444, %94
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #8
  br label %446

446:                                              ; preds = %445, %90
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #8
  call void @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  br label %447

447:                                              ; preds = %446, %86
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %448

448:                                              ; preds = %447, %61
  %449 = load ptr, ptr %5, align 8
  %450 = load i32, ptr %6, align 4
  %451 = insertvalue { ptr, i32 } poison, ptr %449, 0
  %452 = insertvalue { ptr, i32 } %451, i32 %450, 1
  resume { ptr, i32 } %452

453:                                              ; preds = %425, %49
  unreachable
}

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

declare noundef i32 @_ZN7fastjet13ClosestPair2D7replaceEjjRKNS_7Coord2DE(ptr noundef nonnull align 8 dereferenceable(220), i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !12, i64 180}
!10 = !{!"_ZTSN7fastjet15ClusterSequenceE", !11, i64 8, !20, i64 88, !24, i64 112, !28, i64 136, !29, i64 140, !13, i64 144, !13, i64 152, !13, i64 160, !13, i64 168, !14, i64 176, !12, i64 180, !30, i64 184, !29, i64 192, !28, i64 196, !28, i64 197, !31, i64 200, !32, i64 208, !13, i64 232, !13, i64 240, !13, i64 248, !13, i64 256, !29, i64 264, !29, i64 268, !29, i64 272}
!11 = !{!"_ZTSN7fastjet13JetDefinitionE", !12, i64 0, !13, i64 8, !13, i64 16, !14, i64 24, !6, i64 32, !15, i64 40, !16, i64 48, !6, i64 64, !19, i64 72}
!12 = !{!"_ZTSN7fastjet12JetAlgorithmE", !7, i64 0}
!13 = !{!"double", !7, i64 0}
!14 = !{!"_ZTSN7fastjet8StrategyE", !7, i64 0}
!15 = !{!"_ZTSN7fastjet9SharedPtrIKNS_13JetDefinition6PluginEEE", !6, i64 0}
!16 = !{!"_ZTSN7fastjet13JetDefinition17DefaultRecombinerE", !17, i64 0, !18, i64 8}
!17 = !{!"_ZTSN7fastjet13JetDefinition10RecombinerE"}
!18 = !{!"_ZTSN7fastjet19RecombinationSchemeE", !7, i64 0}
!19 = !{!"_ZTSN7fastjet9SharedPtrIKNS_13JetDefinition10RecombinerEEE", !6, i64 0}
!20 = !{!"_ZTSSt6vectorIN7fastjet9PseudoJetESaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!24 = !{!"_ZTSSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!28 = !{!"bool", !7, i64 0}
!29 = !{!"int", !7, i64 0}
!30 = !{!"_ZTSN7fastjet9SharedPtrINS_22PseudoJetStructureBaseEEE", !6, i64 0}
!31 = !{!"_ZTSN7fastjet9SharedPtrINS_15ClusterSequence6ExtrasEEE", !6, i64 0}
!32 = !{!"_ZTSSt6vectorIN7fastjet15ClusterSequence4TileESaIS2_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!29, !29, i64 0}
!37 = !{!13, !13, i64 0}
!38 = !{i64 0, i64 4, !36, i64 4, i64 4, !36}
!39 = !{!40, !29, i64 0}
!40 = !{!"_ZTSN7fastjet7Private10MirrorInfoE", !29, i64 0, !29, i64 4}
!41 = !{!40, !29, i64 4}
!42 = !{i64 0, i64 8, !37, i64 8, i64 8, !37}
!43 = distinct !{!43, !44}
!44 = !{!"llvm.loop.mustprogress"}
!45 = distinct !{!45, !44}
!46 = !{!10, !13, i64 160}
!47 = distinct !{!47, !44}


; 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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.46" = type { i8 }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<fastjet::Private::MirrorInfo, std::allocator<fastjet::Private::MirrorInfo>>::_Vector_impl" }
%"struct.std::_Vector_base<fastjet::Private::MirrorInfo, std::allocator<fastjet::Private::MirrorInfo>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastjet::Private::MirrorInfo, std::allocator<fastjet::Private::MirrorInfo>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastjet::Private::MirrorInfo, std::allocator<fastjet::Private::MirrorInfo>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.15" = type { i8 }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.20" = type { i8 }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = type { %"struct.std::_Vector_base<fastjet::Coord2D, std::allocator<fastjet::Coord2D>>::_Vector_impl" }
%"struct.std::_Vector_base<fastjet::Coord2D, std::allocator<fastjet::Coord2D>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastjet::Coord2D, std::allocator<fastjet::Coord2D>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastjet::Coord2D, std::allocator<fastjet::Coord2D>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.25" = type { i8 }
%"class.fastjet::Private::MirrorInfo" = type { i32, i32 }
%"class.fastjet::Coord2D" = type { double, double }
%"class.fastjet::ClosestPair2D" = type <{ %"class.fastjet::ClosestPair2DBase", %"class.fastjet::ClosestPair2D::triplet", %"class.std::auto_ptr.29", %"class.std::vector.30", %"class.std::stack", %"class.std::vector.38", %"class.fastjet::Coord2D", double, %"class.fastjet::ClosestPair2D::triplet.40", %"class.fastjet::ClosestPair2D::triplet.40", i32, [4 x i8] }>
%"class.fastjet::ClosestPair2DBase" = type { ptr }
%"class.fastjet::ClosestPair2D::triplet" = type { [3 x %"class.std::auto_ptr"] }
%"class.std::auto_ptr" = type { ptr }
%"class.std::auto_ptr.29" = type { ptr }
%"class.std::vector.30" = type { %"struct.std::_Vector_base.31" }
%"struct.std::_Vector_base.31" = type { %"struct.std::_Vector_base<fastjet::ClosestPair2D::Point, std::allocator<fastjet::ClosestPair2D::Point>>::_Vector_impl" }
%"struct.std::_Vector_base<fastjet::ClosestPair2D::Point, std::allocator<fastjet::ClosestPair2D::Point>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastjet::ClosestPair2D::Point, std::allocator<fastjet::ClosestPair2D::Point>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastjet::ClosestPair2D::Point, std::allocator<fastjet::ClosestPair2D::Point>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::stack" = type { %"class.std::deque" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Deque_impl" }
%"struct.std::_Deque_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Deque_impl" = type { %"struct.std::_Deque_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Deque_impl_data" }
%"struct.std::_Deque_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"class.std::vector.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = type { %"struct.std::_Vector_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Vector_impl" }
%"struct.std::_Vector_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastjet::ClosestPair2D::Point *, std::allocator<fastjet::ClosestPair2D::Point *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.fastjet::ClosestPair2D::triplet.40" = type { [3 x i32] }
%"class.std::vector.41" = type { %"struct.std::_Vector_base.42" }
%"struct.std::_Vector_base.42" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.43" = type { i8 }

@.str = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [145 x i8], align 1
@_ZTIN7fastjet5ErrorE = external dso_local constant { ptr, ptr }, align 8
@.str.3 = external hidden unnamed_addr constant [78 x i8], align 1
@__PRETTY_FUNCTION__._ZN7fastjet15ClusterSequence17_CP2DChan_clusterEv = external hidden unnamed_addr constant [51 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 nounwind uwtable
declare dso_local void @_ZNSaIN7fastjet7Private10MirrorInfoEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE3maxEv() local_unnamed_addr #1 align 2

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

; Function Attrs: 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 nounwind uwtable
declare dso_local noundef double @_ZNK7fastjet9PseudoJet1EEv(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZNK7fastjet13ClosestPair2D12closest_pairERjS1_Rd(ptr noundef nonnull align 8 dereferenceable(220), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #6

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

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

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

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

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

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

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

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

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

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

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

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7fastjet15ClusterSequence17_CP2DChan_clusterEv(ptr noundef nonnull align 8 dereferenceable(276) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::__cxx11::basic_string", align 8
  %3 = alloca %"class.std::allocator.46", align 1
  %4 = alloca %"class.std::vector.13", align 8
  %5 = alloca %"class.std::allocator.15", align 1
  %6 = alloca %"class.std::vector.18", align 8
  %7 = alloca %"class.std::allocator.20", align 1
  %8 = alloca %"class.std::vector.23", align 8
  %9 = alloca %"class.std::allocator.25", align 1
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca %"class.fastjet::Private::MirrorInfo", align 8
  %13 = alloca %"class.fastjet::Coord2D", align 8
  %14 = alloca %"class.fastjet::Coord2D", align 8
  %15 = alloca %"class.fastjet::Coord2D", align 8
  %16 = alloca %"class.fastjet::Coord2D", align 8
  %17 = alloca %"class.fastjet::ClosestPair2D", align 8
  %18 = alloca %"class.std::vector.23", align 8
  %19 = alloca %"class.std::allocator.25", align 1
  %20 = alloca %"class.std::vector.41", align 8
  %21 = alloca %"class.std::allocator.43", align 1
  %22 = alloca %"class.std::vector.41", align 8
  %23 = alloca %"class.std::allocator.43", align 1
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca double, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %"class.fastjet::Coord2D", align 8
  %31 = alloca %"class.fastjet::Coord2D", align 8
  %32 = alloca %"class.fastjet::Private::MirrorInfo", align 8
  %33 = getelementptr inbounds i8, ptr %0, i64 180
  %34 = load i32, ptr %33, align 4, !tbaa !5
  %.not = icmp eq i32 %34, 1
  br i1 %.not, label %43, label %35

35:                                               ; preds = %1
  %36 = tail call ptr @__cxa_allocate_exception(i64 40) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %3)
          to label %37 unwind label %.thread

37:                                               ; preds = %35
  invoke void @_ZN7fastjet5ErrorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %36, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %38 unwind label %40

38:                                               ; preds = %37
  invoke void @__cxa_throw(ptr nonnull %36, ptr nonnull @_ZTIN7fastjet5ErrorE, ptr nonnull @_ZN7fastjet5ErrorD2Ev) #9
          to label %265 unwind label %40

.thread:                                          ; preds = %35
  %39 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #8
  br label %42

40:                                               ; preds = %37, %38
  %.045 = phi i1 [ false, %38 ], [ true, %37 ]
  %41 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #8
  br i1 %.045, label %42, label %264

42:                                               ; preds = %.thread, %40
  %.pn7984 = phi { ptr, i32 } [ %39, %.thread ], [ %41, %40 ]
  call void @__cxa_free_exception(ptr %36) #8
  br label %264

43:                                               ; preds = %1
  %44 = getelementptr inbounds i8, ptr %0, i64 88
  %45 = tail call noundef i64 @_ZNKSt6vectorIN7fastjet9PseudoJetESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %44) #8
  %46 = trunc i64 %45 to i32
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #8
  %47 = shl i64 %45, 1
  %48 = and i64 %47, 4294967294
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #8
  call void @_ZNSaIN7fastjet7Private10MirrorInfoEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  invoke void @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEC2EmRKS3_(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %48, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %49 unwind label %56

49:                                               ; preds = %43
  call void @_ZNSt15__new_allocatorIN7fastjet7Private10MirrorInfoEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #8
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %48, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %50 unwind label %58

50:                                               ; preds = %49
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #8
  call void @_ZNSaIN7fastjet7Coord2DEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #8
  invoke void @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %48, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %51 unwind label %60

51:                                               ; preds = %50
  call void @_ZNSt15__new_allocatorIN7fastjet7Coord2DEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #8
  %52 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #8
  store double %52, ptr %10, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #8
  %53 = fneg double %52
  store double %53, ptr %11, align 8, !tbaa !35
  %.not95 = icmp eq i32 %46, 0
  br i1 %.not95, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %51
  %wide.trip.count = and i64 %45, 4294967295
  br label %.lr.ph

.preheader:                                       ; preds = %111
  %54 = icmp sgt i32 %46, 0
  br i1 %54, label %.lr.ph94.preheader, label %._crit_edge

.lr.ph94.preheader:                               ; preds = %.preheader
  %55 = and i64 %45, 2147483647
  br label %.lr.ph94

56:                                               ; preds = %43
  %57 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIN7fastjet7Private10MirrorInfoEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #8
  br label %263

58:                                               ; preds = %49
  %59 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #8
  br label %262

60:                                               ; preds = %50
  %61 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIN7fastjet7Coord2DEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #8
  br label %261

.lr.ph:                                           ; preds = %.lr.ph.preheader, %111
  %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %111 ]
  %.04191 = phi i32 [ 0, %.lr.ph.preheader ], [ %.142, %111 ]
  %62 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %indvars.iv) #8
  %63 = call noundef double @_ZNK7fastjet9PseudoJet1EEv(ptr noundef nonnull align 8 dereferenceable(88) %62)
  %64 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %indvars.iv) #8
  %65 = call noundef double @_ZNK7fastjet9PseudoJet2pzEv(ptr noundef nonnull align 8 dereferenceable(88) %64)
  %66 = call noundef double @_ZSt3absd(double noundef %65)
  %67 = fcmp oeq double %63, %66
  br i1 %67, label %68, label %75

68:                                               ; preds = %.lr.ph
  %69 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %indvars.iv) #8
  %70 = call noundef double @_ZNK7fastjet9PseudoJet5perp2Ev(ptr noundef nonnull align 8 dereferenceable(88) %69)
  %71 = fcmp oeq double %70, 0.000000e+00
  br i1 %71, label %72, label %75

72:                                               ; preds = %68
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  call void @_ZN7fastjet7Private10MirrorInfoC2Eii(ptr noundef nonnull align 4 dereferenceable(8) %12, i32 noundef -1, i32 noundef -1)
  %73 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %indvars.iv) #8
  %74 = load i64, ptr %12, align 8
  store i64 %74, ptr %73, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  br label %111

75:                                               ; preds = %68, %.lr.ph
  %76 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %indvars.iv) #8
  store i32 %.04191, ptr %76, align 4, !tbaa !36
  %77 = add nsw i32 %.04191, 1
  %78 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %indvars.iv) #8
  %79 = getelementptr inbounds i8, ptr %78, i64 4
  store i32 %77, ptr %79, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #8
  %80 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %indvars.iv) #8
  %81 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %80)
          to label %82 unwind label %107

82:                                               ; preds = %75
  %83 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %indvars.iv) #8
  %84 = invoke noundef double @_ZNK7fastjet9PseudoJet8phi_02piEv(ptr noundef nonnull align 8 dereferenceable(88) %83)
          to label %85 unwind label %107

85:                                               ; preds = %82
  call void @_ZN7fastjet7Coord2DC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %13, double noundef %81, double noundef %84)
  %86 = sext i32 %.04191 to i64
  %87 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %86) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %87, ptr noundef nonnull align 8 dereferenceable(16) %13, i64 16, i1 false), !tbaa.struct !39
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #8
  %88 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %indvars.iv) #8
  %89 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %88)
          to label %90 unwind label %109

90:                                               ; preds = %85
  %91 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %indvars.iv) #8
  %92 = invoke noundef double @_ZNK7fastjet9PseudoJet8phi_02piEv(ptr noundef nonnull align 8 dereferenceable(88) %91)
          to label %93 unwind label %109

93:                                               ; preds = %90
  %94 = fadd double %92, 0x401921FB54442D18
  call void @_ZN7fastjet7Coord2DC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %14, double noundef %89, double noundef %94)
  %95 = sext i32 %77 to i64
  %96 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %95) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %96, ptr noundef nonnull align 8 dereferenceable(16) %14, i64 16, i1 false), !tbaa.struct !39
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #8
  %97 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %86) #8
  %98 = trunc nuw i64 %indvars.iv to i32
  store i32 %98, ptr %97, align 4, !tbaa !40
  %99 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %95) #8
  store i32 %98, ptr %99, align 4, !tbaa !40
  %100 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %86) #8
  %101 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull align 8 dereferenceable(8) %10)
  %102 = load double, ptr %101, align 8, !tbaa !35
  store double %102, ptr %10, align 8, !tbaa !35
  %103 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %86) #8
  %104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef nonnull align 8 dereferenceable(8) %11)
  %105 = load double, ptr %104, align 8, !tbaa !35
  store double %105, ptr %11, align 8, !tbaa !35
  %106 = add nsw i32 %.04191, 2
  br label %111

107:                                              ; preds = %82, %75
  %108 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #8
  br label %260

109:                                              ; preds = %90, %85
  %110 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #8
  br label %260

111:                                              ; preds = %72, %93
  %.142 = phi i32 [ %.04191, %72 ], [ %106, %93 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.preheader, label %.lr.ph, !llvm.loop !41

._crit_edge:                                      ; preds = %.lr.ph94, %51, %.preheader
  %.041.lcssa101 = phi i32 [ %.142, %.preheader ], [ 0, %51 ], [ %.142, %.lr.ph94 ]
  %112 = sext i32 %.041.lcssa101 to i64
  invoke void @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %112)
          to label %115 unwind label %131

.lr.ph94:                                         ; preds = %.lr.ph94.preheader, %.lr.ph94
  %indvars.iv97 = phi i64 [ %55, %.lr.ph94.preheader ], [ %indvars.iv.next98, %.lr.ph94 ]
  %113 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %indvars.iv97) #8
  store i32 -3, ptr %113, align 4, !tbaa !36
  %indvars.iv.next98 = add nuw nsw i64 %indvars.iv97, 1
  %114 = icmp ult i64 %indvars.iv.next98, %48
  br i1 %114, label %.lr.ph94, label %._crit_edge, !llvm.loop !43

115:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #8
  %116 = load double, ptr %10, align 8, !tbaa !35
  %117 = fadd double %116, -1.000000e+00
  call void @_ZN7fastjet7Coord2DC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %15, double noundef %117, double noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #8
  %118 = load double, ptr %11, align 8, !tbaa !35
  %119 = fadd double %118, 1.000000e+00
  call void @_ZN7fastjet7Coord2DC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %16, double noundef %119, double noundef 0x402921FB54442D18)
  call void @llvm.lifetime.start.p0(i64 224, ptr nonnull %17) #8
  invoke void @_ZN7fastjet13ClosestPair2DC2ERKSt6vectorINS_7Coord2DESaIS2_EERKS2_S8_(ptr noundef nonnull align 8 dereferenceable(220) %17, ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull align 8 dereferenceable(16) %16)
          to label %120 unwind label %133

120:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #8
  call void @_ZNSaIN7fastjet7Coord2DEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  invoke void @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef 2, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %121 unwind label %135

121:                                              ; preds = %120
  call void @_ZNSt15__new_allocatorIN7fastjet7Coord2DEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef 4, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %122 unwind label %137

122:                                              ; preds = %121
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef 2, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %123 unwind label %139

123:                                              ; preds = %122
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #8
  %124 = getelementptr inbounds i8, ptr %0, i64 160
  br label %125

125:                                              ; preds = %249, %123
  %.043 = phi i32 [ %46, %123 ], [ %241, %249 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #8
  invoke void @_ZNK7fastjet13ClosestPair2D12closest_pairERjS1_Rd(ptr noundef nonnull align 8 dereferenceable(220) %17, ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %126 unwind label %141

126:                                              ; preds = %125
  %127 = load double, ptr %124, align 8, !tbaa !44
  %128 = load double, ptr %26, align 8, !tbaa !35
  %129 = fmul double %127, %128
  store double %129, ptr %26, align 8, !tbaa !35
  %130 = fcmp ogt double %129, 1.000000e+00
  br i1 %130, label %select.unfold, label %143

131:                                              ; preds = %._crit_edge
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %260

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

135:                                              ; preds = %120
  %136 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIN7fastjet7Coord2DEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #8
  br label %258

137:                                              ; preds = %121
  %138 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #8
  br label %257

139:                                              ; preds = %122
  %140 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #8
  br label %256

141:                                              ; preds = %125
  %142 = landingpad { ptr, i32 }
          cleanup
  br label %252

143:                                              ; preds = %126
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #8
  %144 = load i32, ptr %24, align 4, !tbaa !40
  %145 = zext i32 %144 to i64
  %146 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %145) #8
  %147 = load i32, ptr %146, align 4, !tbaa !40
  store i32 %147, ptr %27, align 4, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #8
  %148 = load i32, ptr %25, align 4, !tbaa !40
  %149 = zext i32 %148 to i64
  %150 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %149) #8
  %151 = load i32, ptr %150, align 4, !tbaa !40
  store i32 %151, ptr %28, align 4, !tbaa !40
  %152 = load i32, ptr %27, align 4, !tbaa !40
  %.not64 = icmp eq i32 %152, %151
  br i1 %.not64, label %153, label %154

153:                                              ; preds = %143
  call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7fastjet15ClusterSequence17_CP2DChan_clusterEv) #10
  unreachable

154:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #8
  invoke void @_ZN7fastjet15ClusterSequence25_do_ij_recombination_stepERKiS2_RKdRi(ptr noundef nonnull align 8 dereferenceable(276) %0, ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %155 unwind label %243

155:                                              ; preds = %154
  %156 = load i32, ptr %27, align 4, !tbaa !40
  %157 = sext i32 %156 to i64
  %158 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %157) #8
  %159 = load i32, ptr %158, align 4, !tbaa !36
  %160 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef 0) #8
  store i32 %159, ptr %160, align 4, !tbaa !40
  %161 = load i32, ptr %27, align 4, !tbaa !40
  %162 = sext i32 %161 to i64
  %163 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %162) #8
  %164 = getelementptr inbounds i8, ptr %163, i64 4
  %165 = load i32, ptr %164, align 4, !tbaa !38
  %166 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef 1) #8
  store i32 %165, ptr %166, align 4, !tbaa !40
  %167 = load i32, ptr %28, align 4, !tbaa !40
  %168 = sext i32 %167 to i64
  %169 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %168) #8
  %170 = load i32, ptr %169, align 4, !tbaa !36
  %171 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef 2) #8
  store i32 %170, ptr %171, align 4, !tbaa !40
  %172 = load i32, ptr %28, align 4, !tbaa !40
  %173 = sext i32 %172 to i64
  %174 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %173) #8
  %175 = getelementptr inbounds i8, ptr %174, i64 4
  %176 = load i32, ptr %175, align 4, !tbaa !38
  %177 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef 3) #8
  store i32 %176, ptr %177, align 4, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #8
  %178 = load i32, ptr %29, align 4, !tbaa !40
  %179 = sext i32 %178 to i64
  %180 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %179) #8
  %181 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %180)
          to label %182 unwind label %245

182:                                              ; preds = %155
  %183 = load i32, ptr %29, align 4, !tbaa !40
  %184 = sext i32 %183 to i64
  %185 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %184) #8
  %186 = invoke noundef double @_ZNK7fastjet9PseudoJet8phi_02piEv(ptr noundef nonnull align 8 dereferenceable(88) %185)
          to label %187 unwind label %245

187:                                              ; preds = %182
  call void @_ZN7fastjet7Coord2DC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %30, double noundef %181, double noundef %186)
  %188 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef 0) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %188, ptr noundef nonnull align 8 dereferenceable(16) %30, i64 16, i1 false), !tbaa.struct !39
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #8
  %189 = load i32, ptr %29, align 4, !tbaa !40
  %190 = sext i32 %189 to i64
  %191 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %190) #8
  %192 = invoke noundef double @_ZNK7fastjet9PseudoJet3rapEv(ptr noundef nonnull align 8 dereferenceable(88) %191)
          to label %193 unwind label %247

193:                                              ; preds = %187
  %194 = load i32, ptr %29, align 4, !tbaa !40
  %195 = sext i32 %194 to i64
  %196 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN7fastjet9PseudoJetESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %195) #8
  %197 = invoke noundef double @_ZNK7fastjet9PseudoJet8phi_02piEv(ptr noundef nonnull align 8 dereferenceable(88) %196)
          to label %198 unwind label %247

198:                                              ; preds = %193
  %199 = fadd double %197, 0x401921FB54442D18
  call void @_ZN7fastjet7Coord2DC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %31, double noundef %192, double noundef %199)
  %200 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef 1) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %200, ptr noundef nonnull align 8 dereferenceable(16) %31, i64 16, i1 false), !tbaa.struct !39
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #8
  %201 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef 0) #8
  %202 = load i32, ptr %201, align 4, !tbaa !40
  %203 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef 2) #8
  %204 = load i32, ptr %203, align 4, !tbaa !40
  %205 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef 0) #8
  %206 = invoke noundef i32 @_ZN7fastjet13ClosestPair2D7replaceEjjRKNS_7Coord2DE(ptr noundef nonnull align 8 dereferenceable(220) %17, i32 noundef %202, i32 noundef %204, ptr noundef nonnull align 8 dereferenceable(16) %205)
          to label %207 unwind label %243

207:                                              ; preds = %198
  %208 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef 0) #8
  store i32 %206, ptr %208, align 4, !tbaa !40
  %209 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef 1) #8
  %210 = load i32, ptr %209, align 4, !tbaa !40
  %211 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef 3) #8
  %212 = load i32, ptr %211, align 4, !tbaa !40
  %213 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef 1) #8
  %214 = invoke noundef i32 @_ZN7fastjet13ClosestPair2D7replaceEjjRKNS_7Coord2DE(ptr noundef nonnull align 8 dereferenceable(220) %17, i32 noundef %210, i32 noundef %212, ptr noundef nonnull align 8 dereferenceable(16) %213)
          to label %215 unwind label %243

215:                                              ; preds = %207
  %216 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef 1) #8
  store i32 %214, ptr %216, align 4, !tbaa !40
  %217 = load i32, ptr %27, align 4, !tbaa !40
  %218 = sext i32 %217 to i64
  %219 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %218) #8
  store i32 -3, ptr %219, align 4, !tbaa !36
  %220 = load i32, ptr %28, align 4, !tbaa !40
  %221 = sext i32 %220 to i64
  %222 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %221) #8
  store i32 -3, ptr %222, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #8
  %223 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef 0) #8
  %224 = load i32, ptr %223, align 4, !tbaa !40
  %225 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef 1) #8
  %226 = load i32, ptr %225, align 4, !tbaa !40
  call void @_ZN7fastjet7Private10MirrorInfoC2Eii(ptr noundef nonnull align 4 dereferenceable(8) %32, i32 noundef %224, i32 noundef %226)
  %227 = load i32, ptr %29, align 4, !tbaa !40
  %228 = sext i32 %227 to i64
  %229 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %228) #8
  %230 = load i64, ptr %32, align 8
  store i64 %230, ptr %229, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  %231 = load i32, ptr %29, align 4, !tbaa !40
  %232 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef 0) #8
  %233 = load i32, ptr %232, align 4, !tbaa !40
  %234 = zext i32 %233 to i64
  %235 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %234) #8
  store i32 %231, ptr %235, align 4, !tbaa !40
  %236 = load i32, ptr %29, align 4, !tbaa !40
  %237 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef 1) #8
  %238 = load i32, ptr %237, align 4, !tbaa !40
  %239 = zext i32 %238 to i64
  %240 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %239) #8
  store i32 %236, ptr %240, align 4, !tbaa !40
  %241 = add i32 %.043, -1
  %242 = icmp eq i32 %241, 1
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #8
  br i1 %242, label %select.unfold, label %249

243:                                              ; preds = %207, %198, %154
  %244 = landingpad { ptr, i32 }
          cleanup
  br label %251

245:                                              ; preds = %182, %155
  %246 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #8
  br label %251

247:                                              ; preds = %193, %187
  %248 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #8
  br label %251

249:                                              ; preds = %215
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #8
  br label %125

select.unfold:                                    ; preds = %215, %126
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #8
  invoke void @_ZN7fastjet15ClusterSequence28_do_Cambridge_inclusive_jetsEv(ptr noundef nonnull align 8 dereferenceable(276) %0)
          to label %250 unwind label %253

250:                                              ; preds = %select.unfold
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #8
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #8
  call void @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #8
  call void @_ZN7fastjet13ClosestPair2DD2Ev(ptr noundef nonnull align 8 dereferenceable(220) %17) #8
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  call void @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #8
  call void @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #8
  ret void

251:                                              ; preds = %247, %245, %243
  %.pn = phi { ptr, i32 } [ %244, %243 ], [ %248, %247 ], [ %246, %245 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #8
  br label %252

252:                                              ; preds = %251, %141
  %.pn.pn = phi { ptr, i32 } [ %.pn, %251 ], [ %142, %141 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #8
  br label %255

253:                                              ; preds = %select.unfold
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %255

255:                                              ; preds = %253, %252
  %.pn67 = phi { ptr, i32 } [ %254, %253 ], [ %.pn.pn, %252 ]
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  br label %256

256:                                              ; preds = %255, %139
  %.pn67.pn = phi { ptr, i32 } [ %.pn67, %255 ], [ %140, %139 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #8
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  br label %257

257:                                              ; preds = %256, %137
  %.pn67.pn.pn = phi { ptr, i32 } [ %.pn67.pn, %256 ], [ %138, %137 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #8
  call void @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #8
  br label %258

258:                                              ; preds = %257, %135
  %.pn67.pn.pn.pn = phi { ptr, i32 } [ %.pn67.pn.pn, %257 ], [ %136, %135 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #8
  call void @_ZN7fastjet13ClosestPair2DD2Ev(ptr noundef nonnull align 8 dereferenceable(220) %17) #8
  br label %259

259:                                              ; preds = %258, %133
  %.pn67.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn67.pn.pn.pn, %258 ], [ %134, %133 ]
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  br label %260

260:                                              ; preds = %107, %109, %259, %131
  %.pn73.pn = phi { ptr, i32 } [ %.pn67.pn.pn.pn.pn, %259 ], [ %132, %131 ], [ %110, %109 ], [ %108, %107 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  call void @_ZNSt6vectorIN7fastjet7Coord2DESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  br label %261

261:                                              ; preds = %260, %60
  %.pn73.pn.pn = phi { ptr, i32 } [ %.pn73.pn, %260 ], [ %61, %60 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #8
  br label %262

262:                                              ; preds = %261, %58
  %.pn73.pn.pn.pn = phi { ptr, i32 } [ %.pn73.pn.pn, %261 ], [ %59, %58 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #8
  call void @_ZNSt6vectorIN7fastjet7Private10MirrorInfoESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #8
  br label %263

263:                                              ; preds = %262, %56
  %.pn73.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn73.pn.pn.pn, %262 ], [ %57, %56 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #8
  br label %264

264:                                              ; preds = %40, %42, %263
  %.pn79.pn = phi { ptr, i32 } [ %.pn7984, %42 ], [ %41, %40 ], [ %.pn73.pn.pn.pn.pn, %263 ]
  resume { ptr, i32 } %.pn79.pn

265:                                              ; preds = %38
  unreachable
}

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

declare noundef i32 @_ZN7fastjet13ClosestPair2D7replaceEjjRKNS_7Coord2DE(ptr noundef nonnull align 8 dereferenceable(220), i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !8, i64 180}
!6 = !{!"_ZTSN7fastjet15ClusterSequenceE", !7, i64 8, !19, i64 88, !23, i64 112, !27, i64 136, !28, i64 140, !11, i64 144, !11, i64 152, !11, i64 160, !11, i64 168, !12, i64 176, !8, i64 180, !29, i64 184, !28, i64 192, !27, i64 196, !27, i64 197, !30, i64 200, !31, i64 208, !11, i64 232, !11, i64 240, !11, i64 248, !11, i64 256, !28, i64 264, !28, i64 268, !28, i64 272}
!7 = !{!"_ZTSN7fastjet13JetDefinitionE", !8, i64 0, !11, i64 8, !11, i64 16, !12, i64 24, !13, i64 32, !14, i64 40, !15, i64 48, !13, i64 64, !18, i64 72}
!8 = !{!"_ZTSN7fastjet12JetAlgorithmE", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"double", !9, i64 0}
!12 = !{!"_ZTSN7fastjet8StrategyE", !9, i64 0}
!13 = !{!"any pointer", !9, i64 0}
!14 = !{!"_ZTSN7fastjet9SharedPtrIKNS_13JetDefinition6PluginEEE", !13, i64 0}
!15 = !{!"_ZTSN7fastjet13JetDefinition17DefaultRecombinerE", !16, i64 0, !17, i64 8}
!16 = !{!"_ZTSN7fastjet13JetDefinition10RecombinerE"}
!17 = !{!"_ZTSN7fastjet19RecombinationSchemeE", !9, i64 0}
!18 = !{!"_ZTSN7fastjet9SharedPtrIKNS_13JetDefinition10RecombinerEEE", !13, i64 0}
!19 = !{!"_ZTSSt6vectorIN7fastjet9PseudoJetESaIS1_EE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIN7fastjet9PseudoJetESaIS1_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!23 = !{!"_ZTSSt6vectorIN7fastjet15ClusterSequence15history_elementESaIS2_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence15history_elementESaIS2_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!27 = !{!"bool", !9, i64 0}
!28 = !{!"int", !9, i64 0}
!29 = !{!"_ZTSN7fastjet9SharedPtrINS_22PseudoJetStructureBaseEEE", !13, i64 0}
!30 = !{!"_ZTSN7fastjet9SharedPtrINS_15ClusterSequence6ExtrasEEE", !13, i64 0}
!31 = !{!"_ZTSSt6vectorIN7fastjet15ClusterSequence4TileESaIS2_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN7fastjet15ClusterSequence4TileESaIS2_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!35 = !{!11, !11, i64 0}
!36 = !{!37, !28, i64 0}
!37 = !{!"_ZTSN7fastjet7Private10MirrorInfoE", !28, i64 0, !28, i64 4}
!38 = !{!37, !28, i64 4}
!39 = !{i64 0, i64 8, !35, i64 8, i64 8, !35}
!40 = !{!28, !28, i64 0}
!41 = distinct !{!41, !42}
!42 = !{!"llvm.loop.mustprogress"}
!43 = distinct !{!43, !42}
!44 = !{!6, !11, i64 160}


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