; LLVM IR from tommasocerruti/algolab-2024 :: src/week09/idefix/solution.ll (Z5solvev)

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

%"class.std::basic_istream" = type { ptr, i64, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::pair<CGAL::Point_2<CGAL::Epick>, int>, std::allocator<std::pair<CGAL::Point_2<CGAL::Epick>, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<CGAL::Point_2<CGAL::Epick>, int>, std::allocator<std::pair<CGAL::Point_2<CGAL::Epick>, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<CGAL::Point_2<CGAL::Epick>, int>, std::allocator<std::pair<CGAL::Point_2<CGAL::Epick>, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<CGAL::Point_2<CGAL::Epick>, int>, std::allocator<std::pair<CGAL::Point_2<CGAL::Epick>, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.CGAL::Point_2" = type { %"class.CGAL::PointC2" }
%"class.CGAL::PointC2" = type { %"class.CGAL::Vector_2" }
%"class.CGAL::Vector_2" = type { %"class.CGAL::VectorC2" }
%"class.CGAL::VectorC2" = type { %"struct.std::array" }
%"struct.std::array" = type { [2 x double] }
%"class.CGAL::Delaunay_triangulation_2" = type { %"class.CGAL::Triangulation_2" }
%"class.CGAL::Triangulation_2" = type { [8 x i8], %"class.CGAL::Triangulation_data_structure_2", %"class.CGAL::internal::CC_iterator" }
%"class.CGAL::Triangulation_data_structure_2" = type { i32, %"class.CGAL::Compact_container", %"class.CGAL::Compact_container.5" }
%"class.CGAL::Compact_container" = type { [8 x i8], i64, i64, i64, ptr, ptr, ptr, %"class.std::vector.0", %"struct.std::atomic" }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::atomic" = type { %"struct.std::__atomic_base" }
%"struct.std::__atomic_base" = type { i64 }
%"class.CGAL::Compact_container.5" = type { [8 x i8], i64, i64, i64, ptr, ptr, ptr, %"class.std::vector.6", %"struct.std::atomic" }
%"class.std::vector.6" = type { %"struct.std::_Vector_base.7" }
%"struct.std::_Vector_base.7" = type { %"struct.std::_Vector_base<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.CGAL::internal::CC_iterator" = type { ptr }
%"class.CGAL::Epick" = type { i8 }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<std::tuple<int, int, double>, std::allocator<std::tuple<int, int, double>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::tuple<int, int, double>, std::allocator<std::tuple<int, int, double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::tuple<int, int, double>, std::allocator<std::tuple<int, int, double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::tuple<int, int, double>, std::allocator<std::tuple<int, int, double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.16" = type { %"struct.std::_Vector_base.17" }
%"struct.std::_Vector_base.17" = 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.18" = type { i8 }
%"class.CGAL::internal::CC_iterator.21" = type { ptr }
%"struct.CGAL::Filter_iterator" = type { %"class.CGAL::Triangulation_ds_edge_iterator_2", %"class.CGAL::Triangulation_ds_edge_iterator_2", %"class.CGAL::Triangulation_2<CGAL::Epick, CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>::Infinite_tester" }
%"class.CGAL::Triangulation_ds_edge_iterator_2" = type { ptr, %"class.CGAL::internal::CC_iterator.21", %"struct.std::pair.26" }
%"struct.std::pair.26" = type <{ %"class.CGAL::internal::CC_iterator.21", i32, [4 x i8] }>
%"class.CGAL::Triangulation_2<CGAL::Epick, CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>::Infinite_tester" = type { ptr }
%"class.CGAL::Segment_2" = type { %"class.CGAL::SegmentC2" }
%"class.CGAL::SegmentC2" = type { %"struct.std::array.29" }
%"struct.std::array.29" = type { [2 x %"class.CGAL::Point_2"] }
%"class.__gnu_cxx::__normal_iterator.30" = type { ptr }
%class.anon = type { i8 }
%"class.boost::disjoint_sets_with_storage" = type <{ [8 x i8], %"class.std::vector.31", %"class.std::vector.36", [8 x i8] }>
%"class.std::vector.31" = type { %"struct.std::_Vector_base.32" }
%"struct.std::_Vector_base.32" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.36" = type { %"struct.std::_Vector_base.37" }
%"struct.std::_Vector_base.37" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.boost::typed_identity_property_map" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.41" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.42" = type { ptr }
%"class.std::vector.43" = type { %"struct.std::_Vector_base.44" }
%"struct.std::_Vector_base.44" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.45" = type { i8 }
%class.anon.48 = type { i8 }

@_ZSt3cin = external global %"class.std::basic_istream", align 8
@_ZSt4cout = external global %"class.std::basic_ostream", align 8

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
define dso_local void @_Z5solvev() #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i64, align 8
  %5 = alloca %"class.std::vector", align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca %"class.CGAL::Point_2", align 8
  %12 = alloca %"class.CGAL::Delaunay_triangulation_2", align 8
  %13 = alloca %"class.CGAL::Epick", align 1
  %14 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %16 = alloca %"class.std::vector.11", align 8
  %17 = alloca %"class.std::vector.16", align 8
  %18 = alloca i32, align 4
  %19 = alloca %"class.std::allocator.18", align 1
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca %"class.CGAL::internal::CC_iterator", align 8
  %24 = alloca %"class.CGAL::Point_2", align 8
  %25 = alloca %"class.CGAL::internal::CC_iterator.21", align 8
  %26 = alloca double, align 8
  %27 = alloca %"class.CGAL::Point_2", align 8
  %28 = alloca i32, align 4
  %29 = alloca %"class.std::vector.11", align 8
  %30 = alloca %"struct.CGAL::Filter_iterator", align 8
  %31 = alloca %"struct.CGAL::Filter_iterator", align 8
  %32 = alloca i32, align 4
  %33 = alloca %"class.CGAL::internal::CC_iterator", align 8
  %34 = alloca i32, align 4
  %35 = alloca %"class.CGAL::internal::CC_iterator", align 8
  %36 = alloca double, align 8
  %37 = alloca %"class.CGAL::Segment_2", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %40 = alloca %class.anon, align 1
  %41 = alloca %"class.boost::disjoint_sets_with_storage", align 8
  %42 = alloca %"struct.boost::typed_identity_property_map", align 1
  %43 = alloca %"struct.boost::typed_identity_property_map", align 1
  %44 = alloca i32, align 4
  %45 = alloca %"class.__gnu_cxx::__normal_iterator.41", align 8
  %46 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %47 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca double, align 8
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i64, align 8
  %56 = alloca %"class.__gnu_cxx::__normal_iterator.42", align 8
  %57 = alloca %"class.__gnu_cxx::__normal_iterator.42", align 8
  %58 = alloca %"class.__gnu_cxx::__normal_iterator.42", align 8
  %59 = alloca %"class.std::vector.43", align 8
  %60 = alloca i64, align 8
  %61 = alloca %"class.std::allocator.45", align 1
  %62 = alloca i32, align 4
  %63 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %64 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %65 = alloca %class.anon.48, align 1
  %66 = alloca %"class.boost::disjoint_sets_with_storage", align 8
  %67 = alloca %"struct.boost::typed_identity_property_map", align 1
  %68 = alloca %"struct.boost::typed_identity_property_map", align 1
  %69 = alloca double, align 8
  %70 = alloca %"class.__gnu_cxx::__normal_iterator.41", align 8
  %71 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %72 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %1) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #6
  %78 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) %1)
  %79 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %78, ptr noundef nonnull align 4 dereferenceable(4) %2)
  %80 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERl(ptr noundef nonnull align 8 dereferenceable(16) %79, ptr noundef nonnull align 8 dereferenceable(8) %4)
  %81 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %80, ptr noundef nonnull align 4 dereferenceable(4) %3)
  call void @llvm.lifetime.start.p0(i64 24, ptr %5) #6
  call void @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %82 = load i32, ptr %1, align 4, !tbaa !5
  %83 = sext i32 %82 to i64
  invoke void @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %83)
          to label %84 unwind label %90

84:                                               ; preds = %0
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #6
  store i32 0, ptr %8, align 4, !tbaa !5
  br label %85

85:                                               ; preds = %102, %84
  %86 = load i32, ptr %8, align 4, !tbaa !5
  %87 = load i32, ptr %1, align 4, !tbaa !5
  %88 = icmp slt i32 %86, %87
  br i1 %88, label %94, label %89

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

90:                                               ; preds = %0
  %91 = landingpad { ptr, i32 }
          cleanup
  %92 = extractvalue { ptr, i32 } %91, 0
  store ptr %92, ptr %6, align 8
  %93 = extractvalue { ptr, i32 } %91, 1
  store i32 %93, ptr %7, align 4
  br label %614

94:                                               ; preds = %85
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #6
  %95 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) %9)
          to label %96 unwind label %105

96:                                               ; preds = %94
  %97 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %95, ptr noundef nonnull align 4 dereferenceable(4) %10)
          to label %98 unwind label %105

98:                                               ; preds = %96
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #6
  invoke void @_ZN4CGAL7Point_2INS_5EpickEEC2IiiEERKT_RKT0_(ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %10)
          to label %99 unwind label %109

99:                                               ; preds = %98
  %100 = invoke noundef nonnull align 8 dereferenceable(20) ptr @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EE12emplace_backIJS4_RiEEERS5_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %101 unwind label %109

101:                                              ; preds = %99
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  br label %102

102:                                              ; preds = %101
  %103 = load i32, ptr %8, align 4, !tbaa !5
  %104 = add nsw i32 %103, 1
  store i32 %104, ptr %8, align 4, !tbaa !5
  br label %85, !llvm.loop !9

105:                                              ; preds = %96, %94
  %106 = landingpad { ptr, i32 }
          cleanup
  %107 = extractvalue { ptr, i32 } %106, 0
  store ptr %107, ptr %6, align 8
  %108 = extractvalue { ptr, i32 } %106, 1
  store i32 %108, ptr %7, align 4
  br label %113

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

113:                                              ; preds = %109, %105
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #6
  br label %614

114:                                              ; preds = %89
  call void @llvm.lifetime.start.p0(i64 200, ptr %12) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #6
  invoke void @_ZN4CGAL24Delaunay_triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(200) %12, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %115 unwind label %137

115:                                              ; preds = %114
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #6
  %116 = call ptr @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %117 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %14, i32 0, i32 0
  store ptr %116, ptr %117, align 8
  %118 = call ptr @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %119 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %15, i32 0, i32 0
  store ptr %118, ptr %119, align 8
  %120 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %14, i32 0, i32 0
  %121 = load ptr, ptr %120, align 8
  %122 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %15, i32 0, i32 0
  %123 = load ptr, ptr %122, align 8
  %124 = invoke noundef i64 @_ZN4CGAL24Delaunay_triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE6insertIN9__gnu_cxx17__normal_iteratorIPSt4pairINS_7Point_2IS1_EEiESt6vectorISL_SaISL_EEEEEElT_SR_PN5boost9enable_ifINSS_14is_convertibleINSt15iterator_traitsISR_E10value_typeESL_EEvE4typeE(ptr noundef nonnull align 8 dereferenceable(200) %12, ptr %121, ptr %123, ptr noundef null)
          to label %125 unwind label %141

125:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #6
  call void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #6
  %126 = load i32, ptr %2, align 4, !tbaa !5
  %127 = sext i32 %126 to i64
  invoke void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %127)
          to label %128 unwind label %145

128:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #6
  %129 = load i32, ptr %1, align 4, !tbaa !5
  %130 = sext i32 %129 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  store i32 0, ptr %18, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #6
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %130, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %131 unwind label %149

131:                                              ; preds = %128
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #6
  store i32 0, ptr %20, align 4, !tbaa !5
  br label %132

132:                                              ; preds = %213, %131
  %133 = load i32, ptr %20, align 4, !tbaa !5
  %134 = load i32, ptr %2, align 4, !tbaa !5
  %135 = icmp slt i32 %133, %134
  br i1 %135, label %153, label %136

