; LLVM IR from NervanaSystems/ngraph :: src/ngraph/op/layer_norm.ll (ZN6ngraph2op2v09LayerNorm28pre_validate_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.std::vector.77" = type { %"struct.std::_Vector_base.78" }
%"struct.std::_Vector_base.78" = type { %"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl" }
%"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl" = type { %"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.ngraph::PartialShape" = type { i8, %"class.std::vector.77" }
%"class.ngraph::op::v0::LayerNorm" = type { %"class.ngraph::op::util::FusedOp", i8, i8, i64, double }
%"class.ngraph::op::util::FusedOp" = type { %"class.ngraph::op::Op" }
%"class.ngraph::op::Op" = type { %"class.ngraph::Node" }
%"class.ngraph::Node" = type { ptr, %"class.std::enable_shared_from_this", %"class.std::unordered_set", %"class.std::unordered_set", %"class.std::vector", %"class.std::vector.5", %"class.std::__cxx11::basic_string", i64, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::unordered_set.13", %"class.std::set", %"class.std::deque", %"class.std::deque.39", %"class.std::unordered_map", i32, %"class.std::shared_ptr", %"class.std::map" }
%"class.std::enable_shared_from_this" = type { %"class.std::weak_ptr" }
%"class.std::weak_ptr" = type { %"class.std::__weak_ptr" }
%"class.std::__weak_ptr" = type { ptr, %"class.std::__weak_count" }
%"class.std::__weak_count" = type { ptr }
%"class.std::unordered_set" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<ngraph::Node *, std::allocator<ngraph::Node *>>::_Vector_impl" }
%"struct.std::_Vector_base<ngraph::Node *, std::allocator<ngraph::Node *>>::_Vector_impl" = type { %"struct.std::_Vector_base<ngraph::Node *, std::allocator<ngraph::Node *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ngraph::Node *, std::allocator<ngraph::Node *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = type { %"struct.std::_Vector_base<std::shared_ptr<ngraph::Node>, std::allocator<std::shared_ptr<ngraph::Node>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<ngraph::Node>, std::allocator<std::shared_ptr<ngraph::Node>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<ngraph::Node>, std::allocator<std::shared_ptr<ngraph::Node>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<ngraph::Node>, std::allocator<std::shared_ptr<ngraph::Node>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::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.4 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [64 x i8], align 1
@_ZTIN6ngraph21NodeValidationFailureE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.8 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [67 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

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

declare ptr @__cxa_allocate_exception(i64)

declare void @__cxa_free_exception(ptr)

declare void @__cxa_throw(ptr, ptr, ptr)

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ngraph2op2v09LayerNorm28pre_validate_and_infer_typesEv(ptr noundef nonnull align 8 dereferenceable(704) %0) unnamed_addr #2 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 %"class.ngraph::Dimension", align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %15 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca i1, align 1
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca %"class.ngraph::Dimension", align 8
  %21 = alloca %"class.ngraph::Dimension", align 8
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %25 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca i1, align 1
  %28 = alloca %"class.std::vector.77", align 8
  %29 = alloca i64, align 8
  %30 = alloca %"class.ngraph::PartialShape", align 8
  %31 = alloca %"class.ngraph::PartialShape", align 8
  %32 = alloca %"class.ngraph::Dimension", align 8
  %33 = alloca %"class.ngraph::PartialShape", align 8
  %34 = alloca %"class.ngraph::Dimension", align 8
  %35 = alloca %"class.ngraph::PartialShape", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %36 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #8
  %37 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph4Node22get_input_element_typeEm(ptr noundef nonnull align 8 dereferenceable(680) %36, i64 noundef 0)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %3, ptr align 4 %37, i64 4, i1 false), !tbaa.struct !9
  br label %38

38:                                               ; preds = %1
  %39 = invoke noundef zeroext i1 @_ZNK6ngraph7element4Type10is_dynamicEv(ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %40 unwind label %55

40:                                               ; preds = %38
  br i1 %39, label %81, label %41

41:                                               ; preds = %40
  %42 = invoke noundef zeroext i1 @_ZNK6ngraph7element4Type7is_realEv(ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %43 unwind label %55

43:                                               ; preds = %41
  br i1 %42, label %81, label %44

44:                                               ; preds = %43
  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 %45 unwind label %59

45:                                               ; preds = %44
  %46 = getelementptr inbounds i8, ptr %6, i64 16
  %47 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA67_cJRNS_7element4TypeERA3_KcEEERSoS8_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 1 dereferenceable(67) @.str.4, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 1 dereferenceable(3) @.str.5)
          to label %48 unwind label %63

48:                                               ; preds = %45
  store i1 true, ptr %9, align 1
  %49 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %7) #8
  %50 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %7, i32 0, i32 0
  store ptr @.str.6, ptr %50, align 8, !tbaa !12
  %51 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %7, i32 0, i32 1
  store i32 181, ptr %51, align 8, !tbaa !15
  %52 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %7, i32 0, i32 2
  store ptr @.str.7, ptr %52, align 8, !tbaa !16
  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 %53 unwind label %67

53:                                               ; preds = %48
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef %36, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %54 unwind label %71

54:                                               ; preds = %53
  store i1 false, ptr %9, align 1
  invoke void @__cxa_throw(ptr %49, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %392 unwind label %71

55:                                               ; preds = %41, %38
  %56 = landingpad { ptr, i32 }
          cleanup
  %57 = extractvalue { ptr, i32 } %56, 0
  store ptr %57, ptr %4, align 8
  %58 = extractvalue { ptr, i32 } %56, 1
  store i32 %58, ptr %5, align 4
  br label %386

59:                                               ; preds = %44
  %60 = landingpad { ptr, i32 }
          cleanup
  %61 = extractvalue { ptr, i32 } %60, 0
  store ptr %61, ptr %4, align 8
  %62 = extractvalue { ptr, i32 } %60, 1
  store i32 %62, ptr %5, align 4
  br label %80

63:                                               ; preds = %45
  %64 = landingpad { ptr, i32 }
          cleanup
  %65 = extractvalue { ptr, i32 } %64, 0
  store ptr %65, ptr %4, align 8
  %66 = extractvalue { ptr, i32 } %64, 1
  store i32 %66, ptr %5, align 4
  br label %79

67:                                               ; preds = %48
  %68 = landingpad { ptr, i32 }
          cleanup
  %69 = extractvalue { ptr, i32 } %68, 0
  store ptr %69, ptr %4, align 8
  %70 = extractvalue { ptr, i32 } %68, 1
  store i32 %70, ptr %5, align 4
  br label %75

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

75:                                               ; preds = %71, %67
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #8
  %76 = load i1, ptr %9, align 1
  br i1 %76, label %77, label %78

77:                                               ; preds = %75
  call void @__cxa_free_exception(ptr %49) #8
  br label %78

78:                                               ; preds = %77, %75
  br label %79

79:                                               ; preds = %78, %63
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %6) #8
  br label %80

80:                                               ; preds = %79, %59
  call void @llvm.lifetime.end.p0(i64 392, ptr %6) #8
  br label %386

81:                                               ; preds = %43, %40
  br label %82

82:                                               ; preds = %81
  br label %83

83:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  %84 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6ngraph4Node23get_input_partial_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %36, i64 noundef 0)
          to label %85 unwind label %130

85:                                               ; preds = %83
  store ptr %84, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #8
  %86 = load ptr, ptr %10, align 8, !tbaa !5
  %87 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %88 unwind label %134

88:                                               ; preds = %85
  %89 = getelementptr inbounds %"class.ngraph::Dimension", ptr %11, i32 0, i32 0
  %90 = getelementptr inbounds { i64, i64 }, ptr %89, i32 0, i32 0
  %91 = extractvalue { i64, i64 } %87, 0
  store i64 %91, ptr %90, align 8
  %92 = getelementptr inbounds { i64, i64 }, ptr %89, i32 0, i32 1
  %93 = extractvalue { i64, i64 } %87, 1
  store i64 %93, ptr %92, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  store i64 -1, ptr %12, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  store i64 -1, ptr %13, align 8, !tbaa !17
  %94 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %95 unwind label %138

95:                                               ; preds = %88
  br i1 %94, label %96, label %282

96:                                               ; preds = %95
  %97 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %98 unwind label %138

98:                                               ; preds = %96
  store i64 %97, ptr %12, align 8, !tbaa !17
  %99 = getelementptr inbounds %"class.ngraph::op::v0::LayerNorm", ptr %36, i32 0, i32 3
  %100 = load i64, ptr %99, align 8, !tbaa !19
  %101 = icmp sge i64 %100, 0
  br i1 %101, label %102, label %105

102:                                              ; preds = %98
  %103 = getelementptr inbounds %"class.ngraph::op::v0::LayerNorm", ptr %36, i32 0, i32 3
  %104 = load i64, ptr %103, align 8, !tbaa !19
  br label %110

105:                                              ; preds = %98
  %106 = load i64, ptr %12, align 8, !tbaa !17
  %107 = getelementptr inbounds %"class.ngraph::op::v0::LayerNorm", ptr %36, i32 0, i32 3
  %108 = load i64, ptr %107, align 8, !tbaa !19
  %109 = add nsw i64 %106, %108
  br label %110

110:                                              ; preds = %105, %102
  %111 = phi i64 [ %104, %102 ], [ %109, %105 ]
  store i64 %111, ptr %13, align 8, !tbaa !17
  br label %112

112:                                              ; preds = %110
  %113 = load i64, ptr %13, align 8, !tbaa !17
  %114 = icmp sge i64 %113, 0
  br i1 %114, label %115, label %119

115:                                              ; preds = %112
  %116 = load i64, ptr %13, align 8, !tbaa !17
  %117 = load i64, ptr %12, align 8, !tbaa !17
  %118 = icmp slt i64 %116, %117
  br i1 %118, label %164, label %119

119:                                              ; preds = %115, %112
  call void @llvm.lifetime.start.p0(i64 392, ptr %14) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %14)
          to label %120 unwind label %142

120:                                              ; preds = %119
  %121 = getelementptr inbounds i8, ptr %14, i64 16
  %122 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA32_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef nonnull align 1 dereferenceable(32) @.str.8)
          to label %123 unwind label %146

123:                                              ; preds = %120
  store i1 true, ptr %17, align 1
  %124 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #8
  %125 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %15, i32 0, i32 0
  store ptr @.str.6, ptr %125, align 8, !tbaa !12
  %126 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %15, i32 0, i32 1
  store i32 192, ptr %126, align 8, !tbaa !15
  %127 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %15, i32 0, i32 2
  store ptr @.str.9, ptr %127, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(128) %14)
          to label %128 unwind label %150

128:                                              ; preds = %123
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %124, ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef %36, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %129 unwind label %154

129:                                              ; preds = %128
  store i1 false, ptr %17, align 1
  invoke void @__cxa_throw(ptr %124, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %392 unwind label %154

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

134:                                              ; preds = %85
  %135 = landingpad { ptr, i32 }
          cleanup
  %136 = extractvalue { ptr, i32 } %135, 0
  store ptr %136, ptr %4, align 8
  %137 = extractvalue { ptr, i32 } %135, 1
  store i32 %137, ptr %5, align 4
  br label %384

138:                                              ; preds = %286, %96, %88
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %4, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %5, align 4
  br label %383

142:                                              ; preds = %119
  %143 = landingpad { ptr, i32 }
          cleanup
  %144 = extractvalue { ptr, i32 } %143, 0
  store ptr %144, ptr %4, align 8
  %145 = extractvalue { ptr, i32 } %143, 1
  store i32 %145, ptr %5, align 4
  br label %163

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

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

154:                                              ; preds = %129, %128
  %155 = landingpad { ptr, i32 }
          cleanup
  %156 = extractvalue { ptr, i32 } %155, 0
  store ptr %156, ptr %4, align 8
  %157 = extractvalue { ptr, i32 } %155, 1
  store i32 %157, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  br label %158

158:                                              ; preds = %154, %150
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #8
  %159 = load i1, ptr %17, align 1
  br i1 %159, label %160, label %161

160:                                              ; preds = %158
  call void @__cxa_free_exception(ptr %124) #8
  br label %161

161:                                              ; preds = %160, %158
  br label %162

162:                                              ; preds = %161, %146
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %14) #8
  br label %163

