; LLVM IR from doyubkim/fluid-engine-dev :: src/jet (particle_system_data2)

; 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"

%"struct.flatbuffers::VectorIterator" = type { ptr }
%"class.jet::Array" = type { %"class.std::vector.13" }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::reverse_iterator" = type { %"class.__gnu_cxx::__normal_iterator" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.flatbuffers::VectorIterator.93" = type { ptr }
%"class.jet::Array.19" = type { %"class.std::vector.20" }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<jet::Vector<double, 2>, std::allocator<jet::Vector<double, 2>>>::_Vector_impl" }
%"struct.std::_Vector_base<jet::Vector<double, 2>, std::allocator<jet::Vector<double, 2>>>::_Vector_impl" = type { %"struct.std::_Vector_base<jet::Vector<double, 2>, std::allocator<jet::Vector<double, 2>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<jet::Vector<double, 2>, std::allocator<jet::Vector<double, 2>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.jet::Vector" = type { double, double }
%"class.std::reverse_iterator.95" = type { %"class.__gnu_cxx::__normal_iterator.18" }
%"class.__gnu_cxx::__normal_iterator.18" = type { ptr }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.32 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.32 = type { i64, [8 x i8] }
%"class.std::allocator.29" = type { i8 }
%"class.std::vector.49" = type { %"struct.std::_Vector_base.50" }
%"struct.std::_Vector_base.50" = 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 }
%"struct.flatbuffers::VectorIterator.98" = type { ptr }
%"class.std::allocator.51" = type { i8 }
%"struct.flatbuffers::VectorIterator.103" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.102" = type { ptr }
%class.anon.104 = type { i8 }
%"class.jet::ParticleSystemData2" = type { %"class.jet::Serializable", double, double, i64, i64, i64, i64, %"class.std::vector", %"class.std::vector.0", %"class.std::shared_ptr", %"class.std::vector.5" }
%"class.jet::Serializable" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<jet::Array<double, 1>, std::allocator<jet::Array<double, 1>>>::_Vector_impl" }
%"struct.std::_Vector_base<jet::Array<double, 1>, std::allocator<jet::Array<double, 1>>>::_Vector_impl" = type { %"struct.std::_Vector_base<jet::Array<double, 1>, std::allocator<jet::Array<double, 1>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<jet::Array<double, 1>, std::allocator<jet::Array<double, 1>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<jet::Array<jet::Vector<double, 2>, 1>, std::allocator<jet::Array<jet::Vector<double, 2>, 1>>>::_Vector_impl" }
%"struct.std::_Vector_base<jet::Array<jet::Vector<double, 2>, 1>, std::allocator<jet::Array<jet::Vector<double, 2>, 1>>>::_Vector_impl" = type { %"struct.std::_Vector_base<jet::Array<jet::Vector<double, 2>, 1>, std::allocator<jet::Array<jet::Vector<double, 2>, 1>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<jet::Array<jet::Vector<double, 2>, 1>, std::allocator<jet::Array<jet::Vector<double, 2>, 1>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = type { %"struct.std::_Vector_base<std::vector<unsigned long>, std::allocator<std::vector<unsigned long>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<unsigned long>, std::allocator<std::vector<unsigned long>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<unsigned long>, std::allocator<std::vector<unsigned long>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<unsigned long>, std::allocator<std::vector<unsigned long>>>::_Vector_impl_data" = type { ptr, ptr, ptr }

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3jet19ParticleSystemData229deserializeParticleSystemDataEPKNS_3fbs19ParticleSystemData2E(ptr noundef nonnull align 8 dereferenceable(144) %0, ptr noundef %1) #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %"struct.flatbuffers::VectorIterator", align 8
  %8 = alloca %"struct.flatbuffers::VectorIterator", align 8
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca %"class.jet::Array", align 8
  %14 = alloca double, align 8
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca %"class.std::reverse_iterator", align 8
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %"struct.flatbuffers::VectorIterator.93", align 8
  %23 = alloca %"struct.flatbuffers::VectorIterator.93", align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca %"class.jet::Array.19", align 8
  %28 = alloca %"class.jet::Vector", align 8
  %29 = alloca ptr, align 8
  %30 = alloca %"class.std::reverse_iterator.95", align 8
  %31 = alloca i32, align 4
  %32 = alloca %"class.jet::Vector", align 8
  %33 = alloca ptr, align 8
  %34 = alloca %"class.std::shared_ptr", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator.29", align 1
  %37 = alloca %"class.std::vector.49", align 8
  %38 = alloca %"struct.flatbuffers::VectorIterator.98", align 8
  %39 = alloca %"struct.flatbuffers::VectorIterator.98", align 8
  %40 = alloca %"class.std::allocator.51", align 1
  %41 = alloca ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca %"struct.flatbuffers::VectorIterator.103", align 8
  %45 = alloca %"struct.flatbuffers::VectorIterator.103", align 8
  %46 = alloca %"class.__gnu_cxx::__normal_iterator.102", align 8
  %47 = alloca %class.anon.104, align 1
  %48 = alloca %"class.__gnu_cxx::__normal_iterator.102", align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %49 = load ptr, ptr %3, align 8
  %50 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 7
  call void @_ZNSt6vectorIN3jet5ArrayIdLm1EEESaIS2_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %50) #6
  %51 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 8
  call void @_ZNSt6vectorIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %51) #6
  %52 = load ptr, ptr %4, align 8, !tbaa !5
  %53 = call noundef double @_ZNK3jet3fbs19ParticleSystemData26radiusEv(ptr noundef nonnull align 1 dereferenceable(1) %52)
  %54 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 1
  store double %53, ptr %54, align 8, !tbaa !9
  %55 = load ptr, ptr %4, align 8, !tbaa !5
  %56 = call noundef double @_ZNK3jet3fbs19ParticleSystemData24massEv(ptr noundef nonnull align 1 dereferenceable(1) %55)
  %57 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 2
  store double %56, ptr %57, align 8, !tbaa !29
  %58 = load ptr, ptr %4, align 8, !tbaa !5
  %59 = call noundef i64 @_ZNK3jet3fbs19ParticleSystemData211positionIdxEv(ptr noundef nonnull align 1 dereferenceable(1) %58)
  %60 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 4
  store i64 %59, ptr %60, align 8, !tbaa !30
  %61 = load ptr, ptr %4, align 8, !tbaa !5
  %62 = call noundef i64 @_ZNK3jet3fbs19ParticleSystemData211velocityIdxEv(ptr noundef nonnull align 1 dereferenceable(1) %61)
  %63 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 5
  store i64 %62, ptr %63, align 8, !tbaa !31
  %64 = load ptr, ptr %4, align 8, !tbaa !5
  %65 = call noundef i64 @_ZNK3jet3fbs19ParticleSystemData28forceIdxEv(ptr noundef nonnull align 1 dereferenceable(1) %64)
  %66 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 6
  store i64 %65, ptr %66, align 8, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #6
  %67 = load ptr, ptr %4, align 8, !tbaa !5
  %68 = call noundef ptr @_ZNK3jet3fbs19ParticleSystemData214scalarDataListEv(ptr noundef nonnull align 1 dereferenceable(1) %67)
  store ptr %68, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #6
  %69 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %69, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #6
  %70 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEE5beginEv(ptr dead_on_unwind writable sret(%"struct.flatbuffers::VectorIterator") align 8 %7, ptr noundef nonnull align 4 dereferenceable(4) %70)
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #6
  %71 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEE3endEv(ptr dead_on_unwind writable sret(%"struct.flatbuffers::VectorIterator") align 8 %8, ptr noundef nonnull align 4 dereferenceable(4) %71)
  br label %72