136:                                              ; preds = %132
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  br label %223

137:                                              ; preds = %114
  %138 = landingpad { ptr, i32 }
          cleanup
  %139 = extractvalue { ptr, i32 } %138, 0
  store ptr %139, ptr %6, align 8
  %140 = extractvalue { ptr, i32 } %138, 1
  store i32 %140, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #6
  br label %613

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

145:                                              ; preds = %125
  %146 = landingpad { ptr, i32 }
          cleanup
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %6, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %7, align 4
  br label %611

149:                                              ; preds = %128
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %6, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  br label %610

153:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #6
  %154 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %155 unwind label %187

155:                                              ; preds = %153
  %156 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %154, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %157 unwind label %187

157:                                              ; preds = %155
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #6
  invoke void @_ZN4CGAL7Point_2INS_5EpickEEC2IiiEERKT_RKT0_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %158 unwind label %191

158:                                              ; preds = %157
  invoke void @_ZN4CGAL8internal11CC_iteratorINS_17Compact_containerINS_25Triangulation_face_base_2INS_5EpickENS_28Triangulation_ds_face_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS4_NS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS3_IS4_NS5_IvEEEEEEEEEENS_7DefaultESI_SI_EELb0EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %159 unwind label %191

159:                                              ; preds = %158
  %160 = getelementptr inbounds %"class.CGAL::internal::CC_iterator.21", ptr %25, i32 0, i32 0
  %161 = load ptr, ptr %160, align 8
  %162 = invoke ptr @_ZNK4CGAL24Delaunay_triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE14nearest_vertexERKNS_7Point_2IS1_EENS_8internal11CC_iteratorINS_17Compact_containerINS9_IS1_NSA_ISD_EEEENS_7DefaultESO_SO_EELb0EEE(ptr noundef nonnull align 8 dereferenceable(200) %12, ptr noundef nonnull align 8 dereferenceable(16) %24, ptr %161)
          to label %163 unwind label %191

163:                                              ; preds = %159
  %164 = getelementptr inbounds %"class.CGAL::internal::CC_iterator", ptr %23, i32 0, i32 0
  store ptr %162, ptr %164, align 8
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #6
  %165 = invoke noundef ptr @_ZNK4CGAL8internal11CC_iteratorINS_17Compact_containerINS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS3_IiS4_NS5_IS4_NS6_IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEEENS_7DefaultESJ_SJ_EELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %166 unwind label %195

166:                                              ; preds = %163
  %167 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN4CGAL27Triangulation_vertex_base_2INS_5EpickENS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS0_IS1_NS2_IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEEEE5pointEv(ptr noundef nonnull align 8 dereferenceable(24) %165)
          to label %168 unwind label %195

168:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #6
  invoke void @_ZN4CGAL7Point_2INS_5EpickEEC2IiiEERKT_RKT0_(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %169 unwind label %199

169:                                              ; preds = %168
  %170 = invoke noundef double @_ZN4CGAL16squared_distanceINS_5EpickEEENT_2FTERKNS_7Point_2IS2_EES7_(ptr noundef nonnull align 8 dereferenceable(16) %167, ptr noundef nonnull align 8 dereferenceable(16) %27)
          to label %171 unwind label %199

171:                                              ; preds = %169
  %172 = fmul double 4.000000e+00, %170
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #6
  store double %172, ptr %26, align 8, !tbaa !11
  %173 = load double, ptr %26, align 8, !tbaa !11
  %174 = load i64, ptr %4, align 8, !tbaa !13
  %175 = sitofp i64 %174 to double
  %176 = fcmp ole double %173, %175
  br i1 %176, label %177, label %203

177:                                              ; preds = %171
  %178 = invoke noundef ptr @_ZNK4CGAL8internal11CC_iteratorINS_17Compact_containerINS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS3_IiS4_NS5_IS4_NS6_IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEEENS_7DefaultESJ_SJ_EELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %179 unwind label %195

179:                                              ; preds = %177
  %180 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN4CGAL37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS0_IiS1_NS2_IS1_NS3_IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEE4infoEv(ptr noundef nonnull align 8 dereferenceable(28) %178)
          to label %181 unwind label %195

181:                                              ; preds = %179
  %182 = load i32, ptr %180, align 4, !tbaa !5
  %183 = sext i32 %182 to i64
  %184 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %183) #6
  %185 = load i32, ptr %184, align 4, !tbaa !5
  %186 = add nsw i32 %185, 1
  store i32 %186, ptr %184, align 4, !tbaa !5
  br label %203

187:                                              ; preds = %155, %153
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %6, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %7, align 4
  br label %222

191:                                              ; preds = %159, %158, %157
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %6, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #6
  br label %221

195:                                              ; preds = %205, %203, %179, %177, %166, %163
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %6, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %7, align 4
  br label %220

199:                                              ; preds = %169, %168
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %6, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #6
  br label %220

203:                                              ; preds = %181, %171
  %204 = invoke noundef ptr @_ZNK4CGAL8internal11CC_iteratorINS_17Compact_containerINS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS3_IiS4_NS5_IS4_NS6_IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEEENS_7DefaultESJ_SJ_EELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %205 unwind label %195

205:                                              ; preds = %203
  %206 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN4CGAL37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS0_IiS1_NS2_IS1_NS3_IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEE4infoEv(ptr noundef nonnull align 8 dereferenceable(28) %204)
          to label %207 unwind label %195

207:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  %208 = load i32, ptr %1, align 4, !tbaa !5
  %209 = load i32, ptr %20, align 4, !tbaa !5
  %210 = add nsw i32 %208, %209
  store i32 %210, ptr %28, align 4, !tbaa !5
  %211 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE12emplace_backIJRiiRdEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 4 dereferenceable(4) %206, ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %212 unwind label %216

212:                                              ; preds = %207
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  br label %213

213:                                              ; preds = %212
  %214 = load i32, ptr %20, align 4, !tbaa !5
  %215 = add nsw i32 %214, 1
  store i32 %215, ptr %20, align 4, !tbaa !5
  br label %132, !llvm.loop !15

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

220:                                              ; preds = %216, %199, %195
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  br label %221

221:                                              ; preds = %220, %191
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  br label %222

222:                                              ; preds = %221, %187
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  br label %609

223:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #6
  call void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %224 = load i32, ptr %1, align 4, !tbaa !5
  %225 = mul nsw i32 3, %224
  %226 = load i32, ptr %2, align 4, !tbaa !5
  %227 = add nsw i32 %225, %226
  %228 = sext i32 %227 to i64
  invoke void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %228)
          to label %229 unwind label %236

229:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 72, ptr %30) #6
  invoke void @_ZNK4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE18finite_edges_beginEv(ptr dead_on_unwind writable sret(%"struct.CGAL::Filter_iterator") align 8 %30, ptr noundef nonnull align 8 dereferenceable(200) %12)
          to label %230 unwind label %240

230:                                              ; preds = %229
  br label %231

231:                                              ; preds = %307, %230
  call void @llvm.lifetime.start.p0(i64 72, ptr %31) #6
  invoke void @_ZNK4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE16finite_edges_endEv(ptr dead_on_unwind writable sret(%"struct.CGAL::Filter_iterator") align 8 %31, ptr noundef nonnull align 8 dereferenceable(200) %12)
          to label %232 unwind label %244

232:                                              ; preds = %231
  %233 = invoke noundef zeroext i1 @_ZN4CGALneINS_32Triangulation_ds_edge_iterator_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEENS_15Triangulation_2IS4_SE_E15Infinite_testerEEEbRKNS_15Filter_iteratorIT_T0_EESO_(ptr noundef nonnull align 8 dereferenceable(72) %30, ptr noundef nonnull align 8 dereferenceable(72) %31)
          to label %234 unwind label %244

234:                                              ; preds = %232
  call void @llvm.lifetime.end.p0(i64 72, ptr %31) #6
  br i1 %233, label %248, label %235

235:                                              ; preds = %234
  call void @llvm.lifetime.end.p0(i64 72, ptr %30) #6
  br label %315

236:                                              ; preds = %315, %223
  %237 = landingpad { ptr, i32 }
          cleanup
  %238 = extractvalue { ptr, i32 } %237, 0
  store ptr %238, ptr %6, align 8
  %239 = extractvalue { ptr, i32 } %237, 1
  store i32 %239, ptr %7, align 4
  br label %608

240:                                              ; preds = %305, %229
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %6, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %7, align 4
  br label %314

244:                                              ; preds = %232, %231
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %6, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 72, ptr %31) #6
  br label %314

248:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #6
  %249 = invoke noundef ptr @_ZNK4CGAL15Filter_iteratorINS_32Triangulation_ds_edge_iterator_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEENS_15Triangulation_2IS4_SE_E15Infinite_testerEEptEv(ptr noundef nonnull align 8 dereferenceable(72) %30)
          to label %250 unwind label %291

250:                                              ; preds = %248
  %251 = getelementptr inbounds %"struct.std::pair.26", ptr %249, i32 0, i32 0
  %252 = invoke noundef ptr @_ZNK4CGAL8internal11CC_iteratorINS_17Compact_containerINS_25Triangulation_face_base_2INS_5EpickENS_28Triangulation_ds_face_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS4_NS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS3_IS4_NS5_IvEEEEEEEEEENS_7DefaultESI_SI_EELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %251)
          to label %253 unwind label %291

253:                                              ; preds = %250
  %254 = invoke noundef ptr @_ZNK4CGAL15Filter_iteratorINS_32Triangulation_ds_edge_iterator_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEENS_15Triangulation_2IS4_SE_E15Infinite_testerEEptEv(ptr noundef nonnull align 8 dereferenceable(72) %30)
          to label %255 unwind label %291

255:                                              ; preds = %253
  %256 = getelementptr inbounds %"struct.std::pair.26", ptr %254, i32 0, i32 1
  %257 = load i32, ptr %256, align 8, !tbaa !16
  %258 = add nsw i32 %257, 1
  %259 = srem i32 %258, 3
  %260 = invoke ptr @_ZNK4CGAL28Triangulation_ds_face_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS3_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS3_NS0_IvEEEEEEE6vertexEi(ptr noundef nonnull align 8 dereferenceable(49) %252, i32 noundef %259)
          to label %261 unwind label %291

261:                                              ; preds = %255
  %262 = getelementptr inbounds %"class.CGAL::internal::CC_iterator", ptr %33, i32 0, i32 0
  store ptr %260, ptr %262, align 8
  %263 = invoke noundef ptr @_ZNK4CGAL8internal11CC_iteratorINS_17Compact_containerINS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS3_IiS4_NS5_IS4_NS6_IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEEENS_7DefaultESJ_SJ_EELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %264 unwind label %291

264:                                              ; preds = %261
  %265 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN4CGAL37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS0_IiS1_NS2_IS1_NS3_IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEE4infoEv(ptr noundef nonnull align 8 dereferenceable(28) %263)
          to label %266 unwind label %291

266:                                              ; preds = %264
  %267 = load i32, ptr %265, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  store i32 %267, ptr %32, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #6
  %268 = invoke noundef ptr @_ZNK4CGAL15Filter_iteratorINS_32Triangulation_ds_edge_iterator_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEENS_15Triangulation_2IS4_SE_E15Infinite_testerEEptEv(ptr noundef nonnull align 8 dereferenceable(72) %30)
          to label %269 unwind label %295

269:                                              ; preds = %266
  %270 = getelementptr inbounds %"struct.std::pair.26", ptr %268, i32 0, i32 0
  %271 = invoke noundef ptr @_ZNK4CGAL8internal11CC_iteratorINS_17Compact_containerINS_25Triangulation_face_base_2INS_5EpickENS_28Triangulation_ds_face_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS4_NS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS3_IS4_NS5_IvEEEEEEEEEENS_7DefaultESI_SI_EELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %270)
          to label %272 unwind label %295