163:                                              ; preds = %162, %142
  call void @llvm.lifetime.end.p0(i64 392, ptr %14) #8
  br label %383

164:                                              ; preds = %115
  br label %165

165:                                              ; preds = %164
  br label %166

166:                                              ; preds = %165
  %167 = getelementptr inbounds %"class.ngraph::op::v0::LayerNorm", ptr %36, i32 0, i32 2
  %168 = load i8, ptr %167, align 1, !tbaa !75, !range !76, !noundef !77
  %169 = trunc i8 %168 to i1
  br i1 %169, label %170, label %281

170:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %171 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6ngraph4Node23get_input_partial_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %36, i64 noundef 1)
          to label %172 unwind label %225

172:                                              ; preds = %170
  store ptr %171, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %173 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6ngraph4Node23get_input_partial_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %36, i64 noundef 2)
          to label %174 unwind label %229

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

177:                                              ; preds = %174
  %178 = getelementptr inbounds %"class.ngraph::Dimension", ptr %20, i32 0, i32 0
  %179 = getelementptr inbounds { i64, i64 }, ptr %178, i32 0, i32 0
  %180 = extractvalue { i64, i64 } %176, 0
  store i64 %180, ptr %179, align 8
  %181 = getelementptr inbounds { i64, i64 }, ptr %178, i32 0, i32 1
  %182 = extractvalue { i64, i64 } %176, 1
  store i64 %182, ptr %181, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #8
  %183 = load ptr, ptr %19, align 8, !tbaa !5
  %184 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %183)
          to label %185 unwind label %237

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

192:                                              ; preds = %185
  br i1 %191, label %193, label %276

193:                                              ; preds = %192
  %194 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %21)
          to label %195 unwind label %237

195:                                              ; preds = %193
  br i1 %194, label %196, label %276

196:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %197 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %198 unwind label %241

198:                                              ; preds = %196
  store i64 %197, ptr %22, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %199 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %21)
          to label %200 unwind label %245

200:                                              ; preds = %198
  store i64 %199, ptr %23, align 8, !tbaa !17
  br label %201

201:                                              ; preds = %200
  %202 = load i64, ptr %22, align 8, !tbaa !17
  %203 = load i64, ptr %23, align 8, !tbaa !17
  %204 = icmp eq i64 %202, %203
  br i1 %204, label %205, label %214

205:                                              ; preds = %201
  %206 = load i64, ptr %22, align 8, !tbaa !17
  %207 = load i64, ptr %12, align 8, !tbaa !17
  %208 = load i64, ptr %13, align 8, !tbaa !17
  %209 = sub nsw i64 %207, %208
  %210 = icmp eq i64 %206, %209
  br i1 %210, label %271, label %211

211:                                              ; preds = %205
  %212 = load i64, ptr %22, align 8, !tbaa !17
  %213 = icmp eq i64 %212, 1
  br i1 %213, label %271, label %214

214:                                              ; preds = %211, %201
  call void @llvm.lifetime.start.p0(i64 392, ptr %24) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %24)
          to label %215 unwind label %249

215:                                              ; preds = %214
  %216 = getelementptr inbounds i8, ptr %24, i64 16
  %217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA36_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %216, ptr noundef nonnull align 1 dereferenceable(36) @.str.10)
          to label %218 unwind label %253

218:                                              ; preds = %215
  store i1 true, ptr %27, align 1
  %219 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %25) #8
  %220 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %25, i32 0, i32 0
  store ptr @.str.6, ptr %220, align 8, !tbaa !12
  %221 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %25, i32 0, i32 1
  store i32 207, ptr %221, align 8, !tbaa !15
  %222 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %25, i32 0, i32 2
  store ptr @.str.11, ptr %222, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(128) %24)
          to label %223 unwind label %257

223:                                              ; preds = %218
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %219, ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef %36, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %224 unwind label %261

