; LLVM IR from NervanaSystems/ngraph :: src/ngraph/op/crossentropy.ll (ZNK6ngraph2op2v020CrossEntropyBackprop12decompose_opEv)

; 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.ngraph::Output" = type { %"class.std::shared_ptr.74", i64 }
%"class.std::shared_ptr.74" = type { %"class.std::__shared_ptr.75" }
%"class.std::__shared_ptr.75" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.85" = type { %"class.std::__shared_ptr.86" }
%"class.std::__shared_ptr.86" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.89" = type { %"class.std::__shared_ptr.90" }
%"class.std::__shared_ptr.90" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.82" = type { %"class.std::__shared_ptr.83" }
%"class.std::__shared_ptr.83" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector.69" = type { %"struct.std::_Vector_base.70" }
%"struct.std::_Vector_base.70" = type { %"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl" }
%"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.ngraph::AxisVector" = type { %"class.std::vector.77" }
%"class.std::vector.77" = type { %"struct.std::_Vector_base.78" }
%"struct.std::_Vector_base.78" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list.88" = type { ptr, i64 }
%"class.ngraph::Shape" = type { %"class.std::vector.77" }
%"class.ngraph::AxisSet" = type { %"class.std::set.92" }
%"class.std::set.92" = type { %"class.std::_Rb_tree.93" }
%"class.std::_Rb_tree.93" = type { %"struct.std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>>::_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::shared_ptr.98" = type { %"class.std::__shared_ptr.99" }
%"class.std::__shared_ptr.99" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.113" = type { %"class.std::__shared_ptr.114" }
%"class.std::__shared_ptr.114" = type { ptr, %"class.std::__shared_count" }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.std::allocator.71" = type { i8 }
%"class.ngraph::op::v0::CrossEntropyBackprop" = type { %"class.ngraph::op::util::FusedOp", i8, i64 }
%"class.ngraph::op::util::FusedOp" = type { %"class.ngraph::op::Op" }
%"class.ngraph::op::Op" = type { %"class.ngraph::Node" }
%"class.ngraph::Node" = type { ptr, %"class.std::enable_shared_from_this", %"class.std::unordered_set", %"class.std::unordered_set", %"class.std::vector", %"class.std::vector.5", %"class.std::__cxx11::basic_string", i64, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::unordered_set.13", %"class.std::set", %"class.std::deque", %"class.std::deque.39", %"class.std::unordered_map", i32, %"class.std::shared_ptr", %"class.std::map" }
%"class.std::enable_shared_from_this" = type { %"class.std::weak_ptr" }
%"class.std::weak_ptr" = type { %"class.std::__weak_ptr" }
%"class.std::__weak_ptr" = type { ptr, %"class.std::__weak_count" }
%"class.std::__weak_count" = type { ptr }
%"class.std::unordered_set" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<ngraph::Node *, std::allocator<ngraph::Node *>>::_Vector_impl" }
%"struct.std::_Vector_base<ngraph::Node *, std::allocator<ngraph::Node *>>::_Vector_impl" = type { %"struct.std::_Vector_base<ngraph::Node *, std::allocator<ngraph::Node *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ngraph::Node *, std::allocator<ngraph::Node *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = type { %"struct.std::_Vector_base<std::shared_ptr<ngraph::Node>, std::allocator<std::shared_ptr<ngraph::Node>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<ngraph::Node>, std::allocator<std::shared_ptr<ngraph::Node>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<ngraph::Node>, std::allocator<std::shared_ptr<ngraph::Node>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<ngraph::Node>, std::allocator<std::shared_ptr<ngraph::Node>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::unordered_set.13" = type { %"class.std::_Hashtable.14" }
%"class.std::_Hashtable.14" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::shared_ptr<ngraph::Node>, std::shared_ptr<ngraph::Node>, std::_Identity<std::shared_ptr<ngraph::Node>>, std::less<std::shared_ptr<ngraph::Node>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::shared_ptr<ngraph::Node>, std::shared_ptr<ngraph::Node>, std::_Identity<std::shared_ptr<ngraph::Node>>, std::less<std::shared_ptr<ngraph::Node>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<ngraph::descriptor::Input, std::allocator<ngraph::descriptor::Input>>::_Deque_impl" }
%"struct.std::_Deque_base<ngraph::descriptor::Input, std::allocator<ngraph::descriptor::Input>>::_Deque_impl" = type { %"struct.std::_Deque_base<ngraph::descriptor::Input, std::allocator<ngraph::descriptor::Input>>::_Deque_impl_data" }
%"struct.std::_Deque_base<ngraph::descriptor::Input, std::allocator<ngraph::descriptor::Input>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"class.std::deque.39" = type { %"class.std::_Deque_base.40" }
%"class.std::_Deque_base.40" = type { %"struct.std::_Deque_base<ngraph::descriptor::Output, std::allocator<ngraph::descriptor::Output>>::_Deque_impl" }
%"struct.std::_Deque_base<ngraph::descriptor::Output, std::allocator<ngraph::descriptor::Output>>::_Deque_impl" = type { %"struct.std::_Deque_base<ngraph::descriptor::Output, std::allocator<ngraph::descriptor::Output>>::_Deque_impl_data" }
%"struct.std::_Deque_base<ngraph::descriptor::Output, std::allocator<ngraph::descriptor::Output>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator.44", %"struct.std::_Deque_iterator.44" }
%"struct.std::_Deque_iterator.44" = type { ptr, ptr, ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable.45" }
%"class.std::_Hashtable.45" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::map" = type { %"class.std::_Rb_tree.64" }
%"class.std::_Rb_tree.64" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<ngraph::Variant>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<ngraph::Variant>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<ngraph::Variant>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<ngraph::Variant>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN6ngraph6OutputINS0_4NodeEEESaIS3_EEC2ESt16initializer_listIS3_ERKS4_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL13get_2d_tensorN6ngraph6OutputINS_4NodeEEE(ptr dead_on_unwind noalias writable sret(%"class.ngraph::Output") align 8, ptr noundef) #3

declare void @_ZNK6ngraph4Node11input_valueEm(ptr dead_on_unwind writable sret(%"class.ngraph::Output") align 8, ptr noundef nonnull align 8 dereferenceable(680), i64 noundef) #4

declare noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24)) #4

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL11create_maskN6ngraph6OutputINS_4NodeEEES2_l(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.74") align 8, ptr noundef, ptr noundef, i64 noundef) #3

declare noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24)) #4

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

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

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

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

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

declare void @_ZN6ngraph10AxisVectorC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4

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

declare void @_ZN6ngraph5ShapeC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6ngraph2op2v09BroadcastEJRSt10shared_ptrINS2_7ReshapeEERKNS0_5ShapeENS0_7AxisSetEEES4_INSt9enable_ifIXntsr8is_arrayIT_EE5valueESD_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.89") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(48)) #5

declare void @_ZN6ngraph7AxisSetC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4

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

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

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

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

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

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

declare noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph4Node16get_output_shapeEm(ptr noundef nonnull align 8 dereferenceable(680), i64 noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL12expand_shapeSt10shared_ptrIN6ngraph4NodeEENS0_6OutputIS1_EE(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.74") align 8, ptr noundef, ptr noundef) #3

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

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

declare void @_ZN6ngraphmlERKNS_6OutputINS_4NodeEEES4_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.74") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #4

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK6ngraph2op2v020CrossEntropyBackprop12decompose_opEv(ptr dead_on_unwind noalias writable sret(%"class.std::vector.69") align 8 %0, ptr noundef nonnull align 8 dereferenceable(696) %1) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca %"class.ngraph::Output", align 8
  %6 = alloca %"class.ngraph::Output", align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %"class.ngraph::Output", align 8
  %10 = alloca %"class.ngraph::Output", align 8
  %11 = alloca %"class.ngraph::Output", align 8
  %12 = alloca %"class.ngraph::Output", align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca %"class.std::shared_ptr.74", align 8
  %17 = alloca %"class.std::shared_ptr.85", align 8
  %18 = alloca %"class.ngraph::AxisVector", align 8
  %19 = alloca %"class.std::initializer_list.88", align 8
  %20 = alloca [2 x i64], align 8
  %21 = alloca %"class.ngraph::Shape", align 8
  %22 = alloca %"class.std::initializer_list.88", align 8
  %23 = alloca [1 x i64], align 8
  %24 = alloca %"class.std::shared_ptr.89", align 8
  %25 = alloca %"class.ngraph::AxisSet", align 8
  %26 = alloca %"class.std::initializer_list.88", align 8
  %27 = alloca [1 x i64], align 8
  %28 = alloca %"class.std::shared_ptr.74", align 8
  %29 = alloca %"class.ngraph::Output", align 8
  %30 = alloca %"class.ngraph::Output", align 8
  %31 = alloca %"class.std::shared_ptr.85", align 8
  %32 = alloca %"class.ngraph::AxisVector", align 8
  %33 = alloca %"class.std::initializer_list.88", align 8
  %34 = alloca [2 x i64], align 8
  %35 = alloca %"class.ngraph::Shape", align 8
  %36 = alloca %"class.std::initializer_list.88", align 8
  %37 = alloca [1 x i64], align 8
  %38 = alloca %"class.std::shared_ptr.89", align 8
  %39 = alloca %"class.ngraph::AxisSet", align 8
  %40 = alloca %"class.std::initializer_list.88", align 8
  %41 = alloca [1 x i64], align 8
  %42 = alloca %"class.ngraph::Output", align 8
  %43 = alloca %"class.std::shared_ptr.85", align 8
  %44 = alloca %"class.ngraph::AxisVector", align 8
  %45 = alloca %"class.std::initializer_list.88", align 8
  %46 = alloca [2 x i64], align 8
  %47 = alloca %"class.ngraph::Shape", align 8
  %48 = alloca %"class.std::initializer_list.88", align 8
  %49 = alloca [1 x i64], align 8
  %50 = alloca %"class.std::shared_ptr.98", align 8
  %51 = alloca %"class.ngraph::Output", align 8
  %52 = alloca %"class.std::shared_ptr.82", align 8
  %53 = alloca %"class.std::shared_ptr.74", align 8
  %54 = alloca %"class.std::shared_ptr.113", align 8
  %55 = alloca %"class.std::shared_ptr.74", align 8
  %56 = alloca %"class.ngraph::Output", align 8
  %57 = alloca %"class.std::shared_ptr.74", align 8
  %58 = alloca %"class.ngraph::Output", align 8
  %59 = alloca %"class.std::shared_ptr.74", align 8
  %60 = alloca %"class.ngraph::Output", align 8
  %61 = alloca %"class.ngraph::Output", align 8
  %62 = alloca %"class.std::initializer_list", align 8
  %63 = alloca [1 x %"class.ngraph::Output"], align 8
  %64 = alloca ptr, align 8
  %65 = alloca %"class.std::shared_ptr.74", align 8
  %66 = alloca %"class.std::shared_ptr.74", align 8
  %67 = alloca %"class.ngraph::Output", align 8
  %68 = alloca i1, align 1
  %69 = alloca %"class.std::allocator.71", align 1
  store ptr %0, ptr %3, align 8
  store ptr %1, ptr %4, align 8, !tbaa !5
  %70 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %5) #7
  call void @_ZNK6ngraph4Node11input_valueEm(ptr dead_on_unwind writable sret(%"class.ngraph::Output") align 8 %6, ptr noundef nonnull align 8 dereferenceable(680) %70, i64 noundef 0)
  invoke void @_ZL13get_2d_tensorN6ngraph6OutputINS_4NodeEEE(ptr dead_on_unwind writable sret(%"class.ngraph::Output") align 8 %5, ptr noundef %6)
          to label %71 unwind label %144

71:                                               ; preds = %2
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #7
  invoke void @_ZNK6ngraph4Node11input_valueEm(ptr dead_on_unwind writable sret(%"class.ngraph::Output") align 8 %10, ptr noundef nonnull align 8 dereferenceable(680) %70, i64 noundef 1)
          to label %72 unwind label %148

72:                                               ; preds = %71
  invoke void @_ZL13get_2d_tensorN6ngraph6OutputINS_4NodeEEE(ptr dead_on_unwind writable sret(%"class.ngraph::Output") align 8 %9, ptr noundef %10)
          to label %73 unwind label %152

73:                                               ; preds = %72
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #7
  invoke void @_ZNK6ngraph4Node11input_valueEm(ptr dead_on_unwind writable sret(%"class.ngraph::Output") align 8 %12, ptr noundef nonnull align 8 dereferenceable(680) %70, i64 noundef 2)
          to label %74 unwind label %156

74:                                               ; preds = %73
  invoke void @_ZL13get_2d_tensorN6ngraph6OutputINS_4NodeEEE(ptr dead_on_unwind writable sret(%"class.ngraph::Output") align 8 %11, ptr noundef %12)
          to label %75 unwind label %160

75:                                               ; preds = %74
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %76 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %77 unwind label %164

77:                                               ; preds = %75
  %78 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %76) #7
  store i64 %78, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %79 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %80 unwind label %168

80:                                               ; preds = %77
  %81 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %79) #7
  %82 = sub i64 %81, 1
  store i64 %82, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %83 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %84 unwind label %172

84:                                               ; preds = %80
  %85 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %83) #7
  %86 = sub i64 %85, 1
  store i64 %86, ptr %15, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #7
  call void @_ZNSt10shared_ptrIN6ngraph4NodeEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr null) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %19) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %20) #7
  store i64 0, ptr %20, align 8, !tbaa !9
  %87 = getelementptr inbounds i64, ptr %20, i64 1
  store i64 1, ptr %87, align 8, !tbaa !9
  %88 = getelementptr inbounds %"class.std::initializer_list.88", ptr %19, i32 0, i32 0
  store ptr %20, ptr %88, align 8, !tbaa !11
  %89 = getelementptr inbounds %"class.std::initializer_list.88", ptr %19, i32 0, i32 1
  store i64 2, ptr %89, align 8, !tbaa !13
  invoke void @_ZN6ngraph10AxisVectorC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(16) %19)
          to label %90 unwind label %176

90:                                               ; preds = %84
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %91 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %92 unwind label %180

92:                                               ; preds = %90
  %93 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef 0)
          to label %94 unwind label %180

94:                                               ; preds = %92
  %95 = load i64, ptr %93, align 8, !tbaa !9
  store i64 %95, ptr %23, align 8, !tbaa !9
  %96 = getelementptr inbounds %"class.std::initializer_list.88", ptr %22, i32 0, i32 0
  store ptr %23, ptr %96, align 8, !tbaa !11
  %97 = getelementptr inbounds %"class.std::initializer_list.88", ptr %22, i32 0, i32 1
  store i64 1, ptr %97, align 8, !tbaa !13
  invoke void @_ZN6ngraph5ShapeC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 8 dereferenceable(16) %22)
          to label %98 unwind label %180

98:                                               ; preds = %94
  invoke void @_ZSt11make_sharedIN6ngraph2op2v07ReshapeEJRNS0_6OutputINS0_4NodeEEENS0_10AxisVectorENS0_5ShapeEEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESC_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.85") align 8 %17, ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(24) %21)
          to label %99 unwind label %184

99:                                               ; preds = %98
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #7
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #7
  %100 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %101 unwind label %190

101:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 48, ptr %25) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %102 = load i64, ptr %13, align 8, !tbaa !9
  %103 = sub i64 %102, 1
  store i64 %103, ptr %27, align 8, !tbaa !9
  %104 = getelementptr inbounds %"class.std::initializer_list.88", ptr %26, i32 0, i32 0
  store ptr %27, ptr %104, align 8, !tbaa !11
  %105 = getelementptr inbounds %"class.std::initializer_list.88", ptr %26, i32 0, i32 1
  store i64 1, ptr %105, align 8, !tbaa !13
  invoke void @_ZN6ngraph7AxisSetC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(48) %25, ptr noundef nonnull align 8 dereferenceable(16) %26)
          to label %106 unwind label %194

106:                                              ; preds = %101
  invoke void @_ZSt11make_sharedIN6ngraph2op2v09BroadcastEJRSt10shared_ptrINS2_7ReshapeEERKNS0_5ShapeENS0_7AxisSetEEES4_INSt9enable_ifIXntsr8is_arrayIT_EE5valueESD_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.89") align 8 %24, ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(24) %100, ptr noundef nonnull align 8 dereferenceable(48) %25)
          to label %107 unwind label %198

107:                                              ; preds = %106
  call void @_ZNSt3setImSt4lessImESaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %25) #7
  %108 = getelementptr inbounds %"class.ngraph::op::v0::CrossEntropyBackprop", ptr %70, i32 0, i32 1
  %109 = load i8, ptr %108, align 8, !tbaa !14, !range !70, !noundef !71
  %110 = trunc i8 %109 to i1
  br i1 %110, label %304, label %111

111:                                              ; preds = %107
  %112 = getelementptr inbounds %"class.ngraph::op::v0::CrossEntropyBackprop", ptr %70, i32 0, i32 2
  %113 = load i64, ptr %112, align 8, !tbaa !72
  %114 = icmp sgt i64 %113, 0
  br i1 %114, label %115, label %235

115:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #7
  call void @_ZN6ngraph6OutputINS_4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @_ZN6ngraph6OutputINS_4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %116 = getelementptr inbounds %"class.ngraph::op::v0::CrossEntropyBackprop", ptr %70, i32 0, i32 2
  %117 = load i64, ptr %116, align 8, !tbaa !72
  invoke void @_ZL11create_maskN6ngraph6OutputINS_4NodeEEES2_l(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.74") align 8 %28, ptr noundef %29, ptr noundef %30, i64 noundef %117)
          to label %118 unwind label %203

118:                                              ; preds = %115
  %119 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6ngraph4NodeEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(16) %28) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #7
  store i64 0, ptr %34, align 8, !tbaa !9
  %120 = getelementptr inbounds i64, ptr %34, i64 1
  store i64 1, ptr %120, align 8, !tbaa !9
  %121 = getelementptr inbounds %"class.std::initializer_list.88", ptr %33, i32 0, i32 0
  store ptr %34, ptr %121, align 8, !tbaa !11
  %122 = getelementptr inbounds %"class.std::initializer_list.88", ptr %33, i32 0, i32 1
  store i64 2, ptr %122, align 8, !tbaa !13
  invoke void @_ZN6ngraph10AxisVectorC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %123 unwind label %207

123:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #7
  %124 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  %125 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph4Node16get_output_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %124, i64 noundef 0)
          to label %126 unwind label %211

126:                                              ; preds = %123
  %127 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %125, i64 noundef 0)
          to label %128 unwind label %211

128:                                              ; preds = %126
  %129 = load i64, ptr %127, align 8, !tbaa !9
  store i64 %129, ptr %37, align 8, !tbaa !9
  %130 = getelementptr inbounds %"class.std::initializer_list.88", ptr %36, i32 0, i32 0
  store ptr %37, ptr %130, align 8, !tbaa !11
  %131 = getelementptr inbounds %"class.std::initializer_list.88", ptr %36, i32 0, i32 1
  store i64 1, ptr %131, align 8, !tbaa !13
  invoke void @_ZN6ngraph5ShapeC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull align 8 dereferenceable(16) %36)
          to label %132 unwind label %211

132:                                              ; preds = %128
  invoke void @_ZSt11make_sharedIN6ngraph2op2v07ReshapeEJRSt10shared_ptrINS0_4NodeEENS0_10AxisVectorENS0_5ShapeEEES4_INSt9enable_ifIXntsr8is_arrayIT_EE5valueESB_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.85") align 8 %31, ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(24) %35)
          to label %133 unwind label %215

133:                                              ; preds = %132
  %134 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6ngraph4NodeEEaSINS0_2op2v07ReshapeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSE_(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(16) %31) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v07ReshapeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #7
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #7
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %38) #7
  %135 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %136 unwind label %221

136:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 48, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %137 = load i64, ptr %13, align 8, !tbaa !9
  %138 = sub i64 %137, 1
  store i64 %138, ptr %41, align 8, !tbaa !9
  %139 = getelementptr inbounds %"class.std::initializer_list.88", ptr %40, i32 0, i32 0
  store ptr %41, ptr %139, align 8, !tbaa !11
  %140 = getelementptr inbounds %"class.std::initializer_list.88", ptr %40, i32 0, i32 1
  store i64 1, ptr %140, align 8, !tbaa !13
  invoke void @_ZN6ngraph7AxisSetC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(48) %39, ptr noundef nonnull align 8 dereferenceable(16) %40)
          to label %141 unwind label %225

141:                                              ; preds = %136
  invoke void @_ZSt11make_sharedIN6ngraph2op2v09BroadcastEJRSt10shared_ptrINS0_4NodeEERKNS0_5ShapeENS0_7AxisSetEEES4_INSt9enable_ifIXntsr8is_arrayIT_EE5valueESD_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.89") align 8 %38, ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(24) %135, ptr noundef nonnull align 8 dereferenceable(48) %39)
          to label %142 unwind label %229

142:                                              ; preds = %141
  %143 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6ngraph4NodeEEaSINS0_2op2v09BroadcastEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSE_(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(16) %38) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v09BroadcastELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #7
  call void @_ZNSt3setImSt4lessImESaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %38) #7
  br label %235

144:                                              ; preds = %2
  %145 = landingpad { ptr, i32 }
          cleanup
  %146 = extractvalue { ptr, i32 } %145, 0
  store ptr %146, ptr %7, align 8
  %147 = extractvalue { ptr, i32 } %145, 1
  store i32 %147, ptr %8, align 4
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  br label %424

148:                                              ; preds = %71
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %7, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %8, align 4
  br label %423

152:                                              ; preds = %72
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %7, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %8, align 4
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  br label %423

156:                                              ; preds = %73
  %157 = landingpad { ptr, i32 }
          cleanup
  %158 = extractvalue { ptr, i32 } %157, 0
  store ptr %158, ptr %7, align 8
  %159 = extractvalue { ptr, i32 } %157, 1
  store i32 %159, ptr %8, align 4
  br label %422

160:                                              ; preds = %74
  %161 = landingpad { ptr, i32 }
          cleanup
  %162 = extractvalue { ptr, i32 } %161, 0
  store ptr %162, ptr %7, align 8
  %163 = extractvalue { ptr, i32 } %161, 1
  store i32 %163, ptr %8, align 4
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  br label %422

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

168:                                              ; preds = %77
  %169 = landingpad { ptr, i32 }
          cleanup
  %170 = extractvalue { ptr, i32 } %169, 0
  store ptr %170, ptr %7, align 8
  %171 = extractvalue { ptr, i32 } %169, 1
  store i32 %171, ptr %8, align 4
  br label %420

172:                                              ; preds = %80
  %173 = landingpad { ptr, i32 }
          cleanup
  %174 = extractvalue { ptr, i32 } %173, 0
  store ptr %174, ptr %7, align 8
  %175 = extractvalue { ptr, i32 } %173, 1
  store i32 %175, ptr %8, align 4
  br label %419

176:                                              ; preds = %84
  %177 = landingpad { ptr, i32 }
          cleanup
  %178 = extractvalue { ptr, i32 } %177, 0
  store ptr %178, ptr %7, align 8
  %179 = extractvalue { ptr, i32 } %177, 1
  store i32 %179, ptr %8, align 4
  br label %189

180:                                              ; preds = %94, %92, %90
  %181 = landingpad { ptr, i32 }
          cleanup
  %182 = extractvalue { ptr, i32 } %181, 0
  store ptr %182, ptr %7, align 8
  %183 = extractvalue { ptr, i32 } %181, 1
  store i32 %183, ptr %8, align 4
  br label %188

184:                                              ; preds = %98
  %185 = landingpad { ptr, i32 }
          cleanup
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %7, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %8, align 4
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  br label %188

188:                                              ; preds = %184, %180
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #7
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  br label %189

189:                                              ; preds = %188, %176
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #7
  br label %418

190:                                              ; preds = %99
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %7, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %8, align 4
  br label %417

194:                                              ; preds = %101
  %195 = landingpad { ptr, i32 }
          cleanup
  %196 = extractvalue { ptr, i32 } %195, 0
  store ptr %196, ptr %7, align 8
  %197 = extractvalue { ptr, i32 } %195, 1
  store i32 %197, ptr %8, align 4
  br label %202

198:                                              ; preds = %106
  %199 = landingpad { ptr, i32 }
          cleanup
  %200 = extractvalue { ptr, i32 } %199, 0
  store ptr %200, ptr %7, align 8
  %201 = extractvalue { ptr, i32 } %199, 1
  store i32 %201, ptr %8, align 4
  call void @_ZNSt3setImSt4lessImESaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %25) #7
  br label %202

202:                                              ; preds = %198, %194
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %25) #7
  br label %417

203:                                              ; preds = %115
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %7, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %8, align 4
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #7
  br label %416

207:                                              ; preds = %118
  %208 = landingpad { ptr, i32 }
          cleanup
  %209 = extractvalue { ptr, i32 } %208, 0
  store ptr %209, ptr %7, align 8
  %210 = extractvalue { ptr, i32 } %208, 1
  store i32 %210, ptr %8, align 4
  br label %220

211:                                              ; preds = %128, %126, %123
  %212 = landingpad { ptr, i32 }
          cleanup
  %213 = extractvalue { ptr, i32 } %212, 0
  store ptr %213, ptr %7, align 8
  %214 = extractvalue { ptr, i32 } %212, 1
  store i32 %214, ptr %8, align 4
  br label %219

215:                                              ; preds = %132
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %7, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %8, align 4
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #7
  br label %219

219:                                              ; preds = %215, %211
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #7
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #7
  br label %220

220:                                              ; preds = %219, %207
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #7
  br label %416

221:                                              ; preds = %133
  %222 = landingpad { ptr, i32 }
          cleanup
  %223 = extractvalue { ptr, i32 } %222, 0
  store ptr %223, ptr %7, align 8
  %224 = extractvalue { ptr, i32 } %222, 1
  store i32 %224, ptr %8, align 4
  br label %234

225:                                              ; preds = %136
  %226 = landingpad { ptr, i32 }
          cleanup
  %227 = extractvalue { ptr, i32 } %226, 0
  store ptr %227, ptr %7, align 8
  %228 = extractvalue { ptr, i32 } %226, 1
  store i32 %228, ptr %8, align 4
  br label %233

229:                                              ; preds = %141
  %230 = landingpad { ptr, i32 }
          cleanup
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %7, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %8, align 4
  call void @_ZNSt3setImSt4lessImESaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %39) #7
  br label %233

233:                                              ; preds = %229, %225
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %39) #7
  br label %234

234:                                              ; preds = %233, %221
  call void @llvm.lifetime.end.p0(i64 16, ptr %38) #7
  br label %416

235:                                              ; preds = %142, %111
  %236 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %237 unwind label %258

237:                                              ; preds = %235
  %238 = load i64, ptr %15, align 8, !tbaa !9
  %239 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %236, i64 noundef %238) #7
  %240 = load i64, ptr %239, align 8, !tbaa !9
  %241 = icmp eq i64 %240, 1
  br i1 %241, label %242, label %281

242:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %44) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %45) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %46) #7
  store i64 0, ptr %46, align 8, !tbaa !9
  %243 = getelementptr inbounds i64, ptr %46, i64 1
  store i64 1, ptr %243, align 8, !tbaa !9
  %244 = getelementptr inbounds %"class.std::initializer_list.88", ptr %45, i32 0, i32 0
  store ptr %46, ptr %244, align 8, !tbaa !11
  %245 = getelementptr inbounds %"class.std::initializer_list.88", ptr %45, i32 0, i32 1
  store i64 2, ptr %245, align 8, !tbaa !13
  invoke void @_ZN6ngraph10AxisVectorC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24) %44, ptr noundef nonnull align 8 dereferenceable(16) %45)
          to label %246 unwind label %262

246:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 24, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %48) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %247 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %248 unwind label %266

248:                                              ; preds = %246
  %249 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %247, i64 noundef 0)
          to label %250 unwind label %266

250:                                              ; preds = %248
  %251 = load i64, ptr %249, align 8, !tbaa !9
  store i64 %251, ptr %49, align 8, !tbaa !9
  %252 = getelementptr inbounds %"class.std::initializer_list.88", ptr %48, i32 0, i32 0
  store ptr %49, ptr %252, align 8, !tbaa !11
  %253 = getelementptr inbounds %"class.std::initializer_list.88", ptr %48, i32 0, i32 1
  store i64 1, ptr %253, align 8, !tbaa !13
  invoke void @_ZN6ngraph5ShapeC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %254 unwind label %266

254:                                              ; preds = %250
  invoke void @_ZSt11make_sharedIN6ngraph2op2v07ReshapeEJRNS0_6OutputINS0_4NodeEEENS0_10AxisVectorENS0_5ShapeEEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESC_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.85") align 8 %43, ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %44, ptr noundef nonnull align 8 dereferenceable(24) %47)
          to label %255 unwind label %270

255:                                              ; preds = %254
  invoke void @_ZN6ngraph6OutputINS_4NodeEEC2INS_2op2v07ReshapeEEERKSt10shared_ptrIT_E(ptr noundef nonnull align 8 dereferenceable(24) %42, ptr noundef nonnull align 8 dereferenceable(16) %43)
          to label %256 unwind label %274

256:                                              ; preds = %255
  %257 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN6ngraph6OutputINS_4NodeEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %42) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v07ReshapeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #7
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #7
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #7
  br label %281

258:                                              ; preds = %235
  %259 = landingpad { ptr, i32 }
          cleanup
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %7, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %8, align 4
  br label %416

262:                                              ; preds = %242
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %7, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %8, align 4
  br label %280

266:                                              ; preds = %250, %248, %246
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %7, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %8, align 4
  br label %279

270:                                              ; preds = %254
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %7, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %8, align 4
  br label %278

274:                                              ; preds = %255
  %275 = landingpad { ptr, i32 }
          cleanup
  %276 = extractvalue { ptr, i32 } %275, 0
  store ptr %276, ptr %7, align 8
  %277 = extractvalue { ptr, i32 } %275, 1
  store i32 %277, ptr %8, align 4
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v07ReshapeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #7
  br label %278

278:                                              ; preds = %274, %270
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #7
  br label %279

279:                                              ; preds = %278, %266
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #7
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  br label %280

280:                                              ; preds = %279, %262
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #7
  br label %416

281:                                              ; preds = %256, %237
  call void @llvm.lifetime.start.p0(i64 16, ptr %50) #7
  %282 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %283 unwind label %290

283:                                              ; preds = %281
  invoke void @_ZSt11make_sharedIN6ngraph2op2v06OneHotEJRNS0_6OutputINS0_4NodeEEERKNS0_5ShapeERmEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESE_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.98") align 8 %50, ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %282, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %284 unwind label %290

284:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 24, ptr %51) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %52) #7
  %285 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %286 unwind label %294

286:                                              ; preds = %284
  invoke void @_ZSt11make_sharedIN6ngraph2op2v07ConvertEJRSt10shared_ptrINS2_6OneHotEERKNS0_7element4TypeEEES4_INSt9enable_ifIXntsr8is_arrayIT_EE5valueESD_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.82") align 8 %52, ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 4 dereferenceable(4) %285)
          to label %287 unwind label %294

287:                                              ; preds = %286
  invoke void @_ZN6ngraph6OutputINS_4NodeEEC2INS_2op2v07ConvertEEERKSt10shared_ptrIT_E(ptr noundef nonnull align 8 dereferenceable(24) %51, ptr noundef nonnull align 8 dereferenceable(16) %52)
          to label %288 unwind label %298

288:                                              ; preds = %287
  %289 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN6ngraph6OutputINS_4NodeEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %51) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v07ConvertELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v06OneHotELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #7
  br label %304

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

294:                                              ; preds = %286, %284
  %295 = landingpad { ptr, i32 }
          cleanup
  %296 = extractvalue { ptr, i32 } %295, 0
  store ptr %296, ptr %7, align 8
  %297 = extractvalue { ptr, i32 } %295, 1
  store i32 %297, ptr %8, align 4
  br label %302

298:                                              ; preds = %287
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %7, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %8, align 4
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v07ConvertELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #7
  br label %302

302:                                              ; preds = %298, %294
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v06OneHotELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #7
  br label %303

303:                                              ; preds = %302, %290
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #7
  br label %416

304:                                              ; preds = %288, %107
  call void @llvm.lifetime.start.p0(i64 16, ptr %53) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %54) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #7
  invoke void @_ZN6ngraphngERKNS_6OutputINS_4NodeEEE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.74") align 8 %57, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %305 unwind label %322

305:                                              ; preds = %304
  invoke void @_ZN6ngraph6OutputINS_4NodeEEC2IS1_EERKSt10shared_ptrIT_E(ptr noundef nonnull align 8 dereferenceable(24) %56, ptr noundef nonnull align 8 dereferenceable(16) %57)
          to label %306 unwind label %326

306:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 24, ptr %58) #7
  invoke void @_ZN6ngraph6OutputINS_4NodeEEC2INS_2op2v09BroadcastEEERKSt10shared_ptrIT_E(ptr noundef nonnull align 8 dereferenceable(24) %58, ptr noundef nonnull align 8 dereferenceable(16) %24)
          to label %307 unwind label %330

307:                                              ; preds = %306
  invoke void @_ZN6ngraphmlERKNS_6OutputINS_4NodeEEES4_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.74") align 8 %55, ptr noundef nonnull align 8 dereferenceable(24) %56, ptr noundef nonnull align 8 dereferenceable(24) %58)
          to label %308 unwind label %334

308:                                              ; preds = %307
  invoke void @_ZSt11make_sharedIN6ngraph2op2v16DivideEJSt10shared_ptrINS0_4NodeEERNS0_6OutputIS5_EEEES4_INSt9enable_ifIXntsr8is_arrayIT_EE5valueESB_E4typeEEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.113") align 8 %54, ptr noundef nonnull align 8 dereferenceable(16) %55, ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %309 unwind label %338

309:                                              ; preds = %308
  call void @_ZNSt10shared_ptrIN6ngraph4NodeEEC2INS0_2op2v16DivideEvEEOS_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 8 dereferenceable(16) %54) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v16DivideELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %55) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %58) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %56) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #7
  %310 = getelementptr inbounds %"class.ngraph::op::v0::CrossEntropyBackprop", ptr %70, i32 0, i32 1
  %311 = load i8, ptr %310, align 8, !tbaa !14, !range !70, !noundef !71
  %312 = trunc i8 %311 to i1
  br i1 %312, label %360, label %313

313:                                              ; preds = %309
  %314 = getelementptr inbounds %"class.ngraph::op::v0::CrossEntropyBackprop", ptr %70, i32 0, i32 2
  %315 = load i64, ptr %314, align 8, !tbaa !72
  %316 = icmp sgt i64 %315, 0
  br i1 %316, label %317, label %360

317:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %60) #7
  invoke void @_ZN6ngraph6OutputINS_4NodeEEC2IS1_EERKSt10shared_ptrIT_E(ptr noundef nonnull align 8 dereferenceable(24) %60, ptr noundef nonnull align 8 dereferenceable(16) %53)
          to label %318 unwind label %346

318:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 24, ptr %61) #7
  invoke void @_ZN6ngraph6OutputINS_4NodeEEC2IS1_EERKSt10shared_ptrIT_E(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 8 dereferenceable(16) %16)
          to label %319 unwind label %350

319:                                              ; preds = %318
  invoke void @_ZN6ngraphmlERKNS_6OutputINS_4NodeEEES4_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.74") align 8 %59, ptr noundef nonnull align 8 dereferenceable(24) %60, ptr noundef nonnull align 8 dereferenceable(24) %61)
          to label %320 unwind label %354

320:                                              ; preds = %319
  %321 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6ngraph4NodeEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 8 dereferenceable(16) %59) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %59) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %61) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %60) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #7
  br label %360

322:                                              ; preds = %304
  %323 = landingpad { ptr, i32 }
          cleanup
  %324 = extractvalue { ptr, i32 } %323, 0
  store ptr %324, ptr %7, align 8
  %325 = extractvalue { ptr, i32 } %323, 1
  store i32 %325, ptr %8, align 4
  br label %345

326:                                              ; preds = %305
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %7, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %8, align 4
  br label %344

330:                                              ; preds = %306
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %7, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %8, align 4
  br label %343

334:                                              ; preds = %307
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %7, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %8, align 4
  br label %342

338:                                              ; preds = %308
  %339 = landingpad { ptr, i32 }
          cleanup
  %340 = extractvalue { ptr, i32 } %339, 0
  store ptr %340, ptr %7, align 8
  %341 = extractvalue { ptr, i32 } %339, 1
  store i32 %341, ptr %8, align 4
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %55) #7
  br label %342

342:                                              ; preds = %338, %334
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #7
  br label %343

343:                                              ; preds = %342, %330
  call void @llvm.lifetime.end.p0(i64 24, ptr %58) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %56) #7
  br label %344

344:                                              ; preds = %343, %326
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #7
  br label %345

345:                                              ; preds = %344, %322
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #7
  br label %415

346:                                              ; preds = %317
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %7, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %8, align 4
  br label %359

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

354:                                              ; preds = %319
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %7, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %8, align 4
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #7
  br label %358

358:                                              ; preds = %354, %350
  call void @llvm.lifetime.end.p0(i64 24, ptr %61) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %60) #7
  br label %359

359:                                              ; preds = %358, %346
  call void @llvm.lifetime.end.p0(i64 24, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #7
  br label %414

360:                                              ; preds = %320, %313, %309
  call void @llvm.lifetime.start.p0(i64 24, ptr %63) #7
  store i1 true, ptr %68, align 1
  store ptr %63, ptr %64, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %65) #7
  call void @_ZNSt10shared_ptrIN6ngraph4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %66, ptr noundef nonnull align 8 dereferenceable(16) %53) #7
  invoke void @_ZNK6ngraph4Node11input_valueEm(ptr dead_on_unwind writable sret(%"class.ngraph::Output") align 8 %67, ptr noundef nonnull align 8 dereferenceable(680) %70, i64 noundef 0)
          to label %361 unwind label %378

361:                                              ; preds = %360
  invoke void @_ZL12expand_shapeSt10shared_ptrIN6ngraph4NodeEENS0_6OutputIS1_EE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.74") align 8 %65, ptr noundef %66, ptr noundef %67)
          to label %362 unwind label %382

362:                                              ; preds = %361
  invoke void @_ZN6ngraph6OutputINS_4NodeEEC2IS1_EERKSt10shared_ptrIT_E(ptr noundef nonnull align 8 dereferenceable(24) %63, ptr noundef nonnull align 8 dereferenceable(16) %65)
          to label %363 unwind label %386

363:                                              ; preds = %362
  store i1 false, ptr %68, align 1
  %364 = getelementptr inbounds %"class.std::initializer_list", ptr %62, i32 0, i32 0
  store ptr %63, ptr %364, align 8, !tbaa !73
  %365 = getelementptr inbounds %"class.std::initializer_list", ptr %62, i32 0, i32 1
  store i64 1, ptr %365, align 8, !tbaa !75
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #7
  call void @_ZNSaIN6ngraph6OutputINS_4NodeEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #7
  %366 = getelementptr inbounds { ptr, i64 }, ptr %62, i32 0, i32 0
  %367 = load ptr, ptr %366, align 8
  %368 = getelementptr inbounds { ptr, i64 }, ptr %62, i32 0, i32 1
  %369 = load i64, ptr %368, align 8
  invoke void @_ZNSt6vectorIN6ngraph6OutputINS0_4NodeEEESaIS3_EEC2ESt16initializer_listIS3_ERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr %367, i64 %369, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %370 unwind label %390

370:                                              ; preds = %363
  call void @_ZNSt15__new_allocatorIN6ngraph6OutputINS0_4NodeEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #7
  %371 = getelementptr inbounds [1 x %"class.ngraph::Output"], ptr %63, i32 0, i32 0
  %372 = getelementptr inbounds %"class.ngraph::Output", ptr %371, i64 1
  br label %373

373:                                              ; preds = %373, %370
  %374 = phi ptr [ %372, %370 ], [ %375, %373 ]
  %375 = getelementptr inbounds %"class.ngraph::Output", ptr %374, i64 -1
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %375) #7
  %376 = icmp eq ptr %375, %371
  br i1 %376, label %377, label %373

377:                                              ; preds = %373
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %66) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %63) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %53) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v09BroadcastELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v07ReshapeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %5) #7
  ret void

378:                                              ; preds = %360
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %7, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %8, align 4
  br label %403

382:                                              ; preds = %361
  %383 = landingpad { ptr, i32 }
          cleanup
  %384 = extractvalue { ptr, i32 } %383, 0
  store ptr %384, ptr %7, align 8
  %385 = extractvalue { ptr, i32 } %383, 1
  store i32 %385, ptr %8, align 4
  br label %402

386:                                              ; preds = %362
  %387 = landingpad { ptr, i32 }
          cleanup
  %388 = extractvalue { ptr, i32 } %387, 0
  store ptr %388, ptr %7, align 8
  %389 = extractvalue { ptr, i32 } %387, 1
  store i32 %389, ptr %8, align 4
  br label %401

390:                                              ; preds = %363
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %7, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIN6ngraph6OutputINS0_4NodeEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #7
  %394 = getelementptr inbounds [1 x %"class.ngraph::Output"], ptr %63, i32 0, i32 0
  %395 = getelementptr inbounds %"class.ngraph::Output", ptr %394, i64 1
  br label %396

396:                                              ; preds = %396, %390
  %397 = phi ptr [ %395, %390 ], [ %398, %396 ]
  %398 = getelementptr inbounds %"class.ngraph::Output", ptr %397, i64 -1
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %398) #7
  %399 = icmp eq ptr %398, %394
  br i1 %399, label %400, label %396

400:                                              ; preds = %396
  br label %401

401:                                              ; preds = %400, %386
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #7
  br label %402

402:                                              ; preds = %401, %382
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #7
  br label %403

403:                                              ; preds = %402, %378
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %66) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #7
  %404 = load i1, ptr %68, align 1
  br i1 %404, label %405, label %413

405:                                              ; preds = %403
  %406 = load ptr, ptr %64, align 8
  %407 = icmp eq ptr %63, %406
  br i1 %407, label %412, label %408

408:                                              ; preds = %408, %405
  %409 = phi ptr [ %406, %405 ], [ %410, %408 ]
  %410 = getelementptr inbounds %"class.ngraph::Output", ptr %409, i64 -1
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %410) #7
  %411 = icmp eq ptr %410, %63
  br i1 %411, label %412, label %408

412:                                              ; preds = %408, %405
  br label %413

413:                                              ; preds = %412, %403
  call void @llvm.lifetime.end.p0(i64 24, ptr %63) #7
  br label %414

414:                                              ; preds = %413, %359
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #7
  br label %415

415:                                              ; preds = %414, %345
  call void @llvm.lifetime.end.p0(i64 16, ptr %53) #7
  br label %416

416:                                              ; preds = %415, %303, %280, %258, %234, %220, %203
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v09BroadcastELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  br label %417

417:                                              ; preds = %416, %202, %190
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v07ReshapeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #7
  br label %418

418:                                              ; preds = %417, %189
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #7
  br label %419

419:                                              ; preds = %418, %172
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  br label %420

420:                                              ; preds = %419, %168
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  br label %421

421:                                              ; preds = %420, %164
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  br label %422

422:                                              ; preds = %421, %160, %156
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  br label %423

423:                                              ; preds = %422, %152, %148
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  br label %424

424:                                              ; preds = %423, %144
  call void @llvm.lifetime.end.p0(i64 24, ptr %5) #7
  br label %425

425:                                              ; preds = %424
  %426 = load ptr, ptr %7, align 8
  %427 = load i32, ptr %8, align 4
  %428 = insertvalue { ptr, i32 } poison, ptr %426, 0
  %429 = insertvalue { ptr, i32 } %428, i32 %427, 1
  resume { ptr, i32 } %429
}

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6ngraph2op2v09BroadcastEJRSt10shared_ptrINS0_4NodeEERKNS0_5ShapeENS0_7AxisSetEEES4_INSt9enable_ifIXntsr8is_arrayIT_EE5valueESD_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.89") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(48)) #5

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

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

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

declare void @_ZN6ngraphngERKNS_6OutputINS_4NodeEEE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.74") align 8, ptr noundef nonnull align 8 dereferenceable(24)) #4

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"_ZTSSt16initializer_listImE", !6, i64 0, !10, i64 8}
!13 = !{!12, !10, i64 8}
!14 = !{!15, !69, i64 680}
!15 = !{!"_ZTSN6ngraph2op2v020CrossEntropyBackpropE", !16, i64 0, !69, i64 680, !10, i64 688}
!16 = !{!"_ZTSN6ngraph2op4util7FusedOpE", !17, i64 0}
!17 = !{!"_ZTSN6ngraph2op2OpE", !18, i64 0}
!18 = !{!"_ZTSN6ngraph4NodeE", !19, i64 8, !23, i64 24, !23, i64 80, !28, i64 136, !32, i64 160, !36, i64 184, !10, i64 216, !36, i64 224, !36, i64 256, !38, i64 288, !40, i64 344, !48, i64 392, !53, i64 472, !58, i64 552, !60, i64 608, !61, i64 616, !64, i64 632}
!19 = !{!"_ZTSSt23enable_shared_from_thisIN6ngraph4NodeEE", !20, i64 0}
!20 = !{!"_ZTSSt8weak_ptrIN6ngraph4NodeEE", !21, i64 0}
!21 = !{!"_ZTSSt10__weak_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !22, i64 8}
!22 = !{!"_ZTSSt12__weak_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!23 = !{!"_ZTSSt13unordered_setIPN6ngraph10descriptor6TensorESt4hashIS3_ESt8equal_toIS3_ESaIS3_EE", !24, i64 0}
!24 = !{!"_ZTSSt10_HashtableIPN6ngraph10descriptor6TensorES3_SaIS3_ENSt8__detail9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb1ELb1EEEE", !6, i64 0, !10, i64 8, !25, i64 16, !10, i64 24, !26, i64 32, !6, i64 48}
!25 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!26 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !27, i64 0, !10, i64 8}
!27 = !{!"float", !7, i64 0}
!28 = !{!"_ZTSSt6vectorIPN6ngraph4NodeESaIS2_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIPN6ngraph4NodeESaIS2_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIPN6ngraph4NodeESaIS2_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIPN6ngraph4NodeESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTSSt6vectorISt10shared_ptrIN6ngraph4NodeEESaIS3_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN6ngraph4NodeEESaIS3_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6ngraph4NodeEESaIS3_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6ngraph4NodeEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !37, i64 0, !10, i64 8, !7, i64 16}
!37 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!38 = !{!"_ZTSSt13unordered_setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4hashIS5_ESt8equal_toIS5_ESaIS5_EE", !39, i64 0}
!39 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_ENSt8__detail9_IdentityESt8equal_toIS5_ESt4hashIS5_ENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb1ELb1ELb1EEEE", !6, i64 0, !10, i64 8, !25, i64 16, !10, i64 24, !26, i64 32, !6, i64 48}
!40 = !{!"_ZTSSt3setISt10shared_ptrIN6ngraph4NodeEESt4lessIS3_ESaIS3_EE", !41, i64 0}
!41 = !{!"_ZTSSt8_Rb_treeISt10shared_ptrIN6ngraph4NodeEES3_St9_IdentityIS3_ESt4lessIS3_ESaIS3_EE", !42, i64 0}
!42 = !{!"_ZTSNSt8_Rb_treeISt10shared_ptrIN6ngraph4NodeEES3_St9_IdentityIS3_ESt4lessIS3_ESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !43, i64 0, !45, i64 8}
!43 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt10shared_ptrIN6ngraph4NodeEEEE", !44, i64 0}
!44 = !{!"_ZTSSt4lessISt10shared_ptrIN6ngraph4NodeEEE"}
!45 = !{!"_ZTSSt15_Rb_tree_header", !46, i64 0, !10, i64 32}
!46 = !{!"_ZTSSt18_Rb_tree_node_base", !47, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!47 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!48 = !{!"_ZTSSt5dequeIN6ngraph10descriptor5InputESaIS2_EE", !49, i64 0}
!49 = !{!"_ZTSSt11_Deque_baseIN6ngraph10descriptor5InputESaIS2_EE", !50, i64 0}
!50 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor5InputESaIS2_EE11_Deque_implE", !51, i64 0}
!51 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor5InputESaIS2_EE16_Deque_impl_dataE", !6, i64 0, !10, i64 8, !52, i64 16, !52, i64 48}
!52 = !{!"_ZTSSt15_Deque_iteratorIN6ngraph10descriptor5InputERS2_PS2_E", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!53 = !{!"_ZTSSt5dequeIN6ngraph10descriptor6OutputESaIS2_EE", !54, i64 0}
!54 = !{!"_ZTSSt11_Deque_baseIN6ngraph10descriptor6OutputESaIS2_EE", !55, i64 0}
!55 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor6OutputESaIS2_EE11_Deque_implE", !56, i64 0}
!56 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor6OutputESaIS2_EE16_Deque_impl_dataE", !6, i64 0, !10, i64 8, !57, i64 16, !57, i64 48}
!57 = !{!"_ZTSSt15_Deque_iteratorIN6ngraph10descriptor6OutputERS2_PS2_E", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!58 = !{!"_ZTSSt13unordered_mapIPN6ngraph4NodeENS0_8autodiff8AdjointsESt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_S4_EEE", !59, i64 0}
!59 = !{!"_ZTSSt10_HashtableIPN6ngraph4NodeESt4pairIKS2_NS0_8autodiff8AdjointsEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS2_ESt4hashIS2_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !10, i64 8, !25, i64 16, !10, i64 24, !26, i64 32, !6, i64 48}
!60 = !{!"int", !7, i64 0}
!61 = !{!"_ZTSSt10shared_ptrIN6ngraph2op4util13OpAnnotationsEE", !62, i64 0}
!62 = !{!"_ZTSSt12__shared_ptrIN6ngraph2op4util13OpAnnotationsELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !63, i64 8}
!63 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!64 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIN6ngraph7VariantEESt4lessIS5_ESaISt4pairIKS5_S9_EEE", !65, i64 0}
!65 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN6ngraph7VariantEEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE", !66, i64 0}
!66 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN6ngraph7VariantEEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE13_Rb_tree_implISG_Lb1EEE", !67, i64 0, !45, i64 8}
!67 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !68, i64 0}
!68 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!69 = !{!"bool", !7, i64 0}
!70 = !{i8 0, i8 2}
!71 = !{}
!72 = !{!15, !10, i64 688}
!73 = !{!74, !6, i64 0}
!74 = !{!"_ZTSSt16initializer_listIN6ngraph6OutputINS0_4NodeEEEE", !6, i64 0, !10, i64 8}
!75 = !{!74, !10, i64 8}


; 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.ngraph::Output" = type { %"class.std::shared_ptr.74", i64 }
%"class.std::shared_ptr.74" = type { %"class.std::__shared_ptr.75" }
%"class.std::__shared_ptr.75" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.85" = type { %"class.std::__shared_ptr.86" }
%"class.std::__shared_ptr.86" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.89" = type { %"class.std::__shared_ptr.90" }
%"class.std::__shared_ptr.90" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.82" = type { %"class.std::__shared_ptr.83" }
%"class.std::__shared_ptr.83" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector.69" = type { %"struct.std::_Vector_base.70" }
%"struct.std::_Vector_base.70" = type { %"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl" }
%"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.ngraph::AxisVector" = type { %"class.std::vector.77" }
%"class.std::vector.77" = type { %"struct.std::_Vector_base.78" }
%"struct.std::_Vector_base.78" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list.88" = type { ptr, i64 }
%"class.ngraph::Shape" = type { %"class.std::vector.77" }
%"class.ngraph::AxisSet" = type { %"class.std::set.92" }
%"class.std::set.92" = type { %"class.std::_Rb_tree.93" }
%"class.std::_Rb_tree.93" = type { %"struct.std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>>::_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::shared_ptr.98" = type { %"class.std::__shared_ptr.99" }
%"class.std::__shared_ptr.99" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.113" = type { %"class.std::__shared_ptr.114" }
%"class.std::__shared_ptr.114" = type { ptr, %"class.std::__shared_count" }
%"class.std::allocator.71" = type { i8 }

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN6ngraph6OutputINS0_4NodeEEESaIS3_EEC2ESt16initializer_listIS3_ERKS4_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL13get_2d_tensorN6ngraph6OutputINS_4NodeEEE(ptr dead_on_unwind noalias writable sret(%"class.ngraph::Output") align 8, ptr noundef) local_unnamed_addr #3

declare void @_ZNK6ngraph4Node11input_valueEm(ptr dead_on_unwind writable sret(%"class.ngraph::Output") align 8, ptr noundef nonnull align 8 dereferenceable(680), i64 noundef) local_unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL11create_maskN6ngraph6OutputINS_4NodeEEES2_l(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.74") align 8, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #3

declare noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6ngraph2op2v07ReshapeEJRNS0_6OutputINS0_4NodeEEENS0_10AxisVectorENS0_5ShapeEEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESC_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.85") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5

declare void @_ZN6ngraph10AxisVectorC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4

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

declare void @_ZN6ngraph5ShapeC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6ngraph2op2v09BroadcastEJRSt10shared_ptrINS2_7ReshapeEERKNS0_5ShapeENS0_7AxisSetEEES4_INSt9enable_ifIXntsr8is_arrayIT_EE5valueESD_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.89") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #5

declare void @_ZN6ngraph7AxisSetC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4

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

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

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

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

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

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

declare noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph4Node16get_output_shapeEm(ptr noundef nonnull align 8 dereferenceable(680), i64 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL12expand_shapeSt10shared_ptrIN6ngraph4NodeEENS0_6OutputIS1_EE(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.74") align 8, ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

declare void @_ZN6ngraphmlERKNS_6OutputINS_4NodeEEES4_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.74") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK6ngraph2op2v020CrossEntropyBackprop12decompose_opEv(ptr dead_on_unwind noalias writable sret(%"class.std::vector.69") align 8 %0, ptr noundef nonnull align 8 dereferenceable(696) %1) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.ngraph::Output", align 8
  %4 = alloca %"class.ngraph::Output", align 8
  %5 = alloca %"class.ngraph::Output", align 8
  %6 = alloca %"class.ngraph::Output", align 8
  %7 = alloca %"class.ngraph::Output", align 8
  %8 = alloca %"class.ngraph::Output", align 8
  %9 = alloca i64, align 8
  %10 = alloca %"class.std::shared_ptr.74", align 8
  %11 = alloca %"class.std::shared_ptr.85", align 8
  %12 = alloca %"class.ngraph::AxisVector", align 8
  %13 = alloca %"class.std::initializer_list.88", align 8
  %14 = alloca [2 x i64], align 8
  %15 = alloca %"class.ngraph::Shape", align 8
  %16 = alloca %"class.std::initializer_list.88", align 8
  %17 = alloca [1 x i64], align 8
  %18 = alloca %"class.std::shared_ptr.89", align 8
  %19 = alloca %"class.ngraph::AxisSet", align 8
  %20 = alloca %"class.std::initializer_list.88", align 8
  %21 = alloca [1 x i64], align 8
  %22 = alloca %"class.std::shared_ptr.74", align 8
  %23 = alloca %"class.ngraph::Output", align 8
  %24 = alloca %"class.ngraph::Output", align 8
  %25 = alloca %"class.std::shared_ptr.85", align 8
  %26 = alloca %"class.ngraph::AxisVector", align 8
  %27 = alloca %"class.std::initializer_list.88", align 8
  %28 = alloca [2 x i64], align 8
  %29 = alloca %"class.ngraph::Shape", align 8
  %30 = alloca %"class.std::initializer_list.88", align 8
  %31 = alloca [1 x i64], align 8
  %32 = alloca %"class.std::shared_ptr.89", align 8
  %33 = alloca %"class.ngraph::AxisSet", align 8
  %34 = alloca %"class.std::initializer_list.88", align 8
  %35 = alloca [1 x i64], align 8
  %36 = alloca %"class.ngraph::Output", align 8
  %37 = alloca %"class.std::shared_ptr.85", align 8
  %38 = alloca %"class.ngraph::AxisVector", align 8
  %39 = alloca %"class.std::initializer_list.88", align 8
  %40 = alloca [2 x i64], align 8
  %41 = alloca %"class.ngraph::Shape", align 8
  %42 = alloca %"class.std::initializer_list.88", align 8
  %43 = alloca [1 x i64], align 8
  %44 = alloca %"class.std::shared_ptr.98", align 8
  %45 = alloca %"class.ngraph::Output", align 8
  %46 = alloca %"class.std::shared_ptr.82", align 8
  %47 = alloca %"class.std::shared_ptr.74", align 8
  %48 = alloca %"class.std::shared_ptr.113", align 8
  %49 = alloca %"class.std::shared_ptr.74", align 8
  %50 = alloca %"class.ngraph::Output", align 8
  %51 = alloca %"class.std::shared_ptr.74", align 8
  %52 = alloca %"class.ngraph::Output", align 8
  %53 = alloca %"class.std::shared_ptr.74", align 8
  %54 = alloca %"class.ngraph::Output", align 8
  %55 = alloca %"class.ngraph::Output", align 8
  %56 = alloca [1 x %"class.ngraph::Output"], align 8
  %57 = alloca %"class.std::shared_ptr.74", align 8
  %58 = alloca %"class.std::shared_ptr.74", align 8
  %59 = alloca %"class.ngraph::Output", align 8
  %60 = alloca %"class.std::allocator.71", align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #7
  call void @_ZNK6ngraph4Node11input_valueEm(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::Output") align 8 %4, ptr noundef nonnull align 8 dereferenceable(680) %1, i64 noundef 0)
  invoke void @_ZL13get_2d_tensorN6ngraph6OutputINS_4NodeEEE(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::Output") align 8 %3, ptr noundef nonnull %4)
          to label %61 unwind label %124

61:                                               ; preds = %2
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #7
  invoke void @_ZNK6ngraph4Node11input_valueEm(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::Output") align 8 %6, ptr noundef nonnull align 8 dereferenceable(680) %1, i64 noundef 1)
          to label %62 unwind label %126

62:                                               ; preds = %61
  invoke void @_ZL13get_2d_tensorN6ngraph6OutputINS_4NodeEEE(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::Output") align 8 %5, ptr noundef nonnull %6)
          to label %63 unwind label %128

63:                                               ; preds = %62
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #7
  invoke void @_ZNK6ngraph4Node11input_valueEm(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::Output") align 8 %8, ptr noundef nonnull align 8 dereferenceable(680) %1, i64 noundef 2)
          to label %64 unwind label %130

64:                                               ; preds = %63
  invoke void @_ZL13get_2d_tensorN6ngraph6OutputINS_4NodeEEE(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::Output") align 8 %7, ptr noundef nonnull %8)
          to label %65 unwind label %132

65:                                               ; preds = %64
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  %66 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %67 unwind label %134

67:                                               ; preds = %65
  %68 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %66) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  %69 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %7)
          to label %70 unwind label %136

70:                                               ; preds = %67
  %71 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %69) #7
  %72 = add i64 %71, -1
  store i64 %72, ptr %9, align 8, !tbaa !5
  %73 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %7)
          to label %74 unwind label %138

74:                                               ; preds = %70
  %75 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %73) #7
  %76 = add i64 %75, -1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #7
  call void @_ZNSt10shared_ptrIN6ngraph4NodeEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr null) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #7
  store i64 0, ptr %14, align 8, !tbaa !5
  %77 = getelementptr inbounds i8, ptr %14, i64 8
  store i64 1, ptr %77, align 8, !tbaa !5
  store ptr %14, ptr %13, align 8, !tbaa !9
  %78 = getelementptr inbounds i8, ptr %13, i64 8
  store i64 2, ptr %78, align 8, !tbaa !12
  invoke void @_ZN6ngraph10AxisVectorC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %79 unwind label %140

79:                                               ; preds = %74
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #7
  %80 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %7)
          to label %81 unwind label %142

81:                                               ; preds = %79
  %82 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %80, i64 noundef 0)
          to label %83 unwind label %142

83:                                               ; preds = %81
  %84 = load i64, ptr %82, align 8, !tbaa !5
  store i64 %84, ptr %17, align 8, !tbaa !5
  store ptr %17, ptr %16, align 8, !tbaa !9
  %85 = getelementptr inbounds i8, ptr %16, i64 8
  store i64 1, ptr %85, align 8, !tbaa !12
  invoke void @_ZN6ngraph5ShapeC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(16) %16)
          to label %86 unwind label %142

86:                                               ; preds = %83
  invoke void @_ZSt11make_sharedIN6ngraph2op2v07ReshapeEJRNS0_6OutputINS0_4NodeEEENS0_10AxisVectorENS0_5ShapeEEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESC_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.85") align 8 %11, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %15)
          to label %87 unwind label %144

87:                                               ; preds = %86
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #7
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #7
  %88 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %89 unwind label %148

89:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #7
  %90 = add i64 %68, -1
  store i64 %90, ptr %21, align 8, !tbaa !5
  store ptr %21, ptr %20, align 8, !tbaa !9
  %91 = getelementptr inbounds i8, ptr %20, i64 8
  store i64 1, ptr %91, align 8, !tbaa !12
  invoke void @_ZN6ngraph7AxisSetC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(48) %19, ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %92 unwind label %150

92:                                               ; preds = %89
  invoke void @_ZSt11make_sharedIN6ngraph2op2v09BroadcastEJRSt10shared_ptrINS2_7ReshapeEERKNS0_5ShapeENS0_7AxisSetEEES4_INSt9enable_ifIXntsr8is_arrayIT_EE5valueESD_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.89") align 8 %18, ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull align 8 dereferenceable(24) %88, ptr noundef nonnull align 8 dereferenceable(48) %19)
          to label %93 unwind label %152

93:                                               ; preds = %92
  call void @_ZNSt3setImSt4lessImESaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %19) #7
  %94 = getelementptr inbounds i8, ptr %1, i64 680
  %95 = load i8, ptr %94, align 8, !tbaa !13, !range !69, !noundef !70
  %96 = trunc nuw i8 %95 to i1
  br i1 %96, label %223, label %97

97:                                               ; preds = %93
  %98 = getelementptr inbounds i8, ptr %1, i64 688
  %99 = load i64, ptr %98, align 8, !tbaa !71
  %100 = icmp sgt i64 %99, 0
  br i1 %100, label %101, label %173

101:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #7
  call void @_ZN6ngraph6OutputINS_4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @_ZN6ngraph6OutputINS_4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  %102 = load i64, ptr %98, align 8, !tbaa !71
  invoke void @_ZL11create_maskN6ngraph6OutputINS_4NodeEEES2_l(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.74") align 8 %22, ptr noundef nonnull %23, ptr noundef nonnull %24, i64 noundef %102)
          to label %103 unwind label %155

103:                                              ; preds = %101
  %104 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6ngraph4NodeEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #7
  store i64 0, ptr %28, align 8, !tbaa !5
  %105 = getelementptr inbounds i8, ptr %28, i64 8
  store i64 1, ptr %105, align 8, !tbaa !5
  store ptr %28, ptr %27, align 8, !tbaa !9
  %106 = getelementptr inbounds i8, ptr %27, i64 8
  store i64 2, ptr %106, align 8, !tbaa !12
  invoke void @_ZN6ngraph10AxisVectorC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(16) %27)
          to label %107 unwind label %157

107:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #7
  %108 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  %109 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph4Node16get_output_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %108, i64 noundef 0)
          to label %110 unwind label %159

110:                                              ; preds = %107
  %111 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %109, i64 noundef 0)
          to label %112 unwind label %159

112:                                              ; preds = %110
  %113 = load i64, ptr %111, align 8, !tbaa !5
  store i64 %113, ptr %31, align 8, !tbaa !5
  store ptr %31, ptr %30, align 8, !tbaa !9
  %114 = getelementptr inbounds i8, ptr %30, i64 8
  store i64 1, ptr %114, align 8, !tbaa !12
  invoke void @_ZN6ngraph5ShapeC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(16) %30)
          to label %115 unwind label %159

115:                                              ; preds = %112
  invoke void @_ZSt11make_sharedIN6ngraph2op2v07ReshapeEJRSt10shared_ptrINS0_4NodeEENS0_10AxisVectorENS0_5ShapeEEES4_INSt9enable_ifIXntsr8is_arrayIT_EE5valueESB_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.85") align 8 %25, ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(24) %29)
          to label %116 unwind label %161

116:                                              ; preds = %115
  %117 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6ngraph4NodeEEaSINS0_2op2v07ReshapeEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSE_(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %25) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v07ReshapeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #7
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #7
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #7
  %118 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %119 unwind label %165

119:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #7
  store i64 %90, ptr %35, align 8, !tbaa !5
  store ptr %35, ptr %34, align 8, !tbaa !9
  %120 = getelementptr inbounds i8, ptr %34, i64 8
  store i64 1, ptr %120, align 8, !tbaa !12
  invoke void @_ZN6ngraph7AxisSetC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(48) %33, ptr noundef nonnull align 8 dereferenceable(16) %34)
          to label %121 unwind label %167

121:                                              ; preds = %119
  invoke void @_ZSt11make_sharedIN6ngraph2op2v09BroadcastEJRSt10shared_ptrINS0_4NodeEERKNS0_5ShapeENS0_7AxisSetEEES4_INSt9enable_ifIXntsr8is_arrayIT_EE5valueESD_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.89") align 8 %32, ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(24) %118, ptr noundef nonnull align 8 dereferenceable(48) %33)
          to label %122 unwind label %169

122:                                              ; preds = %121
  %123 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6ngraph4NodeEEaSINS0_2op2v09BroadcastEEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EES_IT_EEE5valueERS2_E4typeEOSE_(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %32) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v09BroadcastELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #7
  call void @_ZNSt3setImSt4lessImESaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #7
  br label %173

124:                                              ; preds = %2
  %125 = landingpad { ptr, i32 }
          cleanup
  br label %284

126:                                              ; preds = %61
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %283

128:                                              ; preds = %62
  %129 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  br label %283

130:                                              ; preds = %63
  %131 = landingpad { ptr, i32 }
          cleanup
  br label %282

132:                                              ; preds = %64
  %133 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  br label %282

134:                                              ; preds = %65
  %135 = landingpad { ptr, i32 }
          cleanup
  br label %281

136:                                              ; preds = %67
  %137 = landingpad { ptr, i32 }
          cleanup
  br label %280

138:                                              ; preds = %70
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %280

140:                                              ; preds = %74
  %141 = landingpad { ptr, i32 }
          cleanup
  br label %147

142:                                              ; preds = %83, %81, %79
  %143 = landingpad { ptr, i32 }
          cleanup
  br label %146

144:                                              ; preds = %86
  %145 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  br label %146

146:                                              ; preds = %144, %142
  %.pn = phi { ptr, i32 } [ %145, %144 ], [ %143, %142 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #7
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  br label %147

147:                                              ; preds = %146, %140
  %.pn.pn = phi { ptr, i32 } [ %.pn, %146 ], [ %141, %140 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #7
  br label %279

148:                                              ; preds = %87
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %278

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

152:                                              ; preds = %92
  %153 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt3setImSt4lessImESaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %19) #7
  br label %154

154:                                              ; preds = %152, %150
  %.pn47 = phi { ptr, i32 } [ %153, %152 ], [ %151, %150 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %19) #7
  br label %278

155:                                              ; preds = %101
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #7
  br label %277

157:                                              ; preds = %103
  %158 = landingpad { ptr, i32 }
          cleanup
  br label %164

159:                                              ; preds = %112, %110, %107
  %160 = landingpad { ptr, i32 }
          cleanup
  br label %163

161:                                              ; preds = %115
  %162 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  br label %163

163:                                              ; preds = %161, %159
  %.pn49 = phi { ptr, i32 } [ %162, %161 ], [ %160, %159 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #7
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  br label %164

164:                                              ; preds = %163, %157
  %.pn49.pn = phi { ptr, i32 } [ %.pn49, %163 ], [ %158, %157 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #7
  br label %277

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

167:                                              ; preds = %119
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %171

169:                                              ; preds = %121
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt3setImSt4lessImESaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #7
  br label %171

171:                                              ; preds = %169, %167
  %.pn52 = phi { ptr, i32 } [ %170, %169 ], [ %168, %167 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %33) #7
  br label %172

172:                                              ; preds = %171, %165
  %.pn52.pn = phi { ptr, i32 } [ %.pn52, %171 ], [ %166, %165 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #7
  br label %277

173:                                              ; preds = %122, %97
  %174 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %175 unwind label %193

175:                                              ; preds = %173
  %176 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %174, i64 noundef %76) #7
  %177 = load i64, ptr %176, align 8, !tbaa !5
  %178 = icmp eq i64 %177, 1
  br i1 %178, label %179, label %206

179:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #7
  store i64 0, ptr %40, align 8, !tbaa !5
  %180 = getelementptr inbounds i8, ptr %40, i64 8
  store i64 1, ptr %180, align 8, !tbaa !5
  store ptr %40, ptr %39, align 8, !tbaa !9
  %181 = getelementptr inbounds i8, ptr %39, i64 8
  store i64 2, ptr %181, align 8, !tbaa !12
  invoke void @_ZN6ngraph10AxisVectorC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24) %38, ptr noundef nonnull align 8 dereferenceable(16) %39)
          to label %182 unwind label %195

182:                                              ; preds = %179
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %42) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #7
  %183 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %184 unwind label %197

184:                                              ; preds = %182
  %185 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %183, i64 noundef 0)
          to label %186 unwind label %197

186:                                              ; preds = %184
  %187 = load i64, ptr %185, align 8, !tbaa !5
  store i64 %187, ptr %43, align 8, !tbaa !5
  store ptr %43, ptr %42, align 8, !tbaa !9
  %188 = getelementptr inbounds i8, ptr %42, i64 8
  store i64 1, ptr %188, align 8, !tbaa !12
  invoke void @_ZN6ngraph5ShapeC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24) %41, ptr noundef nonnull align 8 dereferenceable(16) %42)
          to label %189 unwind label %197

189:                                              ; preds = %186
  invoke void @_ZSt11make_sharedIN6ngraph2op2v07ReshapeEJRNS0_6OutputINS0_4NodeEEENS0_10AxisVectorENS0_5ShapeEEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESC_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.85") align 8 %37, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %38, ptr noundef nonnull align 8 dereferenceable(24) %41)
          to label %190 unwind label %199

190:                                              ; preds = %189
  invoke void @_ZN6ngraph6OutputINS_4NodeEEC2INS_2op2v07ReshapeEEERKSt10shared_ptrIT_E(ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(16) %37)
          to label %191 unwind label %201

191:                                              ; preds = %190
  %192 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN6ngraph6OutputINS_4NodeEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %36) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v07ReshapeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #7
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #7
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #7
  br label %206

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

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

197:                                              ; preds = %186, %184, %182
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %204

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

201:                                              ; preds = %190
  %202 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v07ReshapeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #7
  br label %203

203:                                              ; preds = %201, %199
  %.pn55 = phi { ptr, i32 } [ %202, %201 ], [ %200, %199 ]
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #7
  br label %204

204:                                              ; preds = %203, %197
  %.pn55.pn = phi { ptr, i32 } [ %.pn55, %203 ], [ %198, %197 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #7
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #7
  br label %205

205:                                              ; preds = %204, %195
  %.pn55.pn.pn = phi { ptr, i32 } [ %.pn55.pn, %204 ], [ %196, %195 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #7
  br label %277

206:                                              ; preds = %191, %175
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %44) #7
  %207 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %208 unwind label %215

208:                                              ; preds = %206
  invoke void @_ZSt11make_sharedIN6ngraph2op2v06OneHotEJRNS0_6OutputINS0_4NodeEEERKNS0_5ShapeERmEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESE_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.98") align 8 %44, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %207, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %209 unwind label %215

209:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %46) #7
  %210 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %211 unwind label %217

211:                                              ; preds = %209
  invoke void @_ZSt11make_sharedIN6ngraph2op2v07ConvertEJRSt10shared_ptrINS2_6OneHotEERKNS0_7element4TypeEEES4_INSt9enable_ifIXntsr8is_arrayIT_EE5valueESD_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.82") align 8 %46, ptr noundef nonnull align 8 dereferenceable(16) %44, ptr noundef nonnull align 4 dereferenceable(4) %210)
          to label %212 unwind label %217

212:                                              ; preds = %211
  invoke void @_ZN6ngraph6OutputINS_4NodeEEC2INS_2op2v07ConvertEEERKSt10shared_ptrIT_E(ptr noundef nonnull align 8 dereferenceable(24) %45, ptr noundef nonnull align 8 dereferenceable(16) %46)
          to label %213 unwind label %219

213:                                              ; preds = %212
  %214 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN6ngraph6OutputINS_4NodeEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v07ConvertELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v06OneHotELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #7
  br label %223

215:                                              ; preds = %208, %206
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %222

217:                                              ; preds = %211, %209
  %218 = landingpad { ptr, i32 }
          cleanup
  br label %221

219:                                              ; preds = %212
  %220 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v07ConvertELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #7
  br label %221

221:                                              ; preds = %219, %217
  %.pn59 = phi { ptr, i32 } [ %220, %219 ], [ %218, %217 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v06OneHotELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #7
  br label %222

222:                                              ; preds = %221, %215
  %.pn59.pn = phi { ptr, i32 } [ %.pn59, %221 ], [ %216, %215 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #7
  br label %277

223:                                              ; preds = %213, %93
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %49) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %50) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %51) #7
  invoke void @_ZN6ngraphngERKNS_6OutputINS_4NodeEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.74") align 8 %51, ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %224 unwind label %239

224:                                              ; preds = %223
  invoke void @_ZN6ngraph6OutputINS_4NodeEEC2IS1_EERKSt10shared_ptrIT_E(ptr noundef nonnull align 8 dereferenceable(24) %50, ptr noundef nonnull align 8 dereferenceable(16) %51)
          to label %225 unwind label %241

225:                                              ; preds = %224
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %52) #7
  invoke void @_ZN6ngraph6OutputINS_4NodeEEC2INS_2op2v09BroadcastEEERKSt10shared_ptrIT_E(ptr noundef nonnull align 8 dereferenceable(24) %52, ptr noundef nonnull align 8 dereferenceable(16) %18)
          to label %226 unwind label %243

226:                                              ; preds = %225
  invoke void @_ZN6ngraphmlERKNS_6OutputINS_4NodeEEES4_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.74") align 8 %49, ptr noundef nonnull align 8 dereferenceable(24) %50, ptr noundef nonnull align 8 dereferenceable(24) %52)
          to label %227 unwind label %245

227:                                              ; preds = %226
  invoke void @_ZSt11make_sharedIN6ngraph2op2v16DivideEJSt10shared_ptrINS0_4NodeEERNS0_6OutputIS5_EEEES4_INSt9enable_ifIXntsr8is_arrayIT_EE5valueESB_E4typeEEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.113") align 8 %48, ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %228 unwind label %247

228:                                              ; preds = %227
  call void @_ZNSt10shared_ptrIN6ngraph4NodeEEC2INS0_2op2v16DivideEvEEOS_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 8 dereferenceable(16) %48) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v16DivideELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %52) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #7
  %229 = load i8, ptr %94, align 8, !tbaa !13, !range !69, !noundef !70
  %230 = trunc nuw i8 %229 to i1
  %231 = getelementptr inbounds i8, ptr %1, i64 688
  %232 = load i64, ptr %231, align 8
  %233 = icmp slt i64 %232, 1
  %or.cond.not = select i1 %230, i1 true, i1 %233
  br i1 %or.cond.not, label %261, label %234

234:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %53) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %54) #7
  invoke void @_ZN6ngraph6OutputINS_4NodeEEC2IS1_EERKSt10shared_ptrIT_E(ptr noundef nonnull align 8 dereferenceable(24) %54, ptr noundef nonnull align 8 dereferenceable(16) %47)
          to label %235 unwind label %253

235:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %55) #7
  invoke void @_ZN6ngraph6OutputINS_4NodeEEC2IS1_EERKSt10shared_ptrIT_E(ptr noundef nonnull align 8 dereferenceable(24) %55, ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %236 unwind label %255

236:                                              ; preds = %235
  invoke void @_ZN6ngraphmlERKNS_6OutputINS_4NodeEEES4_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.74") align 8 %53, ptr noundef nonnull align 8 dereferenceable(24) %54, ptr noundef nonnull align 8 dereferenceable(24) %55)
          to label %237 unwind label %257

237:                                              ; preds = %236
  %238 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN6ngraph4NodeEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 8 dereferenceable(16) %53) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %54) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #7
  br label %261

239:                                              ; preds = %223
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %252

241:                                              ; preds = %224
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %251

243:                                              ; preds = %225
  %244 = landingpad { ptr, i32 }
          cleanup
  br label %250

245:                                              ; preds = %226
  %246 = landingpad { ptr, i32 }
          cleanup
  br label %249

247:                                              ; preds = %227
  %248 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #7
  br label %249

249:                                              ; preds = %247, %245
  %.pn62 = phi { ptr, i32 } [ %248, %247 ], [ %246, %245 ]
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52) #7
  br label %250

250:                                              ; preds = %249, %243
  %.pn62.pn = phi { ptr, i32 } [ %.pn62, %249 ], [ %244, %243 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %52) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #7
  br label %251

251:                                              ; preds = %250, %241
  %.pn62.pn.pn = phi { ptr, i32 } [ %.pn62.pn, %250 ], [ %242, %241 ]
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #7
  br label %252

252:                                              ; preds = %251, %239
  %.pn62.pn.pn.pn = phi { ptr, i32 } [ %.pn62.pn.pn, %251 ], [ %240, %239 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #7
  br label %276

253:                                              ; preds = %234
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %260

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

257:                                              ; preds = %236
  %258 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #7
  br label %259

259:                                              ; preds = %257, %255
  %.pn67 = phi { ptr, i32 } [ %258, %257 ], [ %256, %255 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %54) #7
  br label %260

260:                                              ; preds = %259, %253
  %.pn67.pn = phi { ptr, i32 } [ %.pn67, %259 ], [ %254, %253 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #7
  br label %275

261:                                              ; preds = %237, %228
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %56) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %57) #7
  call void @_ZNSt10shared_ptrIN6ngraph4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(16) %47) #7
  invoke void @_ZNK6ngraph4Node11input_valueEm(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::Output") align 8 %59, ptr noundef nonnull align 8 dereferenceable(680) %1, i64 noundef 0)
          to label %262 unwind label %266

262:                                              ; preds = %261
  invoke void @_ZL12expand_shapeSt10shared_ptrIN6ngraph4NodeEENS0_6OutputIS1_EE(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.74") align 8 %57, ptr noundef nonnull %58, ptr noundef nonnull %59)
          to label %263 unwind label %268

263:                                              ; preds = %262
  invoke void @_ZN6ngraph6OutputINS_4NodeEEC2IS1_EERKSt10shared_ptrIT_E(ptr noundef nonnull align 8 dereferenceable(24) %56, ptr noundef nonnull align 8 dereferenceable(16) %57)
          to label %264 unwind label %270

264:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #7
  call void @_ZNSaIN6ngraph6OutputINS_4NodeEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  invoke void @_ZNSt6vectorIN6ngraph6OutputINS0_4NodeEEESaIS3_EEC2ESt16initializer_listIS3_ERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr nonnull %56, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %265 unwind label %.loopexit.loopexit

265:                                              ; preds = %264
  call void @_ZNSt15__new_allocatorIN6ngraph6OutputINS0_4NodeEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %56) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v09BroadcastELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v07ReshapeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #7
  ret void

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

268:                                              ; preds = %262
  %269 = landingpad { ptr, i32 }
          cleanup
  br label %273

270:                                              ; preds = %263
  %271 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

.loopexit.loopexit:                               ; preds = %264
  %272 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIN6ngraph6OutputINS0_4NodeEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %56) #7
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit, %270
  %.pn70 = phi { ptr, i32 } [ %271, %270 ], [ %272, %.loopexit.loopexit ]
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #7
  br label %273

273:                                              ; preds = %.loopexit, %268
  %.pn70.pn = phi { ptr, i32 } [ %.pn70, %.loopexit ], [ %269, %268 ]
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #7
  br label %274

274:                                              ; preds = %273, %266
  %.pn70.pn.pn = phi { ptr, i32 } [ %.pn70.pn, %273 ], [ %267, %266 ]
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #7
  br label %275

275:                                              ; preds = %274, %260
  %.pn70.pn.pn.pn = phi { ptr, i32 } [ %.pn70.pn.pn, %274 ], [ %.pn67.pn, %260 ]
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #7
  br label %276

276:                                              ; preds = %275, %252
  %.pn70.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn70.pn.pn.pn, %275 ], [ %.pn62.pn.pn.pn, %252 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #7
  br label %277

277:                                              ; preds = %276, %222, %205, %193, %172, %164, %155
  %.pn70.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn70.pn.pn.pn.pn, %276 ], [ %.pn59.pn, %222 ], [ %.pn55.pn.pn, %205 ], [ %194, %193 ], [ %.pn52.pn, %172 ], [ %.pn49.pn, %164 ], [ %156, %155 ]
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v09BroadcastELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #7
  br label %278

278:                                              ; preds = %277, %154, %148
  %.pn70.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn70.pn.pn.pn.pn.pn, %277 ], [ %.pn47, %154 ], [ %149, %148 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v07ReshapeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #7
  br label %279

279:                                              ; preds = %278, %147
  %.pn70.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn70.pn.pn.pn.pn.pn.pn, %278 ], [ %.pn.pn, %147 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #7
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #7
  br label %280

280:                                              ; preds = %138, %279, %136
  %.pn70.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %137, %136 ], [ %.pn70.pn.pn.pn.pn.pn.pn.pn, %279 ], [ %139, %138 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  br label %281

281:                                              ; preds = %280, %134
  %.pn70.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn70.pn.pn.pn.pn.pn.pn.pn.pn.pn, %280 ], [ %135, %134 ]
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  br label %282

282:                                              ; preds = %281, %132, %130
  %.pn70.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn70.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %281 ], [ %133, %132 ], [ %131, %130 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  br label %283

283:                                              ; preds = %282, %128, %126
  %.pn70.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn70.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %282 ], [ %129, %128 ], [ %127, %126 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #7
  br label %284

284:                                              ; preds = %283, %124
  %.sink = phi ptr [ %3, %283 ], [ %4, %124 ]
  %.pn70.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn70.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %283 ], [ %125, %124 ]
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.sink) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #7
  resume { ptr, i32 } %.pn70.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6ngraph2op2v09BroadcastEJRSt10shared_ptrINS0_4NodeEERKNS0_5ShapeENS0_7AxisSetEEES4_INSt9enable_ifIXntsr8is_arrayIT_EE5valueESD_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.89") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #5

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_sharedIN6ngraph2op2v06OneHotEJRNS0_6OutputINS0_4NodeEEERKNS0_5ShapeERmEESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESE_E4typeEEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.98") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

declare void @_ZN6ngraphngERKNS_6OutputINS_4NodeEEE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.74") align 8, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

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

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

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

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

!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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTSSt16initializer_listImE", !11, i64 0, !6, i64 8}
!11 = !{!"any pointer", !7, i64 0}
!12 = !{!10, !6, i64 8}
!13 = !{!14, !68, i64 680}
!14 = !{!"_ZTSN6ngraph2op2v020CrossEntropyBackpropE", !15, i64 0, !68, i64 680, !6, i64 688}
!15 = !{!"_ZTSN6ngraph2op4util7FusedOpE", !16, i64 0}
!16 = !{!"_ZTSN6ngraph2op2OpE", !17, i64 0}
!17 = !{!"_ZTSN6ngraph4NodeE", !18, i64 8, !22, i64 24, !22, i64 80, !27, i64 136, !31, i64 160, !35, i64 184, !6, i64 216, !35, i64 224, !35, i64 256, !37, i64 288, !39, i64 344, !47, i64 392, !52, i64 472, !57, i64 552, !59, i64 608, !60, i64 616, !63, i64 632}
!18 = !{!"_ZTSSt23enable_shared_from_thisIN6ngraph4NodeEE", !19, i64 0}
!19 = !{!"_ZTSSt8weak_ptrIN6ngraph4NodeEE", !20, i64 0}
!20 = !{!"_ZTSSt10__weak_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EE", !11, i64 0, !21, i64 8}
!21 = !{!"_ZTSSt12__weak_countILN9__gnu_cxx12_Lock_policyE2EE", !11, i64 0}
!22 = !{!"_ZTSSt13unordered_setIPN6ngraph10descriptor6TensorESt4hashIS3_ESt8equal_toIS3_ESaIS3_EE", !23, i64 0}
!23 = !{!"_ZTSSt10_HashtableIPN6ngraph10descriptor6TensorES3_SaIS3_ENSt8__detail9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb1ELb1EEEE", !11, i64 0, !6, i64 8, !24, i64 16, !6, i64 24, !25, i64 32, !11, i64 48}
!24 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !11, i64 0}
!25 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !26, i64 0, !6, i64 8}
!26 = !{!"float", !7, i64 0}
!27 = !{!"_ZTSSt6vectorIPN6ngraph4NodeESaIS2_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIPN6ngraph4NodeESaIS2_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIPN6ngraph4NodeESaIS2_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIPN6ngraph4NodeESaIS2_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!31 = !{!"_ZTSSt6vectorISt10shared_ptrIN6ngraph4NodeEESaIS3_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN6ngraph4NodeEESaIS3_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6ngraph4NodeEESaIS3_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6ngraph4NodeEESaIS3_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!35 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !36, i64 0, !6, i64 8, !7, i64 16}
!36 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !11, i64 0}
!37 = !{!"_ZTSSt13unordered_setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4hashIS5_ESt8equal_toIS5_ESaIS5_EE", !38, i64 0}
!38 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_ENSt8__detail9_IdentityESt8equal_toIS5_ESt4hashIS5_ENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb1ELb1ELb1EEEE", !11, i64 0, !6, i64 8, !24, i64 16, !6, i64 24, !25, i64 32, !11, i64 48}
!39 = !{!"_ZTSSt3setISt10shared_ptrIN6ngraph4NodeEESt4lessIS3_ESaIS3_EE", !40, i64 0}
!40 = !{!"_ZTSSt8_Rb_treeISt10shared_ptrIN6ngraph4NodeEES3_St9_IdentityIS3_ESt4lessIS3_ESaIS3_EE", !41, i64 0}
!41 = !{!"_ZTSNSt8_Rb_treeISt10shared_ptrIN6ngraph4NodeEES3_St9_IdentityIS3_ESt4lessIS3_ESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !42, i64 0, !44, i64 8}
!42 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt10shared_ptrIN6ngraph4NodeEEEE", !43, i64 0}
!43 = !{!"_ZTSSt4lessISt10shared_ptrIN6ngraph4NodeEEE"}
!44 = !{!"_ZTSSt15_Rb_tree_header", !45, i64 0, !6, i64 32}
!45 = !{!"_ZTSSt18_Rb_tree_node_base", !46, i64 0, !11, i64 8, !11, i64 16, !11, i64 24}
!46 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!47 = !{!"_ZTSSt5dequeIN6ngraph10descriptor5InputESaIS2_EE", !48, i64 0}
!48 = !{!"_ZTSSt11_Deque_baseIN6ngraph10descriptor5InputESaIS2_EE", !49, i64 0}
!49 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor5InputESaIS2_EE11_Deque_implE", !50, i64 0}
!50 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor5InputESaIS2_EE16_Deque_impl_dataE", !11, i64 0, !6, i64 8, !51, i64 16, !51, i64 48}
!51 = !{!"_ZTSSt15_Deque_iteratorIN6ngraph10descriptor5InputERS2_PS2_E", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24}
!52 = !{!"_ZTSSt5dequeIN6ngraph10descriptor6OutputESaIS2_EE", !53, i64 0}
!53 = !{!"_ZTSSt11_Deque_baseIN6ngraph10descriptor6OutputESaIS2_EE", !54, i64 0}
!54 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor6OutputESaIS2_EE11_Deque_implE", !55, i64 0}
!55 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor6OutputESaIS2_EE16_Deque_impl_dataE", !11, i64 0, !6, i64 8, !56, i64 16, !56, i64 48}
!56 = !{!"_ZTSSt15_Deque_iteratorIN6ngraph10descriptor6OutputERS2_PS2_E", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24}
!57 = !{!"_ZTSSt13unordered_mapIPN6ngraph4NodeENS0_8autodiff8AdjointsESt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_S4_EEE", !58, i64 0}
!58 = !{!"_ZTSSt10_HashtableIPN6ngraph4NodeESt4pairIKS2_NS0_8autodiff8AdjointsEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS2_ESt4hashIS2_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb1EEEE", !11, i64 0, !6, i64 8, !24, i64 16, !6, i64 24, !25, i64 32, !11, i64 48}
!59 = !{!"int", !7, i64 0}
!60 = !{!"_ZTSSt10shared_ptrIN6ngraph2op4util13OpAnnotationsEE", !61, i64 0}
!61 = !{!"_ZTSSt12__shared_ptrIN6ngraph2op4util13OpAnnotationsELN9__gnu_cxx12_Lock_policyE2EE", !11, i64 0, !62, i64 8}
!62 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !11, i64 0}
!63 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIN6ngraph7VariantEESt4lessIS5_ESaISt4pairIKS5_S9_EEE", !64, i64 0}
!64 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN6ngraph7VariantEEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE", !65, i64 0}
!65 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN6ngraph7VariantEEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE13_Rb_tree_implISG_Lb1EEE", !66, i64 0, !44, i64 8}
!66 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !67, i64 0}
!67 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!68 = !{!"bool", !7, i64 0}
!69 = !{i8 0, i8 2}
!70 = !{}
!71 = !{!14, !6, i64 688}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LoopSimplifyPass,SROAPass,SimplifyCFGPass