272:                                              ; preds = %269
  %273 = invoke noundef ptr @_ZNK4CGAL15Filter_iteratorINS_32Triangulation_ds_edge_iterator_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEENS_15Triangulation_2IS4_SE_E15Infinite_testerEEptEv(ptr noundef nonnull align 8 dereferenceable(72) %30)
          to label %274 unwind label %295

274:                                              ; preds = %272
  %275 = getelementptr inbounds %"struct.std::pair.26", ptr %273, i32 0, i32 1
  %276 = load i32, ptr %275, align 8, !tbaa !16
  %277 = add nsw i32 %276, 2
  %278 = srem i32 %277, 3
  %279 = invoke ptr @_ZNK4CGAL28Triangulation_ds_face_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS3_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS3_NS0_IvEEEEEEE6vertexEi(ptr noundef nonnull align 8 dereferenceable(49) %271, i32 noundef %278)
          to label %280 unwind label %295

280:                                              ; preds = %274
  %281 = getelementptr inbounds %"class.CGAL::internal::CC_iterator", ptr %35, i32 0, i32 0
  store ptr %279, ptr %281, align 8
  %282 = invoke noundef ptr @_ZNK4CGAL8internal11CC_iteratorINS_17Compact_containerINS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS3_IiS4_NS5_IS4_NS6_IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEEENS_7DefaultESJ_SJ_EELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %283 unwind label %295

283:                                              ; preds = %280
  %284 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN4CGAL37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS0_IiS1_NS2_IS1_NS3_IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEE4infoEv(ptr noundef nonnull align 8 dereferenceable(28) %282)
          to label %285 unwind label %295

285:                                              ; preds = %283
  %286 = load i32, ptr %284, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  store i32 %286, ptr %34, align 4, !tbaa !5
  %287 = load i32, ptr %32, align 4, !tbaa !5
  %288 = load i32, ptr %34, align 4, !tbaa !5
  %289 = icmp sgt i32 %287, %288
  br i1 %289, label %290, label %299

290:                                              ; preds = %285
  call void @_ZSt4swapIiENSt9enable_ifIXsr6__and_ISt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS3_ESt18is_move_assignableIS3_EEE5valueEvE4typeERS3_SC_(ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull align 4 dereferenceable(4) %34) #6
  br label %299

291:                                              ; preds = %264, %261, %255, %253, %250, %248
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %6, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  br label %313

295:                                              ; preds = %283, %280, %274, %272, %269, %266
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %6, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  br label %312

299:                                              ; preds = %290, %285
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #6
  invoke void @_ZNK4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE7segmentERKNS_15Filter_iteratorINS_32Triangulation_ds_edge_iterator_2ISD_EENSE_15Infinite_testerEEE(ptr dead_on_unwind writable sret(%"class.CGAL::Segment_2") align 8 %37, ptr noundef nonnull align 8 dereferenceable(200) %12, ptr noundef nonnull align 8 dereferenceable(72) %30)
          to label %300 unwind label %308

300:                                              ; preds = %299
  %301 = invoke noundef double @_ZNK4CGAL9Segment_2INS_5EpickEE14squared_lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %302 unwind label %308

302:                                              ; preds = %300
  store double %301, ptr %36, align 8, !tbaa !11
  %303 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE12emplace_backIJRiS5_dEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %304 unwind label %308

304:                                              ; preds = %302
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  br label %305

305:                                              ; preds = %304
  %306 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN4CGAL15Filter_iteratorINS_32Triangulation_ds_edge_iterator_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEENS_15Triangulation_2IS4_SE_E15Infinite_testerEEppEv(ptr noundef nonnull align 8 dereferenceable(72) %30)
          to label %307 unwind label %240

307:                                              ; preds = %305
  br label %231, !llvm.loop !20

308:                                              ; preds = %302, %300, %299
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %6, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #6
  br label %312

312:                                              ; preds = %308, %295
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  br label %313

313:                                              ; preds = %312, %291
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  br label %314

314:                                              ; preds = %313, %244, %240
  call void @llvm.lifetime.end.p0(i64 72, ptr %30) #6
  br label %608

315:                                              ; preds = %235
  %316 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %317 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %38, i32 0, i32 0
  store ptr %316, ptr %317, align 8
  %318 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %319 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %39, i32 0, i32 0
  store ptr %318, ptr %319, align 8
  %320 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %38, i32 0, i32 0
  %321 = load ptr, ptr %320, align 8
  %322 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %39, i32 0, i32 0
  %323 = load ptr, ptr %322, align 8
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt5tupleIJiidEESt6vectorIS3_SaIS3_EEEEZ5solvevE3$_0EvT_SA_T0_"(ptr %321, ptr %323)
          to label %324 unwind label %236

324:                                              ; preds = %315
  call void @llvm.lifetime.start.p0(i64 64, ptr %41) #6
  %325 = load i32, ptr %1, align 4, !tbaa !5
  %326 = sext i32 %325 to i64
  invoke void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEEC2EmS2_S2_(ptr noundef nonnull align 8 dereferenceable(57) %41, i64 noundef %326)
          to label %327 unwind label %336

327:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #6
  %328 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %328, ptr %44, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #6
  %329 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %330 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %46, i32 0, i32 0
  store ptr %329, ptr %330, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %46) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  br label %331

331:                                              ; preds = %418, %327
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #6
  %332 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %333 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %47, i32 0, i32 0
  store ptr %332, ptr %333, align 8
  %334 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt5tupleIJiidEEPS2_St6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T1_EERKNS9_IT0_SB_EE(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %47) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #6
  br i1 %334, label %340, label %335

335:                                              ; preds = %331
  store i32 11, ptr %48, align 4
  br label %422

336:                                              ; preds = %324
  %337 = landingpad { ptr, i32 }
          cleanup
  %338 = extractvalue { ptr, i32 } %337, 0
  store ptr %338, ptr %6, align 8
  %339 = extractvalue { ptr, i32 } %337, 1
  store i32 %339, ptr %7, align 4
  br label %607

340:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #6
  %341 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #6
  %342 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EJiidEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %341) #6
  %343 = load i32, ptr %342, align 4, !tbaa !5
  %344 = invoke noundef i32 @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE8find_setIiEET_S6_(ptr noundef nonnull align 8 dereferenceable(57) %41, i32 noundef %343)
          to label %345 unwind label %387

345:                                              ; preds = %340
  store i32 %344, ptr %49, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #6
  %346 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #6
  %347 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm1EJiidEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %346) #6
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = invoke noundef i32 @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE8find_setIiEET_S6_(ptr noundef nonnull align 8 dereferenceable(57) %41, i32 noundef %348)
          to label %350 unwind label %391

350:                                              ; preds = %345
  store i32 %349, ptr %50, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #6
  %351 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #6
  %352 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm2EJiidEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %351) #6
  %353 = load double, ptr %352, align 8, !tbaa !11
  store double %353, ptr %51, align 8, !tbaa !11
  %354 = load double, ptr %51, align 8, !tbaa !11
  %355 = load i64, ptr %4, align 8, !tbaa !13
  %356 = sitofp i64 %355 to double
  %357 = fcmp ole double %354, %356
  br i1 %357, label %358, label %408

358:                                              ; preds = %350
  %359 = load i32, ptr %49, align 4, !tbaa !5
  %360 = load i32, ptr %50, align 4, !tbaa !5
  %361 = icmp ne i32 %359, %360
  br i1 %361, label %362, label %408

362:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #6
  %363 = load i32, ptr %49, align 4, !tbaa !5
  %364 = sext i32 %363 to i64
  %365 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %364) #6
  %366 = load i32, ptr %365, align 4, !tbaa !5
  store i32 %366, ptr %52, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #6
  %367 = load i32, ptr %50, align 4, !tbaa !5
  %368 = sext i32 %367 to i64
  %369 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %368) #6
  %370 = load i32, ptr %369, align 4, !tbaa !5
  store i32 %370, ptr %53, align 4, !tbaa !5
  %371 = load i32, ptr %49, align 4, !tbaa !5
  %372 = load i32, ptr %50, align 4, !tbaa !5
  invoke void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE4linkIiEEvT_S6_(ptr noundef nonnull align 8 dereferenceable(57) %41, i32 noundef %371, i32 noundef %372)
          to label %373 unwind label %395

373:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #6
  %374 = load i32, ptr %49, align 4, !tbaa !5
  %375 = invoke noundef i32 @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE8find_setIiEET_S6_(ptr noundef nonnull align 8 dereferenceable(57) %41, i32 noundef %374)
          to label %376 unwind label %399

376:                                              ; preds = %373
  store i32 %375, ptr %54, align 4, !tbaa !5
  %377 = load i32, ptr %52, align 4, !tbaa !5
  %378 = load i32, ptr %53, align 4, !tbaa !5
  %379 = add nsw i32 %377, %378
  %380 = load i32, ptr %54, align 4, !tbaa !5
  %381 = sext i32 %380 to i64
  %382 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %381) #6
  store i32 %379, ptr %382, align 4, !tbaa !5
  %383 = load i32, ptr %44, align 4, !tbaa !5
  %384 = add nsw i32 %383, -1
  store i32 %384, ptr %44, align 4, !tbaa !5
  %385 = icmp eq i32 %384, 1
  br i1 %385, label %386, label %403

386:                                              ; preds = %376
  store i32 11, ptr %48, align 4
  br label %404

387:                                              ; preds = %340
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %6, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %7, align 4
  br label %421

391:                                              ; preds = %345
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %6, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %7, align 4
  br label %420

395:                                              ; preds = %362
  %396 = landingpad { ptr, i32 }
          cleanup
  %397 = extractvalue { ptr, i32 } %396, 0
  store ptr %397, ptr %6, align 8
  %398 = extractvalue { ptr, i32 } %396, 1
  store i32 %398, ptr %7, align 4
  br label %407

399:                                              ; preds = %373
  %400 = landingpad { ptr, i32 }
          cleanup
  %401 = extractvalue { ptr, i32 } %400, 0
  store ptr %401, ptr %6, align 8
  %402 = extractvalue { ptr, i32 } %400, 1
  store i32 %402, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  br label %407

403:                                              ; preds = %376
  store i32 0, ptr %48, align 4
  br label %404

404:                                              ; preds = %403, %386
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  %405 = load i32, ptr %48, align 4
  switch i32 %405, label %415 [
    i32 0, label %406
  ]

406:                                              ; preds = %404
  br label %408

407:                                              ; preds = %399, %395
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #6
  br label %420

408:                                              ; preds = %406, %358, %350
  %409 = load double, ptr %51, align 8, !tbaa !11
  %410 = load i64, ptr %4, align 8, !tbaa !13
  %411 = sitofp i64 %410 to double
  %412 = fcmp ogt double %409, %411
  br i1 %412, label %413, label %414

413:                                              ; preds = %408
  store i32 11, ptr %48, align 4
  br label %415

414:                                              ; preds = %408
  store i32 0, ptr %48, align 4
  br label %415

415:                                              ; preds = %414, %413, %404
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  %416 = load i32, ptr %48, align 4
  switch i32 %416, label %422 [
    i32 0, label %417
  ]

417:                                              ; preds = %415
  br label %418

418:                                              ; preds = %417
  %419 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #6
  br label %331, !llvm.loop !21

420:                                              ; preds = %407, %391
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #6
  br label %421

421:                                              ; preds = %420, %387
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #6
  br label %606

422:                                              ; preds = %415, %335
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #6
  br label %423

423:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #6
  %424 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  %425 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.42", ptr %57, i32 0, i32 0
  store ptr %424, ptr %425, align 8
  %426 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  %427 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.42", ptr %58, i32 0, i32 0
  store ptr %426, ptr %427, align 8
  %428 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.42", ptr %57, i32 0, i32 0
  %429 = load ptr, ptr %428, align 8
  %430 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.42", ptr %58, i32 0, i32 0
  %431 = load ptr, ptr %430, align 8
  %432 = invoke ptr @_ZSt11max_elementIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEET_S7_S7_(ptr %429, ptr %431)
          to label %433 unwind label %448

