; LLVM IR from NervanaSystems/ngraph :: src/ngraph/op/dot.ll (ZN6ngraph2op2v03Dot24validate_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_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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::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::Dimension" = type { %"class.ngraph::Interval" }
%"class.ngraph::Interval" = type { i64, i64 }
%"class.ngraph::PartialShape" = type { i8, %"class.std::vector.78" }
%"class.std::vector.78" = type { %"struct.std::_Vector_base.79" }
%"struct.std::_Vector_base.79" = 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.std::allocator.80" = type { i8 }
%"class.ngraph::op::v0::Dot" = type <{ %"class.ngraph::op::Op", i64, i8, [7 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" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::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::__shared_count" = type { ptr }
%"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 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [86 x i8], align 1
@_ZTIN6ngraph21NodeValidationFailureE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.5 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [68 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: mustprogress uwtable
define dso_local void @_ZN6ngraph2op2v03Dot24validate_and_infer_typesEv(ptr noundef nonnull align 8 dereferenceable(689) %0) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.ngraph::element::Type", align 4
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %7 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca i1, align 1
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i8, align 1
  %13 = alloca %"class.ngraph::Dimension", align 8
  %14 = alloca %"class.ngraph::Dimension", align 8
  %15 = alloca %"class.ngraph::Dimension", align 8
  %16 = alloca %"class.ngraph::Dimension", align 8
  %17 = alloca %"class.ngraph::Dimension", align 8
  %18 = alloca %"class.ngraph::Dimension", align 8
  %19 = alloca %"class.ngraph::PartialShape", align 8
  %20 = alloca %"class.ngraph::Dimension", align 8
  %21 = alloca %"class.ngraph::Dimension", align 8
  %22 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %23 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca i1, align 1
  %26 = alloca %"class.ngraph::Dimension", align 8
  %27 = alloca %"class.ngraph::Dimension", align 8
  %28 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %29 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca i1, align 1
  %32 = alloca %"class.ngraph::Dimension", align 8
  %33 = alloca %"class.ngraph::Dimension", align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca %"class.ngraph::Dimension", align 8
  %37 = alloca i64, align 8
  %38 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %39 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca i1, align 1
  %42 = alloca %"class.std::vector.78", align 8
  %43 = alloca %"class.ngraph::Dimension", align 8
  %44 = alloca %"class.ngraph::Dimension", align 8
  %45 = alloca %"class.std::allocator.80", align 1
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca %"class.ngraph::Dimension", align 8
  %49 = alloca i64, align 8
  %50 = alloca %"class.ngraph::Dimension", align 8
  %51 = alloca %"class.ngraph::PartialShape", align 8
  %52 = alloca %"class.ngraph::PartialShape", align 8
  %53 = alloca %"class.ngraph::Dimension", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %54 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #8
  call void @_ZN6ngraph7element4TypeC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %3)
  br label %55

55:                                               ; preds = %1
  %56 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph4Node22get_input_element_typeEm(ptr noundef nonnull align 8 dereferenceable(680) %54, i64 noundef 0)
          to label %57 unwind label %77

57:                                               ; preds = %55
  %58 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph4Node22get_input_element_typeEm(ptr noundef nonnull align 8 dereferenceable(680) %54, i64 noundef 1)
          to label %59 unwind label %77

59:                                               ; preds = %57
  %60 = invoke noundef zeroext i1 @_ZN6ngraph7element4Type5mergeERS1_RKS1_S4_(ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 4 dereferenceable(4) %56, ptr noundef nonnull align 4 dereferenceable(4) %58)
          to label %61 unwind label %77

61:                                               ; preds = %59
  br i1 %60, label %103, label %62

62:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 392, ptr %6) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %6)
          to label %63 unwind label %81

63:                                               ; preds = %62
  %64 = getelementptr inbounds i8, ptr %6, i64 16
  %65 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph4Node22get_input_element_typeEm(ptr noundef nonnull align 8 dereferenceable(680) %54, i64 noundef 0)
          to label %66 unwind label %85

66:                                               ; preds = %63
  %67 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph4Node22get_input_element_typeEm(ptr noundef nonnull align 8 dereferenceable(680) %54, i64 noundef 1)
          to label %68 unwind label %85

68:                                               ; preds = %66
  %69 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA65_cJRKNS_7element4TypeERA22_KcS5_RA3_S6_EEERSoSB_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 1 dereferenceable(65) @.str, ptr noundef nonnull align 4 dereferenceable(4) %65, ptr noundef nonnull align 1 dereferenceable(22) @.str.1, ptr noundef nonnull align 4 dereferenceable(4) %67, ptr noundef nonnull align 1 dereferenceable(3) @.str.2)
          to label %70 unwind label %85

70:                                               ; preds = %68
  store i1 true, ptr %9, align 1
  %71 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %7) #8
  %72 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %7, i32 0, i32 0
  store ptr @.str.3, ptr %72, align 8, !tbaa !9
  %73 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %7, i32 0, i32 1
  store i32 59, ptr %73, align 8, !tbaa !12
  %74 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %7, i32 0, i32 2
  store ptr @.str.4, ptr %74, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(128) %6)
          to label %75 unwind label %89

75:                                               ; preds = %70
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %71, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef %54, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %76 unwind label %93

76:                                               ; preds = %75
  store i1 false, ptr %9, align 1
  invoke void @__cxa_throw(ptr %71, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %654 unwind label %93

77:                                               ; preds = %59, %57, %55
  %78 = landingpad { ptr, i32 }
          cleanup
  %79 = extractvalue { ptr, i32 } %78, 0
  store ptr %79, ptr %4, align 8
  %80 = extractvalue { ptr, i32 } %78, 1
  store i32 %80, ptr %5, align 4
  br label %648

81:                                               ; preds = %62
  %82 = landingpad { ptr, i32 }
          cleanup
  %83 = extractvalue { ptr, i32 } %82, 0
  store ptr %83, ptr %4, align 8
  %84 = extractvalue { ptr, i32 } %82, 1
  store i32 %84, ptr %5, align 4
  br label %102

85:                                               ; preds = %68, %66, %63
  %86 = landingpad { ptr, i32 }
          cleanup
  %87 = extractvalue { ptr, i32 } %86, 0
  store ptr %87, ptr %4, align 8
  %88 = extractvalue { ptr, i32 } %86, 1
  store i32 %88, ptr %5, align 4
  br label %101

89:                                               ; preds = %70
  %90 = landingpad { ptr, i32 }
          cleanup
  %91 = extractvalue { ptr, i32 } %90, 0
  store ptr %91, ptr %4, align 8
  %92 = extractvalue { ptr, i32 } %90, 1
  store i32 %92, ptr %5, align 4
  br label %97

93:                                               ; preds = %76, %75
  %94 = landingpad { ptr, i32 }
          cleanup
  %95 = extractvalue { ptr, i32 } %94, 0
  store ptr %95, ptr %4, align 8
  %96 = extractvalue { ptr, i32 } %94, 1
  store i32 %96, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  br label %97

97:                                               ; preds = %93, %89
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #8
  %98 = load i1, ptr %9, align 1
  br i1 %98, label %99, label %100

99:                                               ; preds = %97
  call void @__cxa_free_exception(ptr %71) #8
  br label %100

100:                                              ; preds = %99, %97
  br label %101

101:                                              ; preds = %100, %85
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %6) #8
  br label %102

102:                                              ; preds = %101, %81
  call void @llvm.lifetime.end.p0(i64 392, ptr %6) #8
  br label %648

103:                                              ; preds = %61
  br label %104

104:                                              ; preds = %103
  br label %105

105:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  %106 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6ngraph4Node23get_input_partial_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %54, i64 noundef 0)
          to label %107 unwind label %145

107:                                              ; preds = %105
  store ptr %106, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  %108 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6ngraph4Node23get_input_partial_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %54, i64 noundef 1)
          to label %109 unwind label %149

109:                                              ; preds = %107
  store ptr %108, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #8
  %110 = getelementptr inbounds %"class.ngraph::op::v0::Dot", ptr %54, i32 0, i32 2
  %111 = load i8, ptr %110, align 8, !tbaa !14, !range !69, !noundef !70
  %112 = trunc i8 %111 to i1
  %113 = xor i1 %112, true
  %114 = zext i1 %113 to i8
  store i8 %114, ptr %12, align 1, !tbaa !71
  %115 = load i8, ptr %12, align 1, !tbaa !71, !range !69, !noundef !70
  %116 = trunc i8 %115 to i1
  br i1 %116, label %117, label %209

117:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #8
  %118 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #8
  %119 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %120 unwind label %153

120:                                              ; preds = %117
  %121 = getelementptr inbounds %"class.ngraph::Dimension", ptr %13, i32 0, i32 0
  %122 = getelementptr inbounds { i64, i64 }, ptr %121, i32 0, i32 0
  %123 = extractvalue { i64, i64 } %119, 0
  store i64 %123, ptr %122, align 8
  %124 = getelementptr inbounds { i64, i64 }, ptr %121, i32 0, i32 1
  %125 = extractvalue { i64, i64 } %119, 1
  store i64 %125, ptr %124, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %14) #8
  invoke void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef 0)
          to label %126 unwind label %157

126:                                              ; preds = %120
  %127 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension11same_schemeERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %128 unwind label %157

128:                                              ; preds = %126
  br i1 %127, label %141, label %129

129:                                              ; preds = %128
  %130 = load ptr, ptr %11, align 8, !tbaa !5
  %131 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %130)
          to label %132 unwind label %161

132:                                              ; preds = %129
  %133 = getelementptr inbounds %"class.ngraph::Dimension", ptr %15, i32 0, i32 0
  %134 = getelementptr inbounds { i64, i64 }, ptr %133, i32 0, i32 0
  %135 = extractvalue { i64, i64 } %131, 0
  store i64 %135, ptr %134, align 8
  %136 = getelementptr inbounds { i64, i64 }, ptr %133, i32 0, i32 1
  %137 = extractvalue { i64, i64 } %131, 1
  store i64 %137, ptr %136, align 8
  invoke void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %16, i64 noundef 0)
          to label %138 unwind label %165

138:                                              ; preds = %132
  %139 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension11same_schemeERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull align 8 dereferenceable(16) %16)
          to label %140 unwind label %165

140:                                              ; preds = %138
  br label %141

141:                                              ; preds = %140, %128
  %142 = phi i1 [ true, %128 ], [ %139, %140 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #8
  br i1 %142, label %143, label %172

143:                                              ; preds = %141
  %144 = getelementptr inbounds %"class.ngraph::op::v0::Dot", ptr %54, i32 0, i32 1
  store i64 0, ptr %144, align 8, !tbaa !72
  store i8 0, ptr %12, align 1, !tbaa !71
  br label %208

145:                                              ; preds = %105
  %146 = landingpad { ptr, i32 }
          cleanup
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %4, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %5, align 4
  br label %647

149:                                              ; preds = %107
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %4, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %5, align 4
  br label %646

153:                                              ; preds = %117
  %154 = landingpad { ptr, i32 }
          cleanup
  %155 = extractvalue { ptr, i32 } %154, 0
  store ptr %155, ptr %4, align 8
  %156 = extractvalue { ptr, i32 } %154, 1
  store i32 %156, ptr %5, align 4
  br label %171

157:                                              ; preds = %126, %120
  %158 = landingpad { ptr, i32 }
          cleanup
  %159 = extractvalue { ptr, i32 } %158, 0
  store ptr %159, ptr %4, align 8
  %160 = extractvalue { ptr, i32 } %158, 1
  store i32 %160, ptr %5, align 4
  br label %170

161:                                              ; preds = %129
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %4, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %5, align 4
  br label %169

165:                                              ; preds = %138, %132
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %4, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #8
  br label %169

169:                                              ; preds = %165, %161
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #8
  br label %170

170:                                              ; preds = %169, %157
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #8
  br label %171

171:                                              ; preds = %170, %153
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #8
  br label %645

172:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #8
  %173 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #8
  %174 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %173)
          to label %175 unwind label %198

175:                                              ; preds = %172
  %176 = getelementptr inbounds %"class.ngraph::Dimension", ptr %17, i32 0, i32 0
  %177 = getelementptr inbounds { i64, i64 }, ptr %176, i32 0, i32 0
  %178 = extractvalue { i64, i64 } %174, 0
  store i64 %178, ptr %177, align 8
  %179 = getelementptr inbounds { i64, i64 }, ptr %176, i32 0, i32 1
  %180 = extractvalue { i64, i64 } %174, 1
  store i64 %180, ptr %179, align 8
  %181 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %182 unwind label %198

182:                                              ; preds = %175
  br i1 %181, label %183, label %194

183:                                              ; preds = %182
  %184 = load ptr, ptr %11, align 8, !tbaa !5
  %185 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %184)
          to label %186 unwind label %202

186:                                              ; preds = %183
  %187 = getelementptr inbounds %"class.ngraph::Dimension", ptr %18, i32 0, i32 0
  %188 = getelementptr inbounds { i64, i64 }, ptr %187, i32 0, i32 0
  %189 = extractvalue { i64, i64 } %185, 0
  store i64 %189, ptr %188, align 8
  %190 = getelementptr inbounds { i64, i64 }, ptr %187, i32 0, i32 1
  %191 = extractvalue { i64, i64 } %185, 1
  store i64 %191, ptr %190, align 8
  %192 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %18)
          to label %193 unwind label %202

193:                                              ; preds = %186
  br label %194

194:                                              ; preds = %193, %182
  %195 = phi i1 [ false, %182 ], [ %192, %193 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #8
  br i1 %195, label %196, label %207

196:                                              ; preds = %194
  %197 = getelementptr inbounds %"class.ngraph::op::v0::Dot", ptr %54, i32 0, i32 1
  store i64 1, ptr %197, align 8, !tbaa !72
  store i8 0, ptr %12, align 1, !tbaa !71
  br label %207

198:                                              ; preds = %175, %172
  %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
  br label %206

202:                                              ; preds = %186, %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
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #8
  br label %206

206:                                              ; preds = %202, %198
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #8
  br label %645

207:                                              ; preds = %196, %194
  br label %208

208:                                              ; preds = %207, %143
  br label %209

209:                                              ; preds = %208, %109
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #8
  invoke void @_ZN6ngraph12PartialShapeC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %210 unwind label %256

210:                                              ; preds = %209
  br label %211

211:                                              ; preds = %210
  %212 = load i8, ptr %12, align 1, !tbaa !71, !range !69, !noundef !70
  %213 = trunc i8 %212 to i1
  call void @llvm.lifetime.start.p0(i64 16, ptr %20) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #8
  br i1 %213, label %239, label %214

214:                                              ; preds = %211
  %215 = load ptr, ptr %10, align 8, !tbaa !5
  %216 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %215)
          to label %217 unwind label %260

217:                                              ; preds = %214
  %218 = getelementptr inbounds %"class.ngraph::Dimension", ptr %20, i32 0, i32 0
  %219 = getelementptr inbounds { i64, i64 }, ptr %218, i32 0, i32 0
  %220 = extractvalue { i64, i64 } %216, 0
  store i64 %220, ptr %219, align 8
  %221 = getelementptr inbounds { i64, i64 }, ptr %218, i32 0, i32 1
  %222 = extractvalue { i64, i64 } %216, 1
  store i64 %222, ptr %221, align 8
  %223 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension10is_dynamicEv(ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %224 unwind label %260

224:                                              ; preds = %217
  br i1 %223, label %239, label %225

225:                                              ; preds = %224
  %226 = getelementptr inbounds %"class.ngraph::op::v0::Dot", ptr %54, i32 0, i32 1
  %227 = load i64, ptr %226, align 8, !tbaa !72
  %228 = load ptr, ptr %10, align 8, !tbaa !5
  %229 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %228)
          to label %230 unwind label %264

230:                                              ; preds = %225
  %231 = getelementptr inbounds %"class.ngraph::Dimension", ptr %21, i32 0, i32 0
  %232 = getelementptr inbounds { i64, i64 }, ptr %231, i32 0, i32 0
  %233 = extractvalue { i64, i64 } %229, 0
  store i64 %233, ptr %232, align 8
  %234 = getelementptr inbounds { i64, i64 }, ptr %231, i32 0, i32 1
  %235 = extractvalue { i64, i64 } %229, 1
  store i64 %235, ptr %234, align 8
  %236 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %21)
          to label %237 unwind label %264

237:                                              ; preds = %230
  %238 = icmp ule i64 %227, %236
  br label %239

239:                                              ; preds = %237, %224, %211
  %240 = phi i1 [ true, %224 ], [ true, %211 ], [ %238, %237 ]
  %241 = xor i1 %240, true
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #8
  br i1 %241, label %242, label %291

242:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 392, ptr %22) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %22)
          to label %243 unwind label %269

243:                                              ; preds = %242
  %244 = getelementptr inbounds i8, ptr %22, i64 16
  %245 = getelementptr inbounds %"class.ngraph::op::v0::Dot", ptr %54, i32 0, i32 1
  %246 = load ptr, ptr %10, align 8, !tbaa !5
  %247 = load ptr, ptr %11, align 8, !tbaa !5
  %248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA23_cJRmRA29_KcRKNS_12PartialShapeERA15_S3_S8_RA3_S3_EEERSoSD_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %244, ptr noundef nonnull align 1 dereferenceable(23) @.str.5, ptr noundef nonnull align 8 dereferenceable(8) %245, ptr noundef nonnull align 1 dereferenceable(29) @.str.6, ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef nonnull align 1 dereferenceable(15) @.str.7, ptr noundef nonnull align 8 dereferenceable(32) %247, ptr noundef nonnull align 1 dereferenceable(3) @.str.2)
          to label %249 unwind label %273

249:                                              ; preds = %243
  store i1 true, ptr %25, align 1
  %250 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #8
  %251 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %23, i32 0, i32 0
  store ptr @.str.3, ptr %251, align 8, !tbaa !9
  %252 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %23, i32 0, i32 1
  store i32 97, ptr %252, align 8, !tbaa !12
  %253 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %23, i32 0, i32 2
  store ptr @.str.8, ptr %253, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(128) %22)
          to label %254 unwind label %277

254:                                              ; preds = %249
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %250, ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef %54, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %255 unwind label %281

255:                                              ; preds = %254
  store i1 false, ptr %25, align 1
  invoke void @__cxa_throw(ptr %250, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %654 unwind label %281

256:                                              ; preds = %209
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %4, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %5, align 4
  br label %644

260:                                              ; preds = %217, %214
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %4, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %5, align 4
  br label %268

264:                                              ; preds = %230, %225
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %4, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #8
  br label %268

268:                                              ; preds = %264, %260
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #8
  br label %643

269:                                              ; preds = %242
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %4, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %5, align 4
  br label %290

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

277:                                              ; preds = %249
  %278 = landingpad { ptr, i32 }
          cleanup
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %4, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %5, align 4
  br label %285

281:                                              ; preds = %255, %254
  %282 = landingpad { ptr, i32 }
          cleanup
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %4, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %285

285:                                              ; preds = %281, %277
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #8
  %286 = load i1, ptr %25, align 1
  br i1 %286, label %287, label %288

287:                                              ; preds = %285
  call void @__cxa_free_exception(ptr %250) #8
  br label %288

288:                                              ; preds = %287, %285
  br label %289

289:                                              ; preds = %288, %273
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %22) #8
  br label %290

290:                                              ; preds = %289, %269
  call void @llvm.lifetime.end.p0(i64 392, ptr %22) #8
  br label %643

291:                                              ; preds = %239
  br label %292

292:                                              ; preds = %291
  br label %293

293:                                              ; preds = %292
  br label %294

294:                                              ; preds = %293
  %295 = load i8, ptr %12, align 1, !tbaa !71, !range !69, !noundef !70
  %296 = trunc i8 %295 to i1
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #8
  br i1 %296, label %322, label %297

297:                                              ; preds = %294
  %298 = load ptr, ptr %11, align 8, !tbaa !5
  %299 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %298)
          to label %300 unwind label %339

300:                                              ; preds = %297
  %301 = getelementptr inbounds %"class.ngraph::Dimension", ptr %26, i32 0, i32 0
  %302 = getelementptr inbounds { i64, i64 }, ptr %301, i32 0, i32 0
  %303 = extractvalue { i64, i64 } %299, 0
  store i64 %303, ptr %302, align 8
  %304 = getelementptr inbounds { i64, i64 }, ptr %301, i32 0, i32 1
  %305 = extractvalue { i64, i64 } %299, 1
  store i64 %305, ptr %304, align 8
  %306 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension10is_dynamicEv(ptr noundef nonnull align 8 dereferenceable(16) %26)
          to label %307 unwind label %339

307:                                              ; preds = %300
  br i1 %306, label %322, label %308

308:                                              ; preds = %307
  %309 = getelementptr inbounds %"class.ngraph::op::v0::Dot", ptr %54, i32 0, i32 1
  %310 = load i64, ptr %309, align 8, !tbaa !72
  %311 = load ptr, ptr %11, align 8, !tbaa !5
  %312 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %311)
          to label %313 unwind label %343

313:                                              ; preds = %308
  %314 = getelementptr inbounds %"class.ngraph::Dimension", ptr %27, i32 0, i32 0
  %315 = getelementptr inbounds { i64, i64 }, ptr %314, i32 0, i32 0
  %316 = extractvalue { i64, i64 } %312, 0
  store i64 %316, ptr %315, align 8
  %317 = getelementptr inbounds { i64, i64 }, ptr %314, i32 0, i32 1
  %318 = extractvalue { i64, i64 } %312, 1
  store i64 %318, ptr %317, align 8
  %319 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %27)
          to label %320 unwind label %343

320:                                              ; preds = %313
  %321 = icmp ule i64 %310, %319
  br label %322

322:                                              ; preds = %320, %307, %294
  %323 = phi i1 [ true, %307 ], [ true, %294 ], [ %321, %320 ]
  %324 = xor i1 %323, true
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #8
  br i1 %324, label %325, label %370

325:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 392, ptr %28) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %28)
          to label %326 unwind label %348

326:                                              ; preds = %325
  %327 = getelementptr inbounds i8, ptr %28, i64 16
  %328 = getelementptr inbounds %"class.ngraph::op::v0::Dot", ptr %54, i32 0, i32 1
  %329 = load ptr, ptr %10, align 8, !tbaa !5
  %330 = load ptr, ptr %11, align 8, !tbaa !5
  %331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA23_cJRmRA29_KcRKNS_12PartialShapeERA15_S3_S8_RA3_S3_EEERSoSD_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %327, ptr noundef nonnull align 1 dereferenceable(23) @.str.5, ptr noundef nonnull align 8 dereferenceable(8) %328, ptr noundef nonnull align 1 dereferenceable(29) @.str.6, ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef nonnull align 1 dereferenceable(15) @.str.7, ptr noundef nonnull align 8 dereferenceable(32) %330, ptr noundef nonnull align 1 dereferenceable(3) @.str.2)
          to label %332 unwind label %352

332:                                              ; preds = %326
  store i1 true, ptr %31, align 1
  %333 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #8
  %334 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %29, i32 0, i32 0
  store ptr @.str.3, ptr %334, align 8, !tbaa !9
  %335 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %29, i32 0, i32 1
  store i32 108, ptr %335, align 8, !tbaa !12
  %336 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %29, i32 0, i32 2
  store ptr @.str.9, ptr %336, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(128) %28)
          to label %337 unwind label %356

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) %29, ptr noundef %54, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %338 unwind label %360

338:                                              ; preds = %337
  store i1 false, ptr %31, align 1
  invoke void @__cxa_throw(ptr %333, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %654 unwind label %360

339:                                              ; preds = %300, %297
  %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 %347

343:                                              ; preds = %313, %308
  %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
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #8
  br label %347

347:                                              ; preds = %343, %339
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #8
  br label %643

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

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

356:                                              ; preds = %332
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %4, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %5, align 4
  br label %364

360:                                              ; preds = %338, %337
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %4, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %364

364:                                              ; preds = %360, %356
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #8
  %365 = load i1, ptr %31, align 1
  br i1 %365, label %366, label %367

366:                                              ; preds = %364
  call void @__cxa_free_exception(ptr %333) #8
  br label %367

367:                                              ; preds = %366, %364
  br label %368

368:                                              ; preds = %367, %352
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %28) #8
  br label %369

369:                                              ; preds = %368, %348
  call void @llvm.lifetime.end.p0(i64 392, ptr %28) #8
  br label %643

370:                                              ; preds = %322
  br label %371

371:                                              ; preds = %370
  br label %372

372:                                              ; preds = %371
  %373 = load i8, ptr %12, align 1, !tbaa !71, !range !69, !noundef !70
  %374 = trunc i8 %373 to i1
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #8
  br i1 %374, label %397, label %375

375:                                              ; preds = %372
  %376 = load ptr, ptr %10, align 8, !tbaa !5
  %377 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %376)
          to label %378 unwind label %406

378:                                              ; preds = %375
  %379 = getelementptr inbounds %"class.ngraph::Dimension", ptr %32, i32 0, i32 0
  %380 = getelementptr inbounds { i64, i64 }, ptr %379, i32 0, i32 0
  %381 = extractvalue { i64, i64 } %377, 0
  store i64 %381, ptr %380, align 8
  %382 = getelementptr inbounds { i64, i64 }, ptr %379, i32 0, i32 1
  %383 = extractvalue { i64, i64 } %377, 1
  store i64 %383, ptr %382, align 8
  %384 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %32)
          to label %385 unwind label %406

385:                                              ; preds = %378
  br i1 %384, label %386, label %397

386:                                              ; preds = %385
  %387 = load ptr, ptr %11, align 8, !tbaa !5
  %388 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %387)
          to label %389 unwind label %410

389:                                              ; preds = %386
  %390 = getelementptr inbounds %"class.ngraph::Dimension", ptr %33, i32 0, i32 0
  %391 = getelementptr inbounds { i64, i64 }, ptr %390, i32 0, i32 0
  %392 = extractvalue { i64, i64 } %388, 0
  store i64 %392, ptr %391, align 8
  %393 = getelementptr inbounds { i64, i64 }, ptr %390, i32 0, i32 1
  %394 = extractvalue { i64, i64 } %388, 1
  store i64 %394, ptr %393, align 8
  %395 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %396 unwind label %410

396:                                              ; preds = %389
  br label %397

397:                                              ; preds = %396, %385, %372
  %398 = phi i1 [ false, %385 ], [ false, %372 ], [ %395, %396 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #8
  br i1 %398, label %399, label %619

399:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  store i64 0, ptr %34, align 8, !tbaa !73
  br label %400

400:                                              ; preds = %490, %399
  %401 = load i64, ptr %34, align 8, !tbaa !73
  %402 = getelementptr inbounds %"class.ngraph::op::v0::Dot", ptr %54, i32 0, i32 1
  %403 = load i64, ptr %402, align 8, !tbaa !72
  %404 = icmp ult i64 %401, %403
  br i1 %404, label %415, label %405

405:                                              ; preds = %400
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %495

406:                                              ; preds = %378, %375
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %4, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %5, align 4
  br label %414

410:                                              ; preds = %389, %386
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %4, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #8
  br label %414

414:                                              ; preds = %410, %406
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #8
  br label %643

415:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #8
  %416 = load ptr, ptr %10, align 8, !tbaa !5
  %417 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %416)
          to label %418 unwind label %457

418:                                              ; preds = %415
  %419 = getelementptr inbounds %"class.ngraph::Dimension", ptr %36, i32 0, i32 0
  %420 = getelementptr inbounds { i64, i64 }, ptr %419, i32 0, i32 0
  %421 = extractvalue { i64, i64 } %417, 0
  store i64 %421, ptr %420, align 8
  %422 = getelementptr inbounds { i64, i64 }, ptr %419, i32 0, i32 1
  %423 = extractvalue { i64, i64 } %417, 1
  store i64 %423, ptr %422, align 8
  %424 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %36)
          to label %425 unwind label %457

425:                                              ; preds = %418
  %426 = getelementptr inbounds %"class.ngraph::op::v0::Dot", ptr %54, i32 0, i32 1
  %427 = load i64, ptr %426, align 8, !tbaa !72
  %428 = sub i64 %424, %427
  %429 = load i64, ptr %34, align 8, !tbaa !73
  %430 = add i64 %428, %429
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #8
  store i64 %430, ptr %35, align 8, !tbaa !73
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  %431 = load i64, ptr %34, align 8, !tbaa !73
  store i64 %431, ptr %37, align 8, !tbaa !73
  br label %432

432:                                              ; preds = %425
  %433 = load ptr, ptr %10, align 8, !tbaa !5
  %434 = load i64, ptr %35, align 8, !tbaa !73
  %435 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %433, i64 noundef %434)
          to label %436 unwind label %461

436:                                              ; preds = %432
  %437 = load ptr, ptr %11, align 8, !tbaa !5
  %438 = load i64, ptr %37, align 8, !tbaa !73
  %439 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %437, i64 noundef %438)
          to label %440 unwind label %461

440:                                              ; preds = %436
  %441 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension10compatibleERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %435, ptr noundef nonnull align 8 dereferenceable(16) %439)
          to label %442 unwind label %461

442:                                              ; preds = %440
  br i1 %441, label %487, label %443

443:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 392, ptr %38) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %38)
          to label %444 unwind label %465

444:                                              ; preds = %443
  %445 = getelementptr inbounds i8, ptr %38, i64 16
  %446 = load ptr, ptr %10, align 8, !tbaa !5
  %447 = load ptr, ptr %11, align 8, !tbaa !5
  %448 = getelementptr inbounds %"class.ngraph::op::v0::Dot", ptr %54, i32 0, i32 1
  %449 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA19_cJRmRA18_KcS2_RA50_S3_RKNS_12PartialShapeERA15_S3_SA_RA25_S3_S2_RA3_S3_EEERSoSH_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %445, ptr noundef nonnull align 1 dereferenceable(19) @.str.10, ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 1 dereferenceable(18) @.str.11, ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 1 dereferenceable(50) @.str.12, ptr noundef nonnull align 8 dereferenceable(32) %446, ptr noundef nonnull align 1 dereferenceable(15) @.str.7, ptr noundef nonnull align 8 dereferenceable(32) %447, ptr noundef nonnull align 1 dereferenceable(25) @.str.13, ptr noundef nonnull align 8 dereferenceable(8) %448, ptr noundef nonnull align 1 dereferenceable(3) @.str.2)
          to label %450 unwind label %469

450:                                              ; preds = %444
  store i1 true, ptr %41, align 1
  %451 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %39) #8
  %452 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %39, i32 0, i32 0
  store ptr @.str.3, ptr %452, align 8, !tbaa !9
  %453 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %39, i32 0, i32 1
  store i32 130, ptr %453, align 8, !tbaa !12
  %454 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %39, i32 0, i32 2
  store ptr @.str.14, ptr %454, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(128) %38)
          to label %455 unwind label %473

455:                                              ; preds = %450
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %451, ptr noundef nonnull align 8 dereferenceable(24) %39, ptr noundef %54, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %456 unwind label %477

456:                                              ; preds = %455
  store i1 false, ptr %41, align 1
  invoke void @__cxa_throw(ptr %451, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %654 unwind label %477

457:                                              ; preds = %418, %415
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %4, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #8
  br label %494

461:                                              ; preds = %440, %436, %432
  %462 = landingpad { ptr, i32 }
          cleanup
  %463 = extractvalue { ptr, i32 } %462, 0
  store ptr %463, ptr %4, align 8
  %464 = extractvalue { ptr, i32 } %462, 1
  store i32 %464, ptr %5, align 4
  br label %493

465:                                              ; preds = %443
  %466 = landingpad { ptr, i32 }
          cleanup
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %4, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %5, align 4
  br label %486

469:                                              ; preds = %444
  %470 = landingpad { ptr, i32 }
          cleanup
  %471 = extractvalue { ptr, i32 } %470, 0
  store ptr %471, ptr %4, align 8
  %472 = extractvalue { ptr, i32 } %470, 1
  store i32 %472, ptr %5, align 4
  br label %485

473:                                              ; preds = %450
  %474 = landingpad { ptr, i32 }
          cleanup
  %475 = extractvalue { ptr, i32 } %474, 0
  store ptr %475, ptr %4, align 8
  %476 = extractvalue { ptr, i32 } %474, 1
  store i32 %476, ptr %5, align 4
  br label %481

477:                                              ; preds = %456, %455
  %478 = landingpad { ptr, i32 }
          cleanup
  %479 = extractvalue { ptr, i32 } %478, 0
  store ptr %479, ptr %4, align 8
  %480 = extractvalue { ptr, i32 } %478, 1
  store i32 %480, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  br label %481

481:                                              ; preds = %477, %473
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %39) #8
  %482 = load i1, ptr %41, align 1
  br i1 %482, label %483, label %484

483:                                              ; preds = %481
  call void @__cxa_free_exception(ptr %451) #8
  br label %484

484:                                              ; preds = %483, %481
  br label %485

485:                                              ; preds = %484, %469
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %38) #8
  br label %486

486:                                              ; preds = %485, %465
  call void @llvm.lifetime.end.p0(i64 392, ptr %38) #8
  br label %493

487:                                              ; preds = %442
  br label %488

488:                                              ; preds = %487
  br label %489

489:                                              ; preds = %488
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %490

490:                                              ; preds = %489
  %491 = load i64, ptr %34, align 8, !tbaa !73
  %492 = add i64 %491, 1
  store i64 %492, ptr %34, align 8, !tbaa !73
  br label %400, !llvm.loop !74

493:                                              ; preds = %486, %461
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  br label %494

494:                                              ; preds = %493, %457
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %643

495:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #8
  %496 = load ptr, ptr %10, align 8, !tbaa !5
  %497 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %496)
          to label %498 unwind label %539

498:                                              ; preds = %495
  %499 = getelementptr inbounds %"class.ngraph::Dimension", ptr %43, i32 0, i32 0
  %500 = getelementptr inbounds { i64, i64 }, ptr %499, i32 0, i32 0
  %501 = extractvalue { i64, i64 } %497, 0
  store i64 %501, ptr %500, align 8
  %502 = getelementptr inbounds { i64, i64 }, ptr %499, i32 0, i32 1
  %503 = extractvalue { i64, i64 } %497, 1
  store i64 %503, ptr %502, align 8
  %504 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %43)
          to label %505 unwind label %539

505:                                              ; preds = %498
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #8
  %506 = load ptr, ptr %11, align 8, !tbaa !5
  %507 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %506)
          to label %508 unwind label %543

508:                                              ; preds = %505
  %509 = getelementptr inbounds %"class.ngraph::Dimension", ptr %44, i32 0, i32 0
  %510 = getelementptr inbounds { i64, i64 }, ptr %509, i32 0, i32 0
  %511 = extractvalue { i64, i64 } %507, 0
  store i64 %511, ptr %510, align 8
  %512 = getelementptr inbounds { i64, i64 }, ptr %509, i32 0, i32 1
  %513 = extractvalue { i64, i64 } %507, 1
  store i64 %513, ptr %512, align 8
  %514 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %44)
          to label %515 unwind label %543

515:                                              ; preds = %508
  %516 = add nsw i64 %504, %514
  %517 = getelementptr inbounds %"class.ngraph::op::v0::Dot", ptr %54, i32 0, i32 1
  %518 = load i64, ptr %517, align 8, !tbaa !72
  %519 = mul i64 2, %518
  %520 = sub i64 %516, %519
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #8
  call void @_ZNSaIN6ngraph9DimensionEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  invoke void @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %520, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %521 unwind label %547

521:                                              ; preds = %515
  call void @_ZNSt15__new_allocatorIN6ngraph9DimensionEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  store i64 0, ptr %46, align 8, !tbaa !73
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  store i64 0, ptr %47, align 8, !tbaa !73
  br label %522

522:                                              ; preds = %565, %521
  %523 = load i64, ptr %47, align 8, !tbaa !73
  call void @llvm.lifetime.start.p0(i64 16, ptr %48) #8
  %524 = load ptr, ptr %10, align 8, !tbaa !5
  %525 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %524)
          to label %526 unwind label %553

526:                                              ; preds = %522
  %527 = getelementptr inbounds %"class.ngraph::Dimension", ptr %48, i32 0, i32 0
  %528 = getelementptr inbounds { i64, i64 }, ptr %527, i32 0, i32 0
  %529 = extractvalue { i64, i64 } %525, 0
  store i64 %529, ptr %528, align 8
  %530 = getelementptr inbounds { i64, i64 }, ptr %527, i32 0, i32 1
  %531 = extractvalue { i64, i64 } %525, 1
  store i64 %531, ptr %530, align 8
  %532 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %533 unwind label %553

533:                                              ; preds = %526
  %534 = getelementptr inbounds %"class.ngraph::op::v0::Dot", ptr %54, i32 0, i32 1
  %535 = load i64, ptr %534, align 8, !tbaa !72
  %536 = sub i64 %532, %535
  %537 = icmp ult i64 %523, %536
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #8
  br i1 %537, label %557, label %538

538:                                              ; preds = %533
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %573

539:                                              ; preds = %498, %495
  %540 = landingpad { ptr, i32 }
          cleanup
  %541 = extractvalue { ptr, i32 } %540, 0
  store ptr %541, ptr %4, align 8
  %542 = extractvalue { ptr, i32 } %540, 1
  store i32 %542, ptr %5, align 4
  br label %552

543:                                              ; preds = %508, %505
  %544 = landingpad { ptr, i32 }
          cleanup
  %545 = extractvalue { ptr, i32 } %544, 0
  store ptr %545, ptr %4, align 8
  %546 = extractvalue { ptr, i32 } %544, 1
  store i32 %546, ptr %5, align 4
  br label %551

547:                                              ; preds = %515
  %548 = landingpad { ptr, i32 }
          cleanup
  %549 = extractvalue { ptr, i32 } %548, 0
  store ptr %549, ptr %4, align 8
  %550 = extractvalue { ptr, i32 } %548, 1
  store i32 %550, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIN6ngraph9DimensionEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #8
  br label %551

551:                                              ; preds = %547, %543
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #8
  br label %552

552:                                              ; preds = %551, %539
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #8
  br label %618

553:                                              ; preds = %526, %522
  %554 = landingpad { ptr, i32 }
          cleanup
  %555 = extractvalue { ptr, i32 } %554, 0
  store ptr %555, ptr %4, align 8
  %556 = extractvalue { ptr, i32 } %554, 1
  store i32 %556, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #8
  br label %572

557:                                              ; preds = %533
  %558 = load ptr, ptr %10, align 8, !tbaa !5
  %559 = load i64, ptr %47, align 8, !tbaa !73
  %560 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %558, i64 noundef %559)
          to label %561 unwind label %568

561:                                              ; preds = %557
  %562 = load i64, ptr %46, align 8, !tbaa !73
  %563 = add i64 %562, 1
  store i64 %563, ptr %46, align 8, !tbaa !73
  %564 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %562) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %564, ptr align 8 %560, i64 16, i1 false), !tbaa.struct !76
  br label %565

565:                                              ; preds = %561
  %566 = load i64, ptr %47, align 8, !tbaa !73
  %567 = add i64 %566, 1
  store i64 %567, ptr %47, align 8, !tbaa !73
  br label %522, !llvm.loop !77

568:                                              ; preds = %557
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %4, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %5, align 4
  br label %572

572:                                              ; preds = %568, %553
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %617

573:                                              ; preds = %538
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  %574 = getelementptr inbounds %"class.ngraph::op::v0::Dot", ptr %54, i32 0, i32 1
  %575 = load i64, ptr %574, align 8, !tbaa !72
  store i64 %575, ptr %49, align 8, !tbaa !73
  br label %576

576:                                              ; preds = %602, %573
  %577 = load i64, ptr %49, align 8, !tbaa !73
  call void @llvm.lifetime.start.p0(i64 16, ptr %50) #8
  %578 = load ptr, ptr %11, align 8, !tbaa !5
  %579 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %578)
          to label %580 unwind label %590

580:                                              ; preds = %576
  %581 = getelementptr inbounds %"class.ngraph::Dimension", ptr %50, i32 0, i32 0
  %582 = getelementptr inbounds { i64, i64 }, ptr %581, i32 0, i32 0
  %583 = extractvalue { i64, i64 } %579, 0
  store i64 %583, ptr %582, align 8
  %584 = getelementptr inbounds { i64, i64 }, ptr %581, i32 0, i32 1
  %585 = extractvalue { i64, i64 } %579, 1
  store i64 %585, ptr %584, align 8
  %586 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %50)
          to label %587 unwind label %590

587:                                              ; preds = %580
  %588 = icmp ult i64 %577, %586
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #8
  br i1 %588, label %594, label %589

589:                                              ; preds = %587
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  br label %610

590:                                              ; preds = %580, %576
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %4, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #8
  br label %609

594:                                              ; preds = %587
  %595 = load ptr, ptr %11, align 8, !tbaa !5
  %596 = load i64, ptr %49, align 8, !tbaa !73
  %597 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %595, i64 noundef %596)
          to label %598 unwind label %605

598:                                              ; preds = %594
  %599 = load i64, ptr %46, align 8, !tbaa !73
  %600 = add i64 %599, 1
  store i64 %600, ptr %46, align 8, !tbaa !73
  %601 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %599) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %601, ptr align 8 %597, i64 16, i1 false), !tbaa.struct !76
  br label %602

602:                                              ; preds = %598
  %603 = load i64, ptr %49, align 8, !tbaa !73
  %604 = add i64 %603, 1
  store i64 %604, ptr %49, align 8, !tbaa !73
  br label %576, !llvm.loop !78

605:                                              ; preds = %594
  %606 = landingpad { ptr, i32 }
          cleanup
  %607 = extractvalue { ptr, i32 } %606, 0
  store ptr %607, ptr %4, align 8
  %608 = extractvalue { ptr, i32 } %606, 1
  store i32 %608, ptr %5, align 4
  br label %609

609:                                              ; preds = %605, %590
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  br label %617

610:                                              ; preds = %589
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #8
  invoke void @_ZN6ngraph12PartialShapeC2ERKSt6vectorINS_9DimensionESaIS2_EE(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(24) %42)
          to label %611 unwind label %613

611:                                              ; preds = %610
  %612 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6ngraph12PartialShapeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #8
  br label %637

613:                                              ; preds = %610
  %614 = landingpad { ptr, i32 }
          cleanup
  %615 = extractvalue { ptr, i32 } %614, 0
  store ptr %615, ptr %4, align 8
  %616 = extractvalue { ptr, i32 } %614, 1
  store i32 %616, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  br label %617

617:                                              ; preds = %613, %609, %572
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #8
  br label %618

618:                                              ; preds = %617, %552
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #8
  br label %643

619:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  %620 = invoke { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
          to label %621 unwind label %633

621:                                              ; preds = %619
  %622 = getelementptr inbounds %"class.ngraph::Dimension", ptr %53, i32 0, i32 0
  %623 = getelementptr inbounds { i64, i64 }, ptr %622, i32 0, i32 0
  %624 = extractvalue { i64, i64 } %620, 0
  store i64 %624, ptr %623, align 8
  %625 = getelementptr inbounds { i64, i64 }, ptr %622, i32 0, i32 1
  %626 = extractvalue { i64, i64 } %620, 1
  store i64 %626, ptr %625, align 8
  %627 = getelementptr inbounds { i64, i64 }, ptr %53, i32 0, i32 0
  %628 = load i64, ptr %627, align 8
  %629 = getelementptr inbounds { i64, i64 }, ptr %53, i32 0, i32 1
  %630 = load i64, ptr %629, align 8
  invoke void @_ZN6ngraph12PartialShape7dynamicENS_9DimensionE(ptr dead_on_unwind writable sret(%"class.ngraph::PartialShape") align 8 %52, i64 %628, i64 %630)
          to label %631 unwind label %633

631:                                              ; preds = %621
  %632 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6ngraph12PartialShapeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  br label %637

633:                                              ; preds = %621, %619
  %634 = landingpad { ptr, i32 }
          cleanup
  %635 = extractvalue { ptr, i32 } %634, 0
  store ptr %635, ptr %4, align 8
  %636 = extractvalue { ptr, i32 } %634, 1
  store i32 %636, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  br label %643

637:                                              ; preds = %631, %611
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %54, i64 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %638 unwind label %639

638:                                              ; preds = %637
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  call void @_ZN6ngraph7element4TypeD2Ev(ptr noundef nonnull align 4 dereferenceable(4) %3) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #8
  ret void

639:                                              ; preds = %637
  %640 = landingpad { ptr, i32 }
          cleanup
  %641 = extractvalue { ptr, i32 } %640, 0
  store ptr %641, ptr %4, align 8
  %642 = extractvalue { ptr, i32 } %640, 1
  store i32 %642, ptr %5, align 4
  br label %643

643:                                              ; preds = %639, %633, %618, %494, %414, %369, %347, %290, %268
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %644

644:                                              ; preds = %643, %256
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  br label %645

645:                                              ; preds = %644, %206, %171
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #8
  br label %646

646:                                              ; preds = %645, %149
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  br label %647

647:                                              ; preds = %646, %145
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  br label %648

648:                                              ; preds = %647, %102, %77
  call void @_ZN6ngraph7element4TypeD2Ev(ptr noundef nonnull align 4 dereferenceable(4) %3) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #8
  br label %649

649:                                              ; preds = %648
  %650 = load ptr, ptr %4, align 8
  %651 = load i32, ptr %5, align 4
  %652 = insertvalue { ptr, i32 } poison, ptr %650, 0
  %653 = insertvalue { ptr, i32 } %652, i32 %651, 1
  resume { ptr, i32 } %653

654:                                              ; preds = %456, %338, %255, %76
  unreachable
}

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

declare noundef zeroext i1 @_ZN6ngraph7element4Type5mergeERS1_RKS1_S4_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #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: mustprogress uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #1 align 2

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

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

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

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 noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6ngraph4Node23get_input_partial_shapeEm(ptr noundef nonnull align 8 dereferenceable(680), i64 noundef) #3

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

declare noundef zeroext i1 @_ZNK6ngraph9Dimension11same_schemeERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #3

declare void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) unnamed_addr #3

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA23_cJRmRA29_KcRKNS_12PartialShapeERA15_S3_S8_RA3_S3_EEERSoSD_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(23), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(29), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(15), ptr noundef nonnull align 8 dereferenceable(32), 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

declare noundef zeroext i1 @_ZNK6ngraph9Dimension10compatibleERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA19_cJRmRA18_KcS2_RA50_S3_RKNS_12PartialShapeERA15_S3_SA_RA25_S3_S2_RA3_S3_EEERSoSH_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(19), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(50), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(15), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(25), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(3)) #4

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #6

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

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

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

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

declare void @_ZN6ngraph12PartialShape7dynamicENS_9DimensionE(ptr dead_on_unwind writable sret(%"class.ngraph::PartialShape") align 8, i64, i64) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv() #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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress 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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { 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 #8 = { nounwind }
attributes #9 = { 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, !6, i64 0}
!10 = !{!"_ZTSN6ngraph12CheckLocInfoE", !6, i64 0, !11, i64 8, !6, i64 16}
!11 = !{!"int", !7, i64 0}
!12 = !{!10, !11, i64 8}
!13 = !{!10, !6, i64 16}
!14 = !{!15, !68, i64 688}
!15 = !{!"_ZTSN6ngraph2op2v03DotE", !16, i64 0, !24, i64 680, !68, i64 688}
!16 = !{!"_ZTSN6ngraph2op2OpE", !17, i64 0}
!17 = !{!"_ZTSN6ngraph4NodeE", !18, i64 8, !22, i64 24, !22, i64 80, !28, i64 136, !32, i64 160, !36, i64 184, !24, i64 216, !36, i64 224, !36, i64 256, !38, i64 288, !40, i64 344, !48, i64 392, !53, i64 472, !58, i64 552, !11, i64 608, !60, i64 616, !63, i64 632}
!18 = !{!"_ZTSSt23enable_shared_from_thisIN6ngraph4NodeEE", !19, i64 0}
!19 = !{!"_ZTSSt8weak_ptrIN6ngraph4NodeEE", !20, i64 0}
!20 = !{!"_ZTSSt10__weak_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !21, i64 8}
!21 = !{!"_ZTSSt12__weak_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!22 = !{!"_ZTSSt13unordered_setIPN6ngraph10descriptor6TensorESt4hashIS3_ESt8equal_toIS3_ESaIS3_EE", !23, i64 0}
!23 = !{!"_ZTSSt10_HashtableIPN6ngraph10descriptor6TensorES3_SaIS3_ENSt8__detail9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb1ELb1EEEE", !6, i64 0, !24, i64 8, !25, i64 16, !24, i64 24, !26, i64 32, !6, i64 48}
!24 = !{!"long", !7, i64 0}
!25 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!26 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !27, i64 0, !24, i64 8}
!27 = !{!"float", !7, i64 0}
!28 = !{!"_ZTSSt6vectorIPN6ngraph4NodeESaIS2_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIPN6ngraph4NodeESaIS2_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIPN6ngraph4NodeESaIS2_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIPN6ngraph4NodeESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTSSt6vectorISt10shared_ptrIN6ngraph4NodeEESaIS3_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN6ngraph4NodeEESaIS3_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6ngraph4NodeEESaIS3_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6ngraph4NodeEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !37, i64 0, !24, i64 8, !7, i64 16}
!37 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!38 = !{!"_ZTSSt13unordered_setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4hashIS5_ESt8equal_toIS5_ESaIS5_EE", !39, i64 0}
!39 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_ENSt8__detail9_IdentityESt8equal_toIS5_ESt4hashIS5_ENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb1ELb1ELb1EEEE", !6, i64 0, !24, i64 8, !25, i64 16, !24, i64 24, !26, i64 32, !6, i64 48}
!40 = !{!"_ZTSSt3setISt10shared_ptrIN6ngraph4NodeEESt4lessIS3_ESaIS3_EE", !41, i64 0}
!41 = !{!"_ZTSSt8_Rb_treeISt10shared_ptrIN6ngraph4NodeEES3_St9_IdentityIS3_ESt4lessIS3_ESaIS3_EE", !42, i64 0}
!42 = !{!"_ZTSNSt8_Rb_treeISt10shared_ptrIN6ngraph4NodeEES3_St9_IdentityIS3_ESt4lessIS3_ESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !43, i64 0, !45, i64 8}
!43 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt10shared_ptrIN6ngraph4NodeEEEE", !44, i64 0}
!44 = !{!"_ZTSSt4lessISt10shared_ptrIN6ngraph4NodeEEE"}
!45 = !{!"_ZTSSt15_Rb_tree_header", !46, i64 0, !24, i64 32}
!46 = !{!"_ZTSSt18_Rb_tree_node_base", !47, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!47 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!48 = !{!"_ZTSSt5dequeIN6ngraph10descriptor5InputESaIS2_EE", !49, i64 0}
!49 = !{!"_ZTSSt11_Deque_baseIN6ngraph10descriptor5InputESaIS2_EE", !50, i64 0}
!50 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor5InputESaIS2_EE11_Deque_implE", !51, i64 0}
!51 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor5InputESaIS2_EE16_Deque_impl_dataE", !6, i64 0, !24, i64 8, !52, i64 16, !52, i64 48}
!52 = !{!"_ZTSSt15_Deque_iteratorIN6ngraph10descriptor5InputERS2_PS2_E", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!53 = !{!"_ZTSSt5dequeIN6ngraph10descriptor6OutputESaIS2_EE", !54, i64 0}
!54 = !{!"_ZTSSt11_Deque_baseIN6ngraph10descriptor6OutputESaIS2_EE", !55, i64 0}
!55 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor6OutputESaIS2_EE11_Deque_implE", !56, i64 0}
!56 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor6OutputESaIS2_EE16_Deque_impl_dataE", !6, i64 0, !24, i64 8, !57, i64 16, !57, i64 48}
!57 = !{!"_ZTSSt15_Deque_iteratorIN6ngraph10descriptor6OutputERS2_PS2_E", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!58 = !{!"_ZTSSt13unordered_mapIPN6ngraph4NodeENS0_8autodiff8AdjointsESt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_S4_EEE", !59, i64 0}
!59 = !{!"_ZTSSt10_HashtableIPN6ngraph4NodeESt4pairIKS2_NS0_8autodiff8AdjointsEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS2_ESt4hashIS2_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !24, i64 8, !25, i64 16, !24, i64 24, !26, i64 32, !6, i64 48}
!60 = !{!"_ZTSSt10shared_ptrIN6ngraph2op4util13OpAnnotationsEE", !61, i64 0}
!61 = !{!"_ZTSSt12__shared_ptrIN6ngraph2op4util13OpAnnotationsELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !62, i64 8}
!62 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!63 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIN6ngraph7VariantEESt4lessIS5_ESaISt4pairIKS5_S9_EEE", !64, i64 0}
!64 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN6ngraph7VariantEEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE", !65, i64 0}
!65 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN6ngraph7VariantEEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE13_Rb_tree_implISG_Lb1EEE", !66, i64 0, !45, i64 8}
!66 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !67, i64 0}
!67 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!68 = !{!"bool", !7, i64 0}
!69 = !{i8 0, i8 2}
!70 = !{}
!71 = !{!68, !68, i64 0}
!72 = !{!15, !24, i64 680}
!73 = !{!24, !24, i64 0}
!74 = distinct !{!74, !75}
!75 = !{!"llvm.loop.mustprogress"}
!76 = !{i64 0, i64 8, !73, i64 8, i64 8, !73}
!77 = distinct !{!77, !75}
!78 = distinct !{!78, !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_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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::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::Dimension" = type { %"class.ngraph::Interval" }
%"class.ngraph::Interval" = type { i64, i64 }
%"class.ngraph::PartialShape" = type { i8, %"class.std::vector.78" }
%"class.std::vector.78" = type { %"struct.std::_Vector_base.79" }
%"struct.std::_Vector_base.79" = 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.std::allocator.80" = type { i8 }

@.str = external hidden unnamed_addr constant [65 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [86 x i8], align 1
@_ZTIN6ngraph21NodeValidationFailureE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.5 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [68 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: mustprogress uwtable
define dso_local void @_ZN6ngraph2op2v03Dot24validate_and_infer_typesEv(ptr noundef nonnull align 8 dereferenceable(689) %0) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.ngraph::element::Type", align 4
  %3 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %4 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.ngraph::Dimension", align 8
  %7 = alloca %"class.ngraph::Dimension", align 8
  %8 = alloca %"class.ngraph::Dimension", align 8
  %9 = alloca %"class.ngraph::Dimension", align 8
  %10 = alloca %"class.ngraph::Dimension", align 8
  %11 = alloca %"class.ngraph::Dimension", align 8
  %12 = alloca %"class.ngraph::PartialShape", align 8
  %13 = alloca %"class.ngraph::Dimension", align 8
  %14 = alloca %"class.ngraph::Dimension", align 8
  %15 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %16 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.ngraph::Dimension", align 8
  %19 = alloca %"class.ngraph::Dimension", align 8
  %20 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %21 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.ngraph::Dimension", align 8
  %24 = alloca %"class.ngraph::Dimension", align 8
  %25 = alloca i64, align 8
  %26 = alloca %"class.ngraph::Dimension", align 8
  %27 = alloca i64, align 8
  %28 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %29 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::vector.78", align 8
  %32 = alloca %"class.ngraph::Dimension", align 8
  %33 = alloca %"class.ngraph::Dimension", align 8
  %34 = alloca %"class.std::allocator.80", align 1
  %35 = alloca %"class.ngraph::Dimension", align 8
  %36 = alloca %"class.ngraph::Dimension", align 8
  %37 = alloca %"class.ngraph::PartialShape", align 8
  %38 = alloca %"class.ngraph::PartialShape", align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #8
  call void @_ZN6ngraph7element4TypeC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %2)
  %39 = 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 %40 unwind label %60

40:                                               ; preds = %1
  %41 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph4Node22get_input_element_typeEm(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 1)
          to label %42 unwind label %60

42:                                               ; preds = %40
  %43 = invoke noundef zeroext i1 @_ZN6ngraph7element4Type5mergeERS1_RKS1_S4_(ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull align 4 dereferenceable(4) %41)
          to label %44 unwind label %60

44:                                               ; preds = %42
  br i1 %43, label %72, label %45

45:                                               ; preds = %44
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %3) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %3)
          to label %46 unwind label %62

46:                                               ; preds = %45
  %47 = getelementptr inbounds i8, ptr %3, i64 16
  %48 = 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 %49 unwind label %64

49:                                               ; preds = %46
  %50 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph4Node22get_input_element_typeEm(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 1)
          to label %51 unwind label %64

51:                                               ; preds = %49
  %52 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA65_cJRKNS_7element4TypeERA22_KcS5_RA3_S6_EEERSoSB_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 1 dereferenceable(65) @.str, ptr noundef nonnull align 4 dereferenceable(4) %48, ptr noundef nonnull align 1 dereferenceable(22) @.str.1, ptr noundef nonnull align 4 dereferenceable(4) %50, ptr noundef nonnull align 1 dereferenceable(3) @.str.2)
          to label %53 unwind label %64

53:                                               ; preds = %51
  %54 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #8
  store ptr @.str.3, ptr %4, align 8, !tbaa !5
  %55 = getelementptr inbounds i8, ptr %4, i64 8
  store i32 59, ptr %55, align 8, !tbaa !11
  %56 = getelementptr inbounds i8, ptr %4, i64 16
  store ptr @.str.4, ptr %56, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(128) %3)
          to label %57 unwind label %.thread

57:                                               ; preds = %53
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %59 unwind label %.thread149

.thread149:                                       ; preds = %57
  %58 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #8
  br label %69

59:                                               ; preds = %57
  invoke void @__cxa_throw(ptr nonnull %54, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #9
          to label %394 unwind label %67

60:                                               ; preds = %42, %40, %1
  %61 = landingpad { ptr, i32 }
          cleanup
  br label %393

62:                                               ; preds = %45
  %63 = landingpad { ptr, i32 }
          cleanup
  br label %71

64:                                               ; preds = %51, %49, %46
  %65 = landingpad { ptr, i32 }
          cleanup
  br label %70

.thread:                                          ; preds = %53
  %66 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #8
  br label %69

67:                                               ; preds = %59
  %68 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #8
  br label %70

69:                                               ; preds = %.thread149, %.thread
  %.pn148 = phi { ptr, i32 } [ %66, %.thread ], [ %58, %.thread149 ]
  call void @__cxa_free_exception(ptr %54) #8
  br label %70

70:                                               ; preds = %67, %69, %64
  %.pn.pn = phi { ptr, i32 } [ %.pn148, %69 ], [ %68, %67 ], [ %65, %64 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %3) #8
  br label %71

71:                                               ; preds = %70, %62
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %70 ], [ %63, %62 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %3) #8
  br label %393

72:                                               ; preds = %44
  %73 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6ngraph4Node23get_input_partial_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 0)
          to label %74 unwind label %101

74:                                               ; preds = %72
  %75 = 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 %76 unwind label %103

76:                                               ; preds = %74
  %77 = getelementptr inbounds i8, ptr %0, i64 688
  %78 = load i8, ptr %77, align 8, !tbaa !13, !range !68, !noundef !69
  %79 = trunc nuw i8 %78 to i1
  %80 = xor i8 %78, 1
  br i1 %79, label %139, label %81

81:                                               ; preds = %76
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #8
  %82 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %83 unwind label %105

83:                                               ; preds = %81
  %84 = extractvalue { i64, i64 } %82, 0
  store i64 %84, ptr %6, align 8
  %85 = getelementptr inbounds i8, ptr %6, i64 8
  %86 = extractvalue { i64, i64 } %82, 1
  store i64 %86, ptr %85, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #8
  invoke void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef 0)
          to label %87 unwind label %107

87:                                               ; preds = %83
  %88 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension11same_schemeERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %7)
          to label %89 unwind label %107

89:                                               ; preds = %87
  br i1 %88, label %.critedge, label %90

90:                                               ; preds = %89
  %91 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %92 unwind label %109

92:                                               ; preds = %90
  %93 = extractvalue { i64, i64 } %91, 0
  store i64 %93, ptr %8, align 8
  %94 = getelementptr inbounds i8, ptr %8, i64 8
  %95 = extractvalue { i64, i64 } %91, 1
  store i64 %95, ptr %94, align 8
  invoke void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %9, i64 noundef 0)
          to label %96 unwind label %111

96:                                               ; preds = %92
  %97 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension11same_schemeERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %98 unwind label %111

98:                                               ; preds = %96
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #8
  br i1 %97, label %99, label %116

.critedge:                                        ; preds = %89
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #8
  br label %99

99:                                               ; preds = %.critedge, %98
  %100 = getelementptr inbounds i8, ptr %0, i64 680
  store i64 0, ptr %100, align 8, !tbaa !70
  br label %139

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

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

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

107:                                              ; preds = %87, %83
  %108 = landingpad { ptr, i32 }
          cleanup
  br label %114

109:                                              ; preds = %90
  %110 = landingpad { ptr, i32 }
          cleanup
  br label %113

111:                                              ; preds = %96, %92
  %112 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #8
  br label %113

113:                                              ; preds = %111, %109
  %.pn101 = phi { ptr, i32 } [ %112, %111 ], [ %110, %109 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #8
  br label %114

114:                                              ; preds = %113, %107
  %.pn101.pn = phi { ptr, i32 } [ %.pn101, %113 ], [ %108, %107 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #8
  br label %115

115:                                              ; preds = %114, %105
  %.pn101.pn.pn = phi { ptr, i32 } [ %.pn101.pn, %114 ], [ %106, %105 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #8
  br label %393

116:                                              ; preds = %98
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #8
  %117 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %118 unwind label %134

118:                                              ; preds = %116
  %119 = extractvalue { i64, i64 } %117, 0
  store i64 %119, ptr %10, align 8
  %120 = getelementptr inbounds i8, ptr %10, i64 8
  %121 = extractvalue { i64, i64 } %117, 1
  store i64 %121, ptr %120, align 8
  %122 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %123 unwind label %134

123:                                              ; preds = %118
  br i1 %122, label %124, label %.critedge2

124:                                              ; preds = %123
  %125 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %126 unwind label %136

126:                                              ; preds = %124
  %127 = extractvalue { i64, i64 } %125, 0
  store i64 %127, ptr %11, align 8
  %128 = getelementptr inbounds i8, ptr %11, i64 8
  %129 = extractvalue { i64, i64 } %125, 1
  store i64 %129, ptr %128, align 8
  %130 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %131 unwind label %136

131:                                              ; preds = %126
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #8
  br i1 %130, label %132, label %139

132:                                              ; preds = %131
  %133 = getelementptr inbounds i8, ptr %0, i64 680
  store i64 1, ptr %133, align 8, !tbaa !70
  br label %139

134:                                              ; preds = %118, %116
  %135 = landingpad { ptr, i32 }
          cleanup
  br label %138

136:                                              ; preds = %126, %124
  %137 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #8
  br label %138

138:                                              ; preds = %136, %134
  %.pn105 = phi { ptr, i32 } [ %137, %136 ], [ %135, %134 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #8
  br label %393

.critedge2:                                       ; preds = %123
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #8
  br label %139

139:                                              ; preds = %99, %.critedge2, %132, %131, %76
  %.095 = phi i8 [ 0, %99 ], [ 0, %132 ], [ %80, %131 ], [ %80, %.critedge2 ], [ %80, %76 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #8
  invoke void @_ZN6ngraph12PartialShapeC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %140 unwind label %171

140:                                              ; preds = %139
  %141 = trunc nuw i8 %.095 to i1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #8
  br i1 %141, label %.thread166, label %142

.thread166:                                       ; preds = %140
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #8
  br label %.critedge4

142:                                              ; preds = %140
  %143 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %144 unwind label %173

144:                                              ; preds = %142
  %145 = extractvalue { i64, i64 } %143, 0
  store i64 %145, ptr %13, align 8
  %146 = getelementptr inbounds i8, ptr %13, i64 8
  %147 = extractvalue { i64, i64 } %143, 1
  store i64 %147, ptr %146, align 8
  %148 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension10is_dynamicEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %149 unwind label %173

149:                                              ; preds = %144
  br i1 %148, label %188, label %150

150:                                              ; preds = %149
  %151 = getelementptr inbounds i8, ptr %0, i64 680
  %152 = load i64, ptr %151, align 8, !tbaa !70
  %153 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %154 unwind label %175

154:                                              ; preds = %150
  %155 = extractvalue { i64, i64 } %153, 0
  store i64 %155, ptr %14, align 8
  %156 = getelementptr inbounds i8, ptr %14, i64 8
  %157 = extractvalue { i64, i64 } %153, 1
  store i64 %157, ptr %156, align 8
  %158 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %159 unwind label %175

159:                                              ; preds = %154
  %.not = icmp ugt i64 %152, %158
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #8
  br i1 %.not, label %160, label %.thread157

.thread157:                                       ; preds = %159
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #8
  br label %189

160:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %15) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %15)
          to label %161 unwind label %178

161:                                              ; preds = %160
  %162 = getelementptr inbounds i8, ptr %15, i64 16
  %163 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA23_cJRmRA29_KcRKNS_12PartialShapeERA15_S3_S8_RA3_S3_EEERSoSD_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %162, ptr noundef nonnull align 1 dereferenceable(23) @.str.5, ptr noundef nonnull align 8 dereferenceable(8) %151, ptr noundef nonnull align 1 dereferenceable(29) @.str.6, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 1 dereferenceable(15) @.str.7, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 1 dereferenceable(3) @.str.2)
          to label %164 unwind label %180

164:                                              ; preds = %161
  %165 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #8
  store ptr @.str.3, ptr %16, align 8, !tbaa !5
  %166 = getelementptr inbounds i8, ptr %16, i64 8
  store i32 97, ptr %166, align 8, !tbaa !11
  %167 = getelementptr inbounds i8, ptr %16, i64 16
  store ptr @.str.8, ptr %167, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #8
  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) %15)
          to label %168 unwind label %.thread151

168:                                              ; preds = %164
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %165, ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %170 unwind label %.thread155

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

170:                                              ; preds = %168
  invoke void @__cxa_throw(ptr nonnull %165, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #9
          to label %394 unwind label %183

171:                                              ; preds = %139
  %172 = landingpad { ptr, i32 }
          cleanup
  br label %392

173:                                              ; preds = %144, %142
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %177

175:                                              ; preds = %154, %150
  %176 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #8
  br label %177

177:                                              ; preds = %175, %173
  %.pn107 = phi { ptr, i32 } [ %176, %175 ], [ %174, %173 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #8
  br label %391

178:                                              ; preds = %160
  %179 = landingpad { ptr, i32 }
          cleanup
  br label %187

180:                                              ; preds = %161
  %181 = landingpad { ptr, i32 }
          cleanup
  br label %186

.thread151:                                       ; preds = %164
  %182 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #8
  br label %185

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

185:                                              ; preds = %.thread155, %.thread151
  %.pn132154 = phi { ptr, i32 } [ %182, %.thread151 ], [ %169, %.thread155 ]
  call void @__cxa_free_exception(ptr %165) #8
  br label %186

186:                                              ; preds = %183, %185, %180
  %.pn132.pn = phi { ptr, i32 } [ %.pn132154, %185 ], [ %184, %183 ], [ %181, %180 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %15) #8
  br label %187

187:                                              ; preds = %186, %178
  %.pn132.pn.pn = phi { ptr, i32 } [ %.pn132.pn, %186 ], [ %179, %178 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %15) #8
  br label %391

188:                                              ; preds = %149
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #8
  br label %189

189:                                              ; preds = %188, %.thread157
  %190 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %191 unwind label %218

191:                                              ; preds = %189
  %192 = extractvalue { i64, i64 } %190, 0
  store i64 %192, ptr %18, align 8
  %193 = getelementptr inbounds i8, ptr %18, i64 8
  %194 = extractvalue { i64, i64 } %190, 1
  store i64 %194, ptr %193, align 8
  %195 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension10is_dynamicEv(ptr noundef nonnull align 8 dereferenceable(16) %18)
          to label %196 unwind label %218

196:                                              ; preds = %191
  br i1 %195, label %233, label %197

197:                                              ; preds = %196
  %198 = getelementptr inbounds i8, ptr %0, i64 680
  %199 = load i64, ptr %198, align 8, !tbaa !70
  %200 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %201 unwind label %220

201:                                              ; preds = %197
  %202 = extractvalue { i64, i64 } %200, 0
  store i64 %202, ptr %19, align 8
  %203 = getelementptr inbounds i8, ptr %19, i64 8
  %204 = extractvalue { i64, i64 } %200, 1
  store i64 %204, ptr %203, align 8
  %205 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %19)
          to label %206 unwind label %220

206:                                              ; preds = %201
  %.not173 = icmp ugt i64 %199, %205
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #8
  br i1 %.not173, label %207, label %.thread165

.thread165:                                       ; preds = %206
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #8
  br label %234

207:                                              ; preds = %206
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %20) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %20)
          to label %208 unwind label %223

208:                                              ; preds = %207
  %209 = getelementptr inbounds i8, ptr %20, i64 16
  %210 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA23_cJRmRA29_KcRKNS_12PartialShapeERA15_S3_S8_RA3_S3_EEERSoSD_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %209, ptr noundef nonnull align 1 dereferenceable(23) @.str.5, ptr noundef nonnull align 8 dereferenceable(8) %198, ptr noundef nonnull align 1 dereferenceable(29) @.str.6, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 1 dereferenceable(15) @.str.7, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 1 dereferenceable(3) @.str.2)
          to label %211 unwind label %225

211:                                              ; preds = %208
  %212 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #8
  store ptr @.str.3, ptr %21, align 8, !tbaa !5
  %213 = getelementptr inbounds i8, ptr %21, i64 8
  store i32 108, ptr %213, align 8, !tbaa !11
  %214 = getelementptr inbounds i8, ptr %21, i64 16
  store ptr @.str.9, ptr %214, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(128) %20)
          to label %215 unwind label %.thread159

215:                                              ; preds = %211
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %212, ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %217 unwind label %.thread163

.thread163:                                       ; preds = %215
  %216 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #8
  br label %230

217:                                              ; preds = %215
  invoke void @__cxa_throw(ptr nonnull %212, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #9
          to label %394 unwind label %228

218:                                              ; preds = %191, %189
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %222

220:                                              ; preds = %201, %197
  %221 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #8
  br label %222

222:                                              ; preds = %220, %218
  %.pn109 = phi { ptr, i32 } [ %221, %220 ], [ %219, %218 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #8
  br label %391

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

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

.thread159:                                       ; preds = %211
  %227 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #8
  br label %230

228:                                              ; preds = %217
  %229 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #8
  br label %231

230:                                              ; preds = %.thread163, %.thread159
  %.pn128162 = phi { ptr, i32 } [ %227, %.thread159 ], [ %216, %.thread163 ]
  call void @__cxa_free_exception(ptr %212) #8
  br label %231

231:                                              ; preds = %228, %230, %225
  %.pn128.pn = phi { ptr, i32 } [ %.pn128162, %230 ], [ %229, %228 ], [ %226, %225 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %20) #8
  br label %232

232:                                              ; preds = %231, %223
  %.pn128.pn.pn = phi { ptr, i32 } [ %.pn128.pn, %231 ], [ %224, %223 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %20) #8
  br label %391

233:                                              ; preds = %196
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #8
  br label %234

234:                                              ; preds = %233, %.thread165
  %235 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %236 unwind label %254

236:                                              ; preds = %234
  %237 = extractvalue { i64, i64 } %235, 0
  store i64 %237, ptr %23, align 8
  %238 = getelementptr inbounds i8, ptr %23, i64 8
  %239 = extractvalue { i64, i64 } %235, 1
  store i64 %239, ptr %238, align 8
  %240 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %23)
          to label %241 unwind label %254

241:                                              ; preds = %236
  br i1 %240, label %242, label %.critedge4

242:                                              ; preds = %241
  %243 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %244 unwind label %256

244:                                              ; preds = %242
  %245 = extractvalue { i64, i64 } %243, 0
  store i64 %245, ptr %24, align 8
  %246 = getelementptr inbounds i8, ptr %24, i64 8
  %247 = extractvalue { i64, i64 } %243, 1
  store i64 %247, ptr %246, align 8
  %248 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %24)
          to label %249 unwind label %256

249:                                              ; preds = %244
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #8
  br i1 %248, label %.preheader174, label %379

.preheader174:                                    ; preds = %249
  %250 = getelementptr inbounds i8, ptr %0, i64 680
  %251 = load i64, ptr %250, align 8, !tbaa !70
  %.not183 = icmp eq i64 %251, 0
  br i1 %.not183, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader174
  %252 = getelementptr inbounds i8, ptr %26, i64 8
  br label %259

._crit_edge:                                      ; preds = %301, %.preheader174
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #8
  %253 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %307 unwind label %337

254:                                              ; preds = %236, %234
  %255 = landingpad { ptr, i32 }
          cleanup
  br label %258

256:                                              ; preds = %244, %242
  %257 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #8
  br label %258

258:                                              ; preds = %256, %254
  %.pn111 = phi { ptr, i32 } [ %257, %256 ], [ %255, %254 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #8
  br label %391

259:                                              ; preds = %.lr.ph, %301
  %260 = phi i64 [ 0, %.lr.ph ], [ %302, %301 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #8
  %261 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %262 unwind label %287

262:                                              ; preds = %259
  %263 = extractvalue { i64, i64 } %261, 0
  store i64 %263, ptr %26, align 8
  %264 = extractvalue { i64, i64 } %261, 1
  store i64 %264, ptr %252, align 8
  %265 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %26)
          to label %266 unwind label %287

266:                                              ; preds = %262
  %267 = load i64, ptr %250, align 8, !tbaa !70
  %268 = sub i64 %265, %267
  %269 = add i64 %268, %260
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #8
  store i64 %269, ptr %25, align 8, !tbaa !71
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #8
  store i64 %260, ptr %27, align 8, !tbaa !71
  %270 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %73, i64 noundef %269)
          to label %271 unwind label %289

271:                                              ; preds = %266
  %272 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %75, i64 noundef %260)
          to label %273 unwind label %289

273:                                              ; preds = %271
  %274 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension10compatibleERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %270, ptr noundef nonnull align 8 dereferenceable(16) %272)
          to label %275 unwind label %289

275:                                              ; preds = %273
  br i1 %274, label %301, label %276

276:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %28) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %28)
          to label %277 unwind label %291

277:                                              ; preds = %276
  %278 = getelementptr inbounds i8, ptr %28, i64 16
  %279 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA19_cJRmRA18_KcS2_RA50_S3_RKNS_12PartialShapeERA15_S3_SA_RA25_S3_S2_RA3_S3_EEERSoSH_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %278, ptr noundef nonnull align 1 dereferenceable(19) @.str.10, ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 1 dereferenceable(18) @.str.11, ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 1 dereferenceable(50) @.str.12, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 1 dereferenceable(15) @.str.7, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 1 dereferenceable(25) @.str.13, ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef nonnull align 1 dereferenceable(3) @.str.2)
          to label %280 unwind label %293

280:                                              ; preds = %277
  %281 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #8
  store ptr @.str.3, ptr %29, align 8, !tbaa !5
  %282 = getelementptr inbounds i8, ptr %29, i64 8
  store i32 130, ptr %282, align 8, !tbaa !11
  %283 = getelementptr inbounds i8, ptr %29, i64 16
  store ptr @.str.14, ptr %283, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #8
  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) %28)
          to label %284 unwind label %.thread167

284:                                              ; preds = %280
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %281, ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %286 unwind label %.thread171

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

286:                                              ; preds = %284
  invoke void @__cxa_throw(ptr nonnull %281, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #9
          to label %394 unwind label %296

287:                                              ; preds = %262, %259
  %288 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #8
  br label %306

289:                                              ; preds = %273, %271, %266
  %290 = landingpad { ptr, i32 }
          cleanup
  br label %305

291:                                              ; preds = %276
  %292 = landingpad { ptr, i32 }
          cleanup
  br label %300

293:                                              ; preds = %277
  %294 = landingpad { ptr, i32 }
          cleanup
  br label %299

.thread167:                                       ; preds = %280
  %295 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #8
  br label %298

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

298:                                              ; preds = %.thread171, %.thread167
  %.pn122170 = phi { ptr, i32 } [ %295, %.thread167 ], [ %285, %.thread171 ]
  call void @__cxa_free_exception(ptr %281) #8
  br label %299

299:                                              ; preds = %296, %298, %293
  %.pn122.pn = phi { ptr, i32 } [ %.pn122170, %298 ], [ %297, %296 ], [ %294, %293 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %28) #8
  br label %300

300:                                              ; preds = %299, %291
  %.pn122.pn.pn = phi { ptr, i32 } [ %.pn122.pn, %299 ], [ %292, %291 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %28) #8
  br label %305

301:                                              ; preds = %275
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  %302 = add nuw i64 %260, 1
  %303 = load i64, ptr %250, align 8, !tbaa !70
  %304 = icmp ult i64 %302, %303
  br i1 %304, label %259, label %._crit_edge, !llvm.loop !72

305:                                              ; preds = %300, %289
  %.pn122.pn.pn.pn = phi { ptr, i32 } [ %.pn122.pn.pn, %300 ], [ %290, %289 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  br label %306

306:                                              ; preds = %305, %287
  %.pn122.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn122.pn.pn.pn, %305 ], [ %288, %287 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  br label %391

307:                                              ; preds = %._crit_edge
  %308 = extractvalue { i64, i64 } %253, 0
  store i64 %308, ptr %32, align 8
  %309 = getelementptr inbounds i8, ptr %32, i64 8
  %310 = extractvalue { i64, i64 } %253, 1
  store i64 %310, ptr %309, align 8
  %311 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %32)
          to label %312 unwind label %337

312:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #8
  %313 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %314 unwind label %339

314:                                              ; preds = %312
  %315 = extractvalue { i64, i64 } %313, 0
  store i64 %315, ptr %33, align 8
  %316 = getelementptr inbounds i8, ptr %33, i64 8
  %317 = extractvalue { i64, i64 } %313, 1
  store i64 %317, ptr %316, align 8
  %318 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %319 unwind label %339

319:                                              ; preds = %314
  %320 = add nsw i64 %318, %311
  %321 = load i64, ptr %250, align 8, !tbaa !70
  %322 = shl i64 %321, 1
  %323 = sub i64 %320, %322
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #8
  call void @_ZNSaIN6ngraph9DimensionEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  invoke void @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %323, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %324 unwind label %341

324:                                              ; preds = %319
  call void @_ZNSt15__new_allocatorIN6ngraph9DimensionEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #8
  %325 = getelementptr inbounds i8, ptr %35, i64 8
  br label %326

326:                                              ; preds = %349, %324
  %.086 = phi i64 [ 0, %324 ], [ %350, %349 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #8
  %327 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %328 unwind label %345

328:                                              ; preds = %326
  %329 = extractvalue { i64, i64 } %327, 0
  store i64 %329, ptr %35, align 8
  %330 = extractvalue { i64, i64 } %327, 1
  store i64 %330, ptr %325, align 8
  %331 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %35)
          to label %332 unwind label %345

332:                                              ; preds = %328
  %333 = load i64, ptr %250, align 8, !tbaa !70
  %334 = sub i64 %331, %333
  %335 = icmp ult i64 %.086, %334
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #8
  br i1 %335, label %347, label %.preheader

.preheader:                                       ; preds = %332
  %336 = getelementptr inbounds i8, ptr %36, i64 8
  br label %354

337:                                              ; preds = %307, %._crit_edge
  %338 = landingpad { ptr, i32 }
          cleanup
  br label %344

339:                                              ; preds = %314, %312
  %340 = landingpad { ptr, i32 }
          cleanup
  br label %343

341:                                              ; preds = %319
  %342 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIN6ngraph9DimensionEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #8
  br label %343

343:                                              ; preds = %341, %339
  %.pn113 = phi { ptr, i32 } [ %342, %341 ], [ %340, %339 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #8
  br label %344

344:                                              ; preds = %343, %337
  %.pn113.pn = phi { ptr, i32 } [ %.pn113, %343 ], [ %338, %337 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #8
  br label %378

345:                                              ; preds = %328, %326
  %346 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #8
  br label %377

347:                                              ; preds = %332
  %348 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %73, i64 noundef %.086)
          to label %349 unwind label %352

349:                                              ; preds = %347
  %350 = add nuw i64 %.086, 1
  %351 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %.086) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %351, ptr noundef nonnull align 8 dereferenceable(16) %348, i64 16, i1 false), !tbaa.struct !74
  br label %326, !llvm.loop !75

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

354:                                              ; preds = %.preheader, %367
  %.187 = phi i64 [ %368, %367 ], [ %.086, %.preheader ]
  %.084 = phi i64 [ %370, %367 ], [ %333, %.preheader ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #8
  %355 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %356 unwind label %363

356:                                              ; preds = %354
  %357 = extractvalue { i64, i64 } %355, 0
  store i64 %357, ptr %36, align 8
  %358 = extractvalue { i64, i64 } %355, 1
  store i64 %358, ptr %336, align 8
  %359 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %36)
          to label %360 unwind label %363

360:                                              ; preds = %356
  %361 = icmp ult i64 %.084, %359
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #8
  br i1 %361, label %365, label %362

362:                                              ; preds = %360
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #8
  invoke void @_ZN6ngraph12PartialShapeC2ERKSt6vectorINS_9DimensionESaIS2_EE(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(24) %31)
          to label %373 unwind label %375

363:                                              ; preds = %356, %354
  %364 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #8
  br label %377

365:                                              ; preds = %360
  %366 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %75, i64 noundef %.084)
          to label %367 unwind label %371

367:                                              ; preds = %365
  %368 = add i64 %.187, 1
  %369 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %.187) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %369, ptr noundef nonnull align 8 dereferenceable(16) %366, i64 16, i1 false), !tbaa.struct !74
  %370 = add nuw i64 %.084, 1
  br label %354, !llvm.loop !76

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

373:                                              ; preds = %362
  %374 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6ngraph12PartialShapeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #8
  call void @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #8
  br label %387

375:                                              ; preds = %362
  %376 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #8
  br label %377

377:                                              ; preds = %363, %371, %345, %352, %375
  %.pn118.pn = phi { ptr, i32 } [ %376, %375 ], [ %353, %352 ], [ %346, %345 ], [ %372, %371 ], [ %364, %363 ]
  call void @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #8
  br label %378

378:                                              ; preds = %377, %344
  %.pn118.pn.pn = phi { ptr, i32 } [ %.pn118.pn, %377 ], [ %.pn113.pn, %344 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #8
  br label %391

.critedge4:                                       ; preds = %.thread166, %241
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #8
  br label %379

379:                                              ; preds = %.critedge4, %249
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #8
  %380 = call { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
  %381 = extractvalue { i64, i64 } %380, 0
  %382 = extractvalue { i64, i64 } %380, 1
  invoke void @_ZN6ngraph12PartialShape7dynamicENS_9DimensionE(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::PartialShape") align 8 %38, i64 %381, i64 %382)
          to label %383 unwind label %385

383:                                              ; preds = %379
  %384 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6ngraph12PartialShapeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #8
  br label %387

385:                                              ; preds = %379
  %386 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #8
  br label %391

387:                                              ; preds = %383, %373
  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) %2, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %388 unwind label %389

388:                                              ; preds = %387
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  call void @_ZN6ngraph7element4TypeD2Ev(ptr noundef nonnull align 4 dereferenceable(4) %2) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #8
  ret void

389:                                              ; preds = %387
  %390 = landingpad { ptr, i32 }
          cleanup
  br label %391

391:                                              ; preds = %389, %385, %378, %306, %258, %232, %222, %187, %177
  %.pn132.pn.pn.pn = phi { ptr, i32 } [ %.pn132.pn.pn, %187 ], [ %.pn128.pn.pn, %232 ], [ %390, %389 ], [ %386, %385 ], [ %.pn122.pn.pn.pn.pn, %306 ], [ %.pn118.pn.pn, %378 ], [ %.pn111, %258 ], [ %.pn109, %222 ], [ %.pn107, %177 ]
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  br label %392

392:                                              ; preds = %391, %171
  %.pn132.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn132.pn.pn.pn, %391 ], [ %172, %171 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  br label %393

393:                                              ; preds = %101, %115, %138, %392, %103, %71, %60
  %.pn132.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %71 ], [ %61, %60 ], [ %102, %101 ], [ %104, %103 ], [ %.pn132.pn.pn.pn.pn, %392 ], [ %.pn105, %138 ], [ %.pn101.pn.pn, %115 ]
  call void @_ZN6ngraph7element4TypeD2Ev(ptr noundef nonnull align 4 dereferenceable(4) %2) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #8
  resume { ptr, i32 } %.pn132.pn.pn.pn.pn.pn.pn.pn.pn

394:                                              ; preds = %286, %217, %170, %59
  unreachable
}

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

declare noundef zeroext i1 @_ZN6ngraph7element4Type5mergeERS1_RKS1_S4_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) 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: mustprogress uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #1 align 2

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

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 #1 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 #1 align 2

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

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 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: mustprogress uwtable
declare dso_local { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

declare noundef zeroext i1 @_ZNK6ngraph9Dimension11same_schemeERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3

declare void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) unnamed_addr #3

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA23_cJRmRA29_KcRKNS_12PartialShapeERA15_S3_S8_RA3_S3_EEERSoSD_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(23), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(29), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(15), ptr noundef nonnull align 8 dereferenceable(32), 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

declare noundef zeroext i1 @_ZNK6ngraph9Dimension10compatibleERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA19_cJRmRA18_KcS2_RA50_S3_RKNS_12PartialShapeERA15_S3_SA_RA25_S3_S2_RA3_S3_EEERSoSH_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(19), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(50), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(15), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(25), 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 @_ZNSaIN6ngraph9DimensionEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

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

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #6

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

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

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

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

declare void @_ZN6ngraph12PartialShape7dynamicENS_9DimensionE(ptr dead_on_unwind writable sret(%"class.ngraph::PartialShape") align 8, i64, i64) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv() local_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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress 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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { 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 #8 = { nounwind }
attributes #9 = { 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, !7, i64 0}
!6 = !{!"_ZTSN6ngraph12CheckLocInfoE", !7, i64 0, !10, i64 8, !7, i64 16}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!6, !10, i64 8}
!12 = !{!6, !7, i64 16}
!13 = !{!14, !67, i64 688}
!14 = !{!"_ZTSN6ngraph2op2v03DotE", !15, i64 0, !23, i64 680, !67, i64 688}
!15 = !{!"_ZTSN6ngraph2op2OpE", !16, i64 0}
!16 = !{!"_ZTSN6ngraph4NodeE", !17, i64 8, !21, i64 24, !21, i64 80, !27, i64 136, !31, i64 160, !35, i64 184, !23, i64 216, !35, i64 224, !35, i64 256, !37, i64 288, !39, i64 344, !47, i64 392, !52, i64 472, !57, i64 552, !10, i64 608, !59, i64 616, !62, i64 632}
!17 = !{!"_ZTSSt23enable_shared_from_thisIN6ngraph4NodeEE", !18, i64 0}
!18 = !{!"_ZTSSt8weak_ptrIN6ngraph4NodeEE", !19, i64 0}
!19 = !{!"_ZTSSt10__weak_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EE", !7, i64 0, !20, i64 8}
!20 = !{!"_ZTSSt12__weak_countILN9__gnu_cxx12_Lock_policyE2EE", !7, i64 0}
!21 = !{!"_ZTSSt13unordered_setIPN6ngraph10descriptor6TensorESt4hashIS3_ESt8equal_toIS3_ESaIS3_EE", !22, i64 0}
!22 = !{!"_ZTSSt10_HashtableIPN6ngraph10descriptor6TensorES3_SaIS3_ENSt8__detail9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb1ELb1EEEE", !7, i64 0, !23, i64 8, !24, i64 16, !23, i64 24, !25, i64 32, !7, i64 48}
!23 = !{!"long", !8, i64 0}
!24 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !7, i64 0}
!25 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !26, i64 0, !23, i64 8}
!26 = !{!"float", !8, i64 0}
!27 = !{!"_ZTSSt6vectorIPN6ngraph4NodeESaIS2_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIPN6ngraph4NodeESaIS2_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIPN6ngraph4NodeESaIS2_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIPN6ngraph4NodeESaIS2_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!31 = !{!"_ZTSSt6vectorISt10shared_ptrIN6ngraph4NodeEESaIS3_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN6ngraph4NodeEESaIS3_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6ngraph4NodeEESaIS3_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6ngraph4NodeEESaIS3_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!35 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !36, i64 0, !23, i64 8, !8, i64 16}
!36 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!37 = !{!"_ZTSSt13unordered_setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4hashIS5_ESt8equal_toIS5_ESaIS5_EE", !38, i64 0}
!38 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_ENSt8__detail9_IdentityESt8equal_toIS5_ESt4hashIS5_ENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb1ELb1ELb1EEEE", !7, i64 0, !23, i64 8, !24, i64 16, !23, i64 24, !25, i64 32, !7, i64 48}
!39 = !{!"_ZTSSt3setISt10shared_ptrIN6ngraph4NodeEESt4lessIS3_ESaIS3_EE", !40, i64 0}
!40 = !{!"_ZTSSt8_Rb_treeISt10shared_ptrIN6ngraph4NodeEES3_St9_IdentityIS3_ESt4lessIS3_ESaIS3_EE", !41, i64 0}
!41 = !{!"_ZTSNSt8_Rb_treeISt10shared_ptrIN6ngraph4NodeEES3_St9_IdentityIS3_ESt4lessIS3_ESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !42, i64 0, !44, i64 8}
!42 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt10shared_ptrIN6ngraph4NodeEEEE", !43, i64 0}
!43 = !{!"_ZTSSt4lessISt10shared_ptrIN6ngraph4NodeEEE"}
!44 = !{!"_ZTSSt15_Rb_tree_header", !45, i64 0, !23, i64 32}
!45 = !{!"_ZTSSt18_Rb_tree_node_base", !46, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!46 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!47 = !{!"_ZTSSt5dequeIN6ngraph10descriptor5InputESaIS2_EE", !48, i64 0}
!48 = !{!"_ZTSSt11_Deque_baseIN6ngraph10descriptor5InputESaIS2_EE", !49, i64 0}
!49 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor5InputESaIS2_EE11_Deque_implE", !50, i64 0}
!50 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor5InputESaIS2_EE16_Deque_impl_dataE", !7, i64 0, !23, i64 8, !51, i64 16, !51, i64 48}
!51 = !{!"_ZTSSt15_Deque_iteratorIN6ngraph10descriptor5InputERS2_PS2_E", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!52 = !{!"_ZTSSt5dequeIN6ngraph10descriptor6OutputESaIS2_EE", !53, i64 0}
!53 = !{!"_ZTSSt11_Deque_baseIN6ngraph10descriptor6OutputESaIS2_EE", !54, i64 0}
!54 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor6OutputESaIS2_EE11_Deque_implE", !55, i64 0}
!55 = !{!"_ZTSNSt11_Deque_baseIN6ngraph10descriptor6OutputESaIS2_EE16_Deque_impl_dataE", !7, i64 0, !23, i64 8, !56, i64 16, !56, i64 48}
!56 = !{!"_ZTSSt15_Deque_iteratorIN6ngraph10descriptor6OutputERS2_PS2_E", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!57 = !{!"_ZTSSt13unordered_mapIPN6ngraph4NodeENS0_8autodiff8AdjointsESt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_S4_EEE", !58, i64 0}
!58 = !{!"_ZTSSt10_HashtableIPN6ngraph4NodeESt4pairIKS2_NS0_8autodiff8AdjointsEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS2_ESt4hashIS2_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb1EEEE", !7, i64 0, !23, i64 8, !24, i64 16, !23, i64 24, !25, i64 32, !7, i64 48}
!59 = !{!"_ZTSSt10shared_ptrIN6ngraph2op4util13OpAnnotationsEE", !60, i64 0}
!60 = !{!"_ZTSSt12__shared_ptrIN6ngraph2op4util13OpAnnotationsELN9__gnu_cxx12_Lock_policyE2EE", !7, i64 0, !61, i64 8}
!61 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !7, i64 0}
!62 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIN6ngraph7VariantEESt4lessIS5_ESaISt4pairIKS5_S9_EEE", !63, i64 0}
!63 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN6ngraph7VariantEEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE", !64, i64 0}
!64 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN6ngraph7VariantEEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE13_Rb_tree_implISG_Lb1EEE", !65, i64 0, !44, i64 8}
!65 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !66, i64 0}
!66 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!67 = !{!"bool", !8, i64 0}
!68 = !{i8 0, i8 2}
!69 = !{}
!70 = !{!14, !23, i64 680}
!71 = !{!23, !23, i64 0}
!72 = distinct !{!72, !73}
!73 = !{!"llvm.loop.mustprogress"}
!74 = !{i64 0, i64 8, !71, i64 8, i64 8, !71}
!75 = distinct !{!75, !73}
!76 = distinct !{!76, !73}


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