; LLVM IR from NVIDIA/DALI :: dali/operators/reader/loader (sequence_loader)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.dali::DALIMeta" = type <{ %"class.dali::TensorLayout", %"class.std::__cxx11::basic_string", i8, [7 x i8] }>
%"class.dali::TensorLayout" = type { [16 x i8] }
%"class.dali::AccessOrder" = type <{ ptr, i32, [4 x i8] }>
%"struct.dali::TensorShape" = type { %"struct.dali::TensorShapeBase" }
%"struct.dali::TensorShapeBase" = type { %"class.dali::SmallVector" }
%"class.dali::SmallVector" = type { %union.anon.45, i64 }
%union.anon.45 = type { %struct.anon, [32 x i8] }
%struct.anon = type { ptr, i64 }
%"struct.dali::FileStream::Options" = type { i8, i8, i8 }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.47" }
%"struct.std::_Head_base.47" = type { ptr }
%"class.std::optional" = type { %"struct.std::_Optional_base" }
%"struct.std::_Optional_base" = type { %"struct.std::_Optional_payload" }
%"struct.std::_Optional_payload" = type { %"struct.std::_Optional_payload_base.base", [7 x i8] }
%"struct.std::_Optional_payload_base.base" = type <{ %"union.std::_Optional_payload_base<unsigned long>::_Storage", i8 }>
%"union.std::_Optional_payload_base<unsigned long>::_Storage" = type { i64 }
%"struct.std::nullopt_t" = type { i8 }
%"class.std::allocator.0" = type { i8 }
%"class.std::shared_ptr.42" = type { %"class.std::__shared_ptr.43" }
%"class.std::__shared_ptr.43" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.dali::CUDASharedEvent" = type { %"class.std::shared_ptr.42" }
%"class.dali::Loader" = type { ptr, %"class.std::vector.25", %"class.std::vector.30", i8, i32, i32, i32, %"class.std::linear_congruential_engine", i64, %"class.std::mutex", i32, i32, i8, i8, i8, i32, i8, %"class.std::mutex", i8, i8, %"class.dali::once_flag", %"class.std::shared_ptr", i64, i8, i8, i8, i32, i32, i32, %"struct.dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::IndexedLoadTargetSharedPtr", %"class.std::deque", i8, i64, i64, %"struct.dali::LoaderStateSnapshot" }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = type { %"struct.std::_Vector_base<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::IndexedLoadTargetSharedPtr, std::allocator<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::IndexedLoadTargetSharedPtr>>::_Vector_impl" }
%"struct.std::_Vector_base<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::IndexedLoadTargetSharedPtr, std::allocator<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::IndexedLoadTargetSharedPtr>>::_Vector_impl" = type { %"struct.std::_Vector_base<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::IndexedLoadTargetSharedPtr, std::allocator<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::IndexedLoadTargetSharedPtr>>::_Vector_impl_data" }
%"struct.std::_Vector_base<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::IndexedLoadTargetSharedPtr, std::allocator<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::IndexedLoadTargetSharedPtr>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.30" = type { %"struct.std::_Vector_base.31" }
%"struct.std::_Vector_base.31" = type { %"struct.std::_Vector_base<std::unique_ptr<dali::TensorSequence>, std::allocator<std::unique_ptr<dali::TensorSequence>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<dali::TensorSequence>, std::allocator<std::unique_ptr<dali::TensorSequence>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<dali::TensorSequence>, std::allocator<std::unique_ptr<dali::TensorSequence>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<dali::TensorSequence>, std::allocator<std::unique_ptr<dali::TensorSequence>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::linear_congruential_engine" = type { i64 }
%"class.std::mutex" = type { %"class.std::__mutex_base" }
%"class.std::__mutex_base" = type { %union.pthread_mutex_t }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.dali::once_flag" = type { i8, %"class.std::mutex" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"struct.dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::IndexedLoadTargetSharedPtr" = type { i64, %"class.std::shared_ptr.35" }
%"class.std::shared_ptr.35" = type { %"class.std::__shared_ptr.36" }
%"class.std::__shared_ptr.36" = type { ptr, %"class.std::__shared_count" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::ShardBoundaries, std::allocator<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::ShardBoundaries>>::_Deque_impl" }
%"struct.std::_Deque_base<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::ShardBoundaries, std::allocator<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::ShardBoundaries>>::_Deque_impl" = type { %"struct.std::_Deque_base<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::ShardBoundaries, std::allocator<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::ShardBoundaries>>::_Deque_impl_data" }
%"struct.std::_Deque_base<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::ShardBoundaries, std::allocator<dali::Loader<dali::CPUBackend, dali::TensorSequence, true>::ShardBoundaries>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"struct.dali::LoaderStateSnapshot" = type { %"class.std::linear_congruential_engine", i32, i64 }

@.str.34 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZTIN4dali13DALIExceptionE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.41 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [100 x i8], align 1

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

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

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

declare 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 void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) 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: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #2

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

declare ptr @__cxa_allocate_exception(i64)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4dali11make_stringIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_DpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4dali13GetStacktraceB5cxx11Ev(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8) #3

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

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

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @__cxa_free_exception(ptr)

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4dali14SequenceLoader9LoadFrameERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EElPNS_6TensorINS_10CPUBackendEEE(ptr noundef nonnull align 8 dereferenceable(556) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %2, ptr noundef %3) #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i64, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.dali::DALIMeta", align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.dali::AccessOrder", align 8
  %14 = alloca %"struct.dali::TensorShape", align 8
  %15 = alloca i32, align 4
  %16 = alloca %"struct.dali::FileStream::Options", align 1
  %17 = alloca %"class.std::unique_ptr", align 8
  %18 = alloca %"struct.dali::FileStream::Options", align 1
  %19 = alloca %"class.std::optional", align 8
  %20 = alloca %"struct.std::nullopt_t", align 1
  %21 = alloca i24, align 4
  %22 = alloca i64, align 8
  %23 = alloca %"class.dali::AccessOrder", align 8
  %24 = alloca %"struct.dali::TensorShape", align 8
  %25 = alloca i64, align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator.0", align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator.0", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca i1, align 1
  %37 = alloca %"class.std::shared_ptr.42", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator.0", align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator.0", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca i1, align 1
  %49 = alloca %"class.std::shared_ptr.42", align 8
  %50 = alloca %"struct.dali::TensorShape", align 8
  %51 = alloca %"class.dali::AccessOrder", align 8
  %52 = alloca %"class.dali::CUDASharedEvent", align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store i64 %2, ptr %7, align 8, !tbaa !9
  store ptr %3, ptr %8, align 8, !tbaa !5
  %53 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #8
  %54 = load ptr, ptr %6, align 8, !tbaa !5
  %55 = load i64, ptr %7, align 8, !tbaa !9
  %56 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %54, i64 noundef %55) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %56)
  call void @llvm.lifetime.start.p0(i64 56, ptr %10) #8
  invoke void @_ZN4dali8DALIMetaC2Ev(ptr noundef nonnull align 8 dereferenceable(49) %10)
          to label %57 unwind label %75

57:                                               ; preds = %4
  invoke void @_ZN4dali8DALIMeta13SetSourceInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(49) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %58 unwind label %79

58:                                               ; preds = %57
  invoke void @_ZN4dali8DALIMeta13SetSkipSampleEb(ptr noundef nonnull align 8 dereferenceable(49) %10, i1 noundef zeroext false)
          to label %59 unwind label %79

59:                                               ; preds = %58
  %60 = invoke noundef zeroext i1 @_ZN4dali6LoaderINS_10CPUBackendENS_14TensorSequenceELb1EE15ShouldSkipImageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(440) %53, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %61 unwind label %79

61:                                               ; preds = %59
  br i1 %60, label %62, label %92

62:                                               ; preds = %61
  invoke void @_ZN4dali8DALIMeta13SetSkipSampleEb(ptr noundef nonnull align 8 dereferenceable(49) %10, i1 noundef zeroext true)
          to label %63 unwind label %79

63:                                               ; preds = %62
  %64 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memset.p0.i64(ptr align 8 %13, i8 0, i64 16, i1 false)
  call void @_ZN4dali11AccessOrderC2Ev(ptr noundef nonnull align 8 dereferenceable(12) %13) #8
  %65 = getelementptr inbounds { ptr, i32 }, ptr %13, i32 0, i32 0
  %66 = load ptr, ptr %65, align 8
  %67 = getelementptr inbounds { ptr, i32 }, ptr %13, i32 0, i32 1
  %68 = load i32, ptr %67, align 8
  invoke void @_ZN4dali6TensorINS_10CPUBackendEE5ResetENS_11AccessOrderE(ptr noundef nonnull align 8 dereferenceable(272) %64, ptr %66, i32 %68)
          to label %69 unwind label %79

69:                                               ; preds = %63
  %70 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN4dali6TensorINS_10CPUBackendEE7SetMetaERKNS_8DALIMetaE(ptr noundef nonnull align 8 dereferenceable(272) %70, ptr noundef nonnull align 8 dereferenceable(49) %10)
          to label %71 unwind label %79

71:                                               ; preds = %69
  %72 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 56, ptr %14) #8
  invoke void @_ZN4dali11TensorShapeILin1EEC2IJEvEElDpT_(ptr noundef nonnull align 8 dereferenceable(56) %14, i64 noundef 0)
          to label %73 unwind label %83

73:                                               ; preds = %71
  invoke void @_ZN4dali6TensorINS_10CPUBackendEE6ResizeERKNS_11TensorShapeILin1EEE13_DALIDataType(ptr noundef nonnull align 8 dereferenceable(272) %72, ptr noundef nonnull align 8 dereferenceable(56) %14, i32 noundef 0)
          to label %74 unwind label %87

74:                                               ; preds = %73
  call void @_ZN4dali15TensorShapeBaseINS_11SmallVectorIlLm6ESaIlEEELin1EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %14) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %14) #8
  store i32 1, ptr %15, align 4
  br label %352

75:                                               ; preds = %4
  %76 = landingpad { ptr, i32 }
          cleanup
  %77 = extractvalue { ptr, i32 } %76, 0
  store ptr %77, ptr %11, align 8
  %78 = extractvalue { ptr, i32 } %76, 1
  store i32 %78, ptr %12, align 4
  br label %358

79:                                               ; preds = %69, %63, %62, %59, %58, %57
  %80 = landingpad { ptr, i32 }
          cleanup
  %81 = extractvalue { ptr, i32 } %80, 0
  store ptr %81, ptr %11, align 8
  %82 = extractvalue { ptr, i32 } %80, 1
  store i32 %82, ptr %12, align 4
  br label %357

83:                                               ; preds = %71
  %84 = landingpad { ptr, i32 }
          cleanup
  %85 = extractvalue { ptr, i32 } %84, 0
  store ptr %85, ptr %11, align 8
  %86 = extractvalue { ptr, i32 } %84, 1
  store i32 %86, ptr %12, align 4
  br label %91

87:                                               ; preds = %73
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %11, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %12, align 4
  call void @_ZN4dali15TensorShapeBaseINS_11SmallVectorIlLm6ESaIlEEELin1EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %14) #8
  br label %91

91:                                               ; preds = %87, %83
  call void @llvm.lifetime.end.p0(i64 56, ptr %14) #8
  br label %357

92:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 3, ptr %16) #8
  %93 = getelementptr inbounds %"class.dali::Loader", ptr %53, i32 0, i32 13
  %94 = load i8, ptr %93, align 1, !tbaa !11, !range !39, !noundef !40
  %95 = trunc i8 %94 to i1
  %96 = getelementptr inbounds %"struct.dali::FileStream::Options", ptr %16, i32 0, i32 0
  %97 = zext i1 %95 to i8
  store i8 %97, ptr %96, align 1, !tbaa !41
  %98 = getelementptr inbounds %"class.dali::Loader", ptr %53, i32 0, i32 12
  %99 = load i8, ptr %98, align 8, !tbaa !43, !range !39, !noundef !40
  %100 = trunc i8 %99 to i1
  %101 = xor i1 %100, true
  %102 = getelementptr inbounds %"struct.dali::FileStream::Options", ptr %16, i32 0, i32 1
  %103 = zext i1 %101 to i8
  store i8 %103, ptr %102, align 1, !tbaa !44
  %104 = getelementptr inbounds %"struct.dali::FileStream::Options", ptr %16, i32 0, i32 2
  store i8 0, ptr %104, align 1, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %18, ptr align 1 %16, i64 3, i1 false), !tbaa.struct !46
  call void @_ZNSt8optionalImEC2ESt9nullopt_t(ptr noundef nonnull align 8 dereferenceable(16) %19) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %21, ptr align 1 %18, i64 3, i1 false)
  %105 = load i24, ptr %21, align 4
  %106 = getelementptr inbounds { i64, i8 }, ptr %19, i32 0, i32 0
  %107 = load i64, ptr %106, align 8
  %108 = getelementptr inbounds { i64, i8 }, ptr %19, i32 0, i32 1
  %109 = load i8, ptr %108, align 8
  invoke void @_ZN4dali10FileStream4OpenERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_7OptionsESt8optionalImE(ptr dead_on_unwind writable sret(%"class.std::unique_ptr") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %9, i24 %105, i64 %107, i8 %109)
          to label %110 unwind label %138

110:                                              ; preds = %92
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %111 = call noundef ptr @_ZNKSt10unique_ptrIN4dali10FileStreamESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %112 = load ptr, ptr %111, align 8, !tbaa !48
  %113 = getelementptr inbounds ptr, ptr %112, i64 5
  %114 = load ptr, ptr %113, align 8
  %115 = invoke noundef i64 %114(ptr noundef nonnull align 8 dereferenceable(8) %111)
          to label %116 unwind label %142

116:                                              ; preds = %110
  store i64 %115, ptr %22, align 8, !tbaa !9
  %117 = getelementptr inbounds %"class.dali::Loader", ptr %53, i32 0, i32 12
  %118 = load i8, ptr %117, align 8, !tbaa !43, !range !39, !noundef !40
  %119 = trunc i8 %118 to i1
  br i1 %119, label %127, label %120

120:                                              ; preds = %116
  %121 = call noundef ptr @_ZNKSt10unique_ptrIN4dali10FileStreamESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %122 = load ptr, ptr %121, align 8, !tbaa !48
  %123 = getelementptr inbounds ptr, ptr %122, i64 7
  %124 = load ptr, ptr %123, align 8
  %125 = invoke noundef zeroext i1 %124(ptr noundef nonnull align 8 dereferenceable(40) %121)
          to label %126 unwind label %142

126:                                              ; preds = %120
  br i1 %125, label %247, label %127

127:                                              ; preds = %126, %116
  %128 = load ptr, ptr %8, align 8, !tbaa !5
  %129 = invoke noundef zeroext i1 @_ZNK4dali6BufferINS_10CPUBackendEE11shares_dataEv(ptr noundef nonnull align 8 dereferenceable(138) %128)
          to label %130 unwind label %142

130:                                              ; preds = %127
  br i1 %129, label %131, label %146

131:                                              ; preds = %130
  %132 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memset.p0.i64(ptr align 8 %23, i8 0, i64 16, i1 false)
  call void @_ZN4dali11AccessOrderC2Ev(ptr noundef nonnull align 8 dereferenceable(12) %23) #8
  %133 = getelementptr inbounds { ptr, i32 }, ptr %23, i32 0, i32 0
  %134 = load ptr, ptr %133, align 8
  %135 = getelementptr inbounds { ptr, i32 }, ptr %23, i32 0, i32 1
  %136 = load i32, ptr %135, align 8
  invoke void @_ZN4dali6TensorINS_10CPUBackendEE5ResetENS_11AccessOrderE(ptr noundef nonnull align 8 dereferenceable(272) %132, ptr %134, i32 %136)
          to label %137 unwind label %142

137:                                              ; preds = %131
  br label %146

138:                                              ; preds = %92
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %11, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %12, align 4
  br label %356

142:                                              ; preds = %346, %344, %131, %127, %120, %110
  %143 = landingpad { ptr, i32 }
          cleanup
  %144 = extractvalue { ptr, i32 } %143, 0
  store ptr %144, ptr %11, align 8
  %145 = extractvalue { ptr, i32 } %143, 1
  store i32 %145, ptr %12, align 4
  br label %355

146:                                              ; preds = %137, %130
  %147 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 56, ptr %24) #8
  %148 = load i64, ptr %22, align 8, !tbaa !9
  invoke void @_ZN4dali11TensorShapeILin1EEC2IJEvEElDpT_(ptr noundef nonnull align 8 dereferenceable(56) %24, i64 noundef %148)
          to label %149 unwind label %178

149:                                              ; preds = %146
  invoke void @_ZN4dali6TensorINS_10CPUBackendEE6ResizeERKNS_11TensorShapeILin1EEE13_DALIDataType(ptr noundef nonnull align 8 dereferenceable(272) %147, ptr noundef nonnull align 8 dereferenceable(56) %24, i32 noundef 0)
          to label %150 unwind label %182