433:                                              ; preds = %423
  %434 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.42", ptr %56, i32 0, i32 0
  store ptr %432, ptr %434, align 8
  %435 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %56) #6
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = sext i32 %436 to i64
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #6
  store i64 %437, ptr %55, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 24, ptr %59) #6
  %438 = load i32, ptr %1, align 4, !tbaa !5
  %439 = load i32, ptr %2, align 4, !tbaa !5
  %440 = add nsw i32 %438, %439
  %441 = sext i32 %440 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #6
  store i64 0, ptr %60, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #6
  call void @_ZNSaIlEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #6
  invoke void @_ZNSt6vectorIlSaIlEEC2EmRKlRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %441, ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %442 unwind label %452

442:                                              ; preds = %433
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #6
  store i32 0, ptr %62, align 4, !tbaa !5
  br label %443

443:                                              ; preds = %466, %442
  %444 = load i32, ptr %62, align 4, !tbaa !5
  %445 = load i32, ptr %2, align 4, !tbaa !5
  %446 = icmp slt i32 %444, %445
  br i1 %446, label %456, label %447

447:                                              ; preds = %443
  store i32 14, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #6
  br label %473

448:                                              ; preds = %423
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %6, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #6
  br label %605

452:                                              ; preds = %433
  %453 = landingpad { ptr, i32 }
          cleanup
  %454 = extractvalue { ptr, i32 } %453, 0
  store ptr %454, ptr %6, align 8
  %455 = extractvalue { ptr, i32 } %453, 1
  store i32 %455, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #6
  br label %604

456:                                              ; preds = %443
  %457 = load i32, ptr %62, align 4, !tbaa !5
  %458 = sext i32 %457 to i64
  %459 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %458) #6
  invoke void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(16) %459)
          to label %460 unwind label %469

460:                                              ; preds = %456
  %461 = load i32, ptr %1, align 4, !tbaa !5
  %462 = load i32, ptr %62, align 4, !tbaa !5
  %463 = add nsw i32 %461, %462
  %464 = sext i32 %463 to i64
  %465 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %464) #6
  store i64 1, ptr %465, align 8, !tbaa !13
  br label %466

466:                                              ; preds = %460
  %467 = load i32, ptr %62, align 4, !tbaa !5
  %468 = add nsw i32 %467, 1
  store i32 %468, ptr %62, align 4, !tbaa !5
  br label %443, !llvm.loop !22

469:                                              ; preds = %456
  %470 = landingpad { ptr, i32 }
          cleanup
  %471 = extractvalue { ptr, i32 } %470, 0
  store ptr %471, ptr %6, align 8
  %472 = extractvalue { ptr, i32 } %470, 1
  store i32 %472, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #6
  br label %603

473:                                              ; preds = %447
  %474 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %475 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %63, i32 0, i32 0
  store ptr %474, ptr %475, align 8
  %476 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %477 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %64, i32 0, i32 0
  store ptr %476, ptr %477, align 8
  %478 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %63, i32 0, i32 0
  %479 = load ptr, ptr %478, align 8
  %480 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %64, i32 0, i32 0
  %481 = load ptr, ptr %480, align 8
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt5tupleIJiidEESt6vectorIS3_SaIS3_EEEEZ5solvevE3$_1EvT_SA_T0_"(ptr %479, ptr %481)
          to label %482 unwind label %501

482:                                              ; preds = %473
  call void @llvm.lifetime.start.p0(i64 64, ptr %66) #6
  %483 = load i32, ptr %1, align 4, !tbaa !5
  %484 = load i32, ptr %2, align 4, !tbaa !5
  %485 = add nsw i32 %483, %484
  %486 = sext i32 %485 to i64
  invoke void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEEC2EmS2_S2_(ptr noundef nonnull align 8 dereferenceable(57) %66, i64 noundef %486)
          to label %487 unwind label %505

487:                                              ; preds = %482
  %488 = load i32, ptr %1, align 4, !tbaa !5
  %489 = load i32, ptr %2, align 4, !tbaa !5
  %490 = add nsw i32 %488, %489
  store i32 %490, ptr %44, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #6
  %491 = load i64, ptr %4, align 8, !tbaa !13
  %492 = mul nsw i64 4, %491
  %493 = sitofp i64 %492 to double
  store double %493, ptr %69, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #6
  %494 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %495 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %71, i32 0, i32 0
  store ptr %494, ptr %495, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull align 8 dereferenceable(8) %71) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #6
  br label %496

496:                                              ; preds = %581, %487
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #6
  %497 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %498 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %72, i32 0, i32 0
  store ptr %497, ptr %498, align 8
  %499 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt5tupleIJiidEEPS2_St6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T1_EERKNS9_IT0_SB_EE(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull align 8 dereferenceable(8) %72) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #6
  br i1 %499, label %509, label %500

500:                                              ; preds = %496
  store i32 17, ptr %48, align 4
  br label %585

501:                                              ; preds = %473
  %502 = landingpad { ptr, i32 }
          cleanup
  %503 = extractvalue { ptr, i32 } %502, 0
  store ptr %503, ptr %6, align 8
  %504 = extractvalue { ptr, i32 } %502, 1
  store i32 %504, ptr %7, align 4
  br label %603

505:                                              ; preds = %482
  %506 = landingpad { ptr, i32 }
          cleanup
  %507 = extractvalue { ptr, i32 } %506, 0
  store ptr %507, ptr %6, align 8
  %508 = extractvalue { ptr, i32 } %506, 1
  store i32 %508, ptr %7, align 4
  br label %602

509:                                              ; preds = %496
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #6
  %510 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %70) #6
  %511 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EJiidEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %510) #6
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = invoke noundef i32 @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE8find_setIiEET_S6_(ptr noundef nonnull align 8 dereferenceable(57) %66, i32 noundef %512)
          to label %514 unwind label %556

514:                                              ; preds = %509
  store i32 %513, ptr %73, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #6
  %515 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %70) #6
  %516 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm1EJiidEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %515) #6
  %517 = load i32, ptr %516, align 4, !tbaa !5
  %518 = invoke noundef i32 @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE8find_setIiEET_S6_(ptr noundef nonnull align 8 dereferenceable(57) %66, i32 noundef %517)
          to label %519 unwind label %560

519:                                              ; preds = %514
  store i32 %518, ptr %74, align 4, !tbaa !5
  %520 = load i32, ptr %73, align 4, !tbaa !5
  %521 = load i32, ptr %74, align 4, !tbaa !5
  %522 = icmp ne i32 %520, %521
  br i1 %522, label %523, label %577

523:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #6
  %524 = load i32, ptr %73, align 4, !tbaa !5
  %525 = sext i32 %524 to i64
  %526 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %525) #6
  %527 = load i64, ptr %526, align 8, !tbaa !13
  %528 = trunc i64 %527 to i32
  store i32 %528, ptr %75, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #6
  %529 = load i32, ptr %74, align 4, !tbaa !5
  %530 = sext i32 %529 to i64
  %531 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %530) #6
  %532 = load i64, ptr %531, align 8, !tbaa !13
  %533 = trunc i64 %532 to i32
  store i32 %533, ptr %76, align 4, !tbaa !5
  %534 = load i32, ptr %73, align 4, !tbaa !5
  %535 = load i32, ptr %74, align 4, !tbaa !5
  invoke void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE4linkIiEEvT_S6_(ptr noundef nonnull align 8 dereferenceable(57) %66, i32 noundef %534, i32 noundef %535)
          to label %536 unwind label %564

536:                                              ; preds = %523
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #6
  %537 = load i32, ptr %73, align 4, !tbaa !5
  %538 = invoke noundef i32 @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE8find_setIiEET_S6_(ptr noundef nonnull align 8 dereferenceable(57) %66, i32 noundef %537)
          to label %539 unwind label %568

539:                                              ; preds = %536
  store i32 %538, ptr %77, align 4, !tbaa !5
  %540 = load i32, ptr %75, align 4, !tbaa !5
  %541 = load i32, ptr %76, align 4, !tbaa !5
  %542 = add nsw i32 %540, %541
  %543 = sext i32 %542 to i64
  %544 = load i32, ptr %77, align 4, !tbaa !5
  %545 = sext i32 %544 to i64
  %546 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %545) #6
  store i64 %543, ptr %546, align 8, !tbaa !13
  %547 = load i32, ptr %75, align 4, !tbaa !5
  %548 = load i32, ptr %76, align 4, !tbaa !5
  %549 = add nsw i32 %547, %548
  %550 = load i32, ptr %3, align 4, !tbaa !5
  %551 = icmp sge i32 %549, %550
  br i1 %551, label %552, label %572

552:                                              ; preds = %539
  %553 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %70) #6
  %554 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm2EJiidEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %553) #6
  %555 = load double, ptr %554, align 8, !tbaa !11
  store double %555, ptr %69, align 8, !tbaa !11
  store i32 17, ptr %48, align 4
  br label %573

556:                                              ; preds = %509
  %557 = landingpad { ptr, i32 }
          cleanup
  %558 = extractvalue { ptr, i32 } %557, 0
  store ptr %558, ptr %6, align 8
  %559 = extractvalue { ptr, i32 } %557, 1
  store i32 %559, ptr %7, align 4
  br label %584

560:                                              ; preds = %514
  %561 = landingpad { ptr, i32 }
          cleanup
  %562 = extractvalue { ptr, i32 } %561, 0
  store ptr %562, ptr %6, align 8
  %563 = extractvalue { ptr, i32 } %561, 1
  store i32 %563, ptr %7, align 4
  br label %583

564:                                              ; preds = %523
  %565 = landingpad { ptr, i32 }
          cleanup
  %566 = extractvalue { ptr, i32 } %565, 0
  store ptr %566, ptr %6, align 8
  %567 = extractvalue { ptr, i32 } %565, 1
  store i32 %567, ptr %7, align 4
  br label %576

568:                                              ; preds = %536
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %6, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #6
  br label %576

572:                                              ; preds = %539
  store i32 0, ptr %48, align 4
  br label %573

573:                                              ; preds = %572, %552
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #6
  %574 = load i32, ptr %48, align 4
  switch i32 %574, label %578 [
    i32 0, label %575
  ]

575:                                              ; preds = %573
  br label %577

576:                                              ; preds = %568, %564
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #6
  br label %583

577:                                              ; preds = %575, %519
  store i32 0, ptr %48, align 4
  br label %578

578:                                              ; preds = %577, %573
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #6
  %579 = load i32, ptr %48, align 4
  switch i32 %579, label %585 [
    i32 0, label %580
  ]

580:                                              ; preds = %578
  br label %581

581:                                              ; preds = %580
  %582 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %70) #6
  br label %496, !llvm.loop !23

583:                                              ; preds = %576, %560
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #6
  br label %584

584:                                              ; preds = %583, %556
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #6
  br label %601

585:                                              ; preds = %578, %500
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #6
  br label %586

586:                                              ; preds = %585
  %587 = load i64, ptr %55, align 8, !tbaa !13
  %588 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEl(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i64 noundef %587)
          to label %589 unwind label %597

589:                                              ; preds = %586
  %590 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %588, i8 noundef signext 32)
          to label %591 unwind label %597

591:                                              ; preds = %589
  %592 = load double, ptr %69, align 8, !tbaa !11
  %593 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %590, double noundef %592)
          to label %594 unwind label %597

594:                                              ; preds = %591
  %595 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %593, i8 noundef signext 10)
          to label %596 unwind label %597

596:                                              ; preds = %594
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #6
  call void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(57) %66) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %66) #6
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #6
  call void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(57) %41) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %41) #6
  call void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #6
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #6
  call void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #6
  call void @_ZN4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %12) #6
  call void @llvm.lifetime.end.p0(i64 200, ptr %12) #6
  call void @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %1) #6
  ret void

597:                                              ; preds = %594, %591, %589, %586
  %598 = landingpad { ptr, i32 }
          cleanup
  %599 = extractvalue { ptr, i32 } %598, 0
  store ptr %599, ptr %6, align 8
  %600 = extractvalue { ptr, i32 } %598, 1
  store i32 %600, ptr %7, align 4
  br label %601

601:                                              ; preds = %597, %584
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #6
  call void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(57) %66) #6
  br label %602

602:                                              ; preds = %601, %505
  call void @llvm.lifetime.end.p0(i64 64, ptr %66) #6
  br label %603

603:                                              ; preds = %602, %501, %469
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #6
  br label %604

604:                                              ; preds = %603, %452
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #6
  br label %605

605:                                              ; preds = %604, %448
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #6
  br label %606

606:                                              ; preds = %605, %421
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #6
  call void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(57) %41) #6
  br label %607

607:                                              ; preds = %606, %336
  call void @llvm.lifetime.end.p0(i64 64, ptr %41) #6
  br label %608

608:                                              ; preds = %607, %314, %236
  call void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #6
  br label %609

609:                                              ; preds = %608, %222
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  br label %610

610:                                              ; preds = %609, %149
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #6
  br label %611

611:                                              ; preds = %610, %145
  call void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #6
  br label %612

612:                                              ; preds = %611, %141
  call void @_ZN4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %12) #6
  br label %613

613:                                              ; preds = %612, %137
  call void @llvm.lifetime.end.p0(i64 200, ptr %12) #6
  br label %614

614:                                              ; preds = %613, %113, %90
  call void @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %1) #6
  br label %615

615:                                              ; preds = %614
  %616 = load ptr, ptr %6, align 8
  %617 = load i32, ptr %7, align 4
  %618 = insertvalue { ptr, i32 } poison, ptr %616, 0
  %619 = insertvalue { ptr, i32 } %618, i32 %617, 1
  resume { ptr, i32 } %619
}

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) #2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(20) ptr @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EE12emplace_backIJS4_RiEEERS5_DpOT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4CGAL7Point_2INS_5EpickEEC2IiiEERKT_RKT0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #0 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE18finite_edges_beginEv(ptr dead_on_unwind noalias writable sret(%"struct.CGAL::Filter_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(200)) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE16finite_edges_endEv(ptr dead_on_unwind noalias writable sret(%"struct.CGAL::Filter_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(200)) #0 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZNK4CGAL28Triangulation_ds_face_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS3_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS3_NS0_IvEEEEEEE6vertexEi(ptr noundef nonnull align 8 dereferenceable(49), i32 noundef) #4 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE7segmentERKNS_15Filter_iteratorINS_32Triangulation_ds_edge_iterator_2ISD_EENSE_15Infinite_testerEEE(ptr dead_on_unwind noalias writable sret(%"class.CGAL::Segment_2") align 8, ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(72)) #0 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt5tupleIJiidEESt6vectorIS3_SaIS3_EEEEZ5solvevE3$_0EvT_SA_T0_"(ptr, ptr) #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEEC2EmS2_S2_(ptr noundef nonnull align 8 dereferenceable(57), i64 noundef) unnamed_addr #0 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE8find_setIiEET_S6_(ptr noundef nonnull align 8 dereferenceable(57), i32 noundef) #4 align 2

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt11max_elementIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEET_S7_S7_(ptr, ptr) #4

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt5tupleIJiidEESt6vectorIS3_SaIS3_EEEEZ5solvevE3$_1EvT_SA_T0_"(ptr, ptr) #4

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = distinct !{!15, !10}
!16 = !{!17, !6, i64 8}
!17 = !{!"_ZTSSt4pairIN4CGAL8internal11CC_iteratorINS0_17Compact_containerINS0_25Triangulation_face_base_2INS0_5EpickENS0_28Triangulation_ds_face_base_2INS0_30Triangulation_data_structure_2INS0_37Triangulation_vertex_base_with_info_2IiS5_NS0_27Triangulation_vertex_base_2IS5_NS0_30Triangulation_ds_vertex_base_2IvEEEEEENS4_IS5_NS6_IvEEEEEEEEEENS0_7DefaultESJ_SJ_EELb0EEEiE", !18, i64 0, !6, i64 8}
!18 = !{!"_ZTSN4CGAL8internal11CC_iteratorINS_17Compact_containerINS_25Triangulation_face_base_2INS_5EpickENS_28Triangulation_ds_face_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS4_NS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS3_IS4_NS5_IvEEEEEEEEEENS_7DefaultESI_SI_EELb0EEE", !19, i64 0}
!19 = !{!"any pointer", !7, i64 0}
!20 = distinct !{!20, !10}
!21 = distinct !{!21, !10}
!22 = distinct !{!22, !10}
!23 = distinct !{!23, !10}


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

%"class.std::basic_istream" = type { ptr, i64, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::pair<CGAL::Point_2<CGAL::Epick>, int>, std::allocator<std::pair<CGAL::Point_2<CGAL::Epick>, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<CGAL::Point_2<CGAL::Epick>, int>, std::allocator<std::pair<CGAL::Point_2<CGAL::Epick>, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<CGAL::Point_2<CGAL::Epick>, int>, std::allocator<std::pair<CGAL::Point_2<CGAL::Epick>, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<CGAL::Point_2<CGAL::Epick>, int>, std::allocator<std::pair<CGAL::Point_2<CGAL::Epick>, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.CGAL::Point_2" = type { %"class.CGAL::PointC2" }
%"class.CGAL::PointC2" = type { %"class.CGAL::Vector_2" }
%"class.CGAL::Vector_2" = type { %"class.CGAL::VectorC2" }
%"class.CGAL::VectorC2" = type { %"struct.std::array" }
%"struct.std::array" = type { [2 x double] }
%"class.CGAL::Delaunay_triangulation_2" = type { %"class.CGAL::Triangulation_2" }
%"class.CGAL::Triangulation_2" = type { [8 x i8], %"class.CGAL::Triangulation_data_structure_2", %"class.CGAL::internal::CC_iterator" }
%"class.CGAL::Triangulation_data_structure_2" = type { i32, %"class.CGAL::Compact_container", %"class.CGAL::Compact_container.5" }
%"class.CGAL::Compact_container" = type { [8 x i8], i64, i64, i64, ptr, ptr, ptr, %"class.std::vector.0", %"struct.std::atomic" }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>> *, unsigned long>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::atomic" = type { %"struct.std::__atomic_base" }
%"struct.std::__atomic_base" = type { i64 }
%"class.CGAL::Compact_container.5" = type { [8 x i8], i64, i64, i64, ptr, ptr, ptr, %"class.std::vector.6", %"struct.std::atomic" }
%"class.std::vector.6" = type { %"struct.std::_Vector_base.7" }
%"struct.std::_Vector_base.7" = type { %"struct.std::_Vector_base<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>, std::allocator<std::pair<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick, CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>>> *, unsigned long>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.CGAL::internal::CC_iterator" = type { ptr }
%"class.CGAL::Epick" = type { i8 }
%"class.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<std::tuple<int, int, double>, std::allocator<std::tuple<int, int, double>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::tuple<int, int, double>, std::allocator<std::tuple<int, int, double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::tuple<int, int, double>, std::allocator<std::tuple<int, int, double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::tuple<int, int, double>, std::allocator<std::tuple<int, int, double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.16" = type { %"struct.std::_Vector_base.17" }
%"struct.std::_Vector_base.17" = 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.18" = type { i8 }
%"class.CGAL::internal::CC_iterator.21" = type { ptr }
%"struct.CGAL::Filter_iterator" = type { %"class.CGAL::Triangulation_ds_edge_iterator_2", %"class.CGAL::Triangulation_ds_edge_iterator_2", %"class.CGAL::Triangulation_2<CGAL::Epick, CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>::Infinite_tester" }
%"class.CGAL::Triangulation_ds_edge_iterator_2" = type { ptr, %"class.CGAL::internal::CC_iterator.21", %"struct.std::pair.26" }
%"struct.std::pair.26" = type <{ %"class.CGAL::internal::CC_iterator.21", i32, [4 x i8] }>
%"class.CGAL::Triangulation_2<CGAL::Epick, CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_with_info_2<int, CGAL::Epick>, CGAL::Triangulation_face_base_2<CGAL::Epick>>>::Infinite_tester" = type { ptr }
%"class.CGAL::Segment_2" = type { %"class.CGAL::SegmentC2" }
%"class.CGAL::SegmentC2" = type { %"struct.std::array.29" }
%"struct.std::array.29" = type { [2 x %"class.CGAL::Point_2"] }
%"class.boost::disjoint_sets_with_storage" = type <{ [8 x i8], %"class.std::vector.31", %"class.std::vector.36", [8 x i8] }>
%"class.std::vector.31" = type { %"struct.std::_Vector_base.32" }
%"struct.std::_Vector_base.32" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.36" = type { %"struct.std::_Vector_base.37" }
%"struct.std::_Vector_base.37" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.41" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.30" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.42" = type { ptr }
%"class.std::vector.43" = type { %"struct.std::_Vector_base.44" }
%"struct.std::_Vector_base.44" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.45" = type { i8 }

@_ZSt3cin = external global %"class.std::basic_istream", align 8
@_ZSt4cout = external global %"class.std::basic_ostream", align 8

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
define dso_local void @_Z5solvev() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i64, align 8
  %5 = alloca %"class.std::vector", align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca %"class.CGAL::Point_2", align 8
  %10 = alloca %"class.CGAL::Delaunay_triangulation_2", align 8
  %11 = alloca %"class.CGAL::Epick", align 1
  %12 = alloca %"class.std::vector.11", align 8
  %13 = alloca %"class.std::vector.16", align 8
  %14 = alloca i32, align 4
  %15 = alloca %"class.std::allocator.18", align 1
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca %"class.CGAL::internal::CC_iterator", align 8
  %19 = alloca %"class.CGAL::Point_2", align 8
  %20 = alloca %"class.CGAL::internal::CC_iterator.21", align 8
  %21 = alloca double, align 8
  %22 = alloca %"class.CGAL::Point_2", align 8
  %23 = alloca i32, align 4
  %24 = alloca %"class.std::vector.11", align 8
  %25 = alloca %"struct.CGAL::Filter_iterator", align 8
  %26 = alloca %"struct.CGAL::Filter_iterator", align 8
  %27 = alloca i32, align 4
  %28 = alloca %"class.CGAL::internal::CC_iterator", align 8
  %29 = alloca i32, align 4
  %30 = alloca %"class.CGAL::internal::CC_iterator", align 8
  %31 = alloca double, align 8
  %32 = alloca %"class.CGAL::Segment_2", align 8
  %33 = alloca %"class.boost::disjoint_sets_with_storage", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator.41", align 8
  %35 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator.42", align 8
  %38 = alloca %"class.std::vector.43", align 8
  %39 = alloca i64, align 8
  %40 = alloca %"class.std::allocator.45", align 1
  %41 = alloca %"class.boost::disjoint_sets_with_storage", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.41", align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %1) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #6
  %45 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) %1)
  %46 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %45, ptr noundef nonnull align 4 dereferenceable(4) %2)
  %47 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERl(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef nonnull align 8 dereferenceable(8) %4)
  %48 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 4 dereferenceable(4) %3)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #6
  call void @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %49 = load i32, ptr %1, align 4, !tbaa !5
  %50 = sext i32 %49 to i64
  invoke void @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %50)
          to label %51 unwind label %54

51:                                               ; preds = %0
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #6
  store i32 0, ptr %6, align 4, !tbaa !5
  %52 = load i32, ptr %1, align 4, !tbaa !5
  %53 = icmp sgt i32 %52, 0
  br i1 %53, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %62, %51
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #6
  invoke void @_ZN4CGAL24Delaunay_triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(200) %10, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %72 unwind label %90

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

.lr.ph:                                           ; preds = %51, %62
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #6
  %56 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %57 unwind label %67

57:                                               ; preds = %.lr.ph
  %58 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %56, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %59 unwind label %67

59:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #6
  invoke void @_ZN4CGAL7Point_2INS_5EpickEEC2IiiEERKT_RKT0_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %60 unwind label %69

60:                                               ; preds = %59
  %61 = invoke noundef nonnull align 8 dereferenceable(20) ptr @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EE12emplace_backIJS4_RiEEERS5_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %62 unwind label %69

62:                                               ; preds = %60
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  %63 = load i32, ptr %6, align 4, !tbaa !5
  %64 = add nsw i32 %63, 1
  store i32 %64, ptr %6, align 4, !tbaa !5
  %65 = load i32, ptr %1, align 4, !tbaa !5
  %66 = icmp slt i32 %64, %65
  br i1 %66, label %.lr.ph, label %._crit_edge, !llvm.loop !9

67:                                               ; preds = %57, %.lr.ph
  %68 = landingpad { ptr, i32 }
          cleanup
  br label %71

69:                                               ; preds = %60, %59
  %70 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  br label %71

71:                                               ; preds = %69, %67
  %.pn128 = phi { ptr, i32 } [ %70, %69 ], [ %68, %67 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  br label %366

72:                                               ; preds = %._crit_edge
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #6
  %73 = call ptr @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %74 = call ptr @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %75 = invoke noundef i64 @_ZN4CGAL24Delaunay_triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE6insertIN9__gnu_cxx17__normal_iteratorIPSt4pairINS_7Point_2IS1_EEiESt6vectorISL_SaISL_EEEEEElT_SR_PN5boost9enable_ifINSS_14is_convertibleINSt15iterator_traitsISR_E10value_typeESL_EEvE4typeE(ptr noundef nonnull align 8 dereferenceable(200) %10, ptr %73, ptr %74, ptr noundef null)
          to label %76 unwind label %92

76:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #6
  call void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #6
  %77 = load i32, ptr %2, align 4, !tbaa !5
  %78 = sext i32 %77 to i64
  invoke void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %78)
          to label %79 unwind label %94

79:                                               ; preds = %76
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #6
  %80 = load i32, ptr %1, align 4, !tbaa !5
  %81 = sext i32 %80 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  store i32 0, ptr %14, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #6
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #6
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %81, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %82 unwind label %96

82:                                               ; preds = %79
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  %83 = load i32, ptr %2, align 4, !tbaa !5
  %84 = icmp sgt i32 %83, 0
  br i1 %84, label %.lr.ph153, label %._crit_edge154

._crit_edge154:                                   ; preds = %135, %82
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #6
  call void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  %85 = load i32, ptr %1, align 4, !tbaa !5
  %86 = mul nsw i32 %85, 3
  %87 = load i32, ptr %2, align 4, !tbaa !5
  %88 = add nsw i32 %86, %87
  %89 = sext i32 %88 to i64
  invoke void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %89)
          to label %144 unwind label %151

90:                                               ; preds = %._crit_edge
  %91 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #6
  br label %365

92:                                               ; preds = %72
  %93 = landingpad { ptr, i32 }
          cleanup
  br label %364

94:                                               ; preds = %76
  %95 = landingpad { ptr, i32 }
          cleanup
  br label %363

96:                                               ; preds = %79
  %97 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  br label %362

.lr.ph153:                                        ; preds = %82, %135
  %.076151 = phi i32 [ %136, %135 ], [ 0, %82 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  %98 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %99 unwind label %123

99:                                               ; preds = %.lr.ph153
  %100 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %98, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %101 unwind label %123

101:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #6
  invoke void @_ZN4CGAL7Point_2INS_5EpickEEC2IiiEERKT_RKT0_(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %102 unwind label %125

102:                                              ; preds = %101
  call void @_ZN4CGAL8internal11CC_iteratorINS_17Compact_containerINS_25Triangulation_face_base_2INS_5EpickENS_28Triangulation_ds_face_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS4_NS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS3_IS4_NS5_IvEEEEEEEEEENS_7DefaultESI_SI_EELb0EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20)
  %103 = load ptr, ptr %20, align 8
  %104 = invoke ptr @_ZNK4CGAL24Delaunay_triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE14nearest_vertexERKNS_7Point_2IS1_EENS_8internal11CC_iteratorINS_17Compact_containerINS9_IS1_NSA_ISD_EEEENS_7DefaultESO_SO_EELb0EEE(ptr noundef nonnull align 8 dereferenceable(200) %10, ptr noundef nonnull align 8 dereferenceable(16) %19, ptr %103)
          to label %105 unwind label %125

105:                                              ; preds = %102
  store ptr %104, ptr %18, align 8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #6
  %106 = call noundef ptr @_ZNK4CGAL8internal11CC_iteratorINS_17Compact_containerINS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS3_IiS4_NS5_IS4_NS6_IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEEENS_7DefaultESJ_SJ_EELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18)
  %107 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN4CGAL27Triangulation_vertex_base_2INS_5EpickENS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS0_IS1_NS2_IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEEEE5pointEv(ptr noundef nonnull align 8 dereferenceable(24) %106)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #6
  invoke void @_ZN4CGAL7Point_2INS_5EpickEEC2IiiEERKT_RKT0_(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %108 unwind label %127

108:                                              ; preds = %105
  %109 = invoke noundef double @_ZN4CGAL16squared_distanceINS_5EpickEEENT_2FTERKNS_7Point_2IS2_EES7_(ptr noundef nonnull align 8 dereferenceable(16) %107, ptr noundef nonnull align 8 dereferenceable(16) %22)
          to label %110 unwind label %127

110:                                              ; preds = %108
  %111 = fmul double %109, 4.000000e+00
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #6
  store double %111, ptr %21, align 8, !tbaa !11
  %112 = load i64, ptr %4, align 8, !tbaa !13
  %113 = sitofp i64 %112 to double
  %114 = fcmp ugt double %111, %113
  br i1 %114, label %129, label %115

115:                                              ; preds = %110
  %116 = call noundef ptr @_ZNK4CGAL8internal11CC_iteratorINS_17Compact_containerINS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS3_IiS4_NS5_IS4_NS6_IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEEENS_7DefaultESJ_SJ_EELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18)
  %117 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN4CGAL37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS0_IiS1_NS2_IS1_NS3_IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEE4infoEv(ptr noundef nonnull align 8 dereferenceable(28) %116)
  %118 = load i32, ptr %117, align 4, !tbaa !5
  %119 = sext i32 %118 to i64
  %120 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %119) #6
  %121 = load i32, ptr %120, align 4, !tbaa !5
  %122 = add nsw i32 %121, 1
  store i32 %122, ptr %120, align 4, !tbaa !5
  br label %129

123:                                              ; preds = %99, %.lr.ph153
  %124 = landingpad { ptr, i32 }
          cleanup
  br label %143

125:                                              ; preds = %102, %101
  %126 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  br label %142

127:                                              ; preds = %108, %105
  %128 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #6
  br label %141

129:                                              ; preds = %115, %110
  %130 = call noundef ptr @_ZNK4CGAL8internal11CC_iteratorINS_17Compact_containerINS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS3_IiS4_NS5_IS4_NS6_IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEEENS_7DefaultESJ_SJ_EELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18)
  %131 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN4CGAL37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS0_IiS1_NS2_IS1_NS3_IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEE4infoEv(ptr noundef nonnull align 8 dereferenceable(28) %130)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  %132 = load i32, ptr %1, align 4, !tbaa !5
  %133 = add nsw i32 %132, %.076151
  store i32 %133, ptr %23, align 4, !tbaa !5
  %134 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE12emplace_backIJRiiRdEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 4 dereferenceable(4) %131, ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %135 unwind label %139

135:                                              ; preds = %129
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  %136 = add nuw nsw i32 %.076151, 1
  %137 = load i32, ptr %2, align 4, !tbaa !5
  %138 = icmp slt i32 %136, %137
  br i1 %138, label %.lr.ph153, label %._crit_edge154, !llvm.loop !15

139:                                              ; preds = %129
  %140 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  br label %141

141:                                              ; preds = %139, %127
  %.pn119 = phi { ptr, i32 } [ %140, %139 ], [ %128, %127 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  br label %142

142:                                              ; preds = %141, %125
  %.pn119.pn = phi { ptr, i32 } [ %.pn119, %141 ], [ %126, %125 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  br label %143

143:                                              ; preds = %142, %123
  %.pn119.pn.pn = phi { ptr, i32 } [ %.pn119.pn, %142 ], [ %124, %123 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br label %361

144:                                              ; preds = %._crit_edge154
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %25) #6
  invoke void @_ZNK4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE18finite_edges_beginEv(ptr dead_on_unwind nonnull writable sret(%"struct.CGAL::Filter_iterator") align 8 %25, ptr noundef nonnull align 8 dereferenceable(200) %10)
          to label %.preheader unwind label %.loopexit.split-lp

.preheader:                                       ; preds = %144, %192
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %26) #6
  invoke void @_ZNK4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE16finite_edges_endEv(ptr dead_on_unwind nonnull writable sret(%"struct.CGAL::Filter_iterator") align 8 %26, ptr noundef nonnull align 8 dereferenceable(200) %10)
          to label %145 unwind label %153

145:                                              ; preds = %.preheader
  %146 = invoke noundef zeroext i1 @_ZN4CGALneINS_32Triangulation_ds_edge_iterator_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEENS_15Triangulation_2IS4_SE_E15Infinite_testerEEEbRKNS_15Filter_iteratorIT_T0_EESO_(ptr noundef nonnull align 8 dereferenceable(72) %25, ptr noundef nonnull align 8 dereferenceable(72) %26)
          to label %147 unwind label %153

147:                                              ; preds = %145
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %26) #6
  br i1 %146, label %155, label %148

148:                                              ; preds = %147
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %25) #6
  %149 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  %150 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt5tupleIJiidEESt6vectorIS3_SaIS3_EEEEZ5solvevE3$_0EvT_SA_T0_"(ptr %149, ptr %150)
          to label %199 unwind label %151

151:                                              ; preds = %148, %._crit_edge154
  %152 = landingpad { ptr, i32 }
          cleanup
  br label %360

.loopexit150:                                     ; preds = %192
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %198

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

153:                                              ; preds = %145, %.preheader
  %154 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %26) #6
  br label %198

155:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #6
  %156 = call noundef ptr @_ZNK4CGAL15Filter_iteratorINS_32Triangulation_ds_edge_iterator_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEENS_15Triangulation_2IS4_SE_E15Infinite_testerEEptEv(ptr noundef nonnull align 8 dereferenceable(72) %25)
  %157 = call noundef ptr @_ZNK4CGAL8internal11CC_iteratorINS_17Compact_containerINS_25Triangulation_face_base_2INS_5EpickENS_28Triangulation_ds_face_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS4_NS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS3_IS4_NS5_IvEEEEEEEEEENS_7DefaultESI_SI_EELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %156)
  %158 = call noundef ptr @_ZNK4CGAL15Filter_iteratorINS_32Triangulation_ds_edge_iterator_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEENS_15Triangulation_2IS4_SE_E15Infinite_testerEEptEv(ptr noundef nonnull align 8 dereferenceable(72) %25)
  %159 = getelementptr inbounds i8, ptr %158, i64 8
  %160 = load i32, ptr %159, align 8, !tbaa !16
  %161 = add nsw i32 %160, 1
  %162 = srem i32 %161, 3
  %163 = invoke ptr @_ZNK4CGAL28Triangulation_ds_face_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS3_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS3_NS0_IvEEEEEEE6vertexEi(ptr noundef nonnull align 8 dereferenceable(49) %157, i32 noundef %162)
          to label %164 unwind label %183

164:                                              ; preds = %155
  store ptr %163, ptr %28, align 8
  %165 = call noundef ptr @_ZNK4CGAL8internal11CC_iteratorINS_17Compact_containerINS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS3_IiS4_NS5_IS4_NS6_IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEEENS_7DefaultESJ_SJ_EELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %28)
  %166 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN4CGAL37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS0_IiS1_NS2_IS1_NS3_IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEE4infoEv(ptr noundef nonnull align 8 dereferenceable(28) %165)
  %167 = load i32, ptr %166, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #6
  store i32 %167, ptr %27, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #6
  %168 = call noundef ptr @_ZNK4CGAL15Filter_iteratorINS_32Triangulation_ds_edge_iterator_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEENS_15Triangulation_2IS4_SE_E15Infinite_testerEEptEv(ptr noundef nonnull align 8 dereferenceable(72) %25)
  %169 = call noundef ptr @_ZNK4CGAL8internal11CC_iteratorINS_17Compact_containerINS_25Triangulation_face_base_2INS_5EpickENS_28Triangulation_ds_face_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS4_NS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS3_IS4_NS5_IvEEEEEEEEEENS_7DefaultESI_SI_EELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %168)
  %170 = call noundef ptr @_ZNK4CGAL15Filter_iteratorINS_32Triangulation_ds_edge_iterator_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEENS_15Triangulation_2IS4_SE_E15Infinite_testerEEptEv(ptr noundef nonnull align 8 dereferenceable(72) %25)
  %171 = getelementptr inbounds i8, ptr %170, i64 8
  %172 = load i32, ptr %171, align 8, !tbaa !16
  %173 = add nsw i32 %172, 2
  %174 = srem i32 %173, 3
  %175 = invoke ptr @_ZNK4CGAL28Triangulation_ds_face_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS3_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS3_NS0_IvEEEEEEE6vertexEi(ptr noundef nonnull align 8 dereferenceable(49) %169, i32 noundef %174)
          to label %176 unwind label %185

176:                                              ; preds = %164
  store ptr %175, ptr %30, align 8
  %177 = call noundef ptr @_ZNK4CGAL8internal11CC_iteratorINS_17Compact_containerINS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS3_IiS4_NS5_IS4_NS6_IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEEENS_7DefaultESJ_SJ_EELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %30)
  %178 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN4CGAL37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2INS_30Triangulation_data_structure_2INS0_IiS1_NS2_IS1_NS3_IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEEEEEE4infoEv(ptr noundef nonnull align 8 dereferenceable(28) %177)
  %179 = load i32, ptr %178, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #6
  store i32 %179, ptr %29, align 4, !tbaa !5
  %180 = load i32, ptr %27, align 4, !tbaa !5
  %181 = icmp sgt i32 %180, %179
  br i1 %181, label %182, label %187

182:                                              ; preds = %176
  call void @_ZSt4swapIiENSt9enable_ifIXsr6__and_ISt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS3_ESt18is_move_assignableIS3_EEE5valueEvE4typeERS3_SC_(ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(4) %29) #6
  br label %187

183:                                              ; preds = %155
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #6
  br label %197

185:                                              ; preds = %164
  %186 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #6
  br label %196

187:                                              ; preds = %182, %176
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #6
  invoke void @_ZNK4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE7segmentERKNS_15Filter_iteratorINS_32Triangulation_ds_edge_iterator_2ISD_EENSE_15Infinite_testerEEE(ptr dead_on_unwind nonnull writable sret(%"class.CGAL::Segment_2") align 8 %32, ptr noundef nonnull align 8 dereferenceable(200) %10, ptr noundef nonnull align 8 dereferenceable(72) %25)
          to label %188 unwind label %194

188:                                              ; preds = %187
  %189 = invoke noundef double @_ZNK4CGAL9Segment_2INS_5EpickEE14squared_lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %190 unwind label %194

190:                                              ; preds = %188
  store double %189, ptr %31, align 8, !tbaa !11
  %191 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE12emplace_backIJRiS5_dEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %192 unwind label %194

192:                                              ; preds = %190
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  %193 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN4CGAL15Filter_iteratorINS_32Triangulation_ds_edge_iterator_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS4_NS_28Triangulation_ds_face_base_2IvEEEEEEEENS_15Triangulation_2IS4_SE_E15Infinite_testerEEppEv(ptr noundef nonnull align 8 dereferenceable(72) %25)
          to label %.preheader unwind label %.loopexit150, !llvm.loop !20

194:                                              ; preds = %190, %188, %187
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #6
  br label %196

196:                                              ; preds = %194, %185
  %.pn113 = phi { ptr, i32 } [ %195, %194 ], [ %186, %185 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  br label %197

197:                                              ; preds = %196, %183
  %.pn113.pn = phi { ptr, i32 } [ %.pn113, %196 ], [ %184, %183 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  br label %198

198:                                              ; preds = %.loopexit150, %.loopexit.split-lp, %197, %153
  %.pn116 = phi { ptr, i32 } [ %.pn113.pn, %197 ], [ %154, %153 ], [ %lpad.loopexit, %.loopexit150 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %25) #6
  br label %360

199:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %33) #6
  %200 = load i32, ptr %1, align 4, !tbaa !5
  %201 = sext i32 %200 to i64
  invoke void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEEC2EmS2_S2_(ptr noundef nonnull align 8 dereferenceable(57) %33, i64 noundef %201)
          to label %202 unwind label %207

202:                                              ; preds = %199
  %203 = load i32, ptr %1, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #6
  %204 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  store ptr %204, ptr %35, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #6
  %205 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  store ptr %205, ptr %36, align 8
  %206 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt5tupleIJiidEEPS2_St6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T1_EERKNS9_IT0_SB_EE(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %36) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #6
  br i1 %206, label %.lr.ph157, label %.thread136

207:                                              ; preds = %199
  %208 = landingpad { ptr, i32 }
          cleanup
  br label %359

.lr.ph157:                                        ; preds = %202, %.thread
  %.077155 = phi i32 [ %.178, %.thread ], [ %203, %202 ]
  %209 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  %210 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EJiidEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %209) #6
  %211 = load i32, ptr %210, align 4, !tbaa !5
  %212 = invoke noundef i32 @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE8find_setIiEET_S6_(ptr noundef nonnull align 8 dereferenceable(57) %33, i32 noundef %211)
          to label %213 unwind label %239

213:                                              ; preds = %.lr.ph157
  %214 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  %215 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm1EJiidEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %214) #6
  %216 = load i32, ptr %215, align 4, !tbaa !5
  %217 = invoke noundef i32 @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE8find_setIiEET_S6_(ptr noundef nonnull align 8 dereferenceable(57) %33, i32 noundef %216)
          to label %218 unwind label %241

218:                                              ; preds = %213
  %219 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm2EJiidEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %219) #6
  %221 = load double, ptr %220, align 8, !tbaa !11
  %222 = load i64, ptr %4, align 8, !tbaa !13
  %223 = sitofp i64 %222 to double
  %224 = fcmp ugt double %221, %223
  %.not = icmp eq i32 %212, %217
  %or.cond = or i1 %.not, %224
  br i1 %or.cond, label %247, label %225

225:                                              ; preds = %218
  %226 = sext i32 %212 to i64
  %227 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %226) #6
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %229 = sext i32 %217 to i64
  %230 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %229) #6
  %231 = load i32, ptr %230, align 4, !tbaa !5
  invoke void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE4linkIiEEvT_S6_(ptr noundef nonnull align 8 dereferenceable(57) %33, i32 noundef %212, i32 noundef %217)
          to label %232 unwind label %243

232:                                              ; preds = %225
  %233 = invoke noundef i32 @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE8find_setIiEET_S6_(ptr noundef nonnull align 8 dereferenceable(57) %33, i32 noundef %212)
          to label %234 unwind label %245

234:                                              ; preds = %232
  %235 = add nsw i32 %231, %228
  %236 = sext i32 %233 to i64
  %237 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %236) #6
  store i32 %235, ptr %237, align 4, !tbaa !5
  %238 = add nsw i32 %.077155, -1
  %.not97 = icmp eq i32 %238, 1
  br i1 %.not97, label %.thread136, label %._crit_edge167

._crit_edge167:                                   ; preds = %234
  %.pre = load i64, ptr %4, align 8, !tbaa !13
  %.pre168 = sitofp i64 %.pre to double
  br label %247

239:                                              ; preds = %.lr.ph157
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %252

241:                                              ; preds = %213
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %252

243:                                              ; preds = %225
  %244 = landingpad { ptr, i32 }
          cleanup
  br label %252

245:                                              ; preds = %232
  %246 = landingpad { ptr, i32 }
          cleanup
  br label %252

247:                                              ; preds = %._crit_edge167, %218
  %.pre-phi = phi double [ %.pre168, %._crit_edge167 ], [ %223, %218 ]
  %.178 = phi i32 [ %238, %._crit_edge167 ], [ %.077155, %218 ]
  %248 = fcmp ogt double %221, %.pre-phi
  br i1 %248, label %.thread136, label %.thread

.thread:                                          ; preds = %247
  %249 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #6
  %250 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  store ptr %250, ptr %36, align 8
  %251 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt5tupleIJiidEEPS2_St6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T1_EERKNS9_IT0_SB_EE(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %36) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #6
  br i1 %251, label %.lr.ph157, label %.thread136, !llvm.loop !21

252:                                              ; preds = %241, %245, %243, %239
  %.pn.pn.pn = phi { ptr, i32 } [ %240, %239 ], [ %242, %241 ], [ %246, %245 ], [ %244, %243 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #6
  br label %358

.thread136:                                       ; preds = %.thread, %247, %234, %202
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #6
  %253 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  %254 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  %255 = invoke ptr @_ZSt11max_elementIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEET_S7_S7_(ptr %253, ptr %254)
          to label %256 unwind label %269

256:                                              ; preds = %.thread136
  store ptr %255, ptr %37, align 8
  %257 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #6
  %258 = load i32, ptr %257, align 4, !tbaa !5
  %259 = sext i32 %258 to i64
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %38) #6
  %260 = load i32, ptr %1, align 4, !tbaa !5
  %261 = load i32, ptr %2, align 4, !tbaa !5
  %262 = add nsw i32 %261, %260
  %263 = sext i32 %262 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #6
  store i64 0, ptr %39, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #6
  call void @_ZNSaIlEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  invoke void @_ZNSt6vectorIlSaIlEEC2EmRKlRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %38, i64 noundef %263, ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %264 unwind label %271

264:                                              ; preds = %256
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  %265 = load i32, ptr %2, align 4, !tbaa !5
  %266 = icmp sgt i32 %265, 0
  br i1 %266, label %.lr.ph162, label %._crit_edge163

._crit_edge163:                                   ; preds = %274, %264
  %267 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  %268 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt5tupleIJiidEESt6vectorIS3_SaIS3_EEEEZ5solvevE3$_1EvT_SA_T0_"(ptr %267, ptr %268)
          to label %285 unwind label %297

269:                                              ; preds = %.thread136
  %270 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #6
  br label %358

271:                                              ; preds = %256
  %272 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  br label %357

.lr.ph162:                                        ; preds = %264, %274
  %indvars.iv = phi i64 [ %indvars.iv.next, %274 ], [ 0, %264 ]
  %273 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %indvars.iv) #6
  invoke void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(16) %273)
          to label %274 unwind label %283

274:                                              ; preds = %.lr.ph162
  %275 = load i32, ptr %1, align 4, !tbaa !5
  %276 = trunc nuw nsw i64 %indvars.iv to i32
  %277 = add nsw i32 %275, %276
  %278 = sext i32 %277 to i64
  %279 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %38, i64 noundef %278) #6
  store i64 1, ptr %279, align 8, !tbaa !13
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %280 = load i32, ptr %2, align 4, !tbaa !5
  %281 = sext i32 %280 to i64
  %282 = icmp slt i64 %indvars.iv.next, %281
  br i1 %282, label %.lr.ph162, label %._crit_edge163, !llvm.loop !22

283:                                              ; preds = %.lr.ph162
  %284 = landingpad { ptr, i32 }
          cleanup
  br label %356

285:                                              ; preds = %._crit_edge163
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %41) #6
  %286 = load i32, ptr %1, align 4, !tbaa !5
  %287 = load i32, ptr %2, align 4, !tbaa !5
  %288 = add nsw i32 %287, %286
  %289 = sext i32 %288 to i64
  invoke void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEEC2EmS2_S2_(ptr noundef nonnull align 8 dereferenceable(57) %41, i64 noundef %289)
          to label %290 unwind label %299

290:                                              ; preds = %285
  %291 = load i64, ptr %4, align 8, !tbaa !13
  %292 = shl nsw i64 %291, 2
  %293 = sitofp i64 %292 to double
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #6
  %294 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  store ptr %294, ptr %43, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #6
  %295 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  store ptr %295, ptr %44, align 8
  %296 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt5tupleIJiidEEPS2_St6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T1_EERKNS9_IT0_SB_EE(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #6
  br i1 %296, label %.lr.ph165, label %.loopexit

297:                                              ; preds = %._crit_edge163
  %298 = landingpad { ptr, i32 }
          cleanup
  br label %356

299:                                              ; preds = %285
  %300 = landingpad { ptr, i32 }
          cleanup
  br label %355

.lr.ph165:                                        ; preds = %290, %.thread141
  %301 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %42) #6
  %302 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EJiidEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %301) #6
  %303 = load i32, ptr %302, align 4, !tbaa !5
  %304 = invoke noundef i32 @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE8find_setIiEET_S6_(ptr noundef nonnull align 8 dereferenceable(57) %41, i32 noundef %303)
          to label %305 unwind label %328

305:                                              ; preds = %.lr.ph165
  %306 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %42) #6
  %307 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm1EJiidEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %306) #6
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = invoke noundef i32 @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE8find_setIiEET_S6_(ptr noundef nonnull align 8 dereferenceable(57) %41, i32 noundef %308)
          to label %310 unwind label %330

310:                                              ; preds = %305
  %.not98 = icmp eq i32 %304, %309
  br i1 %.not98, label %.thread141, label %311

311:                                              ; preds = %310
  %312 = sext i32 %304 to i64
  %313 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %38, i64 noundef %312) #6
  %314 = load i64, ptr %313, align 8, !tbaa !13
  %315 = trunc i64 %314 to i32
  %316 = sext i32 %309 to i64
  %317 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %38, i64 noundef %316) #6
  %318 = load i64, ptr %317, align 8, !tbaa !13
  %319 = trunc i64 %318 to i32
  invoke void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE4linkIiEEvT_S6_(ptr noundef nonnull align 8 dereferenceable(57) %41, i32 noundef %304, i32 noundef %309)
          to label %320 unwind label %332

320:                                              ; preds = %311
  %321 = invoke noundef i32 @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE8find_setIiEET_S6_(ptr noundef nonnull align 8 dereferenceable(57) %41, i32 noundef %304)
          to label %322 unwind label %334

322:                                              ; preds = %320
  %323 = add nsw i32 %319, %315
  %324 = sext i32 %323 to i64
  %325 = sext i32 %321 to i64
  %326 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %38, i64 noundef %325) #6
  store i64 %324, ptr %326, align 8, !tbaa !13
  %327 = load i32, ptr %3, align 4, !tbaa !5
  %.not103 = icmp slt i32 %323, %327
  br i1 %.not103, label %.thread141, label %336

328:                                              ; preds = %.lr.ph165
  %329 = landingpad { ptr, i32 }
          cleanup
  br label %343

330:                                              ; preds = %305
  %331 = landingpad { ptr, i32 }
          cleanup
  br label %343

332:                                              ; preds = %311
  %333 = landingpad { ptr, i32 }
          cleanup
  br label %343

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

336:                                              ; preds = %322
  %337 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %42) #6
  %338 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm2EJiidEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %337) #6
  %339 = load double, ptr %338, align 8, !tbaa !11
  br label %.loopexit

.thread141:                                       ; preds = %322, %310
  %340 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt5tupleIJiidEESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %42) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #6
  %341 = call ptr @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  store ptr %341, ptr %44, align 8
  %342 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt5tupleIJiidEEPS2_St6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T1_EERKNS9_IT0_SB_EE(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #6
  br i1 %342, label %.lr.ph165, label %.loopexit, !llvm.loop !23

343:                                              ; preds = %330, %334, %332, %328
  %.pn99.pn.pn = phi { ptr, i32 } [ %329, %328 ], [ %331, %330 ], [ %335, %334 ], [ %333, %332 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #6
  br label %354

.loopexit:                                        ; preds = %.thread141, %290, %336
  %.488 = phi double [ %339, %336 ], [ %293, %290 ], [ %293, %.thread141 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #6
  %344 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEl(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i64 noundef %259)
          to label %345 unwind label %352

345:                                              ; preds = %.loopexit
  %346 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %344, i8 noundef signext 32)
          to label %347 unwind label %352

347:                                              ; preds = %345
  %348 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %346, double noundef %.488)
          to label %349 unwind label %352

349:                                              ; preds = %347
  %350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %348, i8 noundef signext 10)
          to label %351 unwind label %352

351:                                              ; preds = %349
  call void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(57) %41) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %41) #6
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) #6
  call void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(57) %33) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %33) #6
  call void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #6
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  call void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #6
  call void @_ZN4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %10) #6
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %10) #6
  call void @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1) #6
  ret void

352:                                              ; preds = %349, %347, %345, %.loopexit
  %353 = landingpad { ptr, i32 }
          cleanup
  br label %354

354:                                              ; preds = %352, %343
  %.pn104 = phi { ptr, i32 } [ %353, %352 ], [ %.pn99.pn.pn, %343 ]
  call void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(57) %41) #6
  br label %355

355:                                              ; preds = %354, %299
  %.pn104.pn = phi { ptr, i32 } [ %.pn104, %354 ], [ %300, %299 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %41) #6
  br label %356

356:                                              ; preds = %355, %297, %283
  %.pn107 = phi { ptr, i32 } [ %284, %283 ], [ %.pn104.pn, %355 ], [ %298, %297 ]
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #6
  br label %357

357:                                              ; preds = %356, %271
  %.pn107.pn = phi { ptr, i32 } [ %.pn107, %356 ], [ %272, %271 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) #6
  br label %358

358:                                              ; preds = %269, %357, %252
  %.pn107.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %252 ], [ %.pn107.pn, %357 ], [ %270, %269 ]
  call void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(57) %33) #6
  br label %359

359:                                              ; preds = %358, %207
  %.pn107.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn107.pn.pn.pn, %358 ], [ %208, %207 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %33) #6
  br label %360

360:                                              ; preds = %359, %198, %151
  %.pn116.pn = phi { ptr, i32 } [ %.pn116, %198 ], [ %.pn107.pn.pn.pn.pn, %359 ], [ %152, %151 ]
  call void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #6
  br label %361

361:                                              ; preds = %360, %143
  %.pn119.pn.pn.pn = phi { ptr, i32 } [ %.pn119.pn.pn, %143 ], [ %.pn116.pn, %360 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  br label %362

362:                                              ; preds = %361, %96
  %.pn119.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn119.pn.pn.pn, %361 ], [ %97, %96 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  br label %363

363:                                              ; preds = %362, %94
  %.pn119.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn119.pn.pn.pn.pn, %362 ], [ %95, %94 ]
  call void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #6
  br label %364

364:                                              ; preds = %363, %92
  %.pn119.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn119.pn.pn.pn.pn.pn, %363 ], [ %93, %92 ]
  call void @_ZN4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %10) #6
  br label %365

365:                                              ; preds = %364, %90
  %.pn119.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn119.pn.pn.pn.pn.pn.pn, %364 ], [ %91, %90 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %10) #6
  br label %366

366:                                              ; preds = %365, %71, %54
  %.pn128.pn = phi { ptr, i32 } [ %.pn128, %71 ], [ %.pn119.pn.pn.pn.pn.pn.pn.pn, %365 ], [ %55, %54 ]
  call void @_ZNSt6vectorISt4pairIN4CGAL7Point_2INS1_5EpickEEEiESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1) #6
  resume { ptr, i32 } %.pn128.pn
}

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4CGAL7Point_2INS_5EpickEEC2IiiEERKT_RKT0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #0 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE18finite_edges_beginEv(ptr dead_on_unwind noalias writable sret(%"struct.CGAL::Filter_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(200)) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE16finite_edges_endEv(ptr dead_on_unwind noalias writable sret(%"struct.CGAL::Filter_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(200)) local_unnamed_addr #0 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZNK4CGAL28Triangulation_ds_face_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiNS_5EpickENS_27Triangulation_vertex_base_2IS3_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS3_NS0_IvEEEEEEE6vertexEi(ptr noundef nonnull align 8 dereferenceable(49), i32 noundef) local_unnamed_addr #4 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK4CGAL15Triangulation_2INS_5EpickENS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS1_NS_27Triangulation_vertex_base_2IS1_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS_25Triangulation_face_base_2IS1_NS_28Triangulation_ds_face_base_2IvEEEEEEE7segmentERKNS_15Filter_iteratorINS_32Triangulation_ds_edge_iterator_2ISD_EENSE_15Infinite_testerEEE(ptr dead_on_unwind noalias writable sret(%"class.CGAL::Segment_2") align 8, ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #0 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt5tupleIJiidEESt6vectorIS3_SaIS3_EEEEZ5solvevE3$_0EvT_SA_T0_"(ptr, ptr) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEEC2EmS2_S2_(ptr noundef nonnull align 8 dereferenceable(57), i64 noundef) unnamed_addr #0 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZN5boost26disjoint_sets_with_storageINS_27typed_identity_property_mapImEES2_NS_31find_with_full_path_compressionEE8find_setIiEET_S6_(ptr noundef nonnull align 8 dereferenceable(57), i32 noundef) local_unnamed_addr #4 align 2

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt11max_elementIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEET_S7_S7_(ptr, ptr) local_unnamed_addr #4

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt5tupleIJiidEESt6vectorIS3_SaIS3_EEEEZ5solvevE3$_1EvT_SA_T0_"(ptr, ptr) local_unnamed_addr #4

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = distinct !{!15, !10}
!16 = !{!17, !6, i64 8}
!17 = !{!"_ZTSSt4pairIN4CGAL8internal11CC_iteratorINS0_17Compact_containerINS0_25Triangulation_face_base_2INS0_5EpickENS0_28Triangulation_ds_face_base_2INS0_30Triangulation_data_structure_2INS0_37Triangulation_vertex_base_with_info_2IiS5_NS0_27Triangulation_vertex_base_2IS5_NS0_30Triangulation_ds_vertex_base_2IvEEEEEENS4_IS5_NS6_IvEEEEEEEEEENS0_7DefaultESJ_SJ_EELb0EEEiE", !18, i64 0, !6, i64 8}
!18 = !{!"_ZTSN4CGAL8internal11CC_iteratorINS_17Compact_containerINS_25Triangulation_face_base_2INS_5EpickENS_28Triangulation_ds_face_base_2INS_30Triangulation_data_structure_2INS_37Triangulation_vertex_base_with_info_2IiS4_NS_27Triangulation_vertex_base_2IS4_NS_30Triangulation_ds_vertex_base_2IvEEEEEENS3_IS4_NS5_IvEEEEEEEEEENS_7DefaultESI_SI_EELb0EEE", !19, i64 0}
!19 = !{!"any pointer", !7, i64 0}
!20 = distinct !{!20, !10}
!21 = distinct !{!21, !10}
!22 = distinct !{!22, !10}
!23 = distinct !{!23, !10}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass