; LLVM IR from huawei-noah/bolt :: inference/examples/automatic_speech_recognition (asr_rnnt)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%struct.TensorDesc = type { i32, i32, i32, [20 x i32] }
%"class.std::vector.19" = type { %"struct.std::_Vector_base.20" }
%"struct.std::_Vector_base.20" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ParseRes = type { %"struct.std::pair", %"struct.std::pair", %"struct.std::pair", %"struct.std::pair", %"struct.std::pair.37", %"struct.std::pair.40", %"struct.std::pair.43", %"struct.std::pair.43", %"struct.std::pair.43", %"struct.std::pair", %"struct.std::pair", %"struct.std::pair" }
%"struct.std::pair.37" = type <{ i32, i8, [3 x i8] }>
%"struct.std::pair.40" = type <{ float, i8, [3 x i8] }>
%"struct.std::pair.43" = type <{ i32, i8, [3 x i8] }>
%"struct.std::pair" = type <{ ptr, i8, [7 x i8] }>
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.11" = type { i8 }
%"class.std::shared_ptr.46" = type { %"class.std::__shared_ptr.47" }
%"class.std::__shared_ptr.47" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::map.49" = type { %"class.std::_Rb_tree.50" }
%"class.std::_Rb_tree.50" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<Tensor>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<Tensor>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<Tensor>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<Tensor>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl" }
%"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl" = type { %"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.24" = type { %"struct.std::_Vector_base.25" }
%"struct.std::_Vector_base.25" = type { %"struct.std::_Vector_base<std::vector<Tensor>, std::allocator<std::vector<Tensor>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<Tensor>, std::allocator<std::vector<Tensor>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<Tensor>, std::allocator<std::vector<Tensor>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<Tensor>, std::allocator<std::vector<Tensor>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl" }
%"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl" = type { %"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, TensorDesc>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, TensorDesc>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, TensorDesc>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, TensorDesc>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.100" = type { %"class.std::_Rb_tree.101" }
%"class.std::_Rb_tree.101" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::shared_ptr.8" = type { %"class.std::__shared_ptr.9" }
%"class.std::__shared_ptr.9" = type { ptr, %"class.std::__shared_count" }
%"class.std::map.105" = type { %"class.std::_Rb_tree.106" }
%"class.std::_Rb_tree.106" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, float *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, float *>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, float *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, float *>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%class.Tensor = type { %"class.std::shared_ptr", %"class.std::shared_ptr.5" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.5" = type { %"class.std::__shared_ptr.6" }
%"class.std::__shared_ptr.6" = type { ptr, %"class.std::__shared_count" }

@stdout = external global ptr, align 8
@.str.7 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [8 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [24 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: 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) #1

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z17tensorNumElements10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8) #3

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

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

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

declare i32 @printf(ptr noundef, ...) #4

declare i32 @fflush(ptr noundef) #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32)) #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9load_dataNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorI10TensorDescSaIS6_EEPS5_IS5_I6TensorSaIS9_EESaISB_EE(ptr dead_on_unwind noalias writable sret(%"class.std::vector.19") align 8, ptr noundef, ptr noundef, ptr noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #5 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #6 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca %struct.ParseRes, align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator.11", align 1
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca %"class.std::shared_ptr.46", align 8
  %16 = alloca %"class.std::map.49", align 8
  %17 = alloca %"class.std::vector.0", align 8
  %18 = alloca %struct.TensorDesc, align 4
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.11", align 1
  %21 = alloca %"class.std::vector.24", align 8
  %22 = alloca %"class.std::vector.24", align 8
  %23 = alloca %"class.std::vector.19", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.11", align 1
  %27 = alloca %"class.std::vector.0", align 8
  %28 = alloca %"class.std::vector.0", align 8
  %29 = alloca %"class.std::vector.19", 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.11", align 1
  %33 = alloca %"class.std::vector.0", align 8
  %34 = alloca double, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca ptr, align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %40 = alloca %"class.std::vector", align 8
  %41 = alloca %struct.TensorDesc, align 4
  %42 = alloca %struct.TensorDesc, align 4
  %43 = alloca %struct.TensorDesc, align 8
  %44 = alloca %"class.std::map", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator.11", align 1
  %47 = alloca %"class.std::map", align 8
  %48 = alloca %"class.std::map.100", align 8
  %49 = alloca %"class.std::shared_ptr.8", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator.11", align 1
  %52 = alloca %"class.std::map.100", align 8
  %53 = alloca %"class.std::map.105", align 8
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  %56 = alloca %class.Tensor, align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator.11", align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 152, ptr %6) #9
  call void @_ZN8ParseResC2Ev(ptr noundef nonnull align 8 dereferenceable(152) %6)
  %63 = load i32, ptr %4, align 4, !tbaa !5
  %64 = load ptr, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %65 unwind label %72

65:                                               ; preds = %2
  invoke void @_Z16parseCommandLineiPPcP8ParseResNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef %63, ptr noundef %64, ptr noundef %6, ptr noundef %7)
          to label %66 unwind label %76

66:                                               ; preds = %65
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  store ptr @.str.7, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  store ptr @.str.7, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  store ptr @.str.7, ptr %13, align 8, !tbaa !9
  %67 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 0
  %68 = getelementptr inbounds %"struct.std::pair", ptr %67, i32 0, i32 1
  %69 = load i8, ptr %68, align 8, !tbaa !11, !range !20, !noundef !21
  %70 = trunc i8 %69 to i1
  br i1 %70, label %81, label %71

71:                                               ; preds = %66
  store i32 1, ptr %3, align 4
  store i32 1, ptr %14, align 4
  br label %463

72:                                               ; preds = %2
  %73 = landingpad { ptr, i32 }
          cleanup
  %74 = extractvalue { ptr, i32 } %73, 0
  store ptr %74, ptr %9, align 8
  %75 = extractvalue { ptr, i32 } %73, 1
  store i32 %75, ptr %10, align 4
  br label %80

76:                                               ; preds = %65
  %77 = landingpad { ptr, i32 }
          cleanup
  %78 = extractvalue { ptr, i32 } %77, 0
  store ptr %78, ptr %9, align 8
  %79 = extractvalue { ptr, i32 } %77, 1
  store i32 %79, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  br label %80

80:                                               ; preds = %76, %72
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #9
  br label %465

81:                                               ; preds = %66
  %82 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 0
  %83 = getelementptr inbounds %"struct.std::pair", ptr %82, i32 0, i32 1
  %84 = load i8, ptr %83, align 8, !tbaa !11, !range !20, !noundef !21
  %85 = trunc i8 %84 to i1
  br i1 %85, label %86, label %90

86:                                               ; preds = %81
  %87 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 0
  %88 = getelementptr inbounds %"struct.std::pair", ptr %87, i32 0, i32 0
  %89 = load ptr, ptr %88, align 8, !tbaa !22
  store ptr %89, ptr %11, align 8, !tbaa !9
  br label %90

90:                                               ; preds = %86, %81
  %91 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 1
  %92 = getelementptr inbounds %"struct.std::pair", ptr %91, i32 0, i32 1
  %93 = load i8, ptr %92, align 8, !tbaa !23, !range !20, !noundef !21
  %94 = trunc i8 %93 to i1
  br i1 %94, label %95, label %99

95:                                               ; preds = %90
  %96 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 1
  %97 = getelementptr inbounds %"struct.std::pair", ptr %96, i32 0, i32 0
  %98 = load ptr, ptr %97, align 8, !tbaa !24
  store ptr %98, ptr %12, align 8, !tbaa !9
  br label %99

99:                                               ; preds = %95, %90
  %100 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 2
  %101 = getelementptr inbounds %"struct.std::pair", ptr %100, i32 0, i32 1
  %102 = load i8, ptr %101, align 8, !tbaa !25, !range !20, !noundef !21
  %103 = trunc i8 %102 to i1
  br i1 %103, label %104, label %108

104:                                              ; preds = %99
  %105 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 2
  %106 = getelementptr inbounds %"struct.std::pair", ptr %105, i32 0, i32 0
  %107 = load ptr, ptr %106, align 8, !tbaa !26
  store ptr %107, ptr %13, align 8, !tbaa !9
  br label %108

108:                                              ; preds = %104, %99
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #9
  %109 = load ptr, ptr %13, align 8, !tbaa !9
  %110 = load ptr, ptr %11, align 8, !tbaa !9
  call void @_Z14createPipelinePKcS0_S0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.46") align 8 %15, ptr noundef %109, ptr noundef %110, ptr noundef @.str.7)
  call void @llvm.lifetime.start.p0(i64 48, ptr %16) #9
  %111 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  invoke void @_ZN3CNN9get_inputB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::map.49") align 8 %16, ptr noundef nonnull align 8 dereferenceable(5265) %111)
          to label %112 unwind label %143

112:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #9
  call void @_ZNSt6vectorI10TensorDescSaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #9
  call void @llvm.lifetime.start.p0(i64 92, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %113 unwind label %147

113:                                              ; preds = %112
  %114 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrI6TensorESt4lessIS5_ESaISt4pairIKS5_S8_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %16, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %115 unwind label %151

115:                                              ; preds = %113
  %116 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt19__shared_ptr_accessI6TensorLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %114) #9
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %18, ptr noundef nonnull align 8 dereferenceable(32) %116)
          to label %117 unwind label %151

117:                                              ; preds = %115
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #9
  invoke void @_ZNSt6vectorI10TensorDescSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 4 dereferenceable(92) %18)
          to label %118 unwind label %156

118:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #9
  call void @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #9
  call void @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #9
  %119 = load ptr, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %120 unwind label %160

120:                                              ; preds = %118
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef %119, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %121 unwind label %164

121:                                              ; preds = %120
  invoke void @_ZNSt6vectorI10TensorDescSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %27, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %122 unwind label %168

122:                                              ; preds = %121
  invoke void @_Z9load_dataNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorI10TensorDescSaIS6_EEPS5_IS5_I6TensorSaIS9_EESaISB_EE(ptr dead_on_unwind writable sret(%"class.std::vector.19") align 8 %23, ptr noundef %24, ptr noundef %27, ptr noundef %21)
          to label %123 unwind label %172

123:                                              ; preds = %122
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #9
  call void @_ZNSt6vectorI10TensorDescSaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #9
  invoke void @_ZNSt6vectorI10TensorDescSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 4 dereferenceable(92) %18)
          to label %124 unwind label %179

124:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #9
  %125 = load ptr, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %126 unwind label %183

126:                                              ; preds = %124
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef %125, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %127 unwind label %187

127:                                              ; preds = %126
  invoke void @_ZNSt6vectorI10TensorDescSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(24) %28)
          to label %128 unwind label %191

128:                                              ; preds = %127
  invoke void @_Z9load_dataNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorI10TensorDescSaIS6_EEPS5_IS5_I6TensorSaIS9_EESaISB_EE(ptr dead_on_unwind writable sret(%"class.std::vector.19") align 8 %29, ptr noundef %30, ptr noundef %33, ptr noundef %22)
          to label %129 unwind label %195

129:                                              ; preds = %128
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  store double 0.000000e+00, ptr %34, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  store i32 0, ptr %35, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  store i32 0, ptr %36, align 4, !tbaa !5
  %130 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.20)
          to label %131 unwind label %202

131:                                              ; preds = %129
  %132 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %130, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %133 unwind label %202

133:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  store ptr %21, ptr %37, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #9
  %134 = load ptr, ptr %37, align 8, !tbaa !9
  %135 = call ptr @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %134) #9
  %136 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %38, i32 0, i32 0
  store ptr %135, ptr %136, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #9
  %137 = load ptr, ptr %37, align 8, !tbaa !9
  %138 = call ptr @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %137) #9
  %139 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %39, i32 0, i32 0
  store ptr %138, ptr %139, align 8
  br label %140

140:                                              ; preds = %417, %133
  %141 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt6vectorI6TensorSaIS2_EES1_IS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  br i1 %141, label %206, label %142

142:                                              ; preds = %140
  store i32 2, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  br label %429

143:                                              ; preds = %108
  %144 = landingpad { ptr, i32 }
          cleanup
  %145 = extractvalue { ptr, i32 } %144, 0
  store ptr %145, ptr %9, align 8
  %146 = extractvalue { ptr, i32 } %144, 1
  store i32 %146, ptr %10, align 4
  br label %462

147:                                              ; preds = %112
  %148 = landingpad { ptr, i32 }
          cleanup
  %149 = extractvalue { ptr, i32 } %148, 0
  store ptr %149, ptr %9, align 8
  %150 = extractvalue { ptr, i32 } %148, 1
  store i32 %150, ptr %10, align 4
  br label %155

151:                                              ; preds = %115, %113
  %152 = landingpad { ptr, i32 }
          cleanup
  %153 = extractvalue { ptr, i32 } %152, 0
  store ptr %153, ptr %9, align 8
  %154 = extractvalue { ptr, i32 } %152, 1
  store i32 %154, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %155

155:                                              ; preds = %151, %147
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #9
  br label %461

156:                                              ; preds = %117
  %157 = landingpad { ptr, i32 }
          cleanup
  %158 = extractvalue { ptr, i32 } %157, 0
  store ptr %158, ptr %9, align 8
  %159 = extractvalue { ptr, i32 } %157, 1
  store i32 %159, ptr %10, align 4
  br label %461

160:                                              ; preds = %118
  %161 = landingpad { ptr, i32 }
          cleanup
  %162 = extractvalue { ptr, i32 } %161, 0
  store ptr %162, ptr %9, align 8
  %163 = extractvalue { ptr, i32 } %161, 1
  store i32 %163, ptr %10, align 4
  br label %178

164:                                              ; preds = %120
  %165 = landingpad { ptr, i32 }
          cleanup
  %166 = extractvalue { ptr, i32 } %165, 0
  store ptr %166, ptr %9, align 8
  %167 = extractvalue { ptr, i32 } %165, 1
  store i32 %167, ptr %10, align 4
  br label %177

168:                                              ; preds = %121
  %169 = landingpad { ptr, i32 }
          cleanup
  %170 = extractvalue { ptr, i32 } %169, 0
  store ptr %170, ptr %9, align 8
  %171 = extractvalue { ptr, i32 } %169, 1
  store i32 %171, ptr %10, align 4
  br label %176

172:                                              ; preds = %122
  %173 = landingpad { ptr, i32 }
          cleanup
  %174 = extractvalue { ptr, i32 } %173, 0
  store ptr %174, ptr %9, align 8
  %175 = extractvalue { ptr, i32 } %173, 1
  store i32 %175, ptr %10, align 4
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #9
  br label %176

176:                                              ; preds = %172, %168
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %177

177:                                              ; preds = %176, %164
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br label %178

178:                                              ; preds = %177, %160
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #9
  br label %460

179:                                              ; preds = %123
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %9, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %10, align 4
  br label %459

183:                                              ; preds = %124
  %184 = landingpad { ptr, i32 }
          cleanup
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %9, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %10, align 4
  br label %201

187:                                              ; preds = %126
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %9, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %10, align 4
  br label %200

191:                                              ; preds = %127
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %9, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %10, align 4
  br label %199

195:                                              ; preds = %128
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %9, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %10, align 4
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #9
  br label %199

199:                                              ; preds = %195, %191
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %200

200:                                              ; preds = %199, %187
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  br label %201

201:                                              ; preds = %200, %183
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #9
  br label %458

202:                                              ; preds = %453, %446, %443, %433, %431, %429, %131, %129
  %203 = landingpad { ptr, i32 }
          cleanup
  %204 = extractvalue { ptr, i32 } %203, 0
  store ptr %204, ptr %9, align 8
  %205 = extractvalue { ptr, i32 } %203, 1
  store i32 %205, ptr %10, align 4
  br label %457

206:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 24, ptr %40) #9
  %207 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt6vectorI6TensorSaIS2_EES1_IS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %38) #9
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %40, ptr noundef nonnull align 8 dereferenceable(24) %207)
          to label %208 unwind label %296

208:                                              ; preds = %206
  %209 = load i32, ptr %35, align 4, !tbaa !5
  %210 = zext i32 %209 to i64
  %211 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %210) #9
  %212 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %211)
          to label %213 unwind label %300

213:                                              ; preds = %208
  %214 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %212, ptr noundef @.str.21)
          to label %215 unwind label %300

215:                                              ; preds = %213
  %216 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %214, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %217 unwind label %300

217:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 92, ptr %41) #9
  %218 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef 0) #9
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %41, ptr noundef nonnull align 8 dereferenceable(32) %218)
          to label %219 unwind label %304

219:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 92, ptr %42) #9
  %220 = getelementptr inbounds %struct.TensorDesc, ptr %18, i32 0, i32 0
  %221 = load i32, ptr %220, align 4, !tbaa !29
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %43, ptr align 4 %41, i64 92, i1 false), !tbaa.struct !33
  %222 = invoke noundef i32 @_Z17tensorNumElements10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %43)
          to label %223 unwind label %308

223:                                              ; preds = %219
  %224 = getelementptr inbounds %struct.TensorDesc, ptr %18, i32 0, i32 3
  %225 = getelementptr inbounds [20 x i32], ptr %224, i64 0, i64 0
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = udiv i32 %222, %226
  %228 = getelementptr inbounds %struct.TensorDesc, ptr %18, i32 0, i32 3
  %229 = getelementptr inbounds [20 x i32], ptr %228, i64 0, i64 0
  %230 = load i32, ptr %229, align 4, !tbaa !5
  invoke void @_Z8tensor3d8DataTypejjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %42, i32 noundef %221, i32 noundef 1, i32 noundef %227, i32 noundef %230)
          to label %231 unwind label %308

231:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 48, ptr %44) #9
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %44) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %232 unwind label %312

232:                                              ; preds = %231
  %233 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %44, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %234 unwind label %316

234:                                              ; preds = %232
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %233, ptr align 4 %42, i64 92, i1 false), !tbaa.struct !33
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #9
  %235 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  invoke void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2ERKSD_(ptr noundef nonnull align 8 dereferenceable(48) %47, ptr noundef nonnull align 8 dereferenceable(48) %44)
          to label %236 unwind label %321

236:                                              ; preds = %234
  invoke void @_ZN3CNN7rereadyESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS6_ESaISt4pairIKS6_S7_EEE(ptr noundef nonnull align 8 dereferenceable(5265) %235, ptr noundef %47)
          to label %237 unwind label %325

237:                                              ; preds = %236
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %47) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr %48) #9
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %48) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %49) #9
  %238 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef 0) #9
  %239 = invoke noundef ptr @_ZN6Tensor10get_memoryEv(ptr noundef nonnull align 8 dereferenceable(32) %238)
          to label %240 unwind label %329

240:                                              ; preds = %237
  invoke void @_ZN9CpuMemory14get_shared_ptrEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.8") align 8 %49, ptr noundef nonnull align 8 dereferenceable(125) %239)
          to label %241 unwind label %329

241:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %242 unwind label %333

242:                                              ; preds = %241
  %243 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %48, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %244 unwind label %337

244:                                              ; preds = %242
  %245 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %243, ptr noundef nonnull align 8 dereferenceable(16) %49) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #9
  %246 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  invoke void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEC2ERKSE_(ptr noundef nonnull align 8 dereferenceable(48) %52, ptr noundef nonnull align 8 dereferenceable(48) %48)
          to label %247 unwind label %343

247:                                              ; preds = %244
  call void @llvm.memset.p0.i64(ptr align 8 %53, i8 0, i64 48, i1 false)
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %53) #9
  invoke void @_ZN3CNN19set_input_by_assignESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS6_ESaISt4pairIKS6_S8_EEES0_IS6_PfSA_SaISB_ISC_SG_EEE(ptr noundef nonnull align 8 dereferenceable(5265) %246, ptr noundef %52, ptr noundef %53)
          to label %248 unwind label %347

248:                                              ; preds = %247
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %53) #9
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %52) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  %249 = invoke noundef double @_Z10ut_time_msv()
          to label %250 unwind label %351

250:                                              ; preds = %248
  store double %249, ptr %54, align 8, !tbaa !27
  %251 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  %252 = load ptr, ptr %251, align 8, !tbaa !37
  %253 = getelementptr inbounds ptr, ptr %252, i64 3
  %254 = load ptr, ptr %253, align 8
  invoke void %254(ptr noundef nonnull align 8 dereferenceable(5265) %251)
          to label %255 unwind label %351

255:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #9
  %256 = invoke noundef double @_Z10ut_time_msv()
          to label %257 unwind label %355

257:                                              ; preds = %255
  store double %256, ptr %55, align 8, !tbaa !27
  %258 = load double, ptr %55, align 8, !tbaa !27
  %259 = load double, ptr %54, align 8, !tbaa !27
  %260 = fsub double %258, %259
  %261 = load double, ptr %34, align 8, !tbaa !27
  %262 = fadd double %261, %260
  store double %262, ptr %34, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #9
  %263 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %264 unwind label %359

264:                                              ; preds = %257
  invoke void @_ZN3CNN18get_tensor_by_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%class.Tensor) align 8 %56, ptr noundef nonnull align 8 dereferenceable(5265) %263, ptr noundef %57)
          to label %265 unwind label %363

265:                                              ; preds = %264
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #9
  invoke void @_ZN6Tensor6stringB5cxx11Ei(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %56, i32 noundef 32)
          to label %266 unwind label %368

266:                                              ; preds = %265
  %267 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %268 unwind label %372

268:                                              ; preds = %266
  %269 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %267, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %270 unwind label %372

270:                                              ; preds = %268
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  %271 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #9
  %272 = load i32, ptr %35, align 4, !tbaa !5
  %273 = zext i32 %272 to i64
  %274 = icmp ugt i64 %271, %273
  br i1 %274, label %275, label %414

275:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #9
  %276 = load i32, ptr %35, align 4, !tbaa !5
  %277 = zext i32 %276 to i64
  %278 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %277) #9
  %279 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %278, i64 noundef 0) #9
  %280 = invoke noundef ptr @_ZN6Tensor10get_memoryEv(ptr noundef nonnull align 8 dereferenceable(32) %279)
          to label %281 unwind label %377

281:                                              ; preds = %275
  %282 = invoke noundef ptr @_ZN9CpuMemory7get_ptrEv(ptr noundef nonnull align 8 dereferenceable(125) %280)
          to label %283 unwind label %377

283:                                              ; preds = %281
  store ptr %282, ptr %60, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %284 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %285 unwind label %381

285:                                              ; preds = %283
  store i32 %284, ptr %61, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  store i32 0, ptr %62, align 4, !tbaa !5
  br label %286

286:                                              ; preds = %407, %285
  %287 = load i32, ptr %62, align 4, !tbaa !5
  %288 = load i32, ptr %35, align 4, !tbaa !5
  %289 = zext i32 %288 to i64
  %290 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %289) #9
  %291 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %290, i64 noundef 0) #9
  %292 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %291)
          to label %293 unwind label %385

293:                                              ; preds = %286
  %294 = icmp ult i32 %287, %292
  br i1 %294, label %389, label %295

295:                                              ; preds = %293
  store i32 4, ptr %14, align 4
  br label %410

296:                                              ; preds = %206
  %297 = landingpad { ptr, i32 }
          cleanup
  %298 = extractvalue { ptr, i32 } %297, 0
  store ptr %298, ptr %9, align 8
  %299 = extractvalue { ptr, i32 } %297, 1
  store i32 %299, ptr %10, align 4
  br label %428

300:                                              ; preds = %215, %213, %208
  %301 = landingpad { ptr, i32 }
          cleanup
  %302 = extractvalue { ptr, i32 } %301, 0
  store ptr %302, ptr %9, align 8
  %303 = extractvalue { ptr, i32 } %301, 1
  store i32 %303, ptr %10, align 4
  br label %427

304:                                              ; preds = %217
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %9, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %10, align 4
  br label %426

308:                                              ; preds = %223, %219
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %9, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %10, align 4
  br label %425

312:                                              ; preds = %231
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %9, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %10, align 4
  br label %320

316:                                              ; preds = %232
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %9, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %320

320:                                              ; preds = %316, %312
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #9
  br label %424

321:                                              ; preds = %234
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %9, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %10, align 4
  br label %424

325:                                              ; preds = %236
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %9, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %10, align 4
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %47) #9
  br label %424

329:                                              ; preds = %240, %237
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %9, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %10, align 4
  br label %342

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

337:                                              ; preds = %242
  %338 = landingpad { ptr, i32 }
          cleanup
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %9, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %341

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

342:                                              ; preds = %341, %329
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #9
  br label %423

343:                                              ; preds = %244
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %9, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %10, align 4
  br label %423

347:                                              ; preds = %247
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %9, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %10, align 4
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %53) #9
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %52) #9
  br label %423

351:                                              ; preds = %250, %248
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %9, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %10, align 4
  br label %422

355:                                              ; preds = %255
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %9, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %10, align 4
  br label %421

359:                                              ; preds = %257
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %9, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %10, align 4
  br label %367

363:                                              ; preds = %264
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %9, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  br label %367

367:                                              ; preds = %363, %359
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #9
  br label %420

368:                                              ; preds = %265
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %9, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %10, align 4
  br label %376

372:                                              ; preds = %268, %266
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %9, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  br label %376

376:                                              ; preds = %372, %368
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  br label %419

377:                                              ; preds = %281, %275
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %9, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %10, align 4
  br label %413

381:                                              ; preds = %283
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %9, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %10, align 4
  br label %412

385:                                              ; preds = %393, %286
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %9, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %412

389:                                              ; preds = %293
  %390 = load i32, ptr %62, align 4, !tbaa !5
  %391 = load i32, ptr %61, align 4, !tbaa !5
  %392 = icmp uge i32 %390, %391
  br i1 %392, label %403, label %393

393:                                              ; preds = %389
  %394 = load ptr, ptr %60, align 8, !tbaa !9
  %395 = load i32, ptr %62, align 4, !tbaa !5
  %396 = zext i32 %395 to i64
  %397 = getelementptr inbounds float, ptr %394, i64 %396
  %398 = load float, ptr %397, align 4, !tbaa !39
  %399 = load i32, ptr %62, align 4, !tbaa !5
  %400 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %56, i32 noundef %399)
          to label %401 unwind label %385

401:                                              ; preds = %393
  %402 = fcmp une float %398, %400
  br i1 %402, label %403, label %406

403:                                              ; preds = %401, %389
  %404 = load i32, ptr %36, align 4, !tbaa !5
  %405 = add i32 %404, 1
  store i32 %405, ptr %36, align 4, !tbaa !5
  store i32 4, ptr %14, align 4
  br label %410

406:                                              ; preds = %401
  br label %407

407:                                              ; preds = %406
  %408 = load i32, ptr %62, align 4, !tbaa !5
  %409 = add i32 %408, 1
  store i32 %409, ptr %62, align 4, !tbaa !5
  br label %286, !llvm.loop !40

410:                                              ; preds = %403, %295
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %411

411:                                              ; preds = %410
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  br label %414

412:                                              ; preds = %385, %381
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %413

413:                                              ; preds = %412, %377
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  br label %419

414:                                              ; preds = %411, %270
  %415 = load i32, ptr %35, align 4, !tbaa !5
  %416 = add i32 %415, 1
  store i32 %416, ptr %35, align 4, !tbaa !5
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %48) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %48) #9
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %44) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 92, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 92, ptr %41) #9
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #9
  br label %417

417:                                              ; preds = %414
  %418 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt6vectorI6TensorSaIS2_EES1_IS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %38) #9
  br label %140

419:                                              ; preds = %413, %376
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  br label %420

420:                                              ; preds = %419, %367
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #9
  br label %421

421:                                              ; preds = %420, %355
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  br label %422

422:                                              ; preds = %421, %351
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  br label %423

423:                                              ; preds = %422, %347, %343, %342
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %48) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %48) #9
  br label %424

424:                                              ; preds = %423, %325, %321, %320
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %44) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %44) #9
  br label %425

425:                                              ; preds = %424, %308
  call void @llvm.lifetime.end.p0(i64 92, ptr %42) #9
  br label %426

426:                                              ; preds = %425, %304
  call void @llvm.lifetime.end.p0(i64 92, ptr %41) #9
  br label %427

427:                                              ; preds = %426, %300
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #9
  br label %428

428:                                              ; preds = %427, %296
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  br label %457

429:                                              ; preds = %142
  %430 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.23)
          to label %431 unwind label %202

431:                                              ; preds = %429
  %432 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %430, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %433 unwind label %202

433:                                              ; preds = %431
  %434 = load i32, ptr %35, align 4, !tbaa !5
  %435 = load i32, ptr %36, align 4, !tbaa !5
  %436 = sub i32 %434, %435
  %437 = uitofp i32 %436 to double
  %438 = fmul double 1.000000e+02, %437
  %439 = load i32, ptr %35, align 4, !tbaa !5
  %440 = uitofp i32 %439 to double
  %441 = fdiv double %438, %440
  %442 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.24, double noundef %441)
          to label %443 unwind label %202

443:                                              ; preds = %433
  %444 = load ptr, ptr @stdout, align 8, !tbaa !9
  %445 = invoke i32 @fflush(ptr noundef %444)
          to label %446 unwind label %202

446:                                              ; preds = %443
  %447 = load double, ptr %34, align 8, !tbaa !27
  %448 = fmul double 1.000000e+00, %447
  %449 = load i32, ptr %35, align 4, !tbaa !5
  %450 = uitofp i32 %449 to double
  %451 = fdiv double %448, %450
  %452 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.25, double noundef %451)
          to label %453 unwind label %202

453:                                              ; preds = %446
  %454 = load ptr, ptr @stdout, align 8, !tbaa !9
  %455 = invoke i32 @fflush(ptr noundef %454)
          to label %456 unwind label %202

456:                                              ; preds = %453
  store i32 0, ptr %3, align 4
  store i32 1, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #9
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #9
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #9
  call void @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #9
  call void @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 92, ptr %18) #9
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #9
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrI6TensorESt4lessIS5_ESaISt4pairIKS5_S8_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %16) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %16) #9
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #9
  br label %463

457:                                              ; preds = %428, %202
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #9
  br label %458

458:                                              ; preds = %457, %201
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #9
  br label %459

459:                                              ; preds = %458, %179
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #9
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  br label %460

460:                                              ; preds = %459, %178
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #9
  call void @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #9
  call void @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #9
  br label %461

461:                                              ; preds = %460, %156, %155
  call void @llvm.lifetime.end.p0(i64 92, ptr %18) #9
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #9
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrI6TensorESt4lessIS5_ESaISt4pairIKS5_S8_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %16) #9
  br label %462

462:                                              ; preds = %461, %143
  call void @llvm.lifetime.end.p0(i64 48, ptr %16) #9
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  br label %465

463:                                              ; preds = %456, %71
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 152, ptr %6) #9
  %464 = load i32, ptr %3, align 4
  ret i32 %464

465:                                              ; preds = %462, %80
  call void @llvm.lifetime.end.p0(i64 152, ptr %6) #9
  br label %466

466:                                              ; preds = %465
  %467 = load ptr, ptr %9, align 8
  %468 = load i32, ptr %10, align 4
  %469 = insertvalue { ptr, i32 } poison, ptr %467, 0
  %470 = insertvalue { ptr, i32 } %469, i32 %468, 1
  resume { ptr, i32 } %470
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ParseResC2Ev(ptr noundef nonnull align 8 dereferenceable(152)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z16parseCommandLineiPPcP8ParseResNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef, ptr noundef, ptr noundef, ptr noundef) #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z14createPipelinePKcS0_S0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.46") align 8, ptr noundef, ptr noundef, ptr noundef) #7

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

declare void @_ZN3CNN9get_inputB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::map.49") align 8, ptr noundef nonnull align 8 dereferenceable(5265)) #4

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrI6TensorESt4lessIS5_ESaISt4pairIKS5_S8_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Tensor8get_descEv(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, ptr noundef nonnull align 8 dereferenceable(32)) #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI10TensorDescSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(92)) #5 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #7

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #7

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #7

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z8tensor3d8DataTypejjj(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) #5 align 2

declare void @_ZN3CNN7rereadyESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS6_ESaISt4pairIKS6_S7_EEE(ptr noundef nonnull align 8 dereferenceable(5265), ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2ERKSD_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) #5 align 2

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

declare void @_ZN3CNN19set_input_by_assignESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS6_ESaISt4pairIKS6_S8_EEES0_IS6_PfSA_SaISB_ISC_SG_EEE(ptr noundef nonnull align 8 dereferenceable(5265), ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEC2ERKSE_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 align 2

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

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

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

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

declare noundef double @_Z10ut_time_msv() #4

declare void @_ZN3CNN18get_tensor_by_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%class.Tensor) align 8, ptr noundef nonnull align 8 dereferenceable(5265), ptr noundef) #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #5 align 2

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !14, i64 8}
!12 = !{!"_ZTS8ParseRes", !13, i64 0, !13, i64 16, !13, i64 32, !13, i64 48, !15, i64 64, !17, i64 72, !19, i64 80, !19, i64 88, !19, i64 96, !13, i64 104, !13, i64 120, !13, i64 136}
!13 = !{!"_ZTSSt4pairIPcbE", !10, i64 0, !14, i64 8}
!14 = !{!"bool", !7, i64 0}
!15 = !{!"_ZTSSt4pairI11ImageFormatbE", !16, i64 0, !14, i64 4}
!16 = !{!"_ZTS11ImageFormat", !7, i64 0}
!17 = !{!"_ZTSSt4pairIfbE", !18, i64 0, !14, i64 4}
!18 = !{!"float", !7, i64 0}
!19 = !{!"_ZTSSt4pairIibE", !6, i64 0, !14, i64 4}
!20 = !{i8 0, i8 2}
!21 = !{}
!22 = !{!12, !10, i64 0}
!23 = !{!12, !14, i64 24}
!24 = !{!12, !10, i64 16}
!25 = !{!12, !14, i64 40}
!26 = !{!12, !10, i64 32}
!27 = !{!28, !28, i64 0}
!28 = !{!"double", !7, i64 0}
!29 = !{!30, !31, i64 0}
!30 = !{!"_ZTS10TensorDesc", !31, i64 0, !32, i64 4, !6, i64 8, !7, i64 12}
!31 = !{!"_ZTS8DataType", !7, i64 0}
!32 = !{!"_ZTS10DataFormat", !7, i64 0}
!33 = !{i64 0, i64 4, !34, i64 4, i64 4, !35, i64 8, i64 4, !5, i64 12, i64 80, !36}
!34 = !{!31, !31, i64 0}
!35 = !{!32, !32, i64 0}
!36 = !{!7, !7, i64 0}
!37 = !{!38, !38, i64 0}
!38 = !{!"vtable pointer", !8, i64 0}
!39 = !{!18, !18, i64 0}
!40 = distinct !{!40, !41}
!41 = !{!"llvm.loop.mustprogress"}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%struct.TensorDesc = type { i32, i32, i32, [20 x i32] }
%"class.std::vector.19" = type { %"struct.std::_Vector_base.20" }
%"struct.std::_Vector_base.20" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ParseRes = type { %"struct.std::pair", %"struct.std::pair", %"struct.std::pair", %"struct.std::pair", %"struct.std::pair.37", %"struct.std::pair.40", %"struct.std::pair.43", %"struct.std::pair.43", %"struct.std::pair.43", %"struct.std::pair", %"struct.std::pair", %"struct.std::pair" }
%"struct.std::pair.37" = type <{ i32, i8, [3 x i8] }>
%"struct.std::pair.40" = type <{ float, i8, [3 x i8] }>
%"struct.std::pair.43" = type <{ i32, i8, [3 x i8] }>
%"struct.std::pair" = type <{ ptr, i8, [7 x i8] }>
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.11" = type { i8 }
%"class.std::shared_ptr.46" = type { %"class.std::__shared_ptr.47" }
%"class.std::__shared_ptr.47" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::map.49" = type { %"class.std::_Rb_tree.50" }
%"class.std::_Rb_tree.50" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<Tensor>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<Tensor>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<Tensor>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<Tensor>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl" }
%"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl" = type { %"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.24" = type { %"struct.std::_Vector_base.25" }
%"struct.std::_Vector_base.25" = type { %"struct.std::_Vector_base<std::vector<Tensor>, std::allocator<std::vector<Tensor>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<Tensor>, std::allocator<std::vector<Tensor>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<Tensor>, std::allocator<std::vector<Tensor>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<Tensor>, std::allocator<std::vector<Tensor>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl" }
%"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl" = type { %"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, TensorDesc>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, TensorDesc>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, TensorDesc>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, TensorDesc>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.100" = type { %"class.std::_Rb_tree.101" }
%"class.std::_Rb_tree.101" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::shared_ptr.8" = type { %"class.std::__shared_ptr.9" }
%"class.std::__shared_ptr.9" = type { ptr, %"class.std::__shared_count" }
%"class.std::map.105" = type { %"class.std::_Rb_tree.106" }
%"class.std::_Rb_tree.106" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, float *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, float *>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, float *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, float *>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%class.Tensor = type { %"class.std::shared_ptr", %"class.std::shared_ptr.5" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.5" = type { %"class.std::__shared_ptr.6" }
%"class.std::__shared_ptr.6" = type { ptr, %"class.std::__shared_count" }

@stdout = external local_unnamed_addr global ptr, align 8
@.str.7 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [8 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [24 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 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) #1

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z17tensorNumElements10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8) local_unnamed_addr #3

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

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

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

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #4

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9load_dataNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorI10TensorDescSaIS6_EEPS5_IS5_I6TensorSaIS9_EESaISB_EE(ptr dead_on_unwind noalias writable sret(%"class.std::vector.19") align 8, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #5 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef range(i32 0, 2) i32 @main(i32 noundef %0, ptr noundef %1) local_unnamed_addr #6 personality ptr @__gxx_personality_v0 {
  %3 = alloca %struct.ParseRes, align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator.11", align 1
  %6 = alloca %"class.std::shared_ptr.46", align 8
  %7 = alloca %"class.std::map.49", align 8
  %8 = alloca %"class.std::vector.0", align 8
  %9 = alloca %struct.TensorDesc, align 4
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator.11", align 1
  %12 = alloca %"class.std::vector.24", align 8
  %13 = alloca %"class.std::vector.24", align 8
  %14 = alloca %"class.std::vector.19", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator.11", align 1
  %18 = alloca %"class.std::vector.0", align 8
  %19 = alloca %"class.std::vector.0", align 8
  %20 = alloca %"class.std::vector.19", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator.11", align 1
  %24 = alloca %"class.std::vector.0", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %27 = alloca %"class.std::vector", align 8
  %28 = alloca %struct.TensorDesc, align 8
  %29 = alloca %struct.TensorDesc, align 4
  %30 = alloca %"class.std::map", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator.11", align 1
  %33 = alloca %"class.std::map", align 8
  %34 = alloca %"class.std::map.100", align 8
  %35 = alloca %"class.std::shared_ptr.8", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator.11", align 1
  %38 = alloca %"class.std::map.100", align 8
  %39 = alloca %"class.std::map.105", align 8
  %40 = alloca %class.Tensor, align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator.11", align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.p0(i64 152, ptr nonnull %3) #10
  call void @_ZN8ParseResC2Ev(ptr noundef nonnull align 8 dereferenceable(152) %3)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %44 unwind label %49

44:                                               ; preds = %2
  invoke void @_Z16parseCommandLineiPPcP8ParseResNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef %0, ptr noundef %1, ptr noundef nonnull %3, ptr noundef nonnull %4)
          to label %45 unwind label %51

45:                                               ; preds = %44
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #10
  %46 = getelementptr inbounds i8, ptr %3, i64 8
  %47 = load i8, ptr %46, align 8, !tbaa !5, !range !18, !noundef !19
  %48 = trunc nuw i8 %47 to i1
  br i1 %48, label %54, label %279

49:                                               ; preds = %2
  %50 = landingpad { ptr, i32 }
          cleanup
  br label %53

51:                                               ; preds = %44
  %52 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #10
  br label %53

53:                                               ; preds = %51, %49
  %.pn = phi { ptr, i32 } [ %52, %51 ], [ %50, %49 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #10
  br label %280

54:                                               ; preds = %45
  %55 = load ptr, ptr %3, align 8, !tbaa !20
  %56 = getelementptr inbounds i8, ptr %3, i64 24
  %57 = load i8, ptr %56, align 8, !tbaa !21, !range !18, !noundef !19
  %58 = trunc nuw i8 %57 to i1
  %59 = getelementptr inbounds i8, ptr %3, i64 16
  %60 = load ptr, ptr %59, align 8
  %.064 = select i1 %58, ptr %60, ptr @.str.7
  %61 = getelementptr inbounds i8, ptr %3, i64 40
  %62 = load i8, ptr %61, align 8, !tbaa !22, !range !18, !noundef !19
  %63 = trunc nuw i8 %62 to i1
  %64 = getelementptr inbounds i8, ptr %3, i64 32
  %65 = load ptr, ptr %64, align 8
  %.070 = select i1 %63, ptr %65, ptr @.str.7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #10
  call void @_Z14createPipelinePKcS0_S0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.46") align 8 %6, ptr noundef %.070, ptr noundef %55, ptr noundef nonnull @.str.7)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %7) #10
  %66 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #10
  invoke void @_ZN3CNN9get_inputB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::map.49") align 8 %7, ptr noundef nonnull align 8 dereferenceable(5265) %66)
          to label %67 unwind label %92

67:                                               ; preds = %54
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #10
  call void @_ZNSt6vectorI10TensorDescSaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #10
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %9) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %68 unwind label %94

68:                                               ; preds = %67
  %69 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrI6TensorESt4lessIS5_ESaISt4pairIKS5_S8_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %70 unwind label %96

70:                                               ; preds = %68
  %71 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt19__shared_ptr_accessI6TensorLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %69) #10
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %9, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %72 unwind label %96

72:                                               ; preds = %70
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #10
  invoke void @_ZNSt6vectorI10TensorDescSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 4 dereferenceable(92) %9)
          to label %73 unwind label %99

73:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #10
  call void @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #10
  call void @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %74 unwind label %101

74:                                               ; preds = %73
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef %.064, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %75 unwind label %103

75:                                               ; preds = %74
  invoke void @_ZNSt6vectorI10TensorDescSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(24) %8)
          to label %76 unwind label %105

76:                                               ; preds = %75
  invoke void @_Z9load_dataNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorI10TensorDescSaIS6_EEPS5_IS5_I6TensorSaIS9_EESaISB_EE(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.19") align 8 %14, ptr noundef nonnull %15, ptr noundef nonnull %18, ptr noundef nonnull %12)
          to label %77 unwind label %107

77:                                               ; preds = %76
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #10
  call void @_ZNSt6vectorI10TensorDescSaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #10
  invoke void @_ZNSt6vectorI10TensorDescSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 4 dereferenceable(92) %9)
          to label %78 unwind label %112

78:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %79 unwind label %114

79:                                               ; preds = %78
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef %.064, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %80 unwind label %116

80:                                               ; preds = %79
  invoke void @_ZNSt6vectorI10TensorDescSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %81 unwind label %118

81:                                               ; preds = %80
  invoke void @_Z9load_dataNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorI10TensorDescSaIS6_EEPS5_IS5_I6TensorSaIS9_EESaISB_EE(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.19") align 8 %20, ptr noundef nonnull %21, ptr noundef nonnull %24, ptr noundef nonnull %13)
          to label %82 unwind label %120

82:                                               ; preds = %81
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #10
  %83 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.20)
          to label %84 unwind label %125

84:                                               ; preds = %82
  %85 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %86 unwind label %125

86:                                               ; preds = %84
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #10
  %87 = call ptr @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #10
  store ptr %87, ptr %25, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #10
  %88 = call ptr @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #10
  store ptr %88, ptr %26, align 8
  %89 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt6vectorI6TensorSaIS2_EES1_IS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #10
  br i1 %89, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %86
  %90 = getelementptr inbounds i8, ptr %9, i64 12
  br label %127

._crit_edge:                                      ; preds = %.loopexit, %86
  %.069.lcssa = phi double [ 0.000000e+00, %86 ], [ %170, %.loopexit ]
  %.068.lcssa = phi i32 [ 0, %86 ], [ %247, %.loopexit ]
  %.065.lcssa = phi i32 [ 0, %86 ], [ %.267, %.loopexit ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  %91 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.23)
          to label %258 unwind label %125

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

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

96:                                               ; preds = %70, %68
  %97 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  br label %98

98:                                               ; preds = %96, %94
  %.pn73 = phi { ptr, i32 } [ %97, %96 ], [ %95, %94 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #10
  br label %277

99:                                               ; preds = %72
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %277

101:                                              ; preds = %73
  %102 = landingpad { ptr, i32 }
          cleanup
  br label %111

103:                                              ; preds = %74
  %104 = landingpad { ptr, i32 }
          cleanup
  br label %110

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

107:                                              ; preds = %76
  %108 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #10
  br label %109

109:                                              ; preds = %107, %105
  %.pn75 = phi { ptr, i32 } [ %108, %107 ], [ %106, %105 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #10
  br label %110

110:                                              ; preds = %109, %103
  %.pn75.pn = phi { ptr, i32 } [ %.pn75, %109 ], [ %104, %103 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #10
  br label %111

111:                                              ; preds = %110, %101
  %.pn75.pn.pn = phi { ptr, i32 } [ %.pn75.pn, %110 ], [ %102, %101 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #10
  br label %276

112:                                              ; preds = %77
  %113 = landingpad { ptr, i32 }
          cleanup
  br label %275

114:                                              ; preds = %78
  %115 = landingpad { ptr, i32 }
          cleanup
  br label %124

116:                                              ; preds = %79
  %117 = landingpad { ptr, i32 }
          cleanup
  br label %123

118:                                              ; preds = %80
  %119 = landingpad { ptr, i32 }
          cleanup
  br label %122

120:                                              ; preds = %81
  %121 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  br label %122

122:                                              ; preds = %120, %118
  %.pn79 = phi { ptr, i32 } [ %121, %120 ], [ %119, %118 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  br label %123

123:                                              ; preds = %122, %116
  %.pn79.pn = phi { ptr, i32 } [ %.pn79, %122 ], [ %117, %116 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  br label %124

124:                                              ; preds = %123, %114
  %.pn79.pn.pn = phi { ptr, i32 } [ %.pn79.pn, %123 ], [ %115, %114 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #10
  br label %274

125:                                              ; preds = %258, %._crit_edge, %84, %82
  %126 = landingpad { ptr, i32 }
          cleanup
  br label %273

127:                                              ; preds = %.lr.ph, %.loopexit
  %.065172 = phi i32 [ 0, %.lr.ph ], [ %.267, %.loopexit ]
  %.068171 = phi i32 [ 0, %.lr.ph ], [ %247, %.loopexit ]
  %.069170 = phi double [ 0.000000e+00, %.lr.ph ], [ %170, %.loopexit ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %27) #10
  %128 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt6vectorI6TensorSaIS2_EES1_IS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #10
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %27, ptr noundef nonnull align 8 dereferenceable(24) %128)
          to label %129 unwind label %193

129:                                              ; preds = %127
  %130 = zext i32 %.068171 to i64
  %131 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %130) #10
  %132 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %131)
          to label %133 unwind label %195

133:                                              ; preds = %129
  %134 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %132, ptr noundef nonnull @.str.21)
          to label %135 unwind label %195

135:                                              ; preds = %133
  %136 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %134, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %137 unwind label %195

137:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %28) #10
  %138 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef 0) #10
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %28, ptr noundef nonnull align 8 dereferenceable(32) %138)
          to label %139 unwind label %197

139:                                              ; preds = %137
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %29) #10
  %140 = load i32, ptr %9, align 4, !tbaa !23
  %141 = call noundef i32 @_Z17tensorNumElements10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %28)
  %142 = load i32, ptr %90, align 4, !tbaa !27
  %143 = udiv i32 %141, %142
  invoke void @_Z8tensor3d8DataTypejjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %29, i32 noundef %140, i32 noundef 1, i32 noundef %143, i32 noundef %142)
          to label %144 unwind label %199

144:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %30) #10
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %30) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %145 unwind label %201

145:                                              ; preds = %144
  %146 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %30, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %147 unwind label %203

147:                                              ; preds = %145
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(92) %146, ptr noundef nonnull align 4 dereferenceable(92) %29, i64 92, i1 false), !tbaa.struct !28
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #10
  %148 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #10
  invoke void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2ERKSD_(ptr noundef nonnull align 8 dereferenceable(48) %33, ptr noundef nonnull align 8 dereferenceable(48) %30)
          to label %149 unwind label %206

149:                                              ; preds = %147
  invoke void @_ZN3CNN7rereadyESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS6_ESaISt4pairIKS6_S7_EEE(ptr noundef nonnull align 8 dereferenceable(5265) %148, ptr noundef nonnull %33)
          to label %150 unwind label %208

150:                                              ; preds = %149
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %34) #10
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %34) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #10
  %151 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef 0) #10
  %152 = call noundef ptr @_ZN6Tensor10get_memoryEv(ptr noundef nonnull align 8 dereferenceable(32) %151)
  call void @_ZN9CpuMemory14get_shared_ptrEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.8") align 8 %35, ptr noundef nonnull align 8 dereferenceable(125) %152)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %153 unwind label %210

153:                                              ; preds = %150
  %154 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %34, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %155 unwind label %212

155:                                              ; preds = %153
  %156 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %154, ptr noundef nonnull align 8 dereferenceable(16) %35) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #10
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #10
  %157 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #10
  invoke void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEC2ERKSE_(ptr noundef nonnull align 8 dereferenceable(48) %38, ptr noundef nonnull align 8 dereferenceable(48) %34)
          to label %158 unwind label %215

158:                                              ; preds = %155
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %39, i8 0, i64 48, i1 false)
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %39) #10
  invoke void @_ZN3CNN19set_input_by_assignESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS6_ESaISt4pairIKS6_S8_EEES0_IS6_PfSA_SaISB_ISC_SG_EEE(ptr noundef nonnull align 8 dereferenceable(5265) %157, ptr noundef nonnull %38, ptr noundef nonnull %39)
          to label %159 unwind label %217

159:                                              ; preds = %158
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %39) #10
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %38) #10
  %160 = invoke noundef double @_Z10ut_time_msv()
          to label %161 unwind label %219

161:                                              ; preds = %159
  %162 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #10
  %163 = load ptr, ptr %162, align 8, !tbaa !32
  %164 = getelementptr inbounds i8, ptr %163, i64 24
  %165 = load ptr, ptr %164, align 8
  invoke void %165(ptr noundef nonnull align 8 dereferenceable(5265) %162)
          to label %166 unwind label %219

166:                                              ; preds = %161
  %167 = invoke noundef double @_Z10ut_time_msv()
          to label %168 unwind label %221

168:                                              ; preds = %166
  %169 = fsub double %167, %160
  %170 = fadd double %.069170, %169
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #10
  %171 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %172 unwind label %223

172:                                              ; preds = %168
  invoke void @_ZN3CNN18get_tensor_by_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%class.Tensor) align 8 %40, ptr noundef nonnull align 8 dereferenceable(5265) %171, ptr noundef nonnull %41)
          to label %173 unwind label %225

173:                                              ; preds = %172
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #10
  invoke void @_ZN6Tensor6stringB5cxx11Ei(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(32) %40, i32 noundef 32)
          to label %174 unwind label %228

174:                                              ; preds = %173
  %175 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %176 unwind label %230

176:                                              ; preds = %174
  %177 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %175, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %178 unwind label %230

178:                                              ; preds = %176
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #10
  %179 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #10
  %180 = icmp ugt i64 %179, %130
  br i1 %180, label %181, label %.loopexit

181:                                              ; preds = %178
  %182 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %130) #10
  %183 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %182, i64 noundef 0) #10
  %184 = call noundef ptr @_ZN6Tensor10get_memoryEv(ptr noundef nonnull align 8 dereferenceable(32) %183)
  %185 = call noundef ptr @_ZN9CpuMemory7get_ptrEv(ptr noundef nonnull align 8 dereferenceable(125) %184)
  %186 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %.preheader.preheader unwind label %233

.preheader.preheader:                             ; preds = %181
  %wide.trip.count = zext i32 %186 to i64
  br label %.preheader

.preheader:                                       ; preds = %.preheader.preheader, %243
  %indvars.iv = phi i64 [ 0, %.preheader.preheader ], [ %indvars.iv.next, %243 ]
  %187 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %130) #10
  %188 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %187, i64 noundef 0) #10
  %189 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %188)
          to label %190 unwind label %235

190:                                              ; preds = %.preheader
  %191 = zext i32 %189 to i64
  %192 = icmp ult i64 %indvars.iv, %191
  br i1 %192, label %237, label %.loopexit

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

195:                                              ; preds = %135, %133, %129
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %256

197:                                              ; preds = %137
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %255

199:                                              ; preds = %139
  %200 = landingpad { ptr, i32 }
          cleanup
  br label %254

201:                                              ; preds = %144
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %205

203:                                              ; preds = %145
  %204 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #10
  br label %205

205:                                              ; preds = %203, %201
  %.pn83 = phi { ptr, i32 } [ %204, %203 ], [ %202, %201 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #10
  br label %253

206:                                              ; preds = %147
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %253

208:                                              ; preds = %149
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #10
  br label %253

210:                                              ; preds = %150
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %214

212:                                              ; preds = %153
  %213 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  br label %214

214:                                              ; preds = %212, %210
  %.pn85 = phi { ptr, i32 } [ %213, %212 ], [ %211, %210 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #10
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #10
  br label %252

215:                                              ; preds = %155
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %252

217:                                              ; preds = %158
  %218 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %39) #10
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %38) #10
  br label %252

219:                                              ; preds = %161, %159
  %220 = landingpad { ptr, i32 }
          cleanup
  br label %252

221:                                              ; preds = %166
  %222 = landingpad { ptr, i32 }
          cleanup
  br label %252

223:                                              ; preds = %168
  %224 = landingpad { ptr, i32 }
          cleanup
  br label %227

225:                                              ; preds = %172
  %226 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #10
  br label %227

227:                                              ; preds = %225, %223
  %.pn87 = phi { ptr, i32 } [ %226, %225 ], [ %224, %223 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #10
  br label %251

228:                                              ; preds = %173
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %232

230:                                              ; preds = %176, %174
  %231 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  br label %232

232:                                              ; preds = %230, %228
  %.pn89 = phi { ptr, i32 } [ %231, %230 ], [ %229, %228 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #10
  br label %250

233:                                              ; preds = %181
  %234 = landingpad { ptr, i32 }
          cleanup
  br label %250

235:                                              ; preds = %238, %.preheader
  %236 = landingpad { ptr, i32 }
          cleanup
  br label %250

237:                                              ; preds = %190
  %exitcond.not = icmp eq i64 %indvars.iv, %wide.trip.count
  br i1 %exitcond.not, label %245, label %238

238:                                              ; preds = %237
  %239 = getelementptr inbounds float, ptr %185, i64 %indvars.iv
  %240 = load float, ptr %239, align 4, !tbaa !34
  %241 = trunc nuw i64 %indvars.iv to i32
  %242 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %40, i32 noundef %241)
          to label %243 unwind label %235

243:                                              ; preds = %238
  %244 = fcmp une float %240, %242
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  br i1 %244, label %245, label %.preheader, !llvm.loop !35

245:                                              ; preds = %243, %237
  %246 = add i32 %.065172, 1
  br label %.loopexit

.loopexit:                                        ; preds = %190, %245, %178
  %.267 = phi i32 [ %.065172, %178 ], [ %246, %245 ], [ %.065172, %190 ]
  %247 = add i32 %.068171, 1
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #10
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %34) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %34) #10
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %30) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %29) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %28) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %27) #10
  %248 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt6vectorI6TensorSaIS2_EES1_IS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #10
  %249 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt6vectorI6TensorSaIS2_EES1_IS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #10
  br i1 %249, label %127, label %._crit_edge

250:                                              ; preds = %233, %235, %232
  %.pn91.pn = phi { ptr, i32 } [ %.pn89, %232 ], [ %236, %235 ], [ %234, %233 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  br label %251

251:                                              ; preds = %250, %227
  %.pn91.pn.pn = phi { ptr, i32 } [ %.pn91.pn, %250 ], [ %.pn87, %227 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #10
  br label %252

252:                                              ; preds = %219, %251, %221, %217, %215, %214
  %.pn91.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %218, %217 ], [ %216, %215 ], [ %.pn85, %214 ], [ %220, %219 ], [ %.pn91.pn.pn, %251 ], [ %222, %221 ]
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %34) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %34) #10
  br label %253

253:                                              ; preds = %252, %208, %206, %205
  %.pn91.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn.pn.pn.pn, %252 ], [ %209, %208 ], [ %207, %206 ], [ %.pn83, %205 ]
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %30) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %30) #10
  br label %254

254:                                              ; preds = %253, %199
  %.pn91.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn.pn.pn.pn.pn, %253 ], [ %200, %199 ]
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %29) #10
  br label %255

255:                                              ; preds = %254, %197
  %.pn91.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn.pn.pn.pn.pn.pn, %254 ], [ %198, %197 ]
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %28) #10
  br label %256

256:                                              ; preds = %255, %195
  %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn.pn.pn.pn.pn.pn.pn, %255 ], [ %196, %195 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #10
  br label %257

257:                                              ; preds = %256, %193
  %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn, %256 ], [ %194, %193 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  br label %273

258:                                              ; preds = %._crit_edge
  %259 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %260 unwind label %125

260:                                              ; preds = %258
  %261 = sub i32 %.068.lcssa, %.065.lcssa
  %262 = uitofp i32 %261 to double
  %263 = fmul double %262, 1.000000e+02
  %264 = uitofp i32 %.068.lcssa to double
  %265 = fdiv double %263, %264
  %266 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.24, double noundef %265)
  %267 = load ptr, ptr @stdout, align 8, !tbaa !37
  %268 = call i32 @fflush(ptr noundef %267)
  %269 = fdiv double %.069.lcssa, %264
  %270 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.25, double noundef %269)
  %271 = load ptr, ptr @stdout, align 8, !tbaa !37
  %272 = call i32 @fflush(ptr noundef %271)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #10
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #10
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #10
  call void @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #10
  call void @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %9) #10
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #10
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrI6TensorESt4lessIS5_ESaISt4pairIKS5_S8_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %7) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7) #10
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #10
  br label %279

273:                                              ; preds = %257, %125
  %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %257 ], [ %126, %125 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #10
  br label %274

274:                                              ; preds = %273, %124
  %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %273 ], [ %.pn79.pn.pn, %124 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #10
  br label %275

275:                                              ; preds = %274, %112
  %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %274 ], [ %113, %112 ]
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #10
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #10
  br label %276

276:                                              ; preds = %275, %111
  %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %275 ], [ %.pn75.pn.pn, %111 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #10
  call void @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #10
  call void @_ZNSt6vectorIS_I6TensorSaIS0_EESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #10
  br label %277

277:                                              ; preds = %276, %99, %98
  %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %276 ], [ %100, %99 ], [ %.pn73, %98 ]
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %9) #10
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #10
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrI6TensorESt4lessIS5_ESaISt4pairIKS5_S8_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %7) #10
  br label %278

278:                                              ; preds = %277, %92
  %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %277 ], [ %93, %92 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7) #10
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #10
  br label %280

279:                                              ; preds = %45, %260
  %.031 = phi i32 [ 0, %260 ], [ 1, %45 ]
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %3) #10
  ret i32 %.031

280:                                              ; preds = %278, %53
  %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %278 ], [ %.pn, %53 ]
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %3) #10
  resume { ptr, i32 } %.pn91.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ParseResC2Ev(ptr noundef nonnull align 8 dereferenceable(152)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z16parseCommandLineiPPcP8ParseResNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z14createPipelinePKcS0_S0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.46") align 8, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

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

declare void @_ZN3CNN9get_inputB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::map.49") align 8, ptr noundef nonnull align 8 dereferenceable(5265)) local_unnamed_addr #8

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrI6TensorESt4lessIS5_ESaISt4pairIKS5_S8_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Tensor8get_descEv(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI10TensorDescSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(92)) local_unnamed_addr #5 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(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 #7

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #7

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #7

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z8tensor3d8DataTypejjj(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 align 2

declare void @_ZN3CNN7rereadyESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS6_ESaISt4pairIKS6_S7_EEE(ptr noundef nonnull align 8 dereferenceable(5265), ptr noundef) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2ERKSD_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 align 2

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

declare void @_ZN3CNN19set_input_by_assignESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS6_ESaISt4pairIKS6_S8_EEES0_IS6_PfSA_SaISB_ISC_SG_EEE(ptr noundef nonnull align 8 dereferenceable(5265), ptr noundef, ptr noundef) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEC2ERKSE_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 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) #9

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

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

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

declare noundef double @_Z10ut_time_msv() local_unnamed_addr #8

declare void @_ZN3CNN18get_tensor_by_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%class.Tensor) align 8, ptr noundef nonnull align 8 dereferenceable(5265), ptr noundef) local_unnamed_addr #8

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #5 align 2

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !11, i64 8}
!6 = !{!"_ZTS8ParseRes", !7, i64 0, !7, i64 16, !7, i64 32, !7, i64 48, !12, i64 64, !14, i64 72, !16, i64 80, !16, i64 88, !16, i64 96, !7, i64 104, !7, i64 120, !7, i64 136}
!7 = !{!"_ZTSSt4pairIPcbE", !8, i64 0, !11, i64 8}
!8 = !{!"any pointer", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"bool", !9, i64 0}
!12 = !{!"_ZTSSt4pairI11ImageFormatbE", !13, i64 0, !11, i64 4}
!13 = !{!"_ZTS11ImageFormat", !9, i64 0}
!14 = !{!"_ZTSSt4pairIfbE", !15, i64 0, !11, i64 4}
!15 = !{!"float", !9, i64 0}
!16 = !{!"_ZTSSt4pairIibE", !17, i64 0, !11, i64 4}
!17 = !{!"int", !9, i64 0}
!18 = !{i8 0, i8 2}
!19 = !{}
!20 = !{!6, !8, i64 0}
!21 = !{!6, !11, i64 24}
!22 = !{!6, !11, i64 40}
!23 = !{!24, !25, i64 0}
!24 = !{!"_ZTS10TensorDesc", !25, i64 0, !26, i64 4, !17, i64 8, !9, i64 12}
!25 = !{!"_ZTS8DataType", !9, i64 0}
!26 = !{!"_ZTS10DataFormat", !9, i64 0}
!27 = !{!17, !17, i64 0}
!28 = !{i64 0, i64 4, !29, i64 4, i64 4, !30, i64 8, i64 4, !27, i64 12, i64 80, !31}
!29 = !{!25, !25, i64 0}
!30 = !{!26, !26, i64 0}
!31 = !{!9, !9, i64 0}
!32 = !{!33, !33, i64 0}
!33 = !{!"vtable pointer", !10, i64 0}
!34 = !{!15, !15, i64 0}
!35 = distinct !{!35, !36}
!36 = !{!"llvm.loop.mustprogress"}
!37 = !{!8, !8, i64 0}


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