72:                                               ; preds = %109, %2
  %73 = call noundef zeroext i1 @_ZNK11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEPKS4_EneERKS8_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  br i1 %73, label %75, label %74

74:                                               ; preds = %72
  store i32 2, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #6
  br label %111

75:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #6
  %76 = call noundef ptr @_ZNK11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEPKS4_EdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
  store ptr %76, ptr %11, align 8, !tbaa !5
  store ptr %11, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #6
  %77 = load ptr, ptr %10, align 8, !tbaa !5
  %78 = load ptr, ptr %77, align 8, !tbaa !5
  %79 = call noundef ptr @_ZNK3jet3fbs19ScalarParticleData24dataEv(ptr noundef nonnull align 1 dereferenceable(1) %78)
  store ptr %79, ptr %12, align 8, !tbaa !5
  %80 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #6
  %81 = load ptr, ptr %12, align 8, !tbaa !5
  %82 = call noundef i32 @_ZNK11flatbuffers6VectorIdE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %81)
  %83 = zext i32 %82 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #6
  store double 0.000000e+00, ptr %14, align 8, !tbaa !33
  call void @_ZN3jet5ArrayIdLm1EEC2EmRKd(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %83, ptr noundef nonnull align 8 dereferenceable(8) %14)
  invoke void @_ZNSt6vectorIN3jet5ArrayIdLm1EEESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %80, ptr noundef nonnull align 8 dereferenceable(24) %13)
          to label %84 unwind label %93

84:                                               ; preds = %75
  call void @_ZN3jet5ArrayIdLm1EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  %85 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 7
  call void @_ZNSt6vectorIN3jet5ArrayIdLm1EEESaIS2_EE6rbeginEv(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator") align 8 %18, ptr noundef nonnull align 8 dereferenceable(24) %85) #6
  %86 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPN3jet5ArrayIdLm1EEESt6vectorIS4_SaIS4_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %18)
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  store ptr %86, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #6
  store i32 0, ptr %19, align 4, !tbaa !34
  br label %87

87:                                               ; preds = %105, %84
  %88 = load i32, ptr %19, align 4, !tbaa !34
  %89 = load ptr, ptr %12, align 8, !tbaa !5
  %90 = call noundef i32 @_ZNK11flatbuffers6VectorIdE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %89)
  %91 = icmp ult i32 %88, %90
  br i1 %91, label %97, label %92

92:                                               ; preds = %87
  store i32 4, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  br label %108

93:                                               ; preds = %75
  %94 = landingpad { ptr, i32 }
          cleanup
  %95 = extractvalue { ptr, i32 } %94, 0
  store ptr %95, ptr %15, align 8
  %96 = extractvalue { ptr, i32 } %94, 1
  store i32 %96, ptr %16, align 4
  call void @_ZN3jet5ArrayIdLm1EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #6
  br label %272

97:                                               ; preds = %87
  %98 = load ptr, ptr %12, align 8, !tbaa !5
  %99 = load i32, ptr %19, align 4, !tbaa !34
  %100 = call noundef double @_ZNK11flatbuffers6VectorIdE3GetEj(ptr noundef nonnull align 4 dereferenceable(4) %98, i32 noundef %99)
  %101 = load ptr, ptr %17, align 8, !tbaa !5
  %102 = load i32, ptr %19, align 4, !tbaa !34
  %103 = zext i32 %102 to i64
  %104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3jet5ArrayIdLm1EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %101, i64 noundef %103)
  store double %100, ptr %104, align 8, !tbaa !33
  br label %105

105:                                              ; preds = %97
  %106 = load i32, ptr %19, align 4, !tbaa !34
  %107 = add i32 %106, 1
  store i32 %107, ptr %19, align 4, !tbaa !34
  br label %87, !llvm.loop !36

108:                                              ; preds = %92
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #6
  br label %109

109:                                              ; preds = %108
  %110 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEPKS4_EppEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
  br label %72

111:                                              ; preds = %74
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  %112 = load ptr, ptr %4, align 8, !tbaa !5
  %113 = call noundef ptr @_ZNK3jet3fbs19ParticleSystemData214vectorDataListEv(ptr noundef nonnull align 1 dereferenceable(1) %112)
  store ptr %113, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  %114 = load ptr, ptr %20, align 8, !tbaa !5
  store ptr %114, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #6
  %115 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEE5beginEv(ptr dead_on_unwind writable sret(%"struct.flatbuffers::VectorIterator.93") align 8 %22, ptr noundef nonnull align 4 dereferenceable(4) %115)
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #6
  %116 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEE3endEv(ptr dead_on_unwind writable sret(%"struct.flatbuffers::VectorIterator.93") align 8 %23, ptr noundef nonnull align 4 dereferenceable(4) %116)
  br label %117

117:                                              ; preds = %155, %111
  %118 = call noundef zeroext i1 @_ZNK11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEPKS4_EneERKS8_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %23)
  br i1 %118, label %120, label %119

119:                                              ; preds = %117
  store i32 7, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  br label %157

120:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #6
  %121 = call noundef ptr @_ZNK11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEPKS4_EdeEv(ptr noundef nonnull align 8 dereferenceable(8) %22)
  store ptr %121, ptr %25, align 8, !tbaa !5
  store ptr %25, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #6
  %122 = load ptr, ptr %24, align 8, !tbaa !5
  %123 = load ptr, ptr %122, align 8, !tbaa !5
  %124 = call noundef ptr @_ZNK3jet3fbs19VectorParticleData24dataEv(ptr noundef nonnull align 1 dereferenceable(1) %123)
  store ptr %124, ptr %26, align 8, !tbaa !5
  %125 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %27) #6
  %126 = load ptr, ptr %26, align 8, !tbaa !5
  %127 = call noundef i32 @_ZNK11flatbuffers6VectorIPKN3jet3fbs8Vector2DEE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %126)
  %128 = zext i32 %127 to i64
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #6
  call void @_ZN3jet6VectorIdLm2EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28)
  call void @_ZN3jet5ArrayINS_6VectorIdLm2EEELm1EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %128, ptr noundef nonnull align 8 dereferenceable(16) %28)
  invoke void @_ZNSt6vectorIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE9push_backEOS4_(ptr noundef nonnull align 8 dereferenceable(24) %125, ptr noundef nonnull align 8 dereferenceable(24) %27)
          to label %129 unwind label %138

129:                                              ; preds = %120
  call void @_ZN3jet5ArrayINS_6VectorIdLm2EEELm1EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %27) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #6
  %130 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 8
  call void @_ZNSt6vectorIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE6rbeginEv(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator.95") align 8 %30, ptr noundef nonnull align 8 dereferenceable(24) %130) #6
  %131 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPN3jet5ArrayINS2_6VectorIdLm2EEELm1EEESt6vectorIS6_SaIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %30)
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  store ptr %131, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #6
  store i32 0, ptr %31, align 4, !tbaa !34
  br label %132

132:                                              ; preds = %151, %129
  %133 = load i32, ptr %31, align 4, !tbaa !34
  %134 = load ptr, ptr %26, align 8, !tbaa !5
  %135 = call noundef i32 @_ZNK11flatbuffers6VectorIPKN3jet3fbs8Vector2DEE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %134)
  %136 = icmp ult i32 %133, %135
  br i1 %136, label %142, label %137

137:                                              ; preds = %132
  store i32 9, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  br label %154

138:                                              ; preds = %120
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %15, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %16, align 4
  call void @_ZN3jet5ArrayINS_6VectorIdLm2EEELm1EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  br label %271

142:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #6
  %143 = load ptr, ptr %26, align 8, !tbaa !5
  %144 = load i32, ptr %31, align 4, !tbaa !34
  %145 = call noundef ptr @_ZNK11flatbuffers6VectorIPKN3jet3fbs8Vector2DEE3GetEj(ptr noundef nonnull align 4 dereferenceable(4) %143, i32 noundef %144)
  call void @_ZN3jet8fbsToJetERKNS_3fbs8Vector2DE(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %32, ptr noundef nonnull align 8 dereferenceable(16) %145)
  %146 = load ptr, ptr %29, align 8, !tbaa !5
  %147 = load i32, ptr %31, align 4, !tbaa !34
  %148 = zext i32 %147 to i64
  %149 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3jet5ArrayINS_6VectorIdLm2EEELm1EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %146, i64 noundef %148)
  %150 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3jet6VectorIdLm2EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %149, ptr noundef nonnull align 8 dereferenceable(16) %32)
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #6
  br label %151

151:                                              ; preds = %142
  %152 = load i32, ptr %31, align 4, !tbaa !34
  %153 = add i32 %152, 1
  store i32 %153, ptr %31, align 4, !tbaa !34
  br label %132, !llvm.loop !38

154:                                              ; preds = %137
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  br label %155

155:                                              ; preds = %154
  %156 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEPKS4_EppEv(ptr noundef nonnull align 8 dereferenceable(8) %22)
  br label %117

157:                                              ; preds = %119
  %158 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 8
  %159 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %158, i64 noundef 0) #6
  %160 = call noundef i64 @_ZNK3jet5ArrayINS_6VectorIdLm2EEELm1EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %159)
  %161 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 3
  store i64 %160, ptr %161, align 8, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #6
  %162 = load ptr, ptr %4, align 8, !tbaa !5
  %163 = call noundef ptr @_ZNK3jet3fbs19ParticleSystemData216neighborSearcherEv(ptr noundef nonnull align 1 dereferenceable(1) %162)
  store ptr %163, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #6
  %164 = load ptr, ptr %33, align 8, !tbaa !5
  %165 = call noundef ptr @_ZNK3jet3fbs32PointNeighborSearcherSerialized24typeEv(ptr noundef nonnull align 1 dereferenceable(1) %164)
  %166 = call noundef ptr @_ZNK11flatbuffers6String5c_strEv(ptr noundef nonnull align 4 dereferenceable(4) %165)
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef %166, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %167 unwind label %198

167:                                              ; preds = %157
  invoke void @_ZN3jet7Factory27buildPointNeighborSearcher2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %168 unwind label %202

168:                                              ; preds = %167
  %169 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 9
  %170 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN3jet22PointNeighborSearcher2EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %169, ptr noundef nonnull align 8 dereferenceable(16) %34) #6
  call void @_ZNSt12__shared_ptrIN3jet22PointNeighborSearcher2ELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr %37) #6
  %171 = load ptr, ptr %33, align 8, !tbaa !5
  %172 = call noundef ptr @_ZNK3jet3fbs32PointNeighborSearcherSerialized24dataEv(ptr noundef nonnull align 1 dereferenceable(1) %171)
  call void @_ZNK11flatbuffers6VectorIhE5beginEv(ptr dead_on_unwind writable sret(%"struct.flatbuffers::VectorIterator.98") align 8 %38, ptr noundef nonnull align 4 dereferenceable(4) %172)
  %173 = load ptr, ptr %33, align 8, !tbaa !5
  %174 = call noundef ptr @_ZNK3jet3fbs32PointNeighborSearcherSerialized24dataEv(ptr noundef nonnull align 1 dereferenceable(1) %173)
  call void @_ZNK11flatbuffers6VectorIhE3endEv(ptr dead_on_unwind writable sret(%"struct.flatbuffers::VectorIterator.98") align 8 %39, ptr noundef nonnull align 4 dereferenceable(4) %174)
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #6
  call void @_ZNSaIhEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  invoke void @_ZNSt6vectorIhSaIhEEC2IN11flatbuffers14VectorIteratorIhhEEvEET_S6_RKS0_(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef %38, ptr noundef %39, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %175 unwind label %207

175:                                              ; preds = %168
  call void @_ZNSt15__new_allocatorIhED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #6
  %176 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 9
  %177 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3jet22PointNeighborSearcher2ELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %176) #6
  %178 = load ptr, ptr %177, align 8, !tbaa !40
  %179 = getelementptr inbounds ptr, ptr %178, i64 3
  %180 = load ptr, ptr %179, align 8
  invoke void %180(ptr noundef nonnull align 8 dereferenceable(8) %177, ptr noundef nonnull align 8 dereferenceable(24) %37)
          to label %181 unwind label %211

181:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #6
  %182 = load ptr, ptr %4, align 8, !tbaa !5
  %183 = invoke noundef ptr @_ZNK3jet3fbs19ParticleSystemData213neighborListsEv(ptr noundef nonnull align 1 dereferenceable(1) %182)
          to label %184 unwind label %215

184:                                              ; preds = %181
  store ptr %183, ptr %41, align 8, !tbaa !5
  %185 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 10
  %186 = load ptr, ptr %41, align 8, !tbaa !5
  %187 = invoke noundef i32 @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs21ParticleNeighborList2EEEE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %186)
          to label %188 unwind label %215

188:                                              ; preds = %184
  %189 = zext i32 %187 to i64
  invoke void @_ZNSt6vectorIS_ImSaImEESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %185, i64 noundef %189)
          to label %190 unwind label %215

190:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #6
  store i32 0, ptr %42, align 4, !tbaa !34
  br label %191

191:                                              ; preds = %258, %190
  %192 = load i32, ptr %42, align 4, !tbaa !34
  %193 = load ptr, ptr %41, align 8, !tbaa !5
  %194 = invoke noundef i32 @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs21ParticleNeighborList2EEEE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %193)
          to label %195 unwind label %219

195:                                              ; preds = %191
  %196 = icmp ult i32 %192, %194
  br i1 %196, label %223, label %197

197:                                              ; preds = %195
  store i32 12, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  br label %266

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

202:                                              ; preds = %167
  %203 = landingpad { ptr, i32 }
          cleanup
  %204 = extractvalue { ptr, i32 } %203, 0
  store ptr %204, ptr %15, align 8
  %205 = extractvalue { ptr, i32 } %203, 1
  store i32 %205, ptr %16, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %206

206:                                              ; preds = %202, %198
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #6
  br label %270

207:                                              ; preds = %168
  %208 = landingpad { ptr, i32 }
          cleanup
  %209 = extractvalue { ptr, i32 } %208, 0
  store ptr %209, ptr %15, align 8
  %210 = extractvalue { ptr, i32 } %208, 1
  store i32 %210, ptr %16, align 4
  call void @_ZNSt15__new_allocatorIhED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #6
  br label %269

211:                                              ; preds = %175
  %212 = landingpad { ptr, i32 }
          cleanup
  %213 = extractvalue { ptr, i32 } %212, 0
  store ptr %213, ptr %15, align 8
  %214 = extractvalue { ptr, i32 } %212, 1
  store i32 %214, ptr %16, align 4
  br label %268

215:                                              ; preds = %188, %184, %181
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %15, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %16, align 4
  br label %267

219:                                              ; preds = %191
  %220 = landingpad { ptr, i32 }
          cleanup
  %221 = extractvalue { ptr, i32 } %220, 0
  store ptr %221, ptr %15, align 8
  %222 = extractvalue { ptr, i32 } %220, 1
  store i32 %222, ptr %16, align 4
  br label %265

223:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #6
  %224 = load ptr, ptr %41, align 8, !tbaa !5
  %225 = load i32, ptr %42, align 4, !tbaa !34
  %226 = invoke noundef ptr @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs21ParticleNeighborList2EEEE3GetEj(ptr noundef nonnull align 4 dereferenceable(4) %224, i32 noundef %225)
          to label %227 unwind label %261

227:                                              ; preds = %223
  store ptr %226, ptr %43, align 8, !tbaa !5
  %228 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 10
  %229 = load i32, ptr %42, align 4, !tbaa !34
  %230 = zext i32 %229 to i64
  %231 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ImSaImEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %228, i64 noundef %230) #6
  %232 = load ptr, ptr %43, align 8, !tbaa !5
  %233 = invoke noundef ptr @_ZNK3jet3fbs21ParticleNeighborList24dataEv(ptr noundef nonnull align 1 dereferenceable(1) %232)
          to label %234 unwind label %261

234:                                              ; preds = %227
  %235 = invoke noundef i32 @_ZNK11flatbuffers6VectorImE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %233)
          to label %236 unwind label %261

236:                                              ; preds = %234
  %237 = zext i32 %235 to i64
  invoke void @_ZNSt6vectorImSaImEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %231, i64 noundef %237)
          to label %238 unwind label %261

238:                                              ; preds = %236
  %239 = load ptr, ptr %43, align 8, !tbaa !5
  %240 = invoke noundef ptr @_ZNK3jet3fbs21ParticleNeighborList24dataEv(ptr noundef nonnull align 1 dereferenceable(1) %239)
          to label %241 unwind label %261

241:                                              ; preds = %238
  invoke void @_ZNK11flatbuffers6VectorImE5beginEv(ptr dead_on_unwind writable sret(%"struct.flatbuffers::VectorIterator.103") align 8 %44, ptr noundef nonnull align 4 dereferenceable(4) %240)
          to label %242 unwind label %261

242:                                              ; preds = %241
  %243 = load ptr, ptr %43, align 8, !tbaa !5
  %244 = invoke noundef ptr @_ZNK3jet3fbs21ParticleNeighborList24dataEv(ptr noundef nonnull align 1 dereferenceable(1) %243)
          to label %245 unwind label %261

245:                                              ; preds = %242
  invoke void @_ZNK11flatbuffers6VectorImE3endEv(ptr dead_on_unwind writable sret(%"struct.flatbuffers::VectorIterator.103") align 8 %45, ptr noundef nonnull align 4 dereferenceable(4) %244)
          to label %246 unwind label %261

246:                                              ; preds = %245
  %247 = getelementptr inbounds %"class.jet::ParticleSystemData2", ptr %49, i32 0, i32 10
  %248 = load i32, ptr %42, align 4, !tbaa !34
  %249 = zext i32 %248 to i64
  %250 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ImSaImEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %247, i64 noundef %249) #6
  %251 = call ptr @_ZNSt6vectorImSaImEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %250) #6
  %252 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.102", ptr %46, i32 0, i32 0
  store ptr %251, ptr %252, align 8
  %253 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.102", ptr %46, i32 0, i32 0
  %254 = load ptr, ptr %253, align 8
  %255 = invoke ptr @"_ZSt9transformIN11flatbuffers14VectorIteratorImmEEN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEEZN3jet19ParticleSystemData229deserializeParticleSystemDataEPKNSA_3fbs19ParticleSystemData2EE3$_0ET0_T_SI_SH_T1_"(ptr noundef %44, ptr noundef %45, ptr %254)
          to label %256 unwind label %261

256:                                              ; preds = %246
  %257 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.102", ptr %48, i32 0, i32 0
  store ptr %255, ptr %257, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  br label %258

258:                                              ; preds = %256
  %259 = load i32, ptr %42, align 4, !tbaa !34
  %260 = add i32 %259, 1
  store i32 %260, ptr %42, align 4, !tbaa !34
  br label %191, !llvm.loop !42

261:                                              ; preds = %246, %245, %242, %241, %238, %236, %234, %227, %223
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %15, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  br label %265

265:                                              ; preds = %261, %219
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  br label %267

266:                                              ; preds = %197
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #6
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #6
  ret void

267:                                              ; preds = %265, %215
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #6
  br label %268

268:                                              ; preds = %267, %211
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #6
  br label %269

269:                                              ; preds = %268, %207
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #6
  br label %270

270:                                              ; preds = %269, %206
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  br label %271

271:                                              ; preds = %270, %138
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  br label %272

272:                                              ; preds = %271, %93
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #6
  br label %273

273:                                              ; preds = %272
  %274 = load ptr, ptr %15, align 8
  %275 = load i32, ptr %16, align 4
  %276 = insertvalue { ptr, i32 } poison, ptr %274, 0
  %277 = insertvalue { ptr, i32 } %276, i32 %275, 1
  resume { ptr, i32 } %277
}

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK3jet3fbs19ParticleSystemData26radiusEv(ptr noundef nonnull align 1 dereferenceable(1)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK3jet3fbs19ParticleSystemData24massEv(ptr noundef nonnull align 1 dereferenceable(1)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK3jet3fbs19ParticleSystemData211positionIdxEv(ptr noundef nonnull align 1 dereferenceable(1)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK3jet3fbs19ParticleSystemData211velocityIdxEv(ptr noundef nonnull align 1 dereferenceable(1)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK3jet3fbs19ParticleSystemData28forceIdxEv(ptr noundef nonnull align 1 dereferenceable(1)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEE5beginEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEE3endEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEPKS4_EneERKS8_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK11flatbuffers6VectorIdE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIN3jet5ArrayIdLm1EEESaIS2_EE6rbeginEv(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK11flatbuffers6VectorIdE3GetEj(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEE5beginEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator.93") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEE3endEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator.93") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEPKS4_EneERKS8_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK11flatbuffers6VectorIPKN3jet3fbs8Vector2DEE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE6rbeginEv(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator.95") align 8, ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3jet8fbsToJetERKNS_3fbs8Vector2DE(ptr dead_on_unwind noalias writable sret(%"class.jet::Vector") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #4

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

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

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

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

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

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

declare void @_ZN3jet7Factory27buildPointNeighborSearcher2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #5

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorIhE5beginEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator.98") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorIhE3endEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator.98") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs21ParticleNeighborList2EEEE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK11flatbuffers6VectorImE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden ptr @"_ZSt9transformIN11flatbuffers14VectorIteratorImmEEN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEEZN3jet19ParticleSystemData229deserializeParticleSystemDataEPKNSA_3fbs19ParticleSystemData2EE3$_0ET0_T_SI_SH_T1_"(ptr noundef, ptr noundef, ptr) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorImE5beginEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator.103") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorImE3endEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator.103") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { inlinehint mustprogress 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 #3 = { 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 #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 = { "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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !12, i64 8}
!10 = !{!"_ZTSN3jet19ParticleSystemData2E", !11, i64 0, !12, i64 8, !12, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !14, i64 56, !18, i64 80, !22, i64 104, !25, i64 120}
!11 = !{!"_ZTSN3jet12SerializableE"}
!12 = !{!"double", !7, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!"_ZTSSt6vectorIN3jet5ArrayIdLm1EEESaIS2_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIN3jet5ArrayIdLm1EEESaIS2_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIN3jet5ArrayIdLm1EEESaIS2_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIN3jet5ArrayIdLm1EEESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!18 = !{!"_ZTSSt6vectorIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!22 = !{!"_ZTSSt10shared_ptrIN3jet22PointNeighborSearcher2EE", !23, i64 0}
!23 = !{!"_ZTSSt12__shared_ptrIN3jet22PointNeighborSearcher2ELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !24, i64 8}
!24 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!25 = !{!"_ZTSSt6vectorIS_ImSaImEESaIS1_EE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseISt6vectorImSaImEESaIS2_EE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseISt6vectorImSaImEESaIS2_EE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseISt6vectorImSaImEESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!29 = !{!10, !12, i64 16}
!30 = !{!10, !13, i64 32}
!31 = !{!10, !13, i64 40}
!32 = !{!10, !13, i64 48}
!33 = !{!12, !12, i64 0}
!34 = !{!35, !35, i64 0}
!35 = !{!"int", !7, i64 0}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}
!38 = distinct !{!38, !37}
!39 = !{!10, !13, i64 24}
!40 = !{!41, !41, i64 0}
!41 = !{!"vtable pointer", !8, i64 0}
!42 = distinct !{!42, !37}


; 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"

%"struct.flatbuffers::VectorIterator" = type { ptr }
%"class.jet::Array" = type { %"class.std::vector.13" }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::reverse_iterator" = type { %"class.__gnu_cxx::__normal_iterator" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.flatbuffers::VectorIterator.93" = type { ptr }
%"class.jet::Array.19" = type { %"class.std::vector.20" }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<jet::Vector<double, 2>, std::allocator<jet::Vector<double, 2>>>::_Vector_impl" }
%"struct.std::_Vector_base<jet::Vector<double, 2>, std::allocator<jet::Vector<double, 2>>>::_Vector_impl" = type { %"struct.std::_Vector_base<jet::Vector<double, 2>, std::allocator<jet::Vector<double, 2>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<jet::Vector<double, 2>, std::allocator<jet::Vector<double, 2>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.jet::Vector" = type { double, double }
%"class.std::reverse_iterator.95" = type { %"class.__gnu_cxx::__normal_iterator.18" }
%"class.__gnu_cxx::__normal_iterator.18" = type { ptr }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.32 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.32 = type { i64, [8 x i8] }
%"class.std::allocator.29" = type { i8 }
%"class.std::vector.49" = type { %"struct.std::_Vector_base.50" }
%"struct.std::_Vector_base.50" = 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 }
%"struct.flatbuffers::VectorIterator.98" = type { ptr }
%"class.std::allocator.51" = type { i8 }
%"struct.flatbuffers::VectorIterator.103" = type { ptr }

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3jet19ParticleSystemData229deserializeParticleSystemDataEPKNS_3fbs19ParticleSystemData2E(ptr noundef nonnull align 8 dereferenceable(144) %0, ptr noundef %1) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"struct.flatbuffers::VectorIterator", align 8
  %4 = alloca %"struct.flatbuffers::VectorIterator", align 8
  %5 = alloca %"class.jet::Array", align 8
  %6 = alloca double, align 8
  %7 = alloca %"class.std::reverse_iterator", align 8
  %8 = alloca %"struct.flatbuffers::VectorIterator.93", align 8
  %9 = alloca %"struct.flatbuffers::VectorIterator.93", align 8
  %10 = alloca %"class.jet::Array.19", align 8
  %11 = alloca %"class.jet::Vector", align 8
  %12 = alloca %"class.std::reverse_iterator.95", align 8
  %13 = alloca %"class.jet::Vector", align 8
  %14 = alloca %"class.std::shared_ptr", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.29", align 1
  %17 = alloca %"class.std::vector.49", align 8
  %18 = alloca %"struct.flatbuffers::VectorIterator.98", align 8
  %19 = alloca %"struct.flatbuffers::VectorIterator.98", align 8
  %20 = alloca %"class.std::allocator.51", align 1
  %21 = alloca %"struct.flatbuffers::VectorIterator.103", align 8
  %22 = alloca %"struct.flatbuffers::VectorIterator.103", align 8
  %23 = getelementptr inbounds i8, ptr %0, i64 56
  tail call void @_ZNSt6vectorIN3jet5ArrayIdLm1EEESaIS2_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #6
  %24 = getelementptr inbounds i8, ptr %0, i64 80
  tail call void @_ZNSt6vectorIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  %25 = tail call noundef double @_ZNK3jet3fbs19ParticleSystemData26radiusEv(ptr noundef nonnull align 1 dereferenceable(1) %1)
  %26 = getelementptr inbounds i8, ptr %0, i64 8
  store double %25, ptr %26, align 8, !tbaa !5
  %27 = tail call noundef double @_ZNK3jet3fbs19ParticleSystemData24massEv(ptr noundef nonnull align 1 dereferenceable(1) %1)
  %28 = getelementptr inbounds i8, ptr %0, i64 16
  store double %27, ptr %28, align 8, !tbaa !28
  %29 = tail call noundef i64 @_ZNK3jet3fbs19ParticleSystemData211positionIdxEv(ptr noundef nonnull align 1 dereferenceable(1) %1)
  %30 = getelementptr inbounds i8, ptr %0, i64 32
  store i64 %29, ptr %30, align 8, !tbaa !29
  %31 = tail call noundef i64 @_ZNK3jet3fbs19ParticleSystemData211velocityIdxEv(ptr noundef nonnull align 1 dereferenceable(1) %1)
  %32 = getelementptr inbounds i8, ptr %0, i64 40
  store i64 %31, ptr %32, align 8, !tbaa !30
  %33 = tail call noundef i64 @_ZNK3jet3fbs19ParticleSystemData28forceIdxEv(ptr noundef nonnull align 1 dereferenceable(1) %1)
  %34 = getelementptr inbounds i8, ptr %0, i64 48
  store i64 %33, ptr %34, align 8, !tbaa !31
  %35 = tail call noundef ptr @_ZNK3jet3fbs19ParticleSystemData214scalarDataListEv(ptr noundef nonnull align 1 dereferenceable(1) %1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #6
  call void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEE5beginEv(ptr dead_on_unwind nonnull writable sret(%"struct.flatbuffers::VectorIterator") align 8 %3, ptr noundef nonnull align 4 dereferenceable(4) %35)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #6
  call void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEE3endEv(ptr dead_on_unwind nonnull writable sret(%"struct.flatbuffers::VectorIterator") align 8 %4, ptr noundef nonnull align 4 dereferenceable(4) %35)
  %36 = call noundef zeroext i1 @_ZNK11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEPKS4_EneERKS8_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %4)
  br i1 %36, label %.lr.ph73, label %._crit_edge74

._crit_edge74:                                    ; preds = %._crit_edge, %2
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #6
  %37 = call noundef ptr @_ZNK3jet3fbs19ParticleSystemData214vectorDataListEv(ptr noundef nonnull align 1 dereferenceable(1) %1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #6
  call void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEE5beginEv(ptr dead_on_unwind nonnull writable sret(%"struct.flatbuffers::VectorIterator.93") align 8 %8, ptr noundef nonnull align 4 dereferenceable(4) %37)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #6
  call void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEE3endEv(ptr dead_on_unwind nonnull writable sret(%"struct.flatbuffers::VectorIterator.93") align 8 %9, ptr noundef nonnull align 4 dereferenceable(4) %37)
  %38 = call noundef zeroext i1 @_ZNK11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEPKS4_EneERKS8_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %9)
  br i1 %38, label %.lr.ph80, label %._crit_edge81

.lr.ph73:                                         ; preds = %2, %._crit_edge
  %39 = call noundef ptr @_ZNK11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEPKS4_EdeEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  %40 = call noundef ptr @_ZNK3jet3fbs19ScalarParticleData24dataEv(ptr noundef nonnull align 1 dereferenceable(1) %39)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #6
  %41 = call noundef i32 @_ZNK11flatbuffers6VectorIdE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %40)
  %42 = zext i32 %41 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #6
  store double 0.000000e+00, ptr %6, align 8, !tbaa !32
  call void @_ZN3jet5ArrayIdLm1EEC2EmRKd(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %42, ptr noundef nonnull align 8 dereferenceable(8) %6)
  invoke void @_ZNSt6vectorIN3jet5ArrayIdLm1EEESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %43 unwind label %48

43:                                               ; preds = %.lr.ph73
  call void @_ZN3jet5ArrayIdLm1EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #6
  call void @_ZNSt6vectorIN3jet5ArrayIdLm1EEESaIS2_EE6rbeginEv(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %7, ptr noundef nonnull align 8 dereferenceable(24) %23) #6
  %44 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPN3jet5ArrayIdLm1EEESt6vectorIS4_SaIS4_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  %45 = call noundef i32 @_ZNK11flatbuffers6VectorIdE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %40)
  %.not = icmp eq i32 %45, 0
  br i1 %.not, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %.lr.ph, %43
  %46 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEPKS4_EppEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  %47 = call noundef zeroext i1 @_ZNK11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEPKS4_EneERKS8_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %4)
  br i1 %47, label %.lr.ph73, label %._crit_edge74

48:                                               ; preds = %.lr.ph73
  %49 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3jet5ArrayIdLm1EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #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 8, ptr nonnull %3) #6
  br label %135

.lr.ph:                                           ; preds = %43, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %43 ]
  %50 = trunc nuw i64 %indvars.iv to i32
  %51 = call noundef double @_ZNK11flatbuffers6VectorIdE3GetEj(ptr noundef nonnull align 4 dereferenceable(4) %40, i32 noundef %50)
  %52 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3jet5ArrayIdLm1EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %indvars.iv)
  store double %51, ptr %52, align 8, !tbaa !32
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %53 = call noundef i32 @_ZNK11flatbuffers6VectorIdE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %40)
  %54 = zext i32 %53 to i64
  %55 = icmp ult i64 %indvars.iv.next, %54
  br i1 %55, label %.lr.ph, label %._crit_edge, !llvm.loop !33

._crit_edge81:                                    ; preds = %._crit_edge78, %._crit_edge74
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #6
  %56 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef 0) #6
  %57 = call noundef i64 @_ZNK3jet5ArrayINS_6VectorIdLm2EEELm1EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %56)
  %58 = getelementptr inbounds i8, ptr %0, i64 24
  store i64 %57, ptr %58, align 8, !tbaa !35
  %59 = call noundef ptr @_ZNK3jet3fbs19ParticleSystemData216neighborSearcherEv(ptr noundef nonnull align 1 dereferenceable(1) %1)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #6
  %60 = call noundef ptr @_ZNK3jet3fbs32PointNeighborSearcherSerialized24typeEv(ptr noundef nonnull align 1 dereferenceable(1) %59)
  %61 = call noundef ptr @_ZNK11flatbuffers6String5c_strEv(ptr noundef nonnull align 4 dereferenceable(4) %60)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef %61, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %80 unwind label %98

.lr.ph80:                                         ; preds = %._crit_edge74, %._crit_edge78
  %62 = call noundef ptr @_ZNK11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEPKS4_EdeEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
  %63 = call noundef ptr @_ZNK3jet3fbs19VectorParticleData24dataEv(ptr noundef nonnull align 1 dereferenceable(1) %62)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #6
  %64 = call noundef i32 @_ZNK11flatbuffers6VectorIPKN3jet3fbs8Vector2DEE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %63)
  %65 = zext i32 %64 to i64
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #6
  call void @_ZN3jet6VectorIdLm2EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11)
  call void @_ZN3jet5ArrayINS_6VectorIdLm2EEELm1EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %65, ptr noundef nonnull align 8 dereferenceable(16) %11)
  invoke void @_ZNSt6vectorIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE9push_backEOS4_(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %66 unwind label %71

66:                                               ; preds = %.lr.ph80
  call void @_ZN3jet5ArrayINS_6VectorIdLm2EEELm1EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  call void @_ZNSt6vectorIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE6rbeginEv(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator.95") align 8 %12, ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  %67 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPN3jet5ArrayINS2_6VectorIdLm2EEELm1EEESt6vectorIS6_SaIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %12)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  %68 = call noundef i32 @_ZNK11flatbuffers6VectorIPKN3jet3fbs8Vector2DEE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %63)
  %.not85 = icmp eq i32 %68, 0
  br i1 %.not85, label %._crit_edge78, label %.lr.ph77

._crit_edge78:                                    ; preds = %.lr.ph77, %66
  %69 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEPKS4_EppEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
  %70 = call noundef zeroext i1 @_ZNK11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEPKS4_EneERKS8_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %9)
  br i1 %70, label %.lr.ph80, label %._crit_edge81

71:                                               ; preds = %.lr.ph80
  %72 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3jet5ArrayINS_6VectorIdLm2EEELm1EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #6
  br label %135

.lr.ph77:                                         ; preds = %66, %.lr.ph77
  %indvars.iv88 = phi i64 [ %indvars.iv.next89, %.lr.ph77 ], [ 0, %66 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #6
  %73 = trunc nuw i64 %indvars.iv88 to i32
  %74 = call noundef ptr @_ZNK11flatbuffers6VectorIPKN3jet3fbs8Vector2DEE3GetEj(ptr noundef nonnull align 4 dereferenceable(4) %63, i32 noundef %73)
  call void @_ZN3jet8fbsToJetERKNS_3fbs8Vector2DE(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %13, ptr noundef nonnull align 8 dereferenceable(16) %74)
  %75 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3jet5ArrayINS_6VectorIdLm2EEELm1EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %67, i64 noundef %indvars.iv88)
  %76 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3jet6VectorIdLm2EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %75, ptr noundef nonnull align 8 dereferenceable(16) %13)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #6
  %indvars.iv.next89 = add nuw nsw i64 %indvars.iv88, 1
  %77 = call noundef i32 @_ZNK11flatbuffers6VectorIPKN3jet3fbs8Vector2DEE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %63)
  %78 = zext i32 %77 to i64
  %79 = icmp ult i64 %indvars.iv.next89, %78
  br i1 %79, label %.lr.ph77, label %._crit_edge78, !llvm.loop !36

80:                                               ; preds = %._crit_edge81
  invoke void @_ZN3jet7Factory27buildPointNeighborSearcher2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %81 unwind label %100

81:                                               ; preds = %80
  %82 = getelementptr inbounds i8, ptr %0, i64 104
  %83 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN3jet22PointNeighborSearcher2EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %82, ptr noundef nonnull align 8 dereferenceable(16) %14) #6
  call void @_ZNSt12__shared_ptrIN3jet22PointNeighborSearcher2ELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #6
  %84 = call noundef ptr @_ZNK3jet3fbs32PointNeighborSearcherSerialized24dataEv(ptr noundef nonnull align 1 dereferenceable(1) %59)
  call void @_ZNK11flatbuffers6VectorIhE5beginEv(ptr dead_on_unwind nonnull writable sret(%"struct.flatbuffers::VectorIterator.98") align 8 %18, ptr noundef nonnull align 4 dereferenceable(4) %84)
  %85 = call noundef ptr @_ZNK3jet3fbs32PointNeighborSearcherSerialized24dataEv(ptr noundef nonnull align 1 dereferenceable(1) %59)
  call void @_ZNK11flatbuffers6VectorIhE3endEv(ptr dead_on_unwind nonnull writable sret(%"struct.flatbuffers::VectorIterator.98") align 8 %19, ptr noundef nonnull align 4 dereferenceable(4) %85)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #6
  call void @_ZNSaIhEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  invoke void @_ZNSt6vectorIhSaIhEEC2IN11flatbuffers14VectorIteratorIhhEEvEET_S6_RKS0_(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %86 unwind label %103

86:                                               ; preds = %81
  call void @_ZNSt15__new_allocatorIhED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #6
  %87 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3jet22PointNeighborSearcher2ELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %82) #6
  %88 = load ptr, ptr %87, align 8, !tbaa !37
  %89 = getelementptr inbounds i8, ptr %88, i64 24
  %90 = load ptr, ptr %89, align 8
  invoke void %90(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %91 unwind label %105

91:                                               ; preds = %86
  %92 = invoke noundef ptr @_ZNK3jet3fbs19ParticleSystemData213neighborListsEv(ptr noundef nonnull align 1 dereferenceable(1) %1)
          to label %93 unwind label %107

93:                                               ; preds = %91
  %94 = getelementptr inbounds i8, ptr %0, i64 120
  %95 = call noundef i32 @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs21ParticleNeighborList2EEEE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %92)
  %96 = zext i32 %95 to i64
  invoke void @_ZNSt6vectorIS_ImSaImEESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef %96)
          to label %.preheader unwind label %107

.preheader:                                       ; preds = %93
  %97 = call noundef i32 @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs21ParticleNeighborList2EEEE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %92)
  %.not86 = icmp eq i32 %97, 0
  br i1 %.not86, label %._crit_edge84, label %.lr.ph83

._crit_edge84:                                    ; preds = %127, %.preheader
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #6
  ret void

98:                                               ; preds = %._crit_edge81
  %99 = landingpad { ptr, i32 }
          cleanup
  br label %102

100:                                              ; preds = %80
  %101 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %102

102:                                              ; preds = %100, %98
  %.pn = phi { ptr, i32 } [ %101, %100 ], [ %99, %98 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #6
  br label %135

103:                                              ; preds = %81
  %104 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIhED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #6
  br label %134

105:                                              ; preds = %86
  %106 = landingpad { ptr, i32 }
          cleanup
  br label %133

107:                                              ; preds = %93, %91
  %108 = landingpad { ptr, i32 }
          cleanup
  br label %133

.lr.ph83:                                         ; preds = %.preheader, %127
  %indvars.iv91 = phi i64 [ %indvars.iv.next92, %127 ], [ 0, %.preheader ]
  %109 = trunc nuw i64 %indvars.iv91 to i32
  %110 = invoke noundef ptr @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs21ParticleNeighborList2EEEE3GetEj(ptr noundef nonnull align 4 dereferenceable(4) %92, i32 noundef %109)
          to label %111 unwind label %131

111:                                              ; preds = %.lr.ph83
  %112 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ImSaImEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef %indvars.iv91) #6
  %113 = invoke noundef ptr @_ZNK3jet3fbs21ParticleNeighborList24dataEv(ptr noundef nonnull align 1 dereferenceable(1) %110)
          to label %114 unwind label %131

114:                                              ; preds = %111
  %115 = call noundef i32 @_ZNK11flatbuffers6VectorImE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %113)
  %116 = zext i32 %115 to i64
  invoke void @_ZNSt6vectorImSaImEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %112, i64 noundef %116)
          to label %117 unwind label %131

117:                                              ; preds = %114
  %118 = invoke noundef ptr @_ZNK3jet3fbs21ParticleNeighborList24dataEv(ptr noundef nonnull align 1 dereferenceable(1) %110)
          to label %119 unwind label %131

119:                                              ; preds = %117
  invoke void @_ZNK11flatbuffers6VectorImE5beginEv(ptr dead_on_unwind nonnull writable sret(%"struct.flatbuffers::VectorIterator.103") align 8 %21, ptr noundef nonnull align 4 dereferenceable(4) %118)
          to label %120 unwind label %131

120:                                              ; preds = %119
  %121 = invoke noundef ptr @_ZNK3jet3fbs21ParticleNeighborList24dataEv(ptr noundef nonnull align 1 dereferenceable(1) %110)
          to label %122 unwind label %131

122:                                              ; preds = %120
  invoke void @_ZNK11flatbuffers6VectorImE3endEv(ptr dead_on_unwind nonnull writable sret(%"struct.flatbuffers::VectorIterator.103") align 8 %22, ptr noundef nonnull align 4 dereferenceable(4) %121)
          to label %123 unwind label %131

123:                                              ; preds = %122
  %124 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ImSaImEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef %indvars.iv91) #6
  %125 = call ptr @_ZNSt6vectorImSaImEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %124) #6
  %126 = invoke ptr @"_ZSt9transformIN11flatbuffers14VectorIteratorImmEEN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEEZN3jet19ParticleSystemData229deserializeParticleSystemDataEPKNSA_3fbs19ParticleSystemData2EE3$_0ET0_T_SI_SH_T1_"(ptr noundef nonnull %21, ptr noundef nonnull %22, ptr %125)
          to label %127 unwind label %131

127:                                              ; preds = %123
  %indvars.iv.next92 = add nuw nsw i64 %indvars.iv91, 1
  %128 = call noundef i32 @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs21ParticleNeighborList2EEEE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4) %92)
  %129 = zext i32 %128 to i64
  %130 = icmp ult i64 %indvars.iv.next92, %129
  br i1 %130, label %.lr.ph83, label %._crit_edge84, !llvm.loop !39

131:                                              ; preds = %123, %122, %120, %119, %117, %114, %111, %.lr.ph83
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %133

133:                                              ; preds = %107, %131, %105
  %.pn62.pn = phi { ptr, i32 } [ %106, %105 ], [ %132, %131 ], [ %108, %107 ]
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  br label %134

134:                                              ; preds = %133, %103
  %.pn62.pn.pn = phi { ptr, i32 } [ %.pn62.pn, %133 ], [ %104, %103 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #6
  br label %135

135:                                              ; preds = %71, %134, %102, %48
  %.pn69 = phi { ptr, i32 } [ %49, %48 ], [ %72, %71 ], [ %.pn62.pn.pn, %134 ], [ %.pn, %102 ]
  resume { ptr, i32 } %.pn69
}

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK3jet3fbs19ParticleSystemData26radiusEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK3jet3fbs19ParticleSystemData24massEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK3jet3fbs19ParticleSystemData211positionIdxEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK3jet3fbs19ParticleSystemData211velocityIdxEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK3jet3fbs19ParticleSystemData28forceIdxEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEE5beginEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEE3endEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19ScalarParticleData2EEEPKS4_EneERKS8_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK11flatbuffers6VectorIdE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIN3jet5ArrayIdLm1EEESaIS2_EE6rbeginEv(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK11flatbuffers6VectorIdE3GetEj(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEE5beginEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator.93") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEE3endEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator.93") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK11flatbuffers14VectorIteratorINS_6OffsetIN3jet3fbs19VectorParticleData2EEEPKS4_EneERKS8_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK11flatbuffers6VectorIPKN3jet3fbs8Vector2DEE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE6rbeginEv(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator.95") align 8, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3jet8fbsToJetERKNS_3fbs8Vector2DE(ptr dead_on_unwind noalias writable sret(%"class.jet::Vector") align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4

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

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

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

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

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

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

declare void @_ZN3jet7Factory27buildPointNeighborSearcher2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorIhE5beginEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator.98") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorIhE3endEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator.98") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK11flatbuffers6VectorINS_6OffsetIN3jet3fbs21ParticleNeighborList2EEEE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK11flatbuffers6VectorImE4sizeEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden ptr @"_ZSt9transformIN11flatbuffers14VectorIteratorImmEEN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEEZN3jet19ParticleSystemData229deserializeParticleSystemDataEPKNSA_3fbs19ParticleSystemData2EE3$_0ET0_T_SI_SH_T1_"(ptr noundef, ptr noundef, ptr) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorImE5beginEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator.103") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK11flatbuffers6VectorImE3endEv(ptr dead_on_unwind noalias writable sret(%"struct.flatbuffers::VectorIterator.103") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { inlinehint mustprogress 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 #3 = { 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 #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 = { "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, !8, i64 8}
!6 = !{!"_ZTSN3jet19ParticleSystemData2E", !7, i64 0, !8, i64 8, !8, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !12, i64 56, !17, i64 80, !21, i64 104, !24, i64 120}
!7 = !{!"_ZTSN3jet12SerializableE"}
!8 = !{!"double", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"long", !9, i64 0}
!12 = !{!"_ZTSSt6vectorIN3jet5ArrayIdLm1EEESaIS2_EE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIN3jet5ArrayIdLm1EEESaIS2_EE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIN3jet5ArrayIdLm1EEESaIS2_EE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIN3jet5ArrayIdLm1EEESaIS2_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!16 = !{!"any pointer", !9, i64 0}
!17 = !{!"_ZTSSt6vectorIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIN3jet5ArrayINS0_6VectorIdLm2EEELm1EEESaIS4_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!21 = !{!"_ZTSSt10shared_ptrIN3jet22PointNeighborSearcher2EE", !22, i64 0}
!22 = !{!"_ZTSSt12__shared_ptrIN3jet22PointNeighborSearcher2ELN9__gnu_cxx12_Lock_policyE2EE", !16, i64 0, !23, i64 8}
!23 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !16, i64 0}
!24 = !{!"_ZTSSt6vectorIS_ImSaImEESaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseISt6vectorImSaImEESaIS2_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseISt6vectorImSaImEESaIS2_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseISt6vectorImSaImEESaIS2_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!28 = !{!6, !8, i64 16}
!29 = !{!6, !11, i64 32}
!30 = !{!6, !11, i64 40}
!31 = !{!6, !11, i64 48}
!32 = !{!8, !8, i64 0}
!33 = distinct !{!33, !34}
!34 = !{!"llvm.loop.mustprogress"}
!35 = !{!6, !11, i64 24}
!36 = distinct !{!36, !34}
!37 = !{!38, !38, i64 0}
!38 = !{!"vtable pointer", !10, i64 0}
!39 = distinct !{!39, !34}


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