224:                                              ; preds = %223
  store i1 false, ptr %27, align 1
  invoke void @__cxa_throw(ptr %219, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %392 unwind label %261

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

229:                                              ; preds = %172
  %230 = landingpad { ptr, i32 }
          cleanup
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %4, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %5, align 4
  br label %279

233:                                              ; preds = %174
  %234 = landingpad { ptr, i32 }
          cleanup
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %4, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %5, align 4
  br label %278

237:                                              ; preds = %193, %185, %177
  %238 = landingpad { ptr, i32 }
          cleanup
  %239 = extractvalue { ptr, i32 } %238, 0
  store ptr %239, ptr %4, align 8
  %240 = extractvalue { ptr, i32 } %238, 1
  store i32 %240, ptr %5, align 4
  br label %277

241:                                              ; preds = %196
  %242 = landingpad { ptr, i32 }
          cleanup
  %243 = extractvalue { ptr, i32 } %242, 0
  store ptr %243, ptr %4, align 8
  %244 = extractvalue { ptr, i32 } %242, 1
  store i32 %244, ptr %5, align 4
  br label %275

245:                                              ; preds = %198
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %4, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %5, align 4
  br label %274

249:                                              ; preds = %214
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %4, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %5, align 4
  br label %270

253:                                              ; preds = %215
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %4, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %5, align 4
  br label %269

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

261:                                              ; preds = %224, %223
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %4, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %265

265:                                              ; preds = %261, %257
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #8
  %266 = load i1, ptr %27, align 1
  br i1 %266, label %267, label %268

267:                                              ; preds = %265
  call void @__cxa_free_exception(ptr %219) #8
  br label %268

268:                                              ; preds = %267, %265
  br label %269

269:                                              ; preds = %268, %253
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %24) #8
  br label %270

270:                                              ; preds = %269, %249
  call void @llvm.lifetime.end.p0(i64 392, ptr %24) #8
  br label %274

271:                                              ; preds = %211, %205
  br label %272

272:                                              ; preds = %271
  br label %273

273:                                              ; preds = %272
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %276

274:                                              ; preds = %270, %245
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  br label %275

275:                                              ; preds = %274, %241
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %277

276:                                              ; preds = %273, %195, %192
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  br label %281

277:                                              ; preds = %275, %237
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #8
  br label %278

278:                                              ; preds = %277, %233
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #8
  br label %279

279:                                              ; preds = %278, %229
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  br label %280

280:                                              ; preds = %279, %225
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  br label %383

281:                                              ; preds = %276, %166
  br label %282

282:                                              ; preds = %281, %95
  %283 = getelementptr inbounds %"class.ngraph::op::v0::LayerNorm", ptr %36, i32 0, i32 1
  %284 = load i8, ptr %283, align 8, !tbaa !78, !range !76, !noundef !77
  %285 = trunc i8 %284 to i1
  br i1 %285, label %286, label %370

286:                                              ; preds = %282
  invoke void @_ZN6ngraph4Node15set_output_sizeEm(ptr noundef nonnull align 8 dereferenceable(680) %36, i64 noundef 3)
          to label %287 unwind label %138

287:                                              ; preds = %286
  %288 = load i64, ptr %12, align 8, !tbaa !17
  %289 = icmp sgt i64 %288, 0
  br i1 %289, label %290, label %324

290:                                              ; preds = %287
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #8
  call void @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  store i64 0, ptr %29, align 8, !tbaa !17
  br label %291

291:                                              ; preds = %303, %290
  %292 = load i64, ptr %29, align 8, !tbaa !17
  %293 = load i64, ptr %13, align 8, !tbaa !17
  %294 = icmp slt i64 %292, %293
  br i1 %294, label %296, label %295

295:                                              ; preds = %291
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  br label %310

296:                                              ; preds = %291
  %297 = load ptr, ptr %10, align 8, !tbaa !5
  %298 = load i64, ptr %29, align 8, !tbaa !17
  %299 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %297, i64 noundef %298)
          to label %300 unwind label %306

300:                                              ; preds = %296
  %301 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EE12emplace_backIJRKS1_EEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(16) %299)
          to label %302 unwind label %306

302:                                              ; preds = %300
  br label %303

303:                                              ; preds = %302
  %304 = load i64, ptr %29, align 8, !tbaa !17
  %305 = add nsw i64 %304, 1
  store i64 %305, ptr %29, align 8, !tbaa !17
  br label %291, !llvm.loop !79

306:                                              ; preds = %300, %296
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %4, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  br label %323

310:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #8
  invoke void @_ZN6ngraph12PartialShapeC2ERKSt6vectorINS_9DimensionESaIS2_EE(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(24) %28)
          to label %311 unwind label %314

311:                                              ; preds = %310
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %36, i64 noundef 1, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %312 unwind label %318

312:                                              ; preds = %311
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %36, i64 noundef 2, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %313 unwind label %318

313:                                              ; preds = %312
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  call void @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #8
  br label %369

314:                                              ; preds = %310
  %315 = landingpad { ptr, i32 }
          cleanup
  %316 = extractvalue { ptr, i32 } %315, 0
  store ptr %316, ptr %4, align 8
  %317 = extractvalue { ptr, i32 } %315, 1
  store i32 %317, ptr %5, align 4
  br label %322

318:                                              ; preds = %312, %311
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %4, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %5, align 4
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %322

322:                                              ; preds = %318, %314
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  br label %323

323:                                              ; preds = %322, %306
  call void @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #8
  br label %383

324:                                              ; preds = %287
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #8
  %325 = invoke { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
          to label %326 unwind label %351

326:                                              ; preds = %324
  %327 = getelementptr inbounds %"class.ngraph::Dimension", ptr %32, i32 0, i32 0
  %328 = getelementptr inbounds { i64, i64 }, ptr %327, i32 0, i32 0
  %329 = extractvalue { i64, i64 } %325, 0
  store i64 %329, ptr %328, align 8
  %330 = getelementptr inbounds { i64, i64 }, ptr %327, i32 0, i32 1
  %331 = extractvalue { i64, i64 } %325, 1
  store i64 %331, ptr %330, align 8
  %332 = getelementptr inbounds { i64, i64 }, ptr %32, i32 0, i32 0
  %333 = load i64, ptr %332, align 8
  %334 = getelementptr inbounds { i64, i64 }, ptr %32, i32 0, i32 1
  %335 = load i64, ptr %334, align 8
  invoke void @_ZN6ngraph12PartialShape7dynamicENS_9DimensionE(ptr dead_on_unwind writable sret(%"class.ngraph::PartialShape") align 8 %31, i64 %333, i64 %335)
          to label %336 unwind label %351

336:                                              ; preds = %326
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %36, i64 noundef 1, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %337 unwind label %355

337:                                              ; preds = %336
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #8
  %338 = invoke { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
          to label %339 unwind label %360

339:                                              ; preds = %337
  %340 = getelementptr inbounds %"class.ngraph::Dimension", ptr %34, i32 0, i32 0
  %341 = getelementptr inbounds { i64, i64 }, ptr %340, i32 0, i32 0
  %342 = extractvalue { i64, i64 } %338, 0
  store i64 %342, ptr %341, align 8
  %343 = getelementptr inbounds { i64, i64 }, ptr %340, i32 0, i32 1
  %344 = extractvalue { i64, i64 } %338, 1
  store i64 %344, ptr %343, align 8
  %345 = getelementptr inbounds { i64, i64 }, ptr %34, i32 0, i32 0
  %346 = load i64, ptr %345, align 8
  %347 = getelementptr inbounds { i64, i64 }, ptr %34, i32 0, i32 1
  %348 = load i64, ptr %347, align 8
  invoke void @_ZN6ngraph12PartialShape7dynamicENS_9DimensionE(ptr dead_on_unwind writable sret(%"class.ngraph::PartialShape") align 8 %33, i64 %346, i64 %348)
          to label %349 unwind label %360

349:                                              ; preds = %339
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %36, i64 noundef 2, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %350 unwind label %364

350:                                              ; preds = %349
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  br label %369

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

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

359:                                              ; preds = %355, %351
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  br label %383

360:                                              ; preds = %339, %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
  br label %368

364:                                              ; preds = %349
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %4, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %5, align 4
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  br label %368

368:                                              ; preds = %364, %360
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  br label %383

369:                                              ; preds = %350, %313
  br label %370

370:                                              ; preds = %369, %282
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #8
  %371 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN6ngraph12PartialShapeC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(32) %371)
          to label %372 unwind label %374

372:                                              ; preds = %370
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %36, i64 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %373 unwind label %378

373:                                              ; preds = %372
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 16, 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

374:                                              ; preds = %370
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %4, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %5, align 4
  br label %382

378:                                              ; preds = %372
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %4, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %5, align 4
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  br label %382

382:                                              ; preds = %378, %374
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  br label %383

383:                                              ; preds = %382, %368, %359, %323, %280, %163, %138
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  br label %384

384:                                              ; preds = %383, %134
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #8
  br label %385

385:                                              ; preds = %384, %130
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  br label %386

386:                                              ; preds = %385, %80, %55
  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 %387

387:                                              ; preds = %386
  %388 = load ptr, ptr %4, align 8
  %389 = load i32, ptr %5, align 4
  %390 = insertvalue { ptr, i32 } poison, ptr %388, 0
  %391 = insertvalue { ptr, i32 } %390, i32 %389, 1
  resume { ptr, i32 } %391

392:                                              ; preds = %224, %129, %54
  unreachable
}

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

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

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

declare noundef zeroext i1 @_ZNK6ngraph7element4Type7is_realEv(ptr noundef nonnull align 4 dereferenceable(4)) #1

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN6ngraph4Node15set_output_sizeEm(ptr noundef nonnull align 8 dereferenceable(680), i64 noundef) #1

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv() #6 align 2

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

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

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


