; LLVM IR from aspuru-guzik-group/qtorch :: src (main)

; 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 }
%"class.std::shared_ptr.32" = type { %"class.std::__shared_ptr.33" }
%"class.std::__shared_ptr.33" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::vector.55" = type { %"struct.std::_Vector_base.56" }
%"struct.std::_Vector_base.56" = 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 }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.60" = type { %"class.std::__shared_ptr.61" }
%"class.std::__shared_ptr.61" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.63" = type { %"class.std::__shared_ptr.64" }
%"class.std::__shared_ptr.64" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.66" = type { %"class.std::__shared_ptr.67" }
%"class.std::__shared_ptr.67" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.69" = type { %"class.std::__shared_ptr.70" }
%"class.std::__shared_ptr.70" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.72" = type { %"class.std::__shared_ptr.73" }
%"class.std::__shared_ptr.73" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.75" = type { %"class.std::__shared_ptr.76" }
%"class.std::__shared_ptr.76" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.78" = type { %"class.std::__shared_ptr.79" }
%"class.std::__shared_ptr.79" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.81" = type { %"class.std::__shared_ptr.82" }
%"class.std::__shared_ptr.82" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.84" = type { %"class.std::__shared_ptr.85" }
%"class.std::__shared_ptr.85" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.87" = type { %"class.std::__shared_ptr.88" }
%"class.std::__shared_ptr.88" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.90" = type { %"class.std::__shared_ptr.91" }
%"class.std::__shared_ptr.91" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.93" = type { %"class.std::__shared_ptr.94" }
%"class.std::__shared_ptr.94" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.96" = type { %"class.std::__shared_ptr.97" }
%"class.std::__shared_ptr.97" = type { ptr, %"class.std::__shared_count" }
%"struct.std::pair.101" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.0 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.0 = type { i64, [8 x i8] }
%"struct.std::pair.99" = type <{ %"struct.std::__detail::_Node_iterator", i8, [7 x i8] }>
%"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%"class.std::shared_ptr.103" = type { %"class.std::__shared_ptr.104" }
%"class.std::__shared_ptr.104" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.106" = type { %"class.std::__shared_ptr.107" }
%"class.std::__shared_ptr.107" = type { ptr, %"class.std::__shared_count" }
%"class.__gnu_cxx::__normal_iterator.109" = type { ptr }
%"class.qtorch::Network" = type <{ %"class.std::vector.14", %"class.std::vector.4", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::complex", %"class.std::mutex", i32, i32, i8, i8, [6 x i8], %"class.std::vector.14", %"class.std::vector.19", %"class.std::vector.14", %"class.std::unordered_map", %"class.std::unordered_map", i64, i32, [4 x i8] }>
%"class.std::vector.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = type { %"struct.std::_Vector_base<std::shared_ptr<qtorch::Wire>, std::allocator<std::shared_ptr<qtorch::Wire>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<qtorch::Wire>, std::allocator<std::shared_ptr<qtorch::Wire>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<qtorch::Wire>, std::allocator<std::shared_ptr<qtorch::Wire>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<qtorch::Wire>, std::allocator<std::shared_ptr<qtorch::Wire>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::complex" = type { { double, double } }
%"class.std::mutex" = type { %"class.std::__mutex_base" }
%"class.std::__mutex_base" = type { %union.pthread_mutex_t }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::vector.19" = type { %"struct.std::_Vector_base.20" }
%"struct.std::_Vector_base.20" = type { %"struct.std::_Vector_base<std::vector<std::shared_ptr<qtorch::Node>>, std::allocator<std::vector<std::shared_ptr<qtorch::Node>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<std::shared_ptr<qtorch::Node>>, std::allocator<std::vector<std::shared_ptr<qtorch::Node>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<std::shared_ptr<qtorch::Node>>, std::allocator<std::vector<std::shared_ptr<qtorch::Node>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<std::shared_ptr<qtorch::Node>>, std::allocator<std::vector<std::shared_ptr<qtorch::Node>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.14" = type { %"struct.std::_Vector_base.15" }
%"struct.std::_Vector_base.15" = type { %"struct.std::_Vector_base<std::shared_ptr<qtorch::Node>, std::allocator<std::shared_ptr<qtorch::Node>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<qtorch::Node>, std::allocator<std::shared_ptr<qtorch::Node>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<qtorch::Node>, std::allocator<std::shared_ptr<qtorch::Node>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<qtorch::Node>, std::allocator<std::shared_ptr<qtorch::Node>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.qtorch::Node" = type { ptr, i32, i32, i32, i8, %"struct.std::pair", i8, %"class.std::vector", %"class.std::vector.4", %"class.std::vector.9", i32, %"class.std::__cxx11::basic_string" }
%"struct.std::pair" = type { i32, i32 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::complex<double>, std::allocator<std::complex<double>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::complex<double>, std::allocator<std::complex<double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::complex<double>, std::allocator<std::complex<double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::complex<double>, std::allocator<std::complex<double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.9" = type { %"struct.std::_Vector_base.10" }
%"struct.std::_Vector_base.10" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@_ZTIN6qtorch17InvalidFileFormatE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [2 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

declare i32 @__gxx_personality_v0(...)

; 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) #1

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

declare ptr @__cxa_allocate_exception(i64)

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

declare void @__cxa_throw(ptr, ptr, ptr)

; 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 @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.32") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) #1

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152), i32 noundef) #1 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef) #5 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef) #1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6qtorch7Network9ParseNodeERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(380) %0, ptr noundef nonnull align 8 dereferenceable(32) %1) #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca %"class.std::vector.55", align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca %"class.std::shared_ptr", align 8
  %10 = alloca float, align 4
  %11 = alloca %"class.std::shared_ptr.60", align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::shared_ptr", align 8
  %14 = alloca %"class.std::shared_ptr.32", align 8
  %15 = alloca ptr, align 8
  %16 = alloca float, align 4
  %17 = alloca %"class.std::shared_ptr.63", align 8
  %18 = alloca i32, align 4
  %19 = alloca %"class.std::shared_ptr", align 8
  %20 = alloca %"class.std::shared_ptr.32", align 8
  %21 = alloca ptr, align 8
  %22 = alloca float, align 4
  %23 = alloca %"class.std::shared_ptr.66", align 8
  %24 = alloca i32, align 4
  %25 = alloca %"class.std::shared_ptr", align 8
  %26 = alloca %"class.std::shared_ptr.32", align 8
  %27 = alloca ptr, align 8
  %28 = alloca float, align 4
  %29 = alloca %"class.std::shared_ptr.69", align 8
  %30 = alloca i32, align 4
  %31 = alloca %"class.std::shared_ptr", align 8
  %32 = alloca %"class.std::shared_ptr.32", align 8
  %33 = alloca ptr, align 8
  %34 = alloca %"class.std::shared_ptr.72", align 8
  %35 = alloca i32, align 4
  %36 = alloca %"class.std::shared_ptr", align 8
  %37 = alloca %"class.std::shared_ptr.32", align 8
  %38 = alloca ptr, align 8
  %39 = alloca %"class.std::shared_ptr.75", align 8
  %40 = alloca i32, align 4
  %41 = alloca %"class.std::shared_ptr", align 8
  %42 = alloca %"class.std::shared_ptr.32", align 8
  %43 = alloca ptr, align 8
  %44 = alloca %"class.std::shared_ptr.78", align 8
  %45 = alloca i32, align 4
  %46 = alloca %"class.std::shared_ptr", align 8
  %47 = alloca %"class.std::shared_ptr.32", align 8
  %48 = alloca ptr, align 8
  %49 = alloca %"class.std::shared_ptr.81", align 8
  %50 = alloca i32, align 4
  %51 = alloca %"class.std::shared_ptr", align 8
  %52 = alloca %"class.std::shared_ptr.32", align 8
  %53 = alloca ptr, align 8
  %54 = alloca %"class.std::shared_ptr.84", align 8
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca %"class.std::shared_ptr", align 8
  %58 = alloca %"class.std::shared_ptr", align 8
  %59 = alloca %"class.std::shared_ptr.32", align 8
  %60 = alloca ptr, align 8
  %61 = alloca %"class.std::shared_ptr.32", align 8
  %62 = alloca ptr, align 8
  %63 = alloca %"class.std::shared_ptr.87", align 8
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca %"class.std::shared_ptr", align 8
  %67 = alloca %"class.std::shared_ptr", align 8
  %68 = alloca %"class.std::shared_ptr.32", align 8
  %69 = alloca ptr, align 8
  %70 = alloca %"class.std::shared_ptr.32", align 8
  %71 = alloca ptr, align 8
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca %"class.std::shared_ptr.90", align 8
  %75 = alloca %"class.std::shared_ptr", align 8
  %76 = alloca %"class.std::shared_ptr", align 8
  %77 = alloca %"class.std::shared_ptr.32", align 8
  %78 = alloca ptr, align 8
  %79 = alloca %"class.std::shared_ptr.32", align 8
  %80 = alloca ptr, align 8
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca %"class.std::shared_ptr.93", align 8
  %84 = alloca %"class.std::shared_ptr", align 8
  %85 = alloca %"class.std::shared_ptr", align 8
  %86 = alloca %"class.std::shared_ptr.32", align 8
  %87 = alloca ptr, align 8
  %88 = alloca %"class.std::shared_ptr.32", align 8
  %89 = alloca ptr, align 8
  %90 = alloca double, align 8
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca %"class.std::shared_ptr.96", align 8
  %94 = alloca %"class.std::shared_ptr", align 8
  %95 = alloca %"class.std::shared_ptr", align 8
  %96 = alloca %"class.std::shared_ptr.32", align 8
  %97 = alloca ptr, align 8
  %98 = alloca %"class.std::shared_ptr.32", align 8
  %99 = alloca ptr, align 8
  %100 = alloca %"struct.std::pair.101", align 8
  %101 = alloca %"struct.std::pair.99", align 8
  %102 = alloca %"struct.std::pair.101", align 8
  %103 = alloca %"struct.std::pair.99", align 8
  %104 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %105 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %106 = alloca %"class.std::shared_ptr.103", align 8
  %107 = alloca i32, align 4
  %108 = alloca %"class.std::shared_ptr", align 8
  %109 = alloca %"class.std::shared_ptr.32", align 8
  %110 = alloca ptr, align 8
  %111 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %112 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %113 = alloca %"class.std::shared_ptr.106", align 8
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca %"class.std::shared_ptr", align 8
  %117 = alloca %"class.std::shared_ptr", align 8
  %118 = alloca %"class.std::shared_ptr.32", align 8
  %119 = alloca ptr, align 8
  %120 = alloca %"class.std::shared_ptr.32", align 8
  %121 = alloca ptr, align 8
  %122 = alloca ptr, align 8
  %123 = alloca %"class.__gnu_cxx::__normal_iterator.109", align 8
  %124 = alloca %"class.__gnu_cxx::__normal_iterator.109", align 8
  %125 = alloca ptr, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %126 = load ptr, ptr %3, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %5) #7
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %127 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZN6qtorch7Network11ParseTokensERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSt6vectorIS6_SaIS6_EE(ptr noundef nonnull align 8 dereferenceable(380) %126, ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %128 unwind label %132

128:                                              ; preds = %2
  %129 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %130 = icmp eq i64 %129, 0
  br i1 %130, label %131, label %136

131:                                              ; preds = %128
  store i32 1, ptr %8, align 4
  br label %1876

132:                                              ; preds = %2
  %133 = landingpad { ptr, i32 }
          cleanup
  %134 = extractvalue { ptr, i32 } %133, 0
  store ptr %134, ptr %6, align 8
  %135 = extractvalue { ptr, i32 } %133, 1
  store i32 %135, ptr %7, align 4
  br label %1880

136:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  %137 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %138 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef @.str.13)
          to label %139 unwind label %160

139:                                              ; preds = %136
  br i1 %138, label %144, label %140

140:                                              ; preds = %139
  %141 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %142 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef @.str.14)
          to label %143 unwind label %160

143:                                              ; preds = %140
  br i1 %142, label %144, label %233

144:                                              ; preds = %143, %139
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  %145 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %146 = invoke noundef float @_ZNSt7__cxx114stofERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPm(ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef null)
          to label %147 unwind label %164

147:                                              ; preds = %144
  store float %146, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #7
  invoke void @_ZSt11make_sharedIN6qtorch6RxNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.60") align 8 %11, ptr noundef nonnull align 4 dereferenceable(4) %10)
          to label %148 unwind label %168

148:                                              ; preds = %147
  %149 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_6RxNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %11) #7
  call void @_ZNSt12__shared_ptrIN6qtorch6RxNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  %150 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 2) #7
  %151 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef null, i32 noundef 10)
          to label %152 unwind label %172

152:                                              ; preds = %148
  store i32 %151, ptr %12, align 4, !tbaa !11
  %153 = load i32, ptr %12, align 4, !tbaa !11
  %154 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %155 = load i32, ptr %154, align 8, !tbaa !13
  %156 = sub nsw i32 %155, 1
  %157 = icmp sgt i32 %153, %156
  br i1 %157, label %158, label %176

158:                                              ; preds = %152
  %159 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %159, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %159) #7
  invoke void @__cxa_throw(ptr %159, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %172

160:                                              ; preds = %1866, %1848, %1846, %1821, %1819, %1544, %1520, %1376, %1240, %1104, %968, %832, %751, %670, %589, %508, %419, %330, %326, %237, %233, %140, %136
  %161 = landingpad { ptr, i32 }
          cleanup
  %162 = extractvalue { ptr, i32 } %161, 0
  store ptr %162, ptr %6, align 8
  %163 = extractvalue { ptr, i32 } %161, 1
  store i32 %163, ptr %7, align 4
  br label %1879

164:                                              ; preds = %144
  %165 = landingpad { ptr, i32 }
          cleanup
  %166 = extractvalue { ptr, i32 } %165, 0
  store ptr %166, ptr %6, align 8
  %167 = extractvalue { ptr, i32 } %165, 1
  store i32 %167, ptr %7, align 4
  br label %232

168:                                              ; preds = %147
  %169 = landingpad { ptr, i32 }
          cleanup
  %170 = extractvalue { ptr, i32 } %169, 0
  store ptr %170, ptr %6, align 8
  %171 = extractvalue { ptr, i32 } %169, 1
  store i32 %171, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #7
  br label %232

172:                                              ; preds = %179, %176, %158, %148
  %173 = landingpad { ptr, i32 }
          cleanup
  %174 = extractvalue { ptr, i32 } %173, 0
  store ptr %174, ptr %6, align 8
  %175 = extractvalue { ptr, i32 } %173, 1
  store i32 %175, ptr %7, align 4
  br label %231

176:                                              ; preds = %152
  %177 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %178 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %177)
          to label %179 unwind label %172

179:                                              ; preds = %176
  %180 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %181 = load i32, ptr %12, align 4, !tbaa !11
  %182 = sext i32 %181 to i64
  %183 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %180, i64 noundef %182) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %178, ptr noundef nonnull align 8 dereferenceable(16) %183)
          to label %184 unwind label %172

184:                                              ; preds = %179
  %185 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %186 = load i32, ptr %12, align 4, !tbaa !11
  %187 = sext i32 %186 to i64
  %188 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %185, i64 noundef %187) #7
  %189 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %188) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %189, ptr noundef %13)
          to label %190 unwind label %218

190:                                              ; preds = %184
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  store ptr null, ptr %15, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %14, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %191 unwind label %222

191:                                              ; preds = %190
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  %192 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %193 = load i32, ptr %12, align 4, !tbaa !11
  %194 = sext i32 %193 to i64
  %195 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %192, i64 noundef %194) #7
  %196 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %195, ptr noundef nonnull align 8 dereferenceable(16) %14) #7
  %197 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %198 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %197)
          to label %199 unwind label %226

199:                                              ; preds = %191
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %198, ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %200 unwind label %226

200:                                              ; preds = %199
  %201 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %202 = load i32, ptr %12, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %201, i32 noundef %202)
          to label %203 unwind label %226

203:                                              ; preds = %200
  %204 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %205 = load i32, ptr %12, align 4, !tbaa !11
  %206 = sext i32 %205 to i64
  %207 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %204, i64 noundef %206) #7
  %208 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %207) #7
  %209 = sub i64 %208, 1
  %210 = trunc i64 %209 to i32
  %211 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %212 = getelementptr inbounds %"class.qtorch::Node", ptr %211, i32 0, i32 3
  store i32 %210, ptr %212, align 8, !tbaa !41
  %213 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %214 = load i32, ptr %12, align 4, !tbaa !11
  %215 = sext i32 %214 to i64
  %216 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %213, i64 noundef %215) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %216, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %217 unwind label %226

217:                                              ; preds = %203
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  br label %1866

218:                                              ; preds = %184
  %219 = landingpad { ptr, i32 }
          cleanup
  %220 = extractvalue { ptr, i32 } %219, 0
  store ptr %220, ptr %6, align 8
  %221 = extractvalue { ptr, i32 } %219, 1
  store i32 %221, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #7
  br label %231

222:                                              ; preds = %190
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %6, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  br label %230

226:                                              ; preds = %203, %200, %199, %191
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %6, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #7
  br label %230

230:                                              ; preds = %226, %222
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #7
  br label %231

231:                                              ; preds = %230, %218, %172
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br label %232

232:                                              ; preds = %231, %168, %164
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  br label %1879

233:                                              ; preds = %143
  %234 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %235 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %234, ptr noundef @.str.15)
          to label %236 unwind label %160

236:                                              ; preds = %233
  br i1 %235, label %241, label %237

237:                                              ; preds = %236
  %238 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %239 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %238, ptr noundef @.str.16)
          to label %240 unwind label %160

240:                                              ; preds = %237
  br i1 %239, label %241, label %326

241:                                              ; preds = %240, %236
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  %242 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %243 = invoke noundef float @_ZNSt7__cxx114stofERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPm(ptr noundef nonnull align 8 dereferenceable(32) %242, ptr noundef null)
          to label %244 unwind label %257

244:                                              ; preds = %241
  store float %243, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #7
  invoke void @_ZSt11make_sharedIN6qtorch6RyNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.63") align 8 %17, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %245 unwind label %261

245:                                              ; preds = %244
  %246 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_6RyNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %17) #7
  call void @_ZNSt12__shared_ptrIN6qtorch6RyNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  %247 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 2) #7
  %248 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %247, ptr noundef null, i32 noundef 10)
          to label %249 unwind label %265

249:                                              ; preds = %245
  store i32 %248, ptr %18, align 4, !tbaa !11
  %250 = load i32, ptr %18, align 4, !tbaa !11
  %251 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %252 = load i32, ptr %251, align 8, !tbaa !13
  %253 = sub nsw i32 %252, 1
  %254 = icmp sgt i32 %250, %253
  br i1 %254, label %255, label %269

255:                                              ; preds = %249
  %256 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %256, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %256) #7
  invoke void @__cxa_throw(ptr %256, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %265

257:                                              ; preds = %241
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %6, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %7, align 4
  br label %325

261:                                              ; preds = %244
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %6, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #7
  br label %325

265:                                              ; preds = %272, %269, %255, %245
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %6, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %7, align 4
  br label %324

269:                                              ; preds = %249
  %270 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %271 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %270)
          to label %272 unwind label %265

272:                                              ; preds = %269
  %273 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %274 = load i32, ptr %18, align 4, !tbaa !11
  %275 = sext i32 %274 to i64
  %276 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %273, i64 noundef %275) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %271, ptr noundef nonnull align 8 dereferenceable(16) %276)
          to label %277 unwind label %265

277:                                              ; preds = %272
  %278 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %279 = load i32, ptr %18, align 4, !tbaa !11
  %280 = sext i32 %279 to i64
  %281 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %278, i64 noundef %280) #7
  %282 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %281) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %282, ptr noundef %19)
          to label %283 unwind label %311

283:                                              ; preds = %277
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %20) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  store ptr null, ptr %21, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %20, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %284 unwind label %315

284:                                              ; preds = %283
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  %285 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %286 = load i32, ptr %18, align 4, !tbaa !11
  %287 = sext i32 %286 to i64
  %288 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %285, i64 noundef %287) #7
  %289 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %288, ptr noundef nonnull align 8 dereferenceable(16) %20) #7
  %290 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %291 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %290)
          to label %292 unwind label %319

292:                                              ; preds = %284
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %291, ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %293 unwind label %319

293:                                              ; preds = %292
  %294 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %295 = load i32, ptr %18, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %294, i32 noundef %295)
          to label %296 unwind label %319

296:                                              ; preds = %293
  %297 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %298 = load i32, ptr %18, align 4, !tbaa !11
  %299 = sext i32 %298 to i64
  %300 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %297, i64 noundef %299) #7
  %301 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %300) #7
  %302 = sub i64 %301, 1
  %303 = trunc i64 %302 to i32
  %304 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %305 = getelementptr inbounds %"class.qtorch::Node", ptr %304, i32 0, i32 3
  store i32 %303, ptr %305, align 8, !tbaa !41
  %306 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %307 = load i32, ptr %18, align 4, !tbaa !11
  %308 = sext i32 %307 to i64
  %309 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %306, i64 noundef %308) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %309, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %310 unwind label %319

310:                                              ; preds = %296
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br label %1865

311:                                              ; preds = %277
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %6, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #7
  br label %324

315:                                              ; preds = %283
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %6, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %323

319:                                              ; preds = %296, %293, %292, %284
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %6, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #7
  br label %323

323:                                              ; preds = %319, %315
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #7
  br label %324

324:                                              ; preds = %323, %311, %265
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %325

325:                                              ; preds = %324, %261, %257
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br label %1879

326:                                              ; preds = %240
  %327 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %328 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %327, ptr noundef @.str.17)
          to label %329 unwind label %160

329:                                              ; preds = %326
  br i1 %328, label %334, label %330

330:                                              ; preds = %329
  %331 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %332 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef @.str.18)
          to label %333 unwind label %160

333:                                              ; preds = %330
  br i1 %332, label %334, label %419

334:                                              ; preds = %333, %329
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  %335 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %336 = invoke noundef float @_ZNSt7__cxx114stofERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPm(ptr noundef nonnull align 8 dereferenceable(32) %335, ptr noundef null)
          to label %337 unwind label %350

337:                                              ; preds = %334
  store float %336, ptr %22, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %23) #7
  invoke void @_ZSt11make_sharedIN6qtorch6RzNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.66") align 8 %23, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %338 unwind label %354

338:                                              ; preds = %337
  %339 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_6RzNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @_ZNSt12__shared_ptrIN6qtorch6RzNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  %340 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 2) #7
  %341 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef null, i32 noundef 10)
          to label %342 unwind label %358

342:                                              ; preds = %338
  store i32 %341, ptr %24, align 4, !tbaa !11
  %343 = load i32, ptr %24, align 4, !tbaa !11
  %344 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %345 = load i32, ptr %344, align 8, !tbaa !13
  %346 = sub nsw i32 %345, 1
  %347 = icmp sgt i32 %343, %346
  br i1 %347, label %348, label %362

348:                                              ; preds = %342
  %349 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %349, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %349) #7
  invoke void @__cxa_throw(ptr %349, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %358

350:                                              ; preds = %334
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %6, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %7, align 4
  br label %418

354:                                              ; preds = %337
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %6, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #7
  br label %418

358:                                              ; preds = %365, %362, %348, %338
  %359 = landingpad { ptr, i32 }
          cleanup
  %360 = extractvalue { ptr, i32 } %359, 0
  store ptr %360, ptr %6, align 8
  %361 = extractvalue { ptr, i32 } %359, 1
  store i32 %361, ptr %7, align 4
  br label %417

362:                                              ; preds = %342
  %363 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %364 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %363)
          to label %365 unwind label %358

365:                                              ; preds = %362
  %366 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %367 = load i32, ptr %24, align 4, !tbaa !11
  %368 = sext i32 %367 to i64
  %369 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %366, i64 noundef %368) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %364, ptr noundef nonnull align 8 dereferenceable(16) %369)
          to label %370 unwind label %358

370:                                              ; preds = %365
  %371 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %372 = load i32, ptr %24, align 4, !tbaa !11
  %373 = sext i32 %372 to i64
  %374 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %371, i64 noundef %373) #7
  %375 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %374) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %375, ptr noundef %25)
          to label %376 unwind label %404

376:                                              ; preds = %370
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  store ptr null, ptr %27, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %26, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %377 unwind label %408

377:                                              ; preds = %376
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  %378 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %379 = load i32, ptr %24, align 4, !tbaa !11
  %380 = sext i32 %379 to i64
  %381 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %378, i64 noundef %380) #7
  %382 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %381, ptr noundef nonnull align 8 dereferenceable(16) %26) #7
  %383 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %384 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %383)
          to label %385 unwind label %412

385:                                              ; preds = %377
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %384, ptr noundef nonnull align 8 dereferenceable(16) %26)
          to label %386 unwind label %412

386:                                              ; preds = %385
  %387 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %388 = load i32, ptr %24, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %387, i32 noundef %388)
          to label %389 unwind label %412

389:                                              ; preds = %386
  %390 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %391 = load i32, ptr %24, align 4, !tbaa !11
  %392 = sext i32 %391 to i64
  %393 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %390, i64 noundef %392) #7
  %394 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %393) #7
  %395 = sub i64 %394, 1
  %396 = trunc i64 %395 to i32
  %397 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %398 = getelementptr inbounds %"class.qtorch::Node", ptr %397, i32 0, i32 3
  store i32 %396, ptr %398, align 8, !tbaa !41
  %399 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %400 = load i32, ptr %24, align 4, !tbaa !11
  %401 = sext i32 %400 to i64
  %402 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %399, i64 noundef %401) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %402, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %403 unwind label %412

403:                                              ; preds = %389
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  br label %1864

404:                                              ; preds = %370
  %405 = landingpad { ptr, i32 }
          cleanup
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %6, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #7
  br label %417

408:                                              ; preds = %376
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %6, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %416

412:                                              ; preds = %389, %386, %385, %377
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %6, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #7
  br label %416

416:                                              ; preds = %412, %408
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #7
  br label %417

417:                                              ; preds = %416, %404, %358
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %418

418:                                              ; preds = %417, %354, %350
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  br label %1879

419:                                              ; preds = %333
  %420 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %421 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %420, ptr noundef @.str.19)
          to label %422 unwind label %160

422:                                              ; preds = %419
  br i1 %421, label %423, label %508

423:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  %424 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %425 = invoke noundef float @_ZNSt7__cxx114stofERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPm(ptr noundef nonnull align 8 dereferenceable(32) %424, ptr noundef null)
          to label %426 unwind label %439

426:                                              ; preds = %423
  store float %425, ptr %28, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %29) #7
  invoke void @_ZSt11make_sharedIN6qtorch9PhaseNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.69") align 8 %29, ptr noundef nonnull align 4 dereferenceable(4) %28)
          to label %427 unwind label %443

427:                                              ; preds = %426
  %428 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_9PhaseNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %29) #7
  call void @_ZNSt12__shared_ptrIN6qtorch9PhaseNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  %429 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 2) #7
  %430 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %429, ptr noundef null, i32 noundef 10)
          to label %431 unwind label %447

431:                                              ; preds = %427
  store i32 %430, ptr %30, align 4, !tbaa !11
  %432 = load i32, ptr %30, align 4, !tbaa !11
  %433 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %434 = load i32, ptr %433, align 8, !tbaa !13
  %435 = sub nsw i32 %434, 1
  %436 = icmp sgt i32 %432, %435
  br i1 %436, label %437, label %451

437:                                              ; preds = %431
  %438 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %438, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %438) #7
  invoke void @__cxa_throw(ptr %438, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %447

439:                                              ; preds = %423
  %440 = landingpad { ptr, i32 }
          cleanup
  %441 = extractvalue { ptr, i32 } %440, 0
  store ptr %441, ptr %6, align 8
  %442 = extractvalue { ptr, i32 } %440, 1
  store i32 %442, ptr %7, align 4
  br label %507

443:                                              ; preds = %426
  %444 = landingpad { ptr, i32 }
          cleanup
  %445 = extractvalue { ptr, i32 } %444, 0
  store ptr %445, ptr %6, align 8
  %446 = extractvalue { ptr, i32 } %444, 1
  store i32 %446, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #7
  br label %507

447:                                              ; preds = %454, %451, %437, %427
  %448 = landingpad { ptr, i32 }
          cleanup
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %6, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %7, align 4
  br label %506

451:                                              ; preds = %431
  %452 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %453 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %452)
          to label %454 unwind label %447

454:                                              ; preds = %451
  %455 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %456 = load i32, ptr %30, align 4, !tbaa !11
  %457 = sext i32 %456 to i64
  %458 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %455, i64 noundef %457) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %453, ptr noundef nonnull align 8 dereferenceable(16) %458)
          to label %459 unwind label %447

459:                                              ; preds = %454
  %460 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %461 = load i32, ptr %30, align 4, !tbaa !11
  %462 = sext i32 %461 to i64
  %463 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %460, i64 noundef %462) #7
  %464 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %463) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %464, ptr noundef %31)
          to label %465 unwind label %493

465:                                              ; preds = %459
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  store ptr null, ptr %33, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %32, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %466 unwind label %497

466:                                              ; preds = %465
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  %467 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %468 = load i32, ptr %30, align 4, !tbaa !11
  %469 = sext i32 %468 to i64
  %470 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %467, i64 noundef %469) #7
  %471 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %470, ptr noundef nonnull align 8 dereferenceable(16) %32) #7
  %472 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %473 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %472)
          to label %474 unwind label %501

474:                                              ; preds = %466
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %473, ptr noundef nonnull align 8 dereferenceable(16) %32)
          to label %475 unwind label %501

475:                                              ; preds = %474
  %476 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %477 = load i32, ptr %30, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %476, i32 noundef %477)
          to label %478 unwind label %501

478:                                              ; preds = %475
  %479 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %480 = load i32, ptr %30, align 4, !tbaa !11
  %481 = sext i32 %480 to i64
  %482 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %479, i64 noundef %481) #7
  %483 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %482) #7
  %484 = sub i64 %483, 1
  %485 = trunc i64 %484 to i32
  %486 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %487 = getelementptr inbounds %"class.qtorch::Node", ptr %486, i32 0, i32 3
  store i32 %485, ptr %487, align 8, !tbaa !41
  %488 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %489 = load i32, ptr %30, align 4, !tbaa !11
  %490 = sext i32 %489 to i64
  %491 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %488, i64 noundef %490) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %491, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %492 unwind label %501

492:                                              ; preds = %478
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %1863

493:                                              ; preds = %459
  %494 = landingpad { ptr, i32 }
          cleanup
  %495 = extractvalue { ptr, i32 } %494, 0
  store ptr %495, ptr %6, align 8
  %496 = extractvalue { ptr, i32 } %494, 1
  store i32 %496, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #7
  br label %506

497:                                              ; preds = %465
  %498 = landingpad { ptr, i32 }
          cleanup
  %499 = extractvalue { ptr, i32 } %498, 0
  store ptr %499, ptr %6, align 8
  %500 = extractvalue { ptr, i32 } %498, 1
  store i32 %500, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  br label %505

501:                                              ; preds = %478, %475, %474, %466
  %502 = landingpad { ptr, i32 }
          cleanup
  %503 = extractvalue { ptr, i32 } %502, 0
  store ptr %503, ptr %6, align 8
  %504 = extractvalue { ptr, i32 } %502, 1
  store i32 %504, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #7
  br label %505

505:                                              ; preds = %501, %497
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #7
  br label %506

506:                                              ; preds = %505, %493, %447
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %507

507:                                              ; preds = %506, %443, %439
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %1879

508:                                              ; preds = %422
  %509 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %510 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %509, ptr noundef @.str.20)
          to label %511 unwind label %160

511:                                              ; preds = %508
  br i1 %510, label %512, label %589

512:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #7
  invoke void @_ZSt11make_sharedIN6qtorch5HNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.72") align 8 %34)
          to label %513 unwind label %525

513:                                              ; preds = %512
  %514 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_5HNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %34) #7
  call void @_ZNSt12__shared_ptrIN6qtorch5HNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  %515 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %516 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %515, ptr noundef null, i32 noundef 10)
          to label %517 unwind label %529

517:                                              ; preds = %513
  store i32 %516, ptr %35, align 4, !tbaa !11
  %518 = load i32, ptr %35, align 4, !tbaa !11
  %519 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %520 = load i32, ptr %519, align 8, !tbaa !13
  %521 = sub nsw i32 %520, 1
  %522 = icmp sgt i32 %518, %521
  br i1 %522, label %523, label %533

523:                                              ; preds = %517
  %524 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %524, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %524) #7
  invoke void @__cxa_throw(ptr %524, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %529

525:                                              ; preds = %512
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %6, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #7
  br label %1879

529:                                              ; preds = %536, %533, %523, %513
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %6, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %7, align 4
  br label %588

533:                                              ; preds = %517
  %534 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %535 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %534)
          to label %536 unwind label %529

536:                                              ; preds = %533
  %537 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %538 = load i32, ptr %35, align 4, !tbaa !11
  %539 = sext i32 %538 to i64
  %540 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %537, i64 noundef %539) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %535, ptr noundef nonnull align 8 dereferenceable(16) %540)
          to label %541 unwind label %529

541:                                              ; preds = %536
  %542 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %543 = load i32, ptr %35, align 4, !tbaa !11
  %544 = sext i32 %543 to i64
  %545 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %542, i64 noundef %544) #7
  %546 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %545) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %546, ptr noundef %36)
          to label %547 unwind label %575

547:                                              ; preds = %541
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  store ptr null, ptr %38, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %37, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %548 unwind label %579

548:                                              ; preds = %547
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  %549 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %550 = load i32, ptr %35, align 4, !tbaa !11
  %551 = sext i32 %550 to i64
  %552 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %549, i64 noundef %551) #7
  %553 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %552, ptr noundef nonnull align 8 dereferenceable(16) %37) #7
  %554 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %555 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %554)
          to label %556 unwind label %583

556:                                              ; preds = %548
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %555, ptr noundef nonnull align 8 dereferenceable(16) %37)
          to label %557 unwind label %583

557:                                              ; preds = %556
  %558 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %559 = load i32, ptr %35, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %558, i32 noundef %559)
          to label %560 unwind label %583

560:                                              ; preds = %557
  %561 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %562 = load i32, ptr %35, align 4, !tbaa !11
  %563 = sext i32 %562 to i64
  %564 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %561, i64 noundef %563) #7
  %565 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %564) #7
  %566 = sub i64 %565, 1
  %567 = trunc i64 %566 to i32
  %568 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %569 = getelementptr inbounds %"class.qtorch::Node", ptr %568, i32 0, i32 3
  store i32 %567, ptr %569, align 8, !tbaa !41
  %570 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %571 = load i32, ptr %35, align 4, !tbaa !11
  %572 = sext i32 %571 to i64
  %573 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %570, i64 noundef %572) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %573, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %574 unwind label %583

574:                                              ; preds = %560
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  br label %1862

575:                                              ; preds = %541
  %576 = landingpad { ptr, i32 }
          cleanup
  %577 = extractvalue { ptr, i32 } %576, 0
  store ptr %577, ptr %6, align 8
  %578 = extractvalue { ptr, i32 } %576, 1
  store i32 %578, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #7
  br label %588

579:                                              ; preds = %547
  %580 = landingpad { ptr, i32 }
          cleanup
  %581 = extractvalue { ptr, i32 } %580, 0
  store ptr %581, ptr %6, align 8
  %582 = extractvalue { ptr, i32 } %580, 1
  store i32 %582, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  br label %587

583:                                              ; preds = %560, %557, %556, %548
  %584 = landingpad { ptr, i32 }
          cleanup
  %585 = extractvalue { ptr, i32 } %584, 0
  store ptr %585, ptr %6, align 8
  %586 = extractvalue { ptr, i32 } %584, 1
  store i32 %586, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #7
  br label %587

587:                                              ; preds = %583, %579
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #7
  br label %588

588:                                              ; preds = %587, %575, %529
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  br label %1879

589:                                              ; preds = %511
  %590 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %591 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %590, ptr noundef @.str.21)
          to label %592 unwind label %160

592:                                              ; preds = %589
  br i1 %591, label %593, label %670

593:                                              ; preds = %592
  call void @llvm.lifetime.start.p0(i64 16, ptr %39) #7
  invoke void @_ZSt11make_sharedIN6qtorch5XNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.75") align 8 %39)
          to label %594 unwind label %606

594:                                              ; preds = %593
  %595 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_5XNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %39) #7
  call void @_ZNSt12__shared_ptrIN6qtorch5XNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #7
  %596 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %597 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %596, ptr noundef null, i32 noundef 10)
          to label %598 unwind label %610

598:                                              ; preds = %594
  store i32 %597, ptr %40, align 4, !tbaa !11
  %599 = load i32, ptr %40, align 4, !tbaa !11
  %600 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %601 = load i32, ptr %600, align 8, !tbaa !13
  %602 = sub nsw i32 %601, 1
  %603 = icmp sgt i32 %599, %602
  br i1 %603, label %604, label %614

604:                                              ; preds = %598
  %605 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %605, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %605) #7
  invoke void @__cxa_throw(ptr %605, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %610

606:                                              ; preds = %593
  %607 = landingpad { ptr, i32 }
          cleanup
  %608 = extractvalue { ptr, i32 } %607, 0
  store ptr %608, ptr %6, align 8
  %609 = extractvalue { ptr, i32 } %607, 1
  store i32 %609, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #7
  br label %1879

610:                                              ; preds = %617, %614, %604, %594
  %611 = landingpad { ptr, i32 }
          cleanup
  %612 = extractvalue { ptr, i32 } %611, 0
  store ptr %612, ptr %6, align 8
  %613 = extractvalue { ptr, i32 } %611, 1
  store i32 %613, ptr %7, align 4
  br label %669

614:                                              ; preds = %598
  %615 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %616 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %615)
          to label %617 unwind label %610

617:                                              ; preds = %614
  %618 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %619 = load i32, ptr %40, align 4, !tbaa !11
  %620 = sext i32 %619 to i64
  %621 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %618, i64 noundef %620) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %616, ptr noundef nonnull align 8 dereferenceable(16) %621)
          to label %622 unwind label %610

622:                                              ; preds = %617
  %623 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %624 = load i32, ptr %40, align 4, !tbaa !11
  %625 = sext i32 %624 to i64
  %626 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %623, i64 noundef %625) #7
  %627 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %626) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %41, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %627, ptr noundef %41)
          to label %628 unwind label %656

628:                                              ; preds = %622
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #7
  store ptr null, ptr %43, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %42, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %629 unwind label %660

629:                                              ; preds = %628
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  %630 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %631 = load i32, ptr %40, align 4, !tbaa !11
  %632 = sext i32 %631 to i64
  %633 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %630, i64 noundef %632) #7
  %634 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %633, ptr noundef nonnull align 8 dereferenceable(16) %42) #7
  %635 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %636 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %635)
          to label %637 unwind label %664

637:                                              ; preds = %629
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %636, ptr noundef nonnull align 8 dereferenceable(16) %42)
          to label %638 unwind label %664

638:                                              ; preds = %637
  %639 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %640 = load i32, ptr %40, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %639, i32 noundef %640)
          to label %641 unwind label %664

641:                                              ; preds = %638
  %642 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %643 = load i32, ptr %40, align 4, !tbaa !11
  %644 = sext i32 %643 to i64
  %645 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %642, i64 noundef %644) #7
  %646 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %645) #7
  %647 = sub i64 %646, 1
  %648 = trunc i64 %647 to i32
  %649 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %650 = getelementptr inbounds %"class.qtorch::Node", ptr %649, i32 0, i32 3
  store i32 %648, ptr %650, align 8, !tbaa !41
  %651 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %652 = load i32, ptr %40, align 4, !tbaa !11
  %653 = sext i32 %652 to i64
  %654 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %651, i64 noundef %653) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %654, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %655 unwind label %664

655:                                              ; preds = %641
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %1861

656:                                              ; preds = %622
  %657 = landingpad { ptr, i32 }
          cleanup
  %658 = extractvalue { ptr, i32 } %657, 0
  store ptr %658, ptr %6, align 8
  %659 = extractvalue { ptr, i32 } %657, 1
  store i32 %659, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #7
  br label %669

660:                                              ; preds = %628
  %661 = landingpad { ptr, i32 }
          cleanup
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %6, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  br label %668

664:                                              ; preds = %641, %638, %637, %629
  %665 = landingpad { ptr, i32 }
          cleanup
  %666 = extractvalue { ptr, i32 } %665, 0
  store ptr %666, ptr %6, align 8
  %667 = extractvalue { ptr, i32 } %665, 1
  store i32 %667, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #7
  br label %668

668:                                              ; preds = %664, %660
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #7
  br label %669

669:                                              ; preds = %668, %656, %610
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %1879

670:                                              ; preds = %592
  %671 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %672 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %671, ptr noundef @.str.22)
          to label %673 unwind label %160

673:                                              ; preds = %670
  br i1 %672, label %674, label %751

674:                                              ; preds = %673
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #7
  invoke void @_ZSt11make_sharedIN6qtorch5YNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.78") align 8 %44)
          to label %675 unwind label %687

675:                                              ; preds = %674
  %676 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_5YNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %44) #7
  call void @_ZNSt12__shared_ptrIN6qtorch5YNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  %677 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %678 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %677, ptr noundef null, i32 noundef 10)
          to label %679 unwind label %691

679:                                              ; preds = %675
  store i32 %678, ptr %45, align 4, !tbaa !11
  %680 = load i32, ptr %45, align 4, !tbaa !11
  %681 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %682 = load i32, ptr %681, align 8, !tbaa !13
  %683 = sub nsw i32 %682, 1
  %684 = icmp sgt i32 %680, %683
  br i1 %684, label %685, label %695

685:                                              ; preds = %679
  %686 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %686, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %686) #7
  invoke void @__cxa_throw(ptr %686, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %691

687:                                              ; preds = %674
  %688 = landingpad { ptr, i32 }
          cleanup
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %6, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #7
  br label %1879

691:                                              ; preds = %698, %695, %685, %675
  %692 = landingpad { ptr, i32 }
          cleanup
  %693 = extractvalue { ptr, i32 } %692, 0
  store ptr %693, ptr %6, align 8
  %694 = extractvalue { ptr, i32 } %692, 1
  store i32 %694, ptr %7, align 4
  br label %750

695:                                              ; preds = %679
  %696 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %697 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %696)
          to label %698 unwind label %691

698:                                              ; preds = %695
  %699 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %700 = load i32, ptr %45, align 4, !tbaa !11
  %701 = sext i32 %700 to i64
  %702 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %699, i64 noundef %701) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %697, ptr noundef nonnull align 8 dereferenceable(16) %702)
          to label %703 unwind label %691

703:                                              ; preds = %698
  %704 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %705 = load i32, ptr %45, align 4, !tbaa !11
  %706 = sext i32 %705 to i64
  %707 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %704, i64 noundef %706) #7
  %708 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %707) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %708, ptr noundef %46)
          to label %709 unwind label %737

709:                                              ; preds = %703
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  store ptr null, ptr %48, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %47, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 4 dereferenceable(4) %45)
          to label %710 unwind label %741

710:                                              ; preds = %709
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  %711 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %712 = load i32, ptr %45, align 4, !tbaa !11
  %713 = sext i32 %712 to i64
  %714 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %711, i64 noundef %713) #7
  %715 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %714, ptr noundef nonnull align 8 dereferenceable(16) %47) #7
  %716 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %717 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %716)
          to label %718 unwind label %745

718:                                              ; preds = %710
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %717, ptr noundef nonnull align 8 dereferenceable(16) %47)
          to label %719 unwind label %745

719:                                              ; preds = %718
  %720 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %721 = load i32, ptr %45, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %720, i32 noundef %721)
          to label %722 unwind label %745

722:                                              ; preds = %719
  %723 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %724 = load i32, ptr %45, align 4, !tbaa !11
  %725 = sext i32 %724 to i64
  %726 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %723, i64 noundef %725) #7
  %727 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %726) #7
  %728 = sub i64 %727, 1
  %729 = trunc i64 %728 to i32
  %730 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %731 = getelementptr inbounds %"class.qtorch::Node", ptr %730, i32 0, i32 3
  store i32 %729, ptr %731, align 8, !tbaa !41
  %732 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %733 = load i32, ptr %45, align 4, !tbaa !11
  %734 = sext i32 %733 to i64
  %735 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %732, i64 noundef %734) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %735, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %736 unwind label %745

736:                                              ; preds = %722
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %1860

737:                                              ; preds = %703
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %6, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #7
  br label %750

741:                                              ; preds = %709
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %6, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  br label %749

745:                                              ; preds = %722, %719, %718, %710
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %6, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #7
  br label %749

749:                                              ; preds = %745, %741
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #7
  br label %750

750:                                              ; preds = %749, %737, %691
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %1879

751:                                              ; preds = %673
  %752 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %753 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %752, ptr noundef @.str.23)
          to label %754 unwind label %160

754:                                              ; preds = %751
  br i1 %753, label %755, label %832

755:                                              ; preds = %754
  call void @llvm.lifetime.start.p0(i64 16, ptr %49) #7
  invoke void @_ZSt11make_sharedIN6qtorch5ZNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.81") align 8 %49)
          to label %756 unwind label %768

756:                                              ; preds = %755
  %757 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_5ZNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %49) #7
  call void @_ZNSt12__shared_ptrIN6qtorch5ZNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  %758 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %759 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %758, ptr noundef null, i32 noundef 10)
          to label %760 unwind label %772

760:                                              ; preds = %756
  store i32 %759, ptr %50, align 4, !tbaa !11
  %761 = load i32, ptr %50, align 4, !tbaa !11
  %762 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %763 = load i32, ptr %762, align 8, !tbaa !13
  %764 = sub nsw i32 %763, 1
  %765 = icmp sgt i32 %761, %764
  br i1 %765, label %766, label %776

766:                                              ; preds = %760
  %767 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %767, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %767) #7
  invoke void @__cxa_throw(ptr %767, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %772

768:                                              ; preds = %755
  %769 = landingpad { ptr, i32 }
          cleanup
  %770 = extractvalue { ptr, i32 } %769, 0
  store ptr %770, ptr %6, align 8
  %771 = extractvalue { ptr, i32 } %769, 1
  store i32 %771, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #7
  br label %1879

772:                                              ; preds = %779, %776, %766, %756
  %773 = landingpad { ptr, i32 }
          cleanup
  %774 = extractvalue { ptr, i32 } %773, 0
  store ptr %774, ptr %6, align 8
  %775 = extractvalue { ptr, i32 } %773, 1
  store i32 %775, ptr %7, align 4
  br label %831

776:                                              ; preds = %760
  %777 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %778 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %777)
          to label %779 unwind label %772

779:                                              ; preds = %776
  %780 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %781 = load i32, ptr %50, align 4, !tbaa !11
  %782 = sext i32 %781 to i64
  %783 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %780, i64 noundef %782) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %778, ptr noundef nonnull align 8 dereferenceable(16) %783)
          to label %784 unwind label %772

784:                                              ; preds = %779
  %785 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %786 = load i32, ptr %50, align 4, !tbaa !11
  %787 = sext i32 %786 to i64
  %788 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %785, i64 noundef %787) #7
  %789 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %788) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %51, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %789, ptr noundef %51)
          to label %790 unwind label %818

790:                                              ; preds = %784
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %52) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #7
  store ptr null, ptr %53, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %52, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 4 dereferenceable(4) %50)
          to label %791 unwind label %822

791:                                              ; preds = %790
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  %792 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %793 = load i32, ptr %50, align 4, !tbaa !11
  %794 = sext i32 %793 to i64
  %795 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %792, i64 noundef %794) #7
  %796 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %795, ptr noundef nonnull align 8 dereferenceable(16) %52) #7
  %797 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %798 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %797)
          to label %799 unwind label %826

799:                                              ; preds = %791
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %798, ptr noundef nonnull align 8 dereferenceable(16) %52)
          to label %800 unwind label %826

800:                                              ; preds = %799
  %801 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %802 = load i32, ptr %50, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %801, i32 noundef %802)
          to label %803 unwind label %826

803:                                              ; preds = %800
  %804 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %805 = load i32, ptr %50, align 4, !tbaa !11
  %806 = sext i32 %805 to i64
  %807 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %804, i64 noundef %806) #7
  %808 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %807) #7
  %809 = sub i64 %808, 1
  %810 = trunc i64 %809 to i32
  %811 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %812 = getelementptr inbounds %"class.qtorch::Node", ptr %811, i32 0, i32 3
  store i32 %810, ptr %812, align 8, !tbaa !41
  %813 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %814 = load i32, ptr %50, align 4, !tbaa !11
  %815 = sext i32 %814 to i64
  %816 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %813, i64 noundef %815) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %816, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %817 unwind label %826

817:                                              ; preds = %803
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %1859

818:                                              ; preds = %784
  %819 = landingpad { ptr, i32 }
          cleanup
  %820 = extractvalue { ptr, i32 } %819, 0
  store ptr %820, ptr %6, align 8
  %821 = extractvalue { ptr, i32 } %819, 1
  store i32 %821, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #7
  br label %831

822:                                              ; preds = %790
  %823 = landingpad { ptr, i32 }
          cleanup
  %824 = extractvalue { ptr, i32 } %823, 0
  store ptr %824, ptr %6, align 8
  %825 = extractvalue { ptr, i32 } %823, 1
  store i32 %825, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  br label %830

826:                                              ; preds = %803, %800, %799, %791
  %827 = landingpad { ptr, i32 }
          cleanup
  %828 = extractvalue { ptr, i32 } %827, 0
  store ptr %828, ptr %6, align 8
  %829 = extractvalue { ptr, i32 } %827, 1
  store i32 %829, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #7
  br label %830

830:                                              ; preds = %826, %822
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #7
  br label %831

831:                                              ; preds = %830, %818, %772
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %1879

832:                                              ; preds = %754
  %833 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %834 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %833, ptr noundef @.str.24)
          to label %835 unwind label %160

835:                                              ; preds = %832
  br i1 %834, label %836, label %968

836:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 16, ptr %54) #7
  invoke void @_ZSt11make_sharedIN6qtorch8CNOTNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.84") align 8 %54)
          to label %837 unwind label %862

837:                                              ; preds = %836
  %838 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_8CNOTNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %54) #7
  call void @_ZNSt12__shared_ptrIN6qtorch8CNOTNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #7
  %839 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %840 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %839, ptr noundef null, i32 noundef 10)
          to label %841 unwind label %866

841:                                              ; preds = %837
  store i32 %840, ptr %55, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #7
  %842 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 2) #7
  %843 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %842, ptr noundef null, i32 noundef 10)
          to label %844 unwind label %870

844:                                              ; preds = %841
  store i32 %843, ptr %56, align 4, !tbaa !11
  %845 = load i32, ptr %55, align 4, !tbaa !11
  %846 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %847 = load i32, ptr %846, align 8, !tbaa !13
  %848 = sub nsw i32 %847, 1
  %849 = icmp sgt i32 %845, %848
  br i1 %849, label %860, label %850

850:                                              ; preds = %844
  %851 = load i32, ptr %56, align 4, !tbaa !11
  %852 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %853 = load i32, ptr %852, align 8, !tbaa !13
  %854 = sub nsw i32 %853, 1
  %855 = icmp sgt i32 %851, %854
  br i1 %855, label %860, label %856

856:                                              ; preds = %850
  %857 = load i32, ptr %55, align 4, !tbaa !11
  %858 = load i32, ptr %56, align 4, !tbaa !11
  %859 = icmp eq i32 %857, %858
  br i1 %859, label %860, label %874

860:                                              ; preds = %856, %850, %844
  %861 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %861, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %861) #7
  invoke void @__cxa_throw(ptr %861, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %870

862:                                              ; preds = %836
  %863 = landingpad { ptr, i32 }
          cleanup
  %864 = extractvalue { ptr, i32 } %863, 0
  store ptr %864, ptr %6, align 8
  %865 = extractvalue { ptr, i32 } %863, 1
  store i32 %865, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #7
  br label %1879

866:                                              ; preds = %837
  %867 = landingpad { ptr, i32 }
          cleanup
  %868 = extractvalue { ptr, i32 } %867, 0
  store ptr %868, ptr %6, align 8
  %869 = extractvalue { ptr, i32 } %867, 1
  store i32 %869, ptr %7, align 4
  br label %967

870:                                              ; preds = %891, %888, %877, %874, %860, %841
  %871 = landingpad { ptr, i32 }
          cleanup
  %872 = extractvalue { ptr, i32 } %871, 0
  store ptr %872, ptr %6, align 8
  %873 = extractvalue { ptr, i32 } %871, 1
  store i32 %873, ptr %7, align 4
  br label %966

874:                                              ; preds = %856
  %875 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %876 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %875)
          to label %877 unwind label %870

877:                                              ; preds = %874
  %878 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %879 = load i32, ptr %55, align 4, !tbaa !11
  %880 = sext i32 %879 to i64
  %881 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %878, i64 noundef %880) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %876, ptr noundef nonnull align 8 dereferenceable(16) %881)
          to label %882 unwind label %870

882:                                              ; preds = %877
  %883 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %884 = load i32, ptr %55, align 4, !tbaa !11
  %885 = sext i32 %884 to i64
  %886 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %883, i64 noundef %885) #7
  %887 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %886) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %57, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %887, ptr noundef %57)
          to label %888 unwind label %939

888:                                              ; preds = %882
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #7
  %889 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %890 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %889)
          to label %891 unwind label %870

891:                                              ; preds = %888
  %892 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %893 = load i32, ptr %56, align 4, !tbaa !11
  %894 = sext i32 %893 to i64
  %895 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %892, i64 noundef %894) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %890, ptr noundef nonnull align 8 dereferenceable(16) %895)
          to label %896 unwind label %870

896:                                              ; preds = %891
  %897 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %898 = load i32, ptr %56, align 4, !tbaa !11
  %899 = sext i32 %898 to i64
  %900 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %897, i64 noundef %899) #7
  %901 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %900) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %901, ptr noundef %58)
          to label %902 unwind label %943

902:                                              ; preds = %896
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #7
  store ptr null, ptr %60, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %59, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 4 dereferenceable(4) %55)
          to label %903 unwind label %947

903:                                              ; preds = %902
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  %904 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %905 = load i32, ptr %55, align 4, !tbaa !11
  %906 = sext i32 %905 to i64
  %907 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %904, i64 noundef %906) #7
  %908 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %907, ptr noundef nonnull align 8 dereferenceable(16) %59) #7
  %909 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %910 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %909)
          to label %911 unwind label %951

911:                                              ; preds = %903
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %910, ptr noundef nonnull align 8 dereferenceable(16) %59)
          to label %912 unwind label %951

912:                                              ; preds = %911
  call void @llvm.lifetime.start.p0(i64 16, ptr %61) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #7
  store ptr null, ptr %62, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %61, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 4 dereferenceable(4) %56)
          to label %913 unwind label %955

913:                                              ; preds = %912
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #7
  %914 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %915 = load i32, ptr %56, align 4, !tbaa !11
  %916 = sext i32 %915 to i64
  %917 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %914, i64 noundef %916) #7
  %918 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %917, ptr noundef nonnull align 8 dereferenceable(16) %61) #7
  %919 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %920 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %919)
          to label %921 unwind label %959

921:                                              ; preds = %913
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %920, ptr noundef nonnull align 8 dereferenceable(16) %61)
          to label %922 unwind label %959

922:                                              ; preds = %921
  %923 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %924 = load i32, ptr %55, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %923, i32 noundef %924)
          to label %925 unwind label %959

925:                                              ; preds = %922
  %926 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %927 = load i32, ptr %56, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %926, i32 noundef %927)
          to label %928 unwind label %959

928:                                              ; preds = %925
  %929 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %930 = load i32, ptr %55, align 4, !tbaa !11
  %931 = sext i32 %930 to i64
  %932 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %929, i64 noundef %931) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %932, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %933 unwind label %959

933:                                              ; preds = %928
  %934 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %935 = load i32, ptr %56, align 4, !tbaa !11
  %936 = sext i32 %935 to i64
  %937 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %934, i64 noundef %936) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %937, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %938 unwind label %959

938:                                              ; preds = %933
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #7
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %59) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  br label %1858

939:                                              ; preds = %882
  %940 = landingpad { ptr, i32 }
          cleanup
  %941 = extractvalue { ptr, i32 } %940, 0
  store ptr %941, ptr %6, align 8
  %942 = extractvalue { ptr, i32 } %940, 1
  store i32 %942, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #7
  br label %966

943:                                              ; preds = %896
  %944 = landingpad { ptr, i32 }
          cleanup
  %945 = extractvalue { ptr, i32 } %944, 0
  store ptr %945, ptr %6, align 8
  %946 = extractvalue { ptr, i32 } %944, 1
  store i32 %946, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #7
  br label %966

947:                                              ; preds = %902
  %948 = landingpad { ptr, i32 }
          cleanup
  %949 = extractvalue { ptr, i32 } %948, 0
  store ptr %949, ptr %6, align 8
  %950 = extractvalue { ptr, i32 } %948, 1
  store i32 %950, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  br label %965

951:                                              ; preds = %911, %903
  %952 = landingpad { ptr, i32 }
          cleanup
  %953 = extractvalue { ptr, i32 } %952, 0
  store ptr %953, ptr %6, align 8
  %954 = extractvalue { ptr, i32 } %952, 1
  store i32 %954, ptr %7, align 4
  br label %964

955:                                              ; preds = %912
  %956 = landingpad { ptr, i32 }
          cleanup
  %957 = extractvalue { ptr, i32 } %956, 0
  store ptr %957, ptr %6, align 8
  %958 = extractvalue { ptr, i32 } %956, 1
  store i32 %958, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #7
  br label %963

959:                                              ; preds = %933, %928, %925, %922, %921, %913
  %960 = landingpad { ptr, i32 }
          cleanup
  %961 = extractvalue { ptr, i32 } %960, 0
  store ptr %961, ptr %6, align 8
  %962 = extractvalue { ptr, i32 } %960, 1
  store i32 %962, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #7
  br label %963

963:                                              ; preds = %959, %955
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #7
  br label %964

964:                                              ; preds = %963, %951
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %59) #7
  br label %965

965:                                              ; preds = %964, %947
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #7
  br label %966

966:                                              ; preds = %965, %943, %939, %870
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  br label %967

967:                                              ; preds = %966, %866
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  br label %1879

968:                                              ; preds = %835
  %969 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %970 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %969, ptr noundef @.str.25)
          to label %971 unwind label %160

971:                                              ; preds = %968
  br i1 %970, label %972, label %1104

972:                                              ; preds = %971
  call void @llvm.lifetime.start.p0(i64 16, ptr %63) #7
  invoke void @_ZSt11make_sharedIN6qtorch8SwapNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.87") align 8 %63)
          to label %973 unwind label %998

973:                                              ; preds = %972
  %974 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_8SwapNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %63) #7
  call void @_ZNSt12__shared_ptrIN6qtorch8SwapNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %63) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #7
  %975 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %976 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %975, ptr noundef null, i32 noundef 10)
          to label %977 unwind label %1002

977:                                              ; preds = %973
  store i32 %976, ptr %64, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #7
  %978 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 2) #7
  %979 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %978, ptr noundef null, i32 noundef 10)
          to label %980 unwind label %1006

980:                                              ; preds = %977
  store i32 %979, ptr %65, align 4, !tbaa !11
  %981 = load i32, ptr %64, align 4, !tbaa !11
  %982 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %983 = load i32, ptr %982, align 8, !tbaa !13
  %984 = sub nsw i32 %983, 1
  %985 = icmp sgt i32 %981, %984
  br i1 %985, label %996, label %986

986:                                              ; preds = %980
  %987 = load i32, ptr %65, align 4, !tbaa !11
  %988 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %989 = load i32, ptr %988, align 8, !tbaa !13
  %990 = sub nsw i32 %989, 1
  %991 = icmp sgt i32 %987, %990
  br i1 %991, label %996, label %992

992:                                              ; preds = %986
  %993 = load i32, ptr %64, align 4, !tbaa !11
  %994 = load i32, ptr %65, align 4, !tbaa !11
  %995 = icmp eq i32 %993, %994
  br i1 %995, label %996, label %1010

996:                                              ; preds = %992, %986, %980
  %997 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %997, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %997) #7
  invoke void @__cxa_throw(ptr %997, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %1006

998:                                              ; preds = %972
  %999 = landingpad { ptr, i32 }
          cleanup
  %1000 = extractvalue { ptr, i32 } %999, 0
  store ptr %1000, ptr %6, align 8
  %1001 = extractvalue { ptr, i32 } %999, 1
  store i32 %1001, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #7
  br label %1879

1002:                                             ; preds = %973
  %1003 = landingpad { ptr, i32 }
          cleanup
  %1004 = extractvalue { ptr, i32 } %1003, 0
  store ptr %1004, ptr %6, align 8
  %1005 = extractvalue { ptr, i32 } %1003, 1
  store i32 %1005, ptr %7, align 4
  br label %1103

1006:                                             ; preds = %1027, %1024, %1013, %1010, %996, %977
  %1007 = landingpad { ptr, i32 }
          cleanup
  %1008 = extractvalue { ptr, i32 } %1007, 0
  store ptr %1008, ptr %6, align 8
  %1009 = extractvalue { ptr, i32 } %1007, 1
  store i32 %1009, ptr %7, align 4
  br label %1102

1010:                                             ; preds = %992
  %1011 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1012 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1011)
          to label %1013 unwind label %1006

1013:                                             ; preds = %1010
  %1014 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1015 = load i32, ptr %64, align 4, !tbaa !11
  %1016 = sext i32 %1015 to i64
  %1017 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1014, i64 noundef %1016) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1012, ptr noundef nonnull align 8 dereferenceable(16) %1017)
          to label %1018 unwind label %1006

1018:                                             ; preds = %1013
  %1019 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1020 = load i32, ptr %64, align 4, !tbaa !11
  %1021 = sext i32 %1020 to i64
  %1022 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1019, i64 noundef %1021) #7
  %1023 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1022) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %66, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1023, ptr noundef %66)
          to label %1024 unwind label %1075

1024:                                             ; preds = %1018
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %66) #7
  %1025 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1026 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1025)
          to label %1027 unwind label %1006

1027:                                             ; preds = %1024
  %1028 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1029 = load i32, ptr %65, align 4, !tbaa !11
  %1030 = sext i32 %1029 to i64
  %1031 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1028, i64 noundef %1030) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1026, ptr noundef nonnull align 8 dereferenceable(16) %1031)
          to label %1032 unwind label %1006

1032:                                             ; preds = %1027
  %1033 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1034 = load i32, ptr %65, align 4, !tbaa !11
  %1035 = sext i32 %1034 to i64
  %1036 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1033, i64 noundef %1035) #7
  %1037 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1036) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %67, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1037, ptr noundef %67)
          to label %1038 unwind label %1079

1038:                                             ; preds = %1032
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %67) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #7
  store ptr null, ptr %69, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %68, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 4 dereferenceable(4) %64)
          to label %1039 unwind label %1083

1039:                                             ; preds = %1038
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #7
  %1040 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1041 = load i32, ptr %64, align 4, !tbaa !11
  %1042 = sext i32 %1041 to i64
  %1043 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1040, i64 noundef %1042) #7
  %1044 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1043, ptr noundef nonnull align 8 dereferenceable(16) %68) #7
  %1045 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1046 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1045)
          to label %1047 unwind label %1087

1047:                                             ; preds = %1039
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1046, ptr noundef nonnull align 8 dereferenceable(16) %68)
          to label %1048 unwind label %1087

1048:                                             ; preds = %1047
  call void @llvm.lifetime.start.p0(i64 16, ptr %70) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #7
  store ptr null, ptr %71, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %70, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 4 dereferenceable(4) %65)
          to label %1049 unwind label %1091

1049:                                             ; preds = %1048
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #7
  %1050 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1051 = load i32, ptr %65, align 4, !tbaa !11
  %1052 = sext i32 %1051 to i64
  %1053 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1050, i64 noundef %1052) #7
  %1054 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1053, ptr noundef nonnull align 8 dereferenceable(16) %70) #7
  %1055 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1056 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1055)
          to label %1057 unwind label %1095

1057:                                             ; preds = %1049
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1056, ptr noundef nonnull align 8 dereferenceable(16) %70)
          to label %1058 unwind label %1095

1058:                                             ; preds = %1057
  %1059 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1060 = load i32, ptr %64, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1059, i32 noundef %1060)
          to label %1061 unwind label %1095

1061:                                             ; preds = %1058
  %1062 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1063 = load i32, ptr %65, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1062, i32 noundef %1063)
          to label %1064 unwind label %1095

1064:                                             ; preds = %1061
  %1065 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %1066 = load i32, ptr %64, align 4, !tbaa !11
  %1067 = sext i32 %1066 to i64
  %1068 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1065, i64 noundef %1067) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1068, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %1069 unwind label %1095

1069:                                             ; preds = %1064
  %1070 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %1071 = load i32, ptr %65, align 4, !tbaa !11
  %1072 = sext i32 %1071 to i64
  %1073 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1070, i64 noundef %1072) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1073, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %1074 unwind label %1095

1074:                                             ; preds = %1069
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #7
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  br label %1857

1075:                                             ; preds = %1018
  %1076 = landingpad { ptr, i32 }
          cleanup
  %1077 = extractvalue { ptr, i32 } %1076, 0
  store ptr %1077, ptr %6, align 8
  %1078 = extractvalue { ptr, i32 } %1076, 1
  store i32 %1078, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %66) #7
  br label %1102

1079:                                             ; preds = %1032
  %1080 = landingpad { ptr, i32 }
          cleanup
  %1081 = extractvalue { ptr, i32 } %1080, 0
  store ptr %1081, ptr %6, align 8
  %1082 = extractvalue { ptr, i32 } %1080, 1
  store i32 %1082, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %67) #7
  br label %1102

1083:                                             ; preds = %1038
  %1084 = landingpad { ptr, i32 }
          cleanup
  %1085 = extractvalue { ptr, i32 } %1084, 0
  store ptr %1085, ptr %6, align 8
  %1086 = extractvalue { ptr, i32 } %1084, 1
  store i32 %1086, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #7
  br label %1101

1087:                                             ; preds = %1047, %1039
  %1088 = landingpad { ptr, i32 }
          cleanup
  %1089 = extractvalue { ptr, i32 } %1088, 0
  store ptr %1089, ptr %6, align 8
  %1090 = extractvalue { ptr, i32 } %1088, 1
  store i32 %1090, ptr %7, align 4
  br label %1100

1091:                                             ; preds = %1048
  %1092 = landingpad { ptr, i32 }
          cleanup
  %1093 = extractvalue { ptr, i32 } %1092, 0
  store ptr %1093, ptr %6, align 8
  %1094 = extractvalue { ptr, i32 } %1092, 1
  store i32 %1094, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #7
  br label %1099

1095:                                             ; preds = %1069, %1064, %1061, %1058, %1057, %1049
  %1096 = landingpad { ptr, i32 }
          cleanup
  %1097 = extractvalue { ptr, i32 } %1096, 0
  store ptr %1097, ptr %6, align 8
  %1098 = extractvalue { ptr, i32 } %1096, 1
  store i32 %1098, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #7
  br label %1099

1099:                                             ; preds = %1095, %1091
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #7
  br label %1100

1100:                                             ; preds = %1099, %1087
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #7
  br label %1101

1101:                                             ; preds = %1100, %1083
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #7
  br label %1102

1102:                                             ; preds = %1101, %1079, %1075, %1006
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  br label %1103

1103:                                             ; preds = %1102, %1002
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  br label %1879

1104:                                             ; preds = %971
  %1105 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %1106 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %1105, ptr noundef @.str.26)
          to label %1107 unwind label %160

1107:                                             ; preds = %1104
  br i1 %1106, label %1108, label %1240

1108:                                             ; preds = %1107
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #7
  %1109 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %1110 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %1109, ptr noundef null, i32 noundef 10)
          to label %1111 unwind label %1132

1111:                                             ; preds = %1108
  store i32 %1110, ptr %72, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #7
  %1112 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 2) #7
  %1113 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %1112, ptr noundef null, i32 noundef 10)
          to label %1114 unwind label %1136

1114:                                             ; preds = %1111
  store i32 %1113, ptr %73, align 4, !tbaa !11
  %1115 = load i32, ptr %72, align 4, !tbaa !11
  %1116 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %1117 = load i32, ptr %1116, align 8, !tbaa !13
  %1118 = sub nsw i32 %1117, 1
  %1119 = icmp sgt i32 %1115, %1118
  br i1 %1119, label %1130, label %1120

1120:                                             ; preds = %1114
  %1121 = load i32, ptr %73, align 4, !tbaa !11
  %1122 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %1123 = load i32, ptr %1122, align 8, !tbaa !13
  %1124 = sub nsw i32 %1123, 1
  %1125 = icmp sgt i32 %1121, %1124
  br i1 %1125, label %1130, label %1126

1126:                                             ; preds = %1120
  %1127 = load i32, ptr %72, align 4, !tbaa !11
  %1128 = load i32, ptr %73, align 4, !tbaa !11
  %1129 = icmp eq i32 %1127, %1128
  br i1 %1129, label %1130, label %1140

1130:                                             ; preds = %1126, %1120, %1114
  %1131 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %1131, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1131) #7
  invoke void @__cxa_throw(ptr %1131, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %1136

1132:                                             ; preds = %1108
  %1133 = landingpad { ptr, i32 }
          cleanup
  %1134 = extractvalue { ptr, i32 } %1133, 0
  store ptr %1134, ptr %6, align 8
  %1135 = extractvalue { ptr, i32 } %1133, 1
  store i32 %1135, ptr %7, align 4
  br label %1239

1136:                                             ; preds = %1159, %1156, %1145, %1141, %1130, %1111
  %1137 = landingpad { ptr, i32 }
          cleanup
  %1138 = extractvalue { ptr, i32 } %1137, 0
  store ptr %1138, ptr %6, align 8
  %1139 = extractvalue { ptr, i32 } %1137, 1
  store i32 %1139, ptr %7, align 4
  br label %1238

1140:                                             ; preds = %1126
  call void @llvm.lifetime.start.p0(i64 16, ptr %74) #7
  invoke void @_ZSt11make_sharedIN6qtorch7CRkNodeEJRiEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.90") align 8 %74, ptr noundef nonnull align 4 dereferenceable(4) %72)
          to label %1141 unwind label %1207

1141:                                             ; preds = %1140
  %1142 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_7CRkNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %74) #7
  call void @_ZNSt12__shared_ptrIN6qtorch7CRkNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %74) #7
  %1143 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1144 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1143)
          to label %1145 unwind label %1136

1145:                                             ; preds = %1141
  %1146 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1147 = load i32, ptr %72, align 4, !tbaa !11
  %1148 = sext i32 %1147 to i64
  %1149 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1146, i64 noundef %1148) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1144, ptr noundef nonnull align 8 dereferenceable(16) %1149)
          to label %1150 unwind label %1136

1150:                                             ; preds = %1145
  %1151 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1152 = load i32, ptr %72, align 4, !tbaa !11
  %1153 = sext i32 %1152 to i64
  %1154 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1151, i64 noundef %1153) #7
  %1155 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1154) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %75, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1155, ptr noundef %75)
          to label %1156 unwind label %1211

1156:                                             ; preds = %1150
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %75) #7
  %1157 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1158 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1157)
          to label %1159 unwind label %1136

1159:                                             ; preds = %1156
  %1160 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1161 = load i32, ptr %73, align 4, !tbaa !11
  %1162 = sext i32 %1161 to i64
  %1163 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1160, i64 noundef %1162) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1158, ptr noundef nonnull align 8 dereferenceable(16) %1163)
          to label %1164 unwind label %1136

1164:                                             ; preds = %1159
  %1165 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1166 = load i32, ptr %73, align 4, !tbaa !11
  %1167 = sext i32 %1166 to i64
  %1168 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1165, i64 noundef %1167) #7
  %1169 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1168) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %76, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1169, ptr noundef %76)
          to label %1170 unwind label %1215

1170:                                             ; preds = %1164
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %77) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #7
  store ptr null, ptr %78, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %77, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 4 dereferenceable(4) %72)
          to label %1171 unwind label %1219

1171:                                             ; preds = %1170
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #7
  %1172 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1173 = load i32, ptr %72, align 4, !tbaa !11
  %1174 = sext i32 %1173 to i64
  %1175 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1172, i64 noundef %1174) #7
  %1176 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1175, ptr noundef nonnull align 8 dereferenceable(16) %77) #7
  %1177 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1178 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1177)
          to label %1179 unwind label %1223

1179:                                             ; preds = %1171
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1178, ptr noundef nonnull align 8 dereferenceable(16) %77)
          to label %1180 unwind label %1223

1180:                                             ; preds = %1179
  call void @llvm.lifetime.start.p0(i64 16, ptr %79) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #7
  store ptr null, ptr %80, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %79, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull align 4 dereferenceable(4) %73)
          to label %1181 unwind label %1227

1181:                                             ; preds = %1180
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #7
  %1182 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1183 = load i32, ptr %73, align 4, !tbaa !11
  %1184 = sext i32 %1183 to i64
  %1185 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1182, i64 noundef %1184) #7
  %1186 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1185, ptr noundef nonnull align 8 dereferenceable(16) %79) #7
  %1187 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1188 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1187)
          to label %1189 unwind label %1231

1189:                                             ; preds = %1181
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1188, ptr noundef nonnull align 8 dereferenceable(16) %79)
          to label %1190 unwind label %1231

1190:                                             ; preds = %1189
  %1191 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1192 = load i32, ptr %72, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1191, i32 noundef %1192)
          to label %1193 unwind label %1231

1193:                                             ; preds = %1190
  %1194 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1195 = load i32, ptr %73, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1194, i32 noundef %1195)
          to label %1196 unwind label %1231

1196:                                             ; preds = %1193
  %1197 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %1198 = load i32, ptr %72, align 4, !tbaa !11
  %1199 = sext i32 %1198 to i64
  %1200 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1197, i64 noundef %1199) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1200, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %1201 unwind label %1231

1201:                                             ; preds = %1196
  %1202 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %1203 = load i32, ptr %73, align 4, !tbaa !11
  %1204 = sext i32 %1203 to i64
  %1205 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1202, i64 noundef %1204) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1205, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %1206 unwind label %1231

1206:                                             ; preds = %1201
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %79) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %79) #7
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #7
  br label %1856

1207:                                             ; preds = %1140
  %1208 = landingpad { ptr, i32 }
          cleanup
  %1209 = extractvalue { ptr, i32 } %1208, 0
  store ptr %1209, ptr %6, align 8
  %1210 = extractvalue { ptr, i32 } %1208, 1
  store i32 %1210, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %74) #7
  br label %1238

1211:                                             ; preds = %1150
  %1212 = landingpad { ptr, i32 }
          cleanup
  %1213 = extractvalue { ptr, i32 } %1212, 0
  store ptr %1213, ptr %6, align 8
  %1214 = extractvalue { ptr, i32 } %1212, 1
  store i32 %1214, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %75) #7
  br label %1238

1215:                                             ; preds = %1164
  %1216 = landingpad { ptr, i32 }
          cleanup
  %1217 = extractvalue { ptr, i32 } %1216, 0
  store ptr %1217, ptr %6, align 8
  %1218 = extractvalue { ptr, i32 } %1216, 1
  store i32 %1218, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #7
  br label %1238

1219:                                             ; preds = %1170
  %1220 = landingpad { ptr, i32 }
          cleanup
  %1221 = extractvalue { ptr, i32 } %1220, 0
  store ptr %1221, ptr %6, align 8
  %1222 = extractvalue { ptr, i32 } %1220, 1
  store i32 %1222, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #7
  br label %1237

1223:                                             ; preds = %1179, %1171
  %1224 = landingpad { ptr, i32 }
          cleanup
  %1225 = extractvalue { ptr, i32 } %1224, 0
  store ptr %1225, ptr %6, align 8
  %1226 = extractvalue { ptr, i32 } %1224, 1
  store i32 %1226, ptr %7, align 4
  br label %1236

1227:                                             ; preds = %1180
  %1228 = landingpad { ptr, i32 }
          cleanup
  %1229 = extractvalue { ptr, i32 } %1228, 0
  store ptr %1229, ptr %6, align 8
  %1230 = extractvalue { ptr, i32 } %1228, 1
  store i32 %1230, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #7
  br label %1235

1231:                                             ; preds = %1201, %1196, %1193, %1190, %1189, %1181
  %1232 = landingpad { ptr, i32 }
          cleanup
  %1233 = extractvalue { ptr, i32 } %1232, 0
  store ptr %1233, ptr %6, align 8
  %1234 = extractvalue { ptr, i32 } %1232, 1
  store i32 %1234, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %79) #7
  br label %1235

1235:                                             ; preds = %1231, %1227
  call void @llvm.lifetime.end.p0(i64 16, ptr %79) #7
  br label %1236

1236:                                             ; preds = %1235, %1223
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #7
  br label %1237

1237:                                             ; preds = %1236, %1219
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #7
  br label %1238

1238:                                             ; preds = %1237, %1215, %1211, %1207, %1136
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #7
  br label %1239

1239:                                             ; preds = %1238, %1132
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #7
  br label %1879

1240:                                             ; preds = %1107
  %1241 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %1242 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %1241, ptr noundef @.str.27)
          to label %1243 unwind label %160

1243:                                             ; preds = %1240
  br i1 %1242, label %1244, label %1376

1244:                                             ; preds = %1243
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #7
  %1245 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %1246 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %1245, ptr noundef null, i32 noundef 10)
          to label %1247 unwind label %1268

1247:                                             ; preds = %1244
  store i32 %1246, ptr %81, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #7
  %1248 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 2) #7
  %1249 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %1248, ptr noundef null, i32 noundef 10)
          to label %1250 unwind label %1272

1250:                                             ; preds = %1247
  store i32 %1249, ptr %82, align 4, !tbaa !11
  %1251 = load i32, ptr %81, align 4, !tbaa !11
  %1252 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %1253 = load i32, ptr %1252, align 8, !tbaa !13
  %1254 = sub nsw i32 %1253, 1
  %1255 = icmp sgt i32 %1251, %1254
  br i1 %1255, label %1266, label %1256

1256:                                             ; preds = %1250
  %1257 = load i32, ptr %82, align 4, !tbaa !11
  %1258 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %1259 = load i32, ptr %1258, align 8, !tbaa !13
  %1260 = sub nsw i32 %1259, 1
  %1261 = icmp sgt i32 %1257, %1260
  br i1 %1261, label %1266, label %1262

1262:                                             ; preds = %1256
  %1263 = load i32, ptr %81, align 4, !tbaa !11
  %1264 = load i32, ptr %82, align 4, !tbaa !11
  %1265 = icmp eq i32 %1263, %1264
  br i1 %1265, label %1266, label %1276

1266:                                             ; preds = %1262, %1256, %1250
  %1267 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %1267, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1267) #7
  invoke void @__cxa_throw(ptr %1267, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %1272

1268:                                             ; preds = %1244
  %1269 = landingpad { ptr, i32 }
          cleanup
  %1270 = extractvalue { ptr, i32 } %1269, 0
  store ptr %1270, ptr %6, align 8
  %1271 = extractvalue { ptr, i32 } %1269, 1
  store i32 %1271, ptr %7, align 4
  br label %1375

1272:                                             ; preds = %1295, %1292, %1281, %1277, %1266, %1247
  %1273 = landingpad { ptr, i32 }
          cleanup
  %1274 = extractvalue { ptr, i32 } %1273, 0
  store ptr %1274, ptr %6, align 8
  %1275 = extractvalue { ptr, i32 } %1273, 1
  store i32 %1275, ptr %7, align 4
  br label %1374

1276:                                             ; preds = %1262
  call void @llvm.lifetime.start.p0(i64 16, ptr %83) #7
  invoke void @_ZSt11make_sharedIN6qtorch6CZNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.93") align 8 %83)
          to label %1277 unwind label %1343

1277:                                             ; preds = %1276
  %1278 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_6CZNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %83) #7
  call void @_ZNSt12__shared_ptrIN6qtorch6CZNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %83) #7
  %1279 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1280 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1279)
          to label %1281 unwind label %1272

1281:                                             ; preds = %1277
  %1282 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1283 = load i32, ptr %81, align 4, !tbaa !11
  %1284 = sext i32 %1283 to i64
  %1285 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1282, i64 noundef %1284) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1280, ptr noundef nonnull align 8 dereferenceable(16) %1285)
          to label %1286 unwind label %1272

1286:                                             ; preds = %1281
  %1287 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1288 = load i32, ptr %81, align 4, !tbaa !11
  %1289 = sext i32 %1288 to i64
  %1290 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1287, i64 noundef %1289) #7
  %1291 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1290) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %84, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1291, ptr noundef %84)
          to label %1292 unwind label %1347

1292:                                             ; preds = %1286
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %84) #7
  %1293 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1294 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1293)
          to label %1295 unwind label %1272

1295:                                             ; preds = %1292
  %1296 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1297 = load i32, ptr %82, align 4, !tbaa !11
  %1298 = sext i32 %1297 to i64
  %1299 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1296, i64 noundef %1298) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1294, ptr noundef nonnull align 8 dereferenceable(16) %1299)
          to label %1300 unwind label %1272

1300:                                             ; preds = %1295
  %1301 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1302 = load i32, ptr %82, align 4, !tbaa !11
  %1303 = sext i32 %1302 to i64
  %1304 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1301, i64 noundef %1303) #7
  %1305 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1304) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %85, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1305, ptr noundef %85)
          to label %1306 unwind label %1351

1306:                                             ; preds = %1300
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %85) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %86) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #7
  store ptr null, ptr %87, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %86, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull align 4 dereferenceable(4) %81)
          to label %1307 unwind label %1355

1307:                                             ; preds = %1306
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #7
  %1308 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1309 = load i32, ptr %81, align 4, !tbaa !11
  %1310 = sext i32 %1309 to i64
  %1311 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1308, i64 noundef %1310) #7
  %1312 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1311, ptr noundef nonnull align 8 dereferenceable(16) %86) #7
  %1313 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1314 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1313)
          to label %1315 unwind label %1359

1315:                                             ; preds = %1307
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1314, ptr noundef nonnull align 8 dereferenceable(16) %86)
          to label %1316 unwind label %1359

1316:                                             ; preds = %1315
  call void @llvm.lifetime.start.p0(i64 16, ptr %88) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #7
  store ptr null, ptr %89, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %88, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 4 dereferenceable(4) %82)
          to label %1317 unwind label %1363

1317:                                             ; preds = %1316
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  %1318 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1319 = load i32, ptr %82, align 4, !tbaa !11
  %1320 = sext i32 %1319 to i64
  %1321 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1318, i64 noundef %1320) #7
  %1322 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1321, ptr noundef nonnull align 8 dereferenceable(16) %88) #7
  %1323 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1324 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1323)
          to label %1325 unwind label %1367

1325:                                             ; preds = %1317
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1324, ptr noundef nonnull align 8 dereferenceable(16) %88)
          to label %1326 unwind label %1367

1326:                                             ; preds = %1325
  %1327 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1328 = load i32, ptr %81, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1327, i32 noundef %1328)
          to label %1329 unwind label %1367

1329:                                             ; preds = %1326
  %1330 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1331 = load i32, ptr %82, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1330, i32 noundef %1331)
          to label %1332 unwind label %1367

1332:                                             ; preds = %1329
  %1333 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %1334 = load i32, ptr %81, align 4, !tbaa !11
  %1335 = sext i32 %1334 to i64
  %1336 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1333, i64 noundef %1335) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1336, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %1337 unwind label %1367

1337:                                             ; preds = %1332
  %1338 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %1339 = load i32, ptr %82, align 4, !tbaa !11
  %1340 = sext i32 %1339 to i64
  %1341 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1338, i64 noundef %1340) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1341, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %1342 unwind label %1367

1342:                                             ; preds = %1337
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %88) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %88) #7
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %86) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #7
  br label %1855

1343:                                             ; preds = %1276
  %1344 = landingpad { ptr, i32 }
          cleanup
  %1345 = extractvalue { ptr, i32 } %1344, 0
  store ptr %1345, ptr %6, align 8
  %1346 = extractvalue { ptr, i32 } %1344, 1
  store i32 %1346, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %83) #7
  br label %1374

1347:                                             ; preds = %1286
  %1348 = landingpad { ptr, i32 }
          cleanup
  %1349 = extractvalue { ptr, i32 } %1348, 0
  store ptr %1349, ptr %6, align 8
  %1350 = extractvalue { ptr, i32 } %1348, 1
  store i32 %1350, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %84) #7
  br label %1374

1351:                                             ; preds = %1300
  %1352 = landingpad { ptr, i32 }
          cleanup
  %1353 = extractvalue { ptr, i32 } %1352, 0
  store ptr %1353, ptr %6, align 8
  %1354 = extractvalue { ptr, i32 } %1352, 1
  store i32 %1354, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %85) #7
  br label %1374

1355:                                             ; preds = %1306
  %1356 = landingpad { ptr, i32 }
          cleanup
  %1357 = extractvalue { ptr, i32 } %1356, 0
  store ptr %1357, ptr %6, align 8
  %1358 = extractvalue { ptr, i32 } %1356, 1
  store i32 %1358, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #7
  br label %1373

1359:                                             ; preds = %1315, %1307
  %1360 = landingpad { ptr, i32 }
          cleanup
  %1361 = extractvalue { ptr, i32 } %1360, 0
  store ptr %1361, ptr %6, align 8
  %1362 = extractvalue { ptr, i32 } %1360, 1
  store i32 %1362, ptr %7, align 4
  br label %1372

1363:                                             ; preds = %1316
  %1364 = landingpad { ptr, i32 }
          cleanup
  %1365 = extractvalue { ptr, i32 } %1364, 0
  store ptr %1365, ptr %6, align 8
  %1366 = extractvalue { ptr, i32 } %1364, 1
  store i32 %1366, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  br label %1371

1367:                                             ; preds = %1337, %1332, %1329, %1326, %1325, %1317
  %1368 = landingpad { ptr, i32 }
          cleanup
  %1369 = extractvalue { ptr, i32 } %1368, 0
  store ptr %1369, ptr %6, align 8
  %1370 = extractvalue { ptr, i32 } %1368, 1
  store i32 %1370, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %88) #7
  br label %1371

1371:                                             ; preds = %1367, %1363
  call void @llvm.lifetime.end.p0(i64 16, ptr %88) #7
  br label %1372

1372:                                             ; preds = %1371, %1359
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %86) #7
  br label %1373

1373:                                             ; preds = %1372, %1355
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #7
  br label %1374

1374:                                             ; preds = %1373, %1351, %1347, %1343, %1272
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #7
  br label %1375

1375:                                             ; preds = %1374, %1268
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #7
  br label %1879

1376:                                             ; preds = %1243
  %1377 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %1378 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %1377, ptr noundef @.str.28)
          to label %1379 unwind label %160

1379:                                             ; preds = %1376
  br i1 %1378, label %1380, label %1520

1380:                                             ; preds = %1379
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #7
  %1381 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %1382 = invoke noundef double @_ZNSt7__cxx114stodERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPm(ptr noundef nonnull align 8 dereferenceable(32) %1381, ptr noundef null)
          to label %1383 unwind label %1407

1383:                                             ; preds = %1380
  store double %1382, ptr %90, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #7
  %1384 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 2) #7
  %1385 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %1384, ptr noundef null, i32 noundef 10)
          to label %1386 unwind label %1411

1386:                                             ; preds = %1383
  store i32 %1385, ptr %91, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #7
  %1387 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 3) #7
  %1388 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %1387, ptr noundef null, i32 noundef 10)
          to label %1389 unwind label %1415

1389:                                             ; preds = %1386
  store i32 %1388, ptr %92, align 4, !tbaa !11
  %1390 = load i32, ptr %91, align 4, !tbaa !11
  %1391 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %1392 = load i32, ptr %1391, align 8, !tbaa !13
  %1393 = sub nsw i32 %1392, 1
  %1394 = icmp sgt i32 %1390, %1393
  br i1 %1394, label %1405, label %1395

1395:                                             ; preds = %1389
  %1396 = load i32, ptr %92, align 4, !tbaa !11
  %1397 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %1398 = load i32, ptr %1397, align 8, !tbaa !13
  %1399 = sub nsw i32 %1398, 1
  %1400 = icmp sgt i32 %1396, %1399
  br i1 %1400, label %1405, label %1401

1401:                                             ; preds = %1395
  %1402 = load i32, ptr %91, align 4, !tbaa !11
  %1403 = load i32, ptr %92, align 4, !tbaa !11
  %1404 = icmp eq i32 %1402, %1403
  br i1 %1404, label %1405, label %1419

1405:                                             ; preds = %1401, %1395, %1389
  %1406 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %1406, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1406) #7
  invoke void @__cxa_throw(ptr %1406, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %1415

1407:                                             ; preds = %1380
  %1408 = landingpad { ptr, i32 }
          cleanup
  %1409 = extractvalue { ptr, i32 } %1408, 0
  store ptr %1409, ptr %6, align 8
  %1410 = extractvalue { ptr, i32 } %1408, 1
  store i32 %1410, ptr %7, align 4
  br label %1519

1411:                                             ; preds = %1383
  %1412 = landingpad { ptr, i32 }
          cleanup
  %1413 = extractvalue { ptr, i32 } %1412, 0
  store ptr %1413, ptr %6, align 8
  %1414 = extractvalue { ptr, i32 } %1412, 1
  store i32 %1414, ptr %7, align 4
  br label %1518

1415:                                             ; preds = %1438, %1435, %1424, %1420, %1405, %1386
  %1416 = landingpad { ptr, i32 }
          cleanup
  %1417 = extractvalue { ptr, i32 } %1416, 0
  store ptr %1417, ptr %6, align 8
  %1418 = extractvalue { ptr, i32 } %1416, 1
  store i32 %1418, ptr %7, align 4
  br label %1517

1419:                                             ; preds = %1401
  call void @llvm.lifetime.start.p0(i64 16, ptr %93) #7
  invoke void @_ZSt11make_sharedIN6qtorch10CPhaseNodeEJRdEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.96") align 8 %93, ptr noundef nonnull align 8 dereferenceable(8) %90)
          to label %1420 unwind label %1486

1420:                                             ; preds = %1419
  %1421 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_10CPhaseNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %93) #7
  call void @_ZNSt12__shared_ptrIN6qtorch10CPhaseNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %93) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %93) #7
  %1422 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1423 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1422)
          to label %1424 unwind label %1415

1424:                                             ; preds = %1420
  %1425 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1426 = load i32, ptr %91, align 4, !tbaa !11
  %1427 = sext i32 %1426 to i64
  %1428 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1425, i64 noundef %1427) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1423, ptr noundef nonnull align 8 dereferenceable(16) %1428)
          to label %1429 unwind label %1415

1429:                                             ; preds = %1424
  %1430 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1431 = load i32, ptr %91, align 4, !tbaa !11
  %1432 = sext i32 %1431 to i64
  %1433 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1430, i64 noundef %1432) #7
  %1434 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1433) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %94, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1434, ptr noundef %94)
          to label %1435 unwind label %1490

1435:                                             ; preds = %1429
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %94) #7
  %1436 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1437 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1436)
          to label %1438 unwind label %1415

1438:                                             ; preds = %1435
  %1439 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1440 = load i32, ptr %92, align 4, !tbaa !11
  %1441 = sext i32 %1440 to i64
  %1442 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1439, i64 noundef %1441) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1437, ptr noundef nonnull align 8 dereferenceable(16) %1442)
          to label %1443 unwind label %1415

1443:                                             ; preds = %1438
  %1444 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1445 = load i32, ptr %92, align 4, !tbaa !11
  %1446 = sext i32 %1445 to i64
  %1447 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1444, i64 noundef %1446) #7
  %1448 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1447) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %95, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1448, ptr noundef %95)
          to label %1449 unwind label %1494

1449:                                             ; preds = %1443
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %95) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %96) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #7
  store ptr null, ptr %97, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %96, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 4 dereferenceable(4) %91)
          to label %1450 unwind label %1498

1450:                                             ; preds = %1449
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #7
  %1451 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1452 = load i32, ptr %91, align 4, !tbaa !11
  %1453 = sext i32 %1452 to i64
  %1454 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1451, i64 noundef %1453) #7
  %1455 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1454, ptr noundef nonnull align 8 dereferenceable(16) %96) #7
  %1456 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1457 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1456)
          to label %1458 unwind label %1502

1458:                                             ; preds = %1450
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1457, ptr noundef nonnull align 8 dereferenceable(16) %96)
          to label %1459 unwind label %1502

1459:                                             ; preds = %1458
  call void @llvm.lifetime.start.p0(i64 16, ptr %98) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #7
  store ptr null, ptr %99, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %98, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 4 dereferenceable(4) %92)
          to label %1460 unwind label %1506

1460:                                             ; preds = %1459
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #7
  %1461 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1462 = load i32, ptr %92, align 4, !tbaa !11
  %1463 = sext i32 %1462 to i64
  %1464 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1461, i64 noundef %1463) #7
  %1465 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1464, ptr noundef nonnull align 8 dereferenceable(16) %98) #7
  %1466 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1467 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1466)
          to label %1468 unwind label %1510

1468:                                             ; preds = %1460
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1467, ptr noundef nonnull align 8 dereferenceable(16) %98)
          to label %1469 unwind label %1510

1469:                                             ; preds = %1468
  %1470 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1471 = load i32, ptr %91, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1470, i32 noundef %1471)
          to label %1472 unwind label %1510

1472:                                             ; preds = %1469
  %1473 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1474 = load i32, ptr %92, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1473, i32 noundef %1474)
          to label %1475 unwind label %1510

1475:                                             ; preds = %1472
  %1476 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %1477 = load i32, ptr %91, align 4, !tbaa !11
  %1478 = sext i32 %1477 to i64
  %1479 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1476, i64 noundef %1478) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1479, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %1480 unwind label %1510

1480:                                             ; preds = %1475
  %1481 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %1482 = load i32, ptr %92, align 4, !tbaa !11
  %1483 = sext i32 %1482 to i64
  %1484 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1481, i64 noundef %1483) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1484, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %1485 unwind label %1510

1485:                                             ; preds = %1480
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %98) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #7
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %96) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #7
  br label %1854

1486:                                             ; preds = %1419
  %1487 = landingpad { ptr, i32 }
          cleanup
  %1488 = extractvalue { ptr, i32 } %1487, 0
  store ptr %1488, ptr %6, align 8
  %1489 = extractvalue { ptr, i32 } %1487, 1
  store i32 %1489, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %93) #7
  br label %1517

1490:                                             ; preds = %1429
  %1491 = landingpad { ptr, i32 }
          cleanup
  %1492 = extractvalue { ptr, i32 } %1491, 0
  store ptr %1492, ptr %6, align 8
  %1493 = extractvalue { ptr, i32 } %1491, 1
  store i32 %1493, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %94) #7
  br label %1517

1494:                                             ; preds = %1443
  %1495 = landingpad { ptr, i32 }
          cleanup
  %1496 = extractvalue { ptr, i32 } %1495, 0
  store ptr %1496, ptr %6, align 8
  %1497 = extractvalue { ptr, i32 } %1495, 1
  store i32 %1497, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %95) #7
  br label %1517

1498:                                             ; preds = %1449
  %1499 = landingpad { ptr, i32 }
          cleanup
  %1500 = extractvalue { ptr, i32 } %1499, 0
  store ptr %1500, ptr %6, align 8
  %1501 = extractvalue { ptr, i32 } %1499, 1
  store i32 %1501, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #7
  br label %1516

1502:                                             ; preds = %1458, %1450
  %1503 = landingpad { ptr, i32 }
          cleanup
  %1504 = extractvalue { ptr, i32 } %1503, 0
  store ptr %1504, ptr %6, align 8
  %1505 = extractvalue { ptr, i32 } %1503, 1
  store i32 %1505, ptr %7, align 4
  br label %1515

1506:                                             ; preds = %1459
  %1507 = landingpad { ptr, i32 }
          cleanup
  %1508 = extractvalue { ptr, i32 } %1507, 0
  store ptr %1508, ptr %6, align 8
  %1509 = extractvalue { ptr, i32 } %1507, 1
  store i32 %1509, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #7
  br label %1514

1510:                                             ; preds = %1480, %1475, %1472, %1469, %1468, %1460
  %1511 = landingpad { ptr, i32 }
          cleanup
  %1512 = extractvalue { ptr, i32 } %1511, 0
  store ptr %1512, ptr %6, align 8
  %1513 = extractvalue { ptr, i32 } %1511, 1
  store i32 %1513, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %98) #7
  br label %1514

1514:                                             ; preds = %1510, %1506
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #7
  br label %1515

1515:                                             ; preds = %1514, %1502
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %96) #7
  br label %1516

1516:                                             ; preds = %1515, %1498
  call void @llvm.lifetime.end.p0(i64 16, ptr %96) #7
  br label %1517

1517:                                             ; preds = %1516, %1494, %1490, %1486, %1415
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #7
  br label %1518

1518:                                             ; preds = %1517, %1411
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #7
  br label %1519

1519:                                             ; preds = %1518, %1407
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #7
  br label %1879

1520:                                             ; preds = %1379
  %1521 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %1522 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %1521, ptr noundef @.str.29)
          to label %1523 unwind label %160

1523:                                             ; preds = %1520
  br i1 %1522, label %1524, label %1544

1524:                                             ; preds = %1523
  %1525 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 64, ptr %100) #7
  %1526 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %1527 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 2) #7
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EC2IRS5_S9_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISB_SC_EEEbE4typeELb1EEEOSB_OSC_(ptr noundef nonnull align 8 dereferenceable(64) %100, ptr noundef nonnull align 8 dereferenceable(32) %1526, ptr noundef nonnull align 8 dereferenceable(32) %1527)
          to label %1528 unwind label %1535

1528:                                             ; preds = %1524
  %1529 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertEOSC_(ptr noundef nonnull align 8 dereferenceable(56) %1525, ptr noundef nonnull align 8 dereferenceable(64) %100)
          to label %1530 unwind label %1539

1530:                                             ; preds = %1528
  %1531 = getelementptr inbounds { ptr, i8 }, ptr %101, i32 0, i32 0
  %1532 = extractvalue { ptr, i8 } %1529, 0
  store ptr %1532, ptr %1531, align 8
  %1533 = getelementptr inbounds { ptr, i8 }, ptr %101, i32 0, i32 1
  %1534 = extractvalue { ptr, i8 } %1529, 1
  store i8 %1534, ptr %1533, align 8
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %100) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %100) #7
  store i32 1, ptr %8, align 4
  br label %1875

1535:                                             ; preds = %1524
  %1536 = landingpad { ptr, i32 }
          cleanup
  %1537 = extractvalue { ptr, i32 } %1536, 0
  store ptr %1537, ptr %6, align 8
  %1538 = extractvalue { ptr, i32 } %1536, 1
  store i32 %1538, ptr %7, align 4
  br label %1543

1539:                                             ; preds = %1528
  %1540 = landingpad { ptr, i32 }
          cleanup
  %1541 = extractvalue { ptr, i32 } %1540, 0
  store ptr %1541, ptr %6, align 8
  %1542 = extractvalue { ptr, i32 } %1540, 1
  store i32 %1542, ptr %7, align 4
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %100) #7
  br label %1543

1543:                                             ; preds = %1539, %1535
  call void @llvm.lifetime.end.p0(i64 64, ptr %100) #7
  br label %1879

1544:                                             ; preds = %1523
  %1545 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %1546 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %1545, ptr noundef @.str.30)
          to label %1547 unwind label %160

1547:                                             ; preds = %1544
  br i1 %1546, label %1548, label %1568

1548:                                             ; preds = %1547
  %1549 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 15
  call void @llvm.lifetime.start.p0(i64 64, ptr %102) #7
  %1550 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %1551 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 2) #7
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EC2IRS5_S9_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISB_SC_EEEbE4typeELb1EEEOSB_OSC_(ptr noundef nonnull align 8 dereferenceable(64) %102, ptr noundef nonnull align 8 dereferenceable(32) %1550, ptr noundef nonnull align 8 dereferenceable(32) %1551)
          to label %1552 unwind label %1559

1552:                                             ; preds = %1548
  %1553 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertEOSC_(ptr noundef nonnull align 8 dereferenceable(56) %1549, ptr noundef nonnull align 8 dereferenceable(64) %102)
          to label %1554 unwind label %1563

1554:                                             ; preds = %1552
  %1555 = getelementptr inbounds { ptr, i8 }, ptr %103, i32 0, i32 0
  %1556 = extractvalue { ptr, i8 } %1553, 0
  store ptr %1556, ptr %1555, align 8
  %1557 = getelementptr inbounds { ptr, i8 }, ptr %103, i32 0, i32 1
  %1558 = extractvalue { ptr, i8 } %1553, 1
  store i8 %1558, ptr %1557, align 8
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %102) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %102) #7
  store i32 1, ptr %8, align 4
  br label %1875

1559:                                             ; preds = %1548
  %1560 = landingpad { ptr, i32 }
          cleanup
  %1561 = extractvalue { ptr, i32 } %1560, 0
  store ptr %1561, ptr %6, align 8
  %1562 = extractvalue { ptr, i32 } %1560, 1
  store i32 %1562, ptr %7, align 4
  br label %1567

1563:                                             ; preds = %1552
  %1564 = landingpad { ptr, i32 }
          cleanup
  %1565 = extractvalue { ptr, i32 } %1564, 0
  store ptr %1565, ptr %6, align 8
  %1566 = extractvalue { ptr, i32 } %1564, 1
  store i32 %1566, ptr %7, align 4
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %102) #7
  br label %1567

1567:                                             ; preds = %1563, %1559
  call void @llvm.lifetime.end.p0(i64 64, ptr %102) #7
  br label %1879

1568:                                             ; preds = %1547
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #7
  %1569 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 14
  %1570 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %1571 = invoke ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(56) %1569, ptr noundef nonnull align 8 dereferenceable(32) %1570)
          to label %1572 unwind label %1598

1572:                                             ; preds = %1568
  %1573 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %104, i32 0, i32 0
  %1574 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %1573, i32 0, i32 0
  store ptr %1571, ptr %1574, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #7
  %1575 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 14
  %1576 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %1575) #7
  %1577 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %105, i32 0, i32 0
  %1578 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %1577, i32 0, i32 0
  store ptr %1576, ptr %1578, align 8
  %1579 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull align 8 dereferenceable(8) %105) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #7
  br i1 %1579, label %1580, label %1666

1580:                                             ; preds = %1572
  call void @llvm.lifetime.start.p0(i64 16, ptr %106) #7
  %1581 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 14
  %1582 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %1583 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(56) %1581, ptr noundef nonnull align 8 dereferenceable(32) %1582)
          to label %1584 unwind label %1602

1584:                                             ; preds = %1580
  %1585 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  invoke void @_ZSt11make_sharedIN6qtorch21ArbitraryOneQubitNodeEJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_EESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESB_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.103") align 8 %106, ptr noundef nonnull align 8 dereferenceable(32) %1583, ptr noundef nonnull align 8 dereferenceable(32) %1585)
          to label %1586 unwind label %1602

1586:                                             ; preds = %1584
  %1587 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_21ArbitraryOneQubitNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %106) #7
  call void @_ZNSt12__shared_ptrIN6qtorch21ArbitraryOneQubitNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %106) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #7
  %1588 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %1589 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %1588, ptr noundef null, i32 noundef 10)
          to label %1590 unwind label %1606

1590:                                             ; preds = %1586
  store i32 %1589, ptr %107, align 4, !tbaa !11
  %1591 = load i32, ptr %107, align 4, !tbaa !11
  %1592 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %1593 = load i32, ptr %1592, align 8, !tbaa !13
  %1594 = sub nsw i32 %1593, 1
  %1595 = icmp sgt i32 %1591, %1594
  br i1 %1595, label %1596, label %1610

1596:                                             ; preds = %1590
  %1597 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %1597, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1597) #7
  invoke void @__cxa_throw(ptr %1597, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %1606

1598:                                             ; preds = %1568
  %1599 = landingpad { ptr, i32 }
          cleanup
  %1600 = extractvalue { ptr, i32 } %1599, 0
  store ptr %1600, ptr %6, align 8
  %1601 = extractvalue { ptr, i32 } %1599, 1
  store i32 %1601, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #7
  br label %1879

1602:                                             ; preds = %1584, %1580
  %1603 = landingpad { ptr, i32 }
          cleanup
  %1604 = extractvalue { ptr, i32 } %1603, 0
  store ptr %1604, ptr %6, align 8
  %1605 = extractvalue { ptr, i32 } %1603, 1
  store i32 %1605, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #7
  br label %1879

1606:                                             ; preds = %1613, %1610, %1596, %1586
  %1607 = landingpad { ptr, i32 }
          cleanup
  %1608 = extractvalue { ptr, i32 } %1607, 0
  store ptr %1608, ptr %6, align 8
  %1609 = extractvalue { ptr, i32 } %1607, 1
  store i32 %1609, ptr %7, align 4
  br label %1665

1610:                                             ; preds = %1590
  %1611 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1612 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1611)
          to label %1613 unwind label %1606

1613:                                             ; preds = %1610
  %1614 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1615 = load i32, ptr %107, align 4, !tbaa !11
  %1616 = sext i32 %1615 to i64
  %1617 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1614, i64 noundef %1616) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1612, ptr noundef nonnull align 8 dereferenceable(16) %1617)
          to label %1618 unwind label %1606

1618:                                             ; preds = %1613
  %1619 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1620 = load i32, ptr %107, align 4, !tbaa !11
  %1621 = sext i32 %1620 to i64
  %1622 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1619, i64 noundef %1621) #7
  %1623 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1622) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %108, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1623, ptr noundef %108)
          to label %1624 unwind label %1652

1624:                                             ; preds = %1618
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %108) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %109) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #7
  store ptr null, ptr %110, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %109, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %110, ptr noundef nonnull align 4 dereferenceable(4) %107)
          to label %1625 unwind label %1656

1625:                                             ; preds = %1624
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #7
  %1626 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1627 = load i32, ptr %107, align 4, !tbaa !11
  %1628 = sext i32 %1627 to i64
  %1629 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1626, i64 noundef %1628) #7
  %1630 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1629, ptr noundef nonnull align 8 dereferenceable(16) %109) #7
  %1631 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1632 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1631)
          to label %1633 unwind label %1660

1633:                                             ; preds = %1625
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1632, ptr noundef nonnull align 8 dereferenceable(16) %109)
          to label %1634 unwind label %1660

1634:                                             ; preds = %1633
  %1635 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1636 = load i32, ptr %107, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1635, i32 noundef %1636)
          to label %1637 unwind label %1660

1637:                                             ; preds = %1634
  %1638 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %1639 = load i32, ptr %107, align 4, !tbaa !11
  %1640 = sext i32 %1639 to i64
  %1641 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1638, i64 noundef %1640) #7
  %1642 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1641) #7
  %1643 = sub i64 %1642, 1
  %1644 = trunc i64 %1643 to i32
  %1645 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1646 = getelementptr inbounds %"class.qtorch::Node", ptr %1645, i32 0, i32 3
  store i32 %1644, ptr %1646, align 8, !tbaa !41
  %1647 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %1648 = load i32, ptr %107, align 4, !tbaa !11
  %1649 = sext i32 %1648 to i64
  %1650 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1647, i64 noundef %1649) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1650, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %1651 unwind label %1660

1651:                                             ; preds = %1637
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %109) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #7
  br label %1851

1652:                                             ; preds = %1618
  %1653 = landingpad { ptr, i32 }
          cleanup
  %1654 = extractvalue { ptr, i32 } %1653, 0
  store ptr %1654, ptr %6, align 8
  %1655 = extractvalue { ptr, i32 } %1653, 1
  store i32 %1655, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %108) #7
  br label %1665

1656:                                             ; preds = %1624
  %1657 = landingpad { ptr, i32 }
          cleanup
  %1658 = extractvalue { ptr, i32 } %1657, 0
  store ptr %1658, ptr %6, align 8
  %1659 = extractvalue { ptr, i32 } %1657, 1
  store i32 %1659, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #7
  br label %1664

1660:                                             ; preds = %1637, %1634, %1633, %1625
  %1661 = landingpad { ptr, i32 }
          cleanup
  %1662 = extractvalue { ptr, i32 } %1661, 0
  store ptr %1662, ptr %6, align 8
  %1663 = extractvalue { ptr, i32 } %1661, 1
  store i32 %1663, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %109) #7
  br label %1664

1664:                                             ; preds = %1660, %1656
  call void @llvm.lifetime.end.p0(i64 16, ptr %109) #7
  br label %1665

1665:                                             ; preds = %1664, %1652, %1606
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #7
  br label %1879

1666:                                             ; preds = %1572
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #7
  %1667 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 15
  %1668 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %1669 = invoke ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(56) %1667, ptr noundef nonnull align 8 dereferenceable(32) %1668)
          to label %1670 unwind label %1709

1670:                                             ; preds = %1666
  %1671 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %111, i32 0, i32 0
  %1672 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %1671, i32 0, i32 0
  store ptr %1669, ptr %1672, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #7
  %1673 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 15
  %1674 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %1673) #7
  %1675 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %112, i32 0, i32 0
  %1676 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %1675, i32 0, i32 0
  store ptr %1674, ptr %1676, align 8
  %1677 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef nonnull align 8 dereferenceable(8) %112) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #7
  br i1 %1677, label %1678, label %1819

1678:                                             ; preds = %1670
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #7
  %1679 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 15
  %1680 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  %1681 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(56) %1679, ptr noundef nonnull align 8 dereferenceable(32) %1680)
          to label %1682 unwind label %1713

1682:                                             ; preds = %1678
  %1683 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  invoke void @_ZSt11make_sharedIN6qtorch21ArbitraryTwoQubitNodeEJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_EESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESB_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.106") align 8 %113, ptr noundef nonnull align 8 dereferenceable(32) %1681, ptr noundef nonnull align 8 dereferenceable(32) %1683)
          to label %1684 unwind label %1713

1684:                                             ; preds = %1682
  %1685 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_21ArbitraryTwoQubitNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %113) #7
  call void @_ZNSt12__shared_ptrIN6qtorch21ArbitraryTwoQubitNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #7
  %1686 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  %1687 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %1686, ptr noundef null, i32 noundef 10)
          to label %1688 unwind label %1717

1688:                                             ; preds = %1684
  store i32 %1687, ptr %114, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #7
  %1689 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 2) #7
  %1690 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %1689, ptr noundef null, i32 noundef 10)
          to label %1691 unwind label %1721

1691:                                             ; preds = %1688
  store i32 %1690, ptr %115, align 4, !tbaa !11
  %1692 = load i32, ptr %114, align 4, !tbaa !11
  %1693 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %1694 = load i32, ptr %1693, align 8, !tbaa !13
  %1695 = sub nsw i32 %1694, 1
  %1696 = icmp sgt i32 %1692, %1695
  br i1 %1696, label %1707, label %1697

1697:                                             ; preds = %1691
  %1698 = load i32, ptr %115, align 4, !tbaa !11
  %1699 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 6
  %1700 = load i32, ptr %1699, align 8, !tbaa !13
  %1701 = sub nsw i32 %1700, 1
  %1702 = icmp sgt i32 %1698, %1701
  br i1 %1702, label %1707, label %1703

1703:                                             ; preds = %1697
  %1704 = load i32, ptr %114, align 4, !tbaa !11
  %1705 = load i32, ptr %115, align 4, !tbaa !11
  %1706 = icmp eq i32 %1704, %1705
  br i1 %1706, label %1707, label %1725

1707:                                             ; preds = %1703, %1697, %1691
  %1708 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %1708, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1708) #7
  invoke void @__cxa_throw(ptr %1708, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %1721

1709:                                             ; preds = %1666
  %1710 = landingpad { ptr, i32 }
          cleanup
  %1711 = extractvalue { ptr, i32 } %1710, 0
  store ptr %1711, ptr %6, align 8
  %1712 = extractvalue { ptr, i32 } %1710, 1
  store i32 %1712, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #7
  br label %1879

1713:                                             ; preds = %1682, %1678
  %1714 = landingpad { ptr, i32 }
          cleanup
  %1715 = extractvalue { ptr, i32 } %1714, 0
  store ptr %1715, ptr %6, align 8
  %1716 = extractvalue { ptr, i32 } %1714, 1
  store i32 %1716, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #7
  br label %1879

1717:                                             ; preds = %1684
  %1718 = landingpad { ptr, i32 }
          cleanup
  %1719 = extractvalue { ptr, i32 } %1718, 0
  store ptr %1719, ptr %6, align 8
  %1720 = extractvalue { ptr, i32 } %1718, 1
  store i32 %1720, ptr %7, align 4
  br label %1818

1721:                                             ; preds = %1742, %1739, %1728, %1725, %1707, %1688
  %1722 = landingpad { ptr, i32 }
          cleanup
  %1723 = extractvalue { ptr, i32 } %1722, 0
  store ptr %1723, ptr %6, align 8
  %1724 = extractvalue { ptr, i32 } %1722, 1
  store i32 %1724, ptr %7, align 4
  br label %1817

1725:                                             ; preds = %1703
  %1726 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1727 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1726)
          to label %1728 unwind label %1721

1728:                                             ; preds = %1725
  %1729 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1730 = load i32, ptr %114, align 4, !tbaa !11
  %1731 = sext i32 %1730 to i64
  %1732 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1729, i64 noundef %1731) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1727, ptr noundef nonnull align 8 dereferenceable(16) %1732)
          to label %1733 unwind label %1721

1733:                                             ; preds = %1728
  %1734 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1735 = load i32, ptr %114, align 4, !tbaa !11
  %1736 = sext i32 %1735 to i64
  %1737 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1734, i64 noundef %1736) #7
  %1738 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1737) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %116, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1738, ptr noundef %116)
          to label %1739 unwind label %1790

1739:                                             ; preds = %1733
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %116) #7
  %1740 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1741 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1740)
          to label %1742 unwind label %1721

1742:                                             ; preds = %1739
  %1743 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1744 = load i32, ptr %115, align 4, !tbaa !11
  %1745 = sext i32 %1744 to i64
  %1746 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1743, i64 noundef %1745) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1741, ptr noundef nonnull align 8 dereferenceable(16) %1746)
          to label %1747 unwind label %1721

1747:                                             ; preds = %1742
  %1748 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1749 = load i32, ptr %115, align 4, !tbaa !11
  %1750 = sext i32 %1749 to i64
  %1751 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1748, i64 noundef %1750) #7
  %1752 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1751) #7
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %117, ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  invoke void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1752, ptr noundef %117)
          to label %1753 unwind label %1794

1753:                                             ; preds = %1747
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %117) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %118) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #7
  store ptr null, ptr %119, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %118, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 4 dereferenceable(4) %114)
          to label %1754 unwind label %1798

1754:                                             ; preds = %1753
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #7
  %1755 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1756 = load i32, ptr %114, align 4, !tbaa !11
  %1757 = sext i32 %1756 to i64
  %1758 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1755, i64 noundef %1757) #7
  %1759 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1758, ptr noundef nonnull align 8 dereferenceable(16) %118) #7
  %1760 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1761 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1760)
          to label %1762 unwind label %1802

1762:                                             ; preds = %1754
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1761, ptr noundef nonnull align 8 dereferenceable(16) %118)
          to label %1763 unwind label %1802

1763:                                             ; preds = %1762
  call void @llvm.lifetime.start.p0(i64 16, ptr %120) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #7
  store ptr null, ptr %121, align 8, !tbaa !39
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.32") align 8 %120, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef nonnull align 4 dereferenceable(4) %115)
          to label %1764 unwind label %1806

1764:                                             ; preds = %1763
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #7
  %1765 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 1
  %1766 = load i32, ptr %115, align 4, !tbaa !11
  %1767 = sext i32 %1766 to i64
  %1768 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1765, i64 noundef %1767) #7
  %1769 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1768, ptr noundef nonnull align 8 dereferenceable(16) %120) #7
  %1770 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1771 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1770)
          to label %1772 unwind label %1810

1772:                                             ; preds = %1764
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1771, ptr noundef nonnull align 8 dereferenceable(16) %120)
          to label %1773 unwind label %1810

1773:                                             ; preds = %1772
  %1774 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1775 = load i32, ptr %114, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1774, i32 noundef %1775)
          to label %1776 unwind label %1810

1776:                                             ; preds = %1773
  %1777 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1778 = load i32, ptr %115, align 4, !tbaa !11
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1777, i32 noundef %1778)
          to label %1779 unwind label %1810

1779:                                             ; preds = %1776
  %1780 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %1781 = load i32, ptr %114, align 4, !tbaa !11
  %1782 = sext i32 %1781 to i64
  %1783 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1780, i64 noundef %1782) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1783, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %1784 unwind label %1810

1784:                                             ; preds = %1779
  %1785 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 12
  %1786 = load i32, ptr %115, align 4, !tbaa !11
  %1787 = sext i32 %1786 to i64
  %1788 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1785, i64 noundef %1787) #7
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1788, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %1789 unwind label %1810

1789:                                             ; preds = %1784
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #7
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %118) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %118) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #7
  br label %1850

1790:                                             ; preds = %1733
  %1791 = landingpad { ptr, i32 }
          cleanup
  %1792 = extractvalue { ptr, i32 } %1791, 0
  store ptr %1792, ptr %6, align 8
  %1793 = extractvalue { ptr, i32 } %1791, 1
  store i32 %1793, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %116) #7
  br label %1817

1794:                                             ; preds = %1747
  %1795 = landingpad { ptr, i32 }
          cleanup
  %1796 = extractvalue { ptr, i32 } %1795, 0
  store ptr %1796, ptr %6, align 8
  %1797 = extractvalue { ptr, i32 } %1795, 1
  store i32 %1797, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %117) #7
  br label %1817

1798:                                             ; preds = %1753
  %1799 = landingpad { ptr, i32 }
          cleanup
  %1800 = extractvalue { ptr, i32 } %1799, 0
  store ptr %1800, ptr %6, align 8
  %1801 = extractvalue { ptr, i32 } %1799, 1
  store i32 %1801, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #7
  br label %1816

1802:                                             ; preds = %1762, %1754
  %1803 = landingpad { ptr, i32 }
          cleanup
  %1804 = extractvalue { ptr, i32 } %1803, 0
  store ptr %1804, ptr %6, align 8
  %1805 = extractvalue { ptr, i32 } %1803, 1
  store i32 %1805, ptr %7, align 4
  br label %1815

1806:                                             ; preds = %1763
  %1807 = landingpad { ptr, i32 }
          cleanup
  %1808 = extractvalue { ptr, i32 } %1807, 0
  store ptr %1808, ptr %6, align 8
  %1809 = extractvalue { ptr, i32 } %1807, 1
  store i32 %1809, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #7
  br label %1814

1810:                                             ; preds = %1784, %1779, %1776, %1773, %1772, %1764
  %1811 = landingpad { ptr, i32 }
          cleanup
  %1812 = extractvalue { ptr, i32 } %1811, 0
  store ptr %1812, ptr %6, align 8
  %1813 = extractvalue { ptr, i32 } %1811, 1
  store i32 %1813, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #7
  br label %1814

1814:                                             ; preds = %1810, %1806
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #7
  br label %1815

1815:                                             ; preds = %1814, %1802
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %118) #7
  br label %1816

1816:                                             ; preds = %1815, %1798
  call void @llvm.lifetime.end.p0(i64 16, ptr %118) #7
  br label %1817

1817:                                             ; preds = %1816, %1794, %1790, %1721
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #7
  br label %1818

1818:                                             ; preds = %1817, %1717
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #7
  br label %1879

1819:                                             ; preds = %1670
  %1820 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.31)
          to label %1821 unwind label %160

1821:                                             ; preds = %1819
  %1822 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1820, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1823 unwind label %160

1823:                                             ; preds = %1821
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #7
  store ptr %5, ptr %122, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #7
  %1824 = load ptr, ptr %122, align 8, !tbaa !5
  %1825 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1824) #7
  %1826 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.109", ptr %123, i32 0, i32 0
  store ptr %1825, ptr %1826, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #7
  %1827 = load ptr, ptr %122, align 8, !tbaa !5
  %1828 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1827) #7
  %1829 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.109", ptr %124, i32 0, i32 0
  store ptr %1828, ptr %1829, align 8
  br label %1830

1830:                                             ; preds = %1840, %1823
  %1831 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %124) #7
  br i1 %1831, label %1833, label %1832

1832:                                             ; preds = %1830
  store i32 2, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #7
  br label %1846

1833:                                             ; preds = %1830
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #7
  %1834 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #7
  store ptr %1834, ptr %125, align 8, !tbaa !5
  %1835 = load ptr, ptr %125, align 8, !tbaa !5
  %1836 = 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) %1835)
          to label %1837 unwind label %1842

1837:                                             ; preds = %1833
  %1838 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1836, ptr noundef @.str.32)
          to label %1839 unwind label %1842

1839:                                             ; preds = %1837
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #7
  br label %1840

1840:                                             ; preds = %1839
  %1841 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #7
  br label %1830

1842:                                             ; preds = %1837, %1833
  %1843 = landingpad { ptr, i32 }
          cleanup
  %1844 = extractvalue { ptr, i32 } %1843, 0
  store ptr %1844, ptr %6, align 8
  %1845 = extractvalue { ptr, i32 } %1843, 1
  store i32 %1845, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #7
  br label %1879

1846:                                             ; preds = %1832
  %1847 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1848 unwind label %160

1848:                                             ; preds = %1846
  %1849 = call ptr @__cxa_allocate_exception(i64 8) #7
  call void @llvm.memset.p0.i64(ptr align 16 %1849, i8 0, i64 8, i1 false)
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1849) #7
  invoke void @__cxa_throw(ptr %1849, ptr @_ZTIN6qtorch17InvalidFileFormatE, ptr @_ZNSt9exceptionD2Ev) #8
          to label %1886 unwind label %160

1850:                                             ; preds = %1789
  br label %1851

1851:                                             ; preds = %1850, %1651
  br label %1852

1852:                                             ; preds = %1851
  br label %1853

1853:                                             ; preds = %1852
  br label %1854

1854:                                             ; preds = %1853, %1485
  br label %1855

1855:                                             ; preds = %1854, %1342
  br label %1856

1856:                                             ; preds = %1855, %1206
  br label %1857

1857:                                             ; preds = %1856, %1074
  br label %1858

1858:                                             ; preds = %1857, %938
  br label %1859

1859:                                             ; preds = %1858, %817
  br label %1860

1860:                                             ; preds = %1859, %736
  br label %1861

1861:                                             ; preds = %1860, %655
  br label %1862

1862:                                             ; preds = %1861, %574
  br label %1863

1863:                                             ; preds = %1862, %492
  br label %1864

1864:                                             ; preds = %1863, %403
  br label %1865

1865:                                             ; preds = %1864, %310
  br label %1866

1866:                                             ; preds = %1865, %217
  %1867 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 11
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1867, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %1868 unwind label %160

1868:                                             ; preds = %1866
  %1869 = getelementptr inbounds %"class.qtorch::Network", ptr %126, i32 0, i32 11
  %1870 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1869) #7
  %1871 = sub i64 %1870, 1
  %1872 = trunc i64 %1871 to i32
  %1873 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %1874 = getelementptr inbounds %"class.qtorch::Node", ptr %1873, i32 0, i32 2
  store i32 %1872, ptr %1874, align 4, !tbaa !55
  store i32 0, ptr %8, align 4
  br label %1875

1875:                                             ; preds = %1868, %1554, %1530
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #7
  br label %1876

1876:                                             ; preds = %1875, %131
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %5) #7
  %1877 = load i32, ptr %8, align 4
  switch i32 %1877, label %1886 [
    i32 0, label %1878
    i32 1, label %1878
  ]

1878:                                             ; preds = %1876, %1876
  ret void

1879:                                             ; preds = %1842, %1818, %1713, %1709, %1665, %1602, %1598, %1567, %1543, %1519, %1375, %1239, %1103, %998, %967, %862, %831, %768, %750, %687, %669, %606, %588, %525, %507, %418, %325, %232, %160
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #7
  br label %1880

1880:                                             ; preds = %1879, %132
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %5) #7
  br label %1881

1881:                                             ; preds = %1880
  %1882 = load ptr, ptr %6, align 8
  %1883 = load i32, ptr %7, align 4
  %1884 = insertvalue { ptr, i32 } poison, ptr %1882, 0
  %1885 = insertvalue { ptr, i32 } %1884, i32 %1883, 1
  resume { ptr, i32 } %1885

1886:                                             ; preds = %1876, %1848, %1707, %1596, %1405, %1266, %1130, %996, %860, %766, %685, %604, %523, %437, %348, %255, %158
  unreachable
}

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6qtorch7Network11ParseTokensERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSt6vectorIS6_SaIS6_EE(ptr noundef nonnull align 8 dereferenceable(380), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) #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)) #5 align 2

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

; 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) #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef float @_ZNSt7__cxx114stofERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPm(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch6RxNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.60") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #1

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch6RyNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.63") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch6RzNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.66") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch9PhaseNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.69") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch5HNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.72") align 8) #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch5XNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.75") align 8) #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch5YNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.78") align 8) #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch5ZNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.81") align 8) #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch8CNOTNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.84") align 8) #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch8SwapNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.87") align 8) #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch7CRkNodeEJRiEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.90") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch6CZNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.93") align 8) #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNSt7__cxx114stodERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPm(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch10CPhaseNodeEJRdEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.96") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertEOSC_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(64)) #2 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch21ArbitraryOneQubitNodeEJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_EESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESB_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.103") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #1

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch21ArbitraryTwoQubitNodeEJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_EESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESB_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.106") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #1

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #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)) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #5 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 #5 align 2

; Function Attrs: nounwind
declare void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #6

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !12, i64 168}
!14 = !{!"_ZTSN6qtorch7NetworkE", !15, i64 0, !19, i64 24, !23, i64 48, !23, i64 80, !26, i64 112, !27, i64 128, !12, i64 168, !12, i64 172, !29, i64 176, !29, i64 177, !15, i64 184, !30, i64 208, !15, i64 232, !34, i64 256, !34, i64 312, !38, i64 368, !12, i64 376}
!15 = !{!"_ZTSSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN6qtorch4NodeEESaIS3_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6qtorch4NodeEESaIS3_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6qtorch4NodeEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!"_ZTSSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN6qtorch4WireEESaIS3_EE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6qtorch4WireEESaIS3_EE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6qtorch4WireEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !25, i64 8, !7, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!25 = !{!"long", !7, i64 0}
!26 = !{!"_ZTSSt7complexIdE", !7, i64 0}
!27 = !{!"_ZTSSt5mutex", !28, i64 0}
!28 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!29 = !{!"bool", !7, i64 0}
!30 = !{!"_ZTSSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseISt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS4_EESaIS6_EE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseISt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS4_EESaIS6_EE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseISt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS4_EESaIS6_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!34 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE", !35, i64 0}
!35 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !25, i64 8, !36, i64 16, !25, i64 24, !37, i64 32, !6, i64 48}
!36 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!37 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !10, i64 0, !25, i64 8}
!38 = !{!"long long", !7, i64 0}
!39 = !{!40, !40, i64 0}
!40 = !{!"std::nullptr_t", !7, i64 0}
!41 = !{!42, !12, i64 16}
!42 = !{!"_ZTSN6qtorch4NodeE", !12, i64 8, !12, i64 12, !12, i64 16, !29, i64 20, !43, i64 24, !29, i64 32, !44, i64 40, !19, i64 64, !48, i64 88, !52, i64 112, !23, i64 120}
!43 = !{!"_ZTSSt4pairIiiE", !12, i64 0, !12, i64 4}
!44 = !{!"_ZTSSt6vectorISt7complexIdESaIS1_EE", !45, i64 0}
!45 = !{!"_ZTSSt12_Vector_baseISt7complexIdESaIS1_EE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseISt7complexIdESaIS1_EE12_Vector_implE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseISt7complexIdESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!48 = !{!"_ZTSSt6vectorIiSaIiEE", !49, i64 0}
!49 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!52 = !{!"_ZTSN6qtorch8GateTypeE", !7, i64 0}
!53 = !{!54, !54, i64 0}
!54 = !{!"double", !7, i64 0}
!55 = !{!42, !12, i64 12}


; 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 }
%"class.std::shared_ptr.32" = type { %"class.std::__shared_ptr.33" }
%"class.std::__shared_ptr.33" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::vector.55" = type { %"struct.std::_Vector_base.56" }
%"struct.std::_Vector_base.56" = 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 }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.60" = type { %"class.std::__shared_ptr.61" }
%"class.std::__shared_ptr.61" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.63" = type { %"class.std::__shared_ptr.64" }
%"class.std::__shared_ptr.64" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.66" = type { %"class.std::__shared_ptr.67" }
%"class.std::__shared_ptr.67" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.69" = type { %"class.std::__shared_ptr.70" }
%"class.std::__shared_ptr.70" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.72" = type { %"class.std::__shared_ptr.73" }
%"class.std::__shared_ptr.73" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.75" = type { %"class.std::__shared_ptr.76" }
%"class.std::__shared_ptr.76" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.78" = type { %"class.std::__shared_ptr.79" }
%"class.std::__shared_ptr.79" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.81" = type { %"class.std::__shared_ptr.82" }
%"class.std::__shared_ptr.82" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.84" = type { %"class.std::__shared_ptr.85" }
%"class.std::__shared_ptr.85" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.87" = type { %"class.std::__shared_ptr.88" }
%"class.std::__shared_ptr.88" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.90" = type { %"class.std::__shared_ptr.91" }
%"class.std::__shared_ptr.91" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.93" = type { %"class.std::__shared_ptr.94" }
%"class.std::__shared_ptr.94" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.96" = type { %"class.std::__shared_ptr.97" }
%"class.std::__shared_ptr.97" = type { ptr, %"class.std::__shared_count" }
%"struct.std::pair.101" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.0 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.0 = type { i64, [8 x i8] }
%"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%"class.std::shared_ptr.103" = type { %"class.std::__shared_ptr.104" }
%"class.std::__shared_ptr.104" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.106" = type { %"class.std::__shared_ptr.107" }
%"class.std::__shared_ptr.107" = type { ptr, %"class.std::__shared_count" }
%"class.__gnu_cxx::__normal_iterator.109" = type { ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@_ZTIN6qtorch17InvalidFileFormatE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [2 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

declare i32 @__gxx_personality_v0(...)

; 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 #1

; 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 #2 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)) #1

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

; 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 @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6qtorch7Network9ParseNodeERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(380) %0, ptr noundef nonnull align 8 dereferenceable(32) %1) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::vector.55", align 8
  %4 = alloca %"class.std::shared_ptr", align 8
  %5 = alloca float, align 4
  %6 = alloca %"class.std::shared_ptr.60", align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::shared_ptr", align 8
  %9 = alloca %"class.std::shared_ptr.32", align 8
  %10 = alloca ptr, align 8
  %11 = alloca float, align 4
  %12 = alloca %"class.std::shared_ptr.63", align 8
  %13 = alloca i32, align 4
  %14 = alloca %"class.std::shared_ptr", align 8
  %15 = alloca %"class.std::shared_ptr.32", align 8
  %16 = alloca ptr, align 8
  %17 = alloca float, align 4
  %18 = alloca %"class.std::shared_ptr.66", align 8
  %19 = alloca i32, align 4
  %20 = alloca %"class.std::shared_ptr", align 8
  %21 = alloca %"class.std::shared_ptr.32", align 8
  %22 = alloca ptr, align 8
  %23 = alloca float, align 4
  %24 = alloca %"class.std::shared_ptr.69", align 8
  %25 = alloca i32, align 4
  %26 = alloca %"class.std::shared_ptr", align 8
  %27 = alloca %"class.std::shared_ptr.32", align 8
  %28 = alloca ptr, align 8
  %29 = alloca %"class.std::shared_ptr.72", align 8
  %30 = alloca i32, align 4
  %31 = alloca %"class.std::shared_ptr", align 8
  %32 = alloca %"class.std::shared_ptr.32", align 8
  %33 = alloca ptr, align 8
  %34 = alloca %"class.std::shared_ptr.75", align 8
  %35 = alloca i32, align 4
  %36 = alloca %"class.std::shared_ptr", align 8
  %37 = alloca %"class.std::shared_ptr.32", align 8
  %38 = alloca ptr, align 8
  %39 = alloca %"class.std::shared_ptr.78", align 8
  %40 = alloca i32, align 4
  %41 = alloca %"class.std::shared_ptr", align 8
  %42 = alloca %"class.std::shared_ptr.32", align 8
  %43 = alloca ptr, align 8
  %44 = alloca %"class.std::shared_ptr.81", align 8
  %45 = alloca i32, align 4
  %46 = alloca %"class.std::shared_ptr", align 8
  %47 = alloca %"class.std::shared_ptr.32", align 8
  %48 = alloca ptr, align 8
  %49 = alloca %"class.std::shared_ptr.84", align 8
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca %"class.std::shared_ptr", align 8
  %53 = alloca %"class.std::shared_ptr", align 8
  %54 = alloca %"class.std::shared_ptr.32", align 8
  %55 = alloca ptr, align 8
  %56 = alloca %"class.std::shared_ptr.32", align 8
  %57 = alloca ptr, align 8
  %58 = alloca %"class.std::shared_ptr.87", align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca %"class.std::shared_ptr", align 8
  %62 = alloca %"class.std::shared_ptr", align 8
  %63 = alloca %"class.std::shared_ptr.32", align 8
  %64 = alloca ptr, align 8
  %65 = alloca %"class.std::shared_ptr.32", align 8
  %66 = alloca ptr, align 8
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca %"class.std::shared_ptr.90", align 8
  %70 = alloca %"class.std::shared_ptr", align 8
  %71 = alloca %"class.std::shared_ptr", align 8
  %72 = alloca %"class.std::shared_ptr.32", align 8
  %73 = alloca ptr, align 8
  %74 = alloca %"class.std::shared_ptr.32", align 8
  %75 = alloca ptr, align 8
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca %"class.std::shared_ptr.93", align 8
  %79 = alloca %"class.std::shared_ptr", align 8
  %80 = alloca %"class.std::shared_ptr", align 8
  %81 = alloca %"class.std::shared_ptr.32", align 8
  %82 = alloca ptr, align 8
  %83 = alloca %"class.std::shared_ptr.32", align 8
  %84 = alloca ptr, align 8
  %85 = alloca double, align 8
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca %"class.std::shared_ptr.96", align 8
  %89 = alloca %"class.std::shared_ptr", align 8
  %90 = alloca %"class.std::shared_ptr", align 8
  %91 = alloca %"class.std::shared_ptr.32", align 8
  %92 = alloca ptr, align 8
  %93 = alloca %"class.std::shared_ptr.32", align 8
  %94 = alloca ptr, align 8
  %95 = alloca %"struct.std::pair.101", align 8
  %96 = alloca %"struct.std::pair.101", align 8
  %97 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %98 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %99 = alloca %"class.std::shared_ptr.103", align 8
  %100 = alloca i32, align 4
  %101 = alloca %"class.std::shared_ptr", align 8
  %102 = alloca %"class.std::shared_ptr.32", align 8
  %103 = alloca ptr, align 8
  %104 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %105 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %106 = alloca %"class.std::shared_ptr.106", align 8
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca %"class.std::shared_ptr", align 8
  %110 = alloca %"class.std::shared_ptr", align 8
  %111 = alloca %"class.std::shared_ptr.32", align 8
  %112 = alloca ptr, align 8
  %113 = alloca %"class.std::shared_ptr.32", align 8
  %114 = alloca ptr, align 8
  %115 = alloca %"class.__gnu_cxx::__normal_iterator.109", align 8
  %116 = alloca %"class.__gnu_cxx::__normal_iterator.109", align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #6
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #6
  invoke void @_ZN6qtorch7Network11ParseTokensERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSt6vectorIS6_SaIS6_EE(ptr noundef nonnull align 8 dereferenceable(380) %0, ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %117 unwind label %120

117:                                              ; preds = %2
  %118 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #6
  %119 = icmp eq i64 %118, 0
  br i1 %119, label %1290, label %122

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

122:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  %123 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %124 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull @.str.13)
  br i1 %124, label %128, label %125

125:                                              ; preds = %122
  %126 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %127 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull @.str.14)
  br i1 %127, label %128, label %191

128:                                              ; preds = %125, %122
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #6
  %129 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %130 = invoke noundef float @_ZNSt7__cxx114stofERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPm(ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef null)
          to label %131 unwind label %143

131:                                              ; preds = %128
  store float %130, ptr %5, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #6
  invoke void @_ZSt11make_sharedIN6qtorch6RxNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.60") align 8 %6, ptr noundef nonnull align 4 dereferenceable(4) %5)
          to label %132 unwind label %145

132:                                              ; preds = %131
  %133 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_6RxNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %6) #6
  call void @_ZNSt12__shared_ptrIN6qtorch6RxNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #6
  %134 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 2) #6
  %135 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef null, i32 noundef 10)
          to label %136 unwind label %147

136:                                              ; preds = %132
  store i32 %135, ptr %7, align 4, !tbaa !9
  %137 = getelementptr inbounds i8, ptr %0, i64 168
  %138 = load i32, ptr %137, align 8, !tbaa !11
  %.not184 = icmp slt i32 %135, %138
  br i1 %.not184, label %149, label %139

139:                                              ; preds = %136
  %140 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %140, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #6
  invoke void @__cxa_throw(ptr nonnull %140, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %147

141:                                              ; preds = %1281, %1279, %._crit_edge, %1263, %1261
  %142 = landingpad { ptr, i32 }
          cleanup
  br label %1291

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

145:                                              ; preds = %131
  %146 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #6
  br label %190

147:                                              ; preds = %152, %149, %139, %132
  %148 = landingpad { ptr, i32 }
          cleanup
  br label %189

149:                                              ; preds = %136
  %150 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %151 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %150)
          to label %152 unwind label %147

152:                                              ; preds = %149
  %153 = getelementptr inbounds i8, ptr %0, i64 24
  %154 = sext i32 %135 to i64
  %155 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %153, i64 noundef %154) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %151, ptr noundef nonnull align 8 dereferenceable(16) %155)
          to label %156 unwind label %147

156:                                              ; preds = %152
  %157 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %153, i64 noundef %154) #6
  %158 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %157) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %158, ptr noundef nonnull %8)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  store ptr null, ptr %10, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %9, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %159 unwind label %184

159:                                              ; preds = %156
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  %160 = load i32, ptr %7, align 4, !tbaa !9
  %161 = sext i32 %160 to i64
  %162 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %153, i64 noundef %161) #6
  %163 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %162, ptr noundef nonnull align 8 dereferenceable(16) %9) #6
  %164 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %165 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %164)
          to label %166 unwind label %186

166:                                              ; preds = %159
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %165, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %167 unwind label %186

167:                                              ; preds = %166
  %168 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %169 = load i32, ptr %7, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %168, i32 noundef %169)
          to label %170 unwind label %186

170:                                              ; preds = %167
  %171 = getelementptr inbounds i8, ptr %0, i64 208
  %172 = load i32, ptr %7, align 4, !tbaa !9
  %173 = sext i32 %172 to i64
  %174 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %171, i64 noundef %173) #6
  %175 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %174) #6
  %176 = trunc i64 %175 to i32
  %177 = add i32 %176, -1
  %178 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %179 = getelementptr inbounds i8, ptr %178, i64 16
  store i32 %177, ptr %179, align 8, !tbaa !40
  %180 = load i32, ptr %7, align 4, !tbaa !9
  %181 = sext i32 %180 to i64
  %182 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %171, i64 noundef %181) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %182, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %183 unwind label %186

183:                                              ; preds = %170
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #6
  br label %1281

184:                                              ; preds = %156
  %185 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  br label %188

186:                                              ; preds = %170, %167, %166, %159
  %187 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #6
  br label %188

188:                                              ; preds = %186, %184
  %.pn185 = phi { ptr, i32 } [ %187, %186 ], [ %185, %184 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  br label %189

189:                                              ; preds = %188, %147
  %.pn187 = phi { ptr, i32 } [ %148, %147 ], [ %.pn185, %188 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  br label %190

190:                                              ; preds = %189, %145, %143
  %.pn187.pn = phi { ptr, i32 } [ %.pn187, %189 ], [ %146, %145 ], [ %144, %143 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #6
  br label %1291

191:                                              ; preds = %125
  %192 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %193 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef nonnull @.str.15)
  br i1 %193, label %197, label %194

194:                                              ; preds = %191
  %195 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %196 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %195, ptr noundef nonnull @.str.16)
  br i1 %196, label %197, label %258

197:                                              ; preds = %194, %191
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #6
  %198 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %199 = invoke noundef float @_ZNSt7__cxx114stofERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPm(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef null)
          to label %200 unwind label %210

200:                                              ; preds = %197
  store float %199, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #6
  invoke void @_ZSt11make_sharedIN6qtorch6RyNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.63") align 8 %12, ptr noundef nonnull align 4 dereferenceable(4) %11)
          to label %201 unwind label %212

201:                                              ; preds = %200
  %202 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_6RyNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %12) #6
  call void @_ZNSt12__shared_ptrIN6qtorch6RyNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #6
  %203 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 2) #6
  %204 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef null, i32 noundef 10)
          to label %205 unwind label %214

205:                                              ; preds = %201
  store i32 %204, ptr %13, align 4, !tbaa !9
  %206 = getelementptr inbounds i8, ptr %0, i64 168
  %207 = load i32, ptr %206, align 8, !tbaa !11
  %.not178 = icmp slt i32 %204, %207
  br i1 %.not178, label %216, label %208

208:                                              ; preds = %205
  %209 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %209, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %209) #6
  invoke void @__cxa_throw(ptr nonnull %209, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %214

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

212:                                              ; preds = %200
  %213 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #6
  br label %257

214:                                              ; preds = %219, %216, %208, %201
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %256

216:                                              ; preds = %205
  %217 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %218 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %217)
          to label %219 unwind label %214

219:                                              ; preds = %216
  %220 = getelementptr inbounds i8, ptr %0, i64 24
  %221 = sext i32 %204 to i64
  %222 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %220, i64 noundef %221) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %218, ptr noundef nonnull align 8 dereferenceable(16) %222)
          to label %223 unwind label %214

223:                                              ; preds = %219
  %224 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %220, i64 noundef %221) #6
  %225 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %224) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %225, ptr noundef nonnull %14)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #6
  store ptr null, ptr %16, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %15, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %226 unwind label %251

226:                                              ; preds = %223
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  %227 = load i32, ptr %13, align 4, !tbaa !9
  %228 = sext i32 %227 to i64
  %229 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %220, i64 noundef %228) #6
  %230 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %229, ptr noundef nonnull align 8 dereferenceable(16) %15) #6
  %231 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %232 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %231)
          to label %233 unwind label %253

233:                                              ; preds = %226
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %232, ptr noundef nonnull align 8 dereferenceable(16) %15)
          to label %234 unwind label %253

234:                                              ; preds = %233
  %235 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %236 = load i32, ptr %13, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %235, i32 noundef %236)
          to label %237 unwind label %253

237:                                              ; preds = %234
  %238 = getelementptr inbounds i8, ptr %0, i64 208
  %239 = load i32, ptr %13, align 4, !tbaa !9
  %240 = sext i32 %239 to i64
  %241 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %238, i64 noundef %240) #6
  %242 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %241) #6
  %243 = trunc i64 %242 to i32
  %244 = add i32 %243, -1
  %245 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %246 = getelementptr inbounds i8, ptr %245, i64 16
  store i32 %244, ptr %246, align 8, !tbaa !40
  %247 = load i32, ptr %13, align 4, !tbaa !9
  %248 = sext i32 %247 to i64
  %249 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %238, i64 noundef %248) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %249, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %250 unwind label %253

250:                                              ; preds = %237
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  br label %1281

251:                                              ; preds = %223
  %252 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  br label %255

253:                                              ; preds = %237, %234, %233, %226
  %254 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #6
  br label %255

255:                                              ; preds = %253, %251
  %.pn179 = phi { ptr, i32 } [ %254, %253 ], [ %252, %251 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #6
  br label %256

256:                                              ; preds = %255, %214
  %.pn181 = phi { ptr, i32 } [ %215, %214 ], [ %.pn179, %255 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  br label %257

257:                                              ; preds = %256, %212, %210
  %.pn181.pn = phi { ptr, i32 } [ %.pn181, %256 ], [ %213, %212 ], [ %211, %210 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  br label %1291

258:                                              ; preds = %194
  %259 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %260 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef nonnull @.str.17)
  br i1 %260, label %264, label %261

261:                                              ; preds = %258
  %262 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %263 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %262, ptr noundef nonnull @.str.18)
  br i1 %263, label %264, label %325

264:                                              ; preds = %261, %258
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  %265 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %266 = invoke noundef float @_ZNSt7__cxx114stofERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPm(ptr noundef nonnull align 8 dereferenceable(32) %265, ptr noundef null)
          to label %267 unwind label %277

267:                                              ; preds = %264
  store float %266, ptr %17, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #6
  invoke void @_ZSt11make_sharedIN6qtorch6RzNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.66") align 8 %18, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %268 unwind label %279

268:                                              ; preds = %267
  %269 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_6RzNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %18) #6
  call void @_ZNSt12__shared_ptrIN6qtorch6RzNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  %270 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 2) #6
  %271 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %270, ptr noundef null, i32 noundef 10)
          to label %272 unwind label %281

272:                                              ; preds = %268
  store i32 %271, ptr %19, align 4, !tbaa !9
  %273 = getelementptr inbounds i8, ptr %0, i64 168
  %274 = load i32, ptr %273, align 8, !tbaa !11
  %.not172 = icmp slt i32 %271, %274
  br i1 %.not172, label %283, label %275

275:                                              ; preds = %272
  %276 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %276, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %276) #6
  invoke void @__cxa_throw(ptr nonnull %276, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %281

277:                                              ; preds = %264
  %278 = landingpad { ptr, i32 }
          cleanup
  br label %324

279:                                              ; preds = %267
  %280 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #6
  br label %324

281:                                              ; preds = %286, %283, %275, %268
  %282 = landingpad { ptr, i32 }
          cleanup
  br label %323

283:                                              ; preds = %272
  %284 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %285 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %284)
          to label %286 unwind label %281

286:                                              ; preds = %283
  %287 = getelementptr inbounds i8, ptr %0, i64 24
  %288 = sext i32 %271 to i64
  %289 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %287, i64 noundef %288) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %285, ptr noundef nonnull align 8 dereferenceable(16) %289)
          to label %290 unwind label %281

290:                                              ; preds = %286
  %291 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %287, i64 noundef %288) #6
  %292 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %291) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %292, ptr noundef nonnull %20)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #6
  store ptr null, ptr %22, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %21, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %293 unwind label %318

293:                                              ; preds = %290
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  %294 = load i32, ptr %19, align 4, !tbaa !9
  %295 = sext i32 %294 to i64
  %296 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %287, i64 noundef %295) #6
  %297 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %296, ptr noundef nonnull align 8 dereferenceable(16) %21) #6
  %298 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %299 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %298)
          to label %300 unwind label %320

300:                                              ; preds = %293
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %299, ptr noundef nonnull align 8 dereferenceable(16) %21)
          to label %301 unwind label %320

301:                                              ; preds = %300
  %302 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %303 = load i32, ptr %19, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %302, i32 noundef %303)
          to label %304 unwind label %320

304:                                              ; preds = %301
  %305 = getelementptr inbounds i8, ptr %0, i64 208
  %306 = load i32, ptr %19, align 4, !tbaa !9
  %307 = sext i32 %306 to i64
  %308 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %305, i64 noundef %307) #6
  %309 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %308) #6
  %310 = trunc i64 %309 to i32
  %311 = add i32 %310, -1
  %312 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %313 = getelementptr inbounds i8, ptr %312, i64 16
  store i32 %311, ptr %313, align 8, !tbaa !40
  %314 = load i32, ptr %19, align 4, !tbaa !9
  %315 = sext i32 %314 to i64
  %316 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %305, i64 noundef %315) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %316, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %317 unwind label %320

317:                                              ; preds = %304
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  br label %1281

318:                                              ; preds = %290
  %319 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  br label %322

320:                                              ; preds = %304, %301, %300, %293
  %321 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #6
  br label %322

322:                                              ; preds = %320, %318
  %.pn173 = phi { ptr, i32 } [ %321, %320 ], [ %319, %318 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #6
  br label %323

323:                                              ; preds = %322, %281
  %.pn175 = phi { ptr, i32 } [ %282, %281 ], [ %.pn173, %322 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  br label %324

324:                                              ; preds = %323, %279, %277
  %.pn175.pn = phi { ptr, i32 } [ %.pn175, %323 ], [ %280, %279 ], [ %278, %277 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  br label %1291

325:                                              ; preds = %261
  %326 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %327 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %326, ptr noundef nonnull @.str.19)
  br i1 %327, label %328, label %389

328:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  %329 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %330 = invoke noundef float @_ZNSt7__cxx114stofERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPm(ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef null)
          to label %331 unwind label %341

331:                                              ; preds = %328
  store float %330, ptr %23, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #6
  invoke void @_ZSt11make_sharedIN6qtorch9PhaseNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.69") align 8 %24, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %332 unwind label %343

332:                                              ; preds = %331
  %333 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_9PhaseNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %24) #6
  call void @_ZNSt12__shared_ptrIN6qtorch9PhaseNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #6
  %334 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 2) #6
  %335 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %334, ptr noundef null, i32 noundef 10)
          to label %336 unwind label %345

336:                                              ; preds = %332
  store i32 %335, ptr %25, align 4, !tbaa !9
  %337 = getelementptr inbounds i8, ptr %0, i64 168
  %338 = load i32, ptr %337, align 8, !tbaa !11
  %.not166 = icmp slt i32 %335, %338
  br i1 %.not166, label %347, label %339

339:                                              ; preds = %336
  %340 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %340, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %340) #6
  invoke void @__cxa_throw(ptr nonnull %340, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %345

341:                                              ; preds = %328
  %342 = landingpad { ptr, i32 }
          cleanup
  br label %388

343:                                              ; preds = %331
  %344 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #6
  br label %388

345:                                              ; preds = %350, %347, %339, %332
  %346 = landingpad { ptr, i32 }
          cleanup
  br label %387

347:                                              ; preds = %336
  %348 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %349 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %348)
          to label %350 unwind label %345

350:                                              ; preds = %347
  %351 = getelementptr inbounds i8, ptr %0, i64 24
  %352 = sext i32 %335 to i64
  %353 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %351, i64 noundef %352) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %349, ptr noundef nonnull align 8 dereferenceable(16) %353)
          to label %354 unwind label %345

354:                                              ; preds = %350
  %355 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %351, i64 noundef %352) #6
  %356 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %355) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %356, ptr noundef nonnull %26)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #6
  store ptr null, ptr %28, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %27, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %357 unwind label %382

357:                                              ; preds = %354
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #6
  %358 = load i32, ptr %25, align 4, !tbaa !9
  %359 = sext i32 %358 to i64
  %360 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %351, i64 noundef %359) #6
  %361 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %360, ptr noundef nonnull align 8 dereferenceable(16) %27) #6
  %362 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %363 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %362)
          to label %364 unwind label %384

364:                                              ; preds = %357
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %363, ptr noundef nonnull align 8 dereferenceable(16) %27)
          to label %365 unwind label %384

365:                                              ; preds = %364
  %366 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %367 = load i32, ptr %25, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %366, i32 noundef %367)
          to label %368 unwind label %384

368:                                              ; preds = %365
  %369 = getelementptr inbounds i8, ptr %0, i64 208
  %370 = load i32, ptr %25, align 4, !tbaa !9
  %371 = sext i32 %370 to i64
  %372 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %369, i64 noundef %371) #6
  %373 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %372) #6
  %374 = trunc i64 %373 to i32
  %375 = add i32 %374, -1
  %376 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %377 = getelementptr inbounds i8, ptr %376, i64 16
  store i32 %375, ptr %377, align 8, !tbaa !40
  %378 = load i32, ptr %25, align 4, !tbaa !9
  %379 = sext i32 %378 to i64
  %380 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %369, i64 noundef %379) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %380, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %381 unwind label %384

381:                                              ; preds = %368
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  br label %1281

382:                                              ; preds = %354
  %383 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #6
  br label %386

384:                                              ; preds = %368, %365, %364, %357
  %385 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #6
  br label %386

386:                                              ; preds = %384, %382
  %.pn167 = phi { ptr, i32 } [ %385, %384 ], [ %383, %382 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #6
  br label %387

387:                                              ; preds = %386, %345
  %.pn169 = phi { ptr, i32 } [ %346, %345 ], [ %.pn167, %386 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  br label %388

388:                                              ; preds = %387, %343, %341
  %.pn169.pn = phi { ptr, i32 } [ %.pn169, %387 ], [ %344, %343 ], [ %342, %341 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  br label %1291

389:                                              ; preds = %325
  %390 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %391 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %390, ptr noundef nonnull @.str.20)
  br i1 %391, label %392, label %447

392:                                              ; preds = %389
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29) #6
  invoke void @_ZSt11make_sharedIN6qtorch5HNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.72") align 8 %29)
          to label %393 unwind label %402

393:                                              ; preds = %392
  %394 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_5HNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %29) #6
  call void @_ZNSt12__shared_ptrIN6qtorch5HNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #6
  %395 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %396 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %395, ptr noundef null, i32 noundef 10)
          to label %397 unwind label %404

397:                                              ; preds = %393
  store i32 %396, ptr %30, align 4, !tbaa !9
  %398 = getelementptr inbounds i8, ptr %0, i64 168
  %399 = load i32, ptr %398, align 8, !tbaa !11
  %.not161 = icmp slt i32 %396, %399
  br i1 %.not161, label %406, label %400

400:                                              ; preds = %397
  %401 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %401, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %401) #6
  invoke void @__cxa_throw(ptr nonnull %401, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %404

402:                                              ; preds = %392
  %403 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #6
  br label %1291

404:                                              ; preds = %409, %406, %400, %393
  %405 = landingpad { ptr, i32 }
          cleanup
  br label %446

406:                                              ; preds = %397
  %407 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %408 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %407)
          to label %409 unwind label %404

409:                                              ; preds = %406
  %410 = getelementptr inbounds i8, ptr %0, i64 24
  %411 = sext i32 %396 to i64
  %412 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %410, i64 noundef %411) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %408, ptr noundef nonnull align 8 dereferenceable(16) %412)
          to label %413 unwind label %404

413:                                              ; preds = %409
  %414 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %410, i64 noundef %411) #6
  %415 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %414) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %415, ptr noundef nonnull %31)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #6
  store ptr null, ptr %33, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %32, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %416 unwind label %441

416:                                              ; preds = %413
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #6
  %417 = load i32, ptr %30, align 4, !tbaa !9
  %418 = sext i32 %417 to i64
  %419 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %410, i64 noundef %418) #6
  %420 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %419, ptr noundef nonnull align 8 dereferenceable(16) %32) #6
  %421 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %422 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %421)
          to label %423 unwind label %443

423:                                              ; preds = %416
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %422, ptr noundef nonnull align 8 dereferenceable(16) %32)
          to label %424 unwind label %443

424:                                              ; preds = %423
  %425 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %426 = load i32, ptr %30, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %425, i32 noundef %426)
          to label %427 unwind label %443

427:                                              ; preds = %424
  %428 = getelementptr inbounds i8, ptr %0, i64 208
  %429 = load i32, ptr %30, align 4, !tbaa !9
  %430 = sext i32 %429 to i64
  %431 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %428, i64 noundef %430) #6
  %432 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %431) #6
  %433 = trunc i64 %432 to i32
  %434 = add i32 %433, -1
  %435 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %436 = getelementptr inbounds i8, ptr %435, i64 16
  store i32 %434, ptr %436, align 8, !tbaa !40
  %437 = load i32, ptr %30, align 4, !tbaa !9
  %438 = sext i32 %437 to i64
  %439 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %428, i64 noundef %438) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %439, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %440 unwind label %443

440:                                              ; preds = %427
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  br label %1281

441:                                              ; preds = %413
  %442 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #6
  br label %445

443:                                              ; preds = %427, %424, %423, %416
  %444 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #6
  br label %445

445:                                              ; preds = %443, %441
  %.pn162 = phi { ptr, i32 } [ %444, %443 ], [ %442, %441 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #6
  br label %446

446:                                              ; preds = %445, %404
  %.pn164 = phi { ptr, i32 } [ %405, %404 ], [ %.pn162, %445 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  br label %1291

447:                                              ; preds = %389
  %448 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %449 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %448, ptr noundef nonnull @.str.21)
  br i1 %449, label %450, label %505

450:                                              ; preds = %447
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #6
  invoke void @_ZSt11make_sharedIN6qtorch5XNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.75") align 8 %34)
          to label %451 unwind label %460

451:                                              ; preds = %450
  %452 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_5XNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %34) #6
  call void @_ZNSt12__shared_ptrIN6qtorch5XNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  %453 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %454 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %453, ptr noundef null, i32 noundef 10)
          to label %455 unwind label %462

455:                                              ; preds = %451
  store i32 %454, ptr %35, align 4, !tbaa !9
  %456 = getelementptr inbounds i8, ptr %0, i64 168
  %457 = load i32, ptr %456, align 8, !tbaa !11
  %.not156 = icmp slt i32 %454, %457
  br i1 %.not156, label %464, label %458

458:                                              ; preds = %455
  %459 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %459, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %459) #6
  invoke void @__cxa_throw(ptr nonnull %459, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %462

460:                                              ; preds = %450
  %461 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #6
  br label %1291

462:                                              ; preds = %467, %464, %458, %451
  %463 = landingpad { ptr, i32 }
          cleanup
  br label %504

464:                                              ; preds = %455
  %465 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %466 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %465)
          to label %467 unwind label %462

467:                                              ; preds = %464
  %468 = getelementptr inbounds i8, ptr %0, i64 24
  %469 = sext i32 %454 to i64
  %470 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %468, i64 noundef %469) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %466, ptr noundef nonnull align 8 dereferenceable(16) %470)
          to label %471 unwind label %462

471:                                              ; preds = %467
  %472 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %468, i64 noundef %469) #6
  %473 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %472) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %473, ptr noundef nonnull %36)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #6
  store ptr null, ptr %38, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %37, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %474 unwind label %499

474:                                              ; preds = %471
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  %475 = load i32, ptr %35, align 4, !tbaa !9
  %476 = sext i32 %475 to i64
  %477 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %468, i64 noundef %476) #6
  %478 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %477, ptr noundef nonnull align 8 dereferenceable(16) %37) #6
  %479 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %480 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %479)
          to label %481 unwind label %501

481:                                              ; preds = %474
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %480, ptr noundef nonnull align 8 dereferenceable(16) %37)
          to label %482 unwind label %501

482:                                              ; preds = %481
  %483 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %484 = load i32, ptr %35, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %483, i32 noundef %484)
          to label %485 unwind label %501

485:                                              ; preds = %482
  %486 = getelementptr inbounds i8, ptr %0, i64 208
  %487 = load i32, ptr %35, align 4, !tbaa !9
  %488 = sext i32 %487 to i64
  %489 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %486, i64 noundef %488) #6
  %490 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %489) #6
  %491 = trunc i64 %490 to i32
  %492 = add i32 %491, -1
  %493 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %494 = getelementptr inbounds i8, ptr %493, i64 16
  store i32 %492, ptr %494, align 8, !tbaa !40
  %495 = load i32, ptr %35, align 4, !tbaa !9
  %496 = sext i32 %495 to i64
  %497 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %486, i64 noundef %496) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %497, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %498 unwind label %501

498:                                              ; preds = %485
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  br label %1281

499:                                              ; preds = %471
  %500 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  br label %503

501:                                              ; preds = %485, %482, %481, %474
  %502 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #6
  br label %503

503:                                              ; preds = %501, %499
  %.pn157 = phi { ptr, i32 } [ %502, %501 ], [ %500, %499 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #6
  br label %504

504:                                              ; preds = %503, %462
  %.pn159 = phi { ptr, i32 } [ %463, %462 ], [ %.pn157, %503 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  br label %1291

505:                                              ; preds = %447
  %506 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %507 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %506, ptr noundef nonnull @.str.22)
  br i1 %507, label %508, label %563

508:                                              ; preds = %505
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #6
  invoke void @_ZSt11make_sharedIN6qtorch5YNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.78") align 8 %39)
          to label %509 unwind label %518

509:                                              ; preds = %508
  %510 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_5YNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %39) #6
  call void @_ZNSt12__shared_ptrIN6qtorch5YNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #6
  %511 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %512 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %511, ptr noundef null, i32 noundef 10)
          to label %513 unwind label %520

513:                                              ; preds = %509
  store i32 %512, ptr %40, align 4, !tbaa !9
  %514 = getelementptr inbounds i8, ptr %0, i64 168
  %515 = load i32, ptr %514, align 8, !tbaa !11
  %.not151 = icmp slt i32 %512, %515
  br i1 %.not151, label %522, label %516

516:                                              ; preds = %513
  %517 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %517, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %517) #6
  invoke void @__cxa_throw(ptr nonnull %517, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %520

518:                                              ; preds = %508
  %519 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #6
  br label %1291

520:                                              ; preds = %525, %522, %516, %509
  %521 = landingpad { ptr, i32 }
          cleanup
  br label %562

522:                                              ; preds = %513
  %523 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %524 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %523)
          to label %525 unwind label %520

525:                                              ; preds = %522
  %526 = getelementptr inbounds i8, ptr %0, i64 24
  %527 = sext i32 %512 to i64
  %528 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %526, i64 noundef %527) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %524, ptr noundef nonnull align 8 dereferenceable(16) %528)
          to label %529 unwind label %520

529:                                              ; preds = %525
  %530 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %526, i64 noundef %527) #6
  %531 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %530) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %41, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %531, ptr noundef nonnull %41)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #6
  store ptr null, ptr %43, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %42, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %532 unwind label %557

532:                                              ; preds = %529
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #6
  %533 = load i32, ptr %40, align 4, !tbaa !9
  %534 = sext i32 %533 to i64
  %535 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %526, i64 noundef %534) #6
  %536 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %535, ptr noundef nonnull align 8 dereferenceable(16) %42) #6
  %537 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %538 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %537)
          to label %539 unwind label %559

539:                                              ; preds = %532
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %538, ptr noundef nonnull align 8 dereferenceable(16) %42)
          to label %540 unwind label %559

540:                                              ; preds = %539
  %541 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %542 = load i32, ptr %40, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %541, i32 noundef %542)
          to label %543 unwind label %559

543:                                              ; preds = %540
  %544 = getelementptr inbounds i8, ptr %0, i64 208
  %545 = load i32, ptr %40, align 4, !tbaa !9
  %546 = sext i32 %545 to i64
  %547 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %544, i64 noundef %546) #6
  %548 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %547) #6
  %549 = trunc i64 %548 to i32
  %550 = add i32 %549, -1
  %551 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %552 = getelementptr inbounds i8, ptr %551, i64 16
  store i32 %550, ptr %552, align 8, !tbaa !40
  %553 = load i32, ptr %40, align 4, !tbaa !9
  %554 = sext i32 %553 to i64
  %555 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %544, i64 noundef %554) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %555, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %556 unwind label %559

556:                                              ; preds = %543
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  br label %1281

557:                                              ; preds = %529
  %558 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #6
  br label %561

559:                                              ; preds = %543, %540, %539, %532
  %560 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #6
  br label %561

561:                                              ; preds = %559, %557
  %.pn152 = phi { ptr, i32 } [ %560, %559 ], [ %558, %557 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #6
  br label %562

562:                                              ; preds = %561, %520
  %.pn154 = phi { ptr, i32 } [ %521, %520 ], [ %.pn152, %561 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  br label %1291

563:                                              ; preds = %505
  %564 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %565 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %564, ptr noundef nonnull @.str.23)
  br i1 %565, label %566, label %621

566:                                              ; preds = %563
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %44) #6
  invoke void @_ZSt11make_sharedIN6qtorch5ZNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.81") align 8 %44)
          to label %567 unwind label %576

567:                                              ; preds = %566
  %568 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_5ZNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %44) #6
  call void @_ZNSt12__shared_ptrIN6qtorch5ZNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #6
  %569 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %570 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %569, ptr noundef null, i32 noundef 10)
          to label %571 unwind label %578

571:                                              ; preds = %567
  store i32 %570, ptr %45, align 4, !tbaa !9
  %572 = getelementptr inbounds i8, ptr %0, i64 168
  %573 = load i32, ptr %572, align 8, !tbaa !11
  %.not146 = icmp slt i32 %570, %573
  br i1 %.not146, label %580, label %574

574:                                              ; preds = %571
  %575 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %575, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %575) #6
  invoke void @__cxa_throw(ptr nonnull %575, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %578

576:                                              ; preds = %566
  %577 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #6
  br label %1291

578:                                              ; preds = %583, %580, %574, %567
  %579 = landingpad { ptr, i32 }
          cleanup
  br label %620

580:                                              ; preds = %571
  %581 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %582 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %581)
          to label %583 unwind label %578

583:                                              ; preds = %580
  %584 = getelementptr inbounds i8, ptr %0, i64 24
  %585 = sext i32 %570 to i64
  %586 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %584, i64 noundef %585) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %582, ptr noundef nonnull align 8 dereferenceable(16) %586)
          to label %587 unwind label %578

587:                                              ; preds = %583
  %588 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %584, i64 noundef %585) #6
  %589 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %588) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %589, ptr noundef nonnull %46)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %47) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #6
  store ptr null, ptr %48, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %47, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 4 dereferenceable(4) %45)
          to label %590 unwind label %615

590:                                              ; preds = %587
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #6
  %591 = load i32, ptr %45, align 4, !tbaa !9
  %592 = sext i32 %591 to i64
  %593 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %584, i64 noundef %592) #6
  %594 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %593, ptr noundef nonnull align 8 dereferenceable(16) %47) #6
  %595 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %596 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %595)
          to label %597 unwind label %617

597:                                              ; preds = %590
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %596, ptr noundef nonnull align 8 dereferenceable(16) %47)
          to label %598 unwind label %617

598:                                              ; preds = %597
  %599 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %600 = load i32, ptr %45, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %599, i32 noundef %600)
          to label %601 unwind label %617

601:                                              ; preds = %598
  %602 = getelementptr inbounds i8, ptr %0, i64 208
  %603 = load i32, ptr %45, align 4, !tbaa !9
  %604 = sext i32 %603 to i64
  %605 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %602, i64 noundef %604) #6
  %606 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %605) #6
  %607 = trunc i64 %606 to i32
  %608 = add i32 %607, -1
  %609 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %610 = getelementptr inbounds i8, ptr %609, i64 16
  store i32 %608, ptr %610, align 8, !tbaa !40
  %611 = load i32, ptr %45, align 4, !tbaa !9
  %612 = sext i32 %611 to i64
  %613 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %602, i64 noundef %612) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %613, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %614 unwind label %617

614:                                              ; preds = %601
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #6
  br label %1281

615:                                              ; preds = %587
  %616 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #6
  br label %619

617:                                              ; preds = %601, %598, %597, %590
  %618 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #6
  br label %619

619:                                              ; preds = %617, %615
  %.pn147 = phi { ptr, i32 } [ %618, %617 ], [ %616, %615 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #6
  br label %620

620:                                              ; preds = %619, %578
  %.pn149 = phi { ptr, i32 } [ %579, %578 ], [ %.pn147, %619 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #6
  br label %1291

621:                                              ; preds = %563
  %622 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %623 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %622, ptr noundef nonnull @.str.24)
  br i1 %623, label %624, label %708

624:                                              ; preds = %621
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %49) #6
  invoke void @_ZSt11make_sharedIN6qtorch8CNOTNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.84") align 8 %49)
          to label %625 unwind label %638

625:                                              ; preds = %624
  %626 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_8CNOTNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %49) #6
  call void @_ZNSt12__shared_ptrIN6qtorch8CNOTNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %50) #6
  %627 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %628 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %627, ptr noundef null, i32 noundef 10)
          to label %629 unwind label %640

629:                                              ; preds = %625
  store i32 %628, ptr %50, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %51) #6
  %630 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 2) #6
  %631 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %630, ptr noundef null, i32 noundef 10)
          to label %632 unwind label %642

632:                                              ; preds = %629
  store i32 %631, ptr %51, align 4, !tbaa !9
  %633 = getelementptr inbounds i8, ptr %0, i64 168
  %634 = load i32, ptr %633, align 8, !tbaa !11
  %.not137 = icmp sge i32 %628, %634
  %.not138 = icmp sge i32 %631, %634
  %or.cond.not208 = or i1 %.not137, %.not138
  %635 = icmp eq i32 %628, %631
  %or.cond192 = or i1 %635, %or.cond.not208
  br i1 %or.cond192, label %636, label %644

636:                                              ; preds = %632
  %637 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %637, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %637) #6
  invoke void @__cxa_throw(ptr nonnull %637, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %642

638:                                              ; preds = %624
  %639 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #6
  br label %1291

640:                                              ; preds = %625
  %641 = landingpad { ptr, i32 }
          cleanup
  br label %707

642:                                              ; preds = %656, %651, %647, %644, %636, %629
  %643 = landingpad { ptr, i32 }
          cleanup
  br label %706

644:                                              ; preds = %632
  %645 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %646 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %645)
          to label %647 unwind label %642

647:                                              ; preds = %644
  %648 = getelementptr inbounds i8, ptr %0, i64 24
  %649 = sext i32 %628 to i64
  %650 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %648, i64 noundef %649) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %646, ptr noundef nonnull align 8 dereferenceable(16) %650)
          to label %651 unwind label %642

651:                                              ; preds = %647
  %652 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %648, i64 noundef %649) #6
  %653 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %652) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %653, ptr noundef nonnull %52)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #6
  %654 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %655 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %654)
          to label %656 unwind label %642

656:                                              ; preds = %651
  %657 = sext i32 %631 to i64
  %658 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %648, i64 noundef %657) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %655, ptr noundef nonnull align 8 dereferenceable(16) %658)
          to label %659 unwind label %642

659:                                              ; preds = %656
  %660 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %648, i64 noundef %657) #6
  %661 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %660) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %661, ptr noundef nonnull %53)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %54) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #6
  store ptr null, ptr %55, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %54, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 4 dereferenceable(4) %50)
          to label %662 unwind label %695

662:                                              ; preds = %659
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #6
  %663 = load i32, ptr %50, align 4, !tbaa !9
  %664 = sext i32 %663 to i64
  %665 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %648, i64 noundef %664) #6
  %666 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %665, ptr noundef nonnull align 8 dereferenceable(16) %54) #6
  %667 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %668 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %667)
          to label %669 unwind label %697

669:                                              ; preds = %662
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %668, ptr noundef nonnull align 8 dereferenceable(16) %54)
          to label %670 unwind label %697

670:                                              ; preds = %669
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %56) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #6
  store ptr null, ptr %57, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %56, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull align 4 dereferenceable(4) %51)
          to label %671 unwind label %699

671:                                              ; preds = %670
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #6
  %672 = load i32, ptr %51, align 4, !tbaa !9
  %673 = sext i32 %672 to i64
  %674 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %648, i64 noundef %673) #6
  %675 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %674, ptr noundef nonnull align 8 dereferenceable(16) %56) #6
  %676 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %677 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %676)
          to label %678 unwind label %701

678:                                              ; preds = %671
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %677, ptr noundef nonnull align 8 dereferenceable(16) %56)
          to label %679 unwind label %701

679:                                              ; preds = %678
  %680 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %681 = load i32, ptr %50, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %680, i32 noundef %681)
          to label %682 unwind label %701

682:                                              ; preds = %679
  %683 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %684 = load i32, ptr %51, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %683, i32 noundef %684)
          to label %685 unwind label %701

685:                                              ; preds = %682
  %686 = getelementptr inbounds i8, ptr %0, i64 208
  %687 = load i32, ptr %50, align 4, !tbaa !9
  %688 = sext i32 %687 to i64
  %689 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %686, i64 noundef %688) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %689, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %690 unwind label %701

690:                                              ; preds = %685
  %691 = load i32, ptr %51, align 4, !tbaa !9
  %692 = sext i32 %691 to i64
  %693 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %686, i64 noundef %692) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %693, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %694 unwind label %701

694:                                              ; preds = %690
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %56) #6
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #6
  br label %1281

695:                                              ; preds = %659
  %696 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #6
  br label %705

697:                                              ; preds = %669, %662
  %698 = landingpad { ptr, i32 }
          cleanup
  br label %704

699:                                              ; preds = %670
  %700 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #6
  br label %703

701:                                              ; preds = %690, %685, %682, %679, %678, %671
  %702 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #6
  br label %703

703:                                              ; preds = %701, %699
  %.pn139 = phi { ptr, i32 } [ %702, %701 ], [ %700, %699 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %56) #6
  br label %704

704:                                              ; preds = %703, %697
  %.pn139.pn = phi { ptr, i32 } [ %.pn139, %703 ], [ %698, %697 ]
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #6
  br label %705

705:                                              ; preds = %704, %695
  %.pn139.pn.pn = phi { ptr, i32 } [ %.pn139.pn, %704 ], [ %696, %695 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #6
  br label %706

706:                                              ; preds = %705, %642
  %.pn143 = phi { ptr, i32 } [ %643, %642 ], [ %.pn139.pn.pn, %705 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #6
  br label %707

707:                                              ; preds = %706, %640
  %.pn143.pn = phi { ptr, i32 } [ %.pn143, %706 ], [ %641, %640 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #6
  br label %1291

708:                                              ; preds = %621
  %709 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %710 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %709, ptr noundef nonnull @.str.25)
  br i1 %710, label %711, label %795

711:                                              ; preds = %708
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %58) #6
  invoke void @_ZSt11make_sharedIN6qtorch8SwapNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.87") align 8 %58)
          to label %712 unwind label %725

712:                                              ; preds = %711
  %713 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_8SwapNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %58) #6
  call void @_ZNSt12__shared_ptrIN6qtorch8SwapNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %59) #6
  %714 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %715 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %714, ptr noundef null, i32 noundef 10)
          to label %716 unwind label %727

716:                                              ; preds = %712
  store i32 %715, ptr %59, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %60) #6
  %717 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 2) #6
  %718 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %717, ptr noundef null, i32 noundef 10)
          to label %719 unwind label %729

719:                                              ; preds = %716
  store i32 %718, ptr %60, align 4, !tbaa !9
  %720 = getelementptr inbounds i8, ptr %0, i64 168
  %721 = load i32, ptr %720, align 8, !tbaa !11
  %.not128 = icmp sge i32 %715, %721
  %.not129 = icmp sge i32 %718, %721
  %or.cond193.not207 = or i1 %.not128, %.not129
  %722 = icmp eq i32 %715, %718
  %or.cond194 = or i1 %722, %or.cond193.not207
  br i1 %or.cond194, label %723, label %731

723:                                              ; preds = %719
  %724 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %724, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %724) #6
  invoke void @__cxa_throw(ptr nonnull %724, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %729

725:                                              ; preds = %711
  %726 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #6
  br label %1291

727:                                              ; preds = %712
  %728 = landingpad { ptr, i32 }
          cleanup
  br label %794

729:                                              ; preds = %743, %738, %734, %731, %723, %716
  %730 = landingpad { ptr, i32 }
          cleanup
  br label %793

731:                                              ; preds = %719
  %732 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %733 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %732)
          to label %734 unwind label %729

734:                                              ; preds = %731
  %735 = getelementptr inbounds i8, ptr %0, i64 24
  %736 = sext i32 %715 to i64
  %737 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %735, i64 noundef %736) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %733, ptr noundef nonnull align 8 dereferenceable(16) %737)
          to label %738 unwind label %729

738:                                              ; preds = %734
  %739 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %735, i64 noundef %736) #6
  %740 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %739) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %61, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %740, ptr noundef nonnull %61)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #6
  %741 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %742 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %741)
          to label %743 unwind label %729

743:                                              ; preds = %738
  %744 = sext i32 %718 to i64
  %745 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %735, i64 noundef %744) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %742, ptr noundef nonnull align 8 dereferenceable(16) %745)
          to label %746 unwind label %729

746:                                              ; preds = %743
  %747 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %735, i64 noundef %744) #6
  %748 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %747) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %748, ptr noundef nonnull %62)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %62) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %63) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #6
  store ptr null, ptr %64, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %63, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 4 dereferenceable(4) %59)
          to label %749 unwind label %782

749:                                              ; preds = %746
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #6
  %750 = load i32, ptr %59, align 4, !tbaa !9
  %751 = sext i32 %750 to i64
  %752 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %735, i64 noundef %751) #6
  %753 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %752, ptr noundef nonnull align 8 dereferenceable(16) %63) #6
  %754 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %755 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %754)
          to label %756 unwind label %784

756:                                              ; preds = %749
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %755, ptr noundef nonnull align 8 dereferenceable(16) %63)
          to label %757 unwind label %784

757:                                              ; preds = %756
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %65) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #6
  store ptr null, ptr %66, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %65, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 4 dereferenceable(4) %60)
          to label %758 unwind label %786

758:                                              ; preds = %757
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #6
  %759 = load i32, ptr %60, align 4, !tbaa !9
  %760 = sext i32 %759 to i64
  %761 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %735, i64 noundef %760) #6
  %762 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %761, ptr noundef nonnull align 8 dereferenceable(16) %65) #6
  %763 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %764 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %763)
          to label %765 unwind label %788

765:                                              ; preds = %758
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %764, ptr noundef nonnull align 8 dereferenceable(16) %65)
          to label %766 unwind label %788

766:                                              ; preds = %765
  %767 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %768 = load i32, ptr %59, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %767, i32 noundef %768)
          to label %769 unwind label %788

769:                                              ; preds = %766
  %770 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %771 = load i32, ptr %60, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %770, i32 noundef %771)
          to label %772 unwind label %788

772:                                              ; preds = %769
  %773 = getelementptr inbounds i8, ptr %0, i64 208
  %774 = load i32, ptr %59, align 4, !tbaa !9
  %775 = sext i32 %774 to i64
  %776 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %773, i64 noundef %775) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %776, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %777 unwind label %788

777:                                              ; preds = %772
  %778 = load i32, ptr %60, align 4, !tbaa !9
  %779 = sext i32 %778 to i64
  %780 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %773, i64 noundef %779) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %780, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %781 unwind label %788

781:                                              ; preds = %777
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #6
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %63) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %63) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %59) #6
  br label %1281

782:                                              ; preds = %746
  %783 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #6
  br label %792

784:                                              ; preds = %756, %749
  %785 = landingpad { ptr, i32 }
          cleanup
  br label %791

786:                                              ; preds = %757
  %787 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #6
  br label %790

788:                                              ; preds = %777, %772, %769, %766, %765, %758
  %789 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #6
  br label %790

790:                                              ; preds = %788, %786
  %.pn130 = phi { ptr, i32 } [ %789, %788 ], [ %787, %786 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #6
  br label %791

791:                                              ; preds = %790, %784
  %.pn130.pn = phi { ptr, i32 } [ %.pn130, %790 ], [ %785, %784 ]
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %63) #6
  br label %792

792:                                              ; preds = %791, %782
  %.pn130.pn.pn = phi { ptr, i32 } [ %.pn130.pn, %791 ], [ %783, %782 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %63) #6
  br label %793

793:                                              ; preds = %792, %729
  %.pn134 = phi { ptr, i32 } [ %730, %729 ], [ %.pn130.pn.pn, %792 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #6
  br label %794

794:                                              ; preds = %793, %727
  %.pn134.pn = phi { ptr, i32 } [ %.pn134, %793 ], [ %728, %727 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %59) #6
  br label %1291

795:                                              ; preds = %708
  %796 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %797 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %796, ptr noundef nonnull @.str.26)
  br i1 %797, label %798, label %886

798:                                              ; preds = %795
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %67) #6
  %799 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %800 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %799, ptr noundef null, i32 noundef 10)
          to label %801 unwind label %811

801:                                              ; preds = %798
  store i32 %800, ptr %67, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %68) #6
  %802 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 2) #6
  %803 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %802, ptr noundef null, i32 noundef 10)
          to label %804 unwind label %813

804:                                              ; preds = %801
  store i32 %803, ptr %68, align 4, !tbaa !9
  %805 = load i32, ptr %67, align 4, !tbaa !9
  %806 = getelementptr inbounds i8, ptr %0, i64 168
  %807 = load i32, ptr %806, align 8, !tbaa !11
  %.not119 = icmp sge i32 %805, %807
  %.not120 = icmp sge i32 %803, %807
  %or.cond195.not206 = or i1 %.not119, %.not120
  %808 = icmp eq i32 %805, %803
  %or.cond196 = or i1 %808, %or.cond195.not206
  br i1 %or.cond196, label %809, label %815

809:                                              ; preds = %804
  %810 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %810, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %810) #6
  invoke void @__cxa_throw(ptr nonnull %810, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %813

811:                                              ; preds = %798
  %812 = landingpad { ptr, i32 }
          cleanup
  br label %885

813:                                              ; preds = %832, %825, %820, %816, %809, %801
  %814 = landingpad { ptr, i32 }
          cleanup
  br label %884

815:                                              ; preds = %804
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %69) #6
  invoke void @_ZSt11make_sharedIN6qtorch7CRkNodeEJRiEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.90") align 8 %69, ptr noundef nonnull align 4 dereferenceable(4) %67)
          to label %816 unwind label %871

816:                                              ; preds = %815
  %817 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_7CRkNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %69) #6
  call void @_ZNSt12__shared_ptrIN6qtorch7CRkNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %69) #6
  %818 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %819 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %818)
          to label %820 unwind label %813

820:                                              ; preds = %816
  %821 = getelementptr inbounds i8, ptr %0, i64 24
  %822 = load i32, ptr %67, align 4, !tbaa !9
  %823 = sext i32 %822 to i64
  %824 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %821, i64 noundef %823) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %819, ptr noundef nonnull align 8 dereferenceable(16) %824)
          to label %825 unwind label %813

825:                                              ; preds = %820
  %826 = load i32, ptr %67, align 4, !tbaa !9
  %827 = sext i32 %826 to i64
  %828 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %821, i64 noundef %827) #6
  %829 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %828) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %70, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %829, ptr noundef nonnull %70)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #6
  %830 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %831 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %830)
          to label %832 unwind label %813

832:                                              ; preds = %825
  %833 = sext i32 %803 to i64
  %834 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %821, i64 noundef %833) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %831, ptr noundef nonnull align 8 dereferenceable(16) %834)
          to label %835 unwind label %813

835:                                              ; preds = %832
  %836 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %821, i64 noundef %833) #6
  %837 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %836) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %71, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %837, ptr noundef nonnull %71)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %71) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %72) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #6
  store ptr null, ptr %73, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %72, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull align 4 dereferenceable(4) %67)
          to label %838 unwind label %873

838:                                              ; preds = %835
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #6
  %839 = load i32, ptr %67, align 4, !tbaa !9
  %840 = sext i32 %839 to i64
  %841 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %821, i64 noundef %840) #6
  %842 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %841, ptr noundef nonnull align 8 dereferenceable(16) %72) #6
  %843 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %844 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %843)
          to label %845 unwind label %875

845:                                              ; preds = %838
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %844, ptr noundef nonnull align 8 dereferenceable(16) %72)
          to label %846 unwind label %875

846:                                              ; preds = %845
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %74) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #6
  store ptr null, ptr %75, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %74, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 4 dereferenceable(4) %68)
          to label %847 unwind label %877

847:                                              ; preds = %846
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #6
  %848 = load i32, ptr %68, align 4, !tbaa !9
  %849 = sext i32 %848 to i64
  %850 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %821, i64 noundef %849) #6
  %851 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %850, ptr noundef nonnull align 8 dereferenceable(16) %74) #6
  %852 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %853 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %852)
          to label %854 unwind label %879

854:                                              ; preds = %847
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %853, ptr noundef nonnull align 8 dereferenceable(16) %74)
          to label %855 unwind label %879

855:                                              ; preds = %854
  %856 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %857 = load i32, ptr %67, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %856, i32 noundef %857)
          to label %858 unwind label %879

858:                                              ; preds = %855
  %859 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %860 = load i32, ptr %68, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %859, i32 noundef %860)
          to label %861 unwind label %879

861:                                              ; preds = %858
  %862 = getelementptr inbounds i8, ptr %0, i64 208
  %863 = load i32, ptr %67, align 4, !tbaa !9
  %864 = sext i32 %863 to i64
  %865 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %862, i64 noundef %864) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %865, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %866 unwind label %879

866:                                              ; preds = %861
  %867 = load i32, ptr %68, align 4, !tbaa !9
  %868 = sext i32 %867 to i64
  %869 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %862, i64 noundef %868) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %869, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %870 unwind label %879

870:                                              ; preds = %866
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %74) #6
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %72) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %68) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #6
  br label %1281

871:                                              ; preds = %815
  %872 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %69) #6
  br label %884

873:                                              ; preds = %835
  %874 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #6
  br label %883

875:                                              ; preds = %845, %838
  %876 = landingpad { ptr, i32 }
          cleanup
  br label %882

877:                                              ; preds = %846
  %878 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #6
  br label %881

879:                                              ; preds = %866, %861, %858, %855, %854, %847
  %880 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #6
  br label %881

881:                                              ; preds = %879, %877
  %.pn121 = phi { ptr, i32 } [ %880, %879 ], [ %878, %877 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %74) #6
  br label %882

882:                                              ; preds = %881, %875
  %.pn121.pn = phi { ptr, i32 } [ %.pn121, %881 ], [ %876, %875 ]
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %72) #6
  br label %883

883:                                              ; preds = %882, %873
  %.pn121.pn.pn = phi { ptr, i32 } [ %.pn121.pn, %882 ], [ %874, %873 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #6
  br label %884

884:                                              ; preds = %883, %871, %813
  %.pn125 = phi { ptr, i32 } [ %814, %813 ], [ %.pn121.pn.pn, %883 ], [ %872, %871 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %68) #6
  br label %885

885:                                              ; preds = %884, %811
  %.pn125.pn = phi { ptr, i32 } [ %.pn125, %884 ], [ %812, %811 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #6
  br label %1291

886:                                              ; preds = %795
  %887 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %888 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %887, ptr noundef nonnull @.str.27)
  br i1 %888, label %889, label %973

889:                                              ; preds = %886
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %76) #6
  %890 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %891 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %890, ptr noundef null, i32 noundef 10)
          to label %892 unwind label %901

892:                                              ; preds = %889
  store i32 %891, ptr %76, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %77) #6
  %893 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 2) #6
  %894 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %893, ptr noundef null, i32 noundef 10)
          to label %895 unwind label %903

895:                                              ; preds = %892
  store i32 %894, ptr %77, align 4, !tbaa !9
  %896 = getelementptr inbounds i8, ptr %0, i64 168
  %897 = load i32, ptr %896, align 8, !tbaa !11
  %.not110 = icmp sge i32 %891, %897
  %.not111 = icmp sge i32 %894, %897
  %or.cond197.not205 = or i1 %.not110, %.not111
  %898 = icmp eq i32 %891, %894
  %or.cond198 = or i1 %898, %or.cond197.not205
  br i1 %or.cond198, label %899, label %905

899:                                              ; preds = %895
  %900 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %900, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %900) #6
  invoke void @__cxa_throw(ptr nonnull %900, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %903

901:                                              ; preds = %889
  %902 = landingpad { ptr, i32 }
          cleanup
  br label %972

903:                                              ; preds = %919, %914, %910, %906, %899, %892
  %904 = landingpad { ptr, i32 }
          cleanup
  br label %971

905:                                              ; preds = %895
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %78) #6
  invoke void @_ZSt11make_sharedIN6qtorch6CZNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.93") align 8 %78)
          to label %906 unwind label %958

906:                                              ; preds = %905
  %907 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_6CZNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %78) #6
  call void @_ZNSt12__shared_ptrIN6qtorch6CZNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %78) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %78) #6
  %908 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %909 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %908)
          to label %910 unwind label %903

910:                                              ; preds = %906
  %911 = getelementptr inbounds i8, ptr %0, i64 24
  %912 = sext i32 %891 to i64
  %913 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %911, i64 noundef %912) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %909, ptr noundef nonnull align 8 dereferenceable(16) %913)
          to label %914 unwind label %903

914:                                              ; preds = %910
  %915 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %911, i64 noundef %912) #6
  %916 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %915) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %79, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %916, ptr noundef nonnull %79)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %79) #6
  %917 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %918 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %917)
          to label %919 unwind label %903

919:                                              ; preds = %914
  %920 = sext i32 %894 to i64
  %921 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %911, i64 noundef %920) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %918, ptr noundef nonnull align 8 dereferenceable(16) %921)
          to label %922 unwind label %903

922:                                              ; preds = %919
  %923 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %911, i64 noundef %920) #6
  %924 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %923) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %80, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %924, ptr noundef nonnull %80)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %80) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %81) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #6
  store ptr null, ptr %82, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %81, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %82, ptr noundef nonnull align 4 dereferenceable(4) %76)
          to label %925 unwind label %960

925:                                              ; preds = %922
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #6
  %926 = load i32, ptr %76, align 4, !tbaa !9
  %927 = sext i32 %926 to i64
  %928 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %911, i64 noundef %927) #6
  %929 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %928, ptr noundef nonnull align 8 dereferenceable(16) %81) #6
  %930 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %931 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %930)
          to label %932 unwind label %962

932:                                              ; preds = %925
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %931, ptr noundef nonnull align 8 dereferenceable(16) %81)
          to label %933 unwind label %962

933:                                              ; preds = %932
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %83) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %84) #6
  store ptr null, ptr %84, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %83, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 4 dereferenceable(4) %77)
          to label %934 unwind label %964

934:                                              ; preds = %933
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #6
  %935 = load i32, ptr %77, align 4, !tbaa !9
  %936 = sext i32 %935 to i64
  %937 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %911, i64 noundef %936) #6
  %938 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %937, ptr noundef nonnull align 8 dereferenceable(16) %83) #6
  %939 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %940 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %939)
          to label %941 unwind label %966

941:                                              ; preds = %934
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %940, ptr noundef nonnull align 8 dereferenceable(16) %83)
          to label %942 unwind label %966

942:                                              ; preds = %941
  %943 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %944 = load i32, ptr %76, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %943, i32 noundef %944)
          to label %945 unwind label %966

945:                                              ; preds = %942
  %946 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %947 = load i32, ptr %77, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %946, i32 noundef %947)
          to label %948 unwind label %966

948:                                              ; preds = %945
  %949 = getelementptr inbounds i8, ptr %0, i64 208
  %950 = load i32, ptr %76, align 4, !tbaa !9
  %951 = sext i32 %950 to i64
  %952 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %949, i64 noundef %951) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %952, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %953 unwind label %966

953:                                              ; preds = %948
  %954 = load i32, ptr %77, align 4, !tbaa !9
  %955 = sext i32 %954 to i64
  %956 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %949, i64 noundef %955) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %956, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %957 unwind label %966

957:                                              ; preds = %953
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %83) #6
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %81) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %77) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %76) #6
  br label %1281

958:                                              ; preds = %905
  %959 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %78) #6
  br label %971

960:                                              ; preds = %922
  %961 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #6
  br label %970

962:                                              ; preds = %932, %925
  %963 = landingpad { ptr, i32 }
          cleanup
  br label %969

964:                                              ; preds = %933
  %965 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #6
  br label %968

966:                                              ; preds = %953, %948, %945, %942, %941, %934
  %967 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #6
  br label %968

968:                                              ; preds = %966, %964
  %.pn112 = phi { ptr, i32 } [ %967, %966 ], [ %965, %964 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %83) #6
  br label %969

969:                                              ; preds = %968, %962
  %.pn112.pn = phi { ptr, i32 } [ %.pn112, %968 ], [ %963, %962 ]
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #6
  br label %970

970:                                              ; preds = %969, %960
  %.pn112.pn.pn = phi { ptr, i32 } [ %.pn112.pn, %969 ], [ %961, %960 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %81) #6
  br label %971

971:                                              ; preds = %970, %958, %903
  %.pn116 = phi { ptr, i32 } [ %904, %903 ], [ %.pn112.pn.pn, %970 ], [ %959, %958 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %77) #6
  br label %972

972:                                              ; preds = %971, %901
  %.pn116.pn = phi { ptr, i32 } [ %.pn116, %971 ], [ %902, %901 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %76) #6
  br label %1291

973:                                              ; preds = %886
  %974 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %975 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %974, ptr noundef nonnull @.str.28)
  br i1 %975, label %976, label %1066

976:                                              ; preds = %973
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %85) #6
  %977 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %978 = invoke noundef double @_ZNSt7__cxx114stodERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPm(ptr noundef nonnull align 8 dereferenceable(32) %977, ptr noundef null)
          to label %979 unwind label %991

979:                                              ; preds = %976
  store double %978, ptr %85, align 8, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %86) #6
  %980 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 2) #6
  %981 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %980, ptr noundef null, i32 noundef 10)
          to label %982 unwind label %993

982:                                              ; preds = %979
  store i32 %981, ptr %86, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %87) #6
  %983 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 3) #6
  %984 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %983, ptr noundef null, i32 noundef 10)
          to label %985 unwind label %995

985:                                              ; preds = %982
  store i32 %984, ptr %87, align 4, !tbaa !9
  %986 = getelementptr inbounds i8, ptr %0, i64 168
  %987 = load i32, ptr %986, align 8, !tbaa !11
  %.not100 = icmp sge i32 %981, %987
  %.not101 = icmp sge i32 %984, %987
  %or.cond199.not204 = or i1 %.not100, %.not101
  %988 = icmp eq i32 %981, %984
  %or.cond200 = or i1 %988, %or.cond199.not204
  br i1 %or.cond200, label %989, label %997

989:                                              ; preds = %985
  %990 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %990, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %990) #6
  invoke void @__cxa_throw(ptr nonnull %990, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %995

991:                                              ; preds = %976
  %992 = landingpad { ptr, i32 }
          cleanup
  br label %1065

993:                                              ; preds = %979
  %994 = landingpad { ptr, i32 }
          cleanup
  br label %1064

995:                                              ; preds = %1011, %1006, %1002, %998, %989, %982
  %996 = landingpad { ptr, i32 }
          cleanup
  br label %1063

997:                                              ; preds = %985
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %88) #6
  invoke void @_ZSt11make_sharedIN6qtorch10CPhaseNodeEJRdEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.96") align 8 %88, ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %998 unwind label %1050

998:                                              ; preds = %997
  %999 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_10CPhaseNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %88) #6
  call void @_ZNSt12__shared_ptrIN6qtorch10CPhaseNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %88) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %88) #6
  %1000 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1001 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1000)
          to label %1002 unwind label %995

1002:                                             ; preds = %998
  %1003 = getelementptr inbounds i8, ptr %0, i64 24
  %1004 = sext i32 %981 to i64
  %1005 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1003, i64 noundef %1004) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1001, ptr noundef nonnull align 8 dereferenceable(16) %1005)
          to label %1006 unwind label %995

1006:                                             ; preds = %1002
  %1007 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1003, i64 noundef %1004) #6
  %1008 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1007) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %89, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1008, ptr noundef nonnull %89)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %89) #6
  %1009 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1010 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1009)
          to label %1011 unwind label %995

1011:                                             ; preds = %1006
  %1012 = sext i32 %984 to i64
  %1013 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1003, i64 noundef %1012) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1010, ptr noundef nonnull align 8 dereferenceable(16) %1013)
          to label %1014 unwind label %995

1014:                                             ; preds = %1011
  %1015 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1003, i64 noundef %1012) #6
  %1016 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1015) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %90, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1016, ptr noundef nonnull %90)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %91) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %92) #6
  store ptr null, ptr %92, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %91, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull align 4 dereferenceable(4) %86)
          to label %1017 unwind label %1052

1017:                                             ; preds = %1014
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #6
  %1018 = load i32, ptr %86, align 4, !tbaa !9
  %1019 = sext i32 %1018 to i64
  %1020 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1003, i64 noundef %1019) #6
  %1021 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1020, ptr noundef nonnull align 8 dereferenceable(16) %91) #6
  %1022 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1023 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1022)
          to label %1024 unwind label %1054

1024:                                             ; preds = %1017
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1023, ptr noundef nonnull align 8 dereferenceable(16) %91)
          to label %1025 unwind label %1054

1025:                                             ; preds = %1024
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %93) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %94) #6
  store ptr null, ptr %94, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %93, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 4 dereferenceable(4) %87)
          to label %1026 unwind label %1056

1026:                                             ; preds = %1025
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #6
  %1027 = load i32, ptr %87, align 4, !tbaa !9
  %1028 = sext i32 %1027 to i64
  %1029 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1003, i64 noundef %1028) #6
  %1030 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1029, ptr noundef nonnull align 8 dereferenceable(16) %93) #6
  %1031 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1032 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1031)
          to label %1033 unwind label %1058

1033:                                             ; preds = %1026
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1032, ptr noundef nonnull align 8 dereferenceable(16) %93)
          to label %1034 unwind label %1058

1034:                                             ; preds = %1033
  %1035 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1036 = load i32, ptr %86, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1035, i32 noundef %1036)
          to label %1037 unwind label %1058

1037:                                             ; preds = %1034
  %1038 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1039 = load i32, ptr %87, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1038, i32 noundef %1039)
          to label %1040 unwind label %1058

1040:                                             ; preds = %1037
  %1041 = getelementptr inbounds i8, ptr %0, i64 208
  %1042 = load i32, ptr %86, align 4, !tbaa !9
  %1043 = sext i32 %1042 to i64
  %1044 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1041, i64 noundef %1043) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1044, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %1045 unwind label %1058

1045:                                             ; preds = %1040
  %1046 = load i32, ptr %87, align 4, !tbaa !9
  %1047 = sext i32 %1046 to i64
  %1048 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1041, i64 noundef %1047) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1048, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %1049 unwind label %1058

1049:                                             ; preds = %1045
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %93) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %93) #6
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %91) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %91) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %87) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %86) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #6
  br label %1281

1050:                                             ; preds = %997
  %1051 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %88) #6
  br label %1063

1052:                                             ; preds = %1014
  %1053 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #6
  br label %1062

1054:                                             ; preds = %1024, %1017
  %1055 = landingpad { ptr, i32 }
          cleanup
  br label %1061

1056:                                             ; preds = %1025
  %1057 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #6
  br label %1060

1058:                                             ; preds = %1045, %1040, %1037, %1034, %1033, %1026
  %1059 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %93) #6
  br label %1060

1060:                                             ; preds = %1058, %1056
  %.pn102 = phi { ptr, i32 } [ %1059, %1058 ], [ %1057, %1056 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %93) #6
  br label %1061

1061:                                             ; preds = %1060, %1054
  %.pn102.pn = phi { ptr, i32 } [ %.pn102, %1060 ], [ %1055, %1054 ]
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %91) #6
  br label %1062

1062:                                             ; preds = %1061, %1052
  %.pn102.pn.pn = phi { ptr, i32 } [ %.pn102.pn, %1061 ], [ %1053, %1052 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %91) #6
  br label %1063

1063:                                             ; preds = %1062, %1050, %995
  %.pn106 = phi { ptr, i32 } [ %996, %995 ], [ %.pn102.pn.pn, %1062 ], [ %1051, %1050 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %87) #6
  br label %1064

1064:                                             ; preds = %1063, %993
  %.pn106.pn = phi { ptr, i32 } [ %.pn106, %1063 ], [ %994, %993 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %86) #6
  br label %1065

1065:                                             ; preds = %1064, %991
  %.pn106.pn.pn = phi { ptr, i32 } [ %.pn106.pn, %1064 ], [ %992, %991 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #6
  br label %1291

1066:                                             ; preds = %973
  %1067 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %1068 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %1067, ptr noundef nonnull @.str.29)
  br i1 %1068, label %1069, label %1081

1069:                                             ; preds = %1066
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %95) #6
  %1070 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %1071 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 2) #6
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EC2IRS5_S9_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISB_SC_EEEbE4typeELb1EEEOSB_OSC_(ptr noundef nonnull align 8 dereferenceable(64) %95, ptr noundef nonnull align 8 dereferenceable(32) %1070, ptr noundef nonnull align 8 dereferenceable(32) %1071)
          to label %1072 unwind label %1076

1072:                                             ; preds = %1069
  %1073 = getelementptr inbounds i8, ptr %0, i64 256
  %1074 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertEOSC_(ptr noundef nonnull align 8 dereferenceable(56) %1073, ptr noundef nonnull align 8 dereferenceable(64) %95)
          to label %1075 unwind label %1078

1075:                                             ; preds = %1072
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %95) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %95) #6
  br label %1289

1076:                                             ; preds = %1069
  %1077 = landingpad { ptr, i32 }
          cleanup
  br label %1080

1078:                                             ; preds = %1072
  %1079 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %95) #6
  br label %1080

1080:                                             ; preds = %1078, %1076
  %.pn98 = phi { ptr, i32 } [ %1079, %1078 ], [ %1077, %1076 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %95) #6
  br label %1291

1081:                                             ; preds = %1066
  %1082 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %1083 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %1082, ptr noundef nonnull @.str.30)
  br i1 %1083, label %1084, label %1096

1084:                                             ; preds = %1081
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %96) #6
  %1085 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %1086 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 2) #6
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EC2IRS5_S9_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISB_SC_EEEbE4typeELb1EEEOSB_OSC_(ptr noundef nonnull align 8 dereferenceable(64) %96, ptr noundef nonnull align 8 dereferenceable(32) %1085, ptr noundef nonnull align 8 dereferenceable(32) %1086)
          to label %1087 unwind label %1091

1087:                                             ; preds = %1084
  %1088 = getelementptr inbounds i8, ptr %0, i64 312
  %1089 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertEOSC_(ptr noundef nonnull align 8 dereferenceable(56) %1088, ptr noundef nonnull align 8 dereferenceable(64) %96)
          to label %1090 unwind label %1093

1090:                                             ; preds = %1087
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %96) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %96) #6
  br label %1289

1091:                                             ; preds = %1084
  %1092 = landingpad { ptr, i32 }
          cleanup
  br label %1095

1093:                                             ; preds = %1087
  %1094 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %96) #6
  br label %1095

1095:                                             ; preds = %1093, %1091
  %.pn96 = phi { ptr, i32 } [ %1094, %1093 ], [ %1092, %1091 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %96) #6
  br label %1291

1096:                                             ; preds = %1081
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %97) #6
  %1097 = getelementptr inbounds i8, ptr %0, i64 256
  %1098 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %1099 = invoke ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(56) %1097, ptr noundef nonnull align 8 dereferenceable(32) %1098)
          to label %1100 unwind label %1117

1100:                                             ; preds = %1096
  store ptr %1099, ptr %97, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %98) #6
  %1101 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %1097) #6
  store ptr %1101, ptr %98, align 8
  %1102 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 8 dereferenceable(8) %98) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %97) #6
  br i1 %1102, label %1103, label %1164

1103:                                             ; preds = %1100
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %99) #6
  %1104 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %1105 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(56) %1097, ptr noundef nonnull align 8 dereferenceable(32) %1104)
          to label %1106 unwind label %1119

1106:                                             ; preds = %1103
  %1107 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  invoke void @_ZSt11make_sharedIN6qtorch21ArbitraryOneQubitNodeEJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_EESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESB_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.103") align 8 %99, ptr noundef nonnull align 8 dereferenceable(32) %1105, ptr noundef nonnull align 8 dereferenceable(32) %1107)
          to label %1108 unwind label %1119

1108:                                             ; preds = %1106
  %1109 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_21ArbitraryOneQubitNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %99) #6
  call void @_ZNSt12__shared_ptrIN6qtorch21ArbitraryOneQubitNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %99) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %99) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %100) #6
  %1110 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %1111 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %1110, ptr noundef null, i32 noundef 10)
          to label %1112 unwind label %1121

1112:                                             ; preds = %1108
  store i32 %1111, ptr %100, align 4, !tbaa !9
  %1113 = getelementptr inbounds i8, ptr %0, i64 168
  %1114 = load i32, ptr %1113, align 8, !tbaa !11
  %.not91 = icmp slt i32 %1111, %1114
  br i1 %.not91, label %1123, label %1115

1115:                                             ; preds = %1112
  %1116 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %1116, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1116) #6
  invoke void @__cxa_throw(ptr nonnull %1116, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %1121

1117:                                             ; preds = %1096
  %1118 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %97) #6
  br label %1291

1119:                                             ; preds = %1106, %1103
  %1120 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %99) #6
  br label %1291

1121:                                             ; preds = %1126, %1123, %1115, %1108
  %1122 = landingpad { ptr, i32 }
          cleanup
  br label %1163

1123:                                             ; preds = %1112
  %1124 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1125 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1124)
          to label %1126 unwind label %1121

1126:                                             ; preds = %1123
  %1127 = getelementptr inbounds i8, ptr %0, i64 24
  %1128 = sext i32 %1111 to i64
  %1129 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1127, i64 noundef %1128) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1125, ptr noundef nonnull align 8 dereferenceable(16) %1129)
          to label %1130 unwind label %1121

1130:                                             ; preds = %1126
  %1131 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1127, i64 noundef %1128) #6
  %1132 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1131) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %101, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1132, ptr noundef nonnull %101)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %102) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %103) #6
  store ptr null, ptr %103, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %102, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef nonnull align 4 dereferenceable(4) %100)
          to label %1133 unwind label %1158

1133:                                             ; preds = %1130
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #6
  %1134 = load i32, ptr %100, align 4, !tbaa !9
  %1135 = sext i32 %1134 to i64
  %1136 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1127, i64 noundef %1135) #6
  %1137 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1136, ptr noundef nonnull align 8 dereferenceable(16) %102) #6
  %1138 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1139 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1138)
          to label %1140 unwind label %1160

1140:                                             ; preds = %1133
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1139, ptr noundef nonnull align 8 dereferenceable(16) %102)
          to label %1141 unwind label %1160

1141:                                             ; preds = %1140
  %1142 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1143 = load i32, ptr %100, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1142, i32 noundef %1143)
          to label %1144 unwind label %1160

1144:                                             ; preds = %1141
  %1145 = getelementptr inbounds i8, ptr %0, i64 208
  %1146 = load i32, ptr %100, align 4, !tbaa !9
  %1147 = sext i32 %1146 to i64
  %1148 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1145, i64 noundef %1147) #6
  %1149 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1148) #6
  %1150 = trunc i64 %1149 to i32
  %1151 = add i32 %1150, -1
  %1152 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1153 = getelementptr inbounds i8, ptr %1152, i64 16
  store i32 %1151, ptr %1153, align 8, !tbaa !40
  %1154 = load i32, ptr %100, align 4, !tbaa !9
  %1155 = sext i32 %1154 to i64
  %1156 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1145, i64 noundef %1155) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1156, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %1157 unwind label %1160

1157:                                             ; preds = %1144
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %102) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %102) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %100) #6
  br label %1281

1158:                                             ; preds = %1130
  %1159 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #6
  br label %1162

1160:                                             ; preds = %1144, %1141, %1140, %1133
  %1161 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %102) #6
  br label %1162

1162:                                             ; preds = %1160, %1158
  %.pn92 = phi { ptr, i32 } [ %1161, %1160 ], [ %1159, %1158 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %102) #6
  br label %1163

1163:                                             ; preds = %1162, %1121
  %.pn94 = phi { ptr, i32 } [ %1122, %1121 ], [ %.pn92, %1162 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %100) #6
  br label %1291

1164:                                             ; preds = %1100
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %104) #6
  %1165 = getelementptr inbounds i8, ptr %0, i64 312
  %1166 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %1167 = invoke ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(56) %1165, ptr noundef nonnull align 8 dereferenceable(32) %1166)
          to label %1168 unwind label %1189

1168:                                             ; preds = %1164
  store ptr %1167, ptr %104, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %105) #6
  %1169 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %1165) #6
  store ptr %1169, ptr %105, align 8
  %1170 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull align 8 dereferenceable(8) %105) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %105) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #6
  br i1 %1170, label %1171, label %1261

1171:                                             ; preds = %1168
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %106) #6
  %1172 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  %1173 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(56) %1165, ptr noundef nonnull align 8 dereferenceable(32) %1172)
          to label %1174 unwind label %1191

1174:                                             ; preds = %1171
  %1175 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #6
  invoke void @_ZSt11make_sharedIN6qtorch21ArbitraryTwoQubitNodeEJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_EESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESB_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.106") align 8 %106, ptr noundef nonnull align 8 dereferenceable(32) %1173, ptr noundef nonnull align 8 dereferenceable(32) %1175)
          to label %1176 unwind label %1191

1176:                                             ; preds = %1174
  %1177 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4NodeEEaSINS0_21ArbitraryTwoQubitNodeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %106) #6
  call void @_ZNSt12__shared_ptrIN6qtorch21ArbitraryTwoQubitNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %106) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %106) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %107) #6
  %1178 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #6
  %1179 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %1178, ptr noundef null, i32 noundef 10)
          to label %1180 unwind label %1193

1180:                                             ; preds = %1176
  store i32 %1179, ptr %107, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %108) #6
  %1181 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 2) #6
  %1182 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %1181, ptr noundef null, i32 noundef 10)
          to label %1183 unwind label %1195

1183:                                             ; preds = %1180
  store i32 %1182, ptr %108, align 4, !tbaa !9
  %1184 = getelementptr inbounds i8, ptr %0, i64 168
  %1185 = load i32, ptr %1184, align 8, !tbaa !11
  %.not = icmp sge i32 %1179, %1185
  %.not84 = icmp sge i32 %1182, %1185
  %or.cond201.not203 = or i1 %.not, %.not84
  %1186 = icmp eq i32 %1179, %1182
  %or.cond202 = or i1 %1186, %or.cond201.not203
  br i1 %or.cond202, label %1187, label %1197

1187:                                             ; preds = %1183
  %1188 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %1188, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1188) #6
  invoke void @__cxa_throw(ptr nonnull %1188, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %1195

1189:                                             ; preds = %1164
  %1190 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #6
  br label %1291

1191:                                             ; preds = %1174, %1171
  %1192 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %106) #6
  br label %1291

1193:                                             ; preds = %1176
  %1194 = landingpad { ptr, i32 }
          cleanup
  br label %1260

1195:                                             ; preds = %1209, %1204, %1200, %1197, %1187, %1180
  %1196 = landingpad { ptr, i32 }
          cleanup
  br label %1259

1197:                                             ; preds = %1183
  %1198 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1199 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1198)
          to label %1200 unwind label %1195

1200:                                             ; preds = %1197
  %1201 = getelementptr inbounds i8, ptr %0, i64 24
  %1202 = sext i32 %1179 to i64
  %1203 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1201, i64 noundef %1202) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1199, ptr noundef nonnull align 8 dereferenceable(16) %1203)
          to label %1204 unwind label %1195

1204:                                             ; preds = %1200
  %1205 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1201, i64 noundef %1202) #6
  %1206 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1205) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %109, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1206, ptr noundef nonnull %109)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %109) #6
  %1207 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1208 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1207)
          to label %1209 unwind label %1195

1209:                                             ; preds = %1204
  %1210 = sext i32 %1182 to i64
  %1211 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1201, i64 noundef %1210) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1208, ptr noundef nonnull align 8 dereferenceable(16) %1211)
          to label %1212 unwind label %1195

1212:                                             ; preds = %1209
  %1213 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1201, i64 noundef %1210) #6
  %1214 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1213) #6
  call void @_ZNSt10shared_ptrIN6qtorch4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %110, ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @_ZN6qtorch4Wire8SetNodeBESt10shared_ptrINS_4NodeEE(ptr noundef nonnull align 8 dereferenceable(44) %1214, ptr noundef nonnull %110)
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %110) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %111) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %112) #6
  store ptr null, ptr %112, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %111, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull align 4 dereferenceable(4) %107)
          to label %1215 unwind label %1248

1215:                                             ; preds = %1212
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #6
  %1216 = load i32, ptr %107, align 4, !tbaa !9
  %1217 = sext i32 %1216 to i64
  %1218 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1201, i64 noundef %1217) #6
  %1219 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1218, ptr noundef nonnull align 8 dereferenceable(16) %111) #6
  %1220 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1221 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1220)
          to label %1222 unwind label %1250

1222:                                             ; preds = %1215
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1221, ptr noundef nonnull align 8 dereferenceable(16) %111)
          to label %1223 unwind label %1250

1223:                                             ; preds = %1222
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %113) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %114) #6
  store ptr null, ptr %114, align 8, !tbaa !38
  invoke void @_ZSt11make_sharedIN6qtorch4WireEJRSt10shared_ptrINS0_4NodeEEDnRiEES2_INSt9enable_ifIXntsr8is_arrayIT_EE5valueES8_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.32") align 8 %113, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef nonnull align 4 dereferenceable(4) %108)
          to label %1224 unwind label %1252

1224:                                             ; preds = %1223
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #6
  %1225 = load i32, ptr %108, align 4, !tbaa !9
  %1226 = sext i32 %1225 to i64
  %1227 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1201, i64 noundef %1226) #6
  %1228 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch4WireEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %1227, ptr noundef nonnull align 8 dereferenceable(16) %113) #6
  %1229 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1230 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN6qtorch4Node8GetWiresEv(ptr noundef nonnull align 8 dereferenceable(152) %1229)
          to label %1231 unwind label %1254

1231:                                             ; preds = %1224
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1230, ptr noundef nonnull align 8 dereferenceable(16) %113)
          to label %1232 unwind label %1254

1232:                                             ; preds = %1231
  %1233 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1234 = load i32, ptr %107, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1233, i32 noundef %1234)
          to label %1235 unwind label %1254

1235:                                             ; preds = %1232
  %1236 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1237 = load i32, ptr %108, align 4, !tbaa !9
  invoke void @_ZN6qtorch4Node13AddWireNumberEi(ptr noundef nonnull align 8 dereferenceable(152) %1236, i32 noundef %1237)
          to label %1238 unwind label %1254

1238:                                             ; preds = %1235
  %1239 = getelementptr inbounds i8, ptr %0, i64 208
  %1240 = load i32, ptr %107, align 4, !tbaa !9
  %1241 = sext i32 %1240 to i64
  %1242 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1239, i64 noundef %1241) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1242, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %1243 unwind label %1254

1243:                                             ; preds = %1238
  %1244 = load i32, ptr %108, align 4, !tbaa !9
  %1245 = sext i32 %1244 to i64
  %1246 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1239, i64 noundef %1245) #6
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1246, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %1247 unwind label %1254

1247:                                             ; preds = %1243
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %113) #6
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %111) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %111) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %108) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %107) #6
  br label %1281

1248:                                             ; preds = %1212
  %1249 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #6
  br label %1258

1250:                                             ; preds = %1222, %1215
  %1251 = landingpad { ptr, i32 }
          cleanup
  br label %1257

1252:                                             ; preds = %1223
  %1253 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #6
  br label %1256

1254:                                             ; preds = %1243, %1238, %1235, %1232, %1231, %1224
  %1255 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113) #6
  br label %1256

1256:                                             ; preds = %1254, %1252
  %.pn = phi { ptr, i32 } [ %1255, %1254 ], [ %1253, %1252 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %113) #6
  br label %1257

1257:                                             ; preds = %1256, %1250
  %.pn.pn = phi { ptr, i32 } [ %.pn, %1256 ], [ %1251, %1250 ]
  call void @_ZNSt12__shared_ptrIN6qtorch4WireELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %111) #6
  br label %1258

1258:                                             ; preds = %1257, %1248
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %1257 ], [ %1249, %1248 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %111) #6
  br label %1259

1259:                                             ; preds = %1258, %1195
  %.pn88 = phi { ptr, i32 } [ %1196, %1195 ], [ %.pn.pn.pn, %1258 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %108) #6
  br label %1260

1260:                                             ; preds = %1259, %1193
  %.pn88.pn = phi { ptr, i32 } [ %.pn88, %1259 ], [ %1194, %1193 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %107) #6
  br label %1291

1261:                                             ; preds = %1168
  %1262 = 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.31)
          to label %1263 unwind label %141

1263:                                             ; preds = %1261
  %1264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1262, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1265 unwind label %141

1265:                                             ; preds = %1263
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %115) #6
  %1266 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #6
  store ptr %1266, ptr %115, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %116) #6
  %1267 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #6
  store ptr %1267, ptr %116, align 8
  %1268 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(8) %116) #6
  br i1 %1268, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %1274, %1265
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %116) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #6
  %1269 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1279 unwind label %141

.lr.ph:                                           ; preds = %1265, %1274
  %1270 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %115) #6
  %1271 = 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) %1270)
          to label %1272 unwind label %1277

1272:                                             ; preds = %.lr.ph
  %1273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1271, ptr noundef nonnull @.str.32)
          to label %1274 unwind label %1277

1274:                                             ; preds = %1272
  %1275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %115) #6
  %1276 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(8) %116) #6
  br i1 %1276, label %.lr.ph, label %._crit_edge

1277:                                             ; preds = %1272, %.lr.ph
  %1278 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %116) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #6
  br label %1291

1279:                                             ; preds = %._crit_edge
  %1280 = call ptr @__cxa_allocate_exception(i64 8) #6
  store i64 0, ptr %1280, align 16
  call void @_ZN6qtorch17InvalidFileFormatC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1280) #6
  invoke void @__cxa_throw(ptr nonnull %1280, ptr nonnull @_ZTIN6qtorch17InvalidFileFormatE, ptr nonnull @_ZNSt9exceptionD2Ev) #7
          to label %1293 unwind label %141

1281:                                             ; preds = %250, %381, %498, %614, %781, %957, %1157, %1247, %1049, %870, %694, %556, %440, %317, %183
  %1282 = getelementptr inbounds i8, ptr %0, i64 184
  invoke void @_ZNSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1282, ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %1283 unwind label %141

1283:                                             ; preds = %1281
  %1284 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1282) #6
  %1285 = trunc i64 %1284 to i32
  %1286 = add i32 %1285, -1
  %1287 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  %1288 = getelementptr inbounds i8, ptr %1287, i64 12
  store i32 %1286, ptr %1288, align 4, !tbaa !54
  br label %1289

1289:                                             ; preds = %1283, %1090, %1075
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #6
  br label %1290

1290:                                             ; preds = %117, %1289
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #6
  ret void

1291:                                             ; preds = %1277, %1260, %1191, %1189, %1163, %1119, %1117, %1095, %1080, %1065, %972, %885, %794, %725, %707, %638, %620, %576, %562, %518, %504, %460, %446, %402, %388, %324, %257, %190, %141
  %.pn187.pn.pn = phi { ptr, i32 } [ %.pn187.pn, %190 ], [ %142, %141 ], [ %.pn181.pn, %257 ], [ %.pn175.pn, %324 ], [ %.pn169.pn, %388 ], [ %.pn164, %446 ], [ %403, %402 ], [ %.pn159, %504 ], [ %461, %460 ], [ %.pn154, %562 ], [ %519, %518 ], [ %.pn149, %620 ], [ %577, %576 ], [ %.pn143.pn, %707 ], [ %639, %638 ], [ %.pn134.pn, %794 ], [ %726, %725 ], [ %.pn125.pn, %885 ], [ %.pn116.pn, %972 ], [ %.pn106.pn.pn, %1065 ], [ %.pn98, %1080 ], [ %.pn96, %1095 ], [ %.pn94, %1163 ], [ %1120, %1119 ], [ %.pn88.pn, %1260 ], [ %1192, %1191 ], [ %1278, %1277 ], [ %1190, %1189 ], [ %1118, %1117 ]
  call void @_ZNSt12__shared_ptrIN6qtorch4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #6
  br label %1292

1292:                                             ; preds = %1291, %120
  %.pn187.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn, %1291 ], [ %121, %120 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #6
  resume { ptr, i32 } %.pn187.pn.pn.pn

1293:                                             ; preds = %1279, %1187, %1115, %989, %899, %809, %723, %636, %574, %516, %458, %400, %339, %275, %208, %139
  unreachable
}

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6qtorch7Network11ParseTokensERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSt6vectorIS6_SaIS6_EE(ptr noundef nonnull align 8 dereferenceable(380), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) local_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 #4 align 2

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

; 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 #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef float @_ZNSt7__cxx114stofERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPm(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch6RxNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.60") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch6RyNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.63") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch6RzNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.66") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch9PhaseNodeEJRfEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.69") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch5HNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.72") align 8) local_unnamed_addr #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch5XNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.75") align 8) local_unnamed_addr #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch5YNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.78") align 8) local_unnamed_addr #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch5ZNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.81") align 8) local_unnamed_addr #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch8CNOTNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.84") align 8) local_unnamed_addr #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch8SwapNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.87") align 8) local_unnamed_addr #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch7CRkNodeEJRiEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.90") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch6CZNodeEJEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES4_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.93") align 8) local_unnamed_addr #1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNSt7__cxx114stodERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPm(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch10CPhaseNodeEJRdEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES5_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.96") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertEOSC_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #2 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch21ArbitraryOneQubitNodeEJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_EESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESB_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.103") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6qtorch21ArbitraryTwoQubitNodeEJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_EESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESB_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.106") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(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(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4 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 #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4 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 #4 align 2

; Function Attrs: nounwind
declare void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"float", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 168}
!12 = !{!"_ZTSN6qtorch7NetworkE", !13, i64 0, !18, i64 24, !22, i64 48, !22, i64 80, !25, i64 112, !26, i64 128, !10, i64 168, !10, i64 172, !28, i64 176, !28, i64 177, !13, i64 184, !29, i64 208, !13, i64 232, !33, i64 256, !33, i64 312, !37, i64 368, !10, i64 376}
!13 = !{!"_ZTSSt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS3_EE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN6qtorch4NodeEESaIS3_EE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6qtorch4NodeEESaIS3_EE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6qtorch4NodeEESaIS3_EE17_Vector_impl_dataE", !17, i64 0, !17, i64 8, !17, i64 16}
!17 = !{!"any pointer", !7, i64 0}
!18 = !{!"_ZTSSt6vectorISt10shared_ptrIN6qtorch4WireEESaIS3_EE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN6qtorch4WireEESaIS3_EE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6qtorch4WireEESaIS3_EE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6qtorch4WireEESaIS3_EE17_Vector_impl_dataE", !17, i64 0, !17, i64 8, !17, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !23, i64 0, !24, i64 8, !7, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !17, i64 0}
!24 = !{!"long", !7, i64 0}
!25 = !{!"_ZTSSt7complexIdE", !7, i64 0}
!26 = !{!"_ZTSSt5mutex", !27, i64 0}
!27 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!28 = !{!"bool", !7, i64 0}
!29 = !{!"_ZTSSt6vectorIS_ISt10shared_ptrIN6qtorch4NodeEESaIS3_EESaIS5_EE", !30, i64 0}
!30 = !{!"_ZTSSt12_Vector_baseISt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS4_EESaIS6_EE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseISt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS4_EESaIS6_EE12_Vector_implE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseISt6vectorISt10shared_ptrIN6qtorch4NodeEESaIS4_EESaIS6_EE17_Vector_impl_dataE", !17, i64 0, !17, i64 8, !17, i64 16}
!33 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE", !34, i64 0}
!34 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE", !17, i64 0, !24, i64 8, !35, i64 16, !24, i64 24, !36, i64 32, !17, i64 48}
!35 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !17, i64 0}
!36 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !6, i64 0, !24, i64 8}
!37 = !{!"long long", !7, i64 0}
!38 = !{!39, !39, i64 0}
!39 = !{!"std::nullptr_t", !7, i64 0}
!40 = !{!41, !10, i64 16}
!41 = !{!"_ZTSN6qtorch4NodeE", !10, i64 8, !10, i64 12, !10, i64 16, !28, i64 20, !42, i64 24, !28, i64 32, !43, i64 40, !18, i64 64, !47, i64 88, !51, i64 112, !22, i64 120}
!42 = !{!"_ZTSSt4pairIiiE", !10, i64 0, !10, i64 4}
!43 = !{!"_ZTSSt6vectorISt7complexIdESaIS1_EE", !44, i64 0}
!44 = !{!"_ZTSSt12_Vector_baseISt7complexIdESaIS1_EE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseISt7complexIdESaIS1_EE12_Vector_implE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseISt7complexIdESaIS1_EE17_Vector_impl_dataE", !17, i64 0, !17, i64 8, !17, i64 16}
!47 = !{!"_ZTSSt6vectorIiSaIiEE", !48, i64 0}
!48 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !17, i64 0, !17, i64 8, !17, i64 16}
!51 = !{!"_ZTSN6qtorch8GateTypeE", !7, i64 0}
!52 = !{!53, !53, i64 0}
!53 = !{!"double", !7, i64 0}
!54 = !{!41, !10, i64 12}


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