150:                                              ; preds = %149
  call void @_ZN4dali15TensorShapeBaseINS_11SmallVectorIlLm6ESaIlEEELin1EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %24) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %24) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %151 = call noundef ptr @_ZNKSt10unique_ptrIN4dali10FileStreamESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %152 = load ptr, ptr %8, align 8, !tbaa !5
  %153 = invoke noundef ptr @_ZN4dali6BufferINS_10CPUBackendEE12mutable_dataIhEEPT_v(ptr noundef nonnull align 8 dereferenceable(138) %152)
          to label %154 unwind label %187

154:                                              ; preds = %150
  %155 = load i64, ptr %22, align 8, !tbaa !9
  %156 = load ptr, ptr %151, align 8, !tbaa !48
  %157 = getelementptr inbounds ptr, ptr %156, i64 2
  %158 = load ptr, ptr %157, align 8
  %159 = invoke noundef i64 %158(ptr noundef nonnull align 8 dereferenceable(8) %151, ptr noundef %153, i64 noundef %155)
          to label %160 unwind label %187

160:                                              ; preds = %154
  store i64 %159, ptr %25, align 8, !tbaa !9
  br label %161

161:                                              ; preds = %160
  %162 = load i64, ptr %25, align 8, !tbaa !9
  %163 = load i64, ptr %22, align 8, !tbaa !9
  %164 = icmp eq i64 %162, %163
  br i1 %164, label %243, label %165

165:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %166 unwind label %191

166:                                              ; preds = %165
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @.str.41)
          to label %167 unwind label %195

167:                                              ; preds = %166
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef @.str.36)
          to label %168 unwind label %199

168:                                              ; preds = %167
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #8
  invoke void @_ZN4dali11make_stringIJA22_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES7_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 1 dereferenceable(22) @.str.42, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %169 unwind label %205

169:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef @.str.39, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %170 unwind label %209

170:                                              ; preds = %169
  %171 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %172 unwind label %213

172:                                              ; preds = %170
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  store i1 true, ptr %36, align 1
  %173 = call ptr @__cxa_allocate_exception(i64 80) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #8
  invoke void @_ZN4dali11make_stringIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %174 unwind label %218

174:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %175 unwind label %222

175:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #8
  invoke void @_ZN4dali13GetStacktraceB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35)
          to label %176 unwind label %226

176:                                              ; preds = %175
  invoke void @_ZN4dali13DALIExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S8_(ptr noundef nonnull align 8 dereferenceable(80) %173, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef %33, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %177 unwind label %230

177:                                              ; preds = %176
  store i1 false, ptr %36, align 1
  invoke void @__cxa_throw(ptr %173, ptr @_ZTIN4dali13DALIExceptionE, ptr @_ZN4dali13DALIExceptionD2Ev) #9
          to label %364 unwind label %230

178:                                              ; preds = %146
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  store ptr %180, ptr %11, align 8
  %181 = extractvalue { ptr, i32 } %179, 1
  store i32 %181, ptr %12, align 4
  br label %186

182:                                              ; preds = %149
  %183 = landingpad { ptr, i32 }
          cleanup
  %184 = extractvalue { ptr, i32 } %183, 0
  store ptr %184, ptr %11, align 8
  %185 = extractvalue { ptr, i32 } %183, 1
  store i32 %185, ptr %12, align 4
  call void @_ZN4dali15TensorShapeBaseINS_11SmallVectorIlLm6ESaIlEEELin1EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %24) #8
  br label %186

186:                                              ; preds = %182, %178
  call void @llvm.lifetime.end.p0(i64 56, ptr %24) #8
  br label %355

187:                                              ; preds = %154, %150
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %11, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %12, align 4
  br label %246

191:                                              ; preds = %165
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %11, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %12, align 4
  br label %204

195:                                              ; preds = %166
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %11, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %12, align 4
  br label %203

199:                                              ; preds = %167
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %11, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %203

203:                                              ; preds = %199, %195
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  br label %204

204:                                              ; preds = %203, %191
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  br label %242

205:                                              ; preds = %168
  %206 = landingpad { ptr, i32 }
          cleanup
  %207 = extractvalue { ptr, i32 } %206, 0
  store ptr %207, ptr %11, align 8
  %208 = extractvalue { ptr, i32 } %206, 1
  store i32 %208, ptr %12, align 4
  br label %241

209:                                              ; preds = %169
  %210 = landingpad { ptr, i32 }
          cleanup
  %211 = extractvalue { ptr, i32 } %210, 0
  store ptr %211, ptr %11, align 8
  %212 = extractvalue { ptr, i32 } %210, 1
  store i32 %212, ptr %12, align 4
  br label %217

213:                                              ; preds = %170
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %11, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %217

217:                                              ; preds = %213, %209
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  br label %240

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

222:                                              ; preds = %174
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %11, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %12, align 4
  br label %235

226:                                              ; preds = %175
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %11, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %12, align 4
  br label %234

230:                                              ; preds = %177, %176
  %231 = landingpad { ptr, i32 }
          cleanup
  %232 = extractvalue { ptr, i32 } %231, 0
  store ptr %232, ptr %11, align 8
  %233 = extractvalue { ptr, i32 } %231, 1
  store i32 %233, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  br label %234

234:                                              ; preds = %230, %226
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  br label %235

235:                                              ; preds = %234, %222
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  br label %236

236:                                              ; preds = %235, %218
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #8
  %237 = load i1, ptr %36, align 1
  br i1 %237, label %238, label %239

238:                                              ; preds = %236
  call void @__cxa_free_exception(ptr %173) #8
  br label %239

239:                                              ; preds = %238, %236
  br label %240

240:                                              ; preds = %239, %217
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %241

241:                                              ; preds = %240, %205
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %242

242:                                              ; preds = %241, %204
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  br label %246

243:                                              ; preds = %161
  br label %244

244:                                              ; preds = %243
  br label %245

245:                                              ; preds = %244
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %344

246:                                              ; preds = %242, %187
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %355

247:                                              ; preds = %126
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #8
  %248 = call noundef ptr @_ZNKSt10unique_ptrIN4dali10FileStreamESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %249 = load i64, ptr %22, align 8, !tbaa !9
  %250 = load ptr, ptr %248, align 8, !tbaa !48
  %251 = getelementptr inbounds ptr, ptr %250, i64 8
  %252 = load ptr, ptr %251, align 8
  invoke void %252(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.42") align 8 %37, ptr noundef nonnull align 8 dereferenceable(40) %248, i64 noundef %249)
          to label %253 unwind label %269

253:                                              ; preds = %247
  br label %254

254:                                              ; preds = %253
  %255 = call noundef zeroext i1 @_ZStneIvEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr null) #8
  br i1 %255, label %325, label %256

256:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %257 unwind label %273

257:                                              ; preds = %256
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.44)
          to label %258 unwind label %277

258:                                              ; preds = %257
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.36)
          to label %259 unwind label %281

259:                                              ; preds = %258
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #8
  invoke void @_ZN4dali11make_stringIJA22_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES7_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 1 dereferenceable(22) @.str.42, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %260 unwind label %287

260:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef @.str.39, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %261 unwind label %291

261:                                              ; preds = %260
  %262 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %263 unwind label %295

263:                                              ; preds = %261
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  store i1 true, ptr %48, align 1
  %264 = call ptr @__cxa_allocate_exception(i64 80) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #8
  invoke void @_ZN4dali11make_stringIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %265 unwind label %300

265:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %266 unwind label %304

266:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #8
  invoke void @_ZN4dali13GetStacktraceB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %47)
          to label %267 unwind label %308

267:                                              ; preds = %266
  invoke void @_ZN4dali13DALIExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S8_(ptr noundef nonnull align 8 dereferenceable(80) %264, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef %45, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %268 unwind label %312

268:                                              ; preds = %267
  store i1 false, ptr %48, align 1
  invoke void @__cxa_throw(ptr %264, ptr @_ZTIN4dali13DALIExceptionE, ptr @_ZN4dali13DALIExceptionD2Ev) #9
          to label %364 unwind label %312

269:                                              ; preds = %247
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %11, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %12, align 4
  br label %343

273:                                              ; preds = %256
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %11, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %12, align 4
  br label %286

277:                                              ; preds = %257
  %278 = landingpad { ptr, i32 }
          cleanup
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %11, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %12, align 4
  br label %285

281:                                              ; preds = %258
  %282 = landingpad { ptr, i32 }
          cleanup
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %11, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  br label %285

285:                                              ; preds = %281, %277
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  br label %286

286:                                              ; preds = %285, %273
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  br label %324

287:                                              ; preds = %259
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %11, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %12, align 4
  br label %323

291:                                              ; preds = %260
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %11, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %12, align 4
  br label %299

295:                                              ; preds = %261
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %11, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  br label %299

299:                                              ; preds = %295, %291
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  br label %322

300:                                              ; preds = %263
  %301 = landingpad { ptr, i32 }
          cleanup
  %302 = extractvalue { ptr, i32 } %301, 0
  store ptr %302, ptr %11, align 8
  %303 = extractvalue { ptr, i32 } %301, 1
  store i32 %303, ptr %12, align 4
  br label %318

304:                                              ; preds = %265
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %11, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %12, align 4
  br label %317

308:                                              ; preds = %266
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %11, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %12, align 4
  br label %316

312:                                              ; preds = %268, %267
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %11, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  br label %316

316:                                              ; preds = %312, %308
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  br label %317

317:                                              ; preds = %316, %304
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  br label %318

318:                                              ; preds = %317, %300
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  %319 = load i1, ptr %48, align 1
  br i1 %319, label %320, label %321

320:                                              ; preds = %318
  call void @__cxa_free_exception(ptr %264) #8
  br label %321

321:                                              ; preds = %320, %318
  br label %322

322:                                              ; preds = %321, %299
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  br label %323

323:                                              ; preds = %322, %287
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %324

324:                                              ; preds = %323, %286
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  br label %342

325:                                              ; preds = %254
  br label %326

326:                                              ; preds = %325
  br label %327

327:                                              ; preds = %326
  %328 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrIvEC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull align 8 dereferenceable(16) %37) #8
  %329 = load i64, ptr %22, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 56, ptr %50) #8
  %330 = load i64, ptr %22, align 8, !tbaa !9
  invoke void @_ZN4dali11TensorShapeILin1EEC2IJEvEElDpT_(ptr noundef nonnull align 8 dereferenceable(56) %50, i64 noundef %330)
          to label %331 unwind label %333

331:                                              ; preds = %327
  call void @llvm.memset.p0.i64(ptr align 8 %51, i8 0, i64 16, i1 false)
  call void @_ZN4dali11AccessOrderC2Ev(ptr noundef nonnull align 8 dereferenceable(12) %51) #8
  call void @llvm.memset.p0.i64(ptr align 8 %52, i8 0, i64 16, i1 false)
  call void @_ZN4dali15CUDASharedEventC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #8
  invoke void @_ZN4dali6TensorINS_10CPUBackendEE9ShareDataESt10shared_ptrIvEmbRKNS_11TensorShapeILin1EEE13_DALIDataTypeiNS_11AccessOrderENS_15CUDASharedEventE(ptr noundef nonnull align 8 dereferenceable(272) %328, ptr noundef %49, i64 noundef %329, i1 noundef zeroext false, ptr noundef nonnull align 8 dereferenceable(56) %50, i32 noundef 0, i32 noundef -99999, ptr noundef byval(%"class.dali::AccessOrder") align 8 %51, ptr noundef %52)
          to label %332 unwind label %337

332:                                              ; preds = %331
  call void @_ZN4dali15CUDASharedEventD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #8
  call void @_ZN4dali15TensorShapeBaseINS_11SmallVectorIlLm6ESaIlEEELin1EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %50) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %50) #8
  call void @_ZNSt12__shared_ptrIvLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #8
  call void @_ZNSt12__shared_ptrIvLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #8
  br label %344

333:                                              ; preds = %327
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %11, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %12, align 4
  br label %341

337:                                              ; preds = %331
  %338 = landingpad { ptr, i32 }
          cleanup
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %11, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %12, align 4
  call void @_ZN4dali15CUDASharedEventD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #8
  call void @_ZN4dali15TensorShapeBaseINS_11SmallVectorIlLm6ESaIlEEELin1EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %50) #8
  br label %341

341:                                              ; preds = %337, %333
  call void @llvm.lifetime.end.p0(i64 56, ptr %50) #8
  call void @_ZNSt12__shared_ptrIvLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #8
  br label %342

342:                                              ; preds = %341, %324
  call void @_ZNSt12__shared_ptrIvLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #8
  br label %343

343:                                              ; preds = %342, %269
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #8
  br label %355

344:                                              ; preds = %332, %245
  %345 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN4dali6TensorINS_10CPUBackendEE7SetMetaERKNS_8DALIMetaE(ptr noundef nonnull align 8 dereferenceable(272) %345, ptr noundef nonnull align 8 dereferenceable(49) %10)
          to label %346 unwind label %142

346:                                              ; preds = %344
  %347 = call noundef ptr @_ZNKSt10unique_ptrIN4dali10FileStreamESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %348 = load ptr, ptr %347, align 8, !tbaa !48
  %349 = getelementptr inbounds ptr, ptr %348, i64 6
  %350 = load ptr, ptr %349, align 8
  invoke void %350(ptr noundef nonnull align 8 dereferenceable(40) %347)
          to label %351 unwind label %142

351:                                              ; preds = %346
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @_ZNSt10unique_ptrIN4dali10FileStreamESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 3, ptr %16) #8
  store i32 0, ptr %15, align 4
  br label %352

352:                                              ; preds = %351, %74
  call void @_ZN4dali8DALIMetaD2Ev(ptr noundef nonnull align 8 dereferenceable(49) %10) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #8
  %353 = load i32, ptr %15, align 4
  switch i32 %353, label %364 [
    i32 0, label %354
    i32 1, label %354
  ]

354:                                              ; preds = %352, %352
  ret void

355:                                              ; preds = %343, %246, %186, %142
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @_ZNSt10unique_ptrIN4dali10FileStreamESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  br label %356

356:                                              ; preds = %355, %138
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 3, ptr %16) #8
  br label %357

357:                                              ; preds = %356, %91, %79
  call void @_ZN4dali8DALIMetaD2Ev(ptr noundef nonnull align 8 dereferenceable(49) %10) #8
  br label %358

358:                                              ; preds = %357, %75
  call void @llvm.lifetime.end.p0(i64 56, ptr %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #8
  br label %359

359:                                              ; preds = %358
  %360 = load ptr, ptr %11, align 8
  %361 = load i32, ptr %12, align 4
  %362 = insertvalue { ptr, i32 } poison, ptr %360, 0
  %363 = insertvalue { ptr, i32 } %362, i32 %361, 1
  resume { ptr, i32 } %363

364:                                              ; preds = %352, %268, %177
  unreachable
}

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4dali8DALIMeta13SetSourceInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(49), ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4dali8DALIMeta13SetSkipSampleEb(ptr noundef nonnull align 8 dereferenceable(49), i1 noundef zeroext) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4dali6LoaderINS_10CPUBackendENS_14TensorSequenceELb1EE15ShouldSkipImageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(440), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4dali6TensorINS_10CPUBackendEE5ResetENS_11AccessOrderE(ptr noundef nonnull align 8 dereferenceable(272), ptr, i32) #3 align 2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4dali6TensorINS_10CPUBackendEE7SetMetaERKNS_8DALIMetaE(ptr noundef nonnull align 8 dereferenceable(272), ptr noundef nonnull align 8 dereferenceable(49)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4dali6TensorINS_10CPUBackendEE6ResizeERKNS_11TensorShapeILin1EEE13_DALIDataType(ptr noundef nonnull align 8 dereferenceable(272), ptr noundef nonnull align 8 dereferenceable(56), i32 noundef) #3 align 2

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

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