; 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.std::vector.77" = type { %"struct.std::_Vector_base.78" }
%"struct.std::_Vector_base.78" = type { %"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl" }
%"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl" = type { %"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.ngraph::PartialShape" = type { i8, %"class.std::vector.77" }

@.str.4 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [64 x i8], align 1
@_ZTIN6ngraph21NodeValidationFailureE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.8 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [67 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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ngraph2op2v09LayerNorm28pre_validate_and_infer_typesEv(ptr noundef nonnull align 8 dereferenceable(704) %0) unnamed_addr #2 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.std::__cxx11::basic_stringstream", align 8
  %8 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.ngraph::Dimension", align 8
  %11 = alloca %"class.ngraph::Dimension", align 8
  %12 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %13 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::vector.77", align 8
  %16 = alloca %"class.ngraph::PartialShape", align 8
  %17 = alloca %"class.ngraph::PartialShape", align 8
  %18 = alloca %"class.ngraph::PartialShape", align 8
  %19 = alloca %"class.ngraph::PartialShape", align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #7
  %20 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph4Node22get_input_element_typeEm(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 0)
  %21 = load i32, ptr %20, align 4, !tbaa !5
  store i32 %21, ptr %2, align 4, !tbaa !5
  %22 = invoke noundef zeroext i1 @_ZNK6ngraph7element4Type10is_dynamicEv(ptr noundef nonnull align 4 dereferenceable(4) %2)
          to label %23 unwind label %38

23:                                               ; preds = %1
  br i1 %22, label %50, label %24

24:                                               ; preds = %23
  %25 = invoke noundef zeroext i1 @_ZNK6ngraph7element4Type7is_realEv(ptr noundef nonnull align 4 dereferenceable(4) %2)
          to label %26 unwind label %38

26:                                               ; preds = %24
  br i1 %25, label %50, label %27

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

28:                                               ; preds = %27
  %29 = getelementptr inbounds i8, ptr %3, i64 16
  %30 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA67_cJRNS_7element4TypeERA3_KcEEERSoS8_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 1 dereferenceable(67) @.str.4, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 1 dereferenceable(3) @.str.5)
          to label %31 unwind label %42

31:                                               ; preds = %28
  %32 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #7
  store ptr @.str.6, ptr %4, align 8, !tbaa !9
  %33 = getelementptr inbounds i8, ptr %4, i64 8
  store i32 181, ptr %33, align 8, !tbaa !13
  %34 = getelementptr inbounds i8, ptr %4, i64 16
  store ptr @.str.7, ptr %34, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #7
  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 %35 unwind label %.thread

35:                                               ; preds = %31
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %37 unwind label %.thread101

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

37:                                               ; preds = %35
  invoke void @__cxa_throw(ptr nonnull %32, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #8
          to label %223 unwind label %45

38:                                               ; preds = %24, %1
  %39 = landingpad { ptr, i32 }
          cleanup
  br label %222

40:                                               ; preds = %27
  %41 = landingpad { ptr, i32 }
          cleanup
  br label %49

42:                                               ; preds = %28
  %43 = landingpad { ptr, i32 }
          cleanup
  br label %48

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

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

47:                                               ; preds = %.thread101, %.thread
  %.pn100 = phi { ptr, i32 } [ %44, %.thread ], [ %36, %.thread101 ]
  call void @__cxa_free_exception(ptr %32) #7
  br label %48

48:                                               ; preds = %45, %47, %42
  %.pn.pn = phi { ptr, i32 } [ %.pn100, %47 ], [ %46, %45 ], [ %43, %42 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %3) #7
  br label %49

49:                                               ; preds = %48, %40
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %48 ], [ %41, %40 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %3) #7
  br label %222

50:                                               ; preds = %26, %23
  %51 = 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 %52 unwind label %81

52:                                               ; preds = %50
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #7
  %53 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %54 unwind label %83

54:                                               ; preds = %52
  %55 = extractvalue { i64, i64 } %53, 0
  store i64 %55, ptr %6, align 8
  %56 = getelementptr inbounds i8, ptr %6, i64 8
  %57 = extractvalue { i64, i64 } %53, 1
  store i64 %57, ptr %56, align 8
  %58 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %59 unwind label %85

59:                                               ; preds = %54
  br i1 %58, label %60, label %167

60:                                               ; preds = %59
  %61 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %62 unwind label %85

62:                                               ; preds = %60
  %63 = getelementptr inbounds i8, ptr %0, i64 688
  %64 = load i64, ptr %63, align 8, !tbaa !15
  %65 = icmp slt i64 %64, 0
  %66 = select i1 %65, i64 %61, i64 0
  %67 = add nsw i64 %66, %64
  %68 = icmp sgt i64 %67, -1
  %69 = icmp slt i64 %67, %61
  %or.cond97 = and i1 %68, %69
  br i1 %or.cond97, label %97, label %70

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

71:                                               ; preds = %70
  %72 = getelementptr inbounds i8, ptr %7, i64 16
  %73 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA32_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 1 dereferenceable(32) @.str.8)
          to label %74 unwind label %89

74:                                               ; preds = %71
  %75 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #7
  store ptr @.str.6, ptr %8, align 8, !tbaa !9
  %76 = getelementptr inbounds i8, ptr %8, i64 8
  store i32 192, ptr %76, align 8, !tbaa !13
  %77 = getelementptr inbounds i8, ptr %8, i64 16
  store ptr @.str.9, ptr %77, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(128) %7)
          to label %78 unwind label %.thread103

78:                                               ; preds = %74
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %75, ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %80 unwind label %.thread107

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

80:                                               ; preds = %78
  invoke void @__cxa_throw(ptr nonnull %75, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #8
          to label %223 unwind label %92

81:                                               ; preds = %50
  %82 = landingpad { ptr, i32 }
          cleanup
  br label %222

83:                                               ; preds = %52
  %84 = landingpad { ptr, i32 }
          cleanup
  br label %221

85:                                               ; preds = %171, %60, %54
  %86 = landingpad { ptr, i32 }
          cleanup
  br label %221

87:                                               ; preds = %70
  %88 = landingpad { ptr, i32 }
          cleanup
  br label %96

89:                                               ; preds = %71
  %90 = landingpad { ptr, i32 }
          cleanup
  br label %95

.thread103:                                       ; preds = %74
  %91 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #7
  br label %94

92:                                               ; preds = %80
  %93 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #7
  br label %95

94:                                               ; preds = %.thread107, %.thread103
  %.pn69106 = phi { ptr, i32 } [ %91, %.thread103 ], [ %79, %.thread107 ]
  call void @__cxa_free_exception(ptr %75) #7
  br label %95

95:                                               ; preds = %92, %94, %89
  %.pn69.pn = phi { ptr, i32 } [ %.pn69106, %94 ], [ %93, %92 ], [ %90, %89 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %7) #7
  br label %96

96:                                               ; preds = %95, %87
  %.pn69.pn.pn = phi { ptr, i32 } [ %.pn69.pn, %95 ], [ %88, %87 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %7) #7
  br label %221

97:                                               ; preds = %62
  %98 = getelementptr inbounds i8, ptr %0, i64 681
  %99 = load i8, ptr %98, align 1, !tbaa !72, !range !73, !noundef !74
  %100 = trunc nuw i8 %99 to i1
  br i1 %100, label %101, label %167

101:                                              ; preds = %97
  %102 = 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 %103 unwind label %142

103:                                              ; preds = %101
  %104 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6ngraph4Node23get_input_partial_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 2)
          to label %105 unwind label %144

105:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #7
  %106 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %107 unwind label %146

107:                                              ; preds = %105
  %108 = extractvalue { i64, i64 } %106, 0
  store i64 %108, ptr %10, align 8
  %109 = getelementptr inbounds i8, ptr %10, i64 8
  %110 = extractvalue { i64, i64 } %106, 1
  store i64 %110, ptr %109, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #7
  %111 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %104)
          to label %112 unwind label %148

112:                                              ; preds = %107
  %113 = extractvalue { i64, i64 } %111, 0
  store i64 %113, ptr %11, align 8
  %114 = getelementptr inbounds i8, ptr %11, i64 8
  %115 = extractvalue { i64, i64 } %111, 1
  store i64 %115, ptr %114, align 8
  %116 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %117 unwind label %148

117:                                              ; preds = %112
  br i1 %116, label %118, label %164

118:                                              ; preds = %117
  %119 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %120 unwind label %148

120:                                              ; preds = %118
  br i1 %119, label %121, label %164

121:                                              ; preds = %120
  %122 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %123 unwind label %150

123:                                              ; preds = %121
  %124 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %125 unwind label %152

125:                                              ; preds = %123
  %126 = icmp eq i64 %122, %124
  br i1 %126, label %127, label %131

127:                                              ; preds = %125
  %128 = sub nsw i64 %61, %67
  %129 = icmp eq i64 %122, %128
  %130 = icmp eq i64 %122, 1
  %or.cond = or i1 %129, %130
  br i1 %or.cond, label %164, label %131

131:                                              ; preds = %127, %125
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %12) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %12)
          to label %132 unwind label %154

132:                                              ; preds = %131
  %133 = getelementptr inbounds i8, ptr %12, i64 16
  %134 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA36_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %133, ptr noundef nonnull align 1 dereferenceable(36) @.str.10)
          to label %135 unwind label %156

135:                                              ; preds = %132
  %136 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #7
  store ptr @.str.6, ptr %13, align 8, !tbaa !9
  %137 = getelementptr inbounds i8, ptr %13, i64 8
  store i32 207, ptr %137, align 8, !tbaa !13
  %138 = getelementptr inbounds i8, ptr %13, i64 16
  store ptr @.str.11, ptr %138, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(128) %12)
          to label %139 unwind label %.thread109

139:                                              ; preds = %135
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %136, ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %141 unwind label %.thread113

.thread113:                                       ; preds = %139
  %140 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #7
  br label %161

141:                                              ; preds = %139
  invoke void @__cxa_throw(ptr nonnull %136, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #8
          to label %223 unwind label %159

142:                                              ; preds = %101
  %143 = landingpad { ptr, i32 }
          cleanup
  br label %221

144:                                              ; preds = %103
  %145 = landingpad { ptr, i32 }
          cleanup
  br label %221

146:                                              ; preds = %105
  %147 = landingpad { ptr, i32 }
          cleanup
  br label %166

148:                                              ; preds = %118, %112, %107
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %165

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

152:                                              ; preds = %123
  %153 = landingpad { ptr, i32 }
          cleanup
  br label %165

154:                                              ; preds = %131
  %155 = landingpad { ptr, i32 }
          cleanup
  br label %163

156:                                              ; preds = %132
  %157 = landingpad { ptr, i32 }
          cleanup
  br label %162

.thread109:                                       ; preds = %135
  %158 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #7
  br label %161

159:                                              ; preds = %141
  %160 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #7
  br label %162

161:                                              ; preds = %.thread113, %.thread109
  %.pn73112 = phi { ptr, i32 } [ %158, %.thread109 ], [ %140, %.thread113 ]
  call void @__cxa_free_exception(ptr %136) #7
  br label %162

162:                                              ; preds = %159, %161, %156
  %.pn73.pn = phi { ptr, i32 } [ %.pn73112, %161 ], [ %160, %159 ], [ %157, %156 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %12) #7
  br label %163

163:                                              ; preds = %162, %154
  %.pn73.pn.pn = phi { ptr, i32 } [ %.pn73.pn, %162 ], [ %155, %154 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %12) #7
  br label %165

164:                                              ; preds = %127, %120, %117
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #7
  br label %167

165:                                              ; preds = %150, %163, %152, %148
  %.pn73.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %149, %148 ], [ %151, %150 ], [ %.pn73.pn.pn, %163 ], [ %153, %152 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #7
  br label %166

166:                                              ; preds = %165, %146
  %.pn73.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn73.pn.pn.pn.pn.pn, %165 ], [ %147, %146 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #7
  br label %221

167:                                              ; preds = %97, %164, %59
  %.058 = phi i64 [ %67, %164 ], [ %67, %97 ], [ -1, %59 ]
  %.054 = phi i64 [ %61, %164 ], [ %61, %97 ], [ -1, %59 ]
  %168 = getelementptr inbounds i8, ptr %0, i64 680
  %169 = load i8, ptr %168, align 8, !tbaa !75, !range !73, !noundef !74
  %170 = trunc nuw i8 %169 to i1
  br i1 %170, label %171, label %213

171:                                              ; preds = %167
  invoke void @_ZN6ngraph4Node15set_output_sizeEm(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 3)
          to label %172 unwind label %85

172:                                              ; preds = %171
  %173 = icmp sgt i64 %.054, 0
  br i1 %173, label %174, label %192

174:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #7
  call void @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  %175 = icmp sgt i64 %.058, 0
  br i1 %175, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %179, %174
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  invoke void @_ZN6ngraph12PartialShapeC2ERKSt6vectorINS_9DimensionESaIS2_EE(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(24) %15)
          to label %183 unwind label %186

.lr.ph:                                           ; preds = %174, %179
  %.055115 = phi i64 [ %180, %179 ], [ 0, %174 ]
  %176 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %51, i64 noundef %.055115)
          to label %177 unwind label %181

177:                                              ; preds = %.lr.ph
  %178 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EE12emplace_backIJRKS1_EEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(16) %176)
          to label %179 unwind label %181

179:                                              ; preds = %177
  %180 = add nuw nsw i64 %.055115, 1
  %exitcond.not = icmp eq i64 %180, %.058
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !76

181:                                              ; preds = %177, %.lr.ph
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %191

183:                                              ; preds = %._crit_edge
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 1, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %184 unwind label %188

184:                                              ; preds = %183
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 2, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %185 unwind label %188

185:                                              ; preds = %184
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  call void @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #7
  br label %213

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

188:                                              ; preds = %184, %183
  %189 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %190

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

191:                                              ; preds = %190, %181
  %.pn91 = phi { ptr, i32 } [ %182, %181 ], [ %.pn87, %190 ]
  call void @_ZNSt6vectorIN6ngraph9DimensionESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #7
  br label %221

192:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  %193 = call { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
  %194 = extractvalue { i64, i64 } %193, 0
  %195 = extractvalue { i64, i64 } %193, 1
  invoke void @_ZN6ngraph12PartialShape7dynamicENS_9DimensionE(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::PartialShape") align 8 %17, i64 %194, i64 %195)
          to label %196 unwind label %203

196:                                              ; preds = %192
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 1, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %197 unwind label %205

197:                                              ; preds = %196
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  %198 = call { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
  %199 = extractvalue { i64, i64 } %198, 0
  %200 = extractvalue { i64, i64 } %198, 1
  invoke void @_ZN6ngraph12PartialShape7dynamicENS_9DimensionE(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::PartialShape") align 8 %18, i64 %199, i64 %200)
          to label %201 unwind label %208

201:                                              ; preds = %197
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 2, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %202 unwind label %210

202:                                              ; preds = %201
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  br label %213

203:                                              ; preds = %192
  %204 = landingpad { ptr, i32 }
          cleanup
  br label %207

205:                                              ; preds = %196
  %206 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %207

207:                                              ; preds = %205, %203
  %.pn83 = phi { ptr, i32 } [ %206, %205 ], [ %204, %203 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  br label %221

208:                                              ; preds = %197
  %209 = landingpad { ptr, i32 }
          cleanup
  br label %212

210:                                              ; preds = %201
  %211 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %212

212:                                              ; preds = %210, %208
  %.pn85 = phi { ptr, i32 } [ %211, %210 ], [ %209, %208 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  br label %221

213:                                              ; preds = %185, %202, %167
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  invoke void @_ZN6ngraph12PartialShapeC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %214 unwind label %216

214:                                              ; preds = %213
  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) %19)
          to label %215 unwind label %218

215:                                              ; preds = %214
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #7
  call void @_ZN6ngraph7element4TypeD2Ev(ptr noundef nonnull align 4 dereferenceable(4) %2) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #7
  ret void

216:                                              ; preds = %213
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %220

218:                                              ; preds = %214
  %219 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %220

220:                                              ; preds = %218, %216
  %.pn89 = phi { ptr, i32 } [ %219, %218 ], [ %217, %216 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %221

221:                                              ; preds = %85, %96, %191, %207, %212, %220, %144, %166, %142, %83
  %.pn91.pn.pn = phi { ptr, i32 } [ %84, %83 ], [ %.pn91, %191 ], [ %.pn89, %220 ], [ %.pn85, %212 ], [ %.pn83, %207 ], [ %86, %85 ], [ %.pn69.pn.pn, %96 ], [ %143, %142 ], [ %.pn73.pn.pn.pn.pn.pn.pn, %166 ], [ %145, %144 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #7
  br label %222

222:                                              ; preds = %81, %221, %49, %38
  %.pn91.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %49 ], [ %39, %38 ], [ %.pn91.pn.pn, %221 ], [ %82, %81 ]
  call void @_ZN6ngraph7element4TypeD2Ev(ptr noundef nonnull align 4 dereferenceable(4) %2) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #7
  resume { ptr, i32 } %.pn91.pn.pn.pn.pn

223:                                              ; preds = %141, %80, %37
  unreachable
}

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

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

declare noundef zeroext i1 @_ZNK6ngraph7element4Type7is_realEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN6ngraph4Node15set_output_sizeEm(ptr noundef nonnull align 8 dereferenceable(680), i64 noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv() local_unnamed_addr #5 align 2

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

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

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

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

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


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass