; LLVM IR from sp-nitech/SPTK :: third_party/REAPER/epoch_tracker (epoch_tracker)

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

%"class.sptk::reaper::EpochTracker" = type <{ ptr, %"class.std::vector", %"class.std::vector.0", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", float, float, float, i32, i32, i32, %"class.std::__cxx11::basic_string", float, float, float, float, i8, i8, [2 x i8], float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, [4 x i8] }>
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<sptk::reaper::EpochTracker::ResidPeak, std::allocator<sptk::reaper::EpochTracker::ResidPeak>>::_Vector_impl" }
%"struct.std::_Vector_base<sptk::reaper::EpochTracker::ResidPeak, std::allocator<sptk::reaper::EpochTracker::ResidPeak>>::_Vector_impl" = type { %"struct.std::_Vector_base<sptk::reaper::EpochTracker::ResidPeak, std::allocator<sptk::reaper::EpochTracker::ResidPeak>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sptk::reaper::EpochTracker::ResidPeak, std::allocator<sptk::reaper::EpochTracker::ResidPeak>>::_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<sptk::reaper::EpochTracker::TrackerResults, std::allocator<sptk::reaper::EpochTracker::TrackerResults>>::_Vector_impl" }
%"struct.std::_Vector_base<sptk::reaper::EpochTracker::TrackerResults, std::allocator<sptk::reaper::EpochTracker::TrackerResults>>::_Vector_impl" = type { %"struct.std::_Vector_base<sptk::reaper::EpochTracker::TrackerResults, std::allocator<sptk::reaper::EpochTracker::TrackerResults>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sptk::reaper::EpochTracker::TrackerResults, std::allocator<sptk::reaper::EpochTracker::TrackerResults>>::_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<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }

@_ZN4sptk6reaperL10kDebugNameE = external hidden constant [1 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4sptk6reaper12EpochTracker13SetParametersEv(ptr noundef nonnull align 8 dereferenceable(500) %0) #0 align 2 {
  %2 = alloca ptr, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %3 = load ptr, ptr %2, align 8
  %4 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 20
  store float 0x3F747AE140000000, ptr %4, align 8, !tbaa !9
  %5 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 24
  store i8 1, ptr %5, align 8, !tbaa !29
  %6 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 25
  store i8 0, ptr %6, align 1, !tbaa !30
  %7 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 23
  store float 5.000000e+02, ptr %7, align 4, !tbaa !31
  %8 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 22
  store float 4.000000e+01, ptr %8, align 8, !tbaa !32
  %9 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 21
  store float 0x3F847AE140000000, ptr %9, align 4, !tbaa !33
  %10 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 19
  %11 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @_ZN4sptk6reaperL10kDebugNameE)
  %12 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 27
  store float 0x3F60624DE0000000, ptr %12, align 4, !tbaa !34
  %13 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 28
  store float 8.000000e+01, ptr %13, align 8, !tbaa !35
  %14 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 29
  store float 0x3FA99999A0000000, ptr %14, align 4, !tbaa !36
  %15 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 30
  store float 0x3F947AE140000000, ptr %15, align 8, !tbaa !37
  %16 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 31
  store float 0x3F847AE140000000, ptr %16, align 4, !tbaa !38
  %17 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 32
  store float 0x3FEF5C2900000000, ptr %17, align 8, !tbaa !39
  %18 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 33
  store float 7.000000e+01, ptr %18, align 4, !tbaa !40
  %19 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 34
  store float 0x3F3A36E2E0000000, ptr %19, align 8, !tbaa !41
  %20 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 35
  store float 0x3F23A92A40000000, ptr %20, align 4, !tbaa !42
  %21 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 36
  store float 0x3FB99999A0000000, ptr %21, align 8, !tbaa !43
  %22 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 37
  store float 0x3FD3333340000000, ptr %22, align 4, !tbaa !44
  %23 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 38
  store float 0x3FB99999A0000000, ptr %23, align 8, !tbaa !45
  %24 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 39
  store float 0x3F847AE140000000, ptr %24, align 4, !tbaa !46
  %25 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 40
  store float 0x3F947AE140000000, ptr %25, align 8, !tbaa !47
  %26 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 41
  store float 3.000000e+01, ptr %26, align 4, !tbaa !48
  %27 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 42
  store float 2.000000e+01, ptr %27, align 8, !tbaa !49
  %28 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 43
  store float 0x3F947AE140000000, ptr %28, align 4, !tbaa !50
  %29 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 44
  store float 1.000000e+02, ptr %29, align 8, !tbaa !51
  %30 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 45
  store float 1.000000e+03, ptr %30, align 4, !tbaa !52
  %31 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 46
  store float 0x3F999999A0000000, ptr %31, align 8, !tbaa !53
  %32 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 47
  store float 0x3F7EB851E0000000, ptr %32, align 4, !tbaa !54
  %33 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 48
  store float 0x3FC99999A0000000, ptr %33, align 8, !tbaa !55
  %34 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 49
  store float -1.500000e+00, ptr %34, align 4, !tbaa !56
  %35 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 50
  store float 1.000000e+00, ptr %35, align 8, !tbaa !57
  %36 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 51
  store float 0x3FF4CCCCC0000000, ptr %36, align 4, !tbaa !58
  %37 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 52
  store float 0x3FECCCCCC0000000, ptr %37, align 8, !tbaa !59
  %38 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 53
  store float 0x3FECCCCCC0000000, ptr %38, align 4, !tbaa !60
  %39 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 54
  store float 0x3F2A36E2E0000000, ptr %39, align 8, !tbaa !61
  %40 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 55
  store float 0x3FE99999A0000000, ptr %40, align 4, !tbaa !62
  %41 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 56
  store float 0x3FFCCCCCC0000000, ptr %41, align 8, !tbaa !63
  %42 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 57
  store float 0x3FF6666660000000, ptr %42, align 4, !tbaa !64
  %43 = getelementptr inbounds %"class.sptk::reaper::EpochTracker", ptr %3, i32 0, i32 58
  store float 0x3F847AE140000000, ptr %43, align 8, !tbaa !65
  ret void
}

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }

!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, !23, i64 352}
!10 = !{!"_ZTSN4sptk6reaper12EpochTrackerE", !11, i64 8, !15, i64 32, !19, i64 56, !19, i64 80, !19, i64 104, !19, i64 128, !19, i64 152, !19, i64 176, !19, i64 200, !19, i64 224, !19, i64 248, !19, i64 272, !23, i64 296, !23, i64 300, !23, i64 304, !24, i64 308, !24, i64 312, !24, i64 316, !25, i64 320, !23, i64 352, !23, i64 356, !23, i64 360, !23, i64 364, !28, i64 368, !28, i64 369, !23, i64 372, !23, i64 376, !23, i64 380, !23, i64 384, !23, i64 388, !23, i64 392, !23, i64 396, !23, i64 400, !23, i64 404, !23, i64 408, !23, i64 412, !23, i64 416, !23, i64 420, !23, i64 424, !23, i64 428, !23, i64 432, !23, i64 436, !23, i64 440, !23, i64 444, !23, i64 448, !23, i64 452, !23, i64 456, !23, i64 460, !23, i64 464, !23, i64 468, !23, i64 472, !23, i64 476, !23, i64 480, !23, i64 484, !23, i64 488, !23, i64 492, !23, i64 496}
!11 = !{!"_ZTSSt6vectorIN4sptk6reaper12EpochTracker9ResidPeakESaIS3_EE", !12, i64 0}
!12 = !{!"_ZTSSt12_Vector_baseIN4sptk6reaper12EpochTracker9ResidPeakESaIS3_EE", !13, i64 0}
!13 = !{!"_ZTSNSt12_Vector_baseIN4sptk6reaper12EpochTracker9ResidPeakESaIS3_EE12_Vector_implE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIN4sptk6reaper12EpochTracker9ResidPeakESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!15 = !{!"_ZTSSt6vectorIN4sptk6reaper12EpochTracker14TrackerResultsESaIS3_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIN4sptk6reaper12EpochTracker14TrackerResultsESaIS3_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIN4sptk6reaper12EpochTracker14TrackerResultsESaIS3_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIN4sptk6reaper12EpochTracker14TrackerResultsESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!"_ZTSSt6vectorIfSaIfEE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIfSaIfEE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!23 = !{!"float", !7, i64 0}
!24 = !{!"int", !7, i64 0}
!25 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !26, i64 0, !27, i64 8, !7, i64 16}
!26 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!27 = !{!"long", !7, i64 0}
!28 = !{!"bool", !7, i64 0}
!29 = !{!10, !28, i64 368}
!30 = !{!10, !28, i64 369}
!31 = !{!10, !23, i64 364}
!32 = !{!10, !23, i64 360}
!33 = !{!10, !23, i64 356}
!34 = !{!10, !23, i64 372}
!35 = !{!10, !23, i64 376}
!36 = !{!10, !23, i64 380}
!37 = !{!10, !23, i64 384}
!38 = !{!10, !23, i64 388}
!39 = !{!10, !23, i64 392}
!40 = !{!10, !23, i64 396}
!41 = !{!10, !23, i64 400}
!42 = !{!10, !23, i64 404}
!43 = !{!10, !23, i64 408}
!44 = !{!10, !23, i64 412}
!45 = !{!10, !23, i64 416}
!46 = !{!10, !23, i64 420}
!47 = !{!10, !23, i64 424}
!48 = !{!10, !23, i64 428}
!49 = !{!10, !23, i64 432}
!50 = !{!10, !23, i64 436}
!51 = !{!10, !23, i64 440}
!52 = !{!10, !23, i64 444}
!53 = !{!10, !23, i64 448}
!54 = !{!10, !23, i64 452}
!55 = !{!10, !23, i64 456}
!56 = !{!10, !23, i64 460}
!57 = !{!10, !23, i64 464}
!58 = !{!10, !23, i64 468}
!59 = !{!10, !23, i64 472}
!60 = !{!10, !23, i64 476}
!61 = !{!10, !23, i64 480}
!62 = !{!10, !23, i64 484}
!63 = !{!10, !23, i64 488}
!64 = !{!10, !23, i64 492}
!65 = !{!10, !23, i64 496}


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

@_ZN4sptk6reaperL10kDebugNameE = external hidden constant [1 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4sptk6reaper12EpochTracker13SetParametersEv(ptr noundef nonnull align 8 dereferenceable(500) %0) local_unnamed_addr #0 align 2 {
  %2 = getelementptr inbounds i8, ptr %0, i64 352
  %3 = getelementptr inbounds i8, ptr %0, i64 368
  store i8 1, ptr %3, align 8, !tbaa !5
  %4 = getelementptr inbounds i8, ptr %0, i64 369
  store i8 0, ptr %4, align 1, !tbaa !28
  store <4 x float> <float 0x3F747AE140000000, float 0x3F847AE140000000, float 4.000000e+01, float 5.000000e+02>, ptr %2, align 8, !tbaa !29
  %5 = getelementptr inbounds i8, ptr %0, i64 320
  %6 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @_ZN4sptk6reaperL10kDebugNameE)
  %7 = getelementptr inbounds i8, ptr %0, i64 372
  store <4 x float> <float 0x3F60624DE0000000, float 8.000000e+01, float 0x3FA99999A0000000, float 0x3F947AE140000000>, ptr %7, align 4, !tbaa !29
  %8 = getelementptr inbounds i8, ptr %0, i64 388
  store <4 x float> <float 0x3F847AE140000000, float 0x3FEF5C2900000000, float 7.000000e+01, float 0x3F3A36E2E0000000>, ptr %8, align 4, !tbaa !29
  %9 = getelementptr inbounds i8, ptr %0, i64 404
  store <4 x float> <float 0x3F23A92A40000000, float 0x3FB99999A0000000, float 0x3FD3333340000000, float 0x3FB99999A0000000>, ptr %9, align 4, !tbaa !29
  %10 = getelementptr inbounds i8, ptr %0, i64 420
  store <4 x float> <float 0x3F847AE140000000, float 0x3F947AE140000000, float 3.000000e+01, float 2.000000e+01>, ptr %10, align 4, !tbaa !29
  %11 = getelementptr inbounds i8, ptr %0, i64 436
  store <4 x float> <float 0x3F947AE140000000, float 1.000000e+02, float 1.000000e+03, float 0x3F999999A0000000>, ptr %11, align 4, !tbaa !29
  %12 = getelementptr inbounds i8, ptr %0, i64 452
  store <4 x float> <float 0x3F7EB851E0000000, float 0x3FC99999A0000000, float -1.500000e+00, float 1.000000e+00>, ptr %12, align 4, !tbaa !29
  %13 = getelementptr inbounds i8, ptr %0, i64 468
  store <4 x float> <float 0x3FF4CCCCC0000000, float 0x3FECCCCCC0000000, float 0x3FECCCCCC0000000, float 0x3F2A36E2E0000000>, ptr %13, align 4, !tbaa !29
  %14 = getelementptr inbounds i8, ptr %0, i64 484
  store <4 x float> <float 0x3FE99999A0000000, float 0x3FFCCCCCC0000000, float 0x3FF6666660000000, float 0x3F847AE140000000>, ptr %14, align 4, !tbaa !29
  ret void
}

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }

!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, !27, i64 368}
!6 = !{!"_ZTSN4sptk6reaper12EpochTrackerE", !7, i64 8, !14, i64 32, !18, i64 56, !18, i64 80, !18, i64 104, !18, i64 128, !18, i64 152, !18, i64 176, !18, i64 200, !18, i64 224, !18, i64 248, !18, i64 272, !22, i64 296, !22, i64 300, !22, i64 304, !23, i64 308, !23, i64 312, !23, i64 316, !24, i64 320, !22, i64 352, !22, i64 356, !22, i64 360, !22, i64 364, !27, i64 368, !27, i64 369, !22, i64 372, !22, i64 376, !22, i64 380, !22, i64 384, !22, i64 388, !22, i64 392, !22, i64 396, !22, i64 400, !22, i64 404, !22, i64 408, !22, i64 412, !22, i64 416, !22, i64 420, !22, i64 424, !22, i64 428, !22, i64 432, !22, i64 436, !22, i64 440, !22, i64 444, !22, i64 448, !22, i64 452, !22, i64 456, !22, i64 460, !22, i64 464, !22, i64 468, !22, i64 472, !22, i64 476, !22, i64 480, !22, i64 484, !22, i64 488, !22, i64 492, !22, i64 496}
!7 = !{!"_ZTSSt6vectorIN4sptk6reaper12EpochTracker9ResidPeakESaIS3_EE", !8, i64 0}
!8 = !{!"_ZTSSt12_Vector_baseIN4sptk6reaper12EpochTracker9ResidPeakESaIS3_EE", !9, i64 0}
!9 = !{!"_ZTSNSt12_Vector_baseIN4sptk6reaper12EpochTracker9ResidPeakESaIS3_EE12_Vector_implE", !10, i64 0}
!10 = !{!"_ZTSNSt12_Vector_baseIN4sptk6reaper12EpochTracker9ResidPeakESaIS3_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!11 = !{!"any pointer", !12, i64 0}
!12 = !{!"omnipotent char", !13, i64 0}
!13 = !{!"Simple C++ TBAA"}
!14 = !{!"_ZTSSt6vectorIN4sptk6reaper12EpochTracker14TrackerResultsESaIS3_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIN4sptk6reaper12EpochTracker14TrackerResultsESaIS3_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIN4sptk6reaper12EpochTracker14TrackerResultsESaIS3_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIN4sptk6reaper12EpochTracker14TrackerResultsESaIS3_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!18 = !{!"_ZTSSt6vectorIfSaIfEE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseIfSaIfEE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!22 = !{!"float", !12, i64 0}
!23 = !{!"int", !12, i64 0}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !25, i64 0, !26, i64 8, !12, i64 16}
!25 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !11, i64 0}
!26 = !{!"long", !12, i64 0}
!27 = !{!"bool", !12, i64 0}
!28 = !{!6, !27, i64 369}
!29 = !{!22, !22, i64 0}


; Effective O3 passes: GlobalOptPass,InstCombinePass,SLPVectorizerPass,SROAPass,TailCallElimPass