declare void @_ZN4dali10FileStream4OpenERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_7OptionsESt8optionalImE(ptr dead_on_unwind writable sret(%"class.std::unique_ptr") align 8, ptr noundef nonnull align 8 dereferenceable(32), i24, i64, i8) #6

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4dali6BufferINS_10CPUBackendEE11shares_dataEv(ptr noundef nonnull align 8 dereferenceable(138)) #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4dali11make_stringIJA22_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES7_DpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 1 dereferenceable(22), ptr noundef nonnull align 8 dereferenceable(32)) #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4dali6TensorINS_10CPUBackendEE9ShareDataESt10shared_ptrIvEmbRKNS_11TensorShapeILin1EEE13_DALIDataTypeiNS_11AccessOrderENS_15CUDASharedEventE(ptr noundef nonnull align 8 dereferenceable(272), ptr noundef, i64 noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef, ptr noundef byval(%"class.dali::AccessOrder") align 8, ptr noundef) #3 align 2

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !21, i64 137}
!12 = !{!"_ZTSN4dali6LoaderINS_10CPUBackendENS_14TensorSequenceELb1EEE", !13, i64 8, !17, i64 32, !21, i64 56, !22, i64 60, !22, i64 64, !22, i64 68, !23, i64 72, !10, i64 80, !24, i64 88, !22, i64 128, !22, i64 132, !21, i64 136, !21, i64 137, !21, i64 138, !22, i64 140, !21, i64 144, !24, i64 152, !21, i64 192, !21, i64 193, !26, i64 200, !27, i64 248, !10, i64 264, !21, i64 272, !21, i64 273, !21, i64 274, !22, i64 276, !22, i64 280, !22, i64 284, !30, i64 288, !33, i64 312, !21, i64 392, !10, i64 400, !10, i64 408, !38, i64 416}
!13 = !{!"_ZTSSt6vectorIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE26IndexedLoadTargetSharedPtrESaIS5_EE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE26IndexedLoadTargetSharedPtrESaIS5_EE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE26IndexedLoadTargetSharedPtrESaIS5_EE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE26IndexedLoadTargetSharedPtrESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!17 = !{!"_ZTSSt6vectorISt10unique_ptrIN4dali14TensorSequenceESt14default_deleteIS2_EESaIS5_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN4dali14TensorSequenceESt14default_deleteIS2_EESaIS5_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN4dali14TensorSequenceESt14default_deleteIS2_EESaIS5_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN4dali14TensorSequenceESt14default_deleteIS2_EESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!21 = !{!"bool", !7, i64 0}
!22 = !{!"int", !7, i64 0}
!23 = !{!"_ZTSSt26linear_congruential_engineImLm16807ELm0ELm2147483647EE", !10, i64 0}
!24 = !{!"_ZTSSt5mutex", !25, i64 0}
!25 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!26 = !{!"_ZTSN4dali9once_flagE", !21, i64 0, !24, i64 8}
!27 = !{!"_ZTSSt10shared_ptrIN4dali10ImageCacheEE", !28, i64 0}
!28 = !{!"_ZTSSt12__shared_ptrIN4dali10ImageCacheELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !29, i64 8}
!29 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!30 = !{!"_ZTSN4dali6LoaderINS_10CPUBackendENS_14TensorSequenceELb1EE26IndexedLoadTargetSharedPtrE", !10, i64 0, !31, i64 8}
!31 = !{!"_ZTSSt10shared_ptrIN4dali14TensorSequenceEE", !32, i64 0}
!32 = !{!"_ZTSSt12__shared_ptrIN4dali14TensorSequenceELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !29, i64 8}
!33 = !{!"_ZTSSt5dequeIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE15ShardBoundariesESaIS5_EE", !34, i64 0}
!34 = !{!"_ZTSSt11_Deque_baseIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE15ShardBoundariesESaIS5_EE", !35, i64 0}
!35 = !{!"_ZTSNSt11_Deque_baseIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE15ShardBoundariesESaIS5_EE11_Deque_implE", !36, i64 0}
!36 = !{!"_ZTSNSt11_Deque_baseIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE15ShardBoundariesESaIS5_EE16_Deque_impl_dataE", !6, i64 0, !10, i64 8, !37, i64 16, !37, i64 48}
!37 = !{!"_ZTSSt15_Deque_iteratorIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE15ShardBoundariesERS5_PS5_E", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!38 = !{!"_ZTSN4dali19LoaderStateSnapshotE", !23, i64 0, !22, i64 8, !10, i64 16}
!39 = !{i8 0, i8 2}
!40 = !{}
!41 = !{!42, !21, i64 0}
!42 = !{!"_ZTSN4dali10FileStream7OptionsE", !21, i64 0, !21, i64 1, !21, i64 2}
!43 = !{!12, !21, i64 136}
!44 = !{!42, !21, i64 1}
!45 = !{!42, !21, i64 2}
!46 = !{i64 0, i64 1, !47, i64 1, i64 1, !47, i64 2, i64 1, !47}
!47 = !{!21, !21, i64 0}
!48 = !{!49, !49, i64 0}
!49 = !{!"vtable pointer", !8, i64 0}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.dali::DALIMeta" = type <{ %"class.dali::TensorLayout", %"class.std::__cxx11::basic_string", i8, [7 x i8] }>
%"class.dali::TensorLayout" = type { [16 x i8] }
%"class.dali::AccessOrder" = type <{ ptr, i32, [4 x i8] }>
%"struct.dali::TensorShape" = type { %"struct.dali::TensorShapeBase" }
%"struct.dali::TensorShapeBase" = type { %"class.dali::SmallVector" }
%"class.dali::SmallVector" = type { %union.anon.45, i64 }
%union.anon.45 = type { %struct.anon, [32 x i8] }
%struct.anon = type { ptr, i64 }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.47" }
%"struct.std::_Head_base.47" = type { ptr }
%"class.std::optional" = type { %"struct.std::_Optional_base" }
%"struct.std::_Optional_base" = type { %"struct.std::_Optional_payload" }
%"struct.std::_Optional_payload" = type { %"struct.std::_Optional_payload_base.base", [7 x i8] }
%"struct.std::_Optional_payload_base.base" = type <{ %"union.std::_Optional_payload_base<unsigned long>::_Storage", i8 }>
%"union.std::_Optional_payload_base<unsigned long>::_Storage" = type { i64 }
%"class.std::allocator.0" = type { i8 }
%"class.std::shared_ptr.42" = type { %"class.std::__shared_ptr.43" }
%"class.std::__shared_ptr.43" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.dali::CUDASharedEvent" = type { %"class.std::shared_ptr.42" }

@.str.34 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZTIN4dali13DALIExceptionE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.41 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [100 x i8], align 1

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

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

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

declare 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 void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) 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: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4dali11make_stringIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_DpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4dali13GetStacktraceB5cxx11Ev(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8) local_unnamed_addr #3

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

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

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4dali14SequenceLoader9LoadFrameERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EElPNS_6TensorINS_10CPUBackendEEE(ptr noundef nonnull align 8 dereferenceable(556) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %2, ptr noundef %3) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.dali::DALIMeta", align 8
  %7 = alloca %"class.dali::AccessOrder", align 8
  %8 = alloca %"struct.dali::TensorShape", align 8
  %9 = alloca %"class.std::unique_ptr", align 8
  %10 = alloca %"class.std::optional", align 8
  %11 = alloca %"class.dali::AccessOrder", align 8
  %12 = alloca %"struct.dali::TensorShape", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.0", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator.0", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::shared_ptr.42", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator.0", align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator.0", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::shared_ptr.42", align 8
  %35 = alloca %"struct.dali::TensorShape", align 8
  %36 = alloca %"class.dali::AccessOrder", align 8
  %37 = alloca %"class.dali::CUDASharedEvent", align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #7
  %38 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %2) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %38)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %6) #7
  invoke void @_ZN4dali8DALIMetaC2Ev(ptr noundef nonnull align 8 dereferenceable(49) %6)
          to label %39 unwind label %51

39:                                               ; preds = %4
  invoke void @_ZN4dali8DALIMeta13SetSourceInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(49) %6, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %40 unwind label %53

40:                                               ; preds = %39
  call void @_ZN4dali8DALIMeta13SetSkipSampleEb(ptr noundef nonnull align 8 dereferenceable(49) %6, i1 noundef zeroext false)
  %41 = invoke noundef zeroext i1 @_ZN4dali6LoaderINS_10CPUBackendENS_14TensorSequenceELb1EE15ShouldSkipImageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(440) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %42 unwind label %53

42:                                               ; preds = %40
  br i1 %41, label %43, label %60

43:                                               ; preds = %42
  call void @_ZN4dali8DALIMeta13SetSkipSampleEb(ptr noundef nonnull align 8 dereferenceable(49) %6, i1 noundef zeroext true)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %7, i8 0, i64 16, i1 false)
  call void @_ZN4dali11AccessOrderC2Ev(ptr noundef nonnull align 8 dereferenceable(12) %7) #7
  %44 = load ptr, ptr %7, align 8
  %45 = getelementptr inbounds i8, ptr %7, i64 8
  %46 = load i32, ptr %45, align 8
  invoke void @_ZN4dali6TensorINS_10CPUBackendEE5ResetENS_11AccessOrderE(ptr noundef nonnull align 8 dereferenceable(272) %3, ptr %44, i32 %46)
          to label %47 unwind label %53

47:                                               ; preds = %43
  invoke void @_ZN4dali6TensorINS_10CPUBackendEE7SetMetaERKNS_8DALIMetaE(ptr noundef nonnull align 8 dereferenceable(272) %3, ptr noundef nonnull align 8 dereferenceable(49) %6)
          to label %48 unwind label %53

48:                                               ; preds = %47
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %8) #7
  invoke void @_ZN4dali11TensorShapeILin1EEC2IJEvEElDpT_(ptr noundef nonnull align 8 dereferenceable(56) %8, i64 noundef 0)
          to label %49 unwind label %55

49:                                               ; preds = %48
  invoke void @_ZN4dali6TensorINS_10CPUBackendEE6ResizeERKNS_11TensorShapeILin1EEE13_DALIDataType(ptr noundef nonnull align 8 dereferenceable(272) %3, ptr noundef nonnull align 8 dereferenceable(56) %8, i32 noundef 0)
          to label %50 unwind label %57

50:                                               ; preds = %49
  call void @_ZN4dali15TensorShapeBaseINS_11SmallVectorIlLm6ESaIlEEELin1EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %8) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) #7
  br label %222

51:                                               ; preds = %4
  %52 = landingpad { ptr, i32 }
          cleanup
  br label %226

53:                                               ; preds = %47, %43, %40, %39
  %54 = landingpad { ptr, i32 }
          cleanup
  br label %225

55:                                               ; preds = %48
  %56 = landingpad { ptr, i32 }
          cleanup
  br label %59

57:                                               ; preds = %49
  %58 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4dali15TensorShapeBaseINS_11SmallVectorIlLm6ESaIlEEELin1EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %8) #7
  br label %59

59:                                               ; preds = %57, %55
  %.pn93 = phi { ptr, i32 } [ %58, %57 ], [ %56, %55 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) #7
  br label %225

60:                                               ; preds = %42
  %61 = getelementptr inbounds i8, ptr %0, i64 137
  %62 = load i8, ptr %61, align 1, !tbaa !5, !range !37, !noundef !38
  %63 = getelementptr inbounds i8, ptr %0, i64 136
  %64 = load i8, ptr %63, align 8, !tbaa !39, !range !37, !noundef !38
  %65 = xor i8 %64, 1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  %.sroa.5.0.insert.ext = zext nneg i8 %65 to i24
  %.sroa.5.0.insert.shift = shl nuw nsw i24 %.sroa.5.0.insert.ext, 8
  %.sroa.09.0.insert.ext = zext nneg i8 %62 to i24
  %.sroa.09.0.insert.insert = or disjoint i24 %.sroa.5.0.insert.shift, %.sroa.09.0.insert.ext
  call void @_ZNSt8optionalImEC2ESt9nullopt_t(ptr noundef nonnull align 8 dereferenceable(16) %10) #7
  %66 = load i64, ptr %10, align 8
  %67 = getelementptr inbounds i8, ptr %10, i64 8
  %68 = load i8, ptr %67, align 8
  invoke void @_ZN4dali10FileStream4OpenERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_7OptionsESt8optionalImE(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %5, i24 %.sroa.09.0.insert.insert, i64 %66, i8 %68)
          to label %69 unwind label %91

69:                                               ; preds = %60
  %70 = call noundef ptr @_ZNKSt10unique_ptrIN4dali10FileStreamESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  %71 = load ptr, ptr %70, align 8, !tbaa !40
  %72 = getelementptr inbounds i8, ptr %71, i64 40
  %73 = load ptr, ptr %72, align 8
  %74 = invoke noundef i64 %73(ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %75 unwind label %93

75:                                               ; preds = %69
  %76 = load i8, ptr %63, align 8, !tbaa !39, !range !37, !noundef !38
  %77 = trunc nuw i8 %76 to i1
  br i1 %77, label %85, label %78

78:                                               ; preds = %75
  %79 = call noundef ptr @_ZNKSt10unique_ptrIN4dali10FileStreamESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  %80 = load ptr, ptr %79, align 8, !tbaa !40
  %81 = getelementptr inbounds i8, ptr %80, i64 56
  %82 = load ptr, ptr %81, align 8
  %83 = invoke noundef zeroext i1 %82(ptr noundef nonnull align 8 dereferenceable(40) %79)
          to label %84 unwind label %93

84:                                               ; preds = %78
  br i1 %83, label %155, label %85

85:                                               ; preds = %84, %75
  %86 = call noundef zeroext i1 @_ZNK4dali6BufferINS_10CPUBackendEE11shares_dataEv(ptr noundef nonnull align 8 dereferenceable(138) %3)
  br i1 %86, label %87, label %95

87:                                               ; preds = %85
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %11, i8 0, i64 16, i1 false)
  call void @_ZN4dali11AccessOrderC2Ev(ptr noundef nonnull align 8 dereferenceable(12) %11) #7
  %88 = load ptr, ptr %11, align 8
  %89 = getelementptr inbounds i8, ptr %11, i64 8
  %90 = load i32, ptr %89, align 8
  invoke void @_ZN4dali6TensorINS_10CPUBackendEE5ResetENS_11AccessOrderE(ptr noundef nonnull align 8 dereferenceable(272) %3, ptr %88, i32 %90)
          to label %95 unwind label %93

91:                                               ; preds = %60
  %92 = landingpad { ptr, i32 }
          cleanup
  br label %224

93:                                               ; preds = %216, %215, %87, %78, %69
  %94 = landingpad { ptr, i32 }
          cleanup
  br label %223

95:                                               ; preds = %87, %85
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %12) #7
  invoke void @_ZN4dali11TensorShapeILin1EEC2IJEvEElDpT_(ptr noundef nonnull align 8 dereferenceable(56) %12, i64 noundef %74)
          to label %96 unwind label %120

96:                                               ; preds = %95
  invoke void @_ZN4dali6TensorINS_10CPUBackendEE6ResizeERKNS_11TensorShapeILin1EEE13_DALIDataType(ptr noundef nonnull align 8 dereferenceable(272) %3, ptr noundef nonnull align 8 dereferenceable(56) %12, i32 noundef 0)
          to label %97 unwind label %122

97:                                               ; preds = %96
  call void @_ZN4dali15TensorShapeBaseINS_11SmallVectorIlLm6ESaIlEEELin1EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %12) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %12) #7
  %98 = call noundef ptr @_ZNKSt10unique_ptrIN4dali10FileStreamESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  %99 = invoke noundef ptr @_ZN4dali6BufferINS_10CPUBackendEE12mutable_dataIhEEPT_v(ptr noundef nonnull align 8 dereferenceable(138) %3)
          to label %100 unwind label %125

100:                                              ; preds = %97
  %101 = load ptr, ptr %98, align 8, !tbaa !40
  %102 = getelementptr inbounds i8, ptr %101, i64 16
  %103 = load ptr, ptr %102, align 8
  %104 = invoke noundef i64 %103(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef %99, i64 noundef %74)
          to label %105 unwind label %125

105:                                              ; preds = %100
  %106 = icmp eq i64 %104, %74
  br i1 %106, label %215, label %107

107:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %108 unwind label %127

108:                                              ; preds = %107
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.41)
          to label %109 unwind label %129

109:                                              ; preds = %108
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.36)
          to label %110 unwind label %131

110:                                              ; preds = %109
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  invoke void @_ZN4dali11make_stringIJA22_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES7_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 1 dereferenceable(22) @.str.42, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %111 unwind label %135

111:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull @.str.39, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %112 unwind label %137

112:                                              ; preds = %111
  %113 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %114 unwind label %139

114:                                              ; preds = %112
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  %115 = call ptr @__cxa_allocate_exception(i64 80) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  invoke void @_ZN4dali11make_stringIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %116 unwind label %.thread

116:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %117 unwind label %143

117:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #7
  invoke void @_ZN4dali13GetStacktraceB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22)
          to label %118 unwind label %145

118:                                              ; preds = %117
  invoke void @_ZN4dali13DALIExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S8_(ptr noundef nonnull align 8 dereferenceable(80) %115, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull %20, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %119 unwind label %147

119:                                              ; preds = %118
  invoke void @__cxa_throw(ptr nonnull %115, ptr nonnull @_ZTIN4dali13DALIExceptionE, ptr nonnull @_ZN4dali13DALIExceptionD2Ev) #8
          to label %227 unwind label %147

120:                                              ; preds = %95
  %121 = landingpad { ptr, i32 }
          cleanup
  br label %124

122:                                              ; preds = %96
  %123 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4dali15TensorShapeBaseINS_11SmallVectorIlLm6ESaIlEEELin1EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %12) #7
  br label %124

124:                                              ; preds = %122, %120
  %.pn75 = phi { ptr, i32 } [ %123, %122 ], [ %121, %120 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %12) #7
  br label %223

125:                                              ; preds = %100, %97
  %126 = landingpad { ptr, i32 }
          cleanup
  br label %223

127:                                              ; preds = %107
  %128 = landingpad { ptr, i32 }
          cleanup
  br label %134

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

131:                                              ; preds = %109
  %132 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %133

133:                                              ; preds = %131, %129
  %.pn77 = phi { ptr, i32 } [ %132, %131 ], [ %130, %129 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %134

134:                                              ; preds = %133, %127
  %.pn77.pn = phi { ptr, i32 } [ %.pn77, %133 ], [ %128, %127 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  br label %154

135:                                              ; preds = %110
  %136 = landingpad { ptr, i32 }
          cleanup
  br label %153

137:                                              ; preds = %111
  %138 = landingpad { ptr, i32 }
          cleanup
  br label %141

139:                                              ; preds = %112
  %140 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %141

141:                                              ; preds = %139, %137
  %.pn80 = phi { ptr, i32 } [ %140, %139 ], [ %138, %137 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  br label %152

.thread:                                          ; preds = %114
  %142 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %151

143:                                              ; preds = %116
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %150

145:                                              ; preds = %117
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %149

147:                                              ; preds = %119, %118
  %.024 = phi i1 [ false, %119 ], [ true, %118 ]
  %148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %149

149:                                              ; preds = %147, %145
  %.pn82 = phi { ptr, i32 } [ %148, %147 ], [ %146, %145 ]
  %.125 = phi i1 [ %.024, %147 ], [ true, %145 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %150

150:                                              ; preds = %143, %149
  %.pn82.pn = phi { ptr, i32 } [ %.pn82, %149 ], [ %144, %143 ]
  %.226 = phi i1 [ %.125, %149 ], [ true, %143 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br i1 %.226, label %151, label %152

151:                                              ; preds = %.thread, %150
  %.pn82.pn.pn99 = phi { ptr, i32 } [ %142, %.thread ], [ %.pn82.pn, %150 ]
  call void @__cxa_free_exception(ptr %115) #7
  br label %152

152:                                              ; preds = %150, %151, %141
  %.pn82.pn.pn.pn = phi { ptr, i32 } [ %.pn82.pn.pn99, %151 ], [ %.pn82.pn, %150 ], [ %.pn80, %141 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %153

153:                                              ; preds = %152, %135
  %.pn82.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn82.pn.pn.pn, %152 ], [ %136, %135 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %154

154:                                              ; preds = %153, %134
  %.pn82.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn82.pn.pn.pn.pn, %153 ], [ %.pn77.pn, %134 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  br label %223

155:                                              ; preds = %84
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #7
  %156 = call noundef ptr @_ZNKSt10unique_ptrIN4dali10FileStreamESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  %157 = load ptr, ptr %156, align 8, !tbaa !40
  %158 = getelementptr inbounds i8, ptr %157, i64 64
  %159 = load ptr, ptr %158, align 8
  invoke void %159(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.42") align 8 %23, ptr noundef nonnull align 8 dereferenceable(40) %156, i64 noundef %74)
          to label %160 unwind label %175

160:                                              ; preds = %155
  %161 = call noundef zeroext i1 @_ZStneIvEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr null) #7
  br i1 %161, label %205, label %162

162:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %163 unwind label %177

163:                                              ; preds = %162
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.44)
          to label %164 unwind label %179

164:                                              ; preds = %163
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.36)
          to label %165 unwind label %181

165:                                              ; preds = %164
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #7
  invoke void @_ZN4dali11make_stringIJA22_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES7_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 1 dereferenceable(22) @.str.42, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %166 unwind label %185

166:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull @.str.39, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %167 unwind label %187

167:                                              ; preds = %166
  %168 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %169 unwind label %189

169:                                              ; preds = %167
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  %170 = call ptr @__cxa_allocate_exception(i64 80) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #7
  invoke void @_ZN4dali11make_stringIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %171 unwind label %.thread100

171:                                              ; preds = %169
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %172 unwind label %193

172:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #7
  invoke void @_ZN4dali13GetStacktraceB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33)
          to label %173 unwind label %195

173:                                              ; preds = %172
  invoke void @_ZN4dali13DALIExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S8_(ptr noundef nonnull align 8 dereferenceable(80) %170, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull %31, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %174 unwind label %197

174:                                              ; preds = %173
  invoke void @__cxa_throw(ptr nonnull %170, ptr nonnull @_ZTIN4dali13DALIExceptionE, ptr nonnull @_ZN4dali13DALIExceptionD2Ev) #8
          to label %227 unwind label %197

175:                                              ; preds = %155
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %214

177:                                              ; preds = %162
  %178 = landingpad { ptr, i32 }
          cleanup
  br label %184

179:                                              ; preds = %163
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %183

181:                                              ; preds = %164
  %182 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %183

183:                                              ; preds = %181, %179
  %.pn = phi { ptr, i32 } [ %182, %181 ], [ %180, %179 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %184

184:                                              ; preds = %183, %177
  %.pn.pn = phi { ptr, i32 } [ %.pn, %183 ], [ %178, %177 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  br label %204

185:                                              ; preds = %165
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %203

187:                                              ; preds = %166
  %188 = landingpad { ptr, i32 }
          cleanup
  br label %191

189:                                              ; preds = %167
  %190 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %191

191:                                              ; preds = %189, %187
  %.pn62 = phi { ptr, i32 } [ %190, %189 ], [ %188, %187 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  br label %202

.thread100:                                       ; preds = %169
  %192 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br label %201

193:                                              ; preds = %171
  %194 = landingpad { ptr, i32 }
          cleanup
  br label %200

195:                                              ; preds = %172
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %199

197:                                              ; preds = %174, %173
  %.0 = phi i1 [ false, %174 ], [ true, %173 ]
  %198 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %199

199:                                              ; preds = %197, %195
  %.pn64 = phi { ptr, i32 } [ %198, %197 ], [ %196, %195 ]
  %.1 = phi i1 [ %.0, %197 ], [ true, %195 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %200

200:                                              ; preds = %193, %199
  %.pn64.pn = phi { ptr, i32 } [ %.pn64, %199 ], [ %194, %193 ]
  %.2 = phi i1 [ %.1, %199 ], [ true, %193 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br i1 %.2, label %201, label %202

201:                                              ; preds = %.thread100, %200
  %.pn64.pn.pn103 = phi { ptr, i32 } [ %192, %.thread100 ], [ %.pn64.pn, %200 ]
  call void @__cxa_free_exception(ptr %170) #7
  br label %202

202:                                              ; preds = %200, %201, %191
  %.pn64.pn.pn.pn = phi { ptr, i32 } [ %.pn64.pn.pn103, %201 ], [ %.pn64.pn, %200 ], [ %.pn62, %191 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %203

203:                                              ; preds = %202, %185
  %.pn64.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn64.pn.pn.pn, %202 ], [ %186, %185 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  br label %204

204:                                              ; preds = %203, %184
  %.pn64.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn64.pn.pn.pn.pn, %203 ], [ %.pn.pn, %184 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  br label %213

205:                                              ; preds = %160
  call void @_ZNSt10shared_ptrIvEC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %35) #7
  invoke void @_ZN4dali11TensorShapeILin1EEC2IJEvEElDpT_(ptr noundef nonnull align 8 dereferenceable(56) %35, i64 noundef %74)
          to label %206 unwind label %208

206:                                              ; preds = %205
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %36, i8 0, i64 16, i1 false)
  call void @_ZN4dali11AccessOrderC2Ev(ptr noundef nonnull align 8 dereferenceable(12) %36) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %37, i8 0, i64 16, i1 false)
  call void @_ZN4dali15CUDASharedEventC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #7
  invoke void @_ZN4dali6TensorINS_10CPUBackendEE9ShareDataESt10shared_ptrIvEmbRKNS_11TensorShapeILin1EEE13_DALIDataTypeiNS_11AccessOrderENS_15CUDASharedEventE(ptr noundef nonnull align 8 dereferenceable(272) %3, ptr noundef nonnull %34, i64 noundef %74, i1 noundef zeroext false, ptr noundef nonnull align 8 dereferenceable(56) %35, i32 noundef 0, i32 noundef -99999, ptr noundef nonnull byval(%"class.dali::AccessOrder") align 8 %36, ptr noundef nonnull %37)
          to label %207 unwind label %210

207:                                              ; preds = %206
  call void @_ZN4dali15CUDASharedEventD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #7
  call void @_ZN4dali15TensorShapeBaseINS_11SmallVectorIlLm6ESaIlEEELin1EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %35) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %35) #7
  call void @_ZNSt12__shared_ptrIvLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #7
  call void @_ZNSt12__shared_ptrIvLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #7
  br label %215

208:                                              ; preds = %205
  %209 = landingpad { ptr, i32 }
          cleanup
  br label %212

210:                                              ; preds = %206
  %211 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4dali15CUDASharedEventD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #7
  call void @_ZN4dali15TensorShapeBaseINS_11SmallVectorIlLm6ESaIlEEELin1EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %35) #7
  br label %212

212:                                              ; preds = %210, %208
  %.pn71 = phi { ptr, i32 } [ %211, %210 ], [ %209, %208 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %35) #7
  call void @_ZNSt12__shared_ptrIvLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #7
  br label %213

213:                                              ; preds = %212, %204
  %.pn71.pn = phi { ptr, i32 } [ %.pn71, %212 ], [ %.pn64.pn.pn.pn.pn.pn, %204 ]
  call void @_ZNSt12__shared_ptrIvLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  br label %214

214:                                              ; preds = %213, %175
  %.pn71.pn.pn = phi { ptr, i32 } [ %.pn71.pn, %213 ], [ %176, %175 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #7
  br label %223

215:                                              ; preds = %105, %207
  invoke void @_ZN4dali6TensorINS_10CPUBackendEE7SetMetaERKNS_8DALIMetaE(ptr noundef nonnull align 8 dereferenceable(272) %3, ptr noundef nonnull align 8 dereferenceable(49) %6)
          to label %216 unwind label %93

216:                                              ; preds = %215
  %217 = call noundef ptr @_ZNKSt10unique_ptrIN4dali10FileStreamESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  %218 = load ptr, ptr %217, align 8, !tbaa !40
  %219 = getelementptr inbounds i8, ptr %218, i64 48
  %220 = load ptr, ptr %219, align 8
  invoke void %220(ptr noundef nonnull align 8 dereferenceable(40) %217)
          to label %221 unwind label %93

221:                                              ; preds = %216
  call void @_ZNSt10unique_ptrIN4dali10FileStreamESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  br label %222

222:                                              ; preds = %221, %50
  call void @_ZN4dali8DALIMetaD2Ev(ptr noundef nonnull align 8 dereferenceable(49) %6) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %6) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  ret void

223:                                              ; preds = %125, %154, %214, %124, %93
  %.pn90 = phi { ptr, i32 } [ %94, %93 ], [ %.pn75, %124 ], [ %.pn71.pn.pn, %214 ], [ %.pn82.pn.pn.pn.pn.pn, %154 ], [ %126, %125 ]
  call void @_ZNSt10unique_ptrIN4dali10FileStreamESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  br label %224

224:                                              ; preds = %223, %91
  %.pn90.pn = phi { ptr, i32 } [ %.pn90, %223 ], [ %92, %91 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  br label %225

225:                                              ; preds = %224, %59, %53
  %.pn93.pn = phi { ptr, i32 } [ %.pn93, %59 ], [ %54, %53 ], [ %.pn90.pn, %224 ]
  call void @_ZN4dali8DALIMetaD2Ev(ptr noundef nonnull align 8 dereferenceable(49) %6) #7
  br label %226

226:                                              ; preds = %225, %51
  %.pn93.pn.pn = phi { ptr, i32 } [ %.pn93.pn, %225 ], [ %52, %51 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %6) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  resume { ptr, i32 } %.pn93.pn.pn

227:                                              ; preds = %174, %119
  unreachable
}

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4dali8DALIMeta13SetSourceInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(49), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4dali8DALIMeta13SetSkipSampleEb(ptr noundef nonnull align 8 dereferenceable(49), i1 noundef zeroext) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4dali6LoaderINS_10CPUBackendENS_14TensorSequenceELb1EE15ShouldSkipImageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(440), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4dali6TensorINS_10CPUBackendEE7SetMetaERKNS_8DALIMetaE(ptr noundef nonnull align 8 dereferenceable(272), ptr noundef nonnull align 8 dereferenceable(49)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4dali6TensorINS_10CPUBackendEE6ResizeERKNS_11TensorShapeILin1EEE13_DALIDataType(ptr noundef nonnull align 8 dereferenceable(272), ptr noundef nonnull align 8 dereferenceable(56), i32 noundef) local_unnamed_addr #3 align 2

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

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

declare void @_ZN4dali10FileStream4OpenERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_7OptionsESt8optionalImE(ptr dead_on_unwind writable sret(%"class.std::unique_ptr") align 8, ptr noundef nonnull align 8 dereferenceable(32), i24, i64, i8) local_unnamed_addr #6

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4dali6BufferINS_10CPUBackendEE11shares_dataEv(ptr noundef nonnull align 8 dereferenceable(138)) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4dali11make_stringIJA22_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES7_DpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 1 dereferenceable(22), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4dali6TensorINS_10CPUBackendEE9ShareDataESt10shared_ptrIvEmbRKNS_11TensorShapeILin1EEE13_DALIDataTypeiNS_11AccessOrderENS_15CUDASharedEventE(ptr noundef nonnull align 8 dereferenceable(272), ptr noundef, i64 noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef, ptr noundef byval(%"class.dali::AccessOrder") align 8, ptr noundef) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

!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, !18, i64 137}
!6 = !{!"_ZTSN4dali6LoaderINS_10CPUBackendENS_14TensorSequenceELb1EEE", !7, i64 8, !14, i64 32, !18, i64 56, !19, i64 60, !19, i64 64, !19, i64 68, !20, i64 72, !21, i64 80, !22, i64 88, !19, i64 128, !19, i64 132, !18, i64 136, !18, i64 137, !18, i64 138, !19, i64 140, !18, i64 144, !22, i64 152, !18, i64 192, !18, i64 193, !24, i64 200, !25, i64 248, !21, i64 264, !18, i64 272, !18, i64 273, !18, i64 274, !19, i64 276, !19, i64 280, !19, i64 284, !28, i64 288, !31, i64 312, !18, i64 392, !21, i64 400, !21, i64 408, !36, i64 416}
!7 = !{!"_ZTSSt6vectorIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE26IndexedLoadTargetSharedPtrESaIS5_EE", !8, i64 0}
!8 = !{!"_ZTSSt12_Vector_baseIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE26IndexedLoadTargetSharedPtrESaIS5_EE", !9, i64 0}
!9 = !{!"_ZTSNSt12_Vector_baseIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE26IndexedLoadTargetSharedPtrESaIS5_EE12_Vector_implE", !10, i64 0}
!10 = !{!"_ZTSNSt12_Vector_baseIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE26IndexedLoadTargetSharedPtrESaIS5_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 = !{!"_ZTSSt6vectorISt10unique_ptrIN4dali14TensorSequenceESt14default_deleteIS2_EESaIS5_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN4dali14TensorSequenceESt14default_deleteIS2_EESaIS5_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN4dali14TensorSequenceESt14default_deleteIS2_EESaIS5_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN4dali14TensorSequenceESt14default_deleteIS2_EESaIS5_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!18 = !{!"bool", !12, i64 0}
!19 = !{!"int", !12, i64 0}
!20 = !{!"_ZTSSt26linear_congruential_engineImLm16807ELm0ELm2147483647EE", !21, i64 0}
!21 = !{!"long", !12, i64 0}
!22 = !{!"_ZTSSt5mutex", !23, i64 0}
!23 = !{!"_ZTSSt12__mutex_base", !12, i64 0}
!24 = !{!"_ZTSN4dali9once_flagE", !18, i64 0, !22, i64 8}
!25 = !{!"_ZTSSt10shared_ptrIN4dali10ImageCacheEE", !26, i64 0}
!26 = !{!"_ZTSSt12__shared_ptrIN4dali10ImageCacheELN9__gnu_cxx12_Lock_policyE2EE", !11, i64 0, !27, i64 8}
!27 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !11, i64 0}
!28 = !{!"_ZTSN4dali6LoaderINS_10CPUBackendENS_14TensorSequenceELb1EE26IndexedLoadTargetSharedPtrE", !21, i64 0, !29, i64 8}
!29 = !{!"_ZTSSt10shared_ptrIN4dali14TensorSequenceEE", !30, i64 0}
!30 = !{!"_ZTSSt12__shared_ptrIN4dali14TensorSequenceELN9__gnu_cxx12_Lock_policyE2EE", !11, i64 0, !27, i64 8}
!31 = !{!"_ZTSSt5dequeIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE15ShardBoundariesESaIS5_EE", !32, i64 0}
!32 = !{!"_ZTSSt11_Deque_baseIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE15ShardBoundariesESaIS5_EE", !33, i64 0}
!33 = !{!"_ZTSNSt11_Deque_baseIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE15ShardBoundariesESaIS5_EE11_Deque_implE", !34, i64 0}
!34 = !{!"_ZTSNSt11_Deque_baseIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE15ShardBoundariesESaIS5_EE16_Deque_impl_dataE", !11, i64 0, !21, i64 8, !35, i64 16, !35, i64 48}
!35 = !{!"_ZTSSt15_Deque_iteratorIN4dali6LoaderINS0_10CPUBackendENS0_14TensorSequenceELb1EE15ShardBoundariesERS5_PS5_E", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24}
!36 = !{!"_ZTSN4dali19LoaderStateSnapshotE", !20, i64 0, !19, i64 8, !21, i64 16}
!37 = !{i8 0, i8 2}
!38 = !{}
!39 = !{!6, !18, i64 136}
!40 = !{!41, !41, i64 0}
!41 = !{!"vtable pointer", !13, i64 0}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass