; 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.178" = type { %"class.std::__shared_ptr.179" }
%"class.std::__shared_ptr.179" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.qtorch::leviParser" = type { %"class.std::map", %"class.std::map.220", %"class.std::map.225", %"class.std::map.230" }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::map.220" = type { %"class.std::_Rb_tree.221" }
%"class.std::_Rb_tree.221" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, bool>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, bool>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, bool>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, bool>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.225" = type { %"class.std::_Rb_tree.226" }
%"class.std::_Rb_tree.226" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, int>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, int>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.230" = type { %"class.std::_Rb_tree.231" }
%"class.std::_Rb_tree.231" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, double>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, double>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, double>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, double>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"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] }
%"class.std::allocator" = type { i8 }
%"class.std::basic_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%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::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon }
%union.anon = type { i32 }
%"class.qtorch::Timer" = type <{ %"class.std::chrono::time_point", i64, i8, [7 x i8] }>
%"class.std::chrono::time_point" = type { %"class.std::chrono::duration" }
%"class.std::chrono::duration" = type { i64 }
%"class.qtorch::LineGraph" = type { %"class.std::shared_ptr.178", %"class.std::vector.4", %"class.std::vector.181", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"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::vector.181" = type { %"struct.std::_Vector_base.182" }
%"struct.std::_Vector_base.182" = type { %"struct.std::_Vector_base<std::array<std::shared_ptr<qtorch::Wire>, 2>, std::allocator<std::array<std::shared_ptr<qtorch::Wire>, 2>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::array<std::shared_ptr<qtorch::Wire>, 2>, std::allocator<std::array<std::shared_ptr<qtorch::Wire>, 2>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::array<std::shared_ptr<qtorch::Wire>, 2>, std::allocator<std::array<std::shared_ptr<qtorch::Wire>, 2>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::array<std::shared_ptr<qtorch::Wire>, 2>, std::allocator<std::array<std::shared_ptr<qtorch::Wire>, 2>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"class.qtorch::ContractionTools" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::complex", %"class.std::vector.186", %"class.std::random_device", %"class.std::shared_ptr.178", %"class.std::mersenne_twister_engine", i8, i32 }
%"class.std::complex" = type { { double, double } }
%"class.std::vector.186" = type { %"struct.std::_Vector_base.187" }
%"struct.std::_Vector_base.187" = type { %"struct.std::_Vector_base<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>, std::allocator<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>, std::allocator<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>, std::allocator<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>, std::allocator<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::random_device" = type { %union.anon.191 }
%union.anon.191 = type { %"class.std::mersenne_twister_engine" }
%"class.std::mersenne_twister_engine" = type { [624 x i64], i64 }
%"struct.std::_Rb_tree_iterator.235" = type { ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@_ZTISt9exception = external constant ptr
@.str.56 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [18 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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN6qtorch5Timer10getElapsedEv(ptr noundef nonnull align 8 dereferenceable(17)) #2 align 2

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

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #4

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

; 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 uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6qtorch9LineGraph10runQuickBBEiPNS_5TimerEb(ptr noundef nonnull align 8 dereferenceable(160), i32 noundef, ptr noundef, i1 noundef zeroext) #2 align 2

; Function Attrs: nounwind
declare i32 @mkdir(ptr noundef, i32 noundef) #6

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6qtorch9LineGraph10LGContractEv(ptr noundef nonnull align 8 dereferenceable(160)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264)) #3 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16)) #4

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6qtorch7Network13SetNumThreadsEi(ptr noundef nonnull align 8 dereferenceable(380), i32 noundef) #3 align 2

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

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

; Function Attrs: nounwind
declare double @pow(double noundef, double noundef) #6

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

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #7 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca %"class.qtorch::leviParser", align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator", align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::basic_ofstream", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::shared_ptr.178", align 8
  %22 = alloca %"class.std::shared_ptr.178", align 8
  %23 = alloca ptr, align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca ptr, align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca ptr, align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca i1, align 1
  %34 = alloca %"class.std::allocator", align 1
  %35 = alloca i1, align 1
  %36 = alloca i1, align 1
  %37 = alloca i1, align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca %"class.qtorch::Timer", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca i8, align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::allocator", align 1
  %50 = alloca %"class.qtorch::LineGraph", align 8
  %51 = alloca %"class.std::shared_ptr.178", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca i8, align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::allocator", align 1
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca ptr, align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::allocator", align 1
  %68 = alloca ptr, align 8
  %69 = alloca i8, align 1
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::allocator", align 1
  %75 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::allocator", align 1
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator", align 1
  %80 = alloca ptr, align 8
  %81 = alloca %"class.std::shared_ptr.178", align 8
  %82 = alloca %"class.qtorch::ContractionTools", align 8
  %83 = alloca %"class.std::shared_ptr.178", align 8
  %84 = alloca %"class.std::shared_ptr.178", align 8
  %85 = alloca %"class.std::complex", align 8
  %86 = alloca %"class.std::complex", align 8
  %87 = alloca ptr, align 8
  %88 = alloca %"class.std::shared_ptr.178", align 8
  %89 = alloca %"struct.std::_Rb_tree_iterator.235", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::allocator", align 1
  %92 = alloca %"struct.std::_Rb_tree_iterator.235", align 8
  %93 = alloca %"class.qtorch::ContractionTools", align 8
  %94 = alloca %"class.std::shared_ptr.178", align 8
  %95 = alloca %"class.std::shared_ptr.178", align 8
  %96 = alloca %"class.std::complex", align 8
  %97 = alloca %"class.std::complex", align 8
  %98 = alloca ptr, align 8
  %99 = alloca %"class.qtorch::ContractionTools", align 8
  %100 = alloca %"class.std::shared_ptr.178", align 8
  %101 = alloca %"class.std::shared_ptr.178", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::allocator", align 1
  %104 = alloca %"class.std::complex", align 8
  %105 = alloca %"class.std::complex", align 8
  %106 = alloca ptr, align 8
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  %111 = load i32, ptr %4, align 4, !tbaa !5
  %112 = icmp slt i32 %111, 2
  br i1 %112, label %113, label %115

113:                                              ; preds = %2
  %114 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.86)
  store i32 -1, ptr %3, align 4
  br label %1295

115:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 192, ptr %6) #10
  call void @_ZN6qtorch10leviParserC2Ev(ptr noundef nonnull align 8 dereferenceable(192) %6)
  invoke void @_Z16setInpDefaultsTNRN6qtorch10leviParserE(ptr noundef nonnull align 8 dereferenceable(192) %6)
          to label %116 unwind label %174

116:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #10
  %117 = load ptr, ptr %5, align 8, !tbaa !9
  %118 = getelementptr inbounds ptr, ptr %117, i64 1
  %119 = load ptr, ptr %118, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef %119, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %120 unwind label %178

120:                                              ; preds = %116
  %121 = invoke noundef zeroext i1 @_ZN6qtorch10leviParser13readInputFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(192) %6, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %122 unwind label %182

122:                                              ; preds = %120
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #10
  %123 = call i32 @mkdir(ptr noundef @.str.56, i32 noundef 493) #10
  %124 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.87)
          to label %125 unwind label %174

125:                                              ; preds = %122
  %126 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.88, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %127 unwind label %187

127:                                              ; preds = %125
  %128 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %126, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %129 unwind label %191

129:                                              ; preds = %127
  %130 = 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) %124, ptr noundef nonnull align 8 dereferenceable(32) %128)
          to label %131 unwind label %191

131:                                              ; preds = %129
  %132 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %130, ptr noundef @.str.80)
          to label %133 unwind label %191

133:                                              ; preds = %131
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #10
  %134 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.89)
          to label %135 unwind label %174

135:                                              ; preds = %133
  %136 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.90, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %137 unwind label %196

137:                                              ; preds = %135
  %138 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %136, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %139 unwind label %200

139:                                              ; preds = %137
  %140 = 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) %134, ptr noundef nonnull align 8 dereferenceable(32) %138)
          to label %141 unwind label %200

141:                                              ; preds = %139
  %142 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef @.str.80)
          to label %143 unwind label %200

143:                                              ; preds = %141
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #10
  %144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.91)
          to label %145 unwind label %174

145:                                              ; preds = %143
  %146 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.92, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %147 unwind label %205

147:                                              ; preds = %145
  %148 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %146, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %149 unwind label %209

149:                                              ; preds = %147
  %150 = 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) %144, ptr noundef nonnull align 8 dereferenceable(32) %148)
          to label %151 unwind label %209

151:                                              ; preds = %149
  %152 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef @.str.80)
          to label %153 unwind label %209

153:                                              ; preds = %151
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #10
  call void @llvm.lifetime.start.p0(i64 512, ptr %17) #10
  %154 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.92, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %155 unwind label %214

155:                                              ; preds = %153
  %156 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %154, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %157 unwind label %218

157:                                              ; preds = %155
  invoke void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(248) %17, ptr noundef nonnull align 8 dereferenceable(32) %156, i32 noundef 16)
          to label %158 unwind label %218

158:                                              ; preds = %157
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #10
  %159 = load ptr, ptr %17, align 8, !tbaa !11
  %160 = getelementptr i8, ptr %159, i64 -24
  %161 = load i64, ptr %160, align 8
  %162 = getelementptr inbounds i8, ptr %17, i64 %161
  %163 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %162)
          to label %164 unwind label %223

164:                                              ; preds = %158
  br i1 %163, label %165, label %227

165:                                              ; preds = %164
  %166 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.93)
          to label %167 unwind label %223

167:                                              ; preds = %165
  %168 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %166, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %169 unwind label %223

169:                                              ; preds = %167
  %170 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef @.str.93)
          to label %171 unwind label %223

171:                                              ; preds = %169
  %172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %170, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %173 unwind label %223

173:                                              ; preds = %171
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %20, align 4
  br label %1291

174:                                              ; preds = %143, %133, %122, %115
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %7, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %8, align 4
  br label %1294

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

182:                                              ; preds = %120
  %183 = landingpad { ptr, i32 }
          cleanup
  %184 = extractvalue { ptr, i32 } %183, 0
  store ptr %184, ptr %7, align 8
  %185 = extractvalue { ptr, i32 } %183, 1
  store i32 %185, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  br label %186

186:                                              ; preds = %182, %178
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #10
  br label %1294

187:                                              ; preds = %125
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %7, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %8, align 4
  br label %195

191:                                              ; preds = %131, %129, %127
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %7, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  br label %195

195:                                              ; preds = %191, %187
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #10
  br label %1294

196:                                              ; preds = %135
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %7, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %8, align 4
  br label %204

200:                                              ; preds = %141, %139, %137
  %201 = landingpad { ptr, i32 }
          cleanup
  %202 = extractvalue { ptr, i32 } %201, 0
  store ptr %202, ptr %7, align 8
  %203 = extractvalue { ptr, i32 } %201, 1
  store i32 %203, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  br label %204

204:                                              ; preds = %200, %196
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #10
  br label %1294

205:                                              ; preds = %145
  %206 = landingpad { ptr, i32 }
          cleanup
  %207 = extractvalue { ptr, i32 } %206, 0
  store ptr %207, ptr %7, align 8
  %208 = extractvalue { ptr, i32 } %206, 1
  store i32 %208, ptr %8, align 4
  br label %213

209:                                              ; preds = %151, %149, %147
  %210 = landingpad { ptr, i32 }
          cleanup
  %211 = extractvalue { ptr, i32 } %210, 0
  store ptr %211, ptr %7, align 8
  %212 = extractvalue { ptr, i32 } %210, 1
  store i32 %212, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #10
  br label %213

213:                                              ; preds = %209, %205
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #10
  br label %1294

214:                                              ; preds = %153
  %215 = landingpad { ptr, i32 }
          cleanup
  %216 = extractvalue { ptr, i32 } %215, 0
  store ptr %216, ptr %7, align 8
  %217 = extractvalue { ptr, i32 } %215, 1
  store i32 %217, ptr %8, align 4
  br label %222

218:                                              ; preds = %157, %155
  %219 = landingpad { ptr, i32 }
          cleanup
  %220 = extractvalue { ptr, i32 } %219, 0
  store ptr %220, ptr %7, align 8
  %221 = extractvalue { ptr, i32 } %219, 1
  store i32 %221, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #10
  br label %222

222:                                              ; preds = %218, %214
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #10
  br label %1293

223:                                              ; preds = %171, %169, %167, %165, %158
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %7, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %8, align 4
  br label %1292

227:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #10
  call void @_ZNSt10shared_ptrIN6qtorch7NetworkEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #10
  %228 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.88, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %229 unwind label %240

229:                                              ; preds = %227
  %230 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %228, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %231 unwind label %244

231:                                              ; preds = %229
  %232 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %230) #10
  store ptr %232, ptr %23, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #10
  %233 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef @.str.90, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %234 unwind label %248

234:                                              ; preds = %231
  %235 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %233, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %236 unwind label %252

236:                                              ; preds = %234
  %237 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %235) #10
  store ptr %237, ptr %26, align 8, !tbaa !9
  invoke void @_ZSt11make_sharedIN6qtorch7NetworkEJPKcS3_EESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES6_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.178") align 8 %22, ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %238 unwind label %252

238:                                              ; preds = %236
  %239 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch7NetworkEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef nonnull align 8 dereferenceable(16) %22) #10
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #10
  br label %295

240:                                              ; preds = %227
  %241 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %7, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %8, align 4
  br label %258

244:                                              ; preds = %229
  %245 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %7, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %8, align 4
  br label %257

248:                                              ; preds = %231
  %249 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %7, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %8, align 4
  br label %256

252:                                              ; preds = %236, %234
  %253 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %7, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  br label %256

256:                                              ; preds = %252, %248
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  br label %257

257:                                              ; preds = %256, %244
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  br label %258

258:                                              ; preds = %257, %240
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #10
  br label %259

259:                                              ; preds = %258
  %260 = load i32, ptr %8, align 4
  %261 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #10
  %262 = icmp eq i32 %260, %261
  br i1 %262, label %263, label %1290

263:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #10
  %264 = load ptr, ptr %7, align 8
  %265 = call ptr @__cxa_begin_catch(ptr %264) #10
  store ptr %265, ptr %29, align 8
  %266 = load ptr, ptr %29, align 8, !tbaa !9
  %267 = load ptr, ptr %266, align 8, !tbaa !11
  %268 = getelementptr inbounds ptr, ptr %267, i64 2
  %269 = load ptr, ptr %268, align 8
  %270 = call noundef ptr %269(ptr noundef nonnull align 8 dereferenceable(8) %266) #10
  %271 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %270)
          to label %272 unwind label %284

272:                                              ; preds = %263
  %273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %271, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %274 unwind label %284

274:                                              ; preds = %272
  %275 = load ptr, ptr %29, align 8, !tbaa !9
  %276 = load ptr, ptr %275, align 8, !tbaa !11
  %277 = getelementptr inbounds ptr, ptr %276, i64 2
  %278 = load ptr, ptr %277, align 8
  %279 = call noundef ptr %278(ptr noundef nonnull align 8 dereferenceable(8) %275) #10
  %280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef %279)
          to label %281 unwind label %284

281:                                              ; preds = %274
  %282 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %280, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %283 unwind label %284

283:                                              ; preds = %281
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %20, align 4
  invoke void @__cxa_end_catch()
          to label %288 unwind label %289

284:                                              ; preds = %281, %274, %272, %263
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %7, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %293 unwind label %1302

288:                                              ; preds = %283
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  br label %1289

289:                                              ; preds = %283
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %7, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %8, align 4
  br label %294

293:                                              ; preds = %284
  br label %294

294:                                              ; preds = %293, %289
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  br label %1290

295:                                              ; preds = %238
  %296 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.94)
          to label %297 unwind label %340

297:                                              ; preds = %295
  %298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %296, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %299 unwind label %340

299:                                              ; preds = %297
  %300 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #10
  store i1 false, ptr %33, align 1
  store i1 false, ptr %35, align 1
  store i1 false, ptr %36, align 1
  store i1 false, ptr %37, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.95, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %301 unwind label %344

301:                                              ; preds = %299
  %302 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %300, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %303 unwind label %348

303:                                              ; preds = %301
  %304 = load i32, ptr %302, align 4, !tbaa !5
  %305 = icmp sle i32 %304, 0
  br i1 %305, label %315, label %306

306:                                              ; preds = %303
  %307 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #10
  store i1 true, ptr %33, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #10
  store i1 true, ptr %35, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #10
  store i1 true, ptr %36, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef @.str.95, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %308 unwind label %352

308:                                              ; preds = %306
  store i1 true, ptr %37, align 1
  %309 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %307, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %310 unwind label %356

310:                                              ; preds = %308
  %311 = load i32, ptr %309, align 4, !tbaa !5
  %312 = sitofp i32 %311 to double
  %313 = call double @pow(double noundef 4.000000e+00, double noundef 8.000000e+00) #10
  %314 = fcmp ogt double %312, %313
  br label %315

315:                                              ; preds = %310, %303
  %316 = phi i1 [ true, %303 ], [ %314, %310 ]
  %317 = load i1, ptr %37, align 1
  br i1 %317, label %318, label %319

318:                                              ; preds = %315
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  br label %319

319:                                              ; preds = %318, %315
  %320 = load i1, ptr %36, align 1
  br i1 %320, label %321, label %322

321:                                              ; preds = %319
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #10
  br label %322

322:                                              ; preds = %321, %319
  %323 = load i1, ptr %35, align 1
  br i1 %323, label %324, label %325

324:                                              ; preds = %322
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #10
  br label %325

325:                                              ; preds = %324, %322
  %326 = load i1, ptr %33, align 1
  br i1 %326, label %327, label %328

327:                                              ; preds = %325
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #10
  br label %328

328:                                              ; preds = %327, %325
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #10
  br i1 %316, label %329, label %384

329:                                              ; preds = %328
  %330 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.96)
          to label %331 unwind label %340

331:                                              ; preds = %329
  %332 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.97)
          to label %333 unwind label %340

333:                                              ; preds = %331
  %334 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %332, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %335 unwind label %340

335:                                              ; preds = %333
  %336 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @.str.95, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %337 unwind label %375

337:                                              ; preds = %335
  %338 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %336, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %339 unwind label %379

339:                                              ; preds = %337
  store i32 2, ptr %338, align 4, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #10
  br label %384

340:                                              ; preds = %403, %400, %384, %333, %331, %329, %297, %295
  %341 = landingpad { ptr, i32 }
          cleanup
  %342 = extractvalue { ptr, i32 } %341, 0
  store ptr %342, ptr %7, align 8
  %343 = extractvalue { ptr, i32 } %341, 1
  store i32 %343, ptr %8, align 4
  br label %1290

344:                                              ; preds = %299
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %7, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %8, align 4
  br label %374

348:                                              ; preds = %301
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %7, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %8, align 4
  br label %373

352:                                              ; preds = %306
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %7, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %8, align 4
  br label %363

356:                                              ; preds = %308
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %7, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %8, align 4
  %360 = load i1, ptr %37, align 1
  br i1 %360, label %361, label %362

361:                                              ; preds = %356
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  br label %362

362:                                              ; preds = %361, %356
  br label %363

363:                                              ; preds = %362, %352
  %364 = load i1, ptr %36, align 1
  br i1 %364, label %365, label %366

365:                                              ; preds = %363
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #10
  br label %366

366:                                              ; preds = %365, %363
  %367 = load i1, ptr %35, align 1
  br i1 %367, label %368, label %369

368:                                              ; preds = %366
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #10
  br label %369

369:                                              ; preds = %368, %366
  %370 = load i1, ptr %33, align 1
  br i1 %370, label %371, label %372

371:                                              ; preds = %369
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #10
  br label %372

372:                                              ; preds = %371, %369
  br label %373

373:                                              ; preds = %372, %348
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #10
  br label %374

374:                                              ; preds = %373, %344
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #10
  br label %1290

375:                                              ; preds = %335
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %7, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %8, align 4
  br label %383

379:                                              ; preds = %337
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %7, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  br label %383

383:                                              ; preds = %379, %375
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #10
  br label %1290

384:                                              ; preds = %339, %328
  %385 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.98)
          to label %386 unwind label %340

386:                                              ; preds = %384
  %387 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.95, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %388 unwind label %477

388:                                              ; preds = %386
  %389 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %387, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %390 unwind label %481

390:                                              ; preds = %388
  %391 = load i32, ptr %389, align 4, !tbaa !5
  %392 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %385, i32 noundef %391)
          to label %393 unwind label %481

393:                                              ; preds = %390
  %394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %392, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %395 unwind label %481

395:                                              ; preds = %393
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #10
  %396 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  %397 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef @.str.95, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %398 unwind label %486

398:                                              ; preds = %395
  %399 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %397, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %400 unwind label %490

400:                                              ; preds = %398
  %401 = load i32, ptr %399, align 4, !tbaa !5
  call void @_ZN6qtorch7Network13SetNumThreadsEi(ptr noundef nonnull align 8 dereferenceable(380) %396, i32 noundef %401) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #10
  %402 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.99)
          to label %403 unwind label %340

403:                                              ; preds = %400
  %404 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %402, ptr noundef @.str.75)
          to label %405 unwind label %340

405:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 24, ptr %44) #10
  invoke void @_ZN6qtorch5TimerC2Ev(ptr noundef nonnull align 8 dereferenceable(17) %44)
          to label %406 unwind label %495

406:                                              ; preds = %405
  call void @_ZN6qtorch5Timer5startEv(ptr noundef nonnull align 8 dereferenceable(17) %44)
  %407 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  invoke void @_ZN6qtorch7Network13ReduceCircuitEv(ptr noundef nonnull align 8 dereferenceable(380) %407)
          to label %408 unwind label %495

408:                                              ; preds = %406
  %409 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.100)
          to label %410 unwind label %495

410:                                              ; preds = %408
  %411 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %409, ptr noundef @.str.101)
          to label %412 unwind label %495

412:                                              ; preds = %410
  %413 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.102)
          to label %414 unwind label %495

414:                                              ; preds = %412
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #10
  %415 = invoke noundef double @_ZN6qtorch5Timer10getElapsedEv(ptr noundef nonnull align 8 dereferenceable(17) %44)
          to label %416 unwind label %499

416:                                              ; preds = %414
  invoke void @_Z13formattedTimeB5cxx11d(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, double noundef %415)
          to label %417 unwind label %499

417:                                              ; preds = %416
  %418 = 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) %413, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %419 unwind label %503

419:                                              ; preds = %417
  %420 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %418, ptr noundef @.str.75)
          to label %421 unwind label %503

421:                                              ; preds = %419
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #10
  store i8 0, ptr %46, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #10
  %422 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.103, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %423 unwind label %508

423:                                              ; preds = %421
  %424 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %422, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %425 unwind label %512

425:                                              ; preds = %423
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %424)
          to label %426 unwind label %512

426:                                              ; preds = %425
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #10
  %427 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.104)
          to label %428 unwind label %517

428:                                              ; preds = %426
  %429 = 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) %427, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %430 unwind label %517

430:                                              ; preds = %428
  %431 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %429, ptr noundef @.str.80)
          to label %432 unwind label %517

432:                                              ; preds = %430
  %433 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.105)
          to label %434 unwind label %517

434:                                              ; preds = %432
  br i1 %433, label %435, label %865

435:                                              ; preds = %434
  %436 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.106)
          to label %437 unwind label %517

437:                                              ; preds = %435
  call void @llvm.lifetime.start.p0(i64 160, ptr %50) #10
  call void @_ZNSt10shared_ptrIN6qtorch7NetworkEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %51, ptr noundef nonnull align 8 dereferenceable(16) %21) #10
  invoke void @_ZN6qtorch9LineGraphC1ESt10shared_ptrINS_7NetworkEE(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef %51)
          to label %438 unwind label %521

438:                                              ; preds = %437
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #10
  %439 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.107, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %440 unwind label %525

440:                                              ; preds = %438
  %441 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %439, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %442 unwind label %529

442:                                              ; preds = %440
  %443 = load i8, ptr %441, align 1, !tbaa !13, !range !15, !noundef !16
  %444 = trunc i8 %443 to i1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #10
  br i1 %444, label %445, label %628

445:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #10
  store i8 1, ptr %54, align 1, !tbaa !13
  %446 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.108)
          to label %447 unwind label %534

447:                                              ; preds = %445
  %448 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.109)
          to label %449 unwind label %534

449:                                              ; preds = %447
  %450 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %451 unwind label %538

451:                                              ; preds = %449
  %452 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %450, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %453 unwind label %542

453:                                              ; preds = %451
  %454 = load i32, ptr %452, align 4, !tbaa !5
  %455 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %448, i32 noundef %454)
          to label %456 unwind label %542

456:                                              ; preds = %453
  %457 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %455, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %458 unwind label %542

458:                                              ; preds = %456
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #10
  %459 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %460 unwind label %547

460:                                              ; preds = %458
  %461 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEE4findERS9_(ptr noundef nonnull align 8 dereferenceable(48) %459, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %462 unwind label %551

462:                                              ; preds = %460
  %463 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %57, i32 0, i32 0
  store ptr %461, ptr %463, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #10
  %464 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 1
  %465 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %464) #10
  %466 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %60, i32 0, i32 0
  store ptr %465, ptr %466, align 8
  %467 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbEESB_(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull align 8 dereferenceable(8) %60) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  br i1 %467, label %468, label %566

468:                                              ; preds = %462
  %469 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %470 unwind label %556

470:                                              ; preds = %468
  %471 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %469, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %472 unwind label %560

472:                                              ; preds = %470
  %473 = load i8, ptr %471, align 1, !tbaa !13, !range !15, !noundef !16
  %474 = trunc i8 %473 to i1
  %475 = xor i1 %474, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #10
  br i1 %475, label %476, label %565

476:                                              ; preds = %472
  store i8 0, ptr %54, align 1, !tbaa !13
  br label %565

477:                                              ; preds = %386
  %478 = landingpad { ptr, i32 }
          cleanup
  %479 = extractvalue { ptr, i32 } %478, 0
  store ptr %479, ptr %7, align 8
  %480 = extractvalue { ptr, i32 } %478, 1
  store i32 %480, ptr %8, align 4
  br label %485

481:                                              ; preds = %393, %390, %388
  %482 = landingpad { ptr, i32 }
          cleanup
  %483 = extractvalue { ptr, i32 } %482, 0
  store ptr %483, ptr %7, align 8
  %484 = extractvalue { ptr, i32 } %482, 1
  store i32 %484, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  br label %485

485:                                              ; preds = %481, %477
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #10
  br label %1290

486:                                              ; preds = %395
  %487 = landingpad { ptr, i32 }
          cleanup
  %488 = extractvalue { ptr, i32 } %487, 0
  store ptr %488, ptr %7, align 8
  %489 = extractvalue { ptr, i32 } %487, 1
  store i32 %489, ptr %8, align 4
  br label %494

490:                                              ; preds = %398
  %491 = landingpad { ptr, i32 }
          cleanup
  %492 = extractvalue { ptr, i32 } %491, 0
  store ptr %492, ptr %7, align 8
  %493 = extractvalue { ptr, i32 } %491, 1
  store i32 %493, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  br label %494

494:                                              ; preds = %490, %486
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #10
  br label %1290

495:                                              ; preds = %412, %410, %408, %406, %405
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %7, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %8, align 4
  br label %1288

499:                                              ; preds = %416, %414
  %500 = landingpad { ptr, i32 }
          cleanup
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %7, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %8, align 4
  br label %507

503:                                              ; preds = %419, %417
  %504 = landingpad { ptr, i32 }
          cleanup
  %505 = extractvalue { ptr, i32 } %504, 0
  store ptr %505, ptr %7, align 8
  %506 = extractvalue { ptr, i32 } %504, 1
  store i32 %506, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #10
  br label %507

507:                                              ; preds = %503, %499
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #10
  br label %1288

508:                                              ; preds = %421
  %509 = landingpad { ptr, i32 }
          cleanup
  %510 = extractvalue { ptr, i32 } %509, 0
  store ptr %510, ptr %7, align 8
  %511 = extractvalue { ptr, i32 } %509, 1
  store i32 %511, ptr %8, align 4
  br label %516

512:                                              ; preds = %425, %423
  %513 = landingpad { ptr, i32 }
          cleanup
  %514 = extractvalue { ptr, i32 } %513, 0
  store ptr %514, ptr %7, align 8
  %515 = extractvalue { ptr, i32 } %513, 1
  store i32 %515, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #10
  br label %516

516:                                              ; preds = %512, %508
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #10
  br label %1287

517:                                              ; preds = %1256, %1247, %1219, %1210, %1208, %1204, %1202, %1200, %1196, %1194, %1186, %962, %865, %435, %432, %430, %428, %426
  %518 = landingpad { ptr, i32 }
          cleanup
  %519 = extractvalue { ptr, i32 } %518, 0
  store ptr %519, ptr %7, align 8
  %520 = extractvalue { ptr, i32 } %518, 1
  store i32 %520, ptr %8, align 4
  br label %1286

521:                                              ; preds = %437
  %522 = landingpad { ptr, i32 }
          cleanup
  %523 = extractvalue { ptr, i32 } %522, 0
  store ptr %523, ptr %7, align 8
  %524 = extractvalue { ptr, i32 } %522, 1
  store i32 %524, ptr %8, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #10
  br label %864

525:                                              ; preds = %438
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %7, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %8, align 4
  br label %533

529:                                              ; preds = %440
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %7, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  br label %533

533:                                              ; preds = %529, %525
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #10
  br label %863

534:                                              ; preds = %578, %575, %447, %445
  %535 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %536 = extractvalue { ptr, i32 } %535, 0
  store ptr %536, ptr %7, align 8
  %537 = extractvalue { ptr, i32 } %535, 1
  store i32 %537, ptr %8, align 4
  br label %590

538:                                              ; preds = %449
  %539 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %7, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %8, align 4
  br label %546

542:                                              ; preds = %456, %453, %451
  %543 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %544 = extractvalue { ptr, i32 } %543, 0
  store ptr %544, ptr %7, align 8
  %545 = extractvalue { ptr, i32 } %543, 1
  store i32 %545, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  br label %546

546:                                              ; preds = %542, %538
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #10
  br label %590

547:                                              ; preds = %458
  %548 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %549 = extractvalue { ptr, i32 } %548, 0
  store ptr %549, ptr %7, align 8
  %550 = extractvalue { ptr, i32 } %548, 1
  store i32 %550, ptr %8, align 4
  br label %555

551:                                              ; preds = %460
  %552 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %553 = extractvalue { ptr, i32 } %552, 0
  store ptr %553, ptr %7, align 8
  %554 = extractvalue { ptr, i32 } %552, 1
  store i32 %554, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  br label %555

555:                                              ; preds = %551, %547
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  br label %590

556:                                              ; preds = %468
  %557 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %558 = extractvalue { ptr, i32 } %557, 0
  store ptr %558, ptr %7, align 8
  %559 = extractvalue { ptr, i32 } %557, 1
  store i32 %559, ptr %8, align 4
  br label %564

560:                                              ; preds = %470
  %561 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %562 = extractvalue { ptr, i32 } %561, 0
  store ptr %562, ptr %7, align 8
  %563 = extractvalue { ptr, i32 } %561, 1
  store i32 %563, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #10
  br label %564

564:                                              ; preds = %560, %556
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #10
  br label %590

565:                                              ; preds = %476, %472
  br label %566

566:                                              ; preds = %565, %462
  %567 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %568 unwind label %581

568:                                              ; preds = %566
  %569 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %567, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %570 unwind label %585

570:                                              ; preds = %568
  %571 = load i32, ptr %569, align 4, !tbaa !5
  %572 = load i8, ptr %54, align 1, !tbaa !13, !range !15, !noundef !16
  %573 = trunc i8 %572 to i1
  %574 = invoke noundef zeroext i1 @_ZN6qtorch9LineGraph10runQuickBBEiPNS_5TimerEb(ptr noundef nonnull align 8 dereferenceable(160) %50, i32 noundef %571, ptr noundef %44, i1 noundef zeroext %573)
          to label %575 unwind label %585

575:                                              ; preds = %570
  %576 = zext i1 %574 to i8
  store i8 %576, ptr %46, align 1, !tbaa !13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #10
  %577 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.112)
          to label %578 unwind label %534

578:                                              ; preds = %575
  %579 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.113)
          to label %580 unwind label %534

580:                                              ; preds = %578
  store i32 0, ptr %3, align 4
  store i32 1, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #10
  br label %860

581:                                              ; preds = %566
  %582 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %7, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %8, align 4
  br label %589

585:                                              ; preds = %570, %568
  %586 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %7, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #10
  br label %589

589:                                              ; preds = %585, %581
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #10
  br label %590

590:                                              ; preds = %589, %564, %555, %546, %534
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #10
  br label %591

591:                                              ; preds = %590
  %592 = load i32, ptr %8, align 4
  %593 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #10
  %594 = icmp eq i32 %592, %593
  br i1 %594, label %595, label %863

595:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #10
  %596 = load ptr, ptr %7, align 8
  %597 = call ptr @__cxa_begin_catch(ptr %596) #10
  store ptr %597, ptr %65, align 8
  %598 = load ptr, ptr %65, align 8, !tbaa !9
  %599 = load ptr, ptr %598, align 8, !tbaa !11
  %600 = getelementptr inbounds ptr, ptr %599, i64 2
  %601 = load ptr, ptr %600, align 8
  %602 = call noundef ptr %601(ptr noundef nonnull align 8 dereferenceable(8) %598) #10
  %603 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %602)
          to label %604 unwind label %618

604:                                              ; preds = %595
  %605 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %603, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %606 unwind label %618

606:                                              ; preds = %604
  %607 = load ptr, ptr %65, align 8, !tbaa !9
  %608 = load ptr, ptr %607, align 8, !tbaa !11
  %609 = getelementptr inbounds ptr, ptr %608, i64 2
  %610 = load ptr, ptr %609, align 8
  %611 = call noundef ptr %610(ptr noundef nonnull align 8 dereferenceable(8) %607) #10
  %612 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef %611)
          to label %613 unwind label %618

613:                                              ; preds = %606
  %614 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %612, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %615 unwind label %618

615:                                              ; preds = %613
  invoke void @__cxa_end_catch()
          to label %616 unwind label %622

616:                                              ; preds = %615
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  br label %617

617:                                              ; preds = %616
  br label %859

618:                                              ; preds = %613, %606, %604, %595
  %619 = landingpad { ptr, i32 }
          cleanup
  %620 = extractvalue { ptr, i32 } %619, 0
  store ptr %620, ptr %7, align 8
  %621 = extractvalue { ptr, i32 } %619, 1
  store i32 %621, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %626 unwind label %1302

622:                                              ; preds = %615
  %623 = landingpad { ptr, i32 }
          cleanup
  %624 = extractvalue { ptr, i32 } %623, 0
  store ptr %624, ptr %7, align 8
  %625 = extractvalue { ptr, i32 } %623, 1
  store i32 %625, ptr %8, align 4
  br label %627

626:                                              ; preds = %618
  br label %627

627:                                              ; preds = %626, %622
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  br label %863

628:                                              ; preds = %442
  %629 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.114, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %630 unwind label %641

630:                                              ; preds = %628
  %631 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %629, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %632 unwind label %645

632:                                              ; preds = %630
  %633 = load i8, ptr %631, align 1, !tbaa !13, !range !15, !noundef !16
  %634 = trunc i8 %633 to i1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #10
  br i1 %634, label %635, label %715

635:                                              ; preds = %632
  %636 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.115)
          to label %637 unwind label %650

637:                                              ; preds = %635
  %638 = invoke noundef zeroext i1 @_ZN6qtorch9LineGraph10LGContractEv(ptr noundef nonnull align 8 dereferenceable(160) %50)
          to label %639 unwind label %650

639:                                              ; preds = %637
  %640 = zext i1 %638 to i8
  store i8 %640, ptr %46, align 1, !tbaa !13
  br label %680

641:                                              ; preds = %628
  %642 = landingpad { ptr, i32 }
          cleanup
  %643 = extractvalue { ptr, i32 } %642, 0
  store ptr %643, ptr %7, align 8
  %644 = extractvalue { ptr, i32 } %642, 1
  store i32 %644, ptr %8, align 4
  br label %649

645:                                              ; preds = %630
  %646 = landingpad { ptr, i32 }
          cleanup
  %647 = extractvalue { ptr, i32 } %646, 0
  store ptr %647, ptr %7, align 8
  %648 = extractvalue { ptr, i32 } %646, 1
  store i32 %648, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #10
  br label %649

649:                                              ; preds = %645, %641
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #10
  br label %863

650:                                              ; preds = %637, %635
  %651 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %652 = extractvalue { ptr, i32 } %651, 0
  store ptr %652, ptr %7, align 8
  %653 = extractvalue { ptr, i32 } %651, 1
  store i32 %653, ptr %8, align 4
  br label %654

654:                                              ; preds = %650
  %655 = load i32, ptr %8, align 4
  %656 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #10
  %657 = icmp eq i32 %655, %656
  br i1 %657, label %658, label %863

658:                                              ; preds = %654
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  %659 = load ptr, ptr %7, align 8
  %660 = call ptr @__cxa_begin_catch(ptr %659) #10
  store ptr %660, ptr %68, align 8
  %661 = load ptr, ptr %68, align 8, !tbaa !9
  %662 = load ptr, ptr %661, align 8, !tbaa !11
  %663 = getelementptr inbounds ptr, ptr %662, i64 2
  %664 = load ptr, ptr %663, align 8
  %665 = call noundef ptr %664(ptr noundef nonnull align 8 dereferenceable(8) %661) #10
  %666 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %665)
          to label %667 unwind label %700

667:                                              ; preds = %658
  %668 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %666, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %669 unwind label %700

669:                                              ; preds = %667
  %670 = load ptr, ptr %68, align 8, !tbaa !9
  %671 = load ptr, ptr %670, align 8, !tbaa !11
  %672 = getelementptr inbounds ptr, ptr %671, i64 2
  %673 = load ptr, ptr %672, align 8
  %674 = call noundef ptr %673(ptr noundef nonnull align 8 dereferenceable(8) %670) #10
  %675 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef %674)
          to label %676 unwind label %700

676:                                              ; preds = %669
  %677 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %675, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %678 unwind label %700

678:                                              ; preds = %676
  invoke void @__cxa_end_catch()
          to label %679 unwind label %704

679:                                              ; preds = %678
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  br label %680

680:                                              ; preds = %679, %639
  %681 = load i8, ptr %46, align 1, !tbaa !13, !range !15, !noundef !16
  %682 = trunc i8 %681 to i1
  br i1 %682, label %683, label %714

683:                                              ; preds = %680
  %684 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.116)
          to label %685 unwind label %710

685:                                              ; preds = %683
  %686 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  %687 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6qtorch7Network13GetFinalValueEv(ptr noundef nonnull align 8 dereferenceable(380) %686) #10
  %688 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %684, ptr noundef nonnull align 8 dereferenceable(16) %687)
          to label %689 unwind label %710

689:                                              ; preds = %685
  %690 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %688, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %691 unwind label %710

691:                                              ; preds = %689
  %692 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef @.str.117)
          to label %693 unwind label %710

693:                                              ; preds = %691
  %694 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  %695 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6qtorch7Network13GetFinalValueEv(ptr noundef nonnull align 8 dereferenceable(380) %694) #10
  %696 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %692, ptr noundef nonnull align 8 dereferenceable(16) %695)
          to label %697 unwind label %710

697:                                              ; preds = %693
  %698 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %696, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %699 unwind label %710

699:                                              ; preds = %697
  br label %714

700:                                              ; preds = %676, %669, %667, %658
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %7, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %708 unwind label %1302

704:                                              ; preds = %678
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %7, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %8, align 4
  br label %709

708:                                              ; preds = %700
  br label %709

709:                                              ; preds = %708, %704
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  br label %863

710:                                              ; preds = %844, %840, %838, %836, %832, %830, %697, %693, %691, %689, %685, %683
  %711 = landingpad { ptr, i32 }
          cleanup
  %712 = extractvalue { ptr, i32 } %711, 0
  store ptr %712, ptr %7, align 8
  %713 = extractvalue { ptr, i32 } %711, 1
  store i32 %713, ptr %8, align 4
  br label %863

714:                                              ; preds = %699, %680
  br label %858

715:                                              ; preds = %632
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #10
  store i8 1, ptr %69, align 1, !tbaa !13
  %716 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.109)
          to label %717 unwind label %745

717:                                              ; preds = %715
  %718 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %719 unwind label %749

719:                                              ; preds = %717
  %720 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %718, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %721 unwind label %753

721:                                              ; preds = %719
  %722 = load i32, ptr %720, align 4, !tbaa !5
  %723 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %716, i32 noundef %722)
          to label %724 unwind label %753

724:                                              ; preds = %721
  %725 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %723, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %726 unwind label %753

726:                                              ; preds = %724
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #10
  %727 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %728 unwind label %758

728:                                              ; preds = %726
  %729 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEE4findERS9_(ptr noundef nonnull align 8 dereferenceable(48) %727, ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %730 unwind label %762

730:                                              ; preds = %728
  %731 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %72, i32 0, i32 0
  store ptr %729, ptr %731, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #10
  %732 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 1
  %733 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %732) #10
  %734 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %75, i32 0, i32 0
  store ptr %733, ptr %734, align 8
  %735 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbEESB_(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  br i1 %735, label %736, label %777

736:                                              ; preds = %730
  %737 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %738 unwind label %767

738:                                              ; preds = %736
  %739 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %737, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %740 unwind label %771

740:                                              ; preds = %738
  %741 = load i8, ptr %739, align 1, !tbaa !13, !range !15, !noundef !16
  %742 = trunc i8 %741 to i1
  %743 = xor i1 %742, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #10
  br i1 %743, label %744, label %776

744:                                              ; preds = %740
  store i8 0, ptr %69, align 1, !tbaa !13
  br label %776

745:                                              ; preds = %786, %715
  %746 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %7, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %8, align 4
  br label %800

749:                                              ; preds = %717
  %750 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %7, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %8, align 4
  br label %757

753:                                              ; preds = %724, %721, %719
  %754 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %7, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #10
  br label %757

757:                                              ; preds = %753, %749
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #10
  br label %800

758:                                              ; preds = %726
  %759 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %760 = extractvalue { ptr, i32 } %759, 0
  store ptr %760, ptr %7, align 8
  %761 = extractvalue { ptr, i32 } %759, 1
  store i32 %761, ptr %8, align 4
  br label %766

762:                                              ; preds = %728
  %763 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %764 = extractvalue { ptr, i32 } %763, 0
  store ptr %764, ptr %7, align 8
  %765 = extractvalue { ptr, i32 } %763, 1
  store i32 %765, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #10
  br label %766

766:                                              ; preds = %762, %758
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  br label %800

767:                                              ; preds = %736
  %768 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %769 = extractvalue { ptr, i32 } %768, 0
  store ptr %769, ptr %7, align 8
  %770 = extractvalue { ptr, i32 } %768, 1
  store i32 %770, ptr %8, align 4
  br label %775

771:                                              ; preds = %738
  %772 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %773 = extractvalue { ptr, i32 } %772, 0
  store ptr %773, ptr %7, align 8
  %774 = extractvalue { ptr, i32 } %772, 1
  store i32 %774, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #10
  br label %775

775:                                              ; preds = %771, %767
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #10
  br label %800

776:                                              ; preds = %744, %740
  br label %777

777:                                              ; preds = %776, %730
  %778 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %779 unwind label %791

779:                                              ; preds = %777
  %780 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %778, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %781 unwind label %795

781:                                              ; preds = %779
  %782 = load i32, ptr %780, align 4, !tbaa !5
  %783 = load i8, ptr %69, align 1, !tbaa !13, !range !15, !noundef !16
  %784 = trunc i8 %783 to i1
  %785 = invoke noundef zeroext i1 @_ZN6qtorch9LineGraph10runQuickBBEiPNS_5TimerEb(ptr noundef nonnull align 8 dereferenceable(160) %50, i32 noundef %782, ptr noundef %44, i1 noundef zeroext %784)
          to label %786 unwind label %795

786:                                              ; preds = %781
  %787 = zext i1 %785 to i8
  store i8 %787, ptr %46, align 1, !tbaa !13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #10
  %788 = invoke noundef zeroext i1 @_ZN6qtorch9LineGraph10LGContractEv(ptr noundef nonnull align 8 dereferenceable(160) %50)
          to label %789 unwind label %745

789:                                              ; preds = %786
  %790 = zext i1 %788 to i8
  store i8 %790, ptr %46, align 1, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #10
  br label %827

791:                                              ; preds = %777
  %792 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %793 = extractvalue { ptr, i32 } %792, 0
  store ptr %793, ptr %7, align 8
  %794 = extractvalue { ptr, i32 } %792, 1
  store i32 %794, ptr %8, align 4
  br label %799

795:                                              ; preds = %781, %779
  %796 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %797 = extractvalue { ptr, i32 } %796, 0
  store ptr %797, ptr %7, align 8
  %798 = extractvalue { ptr, i32 } %796, 1
  store i32 %798, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #10
  br label %799

799:                                              ; preds = %795, %791
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #10
  br label %800

800:                                              ; preds = %799, %775, %766, %757, %745
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #10
  br label %801

801:                                              ; preds = %800
  %802 = load i32, ptr %8, align 4
  %803 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #10
  %804 = icmp eq i32 %802, %803
  br i1 %804, label %805, label %863

805:                                              ; preds = %801
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #10
  %806 = load ptr, ptr %7, align 8
  %807 = call ptr @__cxa_begin_catch(ptr %806) #10
  store ptr %807, ptr %80, align 8
  %808 = load ptr, ptr %80, align 8, !tbaa !9
  %809 = load ptr, ptr %808, align 8, !tbaa !11
  %810 = getelementptr inbounds ptr, ptr %809, i64 2
  %811 = load ptr, ptr %810, align 8
  %812 = call noundef ptr %811(ptr noundef nonnull align 8 dereferenceable(8) %808) #10
  %813 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %812)
          to label %814 unwind label %847

814:                                              ; preds = %805
  %815 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %813, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %816 unwind label %847

816:                                              ; preds = %814
  %817 = load ptr, ptr %80, align 8, !tbaa !9
  %818 = load ptr, ptr %817, align 8, !tbaa !11
  %819 = getelementptr inbounds ptr, ptr %818, i64 2
  %820 = load ptr, ptr %819, align 8
  %821 = call noundef ptr %820(ptr noundef nonnull align 8 dereferenceable(8) %817) #10
  %822 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef %821)
          to label %823 unwind label %847

823:                                              ; preds = %816
  %824 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %822, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %825 unwind label %847

825:                                              ; preds = %823
  invoke void @__cxa_end_catch()
          to label %826 unwind label %851

826:                                              ; preds = %825
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #10
  br label %827

827:                                              ; preds = %826, %789
  %828 = load i8, ptr %46, align 1, !tbaa !13, !range !15, !noundef !16
  %829 = trunc i8 %828 to i1
  br i1 %829, label %830, label %857

830:                                              ; preds = %827
  %831 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.117)
          to label %832 unwind label %710

832:                                              ; preds = %830
  %833 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  %834 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6qtorch7Network13GetFinalValueEv(ptr noundef nonnull align 8 dereferenceable(380) %833) #10
  %835 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %831, ptr noundef nonnull align 8 dereferenceable(16) %834)
          to label %836 unwind label %710

836:                                              ; preds = %832
  %837 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %835, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %838 unwind label %710

838:                                              ; preds = %836
  %839 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef @.str.117)
          to label %840 unwind label %710

840:                                              ; preds = %838
  %841 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  %842 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6qtorch7Network13GetFinalValueEv(ptr noundef nonnull align 8 dereferenceable(380) %841) #10
  %843 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %839, ptr noundef nonnull align 8 dereferenceable(16) %842)
          to label %844 unwind label %710

844:                                              ; preds = %840
  %845 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %843, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %846 unwind label %710

846:                                              ; preds = %844
  br label %857

847:                                              ; preds = %823, %816, %814, %805
  %848 = landingpad { ptr, i32 }
          cleanup
  %849 = extractvalue { ptr, i32 } %848, 0
  store ptr %849, ptr %7, align 8
  %850 = extractvalue { ptr, i32 } %848, 1
  store i32 %850, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %855 unwind label %1302

851:                                              ; preds = %825
  %852 = landingpad { ptr, i32 }
          cleanup
  %853 = extractvalue { ptr, i32 } %852, 0
  store ptr %853, ptr %7, align 8
  %854 = extractvalue { ptr, i32 } %852, 1
  store i32 %854, ptr %8, align 4
  br label %856

855:                                              ; preds = %847
  br label %856

856:                                              ; preds = %855, %851
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #10
  br label %863

857:                                              ; preds = %846, %827
  br label %858

858:                                              ; preds = %857, %714
  br label %859

859:                                              ; preds = %858, %617
  store i32 0, ptr %20, align 4
  br label %860

860:                                              ; preds = %859, %580
  call void @_ZN6qtorch9LineGraphD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %50) #10
  call void @llvm.lifetime.end.p0(i64 160, ptr %50) #10
  %861 = load i32, ptr %20, align 4
  switch i32 %861, label %1285 [
    i32 0, label %862
  ]

862:                                              ; preds = %860
  br label %1191

863:                                              ; preds = %856, %801, %710, %709, %654, %649, %627, %591, %533
  call void @_ZN6qtorch9LineGraphD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %50) #10
  br label %864

864:                                              ; preds = %863, %521
  call void @llvm.lifetime.end.p0(i64 160, ptr %50) #10
  br label %1286

865:                                              ; preds = %434
  %866 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.118)
          to label %867 unwind label %517

867:                                              ; preds = %865
  br i1 %866, label %868, label %962

868:                                              ; preds = %867
  call void @llvm.lifetime.start.p0(i64 16, ptr %81) #10
  call void @_ZNSt10shared_ptrIN6qtorch7NetworkEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #10
  call void @llvm.lifetime.start.p0(i64 10128, ptr %82) #10
  call void @_ZNSt10shared_ptrIN6qtorch7NetworkEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef nonnull align 8 dereferenceable(16) %21) #10
  invoke void @_ZN6qtorch16ContractionToolsC2ESt10shared_ptrINS_7NetworkEE(ptr noundef nonnull align 8 dereferenceable(10128) %82, ptr noundef %83)
          to label %869 unwind label %896

869:                                              ; preds = %868
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %84) #10
  invoke void @_ZN6qtorch16ContractionTools8ContractENS_15ContractionTypeEii(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.178") align 8 %84, ptr noundef nonnull align 8 dereferenceable(10128) %82, i32 noundef 0, i32 noundef 1, i32 noundef 1)
          to label %870 unwind label %900

870:                                              ; preds = %869
  %871 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch7NetworkEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %81, ptr noundef nonnull align 8 dereferenceable(16) %84) #10
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %84) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #10
  %872 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.79)
          to label %873 unwind label %904

873:                                              ; preds = %870
  call void @llvm.lifetime.start.p0(i64 16, ptr %85) #10
  %874 = call { double, double } @_ZN6qtorch16ContractionTools11GetFinalValEv(ptr noundef nonnull align 8 dereferenceable(10128) %82) #10
  %875 = getelementptr inbounds %"class.std::complex", ptr %85, i32 0, i32 0
  %876 = getelementptr inbounds { double, double }, ptr %875, i32 0, i32 0
  %877 = extractvalue { double, double } %874, 0
  store double %877, ptr %876, align 8
  %878 = getelementptr inbounds { double, double }, ptr %875, i32 0, i32 1
  %879 = extractvalue { double, double } %874, 1
  store double %879, ptr %878, align 8
  %880 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %872, ptr noundef nonnull align 8 dereferenceable(16) %85)
          to label %881 unwind label %908

881:                                              ; preds = %873
  %882 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %880, ptr noundef @.str.80)
          to label %883 unwind label %908

883:                                              ; preds = %881
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #10
  %884 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef @.str.117)
          to label %885 unwind label %904

885:                                              ; preds = %883
  call void @llvm.lifetime.start.p0(i64 16, ptr %86) #10
  %886 = call { double, double } @_ZN6qtorch16ContractionTools11GetFinalValEv(ptr noundef nonnull align 8 dereferenceable(10128) %82) #10
  %887 = getelementptr inbounds %"class.std::complex", ptr %86, i32 0, i32 0
  %888 = getelementptr inbounds { double, double }, ptr %887, i32 0, i32 0
  %889 = extractvalue { double, double } %886, 0
  store double %889, ptr %888, align 8
  %890 = getelementptr inbounds { double, double }, ptr %887, i32 0, i32 1
  %891 = extractvalue { double, double } %886, 1
  store double %891, ptr %890, align 8
  %892 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %884, ptr noundef nonnull align 8 dereferenceable(16) %86)
          to label %893 unwind label %912

893:                                              ; preds = %885
  %894 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %892, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %895 unwind label %912

895:                                              ; preds = %893
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #10
  call void @_ZN6qtorch16ContractionToolsD2Ev(ptr noundef nonnull align 8 dereferenceable(10128) %82) #10
  call void @llvm.lifetime.end.p0(i64 10128, ptr %82) #10
  br label %954

896:                                              ; preds = %868
  %897 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %898 = extractvalue { ptr, i32 } %897, 0
  store ptr %898, ptr %7, align 8
  %899 = extractvalue { ptr, i32 } %897, 1
  store i32 %899, ptr %8, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #10
  br label %917

900:                                              ; preds = %869
  %901 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %902 = extractvalue { ptr, i32 } %901, 0
  store ptr %902, ptr %7, align 8
  %903 = extractvalue { ptr, i32 } %901, 1
  store i32 %903, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #10
  br label %916

904:                                              ; preds = %883, %870
  %905 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %906 = extractvalue { ptr, i32 } %905, 0
  store ptr %906, ptr %7, align 8
  %907 = extractvalue { ptr, i32 } %905, 1
  store i32 %907, ptr %8, align 4
  br label %916

908:                                              ; preds = %881, %873
  %909 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %910 = extractvalue { ptr, i32 } %909, 0
  store ptr %910, ptr %7, align 8
  %911 = extractvalue { ptr, i32 } %909, 1
  store i32 %911, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #10
  br label %916

912:                                              ; preds = %893, %885
  %913 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %914 = extractvalue { ptr, i32 } %913, 0
  store ptr %914, ptr %7, align 8
  %915 = extractvalue { ptr, i32 } %913, 1
  store i32 %915, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #10
  br label %916

916:                                              ; preds = %912, %908, %904, %900
  call void @_ZN6qtorch16ContractionToolsD2Ev(ptr noundef nonnull align 8 dereferenceable(10128) %82) #10
  br label %917

917:                                              ; preds = %916, %896
  call void @llvm.lifetime.end.p0(i64 10128, ptr %82) #10
  br label %918

918:                                              ; preds = %917
  %919 = load i32, ptr %8, align 4
  %920 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #10
  %921 = icmp eq i32 %919, %920
  br i1 %921, label %922, label %961

922:                                              ; preds = %918
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #10
  %923 = load ptr, ptr %7, align 8
  %924 = call ptr @__cxa_begin_catch(ptr %923) #10
  store ptr %924, ptr %87, align 8
  %925 = load ptr, ptr %87, align 8, !tbaa !9
  %926 = load ptr, ptr %925, align 8, !tbaa !11
  %927 = getelementptr inbounds ptr, ptr %926, i64 2
  %928 = load ptr, ptr %927, align 8
  %929 = call noundef ptr %928(ptr noundef nonnull align 8 dereferenceable(8) %925) #10
  %930 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %929)
          to label %931 unwind label %943

931:                                              ; preds = %922
  %932 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %930, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %933 unwind label %943

933:                                              ; preds = %931
  %934 = load ptr, ptr %87, align 8, !tbaa !9
  %935 = load ptr, ptr %934, align 8, !tbaa !11
  %936 = getelementptr inbounds ptr, ptr %935, i64 2
  %937 = load ptr, ptr %936, align 8
  %938 = call noundef ptr %937(ptr noundef nonnull align 8 dereferenceable(8) %934) #10
  %939 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef %938)
          to label %940 unwind label %943

940:                                              ; preds = %933
  %941 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %939, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %942 unwind label %943

942:                                              ; preds = %940
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %20, align 4
  invoke void @__cxa_end_catch()
          to label %947 unwind label %948

943:                                              ; preds = %940, %933, %931, %922
  %944 = landingpad { ptr, i32 }
          cleanup
  %945 = extractvalue { ptr, i32 } %944, 0
  store ptr %945, ptr %7, align 8
  %946 = extractvalue { ptr, i32 } %944, 1
  store i32 %946, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %952 unwind label %1302

947:                                              ; preds = %942
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  br label %958

948:                                              ; preds = %942
  %949 = landingpad { ptr, i32 }
          cleanup
  %950 = extractvalue { ptr, i32 } %949, 0
  store ptr %950, ptr %7, align 8
  %951 = extractvalue { ptr, i32 } %949, 1
  store i32 %951, ptr %8, align 4
  br label %953

952:                                              ; preds = %943
  br label %953

953:                                              ; preds = %952, %948
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  br label %961

954:                                              ; preds = %895
  %955 = call noundef zeroext i1 @_ZStneIN6qtorch7NetworkEEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %81, ptr null) #10
  br i1 %955, label %956, label %957

956:                                              ; preds = %954
  store i8 1, ptr %46, align 1, !tbaa !13
  br label %957

957:                                              ; preds = %956, %954
  store i32 0, ptr %20, align 4
  br label %958

958:                                              ; preds = %957, %947
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %81) #10
  %959 = load i32, ptr %20, align 4
  switch i32 %959, label %1285 [
    i32 0, label %960
  ]

960:                                              ; preds = %958
  br label %1190

961:                                              ; preds = %953, %918
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %81) #10
  br label %1286

962:                                              ; preds = %867
  %963 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.119)
          to label %964 unwind label %517

964:                                              ; preds = %962
  br i1 %963, label %965, label %1186

965:                                              ; preds = %964
  call void @llvm.lifetime.start.p0(i64 16, ptr %88) #10
  call void @_ZNSt10shared_ptrIN6qtorch7NetworkEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %88) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #10
  %966 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef @.str.120, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %967 unwind label %1007

967:                                              ; preds = %965
  %968 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE4findERS9_(ptr noundef nonnull align 8 dereferenceable(48) %966, ptr noundef nonnull align 8 dereferenceable(32) %90)
          to label %969 unwind label %1011

969:                                              ; preds = %967
  %970 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.235", ptr %89, i32 0, i32 0
  store ptr %968, ptr %970, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #10
  %971 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 0
  %972 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %971) #10
  %973 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.235", ptr %92, i32 0, i32 0
  store ptr %972, ptr %973, align 8
  %974 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 8 dereferenceable(8) %92) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #10
  br i1 %974, label %975, label %1082

975:                                              ; preds = %969
  %976 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.121)
          to label %977 unwind label %1016

977:                                              ; preds = %975
  %978 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %976, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %979 unwind label %1016

979:                                              ; preds = %977
  call void @llvm.lifetime.start.p0(i64 10128, ptr %93) #10
  call void @_ZNSt10shared_ptrIN6qtorch7NetworkEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %94, ptr noundef nonnull align 8 dereferenceable(16) %21) #10
  invoke void @_ZN6qtorch16ContractionToolsC2ESt10shared_ptrINS_7NetworkEE(ptr noundef nonnull align 8 dereferenceable(10128) %93, ptr noundef %94)
          to label %980 unwind label %1020

980:                                              ; preds = %979
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %94) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %95) #10
  invoke void @_ZN6qtorch16ContractionTools8ContractENS_15ContractionTypeEii(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.178") align 8 %95, ptr noundef nonnull align 8 dereferenceable(10128) %93, i32 noundef 0, i32 noundef 1, i32 noundef 1)
          to label %981 unwind label %1024

981:                                              ; preds = %980
  %982 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch7NetworkEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %88, ptr noundef nonnull align 8 dereferenceable(16) %95) #10
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %95) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %95) #10
  %983 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.79)
          to label %984 unwind label %1028

984:                                              ; preds = %981
  call void @llvm.lifetime.start.p0(i64 16, ptr %96) #10
  %985 = call { double, double } @_ZN6qtorch16ContractionTools11GetFinalValEv(ptr noundef nonnull align 8 dereferenceable(10128) %93) #10
  %986 = getelementptr inbounds %"class.std::complex", ptr %96, i32 0, i32 0
  %987 = getelementptr inbounds { double, double }, ptr %986, i32 0, i32 0
  %988 = extractvalue { double, double } %985, 0
  store double %988, ptr %987, align 8
  %989 = getelementptr inbounds { double, double }, ptr %986, i32 0, i32 1
  %990 = extractvalue { double, double } %985, 1
  store double %990, ptr %989, align 8
  %991 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %983, ptr noundef nonnull align 8 dereferenceable(16) %96)
          to label %992 unwind label %1032

992:                                              ; preds = %984
  %993 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %991, ptr noundef @.str.80)
          to label %994 unwind label %1032

994:                                              ; preds = %992
  call void @llvm.lifetime.end.p0(i64 16, ptr %96) #10
  %995 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef @.str.117)
          to label %996 unwind label %1028

996:                                              ; preds = %994
  call void @llvm.lifetime.start.p0(i64 16, ptr %97) #10
  %997 = call { double, double } @_ZN6qtorch16ContractionTools11GetFinalValEv(ptr noundef nonnull align 8 dereferenceable(10128) %93) #10
  %998 = getelementptr inbounds %"class.std::complex", ptr %97, i32 0, i32 0
  %999 = getelementptr inbounds { double, double }, ptr %998, i32 0, i32 0
  %1000 = extractvalue { double, double } %997, 0
  store double %1000, ptr %999, align 8
  %1001 = getelementptr inbounds { double, double }, ptr %998, i32 0, i32 1
  %1002 = extractvalue { double, double } %997, 1
  store double %1002, ptr %1001, align 8
  %1003 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %995, ptr noundef nonnull align 8 dereferenceable(16) %97)
          to label %1004 unwind label %1036

1004:                                             ; preds = %996
  %1005 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1003, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1006 unwind label %1036

1006:                                             ; preds = %1004
  call void @llvm.lifetime.end.p0(i64 16, ptr %97) #10
  call void @_ZN6qtorch16ContractionToolsD2Ev(ptr noundef nonnull align 8 dereferenceable(10128) %93) #10
  call void @llvm.lifetime.end.p0(i64 10128, ptr %93) #10
  br label %1078

1007:                                             ; preds = %965
  %1008 = landingpad { ptr, i32 }
          cleanup
  %1009 = extractvalue { ptr, i32 } %1008, 0
  store ptr %1009, ptr %7, align 8
  %1010 = extractvalue { ptr, i32 } %1008, 1
  store i32 %1010, ptr %8, align 4
  br label %1015

1011:                                             ; preds = %967
  %1012 = landingpad { ptr, i32 }
          cleanup
  %1013 = extractvalue { ptr, i32 } %1012, 0
  store ptr %1013, ptr %7, align 8
  %1014 = extractvalue { ptr, i32 } %1012, 1
  store i32 %1014, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #10
  br label %1015

1015:                                             ; preds = %1011, %1007
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #10
  br label %1185

1016:                                             ; preds = %977, %975
  %1017 = landingpad { ptr, i32 }
          cleanup
  %1018 = extractvalue { ptr, i32 } %1017, 0
  store ptr %1018, ptr %7, align 8
  %1019 = extractvalue { ptr, i32 } %1017, 1
  store i32 %1019, ptr %8, align 4
  br label %1185

1020:                                             ; preds = %979
  %1021 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %1022 = extractvalue { ptr, i32 } %1021, 0
  store ptr %1022, ptr %7, align 8
  %1023 = extractvalue { ptr, i32 } %1021, 1
  store i32 %1023, ptr %8, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %94) #10
  br label %1041

1024:                                             ; preds = %980
  %1025 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %1026 = extractvalue { ptr, i32 } %1025, 0
  store ptr %1026, ptr %7, align 8
  %1027 = extractvalue { ptr, i32 } %1025, 1
  store i32 %1027, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %95) #10
  br label %1040

1028:                                             ; preds = %994, %981
  %1029 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %1030 = extractvalue { ptr, i32 } %1029, 0
  store ptr %1030, ptr %7, align 8
  %1031 = extractvalue { ptr, i32 } %1029, 1
  store i32 %1031, ptr %8, align 4
  br label %1040

1032:                                             ; preds = %992, %984
  %1033 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %1034 = extractvalue { ptr, i32 } %1033, 0
  store ptr %1034, ptr %7, align 8
  %1035 = extractvalue { ptr, i32 } %1033, 1
  store i32 %1035, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %96) #10
  br label %1040

1036:                                             ; preds = %1004, %996
  %1037 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %1038 = extractvalue { ptr, i32 } %1037, 0
  store ptr %1038, ptr %7, align 8
  %1039 = extractvalue { ptr, i32 } %1037, 1
  store i32 %1039, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %97) #10
  br label %1040

1040:                                             ; preds = %1036, %1032, %1028, %1024
  call void @_ZN6qtorch16ContractionToolsD2Ev(ptr noundef nonnull align 8 dereferenceable(10128) %93) #10
  br label %1041

1041:                                             ; preds = %1040, %1020
  call void @llvm.lifetime.end.p0(i64 10128, ptr %93) #10
  br label %1042

1042:                                             ; preds = %1041
  %1043 = load i32, ptr %8, align 4
  %1044 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #10
  %1045 = icmp eq i32 %1043, %1044
  br i1 %1045, label %1046, label %1185

1046:                                             ; preds = %1042
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #10
  %1047 = load ptr, ptr %7, align 8
  %1048 = call ptr @__cxa_begin_catch(ptr %1047) #10
  store ptr %1048, ptr %98, align 8
  %1049 = load ptr, ptr %98, align 8, !tbaa !9
  %1050 = load ptr, ptr %1049, align 8, !tbaa !11
  %1051 = getelementptr inbounds ptr, ptr %1050, i64 2
  %1052 = load ptr, ptr %1051, align 8
  %1053 = call noundef ptr %1052(ptr noundef nonnull align 8 dereferenceable(8) %1049) #10
  %1054 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %1053)
          to label %1055 unwind label %1067

1055:                                             ; preds = %1046
  %1056 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1054, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1057 unwind label %1067

1057:                                             ; preds = %1055
  %1058 = load ptr, ptr %98, align 8, !tbaa !9
  %1059 = load ptr, ptr %1058, align 8, !tbaa !11
  %1060 = getelementptr inbounds ptr, ptr %1059, i64 2
  %1061 = load ptr, ptr %1060, align 8
  %1062 = call noundef ptr %1061(ptr noundef nonnull align 8 dereferenceable(8) %1058) #10
  %1063 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef %1062)
          to label %1064 unwind label %1067

1064:                                             ; preds = %1057
  %1065 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1063, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1066 unwind label %1067

1066:                                             ; preds = %1064
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %20, align 4
  invoke void @__cxa_end_catch()
          to label %1071 unwind label %1072

1067:                                             ; preds = %1064, %1057, %1055, %1046
  %1068 = landingpad { ptr, i32 }
          cleanup
  %1069 = extractvalue { ptr, i32 } %1068, 0
  store ptr %1069, ptr %7, align 8
  %1070 = extractvalue { ptr, i32 } %1068, 1
  store i32 %1070, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %1076 unwind label %1302

1071:                                             ; preds = %1066
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #10
  br label %1182

1072:                                             ; preds = %1066
  %1073 = landingpad { ptr, i32 }
          cleanup
  %1074 = extractvalue { ptr, i32 } %1073, 0
  store ptr %1074, ptr %7, align 8
  %1075 = extractvalue { ptr, i32 } %1073, 1
  store i32 %1075, ptr %8, align 4
  br label %1077

1076:                                             ; preds = %1067
  br label %1077

1077:                                             ; preds = %1076, %1072
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #10
  br label %1185

1078:                                             ; preds = %1006
  %1079 = call noundef zeroext i1 @_ZStneIN6qtorch7NetworkEEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %88, ptr null) #10
  br i1 %1079, label %1080, label %1081

1080:                                             ; preds = %1078
  store i8 1, ptr %46, align 1, !tbaa !13
  br label %1081

1081:                                             ; preds = %1080, %1078
  br label %1181

1082:                                             ; preds = %969
  call void @llvm.lifetime.start.p0(i64 10128, ptr %99) #10
  call void @_ZNSt10shared_ptrIN6qtorch7NetworkEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull align 8 dereferenceable(16) %21) #10
  invoke void @_ZN6qtorch16ContractionToolsC2ESt10shared_ptrINS_7NetworkEE(ptr noundef nonnull align 8 dereferenceable(10128) %99, ptr noundef %100)
          to label %1083 unwind label %1114

1083:                                             ; preds = %1082
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %101) #10
  %1084 = getelementptr inbounds %"class.qtorch::leviParser", ptr %6, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %103) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef @.str.120, ptr noundef nonnull align 1 dereferenceable(1) %103)
          to label %1085 unwind label %1118

1085:                                             ; preds = %1083
  %1086 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %1084, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1087 unwind label %1122

1087:                                             ; preds = %1085
  invoke void @_ZN6qtorch16ContractionTools34ContractUserDefinedSequenceOfWiresERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.178") align 8 %101, ptr noundef nonnull align 8 dereferenceable(10128) %99, ptr noundef nonnull align 8 dereferenceable(32) %1086)
          to label %1088 unwind label %1122

1088:                                             ; preds = %1087
  %1089 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch7NetworkEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %88, ptr noundef nonnull align 8 dereferenceable(16) %101) #10
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %101) #10
  %1090 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.79)
          to label %1091 unwind label %1127

1091:                                             ; preds = %1088
  call void @llvm.lifetime.start.p0(i64 16, ptr %104) #10
  %1092 = call { double, double } @_ZN6qtorch16ContractionTools11GetFinalValEv(ptr noundef nonnull align 8 dereferenceable(10128) %99) #10
  %1093 = getelementptr inbounds %"class.std::complex", ptr %104, i32 0, i32 0
  %1094 = getelementptr inbounds { double, double }, ptr %1093, i32 0, i32 0
  %1095 = extractvalue { double, double } %1092, 0
  store double %1095, ptr %1094, align 8
  %1096 = getelementptr inbounds { double, double }, ptr %1093, i32 0, i32 1
  %1097 = extractvalue { double, double } %1092, 1
  store double %1097, ptr %1096, align 8
  %1098 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %1090, ptr noundef nonnull align 8 dereferenceable(16) %104)
          to label %1099 unwind label %1131

1099:                                             ; preds = %1091
  %1100 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1098, ptr noundef @.str.80)
          to label %1101 unwind label %1131

1101:                                             ; preds = %1099
  call void @llvm.lifetime.end.p0(i64 16, ptr %104) #10
  %1102 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef @.str.117)
          to label %1103 unwind label %1127

1103:                                             ; preds = %1101
  call void @llvm.lifetime.start.p0(i64 16, ptr %105) #10
  %1104 = call { double, double } @_ZN6qtorch16ContractionTools11GetFinalValEv(ptr noundef nonnull align 8 dereferenceable(10128) %99) #10
  %1105 = getelementptr inbounds %"class.std::complex", ptr %105, i32 0, i32 0
  %1106 = getelementptr inbounds { double, double }, ptr %1105, i32 0, i32 0
  %1107 = extractvalue { double, double } %1104, 0
  store double %1107, ptr %1106, align 8
  %1108 = getelementptr inbounds { double, double }, ptr %1105, i32 0, i32 1
  %1109 = extractvalue { double, double } %1104, 1
  store double %1109, ptr %1108, align 8
  %1110 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %1102, ptr noundef nonnull align 8 dereferenceable(16) %105)
          to label %1111 unwind label %1135

1111:                                             ; preds = %1103
  %1112 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1110, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1113 unwind label %1135

1113:                                             ; preds = %1111
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #10
  call void @_ZN6qtorch16ContractionToolsD2Ev(ptr noundef nonnull align 8 dereferenceable(10128) %99) #10
  call void @llvm.lifetime.end.p0(i64 10128, ptr %99) #10
  br label %1177

1114:                                             ; preds = %1082
  %1115 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %1116 = extractvalue { ptr, i32 } %1115, 0
  store ptr %1116, ptr %7, align 8
  %1117 = extractvalue { ptr, i32 } %1115, 1
  store i32 %1117, ptr %8, align 4
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #10
  br label %1140

1118:                                             ; preds = %1083
  %1119 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %1120 = extractvalue { ptr, i32 } %1119, 0
  store ptr %1120, ptr %7, align 8
  %1121 = extractvalue { ptr, i32 } %1119, 1
  store i32 %1121, ptr %8, align 4
  br label %1126

1122:                                             ; preds = %1087, %1085
  %1123 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %1124 = extractvalue { ptr, i32 } %1123, 0
  store ptr %1124, ptr %7, align 8
  %1125 = extractvalue { ptr, i32 } %1123, 1
  store i32 %1125, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #10
  br label %1126

1126:                                             ; preds = %1122, %1118
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %101) #10
  br label %1139

1127:                                             ; preds = %1101, %1088
  %1128 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %1129 = extractvalue { ptr, i32 } %1128, 0
  store ptr %1129, ptr %7, align 8
  %1130 = extractvalue { ptr, i32 } %1128, 1
  store i32 %1130, ptr %8, align 4
  br label %1139

1131:                                             ; preds = %1099, %1091
  %1132 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %1133 = extractvalue { ptr, i32 } %1132, 0
  store ptr %1133, ptr %7, align 8
  %1134 = extractvalue { ptr, i32 } %1132, 1
  store i32 %1134, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %104) #10
  br label %1139

1135:                                             ; preds = %1111, %1103
  %1136 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %1137 = extractvalue { ptr, i32 } %1136, 0
  store ptr %1137, ptr %7, align 8
  %1138 = extractvalue { ptr, i32 } %1136, 1
  store i32 %1138, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #10
  br label %1139

1139:                                             ; preds = %1135, %1131, %1127, %1126
  call void @_ZN6qtorch16ContractionToolsD2Ev(ptr noundef nonnull align 8 dereferenceable(10128) %99) #10
  br label %1140

1140:                                             ; preds = %1139, %1114
  call void @llvm.lifetime.end.p0(i64 10128, ptr %99) #10
  br label %1141

1141:                                             ; preds = %1140
  %1142 = load i32, ptr %8, align 4
  %1143 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #10
  %1144 = icmp eq i32 %1142, %1143
  br i1 %1144, label %1145, label %1185

1145:                                             ; preds = %1141
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #10
  %1146 = load ptr, ptr %7, align 8
  %1147 = call ptr @__cxa_begin_catch(ptr %1146) #10
  store ptr %1147, ptr %106, align 8
  %1148 = load ptr, ptr %106, align 8, !tbaa !9
  %1149 = load ptr, ptr %1148, align 8, !tbaa !11
  %1150 = getelementptr inbounds ptr, ptr %1149, i64 2
  %1151 = load ptr, ptr %1150, align 8
  %1152 = call noundef ptr %1151(ptr noundef nonnull align 8 dereferenceable(8) %1148) #10
  %1153 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %1152)
          to label %1154 unwind label %1166

1154:                                             ; preds = %1145
  %1155 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1153, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1156 unwind label %1166

1156:                                             ; preds = %1154
  %1157 = load ptr, ptr %106, align 8, !tbaa !9
  %1158 = load ptr, ptr %1157, align 8, !tbaa !11
  %1159 = getelementptr inbounds ptr, ptr %1158, i64 2
  %1160 = load ptr, ptr %1159, align 8
  %1161 = call noundef ptr %1160(ptr noundef nonnull align 8 dereferenceable(8) %1157) #10
  %1162 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef %1161)
          to label %1163 unwind label %1166

1163:                                             ; preds = %1156
  %1164 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1162, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1165 unwind label %1166

1165:                                             ; preds = %1163
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %20, align 4
  invoke void @__cxa_end_catch()
          to label %1170 unwind label %1171

1166:                                             ; preds = %1163, %1156, %1154, %1145
  %1167 = landingpad { ptr, i32 }
          cleanup
  %1168 = extractvalue { ptr, i32 } %1167, 0
  store ptr %1168, ptr %7, align 8
  %1169 = extractvalue { ptr, i32 } %1167, 1
  store i32 %1169, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %1175 unwind label %1302

1170:                                             ; preds = %1165
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #10
  br label %1182

1171:                                             ; preds = %1165
  %1172 = landingpad { ptr, i32 }
          cleanup
  %1173 = extractvalue { ptr, i32 } %1172, 0
  store ptr %1173, ptr %7, align 8
  %1174 = extractvalue { ptr, i32 } %1172, 1
  store i32 %1174, ptr %8, align 4
  br label %1176

1175:                                             ; preds = %1166
  br label %1176

1176:                                             ; preds = %1175, %1171
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #10
  br label %1185

1177:                                             ; preds = %1113
  %1178 = call noundef zeroext i1 @_ZStneIN6qtorch7NetworkEEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %88, ptr null) #10
  br i1 %1178, label %1179, label %1180

1179:                                             ; preds = %1177
  store i8 1, ptr %46, align 1, !tbaa !13
  br label %1180

1180:                                             ; preds = %1179, %1177
  br label %1181

1181:                                             ; preds = %1180, %1081
  store i32 0, ptr %20, align 4
  br label %1182

1182:                                             ; preds = %1181, %1170, %1071
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %88) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %88) #10
  %1183 = load i32, ptr %20, align 4
  switch i32 %1183, label %1285 [
    i32 0, label %1184
  ]

1184:                                             ; preds = %1182
  br label %1189

1185:                                             ; preds = %1176, %1141, %1077, %1042, %1016, %1015
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %88) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %88) #10
  br label %1286

1186:                                             ; preds = %964
  %1187 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.122)
          to label %1188 unwind label %517

1188:                                             ; preds = %1186
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %20, align 4
  br label %1285

1189:                                             ; preds = %1184
  br label %1190

1190:                                             ; preds = %1189, %960
  br label %1191

1191:                                             ; preds = %1190, %862
  %1192 = load i8, ptr %46, align 1, !tbaa !13, !range !15, !noundef !16
  %1193 = trunc i8 %1192 to i1
  br i1 %1193, label %1194, label %1247

1194:                                             ; preds = %1191
  %1195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.123)
          to label %1196 unwind label %517

1196:                                             ; preds = %1194
  %1197 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  %1198 = call noundef i64 @_ZN6qtorch7Network14getNumFloatOpsEv(ptr noundef nonnull align 8 dereferenceable(380) %1197) #10
  %1199 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEx(ptr noundef nonnull align 8 dereferenceable(8) %1195, i64 noundef %1198)
          to label %1200 unwind label %517

1200:                                             ; preds = %1196
  %1201 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1199, ptr noundef @.str.80)
          to label %1202 unwind label %517

1202:                                             ; preds = %1200
  %1203 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef @.str.123)
          to label %1204 unwind label %517

1204:                                             ; preds = %1202
  %1205 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  %1206 = call noundef i64 @_ZN6qtorch7Network14getNumFloatOpsEv(ptr noundef nonnull align 8 dereferenceable(380) %1205) #10
  %1207 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEx(ptr noundef nonnull align 8 dereferenceable(8) %1203, i64 noundef %1206)
          to label %1208 unwind label %517

1208:                                             ; preds = %1204
  %1209 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1207, ptr noundef @.str.80)
          to label %1210 unwind label %517

1210:                                             ; preds = %1208
  %1211 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.124)
          to label %1212 unwind label %517

1212:                                             ; preds = %1210
  call void @llvm.lifetime.start.p0(i64 32, ptr %107) #10
  %1213 = invoke noundef double @_ZN6qtorch5Timer10getElapsedEv(ptr noundef nonnull align 8 dereferenceable(17) %44)
          to label %1214 unwind label %1229

1214:                                             ; preds = %1212
  invoke void @_Z13formattedTimeB5cxx11d(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %107, double noundef %1213)
          to label %1215 unwind label %1229

1215:                                             ; preds = %1214
  %1216 = 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) %1211, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1217 unwind label %1233

1217:                                             ; preds = %1215
  %1218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1216, ptr noundef @.str.80)
          to label %1219 unwind label %1233

1219:                                             ; preds = %1217
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #10
  %1220 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef @.str.124)
          to label %1221 unwind label %517

1221:                                             ; preds = %1219
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #10
  %1222 = invoke noundef double @_ZN6qtorch5Timer10getElapsedEv(ptr noundef nonnull align 8 dereferenceable(17) %44)
          to label %1223 unwind label %1238

1223:                                             ; preds = %1221
  invoke void @_Z13formattedTimeB5cxx11d(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %108, double noundef %1222)
          to label %1224 unwind label %1238

1224:                                             ; preds = %1223
  %1225 = 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) %1220, ptr noundef nonnull align 8 dereferenceable(32) %108)
          to label %1226 unwind label %1242

1226:                                             ; preds = %1224
  %1227 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1225, ptr noundef @.str.80)
          to label %1228 unwind label %1242

1228:                                             ; preds = %1226
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #10
  br label %1284

1229:                                             ; preds = %1214, %1212
  %1230 = landingpad { ptr, i32 }
          cleanup
  %1231 = extractvalue { ptr, i32 } %1230, 0
  store ptr %1231, ptr %7, align 8
  %1232 = extractvalue { ptr, i32 } %1230, 1
  store i32 %1232, ptr %8, align 4
  br label %1237

1233:                                             ; preds = %1217, %1215
  %1234 = landingpad { ptr, i32 }
          cleanup
  %1235 = extractvalue { ptr, i32 } %1234, 0
  store ptr %1235, ptr %7, align 8
  %1236 = extractvalue { ptr, i32 } %1234, 1
  store i32 %1236, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #10
  br label %1237

1237:                                             ; preds = %1233, %1229
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #10
  br label %1286

1238:                                             ; preds = %1223, %1221
  %1239 = landingpad { ptr, i32 }
          cleanup
  %1240 = extractvalue { ptr, i32 } %1239, 0
  store ptr %1240, ptr %7, align 8
  %1241 = extractvalue { ptr, i32 } %1239, 1
  store i32 %1241, ptr %8, align 4
  br label %1246

1242:                                             ; preds = %1226, %1224
  %1243 = landingpad { ptr, i32 }
          cleanup
  %1244 = extractvalue { ptr, i32 } %1243, 0
  store ptr %1244, ptr %7, align 8
  %1245 = extractvalue { ptr, i32 } %1243, 1
  store i32 %1245, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #10
  br label %1246

1246:                                             ; preds = %1242, %1238
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #10
  br label %1286

1247:                                             ; preds = %1191
  %1248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.125)
          to label %1249 unwind label %517

1249:                                             ; preds = %1247
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #10
  %1250 = invoke noundef double @_ZN6qtorch5Timer10getElapsedEv(ptr noundef nonnull align 8 dereferenceable(17) %44)
          to label %1251 unwind label %1266

1251:                                             ; preds = %1249
  invoke void @_Z13formattedTimeB5cxx11d(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %109, double noundef %1250)
          to label %1252 unwind label %1266

1252:                                             ; preds = %1251
  %1253 = 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) %1248, ptr noundef nonnull align 8 dereferenceable(32) %109)
          to label %1254 unwind label %1270

1254:                                             ; preds = %1252
  %1255 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1253, ptr noundef @.str.80)
          to label %1256 unwind label %1270

1256:                                             ; preds = %1254
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #10
  %1257 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef @.str.125)
          to label %1258 unwind label %517

1258:                                             ; preds = %1256
  call void @llvm.lifetime.start.p0(i64 32, ptr %110) #10
  %1259 = invoke noundef double @_ZN6qtorch5Timer10getElapsedEv(ptr noundef nonnull align 8 dereferenceable(17) %44)
          to label %1260 unwind label %1275

1260:                                             ; preds = %1258
  invoke void @_Z13formattedTimeB5cxx11d(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %110, double noundef %1259)
          to label %1261 unwind label %1275

1261:                                             ; preds = %1260
  %1262 = 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) %1257, ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %1263 unwind label %1279

1263:                                             ; preds = %1261
  %1264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1262, ptr noundef @.str.80)
          to label %1265 unwind label %1279

1265:                                             ; preds = %1263
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #10
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %20, align 4
  br label %1285

1266:                                             ; preds = %1251, %1249
  %1267 = landingpad { ptr, i32 }
          cleanup
  %1268 = extractvalue { ptr, i32 } %1267, 0
  store ptr %1268, ptr %7, align 8
  %1269 = extractvalue { ptr, i32 } %1267, 1
  store i32 %1269, ptr %8, align 4
  br label %1274

1270:                                             ; preds = %1254, %1252
  %1271 = landingpad { ptr, i32 }
          cleanup
  %1272 = extractvalue { ptr, i32 } %1271, 0
  store ptr %1272, ptr %7, align 8
  %1273 = extractvalue { ptr, i32 } %1271, 1
  store i32 %1273, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #10
  br label %1274

1274:                                             ; preds = %1270, %1266
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #10
  br label %1286

1275:                                             ; preds = %1260, %1258
  %1276 = landingpad { ptr, i32 }
          cleanup
  %1277 = extractvalue { ptr, i32 } %1276, 0
  store ptr %1277, ptr %7, align 8
  %1278 = extractvalue { ptr, i32 } %1276, 1
  store i32 %1278, ptr %8, align 4
  br label %1283

1279:                                             ; preds = %1263, %1261
  %1280 = landingpad { ptr, i32 }
          cleanup
  %1281 = extractvalue { ptr, i32 } %1280, 0
  store ptr %1281, ptr %7, align 8
  %1282 = extractvalue { ptr, i32 } %1280, 1
  store i32 %1282, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #10
  br label %1283

1283:                                             ; preds = %1279, %1275
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #10
  br label %1286

1284:                                             ; preds = %1228
  store i32 0, ptr %3, align 4
  store i32 1, ptr %20, align 4
  br label %1285

1285:                                             ; preds = %1284, %1265, %1188, %1182, %958, %860
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #10
  br label %1289

1286:                                             ; preds = %1283, %1274, %1246, %1237, %1185, %961, %864, %517
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #10
  br label %1287

1287:                                             ; preds = %1286, %516
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #10
  br label %1288

1288:                                             ; preds = %1287, %507, %495
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #10
  br label %1290

1289:                                             ; preds = %1285, %288
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #10
  br label %1291

1290:                                             ; preds = %1288, %494, %485, %383, %374, %340, %294, %259
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #10
  br label %1292

1291:                                             ; preds = %1289, %173
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %17) #10
  call void @llvm.lifetime.end.p0(i64 512, ptr %17) #10
  call void @_ZN6qtorch10leviParserD2Ev(ptr noundef nonnull align 8 dereferenceable(192) %6) #10
  call void @llvm.lifetime.end.p0(i64 192, ptr %6) #10
  br label %1295

1292:                                             ; preds = %1290, %223
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %17) #10
  br label %1293

1293:                                             ; preds = %1292, %222
  call void @llvm.lifetime.end.p0(i64 512, ptr %17) #10
  br label %1294

1294:                                             ; preds = %1293, %213, %204, %195, %186, %174
  call void @_ZN6qtorch10leviParserD2Ev(ptr noundef nonnull align 8 dereferenceable(192) %6) #10
  call void @llvm.lifetime.end.p0(i64 192, ptr %6) #10
  br label %1297

1295:                                             ; preds = %1291, %113
  %1296 = load i32, ptr %3, align 4
  ret i32 %1296

1297:                                             ; preds = %1294
  %1298 = load ptr, ptr %7, align 8
  %1299 = load i32, ptr %8, align 4
  %1300 = insertvalue { ptr, i32 } poison, ptr %1298, 0
  %1301 = insertvalue { ptr, i32 } %1300, i32 %1299, 1
  resume { ptr, i32 } %1301

1302:                                             ; preds = %1166, %1067, %943, %847, %700, %618, %284
  %1303 = landingpad { ptr, i32 }
          catch ptr null
  %1304 = extractvalue { ptr, i32 } %1303, 0
  call void @__clang_call_terminate(ptr %1304) #11
  unreachable
}

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

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

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

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

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

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #8

declare ptr @__cxa_begin_catch(ptr)

declare void @__cxa_end_catch()

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #9

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { double, double } @_ZN6qtorch16ContractionTools11GetFinalValEv(ptr noundef nonnull align 8 dereferenceable(10128)) #3 align 2

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

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

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

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

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

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

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

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

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

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

declare void @_ZN6qtorch9LineGraphC1ESt10shared_ptrINS_7NetworkEE(ptr, ptr)

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 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #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 = { mustprogress norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind memory(none) }
attributes #9 = { noinline noreturn nounwind uwtable "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 #10 = { nounwind }
attributes #11 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"vtable pointer", !8, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{i8 0, i8 2}
!16 = !{}


; 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.178" = type { %"class.std::__shared_ptr.179" }
%"class.std::__shared_ptr.179" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.qtorch::leviParser" = type { %"class.std::map", %"class.std::map.220", %"class.std::map.225", %"class.std::map.230" }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::map.220" = type { %"class.std::_Rb_tree.221" }
%"class.std::_Rb_tree.221" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, bool>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, bool>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, bool>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, bool>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.225" = type { %"class.std::_Rb_tree.226" }
%"class.std::_Rb_tree.226" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, int>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, int>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.230" = type { %"class.std::_Rb_tree.231" }
%"class.std::_Rb_tree.231" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, double>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, double>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, double>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, double>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"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] }
%"class.std::allocator" = type { i8 }
%"class.std::basic_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%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::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon }
%union.anon = type { i32 }
%"class.qtorch::Timer" = type <{ %"class.std::chrono::time_point", i64, i8, [7 x i8] }>
%"class.std::chrono::time_point" = type { %"class.std::chrono::duration" }
%"class.std::chrono::duration" = type { i64 }
%"class.qtorch::LineGraph" = type { %"class.std::shared_ptr.178", %"class.std::vector.4", %"class.std::vector.181", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"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::vector.181" = type { %"struct.std::_Vector_base.182" }
%"struct.std::_Vector_base.182" = type { %"struct.std::_Vector_base<std::array<std::shared_ptr<qtorch::Wire>, 2>, std::allocator<std::array<std::shared_ptr<qtorch::Wire>, 2>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::array<std::shared_ptr<qtorch::Wire>, 2>, std::allocator<std::array<std::shared_ptr<qtorch::Wire>, 2>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::array<std::shared_ptr<qtorch::Wire>, 2>, std::allocator<std::array<std::shared_ptr<qtorch::Wire>, 2>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::array<std::shared_ptr<qtorch::Wire>, 2>, std::allocator<std::array<std::shared_ptr<qtorch::Wire>, 2>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"class.qtorch::ContractionTools" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::complex", %"class.std::vector.186", %"class.std::random_device", %"class.std::shared_ptr.178", %"class.std::mersenne_twister_engine", i8, i32 }
%"class.std::complex" = type { { double, double } }
%"class.std::vector.186" = type { %"struct.std::_Vector_base.187" }
%"struct.std::_Vector_base.187" = type { %"struct.std::_Vector_base<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>, std::allocator<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>, std::allocator<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>, std::allocator<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>, std::allocator<std::shared_ptr<std::vector<std::shared_ptr<qtorch::Node>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::random_device" = type { %union.anon.191 }
%union.anon.191 = type { %"class.std::mersenne_twister_engine" }
%"class.std::mersenne_twister_engine" = type { [624 x i64], i64 }
%"struct.std::_Rb_tree_iterator.235" = type { ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@_ZTISt9exception = external constant ptr
@.str.56 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [18 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

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

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

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

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

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #4

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

; 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 uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6qtorch9LineGraph10runQuickBBEiPNS_5TimerEb(ptr noundef nonnull align 8 dereferenceable(160), i32 noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #2 align 2

; Function Attrs: nofree nounwind
declare noundef i32 @mkdir(ptr nocapture noundef readonly, i32 noundef) local_unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6qtorch9LineGraph10LGContractEv(ptr noundef nonnull align 8 dereferenceable(160)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264)) local_unnamed_addr #3 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4

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

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

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

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

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

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

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

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef range(i32 -1, 1) i32 @main(i32 noundef %0, ptr nocapture noundef readonly %1) local_unnamed_addr #7 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.qtorch::leviParser", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator", align 1
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator", align 1
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca %"class.std::basic_ofstream", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.std::shared_ptr.178", align 8
  %16 = alloca %"class.std::shared_ptr.178", align 8
  %17 = alloca ptr, align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca ptr, align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator", align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator", align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.qtorch::Timer", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca %"class.qtorch::LineGraph", align 8
  %39 = alloca %"class.std::shared_ptr.178", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator", align 1
  %47 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::allocator", align 1
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator", align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator", align 1
  %56 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator", align 1
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::shared_ptr.178", align 8
  %65 = alloca %"class.qtorch::ContractionTools", align 8
  %66 = alloca %"class.std::shared_ptr.178", align 8
  %67 = alloca %"class.std::shared_ptr.178", align 8
  %68 = alloca %"class.std::complex", align 8
  %69 = alloca %"class.std::complex", align 8
  %70 = alloca %"class.std::shared_ptr.178", align 8
  %71 = alloca %"struct.std::_Rb_tree_iterator.235", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::allocator", align 1
  %74 = alloca %"struct.std::_Rb_tree_iterator.235", align 8
  %75 = alloca %"class.qtorch::ContractionTools", align 8
  %76 = alloca %"class.std::shared_ptr.178", align 8
  %77 = alloca %"class.std::shared_ptr.178", align 8
  %78 = alloca %"class.std::complex", align 8
  %79 = alloca %"class.std::complex", align 8
  %80 = alloca %"class.qtorch::ContractionTools", align 8
  %81 = alloca %"class.std::shared_ptr.178", align 8
  %82 = alloca %"class.std::shared_ptr.178", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator", align 1
  %85 = alloca %"class.std::complex", align 8
  %86 = alloca %"class.std::complex", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = icmp slt i32 %0, 2
  br i1 %91, label %92, label %94

92:                                               ; preds = %2
  %93 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.86)
  br label %921

94:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %3) #10
  call void @_ZN6qtorch10leviParserC2Ev(ptr noundef nonnull align 8 dereferenceable(192) %3)
  invoke void @_Z16setInpDefaultsTNRN6qtorch10leviParserE(ptr noundef nonnull align 8 dereferenceable(192) %3)
          to label %95 unwind label %146

95:                                               ; preds = %94
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #10
  %96 = getelementptr inbounds i8, ptr %1, i64 8
  %97 = load ptr, ptr %96, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef %97, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %98 unwind label %150

98:                                               ; preds = %95
  %99 = invoke noundef zeroext i1 @_ZN6qtorch10leviParser13readInputFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(192) %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %100 unwind label %152

100:                                              ; preds = %98
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #10
  %101 = call i32 @mkdir(ptr noundef nonnull @.str.56, i32 noundef 493) #10
  %102 = 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.87)
          to label %103 unwind label %146

103:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.88, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %104 unwind label %155

104:                                              ; preds = %103
  %105 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %106 unwind label %157

106:                                              ; preds = %104
  %107 = 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) %102, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %108 unwind label %157

108:                                              ; preds = %106
  %109 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %107, ptr noundef nonnull @.str.80)
          to label %110 unwind label %157

110:                                              ; preds = %108
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #10
  %111 = 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.89)
          to label %112 unwind label %146

112:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.90, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %113 unwind label %160

113:                                              ; preds = %112
  %114 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %115 unwind label %162

115:                                              ; preds = %113
  %116 = 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) %111, ptr noundef nonnull align 8 dereferenceable(32) %114)
          to label %117 unwind label %162

117:                                              ; preds = %115
  %118 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %116, ptr noundef nonnull @.str.80)
          to label %119 unwind label %162

119:                                              ; preds = %117
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #10
  %120 = 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.91)
          to label %121 unwind label %146

121:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.92, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %122 unwind label %165

122:                                              ; preds = %121
  %123 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %124 unwind label %167

124:                                              ; preds = %122
  %125 = 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) %120, ptr noundef nonnull align 8 dereferenceable(32) %123)
          to label %126 unwind label %167

126:                                              ; preds = %124
  %127 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %125, ptr noundef nonnull @.str.80)
          to label %128 unwind label %167

128:                                              ; preds = %126
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #10
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %12) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.92, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %129 unwind label %170

129:                                              ; preds = %128
  %130 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %131 unwind label %172

131:                                              ; preds = %129
  invoke void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(248) %12, ptr noundef nonnull align 8 dereferenceable(32) %130, i32 noundef 16)
          to label %132 unwind label %172

132:                                              ; preds = %131
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #10
  %133 = load ptr, ptr %12, align 8, !tbaa !9
  %134 = getelementptr i8, ptr %133, i64 -24
  %135 = load i64, ptr %134, align 8
  %136 = getelementptr inbounds i8, ptr %12, i64 %135
  %137 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %136)
  br i1 %137, label %138, label %179

138:                                              ; preds = %132
  %139 = 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.93)
          to label %140 unwind label %175

140:                                              ; preds = %138
  %141 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %139, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %142 unwind label %175

142:                                              ; preds = %140
  %143 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull @.str.93)
          to label %144 unwind label %175

144:                                              ; preds = %142
  %145 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %143, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %915 unwind label %175

146:                                              ; preds = %119, %110, %100, %94
  %147 = landingpad { ptr, i32 }
          cleanup
  %148 = extractvalue { ptr, i32 } %147, 0
  %149 = extractvalue { ptr, i32 } %147, 1
  br label %918

150:                                              ; preds = %95
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %154

152:                                              ; preds = %98
  %153 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #10
  br label %154

154:                                              ; preds = %152, %150
  %.pn = phi { ptr, i32 } [ %153, %152 ], [ %151, %150 ]
  %.050 = extractvalue { ptr, i32 } %.pn, 0
  %.057 = extractvalue { ptr, i32 } %.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #10
  br label %918

155:                                              ; preds = %103
  %156 = landingpad { ptr, i32 }
          cleanup
  br label %159

157:                                              ; preds = %108, %106, %104
  %158 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  br label %159

159:                                              ; preds = %157, %155
  %.pn138 = phi { ptr, i32 } [ %158, %157 ], [ %156, %155 ]
  %.151 = extractvalue { ptr, i32 } %.pn138, 0
  %.158 = extractvalue { ptr, i32 } %.pn138, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #10
  br label %918

160:                                              ; preds = %112
  %161 = landingpad { ptr, i32 }
          cleanup
  br label %164

162:                                              ; preds = %117, %115, %113
  %163 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10
  br label %164

164:                                              ; preds = %162, %160
  %.pn140 = phi { ptr, i32 } [ %163, %162 ], [ %161, %160 ]
  %.252 = extractvalue { ptr, i32 } %.pn140, 0
  %.259 = extractvalue { ptr, i32 } %.pn140, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #10
  br label %918

165:                                              ; preds = %121
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %169

167:                                              ; preds = %126, %124, %122
  %168 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  br label %169

169:                                              ; preds = %167, %165
  %.pn142 = phi { ptr, i32 } [ %168, %167 ], [ %166, %165 ]
  %.353 = extractvalue { ptr, i32 } %.pn142, 0
  %.360 = extractvalue { ptr, i32 } %.pn142, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #10
  br label %918

170:                                              ; preds = %128
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %174

172:                                              ; preds = %131, %129
  %173 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  br label %174

174:                                              ; preds = %172, %170
  %.pn144 = phi { ptr, i32 } [ %173, %172 ], [ %171, %170 ]
  %.454 = extractvalue { ptr, i32 } %.pn144, 0
  %.461 = extractvalue { ptr, i32 } %.pn144, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #10
  br label %917

175:                                              ; preds = %144, %142, %140, %138
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  %178 = extractvalue { ptr, i32 } %176, 1
  br label %916

179:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #10
  call void @_ZNSt10shared_ptrIN6qtorch7NetworkEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.88, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %180 unwind label %191

180:                                              ; preds = %179
  %181 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %182 unwind label %193

182:                                              ; preds = %180
  %183 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %181) #10
  store ptr %183, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.90, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %184 unwind label %195

184:                                              ; preds = %182
  %185 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %186 unwind label %197

186:                                              ; preds = %184
  %187 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %185) #10
  store ptr %187, ptr %20, align 8, !tbaa !5
  invoke void @_ZSt11make_sharedIN6qtorch7NetworkEJPKcS3_EESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueES6_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.178") align 8 %16, ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %188 unwind label %197

188:                                              ; preds = %186
  %189 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch7NetworkEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull align 8 dereferenceable(16) %16) #10
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #10
  %190 = 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.94)
          to label %227 unwind label %251

191:                                              ; preds = %179
  %192 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %201

193:                                              ; preds = %180
  %194 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %200

195:                                              ; preds = %182
  %196 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %199

197:                                              ; preds = %186, %184
  %198 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  br label %199

199:                                              ; preds = %197, %195
  %.pn146 = phi { ptr, i32 } [ %198, %197 ], [ %196, %195 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #10
  br label %200

200:                                              ; preds = %199, %193
  %.pn146.pn = phi { ptr, i32 } [ %.pn146, %199 ], [ %194, %193 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #10
  br label %201

201:                                              ; preds = %200, %191
  %.pn146.pn.pn = phi { ptr, i32 } [ %.pn146.pn, %200 ], [ %192, %191 ]
  %.7 = extractvalue { ptr, i32 } %.pn146.pn.pn, 0
  %.764 = extractvalue { ptr, i32 } %.pn146.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #10
  %202 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #10
  %203 = icmp eq i32 %.764, %202
  br i1 %203, label %204, label %914

204:                                              ; preds = %201
  %205 = call ptr @__cxa_begin_catch(ptr %.7) #10
  %206 = load ptr, ptr %205, align 8, !tbaa !9
  %207 = getelementptr inbounds i8, ptr %206, i64 16
  %208 = load ptr, ptr %207, align 8
  %209 = call noundef ptr %208(ptr noundef nonnull align 8 dereferenceable(8) %205) #10
  %210 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %209)
          to label %211 unwind label %222

211:                                              ; preds = %204
  %212 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %210, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %213 unwind label %222

213:                                              ; preds = %211
  %214 = load ptr, ptr %205, align 8, !tbaa !9
  %215 = getelementptr inbounds i8, ptr %214, i64 16
  %216 = load ptr, ptr %215, align 8
  %217 = call noundef ptr %216(ptr noundef nonnull align 8 dereferenceable(8) %205) #10
  %218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef %217)
          to label %219 unwind label %222

219:                                              ; preds = %213
  %220 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %218, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %221 unwind label %222

221:                                              ; preds = %219
  invoke void @__cxa_end_catch()
          to label %913 unwind label %224

222:                                              ; preds = %219, %213, %211, %204
  %223 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %226 unwind label %922

224:                                              ; preds = %221
  %225 = landingpad { ptr, i32 }
          cleanup
  br label %226

226:                                              ; preds = %222, %224
  %.pn150 = phi { ptr, i32 } [ %225, %224 ], [ %223, %222 ]
  %.8 = extractvalue { ptr, i32 } %.pn150, 0
  %.865 = extractvalue { ptr, i32 } %.pn150, 1
  br label %914

227:                                              ; preds = %188
  %228 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %190, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %229 unwind label %251

229:                                              ; preds = %227
  %230 = getelementptr inbounds i8, ptr %3, i64 96
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.95, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %231 unwind label %255

231:                                              ; preds = %229
  %232 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %230, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %233 unwind label %257

233:                                              ; preds = %231
  %234 = load i32, ptr %232, align 4, !tbaa !11
  %235 = icmp sgt i32 %234, 0
  br i1 %235, label %236, label %.critedge243

236:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.95, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %237 unwind label %259

237:                                              ; preds = %236
  %238 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %230, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %.critedge unwind label %261

.critedge:                                        ; preds = %237
  %239 = load i32, ptr %238, align 4, !tbaa !11
  %240 = icmp sgt i32 %239, 65536
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #10
  br i1 %240, label %241, label %271

.critedge243:                                     ; preds = %233
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #10
  br label %241

241:                                              ; preds = %.critedge243, %.critedge
  %242 = 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.96)
          to label %243 unwind label %251

243:                                              ; preds = %241
  %244 = 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.97)
          to label %245 unwind label %251

245:                                              ; preds = %243
  %246 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %244, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %247 unwind label %251

247:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.95, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %248 unwind label %266

248:                                              ; preds = %247
  %249 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %230, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %250 unwind label %268

250:                                              ; preds = %248
  store i32 2, ptr %249, align 4, !tbaa !11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #10
  br label %271

251:                                              ; preds = %288, %285, %271, %245, %243, %241, %227, %188
  %252 = landingpad { ptr, i32 }
          cleanup
  %253 = extractvalue { ptr, i32 } %252, 0
  %254 = extractvalue { ptr, i32 } %252, 1
  br label %914

255:                                              ; preds = %229
  %256 = landingpad { ptr, i32 }
          cleanup
  br label %265

257:                                              ; preds = %231
  %258 = landingpad { ptr, i32 }
          cleanup
  br label %264

259:                                              ; preds = %236
  %260 = landingpad { ptr, i32 }
          cleanup
  br label %263

261:                                              ; preds = %237
  %262 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #10
  br label %263

263:                                              ; preds = %259, %261
  %.pn152 = phi { ptr, i32 } [ %262, %261 ], [ %260, %259 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #10
  br label %264

264:                                              ; preds = %263, %257
  %.pn152.pn = phi { ptr, i32 } [ %.pn152, %263 ], [ %258, %257 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #10
  br label %265

265:                                              ; preds = %264, %255
  %.pn152.pn.pn = phi { ptr, i32 } [ %.pn152.pn, %264 ], [ %256, %255 ]
  %.11 = extractvalue { ptr, i32 } %.pn152.pn.pn, 0
  %.1168 = extractvalue { ptr, i32 } %.pn152.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #10
  br label %914

266:                                              ; preds = %247
  %267 = landingpad { ptr, i32 }
          cleanup
  br label %270

268:                                              ; preds = %248
  %269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  br label %270

270:                                              ; preds = %268, %266
  %.pn156 = phi { ptr, i32 } [ %269, %268 ], [ %267, %266 ]
  %.12 = extractvalue { ptr, i32 } %.pn156, 0
  %.1269 = extractvalue { ptr, i32 } %.pn156, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #10
  br label %914

271:                                              ; preds = %250, %.critedge
  %272 = 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.98)
          to label %273 unwind label %251

273:                                              ; preds = %271
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.95, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %274 unwind label %352

274:                                              ; preds = %273
  %275 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %230, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %276 unwind label %354

276:                                              ; preds = %274
  %277 = load i32, ptr %275, align 4, !tbaa !11
  %278 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %272, i32 noundef %277)
          to label %279 unwind label %354

279:                                              ; preds = %276
  %280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %278, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %281 unwind label %354

281:                                              ; preds = %279
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #10
  %282 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.95, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %283 unwind label %357

283:                                              ; preds = %281
  %284 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %230, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %285 unwind label %359

285:                                              ; preds = %283
  %286 = load i32, ptr %284, align 4, !tbaa !11
  call void @_ZN6qtorch7Network13SetNumThreadsEi(ptr noundef nonnull align 8 dereferenceable(380) %282, i32 noundef %286) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #10
  %287 = 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.99)
          to label %288 unwind label %251

288:                                              ; preds = %285
  %289 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %287, ptr noundef nonnull @.str.75)
          to label %290 unwind label %251

290:                                              ; preds = %288
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %33) #10
  invoke void @_ZN6qtorch5TimerC2Ev(ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %291 unwind label %362

291:                                              ; preds = %290
  call void @_ZN6qtorch5Timer5startEv(ptr noundef nonnull align 8 dereferenceable(17) %33)
  %292 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  invoke void @_ZN6qtorch7Network13ReduceCircuitEv(ptr noundef nonnull align 8 dereferenceable(380) %292)
          to label %293 unwind label %362

293:                                              ; preds = %291
  %294 = 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.100)
          to label %295 unwind label %362

295:                                              ; preds = %293
  %296 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %294, ptr noundef nonnull @.str.101)
          to label %297 unwind label %362

297:                                              ; preds = %295
  %298 = 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.102)
          to label %299 unwind label %362

299:                                              ; preds = %297
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #10
  %300 = invoke noundef double @_ZN6qtorch5Timer10getElapsedEv(ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %301 unwind label %366

301:                                              ; preds = %299
  invoke void @_Z13formattedTimeB5cxx11d(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, double noundef %300)
          to label %302 unwind label %366

302:                                              ; preds = %301
  %303 = 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) %298, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %304 unwind label %368

304:                                              ; preds = %302
  %305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %303, ptr noundef nonnull @.str.75)
          to label %306 unwind label %368

306:                                              ; preds = %304
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.103, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %307 unwind label %371

307:                                              ; preds = %306
  %308 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %309 unwind label %373

309:                                              ; preds = %307
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(32) %308)
          to label %310 unwind label %373

310:                                              ; preds = %309
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #10
  %311 = 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.104)
          to label %312 unwind label %376

312:                                              ; preds = %310
  %313 = 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) %311, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %314 unwind label %376

314:                                              ; preds = %312
  %315 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %313, ptr noundef nonnull @.str.80)
          to label %316 unwind label %376

316:                                              ; preds = %314
  %317 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.105)
  br i1 %317, label %318, label %614

318:                                              ; preds = %316
  %319 = 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.106)
          to label %320 unwind label %376

320:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %38) #10
  call void @_ZNSt10shared_ptrIN6qtorch7NetworkEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 8 dereferenceable(16) %15) #10
  invoke void @_ZN6qtorch9LineGraphC1ESt10shared_ptrINS_7NetworkEE(ptr noundef nonnull align 8 dereferenceable(160) %38, ptr noundef nonnull %39)
          to label %321 unwind label %380

321:                                              ; preds = %320
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #10
  %322 = getelementptr inbounds i8, ptr %3, i64 48
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %41) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.107, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %323 unwind label %384

323:                                              ; preds = %321
  %324 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %322, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %325 unwind label %386

325:                                              ; preds = %323
  %326 = load i8, ptr %324, align 1, !tbaa !13, !range !15, !noundef !16
  %327 = trunc nuw i8 %326 to i1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #10
  br i1 %327, label %328, label %447

328:                                              ; preds = %325
  %329 = 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.108)
          to label %330 unwind label %389

330:                                              ; preds = %328
  %331 = 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.109)
          to label %332 unwind label %389

332:                                              ; preds = %330
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %333 unwind label %391

333:                                              ; preds = %332
  %334 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %230, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %335 unwind label %393

335:                                              ; preds = %333
  %336 = load i32, ptr %334, align 4, !tbaa !11
  %337 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %331, i32 noundef %336)
          to label %338 unwind label %393

338:                                              ; preds = %335
  %339 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %337, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %340 unwind label %393

340:                                              ; preds = %338
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %341 unwind label %396

341:                                              ; preds = %340
  %342 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEE4findERS9_(ptr noundef nonnull align 8 dereferenceable(48) %322, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %343 unwind label %398

343:                                              ; preds = %341
  store ptr %342, ptr %44, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #10
  %344 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %322) #10
  store ptr %344, ptr %47, align 8
  %345 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbEESB_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #10
  br i1 %345, label %346, label %406

346:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %49) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %347 unwind label %401

347:                                              ; preds = %346
  %348 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %322, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %349 unwind label %403

349:                                              ; preds = %347
  %350 = load i8, ptr %348, align 1, !tbaa !13, !range !15, !noundef !16
  %351 = trunc nuw i8 %350 to i1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #10
  br label %406

352:                                              ; preds = %273
  %353 = landingpad { ptr, i32 }
          cleanup
  br label %356

354:                                              ; preds = %279, %276, %274
  %355 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #10
  br label %356

356:                                              ; preds = %354, %352
  %.pn158 = phi { ptr, i32 } [ %355, %354 ], [ %353, %352 ]
  %.13 = extractvalue { ptr, i32 } %.pn158, 0
  %.1370 = extractvalue { ptr, i32 } %.pn158, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #10
  br label %914

357:                                              ; preds = %281
  %358 = landingpad { ptr, i32 }
          cleanup
  br label %361

359:                                              ; preds = %283
  %360 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #10
  br label %361

361:                                              ; preds = %359, %357
  %.pn160 = phi { ptr, i32 } [ %360, %359 ], [ %358, %357 ]
  %.14 = extractvalue { ptr, i32 } %.pn160, 0
  %.1471 = extractvalue { ptr, i32 } %.pn160, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #10
  br label %914

362:                                              ; preds = %297, %295, %293, %291, %290
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  %365 = extractvalue { ptr, i32 } %363, 1
  br label %912

366:                                              ; preds = %301, %299
  %367 = landingpad { ptr, i32 }
          cleanup
  br label %370

368:                                              ; preds = %304, %302
  %369 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  br label %370

370:                                              ; preds = %368, %366
  %.pn162 = phi { ptr, i32 } [ %369, %368 ], [ %367, %366 ]
  %.15 = extractvalue { ptr, i32 } %.pn162, 0
  %.1572 = extractvalue { ptr, i32 } %.pn162, 1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #10
  br label %912

371:                                              ; preds = %306
  %372 = landingpad { ptr, i32 }
          cleanup
  br label %375

373:                                              ; preds = %309, %307
  %374 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  br label %375

375:                                              ; preds = %373, %371
  %.pn164 = phi { ptr, i32 } [ %374, %373 ], [ %372, %371 ]
  %.16 = extractvalue { ptr, i32 } %.pn164, 0
  %.1673 = extractvalue { ptr, i32 } %.pn164, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #10
  br label %911

376:                                              ; preds = %889, %880, %860, %851, %849, %845, %843, %841, %837, %835, %831, %318, %314, %312, %310
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  %379 = extractvalue { ptr, i32 } %377, 1
  br label %910

380:                                              ; preds = %320
  %381 = landingpad { ptr, i32 }
          cleanup
  %382 = extractvalue { ptr, i32 } %381, 0
  %383 = extractvalue { ptr, i32 } %381, 1
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #10
  br label %613

384:                                              ; preds = %321
  %385 = landingpad { ptr, i32 }
          cleanup
  br label %388

386:                                              ; preds = %323
  %387 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  br label %388

388:                                              ; preds = %386, %384
  %.pn185 = phi { ptr, i32 } [ %387, %386 ], [ %385, %384 ]
  %.17 = extractvalue { ptr, i32 } %.pn185, 0
  %.1774 = extractvalue { ptr, i32 } %.pn185, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #10
  br label %612

389:                                              ; preds = %414, %412, %330, %328
  %.0122.shrunk = phi i1 [ %411, %414 ], [ %411, %412 ], [ false, %330 ], [ false, %328 ]
  %390 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %.0122 = zext i1 %.0122.shrunk to i8
  br label %421

391:                                              ; preds = %332
  %392 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %395

393:                                              ; preds = %338, %335, %333
  %394 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  br label %395

395:                                              ; preds = %393, %391
  %.pn203 = phi { ptr, i32 } [ %394, %393 ], [ %392, %391 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #10
  br label %421

396:                                              ; preds = %340
  %397 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %400

398:                                              ; preds = %341
  %399 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #10
  br label %400

400:                                              ; preds = %398, %396
  %.pn205 = phi { ptr, i32 } [ %399, %398 ], [ %397, %396 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #10
  br label %421

401:                                              ; preds = %346
  %402 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %405

403:                                              ; preds = %347
  %404 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #10
  br label %405

405:                                              ; preds = %403, %401
  %.pn207 = phi { ptr, i32 } [ %404, %403 ], [ %402, %401 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #10
  br label %421

406:                                              ; preds = %349, %343
  %.0121 = phi i1 [ true, %343 ], [ %351, %349 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %51) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %407 unwind label %416

407:                                              ; preds = %406
  %408 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %230, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %409 unwind label %418

409:                                              ; preds = %407
  %410 = load i32, ptr %408, align 4, !tbaa !11
  %411 = invoke noundef zeroext i1 @_ZN6qtorch9LineGraph10runQuickBBEiPNS_5TimerEb(ptr noundef nonnull align 8 dereferenceable(160) %38, i32 noundef %410, ptr noundef nonnull %33, i1 noundef zeroext %.0121)
          to label %412 unwind label %418

412:                                              ; preds = %409
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #10
  %413 = 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.112)
          to label %414 unwind label %389

414:                                              ; preds = %412
  %415 = 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.113)
          to label %611 unwind label %389

416:                                              ; preds = %406
  %417 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %420

418:                                              ; preds = %409, %407
  %419 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  br label %420

420:                                              ; preds = %418, %416
  %.pn209 = phi { ptr, i32 } [ %419, %418 ], [ %417, %416 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #10
  br label %421

421:                                              ; preds = %420, %405, %400, %395, %389
  %.1123 = phi i8 [ %.0122, %389 ], [ 0, %420 ], [ 0, %405 ], [ 0, %400 ], [ 0, %395 ]
  %.pn211 = phi { ptr, i32 } [ %390, %389 ], [ %.pn209, %420 ], [ %.pn207, %405 ], [ %.pn205, %400 ], [ %.pn203, %395 ]
  %.22 = extractvalue { ptr, i32 } %.pn211, 0
  %.2279 = extractvalue { ptr, i32 } %.pn211, 1
  %422 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #10
  %423 = icmp eq i32 %.2279, %422
  br i1 %423, label %424, label %612

424:                                              ; preds = %421
  %425 = call ptr @__cxa_begin_catch(ptr %.22) #10
  %426 = load ptr, ptr %425, align 8, !tbaa !9
  %427 = getelementptr inbounds i8, ptr %426, i64 16
  %428 = load ptr, ptr %427, align 8
  %429 = call noundef ptr %428(ptr noundef nonnull align 8 dereferenceable(8) %425) #10
  %430 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %429)
          to label %431 unwind label %442

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

433:                                              ; preds = %431
  %434 = load ptr, ptr %425, align 8, !tbaa !9
  %435 = getelementptr inbounds i8, ptr %434, i64 16
  %436 = load ptr, ptr %435, align 8
  %437 = call noundef ptr %436(ptr noundef nonnull align 8 dereferenceable(8) %425) #10
  %438 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef %437)
          to label %439 unwind label %442

439:                                              ; preds = %433
  %440 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %438, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %441 unwind label %442

441:                                              ; preds = %439
  invoke void @__cxa_end_catch()
          to label %.thread231 unwind label %444

442:                                              ; preds = %439, %433, %431, %424
  %443 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %446 unwind label %922

444:                                              ; preds = %441
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %446

446:                                              ; preds = %442, %444
  %.pn213 = phi { ptr, i32 } [ %445, %444 ], [ %443, %442 ]
  %.23 = extractvalue { ptr, i32 } %.pn213, 0
  %.2380 = extractvalue { ptr, i32 } %.pn213, 1
  br label %612

447:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %53) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.114, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %448 unwind label %457

448:                                              ; preds = %447
  %449 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %322, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %450 unwind label %459

450:                                              ; preds = %448
  %451 = load i8, ptr %449, align 1, !tbaa !13, !range !15, !noundef !16
  %452 = trunc nuw i8 %451 to i1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #10
  br i1 %452, label %453, label %512

453:                                              ; preds = %450
  %454 = 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.115)
          to label %455 unwind label %462

455:                                              ; preds = %453
  %456 = invoke noundef zeroext i1 @_ZN6qtorch9LineGraph10LGContractEv(ptr noundef nonnull align 8 dereferenceable(160) %38)
          to label %486 unwind label %462

457:                                              ; preds = %447
  %458 = landingpad { ptr, i32 }
          cleanup
  br label %461

459:                                              ; preds = %448
  %460 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  br label %461

461:                                              ; preds = %459, %457
  %.pn187 = phi { ptr, i32 } [ %460, %459 ], [ %458, %457 ]
  %.24 = extractvalue { ptr, i32 } %.pn187, 0
  %.2481 = extractvalue { ptr, i32 } %.pn187, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #10
  br label %612

462:                                              ; preds = %455, %453
  %463 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %464 = extractvalue { ptr, i32 } %463, 0
  %465 = extractvalue { ptr, i32 } %463, 1
  %466 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #10
  %467 = icmp eq i32 %465, %466
  br i1 %467, label %468, label %612

468:                                              ; preds = %462
  %469 = call ptr @__cxa_begin_catch(ptr %464) #10
  %470 = load ptr, ptr %469, align 8, !tbaa !9
  %471 = getelementptr inbounds i8, ptr %470, i64 16
  %472 = load ptr, ptr %471, align 8
  %473 = call noundef ptr %472(ptr noundef nonnull align 8 dereferenceable(8) %469) #10
  %474 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %473)
          to label %475 unwind label %503

475:                                              ; preds = %468
  %476 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %474, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %477 unwind label %503

477:                                              ; preds = %475
  %478 = load ptr, ptr %469, align 8, !tbaa !9
  %479 = getelementptr inbounds i8, ptr %478, i64 16
  %480 = load ptr, ptr %479, align 8
  %481 = call noundef ptr %480(ptr noundef nonnull align 8 dereferenceable(8) %469) #10
  %482 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef %481)
          to label %483 unwind label %503

483:                                              ; preds = %477
  %484 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %482, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %485 unwind label %503

485:                                              ; preds = %483
  invoke void @__cxa_end_catch()
          to label %.thread231 unwind label %505

486:                                              ; preds = %455
  br i1 %456, label %487, label %.thread231

487:                                              ; preds = %486
  %488 = 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.116)
          to label %489 unwind label %508

489:                                              ; preds = %487
  %490 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  %491 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6qtorch7Network13GetFinalValueEv(ptr noundef nonnull align 8 dereferenceable(380) %490) #10
  %492 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %488, ptr noundef nonnull align 8 dereferenceable(16) %491)
          to label %493 unwind label %508

493:                                              ; preds = %489
  %494 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %492, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %495 unwind label %508

495:                                              ; preds = %493
  %496 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull @.str.117)
          to label %497 unwind label %508

497:                                              ; preds = %495
  %498 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  %499 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6qtorch7Network13GetFinalValueEv(ptr noundef nonnull align 8 dereferenceable(380) %498) #10
  %500 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %496, ptr noundef nonnull align 8 dereferenceable(16) %499)
          to label %501 unwind label %508

501:                                              ; preds = %497
  %502 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %500, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.thread231 unwind label %508

503:                                              ; preds = %483, %477, %475, %468
  %504 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %507 unwind label %922

505:                                              ; preds = %485
  %506 = landingpad { ptr, i32 }
          cleanup
  br label %507

507:                                              ; preds = %503, %505
  %.pn201 = phi { ptr, i32 } [ %506, %505 ], [ %504, %503 ]
  %.25 = extractvalue { ptr, i32 } %.pn201, 0
  %.2582 = extractvalue { ptr, i32 } %.pn201, 1
  br label %612

508:                                              ; preds = %604, %600, %598, %596, %592, %590, %501, %497, %495, %493, %489, %487
  %509 = landingpad { ptr, i32 }
          cleanup
  %510 = extractvalue { ptr, i32 } %509, 0
  %511 = extractvalue { ptr, i32 } %509, 1
  br label %612

512:                                              ; preds = %450
  %513 = 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.109)
          to label %514 unwind label %534

514:                                              ; preds = %512
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %55) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %515 unwind label %536

515:                                              ; preds = %514
  %516 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %230, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %517 unwind label %538

517:                                              ; preds = %515
  %518 = load i32, ptr %516, align 4, !tbaa !11
  %519 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %513, i32 noundef %518)
          to label %520 unwind label %538

520:                                              ; preds = %517
  %521 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %519, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %522 unwind label %538

522:                                              ; preds = %520
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %55) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %523 unwind label %541

523:                                              ; preds = %522
  %524 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEE4findERS9_(ptr noundef nonnull align 8 dereferenceable(48) %322, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %525 unwind label %543

525:                                              ; preds = %523
  store ptr %524, ptr %56, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #10
  %526 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %322) #10
  store ptr %526, ptr %59, align 8
  %527 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbEESB_(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %59) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #10
  br i1 %527, label %528, label %551

528:                                              ; preds = %525
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %61) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %529 unwind label %546

529:                                              ; preds = %528
  %530 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbSt4lessIS5_ESaISt4pairIKS5_bEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %322, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %531 unwind label %548

531:                                              ; preds = %529
  %532 = load i8, ptr %530, align 1, !tbaa !13, !range !15, !noundef !16
  %533 = trunc nuw i8 %532 to i1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #10
  br label %551

534:                                              ; preds = %557, %512
  %.3125 = phi i8 [ %558, %557 ], [ 0, %512 ]
  %535 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %567

536:                                              ; preds = %514
  %537 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %540

538:                                              ; preds = %520, %517, %515
  %539 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #10
  br label %540

540:                                              ; preds = %538, %536
  %.pn189 = phi { ptr, i32 } [ %539, %538 ], [ %537, %536 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %55) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #10
  br label %567

541:                                              ; preds = %522
  %542 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %545

543:                                              ; preds = %523
  %544 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #10
  br label %545

545:                                              ; preds = %543, %541
  %.pn191 = phi { ptr, i32 } [ %544, %543 ], [ %542, %541 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #10
  br label %567

546:                                              ; preds = %528
  %547 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %550

548:                                              ; preds = %529
  %549 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #10
  br label %550

550:                                              ; preds = %548, %546
  %.pn193 = phi { ptr, i32 } [ %549, %548 ], [ %547, %546 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #10
  br label %567

551:                                              ; preds = %531, %525
  %.0118 = phi i1 [ true, %525 ], [ %533, %531 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %552 unwind label %562

552:                                              ; preds = %551
  %553 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %230, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %554 unwind label %564

554:                                              ; preds = %552
  %555 = load i32, ptr %553, align 4, !tbaa !11
  %556 = invoke noundef zeroext i1 @_ZN6qtorch9LineGraph10runQuickBBEiPNS_5TimerEb(ptr noundef nonnull align 8 dereferenceable(160) %38, i32 noundef %555, ptr noundef nonnull %33, i1 noundef zeroext %.0118)
          to label %557 unwind label %564

557:                                              ; preds = %554
  %558 = zext i1 %556 to i8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #10
  %559 = invoke noundef zeroext i1 @_ZN6qtorch9LineGraph10LGContractEv(ptr noundef nonnull align 8 dereferenceable(160) %38)
          to label %560 unwind label %534

560:                                              ; preds = %557
  %561 = zext i1 %559 to i8
  br label %588

562:                                              ; preds = %551
  %563 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %566

564:                                              ; preds = %554, %552
  %565 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  br label %566

566:                                              ; preds = %564, %562
  %.pn195 = phi { ptr, i32 } [ %565, %564 ], [ %563, %562 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #10
  br label %567

567:                                              ; preds = %566, %550, %545, %540, %534
  %.4126 = phi i8 [ %.3125, %534 ], [ 0, %566 ], [ 0, %550 ], [ 0, %545 ], [ 0, %540 ]
  %.pn197 = phi { ptr, i32 } [ %535, %534 ], [ %.pn195, %566 ], [ %.pn193, %550 ], [ %.pn191, %545 ], [ %.pn189, %540 ]
  %.30 = extractvalue { ptr, i32 } %.pn197, 0
  %.3087 = extractvalue { ptr, i32 } %.pn197, 1
  %568 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #10
  %569 = icmp eq i32 %.3087, %568
  br i1 %569, label %570, label %612

570:                                              ; preds = %567
  %571 = call ptr @__cxa_begin_catch(ptr %.30) #10
  %572 = load ptr, ptr %571, align 8, !tbaa !9
  %573 = getelementptr inbounds i8, ptr %572, i64 16
  %574 = load ptr, ptr %573, align 8
  %575 = call noundef ptr %574(ptr noundef nonnull align 8 dereferenceable(8) %571) #10
  %576 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %575)
          to label %577 unwind label %606

577:                                              ; preds = %570
  %578 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %576, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %579 unwind label %606

579:                                              ; preds = %577
  %580 = load ptr, ptr %571, align 8, !tbaa !9
  %581 = getelementptr inbounds i8, ptr %580, i64 16
  %582 = load ptr, ptr %581, align 8
  %583 = call noundef ptr %582(ptr noundef nonnull align 8 dereferenceable(8) %571) #10
  %584 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef %583)
          to label %585 unwind label %606

585:                                              ; preds = %579
  %586 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %584, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %587 unwind label %606

587:                                              ; preds = %585
  invoke void @__cxa_end_catch()
          to label %588 unwind label %608

588:                                              ; preds = %587, %560
  %.5127 = phi i8 [ %561, %560 ], [ %.4126, %587 ]
  %589 = trunc nuw i8 %.5127 to i1
  br i1 %589, label %590, label %.thread231

590:                                              ; preds = %588
  %591 = 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.117)
          to label %592 unwind label %508

592:                                              ; preds = %590
  %593 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  %594 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6qtorch7Network13GetFinalValueEv(ptr noundef nonnull align 8 dereferenceable(380) %593) #10
  %595 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %591, ptr noundef nonnull align 8 dereferenceable(16) %594)
          to label %596 unwind label %508

596:                                              ; preds = %592
  %597 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %595, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %598 unwind label %508

598:                                              ; preds = %596
  %599 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull @.str.117)
          to label %600 unwind label %508

600:                                              ; preds = %598
  %601 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  %602 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6qtorch7Network13GetFinalValueEv(ptr noundef nonnull align 8 dereferenceable(380) %601) #10
  %603 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %599, ptr noundef nonnull align 8 dereferenceable(16) %602)
          to label %604 unwind label %508

604:                                              ; preds = %600
  %605 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %603, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.thread231 unwind label %508

606:                                              ; preds = %585, %579, %577, %570
  %607 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %610 unwind label %922

608:                                              ; preds = %587
  %609 = landingpad { ptr, i32 }
          cleanup
  br label %610

610:                                              ; preds = %606, %608
  %.pn199 = phi { ptr, i32 } [ %609, %608 ], [ %607, %606 ]
  %.31 = extractvalue { ptr, i32 } %.pn199, 0
  %.3188 = extractvalue { ptr, i32 } %.pn199, 1
  br label %612

.thread231:                                       ; preds = %441, %501, %486, %604, %588, %485
  %.7129.ph = phi i8 [ %.1123, %441 ], [ %.5127, %588 ], [ %.5127, %604 ], [ 0, %486 ], [ 1, %501 ], [ 0, %485 ]
  call void @_ZN6qtorch9LineGraphD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %38) #10
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %38) #10
  br label %833

611:                                              ; preds = %414
  call void @_ZN6qtorch9LineGraphD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %38) #10
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %38) #10
  br label %909

612:                                              ; preds = %610, %567, %508, %507, %462, %461, %446, %421, %388
  %.3289 = phi i32 [ %.2380, %446 ], [ %.2279, %421 ], [ %511, %508 ], [ %.2582, %507 ], [ %465, %462 ], [ %.3188, %610 ], [ %.3087, %567 ], [ %.2481, %461 ], [ %.1774, %388 ]
  %.32 = phi ptr [ %.23, %446 ], [ %.22, %421 ], [ %510, %508 ], [ %.25, %507 ], [ %464, %462 ], [ %.31, %610 ], [ %.30, %567 ], [ %.24, %461 ], [ %.17, %388 ]
  call void @_ZN6qtorch9LineGraphD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %38) #10
  br label %613

613:                                              ; preds = %612, %380
  %.3390 = phi i32 [ %.3289, %612 ], [ %383, %380 ]
  %.33 = phi ptr [ %.32, %612 ], [ %382, %380 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %38) #10
  br label %910

614:                                              ; preds = %316
  %615 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.118)
  br i1 %615, label %616, label %679

616:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %64) #10
  call void @_ZNSt10shared_ptrIN6qtorch7NetworkEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #10
  call void @llvm.lifetime.start.p0(i64 10128, ptr nonnull %65) #10
  call void @_ZNSt10shared_ptrIN6qtorch7NetworkEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %66, ptr noundef nonnull align 8 dereferenceable(16) %15) #10
  invoke void @_ZN6qtorch16ContractionToolsC2ESt10shared_ptrINS_7NetworkEE(ptr noundef nonnull align 8 dereferenceable(10128) %65, ptr noundef nonnull %66)
          to label %617 unwind label %640

617:                                              ; preds = %616
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %66) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %67) #10
  invoke void @_ZN6qtorch16ContractionTools8ContractENS_15ContractionTypeEii(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.178") align 8 %67, ptr noundef nonnull align 8 dereferenceable(10128) %65, i32 noundef 0, i32 noundef 1, i32 noundef 1)
          to label %618 unwind label %642

618:                                              ; preds = %617
  %619 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch7NetworkEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %64, ptr noundef nonnull align 8 dereferenceable(16) %67) #10
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %67) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %67) #10
  %620 = 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.79)
          to label %621 unwind label %644

621:                                              ; preds = %618
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %68) #10
  %622 = call { double, double } @_ZN6qtorch16ContractionTools11GetFinalValEv(ptr noundef nonnull align 8 dereferenceable(10128) %65) #10
  %623 = extractvalue { double, double } %622, 0
  store double %623, ptr %68, align 8
  %624 = getelementptr inbounds i8, ptr %68, i64 8
  %625 = extractvalue { double, double } %622, 1
  store double %625, ptr %624, align 8
  %626 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %620, ptr noundef nonnull align 8 dereferenceable(16) %68)
          to label %627 unwind label %646

627:                                              ; preds = %621
  %628 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %626, ptr noundef nonnull @.str.80)
          to label %629 unwind label %646

629:                                              ; preds = %627
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #10
  %630 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull @.str.117)
          to label %631 unwind label %644

631:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %69) #10
  %632 = call { double, double } @_ZN6qtorch16ContractionTools11GetFinalValEv(ptr noundef nonnull align 8 dereferenceable(10128) %65) #10
  %633 = extractvalue { double, double } %632, 0
  store double %633, ptr %69, align 8
  %634 = getelementptr inbounds i8, ptr %69, i64 8
  %635 = extractvalue { double, double } %632, 1
  store double %635, ptr %634, align 8
  %636 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %630, ptr noundef nonnull align 8 dereferenceable(16) %69)
          to label %637 unwind label %648

637:                                              ; preds = %631
  %638 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %636, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.thread234 unwind label %648

.thread234:                                       ; preds = %637
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %69) #10
  call void @_ZN6qtorch16ContractionToolsD2Ev(ptr noundef nonnull align 8 dereferenceable(10128) %65) #10
  call void @llvm.lifetime.end.p0(i64 10128, ptr nonnull %65) #10
  %639 = call noundef zeroext i1 @_ZStneIN6qtorch7NetworkEEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %64, ptr null) #10
  %spec.select226 = zext i1 %639 to i8
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %64) #10
  br label %833

640:                                              ; preds = %616
  %641 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %66) #10
  br label %651

642:                                              ; preds = %617
  %643 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %67) #10
  br label %650

644:                                              ; preds = %629, %618
  %645 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %650

646:                                              ; preds = %627, %621
  %647 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #10
  br label %650

648:                                              ; preds = %637, %631
  %649 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %69) #10
  br label %650

650:                                              ; preds = %648, %646, %644, %642
  %.pn180 = phi { ptr, i32 } [ %649, %648 ], [ %645, %644 ], [ %647, %646 ], [ %643, %642 ]
  call void @_ZN6qtorch16ContractionToolsD2Ev(ptr noundef nonnull align 8 dereferenceable(10128) %65) #10
  br label %651

651:                                              ; preds = %650, %640
  %.pn180.pn = phi { ptr, i32 } [ %.pn180, %650 ], [ %641, %640 ]
  %.35 = extractvalue { ptr, i32 } %.pn180.pn, 0
  %.3592 = extractvalue { ptr, i32 } %.pn180.pn, 1
  call void @llvm.lifetime.end.p0(i64 10128, ptr nonnull %65) #10
  %652 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #10
  %653 = icmp eq i32 %.3592, %652
  br i1 %653, label %654, label %678

654:                                              ; preds = %651
  %655 = call ptr @__cxa_begin_catch(ptr %.35) #10
  %656 = load ptr, ptr %655, align 8, !tbaa !9
  %657 = getelementptr inbounds i8, ptr %656, i64 16
  %658 = load ptr, ptr %657, align 8
  %659 = call noundef ptr %658(ptr noundef nonnull align 8 dereferenceable(8) %655) #10
  %660 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %659)
          to label %661 unwind label %672

661:                                              ; preds = %654
  %662 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %660, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %663 unwind label %672

663:                                              ; preds = %661
  %664 = load ptr, ptr %655, align 8, !tbaa !9
  %665 = getelementptr inbounds i8, ptr %664, i64 16
  %666 = load ptr, ptr %665, align 8
  %667 = call noundef ptr %666(ptr noundef nonnull align 8 dereferenceable(8) %655) #10
  %668 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef %667)
          to label %669 unwind label %672

669:                                              ; preds = %663
  %670 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %668, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %671 unwind label %672

671:                                              ; preds = %669
  invoke void @__cxa_end_catch()
          to label %677 unwind label %674

672:                                              ; preds = %669, %663, %661, %654
  %673 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %676 unwind label %922

674:                                              ; preds = %671
  %675 = landingpad { ptr, i32 }
          cleanup
  br label %676

676:                                              ; preds = %672, %674
  %.pn183 = phi { ptr, i32 } [ %675, %674 ], [ %673, %672 ]
  %.36 = extractvalue { ptr, i32 } %.pn183, 0
  %.3693 = extractvalue { ptr, i32 } %.pn183, 1
  br label %678

677:                                              ; preds = %671
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %64) #10
  br label %909

678:                                              ; preds = %676, %651
  %.3794 = phi i32 [ %.3693, %676 ], [ %.3592, %651 ]
  %.37 = phi ptr [ %.36, %676 ], [ %.35, %651 ]
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %64) #10
  br label %910

679:                                              ; preds = %614
  %680 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.119)
  br i1 %680, label %681, label %831

681:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %70) #10
  call void @_ZNSt10shared_ptrIN6qtorch7NetworkEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %72) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %73) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull @.str.120, ptr noundef nonnull align 1 dereferenceable(1) %73)
          to label %682 unwind label %715

682:                                              ; preds = %681
  %683 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE4findERS9_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(32) %72)
          to label %684 unwind label %717

684:                                              ; preds = %682
  store ptr %683, ptr %71, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #10
  %685 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %3) #10
  store ptr %685, ptr %74, align 8
  %686 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 8 dereferenceable(8) %74) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #10
  br i1 %686, label %687, label %761

687:                                              ; preds = %684
  %688 = 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.121)
          to label %689 unwind label %720

689:                                              ; preds = %687
  %690 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %688, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %691 unwind label %720

691:                                              ; preds = %689
  call void @llvm.lifetime.start.p0(i64 10128, ptr nonnull %75) #10
  call void @_ZNSt10shared_ptrIN6qtorch7NetworkEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %76, ptr noundef nonnull align 8 dereferenceable(16) %15) #10
  invoke void @_ZN6qtorch16ContractionToolsC2ESt10shared_ptrINS_7NetworkEE(ptr noundef nonnull align 8 dereferenceable(10128) %75, ptr noundef nonnull %76)
          to label %692 unwind label %724

692:                                              ; preds = %691
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %77) #10
  invoke void @_ZN6qtorch16ContractionTools8ContractENS_15ContractionTypeEii(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.178") align 8 %77, ptr noundef nonnull align 8 dereferenceable(10128) %75, i32 noundef 0, i32 noundef 1, i32 noundef 1)
          to label %693 unwind label %726

693:                                              ; preds = %692
  %694 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch7NetworkEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %70, ptr noundef nonnull align 8 dereferenceable(16) %77) #10
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %77) #10
  %695 = 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.79)
          to label %696 unwind label %728

696:                                              ; preds = %693
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %78) #10
  %697 = call { double, double } @_ZN6qtorch16ContractionTools11GetFinalValEv(ptr noundef nonnull align 8 dereferenceable(10128) %75) #10
  %698 = extractvalue { double, double } %697, 0
  store double %698, ptr %78, align 8
  %699 = getelementptr inbounds i8, ptr %78, i64 8
  %700 = extractvalue { double, double } %697, 1
  store double %700, ptr %699, align 8
  %701 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %695, ptr noundef nonnull align 8 dereferenceable(16) %78)
          to label %702 unwind label %730

702:                                              ; preds = %696
  %703 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %701, ptr noundef nonnull @.str.80)
          to label %704 unwind label %730

704:                                              ; preds = %702
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %78) #10
  %705 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull @.str.117)
          to label %706 unwind label %728

706:                                              ; preds = %704
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %79) #10
  %707 = call { double, double } @_ZN6qtorch16ContractionTools11GetFinalValEv(ptr noundef nonnull align 8 dereferenceable(10128) %75) #10
  %708 = extractvalue { double, double } %707, 0
  store double %708, ptr %79, align 8
  %709 = getelementptr inbounds i8, ptr %79, i64 8
  %710 = extractvalue { double, double } %707, 1
  store double %710, ptr %709, align 8
  %711 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %705, ptr noundef nonnull align 8 dereferenceable(16) %79)
          to label %712 unwind label %732

712:                                              ; preds = %706
  %713 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %711, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %714 unwind label %732

714:                                              ; preds = %712
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %79) #10
  call void @_ZN6qtorch16ContractionToolsD2Ev(ptr noundef nonnull align 8 dereferenceable(10128) %75) #10
  call void @llvm.lifetime.end.p0(i64 10128, ptr nonnull %75) #10
  br label %.thread239

715:                                              ; preds = %681
  %716 = landingpad { ptr, i32 }
          cleanup
  br label %719

717:                                              ; preds = %682
  %718 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #10
  br label %719

719:                                              ; preds = %717, %715
  %.pn166 = phi { ptr, i32 } [ %718, %717 ], [ %716, %715 ]
  %.38 = extractvalue { ptr, i32 } %.pn166, 0
  %.3895 = extractvalue { ptr, i32 } %.pn166, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #10
  br label %830

720:                                              ; preds = %689, %687
  %721 = landingpad { ptr, i32 }
          cleanup
  %722 = extractvalue { ptr, i32 } %721, 0
  %723 = extractvalue { ptr, i32 } %721, 1
  br label %830

724:                                              ; preds = %691
  %725 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #10
  br label %735

726:                                              ; preds = %692
  %727 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %77) #10
  br label %734

728:                                              ; preds = %704, %693
  %729 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %734

730:                                              ; preds = %702, %696
  %731 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %78) #10
  br label %734

732:                                              ; preds = %712, %706
  %733 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %79) #10
  br label %734

734:                                              ; preds = %732, %730, %728, %726
  %.pn175 = phi { ptr, i32 } [ %733, %732 ], [ %729, %728 ], [ %731, %730 ], [ %727, %726 ]
  call void @_ZN6qtorch16ContractionToolsD2Ev(ptr noundef nonnull align 8 dereferenceable(10128) %75) #10
  br label %735

735:                                              ; preds = %734, %724
  %.pn175.pn = phi { ptr, i32 } [ %.pn175, %734 ], [ %725, %724 ]
  %.40 = extractvalue { ptr, i32 } %.pn175.pn, 0
  %.4097 = extractvalue { ptr, i32 } %.pn175.pn, 1
  call void @llvm.lifetime.end.p0(i64 10128, ptr nonnull %75) #10
  %736 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #10
  %737 = icmp eq i32 %.4097, %736
  br i1 %737, label %738, label %830

738:                                              ; preds = %735
  %739 = call ptr @__cxa_begin_catch(ptr %.40) #10
  %740 = load ptr, ptr %739, align 8, !tbaa !9
  %741 = getelementptr inbounds i8, ptr %740, i64 16
  %742 = load ptr, ptr %741, align 8
  %743 = call noundef ptr %742(ptr noundef nonnull align 8 dereferenceable(8) %739) #10
  %744 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %743)
          to label %745 unwind label %756

745:                                              ; preds = %738
  %746 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %744, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %747 unwind label %756

747:                                              ; preds = %745
  %748 = load ptr, ptr %739, align 8, !tbaa !9
  %749 = getelementptr inbounds i8, ptr %748, i64 16
  %750 = load ptr, ptr %749, align 8
  %751 = call noundef ptr %750(ptr noundef nonnull align 8 dereferenceable(8) %739) #10
  %752 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef %751)
          to label %753 unwind label %756

753:                                              ; preds = %747
  %754 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %752, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %755 unwind label %756

755:                                              ; preds = %753
  invoke void @__cxa_end_catch()
          to label %829 unwind label %758

756:                                              ; preds = %753, %747, %745, %738
  %757 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %760 unwind label %922

758:                                              ; preds = %755
  %759 = landingpad { ptr, i32 }
          cleanup
  br label %760

760:                                              ; preds = %756, %758
  %.pn178 = phi { ptr, i32 } [ %759, %758 ], [ %757, %756 ]
  %.41 = extractvalue { ptr, i32 } %.pn178, 0
  %.4198 = extractvalue { ptr, i32 } %.pn178, 1
  br label %830

761:                                              ; preds = %684
  call void @llvm.lifetime.start.p0(i64 10128, ptr nonnull %80) #10
  call void @_ZNSt10shared_ptrIN6qtorch7NetworkEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %81, ptr noundef nonnull align 8 dereferenceable(16) %15) #10
  invoke void @_ZN6qtorch16ContractionToolsC2ESt10shared_ptrINS_7NetworkEE(ptr noundef nonnull align 8 dereferenceable(10128) %80, ptr noundef nonnull %81)
          to label %762 unwind label %788

762:                                              ; preds = %761
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %82) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %84) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull @.str.120, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %763 unwind label %790

763:                                              ; preds = %762
  %764 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %765 unwind label %792

765:                                              ; preds = %763
  invoke void @_ZN6qtorch16ContractionTools34ContractUserDefinedSequenceOfWiresERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.178") align 8 %82, ptr noundef nonnull align 8 dereferenceable(10128) %80, ptr noundef nonnull align 8 dereferenceable(32) %764)
          to label %766 unwind label %792

766:                                              ; preds = %765
  %767 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6qtorch7NetworkEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %70, ptr noundef nonnull align 8 dereferenceable(16) %82) #10
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %82) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %82) #10
  %768 = 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.79)
          to label %769 unwind label %795

769:                                              ; preds = %766
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %85) #10
  %770 = call { double, double } @_ZN6qtorch16ContractionTools11GetFinalValEv(ptr noundef nonnull align 8 dereferenceable(10128) %80) #10
  %771 = extractvalue { double, double } %770, 0
  store double %771, ptr %85, align 8
  %772 = getelementptr inbounds i8, ptr %85, i64 8
  %773 = extractvalue { double, double } %770, 1
  store double %773, ptr %772, align 8
  %774 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %768, ptr noundef nonnull align 8 dereferenceable(16) %85)
          to label %775 unwind label %797

775:                                              ; preds = %769
  %776 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %774, ptr noundef nonnull @.str.80)
          to label %777 unwind label %797

777:                                              ; preds = %775
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %85) #10
  %778 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull @.str.117)
          to label %779 unwind label %795

779:                                              ; preds = %777
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %86) #10
  %780 = call { double, double } @_ZN6qtorch16ContractionTools11GetFinalValEv(ptr noundef nonnull align 8 dereferenceable(10128) %80) #10
  %781 = extractvalue { double, double } %780, 0
  store double %781, ptr %86, align 8
  %782 = getelementptr inbounds i8, ptr %86, i64 8
  %783 = extractvalue { double, double } %780, 1
  store double %783, ptr %782, align 8
  %784 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E(ptr noundef nonnull align 8 dereferenceable(8) %778, ptr noundef nonnull align 8 dereferenceable(16) %86)
          to label %785 unwind label %799

785:                                              ; preds = %779
  %786 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %784, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %787 unwind label %799

787:                                              ; preds = %785
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %86) #10
  call void @_ZN6qtorch16ContractionToolsD2Ev(ptr noundef nonnull align 8 dereferenceable(10128) %80) #10
  call void @llvm.lifetime.end.p0(i64 10128, ptr nonnull %80) #10
  br label %.thread239

788:                                              ; preds = %761
  %789 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #10
  br label %802

790:                                              ; preds = %762
  %791 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %794

792:                                              ; preds = %765, %763
  %793 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #10
  br label %794

794:                                              ; preds = %792, %790
  %.pn168 = phi { ptr, i32 } [ %793, %792 ], [ %791, %790 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %82) #10
  br label %801

795:                                              ; preds = %777, %766
  %796 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %801

797:                                              ; preds = %775, %769
  %798 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %85) #10
  br label %801

799:                                              ; preds = %785, %779
  %800 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %86) #10
  br label %801

801:                                              ; preds = %799, %797, %795, %794
  %.pn170 = phi { ptr, i32 } [ %800, %799 ], [ %796, %795 ], [ %798, %797 ], [ %.pn168, %794 ]
  call void @_ZN6qtorch16ContractionToolsD2Ev(ptr noundef nonnull align 8 dereferenceable(10128) %80) #10
  br label %802

802:                                              ; preds = %801, %788
  %.pn170.pn = phi { ptr, i32 } [ %.pn170, %801 ], [ %789, %788 ]
  %.44 = extractvalue { ptr, i32 } %.pn170.pn, 0
  %.44101 = extractvalue { ptr, i32 } %.pn170.pn, 1
  call void @llvm.lifetime.end.p0(i64 10128, ptr nonnull %80) #10
  %803 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #10
  %804 = icmp eq i32 %.44101, %803
  br i1 %804, label %805, label %830

805:                                              ; preds = %802
  %806 = call ptr @__cxa_begin_catch(ptr %.44) #10
  %807 = load ptr, ptr %806, align 8, !tbaa !9
  %808 = getelementptr inbounds i8, ptr %807, i64 16
  %809 = load ptr, ptr %808, align 8
  %810 = call noundef ptr %809(ptr noundef nonnull align 8 dereferenceable(8) %806) #10
  %811 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %810)
          to label %812 unwind label %823

812:                                              ; preds = %805
  %813 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %811, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %814 unwind label %823

814:                                              ; preds = %812
  %815 = load ptr, ptr %806, align 8, !tbaa !9
  %816 = getelementptr inbounds i8, ptr %815, i64 16
  %817 = load ptr, ptr %816, align 8
  %818 = call noundef ptr %817(ptr noundef nonnull align 8 dereferenceable(8) %806) #10
  %819 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef %818)
          to label %820 unwind label %823

820:                                              ; preds = %814
  %821 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %819, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %822 unwind label %823

822:                                              ; preds = %820
  invoke void @__cxa_end_catch()
          to label %829 unwind label %825

823:                                              ; preds = %820, %814, %812, %805
  %824 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %827 unwind label %922

825:                                              ; preds = %822
  %826 = landingpad { ptr, i32 }
          cleanup
  br label %827

827:                                              ; preds = %823, %825
  %.pn173 = phi { ptr, i32 } [ %826, %825 ], [ %824, %823 ]
  %.45 = extractvalue { ptr, i32 } %.pn173, 0
  %.45102 = extractvalue { ptr, i32 } %.pn173, 1
  br label %830

.thread239:                                       ; preds = %787, %714
  %828 = call noundef zeroext i1 @_ZStneIN6qtorch7NetworkEEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %70, ptr null) #10
  %.11133.ph = zext i1 %828 to i8
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %70) #10
  br label %833

829:                                              ; preds = %822, %755
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %70) #10
  br label %909

830:                                              ; preds = %827, %802, %760, %735, %720, %719
  %.46103 = phi i32 [ %.4198, %760 ], [ %.4097, %735 ], [ %723, %720 ], [ %.45102, %827 ], [ %.44101, %802 ], [ %.3895, %719 ]
  %.46 = phi ptr [ %.41, %760 ], [ %.40, %735 ], [ %722, %720 ], [ %.45, %827 ], [ %.44, %802 ], [ %.38, %719 ]
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %70) #10
  br label %910

831:                                              ; preds = %679
  %832 = 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.122)
          to label %909 unwind label %376

833:                                              ; preds = %.thread239, %.thread234, %.thread231
  %.12134 = phi i8 [ %.7129.ph, %.thread231 ], [ %spec.select226, %.thread234 ], [ %.11133.ph, %.thread239 ]
  %834 = trunc nuw i8 %.12134 to i1
  br i1 %834, label %835, label %880

835:                                              ; preds = %833
  %836 = 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.123)
          to label %837 unwind label %376

837:                                              ; preds = %835
  %838 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  %839 = call noundef i64 @_ZN6qtorch7Network14getNumFloatOpsEv(ptr noundef nonnull align 8 dereferenceable(380) %838) #10
  %840 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEx(ptr noundef nonnull align 8 dereferenceable(8) %836, i64 noundef %839)
          to label %841 unwind label %376

841:                                              ; preds = %837
  %842 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %840, ptr noundef nonnull @.str.80)
          to label %843 unwind label %376

843:                                              ; preds = %841
  %844 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull @.str.123)
          to label %845 unwind label %376

845:                                              ; preds = %843
  %846 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  %847 = call noundef i64 @_ZN6qtorch7Network14getNumFloatOpsEv(ptr noundef nonnull align 8 dereferenceable(380) %846) #10
  %848 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEx(ptr noundef nonnull align 8 dereferenceable(8) %844, i64 noundef %847)
          to label %849 unwind label %376

849:                                              ; preds = %845
  %850 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %848, ptr noundef nonnull @.str.80)
          to label %851 unwind label %376

851:                                              ; preds = %849
  %852 = 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.124)
          to label %853 unwind label %376

853:                                              ; preds = %851
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #10
  %854 = invoke noundef double @_ZN6qtorch5Timer10getElapsedEv(ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %855 unwind label %870

855:                                              ; preds = %853
  invoke void @_Z13formattedTimeB5cxx11d(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %87, double noundef %854)
          to label %856 unwind label %870

856:                                              ; preds = %855
  %857 = 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) %852, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %858 unwind label %872

858:                                              ; preds = %856
  %859 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %857, ptr noundef nonnull @.str.80)
          to label %860 unwind label %872

860:                                              ; preds = %858
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #10
  %861 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull @.str.124)
          to label %862 unwind label %376

862:                                              ; preds = %860
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %88) #10
  %863 = invoke noundef double @_ZN6qtorch5Timer10getElapsedEv(ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %864 unwind label %875

864:                                              ; preds = %862
  invoke void @_Z13formattedTimeB5cxx11d(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %88, double noundef %863)
          to label %865 unwind label %875

865:                                              ; preds = %864
  %866 = 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) %861, ptr noundef nonnull align 8 dereferenceable(32) %88)
          to label %867 unwind label %877

867:                                              ; preds = %865
  %868 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %866, ptr noundef nonnull @.str.80)
          to label %869 unwind label %877

869:                                              ; preds = %867
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #10
  br label %909

870:                                              ; preds = %855, %853
  %871 = landingpad { ptr, i32 }
          cleanup
  br label %874

872:                                              ; preds = %858, %856
  %873 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #10
  br label %874

874:                                              ; preds = %872, %870
  %.pn219 = phi { ptr, i32 } [ %873, %872 ], [ %871, %870 ]
  %.47 = extractvalue { ptr, i32 } %.pn219, 0
  %.47104 = extractvalue { ptr, i32 } %.pn219, 1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #10
  br label %910

875:                                              ; preds = %864, %862
  %876 = landingpad { ptr, i32 }
          cleanup
  br label %879

877:                                              ; preds = %867, %865
  %878 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #10
  br label %879

879:                                              ; preds = %877, %875
  %.pn221 = phi { ptr, i32 } [ %878, %877 ], [ %876, %875 ]
  %.48 = extractvalue { ptr, i32 } %.pn221, 0
  %.48105 = extractvalue { ptr, i32 } %.pn221, 1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #10
  br label %910

880:                                              ; preds = %833
  %881 = 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.125)
          to label %882 unwind label %376

882:                                              ; preds = %880
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #10
  %883 = invoke noundef double @_ZN6qtorch5Timer10getElapsedEv(ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %884 unwind label %899

884:                                              ; preds = %882
  invoke void @_Z13formattedTimeB5cxx11d(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %89, double noundef %883)
          to label %885 unwind label %899

885:                                              ; preds = %884
  %886 = 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) %881, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %887 unwind label %901

887:                                              ; preds = %885
  %888 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %886, ptr noundef nonnull @.str.80)
          to label %889 unwind label %901

889:                                              ; preds = %887
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #10
  %890 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull @.str.125)
          to label %891 unwind label %376

891:                                              ; preds = %889
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %90) #10
  %892 = invoke noundef double @_ZN6qtorch5Timer10getElapsedEv(ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %893 unwind label %904

893:                                              ; preds = %891
  invoke void @_Z13formattedTimeB5cxx11d(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %90, double noundef %892)
          to label %894 unwind label %904

894:                                              ; preds = %893
  %895 = 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) %890, ptr noundef nonnull align 8 dereferenceable(32) %90)
          to label %896 unwind label %906

896:                                              ; preds = %894
  %897 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %895, ptr noundef nonnull @.str.80)
          to label %898 unwind label %906

898:                                              ; preds = %896
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #10
  br label %909

899:                                              ; preds = %884, %882
  %900 = landingpad { ptr, i32 }
          cleanup
  br label %903

901:                                              ; preds = %887, %885
  %902 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #10
  br label %903

903:                                              ; preds = %901, %899
  %.pn215 = phi { ptr, i32 } [ %902, %901 ], [ %900, %899 ]
  %.49 = extractvalue { ptr, i32 } %.pn215, 0
  %.49106 = extractvalue { ptr, i32 } %.pn215, 1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #10
  br label %910

904:                                              ; preds = %893, %891
  %905 = landingpad { ptr, i32 }
          cleanup
  br label %908

906:                                              ; preds = %896, %894
  %907 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #10
  br label %908

908:                                              ; preds = %906, %904
  %.pn217 = phi { ptr, i32 } [ %907, %906 ], [ %905, %904 ]
  %.50 = extractvalue { ptr, i32 } %.pn217, 0
  %.50107 = extractvalue { ptr, i32 } %.pn217, 1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #10
  br label %910

909:                                              ; preds = %829, %677, %611, %831, %869, %898
  %.3 = phi i32 [ 0, %869 ], [ -1, %898 ], [ 0, %611 ], [ -1, %677 ], [ -1, %829 ], [ -1, %831 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #10
  br label %913

910:                                              ; preds = %908, %903, %879, %874, %830, %678, %613, %376
  %.51108 = phi i32 [ %.48105, %879 ], [ %379, %376 ], [ %.47104, %874 ], [ %.50107, %908 ], [ %.49106, %903 ], [ %.3390, %613 ], [ %.3794, %678 ], [ %.46103, %830 ]
  %.51 = phi ptr [ %.48, %879 ], [ %378, %376 ], [ %.47, %874 ], [ %.50, %908 ], [ %.49, %903 ], [ %.33, %613 ], [ %.37, %678 ], [ %.46, %830 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  br label %911

911:                                              ; preds = %910, %375
  %.52109 = phi i32 [ %.51108, %910 ], [ %.1673, %375 ]
  %.52 = phi ptr [ %.51, %910 ], [ %.16, %375 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #10
  br label %912

912:                                              ; preds = %911, %370, %362
  %.53110 = phi i32 [ %.52109, %911 ], [ %.1572, %370 ], [ %365, %362 ]
  %.53 = phi ptr [ %.52, %911 ], [ %.15, %370 ], [ %364, %362 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #10
  br label %914

913:                                              ; preds = %221, %909
  %.4 = phi i32 [ %.3, %909 ], [ -1, %221 ]
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #10
  br label %915

914:                                              ; preds = %912, %361, %356, %270, %265, %251, %226, %201
  %.54111 = phi i32 [ %.53110, %912 ], [ %254, %251 ], [ %.1471, %361 ], [ %.1370, %356 ], [ %.1269, %270 ], [ %.1168, %265 ], [ %.865, %226 ], [ %.764, %201 ]
  %.54 = phi ptr [ %.53, %912 ], [ %253, %251 ], [ %.14, %361 ], [ %.13, %356 ], [ %.12, %270 ], [ %.11, %265 ], [ %.8, %226 ], [ %.7, %201 ]
  call void @_ZNSt12__shared_ptrIN6qtorch7NetworkELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #10
  br label %916

915:                                              ; preds = %144, %913
  %.5 = phi i32 [ %.4, %913 ], [ -1, %144 ]
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %12) #10
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %12) #10
  call void @_ZN6qtorch10leviParserD2Ev(ptr noundef nonnull align 8 dereferenceable(192) %3) #10
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %3) #10
  br label %921

916:                                              ; preds = %914, %175
  %.55112 = phi i32 [ %178, %175 ], [ %.54111, %914 ]
  %.55 = phi ptr [ %177, %175 ], [ %.54, %914 ]
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %12) #10
  br label %917

917:                                              ; preds = %916, %174
  %.56113 = phi i32 [ %.55112, %916 ], [ %.461, %174 ]
  %.56 = phi ptr [ %.55, %916 ], [ %.454, %174 ]
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %12) #10
  br label %918

918:                                              ; preds = %917, %169, %164, %159, %154, %146
  %.57114 = phi i32 [ %.56113, %917 ], [ %.360, %169 ], [ %149, %146 ], [ %.259, %164 ], [ %.158, %159 ], [ %.057, %154 ]
  %.57 = phi ptr [ %.56, %917 ], [ %.353, %169 ], [ %148, %146 ], [ %.252, %164 ], [ %.151, %159 ], [ %.050, %154 ]
  call void @_ZN6qtorch10leviParserD2Ev(ptr noundef nonnull align 8 dereferenceable(192) %3) #10
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %3) #10
  %919 = insertvalue { ptr, i32 } poison, ptr %.57, 0
  %920 = insertvalue { ptr, i32 } %919, i32 %.57114, 1
  resume { ptr, i32 } %920

921:                                              ; preds = %915, %92
  %.6 = phi i32 [ -1, %92 ], [ %.5, %915 ]
  ret i32 %.6

922:                                              ; preds = %823, %756, %672, %606, %503, %442, %222
  %923 = landingpad { ptr, i32 }
          catch ptr null
  %924 = extractvalue { ptr, i32 } %923, 0
  call void @__clang_call_terminate(ptr %924) #11
  unreachable
}

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

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

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

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

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

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #8

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #9

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { double, double } @_ZN6qtorch16ContractionTools11GetFinalValEv(ptr noundef nonnull align 8 dereferenceable(10128)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

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

declare void @_ZN6qtorch9LineGraphC1ESt10shared_ptrINS_7NetworkEE(ptr, ptr) local_unnamed_addr

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{i8 0, i8 2}
!16 = !{}


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass