; LLVM IR from NervanaSystems/ngraph :: src/ngraph/op/reverse.ll (ZN6ngraph2op2v17Reverse24validate_and_infer_typesEv)

; 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::element::Type" = type { i32 }
%"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.ngraph::Output" = type { %"class.std::shared_ptr.80", i64 }
%"class.std::shared_ptr.80" = type { %"class.std::__shared_ptr.81" }
%"class.std::__shared_ptr.81" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"struct.ngraph::CheckLocInfo" = type { ptr, i32, ptr }
%"class.ngraph::PartialShape" = type { i8, %"class.std::vector.83" }
%"class.std::vector.83" = type { %"struct.std::_Vector_base.84" }
%"struct.std::_Vector_base.84" = type { %"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl" }
%"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl" = type { %"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.ngraph::Dimension" = type { %"class.ngraph::Interval" }
%"class.ngraph::Interval" = type { i64, i64 }
%"class.std::shared_ptr.137" = type { %"class.std::__shared_ptr.138" }
%"class.std::__shared_ptr.138" = type { ptr, %"class.std::__shared_count" }
%"class.ngraph::AxisSet" = type { %"class.std::set.69" }
%"class.std::set.69" = type { %"class.std::_Rb_tree.70" }
%"class.std::_Rb_tree.70" = 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 }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%class.anon = type { ptr }
%"class.ngraph::op::v1::Reverse" = type <{ %"class.ngraph::op::Op", i32, [4 x i8] }>
%"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::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" }

@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [81 x i8], align 1
@_ZTIN6ngraph21NodeValidationFailureE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZN6ngraph7element7booleanE = external global %"class.ngraph::element::Type", align 4
@.str.6 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [18 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: 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 nounwind uwtable
declare dso_local void @_ZNSt3setImSt4lessImESaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #2 align 2

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6ngraph4Node23get_input_partial_shapeEm(ptr noundef nonnull align 8 dereferenceable(680), i64 noundef) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32)) #5 align 2

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

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

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

declare noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16)) #3

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #5 align 2

declare ptr @__cxa_allocate_exception(i64)

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

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

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

declare void @__cxa_throw(ptr, ptr, ptr)

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

declare void @__cxa_free_exception(ptr)

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

declare void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680), i64 noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(32)) #3

declare noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph4Node22get_input_element_typeEm(ptr noundef nonnull align 8 dereferenceable(680), i64 noundef) #3

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ngraph2op2v17Reverse24validate_and_infer_typesEv(ptr noundef nonnull align 8 dereferenceable(684) %0) unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca i1, align 1
  %9 = alloca %"class.ngraph::PartialShape", align 8
  %10 = alloca %"class.ngraph::Dimension", align 8
  %11 = alloca %"class.ngraph::PartialShape", align 8
  %12 = alloca %"class.ngraph::Dimension", align 8
  %13 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %14 = alloca i64, align 8
  %15 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca i1, align 1
  %18 = alloca i64, align 8
  %19 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %20 = alloca i64, align 8
  %21 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca i1, align 1
  %24 = alloca i64, align 8
  %25 = alloca %"class.std::shared_ptr.80", align 8
  %26 = alloca %"class.ngraph::Output", align 8
  %27 = alloca %"class.std::shared_ptr.137", align 8
  %28 = alloca %"class.std::shared_ptr.80", align 8
  %29 = alloca %"class.ngraph::AxisSet", align 8
  %30 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %31 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca i1, align 1
  %34 = alloca i8, align 1
  %35 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %36 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %37 = alloca %class.anon, align 8
  %38 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %39 = alloca i64, align 8
  %40 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca i1, align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  %43 = load ptr, ptr %2, align 8
  %44 = getelementptr inbounds %"class.ngraph::op::v1::Reverse", ptr %43, i32 0, i32 1
  %45 = load i32, ptr %44, align 8, !tbaa !9
  %46 = icmp eq i32 %45, 1
  br i1 %46, label %47, label %80

47:                                               ; preds = %1
  br label %48

48:                                               ; preds = %47
  %49 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph4Node22get_input_element_typeEm(ptr noundef nonnull align 8 dereferenceable(680) %43, i64 noundef 1)
  %50 = call noundef zeroext i1 @_ZNK6ngraph7element4TypeeqERKS1_(ptr noundef nonnull align 4 dereferenceable(4) %49, ptr noundef nonnull align 4 dereferenceable(4) @_ZN6ngraph7element7booleanE)
  br i1 %50, label %78, label %51

51:                                               ; preds = %48
  call void @llvm.lifetime.start.p0(i64 392, ptr %3) #7
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %3)
  %52 = getelementptr inbounds i8, ptr %3, i64 16
  %53 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA61_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 1 dereferenceable(61) @.str.6)
          to label %54 unwind label %61

54:                                               ; preds = %51
  store i1 true, ptr %8, align 1
  %55 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %6) #7
  %56 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %6, i32 0, i32 0
  store ptr @.str.3, ptr %56, align 8, !tbaa !65
  %57 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %6, i32 0, i32 1
  store i32 107, ptr %57, align 8, !tbaa !67
  %58 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %6, i32 0, i32 2
  store ptr @.str.7, ptr %58, align 8, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(128) %3)
          to label %59 unwind label %65

59:                                               ; preds = %54
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %55, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef %43, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %60 unwind label %69

60:                                               ; preds = %59
  store i1 false, ptr %8, align 1
  invoke void @__cxa_throw(ptr %55, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #8
          to label %389 unwind label %69

61:                                               ; preds = %51
  %62 = landingpad { ptr, i32 }
          cleanup
  %63 = extractvalue { ptr, i32 } %62, 0
  store ptr %63, ptr %4, align 8
  %64 = extractvalue { ptr, i32 } %62, 1
  store i32 %64, ptr %5, align 4
  br label %77

65:                                               ; preds = %54
  %66 = landingpad { ptr, i32 }
          cleanup
  %67 = extractvalue { ptr, i32 } %66, 0
  store ptr %67, ptr %4, align 8
  %68 = extractvalue { ptr, i32 } %66, 1
  store i32 %68, ptr %5, align 4
  br label %73

69:                                               ; preds = %60, %59
  %70 = landingpad { ptr, i32 }
          cleanup
  %71 = extractvalue { ptr, i32 } %70, 0
  store ptr %71, ptr %4, align 8
  %72 = extractvalue { ptr, i32 } %70, 1
  store i32 %72, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  br label %73

73:                                               ; preds = %69, %65
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %6) #7
  %74 = load i1, ptr %8, align 1
  br i1 %74, label %75, label %76

75:                                               ; preds = %73
  call void @__cxa_free_exception(ptr %55) #7
  br label %76

76:                                               ; preds = %75, %73
  br label %77

77:                                               ; preds = %76, %61
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %3) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr %3) #7
  br label %384

78:                                               ; preds = %48
  br label %79

79:                                               ; preds = %78
  br label %80

80:                                               ; preds = %79, %1
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #7
  %81 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6ngraph4Node23get_input_partial_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %43, i64 noundef 0)
  call void @_ZN6ngraph12PartialShapeC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %81)
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #7
  %82 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %83 unwind label %119

83:                                               ; preds = %80
  %84 = getelementptr inbounds %"class.ngraph::Dimension", ptr %10, i32 0, i32 0
  %85 = getelementptr inbounds { i64, i64 }, ptr %84, i32 0, i32 0
  %86 = extractvalue { i64, i64 } %82, 0
  store i64 %86, ptr %85, align 8
  %87 = getelementptr inbounds { i64, i64 }, ptr %84, i32 0, i32 1
  %88 = extractvalue { i64, i64 } %82, 1
  store i64 %88, ptr %87, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #7
  %89 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6ngraph4Node23get_input_partial_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %43, i64 noundef 1)
          to label %90 unwind label %123

90:                                               ; preds = %83
  invoke void @_ZN6ngraph12PartialShapeC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %91 unwind label %123

91:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 16, ptr %12) #7
  %92 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %93 unwind label %127

93:                                               ; preds = %91
  %94 = getelementptr inbounds %"class.ngraph::Dimension", ptr %12, i32 0, i32 0
  %95 = getelementptr inbounds { i64, i64 }, ptr %94, i32 0, i32 0
  %96 = extractvalue { i64, i64 } %92, 0
  store i64 %96, ptr %95, align 8
  %97 = getelementptr inbounds { i64, i64 }, ptr %94, i32 0, i32 1
  %98 = extractvalue { i64, i64 } %92, 1
  store i64 %98, ptr %97, align 8
  %99 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %100 unwind label %127

100:                                              ; preds = %93
  br i1 %99, label %101, label %222

101:                                              ; preds = %100
  br label %102

102:                                              ; preds = %101
  %103 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %104 unwind label %127

104:                                              ; preds = %102
  %105 = icmp eq i64 %103, 1
  br i1 %105, label %153, label %106

106:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 392, ptr %13) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %13)
          to label %107 unwind label %131

107:                                              ; preds = %106
  %108 = getelementptr inbounds i8, ptr %13, i64 16
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %109 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %110 unwind label %135

110:                                              ; preds = %107
  store i64 %109, ptr %14, align 8, !tbaa !69
  %111 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA50_cJlRA3_KcEEERSoS5_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %108, ptr noundef nonnull align 1 dereferenceable(50) @.str.8, ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 1 dereferenceable(3) @.str.2)
          to label %112 unwind label %135

112:                                              ; preds = %110
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  store i1 true, ptr %17, align 1
  %113 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #7
  %114 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %15, i32 0, i32 0
  store ptr @.str.3, ptr %114, align 8, !tbaa !65
  %115 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %15, i32 0, i32 1
  store i32 122, ptr %115, align 8, !tbaa !67
  %116 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %15, i32 0, i32 2
  store ptr @.str.9, ptr %116, align 8, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(128) %13)
          to label %117 unwind label %139

117:                                              ; preds = %112
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %113, ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef %43, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %118 unwind label %143

118:                                              ; preds = %117
  store i1 false, ptr %17, align 1
  invoke void @__cxa_throw(ptr %113, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #8
          to label %389 unwind label %143

119:                                              ; preds = %80
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %4, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %5, align 4
  br label %383

123:                                              ; preds = %90, %83
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %4, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %5, align 4
  br label %382

127:                                              ; preds = %379, %377, %222, %164, %162, %159, %102, %93, %91
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %4, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %5, align 4
  br label %381

131:                                              ; preds = %106
  %132 = landingpad { ptr, i32 }
          cleanup
  %133 = extractvalue { ptr, i32 } %132, 0
  store ptr %133, ptr %4, align 8
  %134 = extractvalue { ptr, i32 } %132, 1
  store i32 %134, ptr %5, align 4
  br label %152

135:                                              ; preds = %110, %107
  %136 = landingpad { ptr, i32 }
          cleanup
  %137 = extractvalue { ptr, i32 } %136, 0
  store ptr %137, ptr %4, align 8
  %138 = extractvalue { ptr, i32 } %136, 1
  store i32 %138, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  br label %151

139:                                              ; preds = %112
  %140 = landingpad { ptr, i32 }
          cleanup
  %141 = extractvalue { ptr, i32 } %140, 0
  store ptr %141, ptr %4, align 8
  %142 = extractvalue { ptr, i32 } %140, 1
  store i32 %142, ptr %5, align 4
  br label %147

143:                                              ; preds = %118, %117
  %144 = landingpad { ptr, i32 }
          cleanup
  %145 = extractvalue { ptr, i32 } %144, 0
  store ptr %145, ptr %4, align 8
  %146 = extractvalue { ptr, i32 } %144, 1
  store i32 %146, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %147

147:                                              ; preds = %143, %139
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #7
  %148 = load i1, ptr %17, align 1
  br i1 %148, label %149, label %150

149:                                              ; preds = %147
  call void @__cxa_free_exception(ptr %113) #7
  br label %150

150:                                              ; preds = %149, %147
  br label %151

151:                                              ; preds = %150, %135
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %13) #7
  br label %152

152:                                              ; preds = %151, %131
  call void @llvm.lifetime.end.p0(i64 392, ptr %13) #7
  br label %381

153:                                              ; preds = %104
  br label %154

154:                                              ; preds = %153
  br label %155

155:                                              ; preds = %154
  %156 = getelementptr inbounds %"class.ngraph::op::v1::Reverse", ptr %43, i32 0, i32 1
  %157 = load i32, ptr %156, align 8, !tbaa !9
  %158 = icmp eq i32 %157, 1
  br i1 %158, label %159, label %221

159:                                              ; preds = %155
  %160 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %161 unwind label %127

161:                                              ; preds = %159
  br i1 %160, label %162, label %220

162:                                              ; preds = %161
  %163 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %11, i64 noundef 0)
          to label %164 unwind label %127

164:                                              ; preds = %162
  %165 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %163)
          to label %166 unwind label %127

166:                                              ; preds = %164
  br i1 %165, label %167, label %220

167:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %168 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %11, i64 noundef 0)
          to label %169 unwind label %190

169:                                              ; preds = %167
  %170 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %168)
          to label %171 unwind label %190

171:                                              ; preds = %169
  store i64 %170, ptr %18, align 8, !tbaa !69
  br label %172

172:                                              ; preds = %171
  %173 = load i64, ptr %18, align 8, !tbaa !69
  %174 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %175 unwind label %190

175:                                              ; preds = %172
  %176 = icmp eq i64 %173, %174
  br i1 %176, label %216, label %177

177:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 392, ptr %19) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %19)
          to label %178 unwind label %194

178:                                              ; preds = %177
  %179 = getelementptr inbounds i8, ptr %19, i64 16
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %180 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %181 unwind label %198

181:                                              ; preds = %178
  store i64 %180, ptr %20, align 8, !tbaa !69
  %182 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA53_cJRKlRA42_KclRA18_S4_EEERSoS9_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %179, ptr noundef nonnull align 1 dereferenceable(53) @.str.10, ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 1 dereferenceable(42) @.str.11, ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 1 dereferenceable(18) @.str.12)
          to label %183 unwind label %198

183:                                              ; preds = %181
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  store i1 true, ptr %23, align 1
  %184 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #7
  %185 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %21, i32 0, i32 0
  store ptr @.str.3, ptr %185, align 8, !tbaa !65
  %186 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %21, i32 0, i32 1
  store i32 135, ptr %186, align 8, !tbaa !67
  %187 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %21, i32 0, i32 2
  store ptr @.str.13, ptr %187, align 8, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(128) %19)
          to label %188 unwind label %202

188:                                              ; preds = %183
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %184, ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef %43, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %189 unwind label %206

189:                                              ; preds = %188
  store i1 false, ptr %23, align 1
  invoke void @__cxa_throw(ptr %184, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #8
          to label %389 unwind label %206

190:                                              ; preds = %172, %169, %167
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %4, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %5, align 4
  br label %219

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

198:                                              ; preds = %181, %178
  %199 = landingpad { ptr, i32 }
          cleanup
  %200 = extractvalue { ptr, i32 } %199, 0
  store ptr %200, ptr %4, align 8
  %201 = extractvalue { ptr, i32 } %199, 1
  store i32 %201, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %214

202:                                              ; preds = %183
  %203 = landingpad { ptr, i32 }
          cleanup
  %204 = extractvalue { ptr, i32 } %203, 0
  store ptr %204, ptr %4, align 8
  %205 = extractvalue { ptr, i32 } %203, 1
  store i32 %205, ptr %5, align 4
  br label %210

206:                                              ; preds = %189, %188
  %207 = landingpad { ptr, i32 }
          cleanup
  %208 = extractvalue { ptr, i32 } %207, 0
  store ptr %208, ptr %4, align 8
  %209 = extractvalue { ptr, i32 } %207, 1
  store i32 %209, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %210

210:                                              ; preds = %206, %202
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #7
  %211 = load i1, ptr %23, align 1
  br i1 %211, label %212, label %213

212:                                              ; preds = %210
  call void @__cxa_free_exception(ptr %184) #7
  br label %213

213:                                              ; preds = %212, %210
  br label %214

214:                                              ; preds = %213, %198
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %19) #7
  br label %215

215:                                              ; preds = %214, %194
  call void @llvm.lifetime.end.p0(i64 392, ptr %19) #7
  br label %219

216:                                              ; preds = %175
  br label %217

217:                                              ; preds = %216
  br label %218

218:                                              ; preds = %217
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  br label %220

219:                                              ; preds = %215, %190
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  br label %381

220:                                              ; preds = %218, %166, %161
  br label %221

221:                                              ; preds = %220, %155
  br label %222

222:                                              ; preds = %221, %100
  %223 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %224 unwind label %127

224:                                              ; preds = %222
  br i1 %223, label %225, label %377

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

227:                                              ; preds = %225
  store i64 %226, ptr %24, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #7
  invoke void @_ZNK6ngraph4Node11input_valueEm(ptr dead_on_unwind writable sret(%"class.ngraph::Output") align 8 %26, ptr noundef nonnull align 8 dereferenceable(680) %43, i64 noundef 1)
          to label %228 unwind label %263

228:                                              ; preds = %227
  invoke void @_ZNK6ngraph6OutputINS_4NodeEE19get_node_shared_ptrEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.80") align 8 %25, ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %229 unwind label %267

229:                                              ; preds = %228
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #7
  %230 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  %231 = load ptr, ptr %230, align 8, !tbaa !70
  %232 = getelementptr inbounds ptr, ptr %231, i64 20
  %233 = load ptr, ptr %232, align 8
  %234 = invoke noundef zeroext i1 %233(ptr noundef nonnull align 8 dereferenceable(680) %230)
          to label %235 unwind label %272

235:                                              ; preds = %229
  br i1 %234, label %236, label %373

236:                                              ; preds = %235
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #7
  call void @_ZNSt10shared_ptrIN6ngraph4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 8 dereferenceable(16) %25) #7
  invoke void @_ZN6ngraph11as_type_ptrINS_2op2v08ConstantESt10shared_ptrINS_4NodeEEEENSt9enable_ifIXsr3std14is_convertibleIDTclsr3stdE19static_pointer_castIT_Eclsr3stdE7declvalIT0_EEEES4_IS8_EEE5valueESB_E4typeES9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.137") align 8 %27, ptr noundef %28)
          to label %237 unwind label %276

237:                                              ; preds = %236
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #7
  %238 = getelementptr inbounds %"class.ngraph::op::v1::Reverse", ptr %43, i32 0, i32 1
  %239 = load i32, ptr %238, align 8, !tbaa !9
  %240 = icmp eq i32 %239, 0
  br i1 %240, label %241, label %371

241:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 48, ptr %29) #7
  %242 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6ngraph2op2v08ConstantELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %27) #7
  invoke void @_ZNK6ngraph2op2v08Constant16get_axis_set_valEv(ptr dead_on_unwind writable sret(%"class.ngraph::AxisSet") align 8 %29, ptr noundef nonnull align 8 dereferenceable(729) %242)
          to label %243 unwind label %280

243:                                              ; preds = %241
  br label %244

244:                                              ; preds = %243
  %245 = call noundef i64 @_ZNKSt3setImSt4lessImESaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %29) #7
  %246 = load i64, ptr %24, align 8, !tbaa !69
  %247 = icmp ule i64 %245, %246
  br i1 %247, label %306, label %248

248:                                              ; preds = %244
  call void @llvm.lifetime.start.p0(i64 392, ptr %30) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %30)
          to label %249 unwind label %284

249:                                              ; preds = %248
  %250 = getelementptr inbounds i8, ptr %30, i64 16
  %251 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA15_cJRKNS_7AxisSetERA44_KcRKNS_12PartialShapeERA3_S5_EEERSoSD_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef nonnull align 1 dereferenceable(15) @.str.14, ptr noundef nonnull align 8 dereferenceable(48) %29, ptr noundef nonnull align 1 dereferenceable(44) @.str.15, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(3) @.str.2)
          to label %252 unwind label %288

252:                                              ; preds = %249
  store i1 true, ptr %33, align 1
  %253 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %31) #7
  %254 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %31, i32 0, i32 0
  store ptr @.str.3, ptr %254, align 8, !tbaa !65
  %255 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %31, i32 0, i32 1
  store i32 159, ptr %255, align 8, !tbaa !67
  %256 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %31, i32 0, i32 2
  store ptr @.str.16, ptr %256, align 8, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(128) %30)
          to label %257 unwind label %292

257:                                              ; preds = %252
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %253, ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef %43, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %258 unwind label %296

258:                                              ; preds = %257
  store i1 false, ptr %33, align 1
  invoke void @__cxa_throw(ptr %253, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #8
          to label %389 unwind label %296

259:                                              ; preds = %225
  %260 = landingpad { ptr, i32 }
          cleanup
  %261 = extractvalue { ptr, i32 } %260, 0
  store ptr %261, ptr %4, align 8
  %262 = extractvalue { ptr, i32 } %260, 1
  store i32 %262, ptr %5, align 4
  br label %376

263:                                              ; preds = %227
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %4, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %5, align 4
  br label %271

267:                                              ; preds = %228
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %4, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %5, align 4
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  br label %271

271:                                              ; preds = %267, %263
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #7
  br label %375

272:                                              ; preds = %229
  %273 = landingpad { ptr, i32 }
          cleanup
  %274 = extractvalue { ptr, i32 } %273, 0
  store ptr %274, ptr %4, align 8
  %275 = extractvalue { ptr, i32 } %273, 1
  store i32 %275, ptr %5, align 4
  br label %374

276:                                              ; preds = %236
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %4, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, ptr %5, align 4
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #7
  br label %372

280:                                              ; preds = %241
  %281 = landingpad { ptr, i32 }
          cleanup
  %282 = extractvalue { ptr, i32 } %281, 0
  store ptr %282, ptr %4, align 8
  %283 = extractvalue { ptr, i32 } %281, 1
  store i32 %283, ptr %5, align 4
  br label %370

284:                                              ; preds = %248
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %4, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %5, align 4
  br label %305

288:                                              ; preds = %249
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %4, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %5, align 4
  br label %304

292:                                              ; preds = %252
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %4, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %5, align 4
  br label %300

296:                                              ; preds = %258, %257
  %297 = landingpad { ptr, i32 }
          cleanup
  %298 = extractvalue { ptr, i32 } %297, 0
  store ptr %298, ptr %4, align 8
  %299 = extractvalue { ptr, i32 } %297, 1
  store i32 %299, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  br label %300

300:                                              ; preds = %296, %292
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #7
  %301 = load i1, ptr %33, align 1
  br i1 %301, label %302, label %303

302:                                              ; preds = %300
  call void @__cxa_free_exception(ptr %253) #7
  br label %303

303:                                              ; preds = %302, %300
  br label %304

304:                                              ; preds = %303, %288
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %30) #7
  br label %305

305:                                              ; preds = %304, %284
  call void @llvm.lifetime.end.p0(i64 392, ptr %30) #7
  br label %369

306:                                              ; preds = %244
  br label %307

307:                                              ; preds = %306
  br label %308

308:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #7
  %309 = call ptr @_ZNKSt3setImSt4lessImESaImEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %29) #7
  %310 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %35, i32 0, i32 0
  store ptr %309, ptr %310, align 8
  %311 = call ptr @_ZNKSt3setImSt4lessImESaImEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %29) #7
  %312 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %36, i32 0, i32 0
  store ptr %311, ptr %312, align 8
  %313 = getelementptr inbounds %class.anon, ptr %37, i32 0, i32 0
  store ptr %24, ptr %313, align 8, !tbaa !5
  %314 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %35, i32 0, i32 0
  %315 = load ptr, ptr %314, align 8
  %316 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %36, i32 0, i32 0
  %317 = load ptr, ptr %316, align 8
  %318 = getelementptr inbounds %class.anon, ptr %37, i32 0, i32 0
  %319 = load ptr, ptr %318, align 8
  %320 = invoke noundef zeroext i1 @"_ZSt6all_ofISt23_Rb_tree_const_iteratorImEZN6ngraph2op2v17Reverse24validate_and_infer_typesEvE3$_0EbT_S7_T0_"(ptr %315, ptr %317, ptr %319)
          to label %321 unwind label %339

321:                                              ; preds = %308
  %322 = zext i1 %320 to i8
  store i8 %322, ptr %34, align 1, !tbaa !72
  br label %323

323:                                              ; preds = %321
  %324 = load i8, ptr %34, align 1, !tbaa !72, !range !74, !noundef !75
  %325 = trunc i8 %324 to i1
  br i1 %325, label %365, label %326

326:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 392, ptr %38) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %38)
          to label %327 unwind label %343

327:                                              ; preds = %326
  %328 = getelementptr inbounds i8, ptr %38, i64 16
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #7
  %329 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %330 unwind label %347

330:                                              ; preds = %327
  store i64 %329, ptr %39, align 8, !tbaa !69
  %331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA28_cJRKNS_7AxisSetERA34_KclRA3_S5_EEERSoSA_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %328, ptr noundef nonnull align 1 dereferenceable(28) @.str.17, ptr noundef nonnull align 8 dereferenceable(48) %29, ptr noundef nonnull align 1 dereferenceable(34) @.str.18, ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 1 dereferenceable(3) @.str.2)
          to label %332 unwind label %347

332:                                              ; preds = %330
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  store i1 true, ptr %42, align 1
  %333 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %40) #7
  %334 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %40, i32 0, i32 0
  store ptr @.str.3, ptr %334, align 8, !tbaa !65
  %335 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %40, i32 0, i32 1
  store i32 171, ptr %335, align 8, !tbaa !67
  %336 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %40, i32 0, i32 2
  store ptr @.str.19, ptr %336, align 8, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(128) %38)
          to label %337 unwind label %351

337:                                              ; preds = %332
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %333, ptr noundef nonnull align 8 dereferenceable(24) %40, ptr noundef %43, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %338 unwind label %355

338:                                              ; preds = %337
  store i1 false, ptr %42, align 1
  invoke void @__cxa_throw(ptr %333, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #8
          to label %389 unwind label %355

339:                                              ; preds = %308
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %4, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %5, align 4
  br label %368

343:                                              ; preds = %326
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %4, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %5, align 4
  br label %364

347:                                              ; preds = %330, %327
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %4, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  br label %363

351:                                              ; preds = %332
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %4, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %5, align 4
  br label %359

355:                                              ; preds = %338, %337
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %4, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %359

359:                                              ; preds = %355, %351
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #7
  %360 = load i1, ptr %42, align 1
  br i1 %360, label %361, label %362

361:                                              ; preds = %359
  call void @__cxa_free_exception(ptr %333) #7
  br label %362

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

363:                                              ; preds = %362, %347
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %38) #7
  br label %364

364:                                              ; preds = %363, %343
  call void @llvm.lifetime.end.p0(i64 392, ptr %38) #7
  br label %368

365:                                              ; preds = %323
  br label %366

366:                                              ; preds = %365
  br label %367

367:                                              ; preds = %366
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #7
  call void @_ZNSt3setImSt4lessImESaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %29) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %29) #7
  br label %371

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

369:                                              ; preds = %368, %305
  call void @_ZNSt3setImSt4lessImESaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %29) #7
  br label %370

370:                                              ; preds = %369, %280
  call void @llvm.lifetime.end.p0(i64 48, ptr %29) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v08ConstantELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #7
  br label %372

371:                                              ; preds = %367, %237
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v08ConstantELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #7
  br label %373

372:                                              ; preds = %370, %276
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #7
  br label %374

373:                                              ; preds = %371, %235
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %377

374:                                              ; preds = %372, %272
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #7
  br label %375

375:                                              ; preds = %374, %271
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #7
  br label %376

376:                                              ; preds = %375, %259
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %381

377:                                              ; preds = %373, %224
  %378 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph4Node22get_input_element_typeEm(ptr noundef nonnull align 8 dereferenceable(680) %43, i64 noundef 0)
          to label %379 unwind label %127

379:                                              ; preds = %377
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %43, i64 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %378, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %380 unwind label %127

380:                                              ; preds = %379
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #7
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #7
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #7
  ret void

381:                                              ; preds = %376, %219, %152, %127
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #7
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %382

382:                                              ; preds = %381, %123
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  br label %383

383:                                              ; preds = %382, %119
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #7
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #7
  br label %384

384:                                              ; preds = %383, %77
  %385 = load ptr, ptr %4, align 8
  %386 = load i32, ptr %5, align 4
  %387 = insertvalue { ptr, i32 } poison, ptr %385, 0
  %388 = insertvalue { ptr, i32 } %387, i32 %386, 1
  resume { ptr, i32 } %388

389:                                              ; preds = %338, %258, %189, %118, %60
  unreachable
}

declare noundef zeroext i1 @_ZNK6ngraph7element4TypeeqERKS1_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA61_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(61)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA50_cJlRA3_KcEEERSoS5_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(50), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(3)) #4

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA53_cJRKlRA42_KclRA18_S4_EEERSoS9_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(53), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(42), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(18)) #4

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

; 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

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

; 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

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

declare void @_ZNK6ngraph2op2v08Constant16get_axis_set_valEv(ptr dead_on_unwind writable sret(%"class.ngraph::AxisSet") align 8, ptr noundef nonnull align 8 dereferenceable(729)) #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA15_cJRKNS_7AxisSetERA44_KcRKNS_12PartialShapeERA3_S5_EEERSoSD_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(15), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 1 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(3)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZSt6all_ofISt23_Rb_tree_const_iteratorImEZN6ngraph2op2v17Reverse24validate_and_infer_typesEvE3$_0EbT_S7_T0_"(ptr, ptr, ptr) #4

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA28_cJRKNS_7AxisSetERA34_KclRA3_S5_EEERSoSA_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(28), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 1 dereferenceable(34), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(3)) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt12__shared_ptrIN6ngraph2op2v08ConstantELN9__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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { noreturn }

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

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


; 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::element::Type" = type { i32 }
%"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.ngraph::Output" = type { %"class.std::shared_ptr.80", i64 }
%"class.std::shared_ptr.80" = type { %"class.std::__shared_ptr.81" }
%"class.std::__shared_ptr.81" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"struct.ngraph::CheckLocInfo" = type { ptr, i32, ptr }
%"class.ngraph::PartialShape" = type { i8, %"class.std::vector.83" }
%"class.std::vector.83" = type { %"struct.std::_Vector_base.84" }
%"struct.std::_Vector_base.84" = type { %"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl" }
%"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl" = type { %"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.ngraph::Dimension" = type { %"class.ngraph::Interval" }
%"class.ngraph::Interval" = type { i64, i64 }
%"class.std::shared_ptr.137" = type { %"class.std::__shared_ptr.138" }
%"class.std::__shared_ptr.138" = type { ptr, %"class.std::__shared_count" }
%"class.ngraph::AxisSet" = type { %"class.std::set.69" }
%"class.std::set.69" = type { %"class.std::_Rb_tree.70" }
%"class.std::_Rb_tree.70" = 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 }

@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [81 x i8], align 1
@_ZTIN6ngraph21NodeValidationFailureE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZN6ngraph7element7booleanE = external global %"class.ngraph::element::Type", align 4
@.str.6 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [18 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: 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 nounwind uwtable
declare dso_local void @_ZNSt3setImSt4lessImESaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #2 align 2

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6ngraph4Node23get_input_partial_shapeEm(ptr noundef nonnull align 8 dereferenceable(680), i64 noundef) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 align 2

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

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

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

declare noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #5 align 2

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

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

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

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

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

declare void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680), i64 noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

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

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 #3

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ngraph2op2v17Reverse24validate_and_infer_typesEv(ptr noundef nonnull align 8 dereferenceable(684) %0) unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %3 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.ngraph::PartialShape", align 8
  %6 = alloca %"class.ngraph::Dimension", align 8
  %7 = alloca %"class.ngraph::PartialShape", align 8
  %8 = alloca %"class.ngraph::Dimension", align 8
  %9 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %10 = alloca i64, align 8
  %11 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca i64, align 8
  %14 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %15 = alloca i64, align 8
  %16 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca i64, align 8
  %19 = alloca %"class.std::shared_ptr.80", align 8
  %20 = alloca %"class.ngraph::Output", align 8
  %21 = alloca %"class.std::shared_ptr.137", align 8
  %22 = alloca %"class.std::shared_ptr.80", align 8
  %23 = alloca %"class.ngraph::AxisSet", align 8
  %24 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %25 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %28 = alloca i64, align 8
  %29 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = getelementptr inbounds i8, ptr %0, i64 680
  %32 = load i32, ptr %31, align 8, !tbaa !5
  %33 = icmp eq i32 %32, 1
  br i1 %33, label %34, label %54

34:                                               ; preds = %1
  %35 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph4Node22get_input_element_typeEm(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 1)
  %36 = tail call noundef zeroext i1 @_ZNK6ngraph7element4TypeeqERKS1_(ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef nonnull align 4 dereferenceable(4) @_ZN6ngraph7element7booleanE)
  br i1 %36, label %54, label %37

37:                                               ; preds = %34
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %2) #7
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %2)
  %38 = getelementptr inbounds i8, ptr %2, i64 16
  %39 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA61_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 1 dereferenceable(61) @.str.6)
          to label %40 unwind label %47

40:                                               ; preds = %37
  %41 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #7
  store ptr @.str.3, ptr %3, align 8, !tbaa !64
  %42 = getelementptr inbounds i8, ptr %3, i64 8
  store i32 107, ptr %42, align 8, !tbaa !66
  %43 = getelementptr inbounds i8, ptr %3, i64 16
  store ptr @.str.7, ptr %43, align 8, !tbaa !67
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull align 8 dereferenceable(128) %2)
          to label %44 unwind label %.thread

44:                                               ; preds = %40
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %41, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %46 unwind label %.thread83

.thread83:                                        ; preds = %44
  %45 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #7
  br label %52

46:                                               ; preds = %44
  invoke void @__cxa_throw(ptr nonnull %41, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #8
          to label %254 unwind label %50

47:                                               ; preds = %37
  %48 = landingpad { ptr, i32 }
          cleanup
  br label %53

.thread:                                          ; preds = %40
  %49 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #7
  br label %52

50:                                               ; preds = %46
  %51 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #7
  br label %53

52:                                               ; preds = %.thread83, %.thread
  %.pn82 = phi { ptr, i32 } [ %49, %.thread ], [ %45, %.thread83 ]
  call void @__cxa_free_exception(ptr %41) #7
  br label %53

53:                                               ; preds = %50, %52, %47
  %.pn.pn = phi { ptr, i32 } [ %.pn82, %52 ], [ %51, %50 ], [ %48, %47 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %2) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %2) #7
  br label %253

54:                                               ; preds = %34, %1
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #7
  %55 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6ngraph4Node23get_input_partial_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 0)
  call void @_ZN6ngraph12PartialShapeC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %55)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #7
  %56 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %57 unwind label %88

57:                                               ; preds = %54
  %58 = extractvalue { i64, i64 } %56, 0
  store i64 %58, ptr %6, align 8
  %59 = getelementptr inbounds i8, ptr %6, i64 8
  %60 = extractvalue { i64, i64 } %56, 1
  store i64 %60, ptr %59, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #7
  %61 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6ngraph4Node23get_input_partial_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 1)
          to label %62 unwind label %90

62:                                               ; preds = %57
  invoke void @_ZN6ngraph12PartialShapeC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %63 unwind label %90

63:                                               ; preds = %62
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #7
  %64 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %65 unwind label %92

65:                                               ; preds = %63
  %66 = extractvalue { i64, i64 } %64, 0
  store i64 %66, ptr %8, align 8
  %67 = getelementptr inbounds i8, ptr %8, i64 8
  %68 = extractvalue { i64, i64 } %64, 1
  store i64 %68, ptr %67, align 8
  %69 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %8)
          to label %70 unwind label %92

70:                                               ; preds = %65
  br i1 %69, label %71, label %150

71:                                               ; preds = %70
  %72 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %8)
          to label %73 unwind label %92

73:                                               ; preds = %71
  %74 = icmp eq i64 %72, 1
  br i1 %74, label %104, label %75

75:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %9) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %9)
          to label %76 unwind label %94

76:                                               ; preds = %75
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  %77 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %8)
          to label %78 unwind label %96

78:                                               ; preds = %76
  %79 = getelementptr inbounds i8, ptr %9, i64 16
  store i64 %77, ptr %10, align 8, !tbaa !68
  %80 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA50_cJlRA3_KcEEERSoS5_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 1 dereferenceable(50) @.str.8, ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 1 dereferenceable(3) @.str.2)
          to label %81 unwind label %96

81:                                               ; preds = %78
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  %82 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #7
  store ptr @.str.3, ptr %11, align 8, !tbaa !64
  %83 = getelementptr inbounds i8, ptr %11, i64 8
  store i32 122, ptr %83, align 8, !tbaa !66
  %84 = getelementptr inbounds i8, ptr %11, i64 16
  store ptr @.str.9, ptr %84, align 8, !tbaa !67
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(128) %9)
          to label %85 unwind label %.thread85

85:                                               ; preds = %81
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %82, ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %87 unwind label %.thread89

.thread89:                                        ; preds = %85
  %86 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #7
  br label %101

87:                                               ; preds = %85
  invoke void @__cxa_throw(ptr nonnull %82, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #8
          to label %254 unwind label %99

88:                                               ; preds = %54
  %89 = landingpad { ptr, i32 }
          cleanup
  br label %252

90:                                               ; preds = %62, %57
  %91 = landingpad { ptr, i32 }
          cleanup
  br label %251

92:                                               ; preds = %248, %246, %150, %112, %110, %107, %71, %65, %63
  %93 = landingpad { ptr, i32 }
          cleanup
  br label %250

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

96:                                               ; preds = %78, %76
  %97 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  br label %102

.thread85:                                        ; preds = %81
  %98 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #7
  br label %101

99:                                               ; preds = %87
  %100 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #7
  br label %102

101:                                              ; preds = %.thread89, %.thread85
  %.pn4988 = phi { ptr, i32 } [ %98, %.thread85 ], [ %86, %.thread89 ]
  call void @__cxa_free_exception(ptr %82) #7
  br label %102

102:                                              ; preds = %99, %101, %96
  %.pn49.pn = phi { ptr, i32 } [ %.pn4988, %101 ], [ %100, %99 ], [ %97, %96 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %9) #7
  br label %103

103:                                              ; preds = %102, %94
  %.pn49.pn.pn = phi { ptr, i32 } [ %.pn49.pn, %102 ], [ %95, %94 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %9) #7
  br label %250

104:                                              ; preds = %73
  %105 = load i32, ptr %31, align 8, !tbaa !5
  %106 = icmp eq i32 %105, 1
  br i1 %106, label %107, label %150

107:                                              ; preds = %104
  %108 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %109 unwind label %92

109:                                              ; preds = %107
  br i1 %108, label %110, label %150

110:                                              ; preds = %109
  %111 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %7, i64 noundef 0)
          to label %112 unwind label %92

112:                                              ; preds = %110
  %113 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %111)
          to label %114 unwind label %92

114:                                              ; preds = %112
  br i1 %113, label %115, label %150

115:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #7
  %116 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %7, i64 noundef 0)
          to label %117 unwind label %136

117:                                              ; preds = %115
  %118 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %116)
          to label %119 unwind label %136

119:                                              ; preds = %117
  store i64 %118, ptr %13, align 8, !tbaa !68
  %120 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %121 unwind label %136

121:                                              ; preds = %119
  %122 = icmp eq i64 %118, %120
  br i1 %122, label %148, label %123

123:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %14) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %14)
          to label %124 unwind label %138

124:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #7
  %125 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %126 unwind label %140

126:                                              ; preds = %124
  %127 = getelementptr inbounds i8, ptr %14, i64 16
  store i64 %125, ptr %15, align 8, !tbaa !68
  %128 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA53_cJRKlRA42_KclRA18_S4_EEERSoS9_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %127, ptr noundef nonnull align 1 dereferenceable(53) @.str.10, ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 1 dereferenceable(42) @.str.11, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 1 dereferenceable(18) @.str.12)
          to label %129 unwind label %140

129:                                              ; preds = %126
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  %130 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #7
  store ptr @.str.3, ptr %16, align 8, !tbaa !64
  %131 = getelementptr inbounds i8, ptr %16, i64 8
  store i32 135, ptr %131, align 8, !tbaa !66
  %132 = getelementptr inbounds i8, ptr %16, i64 16
  store ptr @.str.13, ptr %132, align 8, !tbaa !67
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(128) %14)
          to label %133 unwind label %.thread91

133:                                              ; preds = %129
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %130, ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %135 unwind label %.thread95

.thread95:                                        ; preds = %133
  %134 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #7
  br label %145

135:                                              ; preds = %133
  invoke void @__cxa_throw(ptr nonnull %130, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #8
          to label %254 unwind label %143

136:                                              ; preds = %119, %117, %115
  %137 = landingpad { ptr, i32 }
          cleanup
  br label %149

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

140:                                              ; preds = %126, %124
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  br label %146

.thread91:                                        ; preds = %129
  %142 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #7
  br label %145

143:                                              ; preds = %135
  %144 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #7
  br label %146

145:                                              ; preds = %.thread95, %.thread91
  %.pn5394 = phi { ptr, i32 } [ %142, %.thread91 ], [ %134, %.thread95 ]
  call void @__cxa_free_exception(ptr %130) #7
  br label %146

146:                                              ; preds = %143, %145, %140
  %.pn53.pn = phi { ptr, i32 } [ %.pn5394, %145 ], [ %144, %143 ], [ %141, %140 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %14) #7
  br label %147

147:                                              ; preds = %146, %138
  %.pn53.pn.pn = phi { ptr, i32 } [ %.pn53.pn, %146 ], [ %139, %138 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %14) #7
  br label %149

148:                                              ; preds = %121
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  br label %150

149:                                              ; preds = %147, %136
  %.pn53.pn.pn.pn = phi { ptr, i32 } [ %.pn53.pn.pn, %147 ], [ %137, %136 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  br label %250

150:                                              ; preds = %104, %148, %114, %109, %70
  %151 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %152 unwind label %92

152:                                              ; preds = %150
  br i1 %151, label %153, label %246

153:                                              ; preds = %152
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #7
  %154 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %155 unwind label %184

155:                                              ; preds = %153
  store i64 %154, ptr %18, align 8, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #7
  invoke void @_ZNK6ngraph4Node11input_valueEm(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::Output") align 8 %20, ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 1)
          to label %156 unwind label %186

156:                                              ; preds = %155
  invoke void @_ZNK6ngraph6OutputINS_4NodeEE19get_node_shared_ptrEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.80") align 8 %19, ptr noundef nonnull align 8 dereferenceable(24) %20)
          to label %157 unwind label %188

157:                                              ; preds = %156
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #7
  %158 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  %159 = load ptr, ptr %158, align 8, !tbaa !69
  %160 = getelementptr inbounds i8, ptr %159, i64 160
  %161 = load ptr, ptr %160, align 8
  %162 = invoke noundef zeroext i1 %161(ptr noundef nonnull align 8 dereferenceable(680) %158)
          to label %163 unwind label %191

163:                                              ; preds = %157
  br i1 %162, label %164, label %242

164:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %21) #7
  call void @_ZNSt10shared_ptrIN6ngraph4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull align 8 dereferenceable(16) %19) #7
  invoke void @_ZN6ngraph11as_type_ptrINS_2op2v08ConstantESt10shared_ptrINS_4NodeEEEENSt9enable_ifIXsr3std14is_convertibleIDTclsr3stdE19static_pointer_castIT_Eclsr3stdE7declvalIT0_EEEES4_IS8_EEE5valueESB_E4typeES9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.137") align 8 %21, ptr noundef nonnull %22)
          to label %165 unwind label %193

165:                                              ; preds = %164
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  %166 = load i32, ptr %31, align 8, !tbaa !5
  %167 = icmp eq i32 %166, 0
  br i1 %167, label %168, label %240

168:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %23) #7
  %169 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN6ngraph2op2v08ConstantELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNK6ngraph2op2v08Constant16get_axis_set_valEv(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::AxisSet") align 8 %23, ptr noundef nonnull align 8 dereferenceable(729) %169)
          to label %170 unwind label %195

170:                                              ; preds = %168
  %171 = call noundef i64 @_ZNKSt3setImSt4lessImESaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %23) #7
  %172 = load i64, ptr %18, align 8, !tbaa !68
  %.not = icmp ugt i64 %171, %172
  br i1 %.not, label %173, label %207

173:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %24) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %24)
          to label %174 unwind label %197

174:                                              ; preds = %173
  %175 = getelementptr inbounds i8, ptr %24, i64 16
  %176 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA15_cJRKNS_7AxisSetERA44_KcRKNS_12PartialShapeERA3_S5_EEERSoSD_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %175, ptr noundef nonnull align 1 dereferenceable(15) @.str.14, ptr noundef nonnull align 8 dereferenceable(48) %23, ptr noundef nonnull align 1 dereferenceable(44) @.str.15, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 1 dereferenceable(3) @.str.2)
          to label %177 unwind label %199

177:                                              ; preds = %174
  %178 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #7
  store ptr @.str.3, ptr %25, align 8, !tbaa !64
  %179 = getelementptr inbounds i8, ptr %25, i64 8
  store i32 159, ptr %179, align 8, !tbaa !66
  %180 = getelementptr inbounds i8, ptr %25, i64 16
  store ptr @.str.16, ptr %180, align 8, !tbaa !67
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(128) %24)
          to label %181 unwind label %.thread97

181:                                              ; preds = %177
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %178, ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %183 unwind label %.thread101

.thread101:                                       ; preds = %181
  %182 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #7
  br label %204

183:                                              ; preds = %181
  invoke void @__cxa_throw(ptr nonnull %178, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #8
          to label %254 unwind label %202

184:                                              ; preds = %153
  %185 = landingpad { ptr, i32 }
          cleanup
  br label %245

186:                                              ; preds = %155
  %187 = landingpad { ptr, i32 }
          cleanup
  br label %190

188:                                              ; preds = %156
  %189 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #7
  br label %190

190:                                              ; preds = %188, %186
  %.pn58 = phi { ptr, i32 } [ %189, %188 ], [ %187, %186 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #7
  br label %244

191:                                              ; preds = %157
  %192 = landingpad { ptr, i32 }
          cleanup
  br label %243

193:                                              ; preds = %164
  %194 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  br label %241

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

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

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

.thread97:                                        ; preds = %177
  %201 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #7
  br label %204

202:                                              ; preds = %183
  %203 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #7
  br label %205

204:                                              ; preds = %.thread101, %.thread97
  %.pn60100 = phi { ptr, i32 } [ %201, %.thread97 ], [ %182, %.thread101 ]
  call void @__cxa_free_exception(ptr %178) #7
  br label %205

205:                                              ; preds = %202, %204, %199
  %.pn60.pn = phi { ptr, i32 } [ %.pn60100, %204 ], [ %203, %202 ], [ %200, %199 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %24) #7
  br label %206

206:                                              ; preds = %205, %197
  %.pn60.pn.pn = phi { ptr, i32 } [ %.pn60.pn, %205 ], [ %198, %197 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %24) #7
  br label %238

207:                                              ; preds = %170
  %208 = call ptr @_ZNKSt3setImSt4lessImESaImEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %23) #7
  %209 = call ptr @_ZNKSt3setImSt4lessImESaImEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %23) #7
  %210 = invoke noundef zeroext i1 @"_ZSt6all_ofISt23_Rb_tree_const_iteratorImEZN6ngraph2op2v17Reverse24validate_and_infer_typesEvE3$_0EbT_S7_T0_"(ptr %208, ptr %209, ptr nonnull %18)
          to label %211 unwind label %225

211:                                              ; preds = %207
  br i1 %210, label %237, label %212

212:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %27) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %27)
          to label %213 unwind label %227

213:                                              ; preds = %212
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #7
  %214 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %215 unwind label %229

215:                                              ; preds = %213
  %216 = getelementptr inbounds i8, ptr %27, i64 16
  store i64 %214, ptr %28, align 8, !tbaa !68
  %217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA28_cJRKNS_7AxisSetERA34_KclRA3_S5_EEERSoSA_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %216, ptr noundef nonnull align 1 dereferenceable(28) @.str.17, ptr noundef nonnull align 8 dereferenceable(48) %23, ptr noundef nonnull align 1 dereferenceable(34) @.str.18, ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 1 dereferenceable(3) @.str.2)
          to label %218 unwind label %229

218:                                              ; preds = %215
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  %219 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #7
  store ptr @.str.3, ptr %29, align 8, !tbaa !64
  %220 = getelementptr inbounds i8, ptr %29, i64 8
  store i32 171, ptr %220, align 8, !tbaa !66
  %221 = getelementptr inbounds i8, ptr %29, i64 16
  store ptr @.str.19, ptr %221, align 8, !tbaa !67
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(128) %27)
          to label %222 unwind label %.thread103

222:                                              ; preds = %218
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %219, ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %224 unwind label %.thread107

.thread107:                                       ; preds = %222
  %223 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #7
  br label %234

224:                                              ; preds = %222
  invoke void @__cxa_throw(ptr nonnull %219, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #8
          to label %254 unwind label %232

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

227:                                              ; preds = %212
  %228 = landingpad { ptr, i32 }
          cleanup
  br label %236

229:                                              ; preds = %215, %213
  %230 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  br label %235

.thread103:                                       ; preds = %218
  %231 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #7
  br label %234

232:                                              ; preds = %224
  %233 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #7
  br label %235

234:                                              ; preds = %.thread107, %.thread103
  %.pn64106 = phi { ptr, i32 } [ %231, %.thread103 ], [ %223, %.thread107 ]
  call void @__cxa_free_exception(ptr %219) #7
  br label %235

235:                                              ; preds = %232, %234, %229
  %.pn64.pn = phi { ptr, i32 } [ %.pn64106, %234 ], [ %233, %232 ], [ %230, %229 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %27) #7
  br label %236

236:                                              ; preds = %235, %227
  %.pn64.pn.pn = phi { ptr, i32 } [ %.pn64.pn, %235 ], [ %228, %227 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %27) #7
  br label %238

237:                                              ; preds = %211
  call void @_ZNSt3setImSt4lessImESaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %23) #7
  br label %240

238:                                              ; preds = %225, %236, %206
  %.pn64.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn60.pn.pn, %206 ], [ %.pn64.pn.pn, %236 ], [ %226, %225 ]
  call void @_ZNSt3setImSt4lessImESaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #7
  br label %239

239:                                              ; preds = %238, %195
  %.pn64.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn64.pn.pn.pn.pn, %238 ], [ %196, %195 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %23) #7
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v08ConstantELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  br label %241

240:                                              ; preds = %237, %165
  call void @_ZNSt12__shared_ptrIN6ngraph2op2v08ConstantELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #7
  br label %242

241:                                              ; preds = %239, %193
  %.pn64.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn64.pn.pn.pn.pn.pn, %239 ], [ %194, %193 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #7
  br label %243

242:                                              ; preds = %240, %163
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  br label %246

243:                                              ; preds = %241, %191
  %.pn64.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn64.pn.pn.pn.pn.pn.pn, %241 ], [ %192, %191 ]
  call void @_ZNSt12__shared_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #7
  br label %244

244:                                              ; preds = %243, %190
  %.pn64.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn64.pn.pn.pn.pn.pn.pn.pn, %243 ], [ %.pn58, %190 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #7
  br label %245

245:                                              ; preds = %244, %184
  %.pn64.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn64.pn.pn.pn.pn.pn.pn.pn.pn, %244 ], [ %185, %184 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  br label %250

246:                                              ; preds = %242, %152
  %247 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph4Node22get_input_element_typeEm(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 0)
          to label %248 unwind label %92

248:                                              ; preds = %246
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %247, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %249 unwind label %92

249:                                              ; preds = %248
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #7
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #7
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  ret void

250:                                              ; preds = %245, %149, %103, %92
  %.pn75 = phi { ptr, i32 } [ %93, %92 ], [ %.pn64.pn.pn.pn.pn.pn.pn.pn.pn.pn, %245 ], [ %.pn53.pn.pn.pn, %149 ], [ %.pn49.pn.pn, %103 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #7
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  br label %251

251:                                              ; preds = %250, %90
  %.pn75.pn = phi { ptr, i32 } [ %.pn75, %250 ], [ %91, %90 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %252

252:                                              ; preds = %251, %88
  %.pn75.pn.pn = phi { ptr, i32 } [ %.pn75.pn, %251 ], [ %89, %88 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #7
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  br label %253

253:                                              ; preds = %252, %53
  %.pn75.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn, %252 ], [ %.pn.pn, %53 ]
  resume { ptr, i32 } %.pn75.pn.pn.pn

254:                                              ; preds = %224, %183, %135, %87, %46
  unreachable
}

declare noundef zeroext i1 @_ZNK6ngraph7element4TypeeqERKS1_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA61_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(61)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA50_cJlRA3_KcEEERSoS5_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(50), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(3)) local_unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA53_cJRKlRA42_KclRA18_S4_EEERSoS9_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(53), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(42), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(18)) local_unnamed_addr #4

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

; 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

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

; 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

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

declare void @_ZNK6ngraph2op2v08Constant16get_axis_set_valEv(ptr dead_on_unwind writable sret(%"class.ngraph::AxisSet") align 8, ptr noundef nonnull align 8 dereferenceable(729)) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA15_cJRKNS_7AxisSetERA44_KcRKNS_12PartialShapeERA3_S5_EEERSoSD_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(15), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 1 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(3)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZSt6all_ofISt23_Rb_tree_const_iteratorImEZN6ngraph2op2v17Reverse24validate_and_infer_typesEvE3$_0EbT_S7_T0_"(ptr, ptr, ptr) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA28_cJRKNS_7AxisSetERA34_KclRA3_S5_EEERSoSA_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(28), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 1 dereferenceable(34), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(3)) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt12__shared_ptrIN6ngraph2op2v08ConstantELN9__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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { noreturn }

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

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


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