; LLVM IR from NervanaSystems/ngraph :: src/ngraph/runtime/cpu/op (batch_norm_relu)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::vector.69" = type { %"struct.std::_Vector_base.70" }
%"struct.std::_Vector_base.70" = type { %"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl" }
%"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.ngraph::Output" = type { %"class.std::shared_ptr.74", i64 }
%"class.std::shared_ptr.74" = type { %"class.std::__shared_ptr.75" }
%"class.std::__shared_ptr.75" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::allocator.71" = type { i8 }
%"class.ngraph::Shape" = type { %"class.std::vector.77" }
%"class.std::vector.77" = type { %"struct.std::_Vector_base.78" }
%"struct.std::_Vector_base.78" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list.83" = type { ptr, i64 }
%"class.ngraph::element::Type" = type { i32 }
%"class.ngraph::Input" = type { ptr, i64 }
%"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::allocator.10" = type { i8 }
%"class.ngraph::PartialShape" = type { i8, %"class.std::vector.84" }
%"class.std::vector.84" = type { %"struct.std::_Vector_base.85" }
%"struct.std::_Vector_base.85" = 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::op::BatchNormTrainingRelu" = type { %"class.ngraph::op::Op", double }
%"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::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" }

@_ZTVN6ngraph2op21BatchNormTrainingReluE = external dso_local unnamed_addr constant { [37 x ptr] }, align 8
@.str = external hidden unnamed_addr constant [49 x i8], align 1
@_ZTIN6ngraph12ngraph_errorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.1 = external hidden unnamed_addr constant [73 x i8], align 1
@__const.BatchNormTrainingRelu.input_names = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.4 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [43 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ngraph2op21BatchNormTrainingReluC2EdRKNS_6OutputINS_4NodeEEES6_S6_(ptr noundef nonnull align 8 dereferenceable(688) %0, double noundef %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %4) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca double, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %"class.std::vector.69", align 8
  %12 = alloca %"class.std::initializer_list", align 8
  %13 = alloca [3 x %"class.ngraph::Output"], align 8
  %14 = alloca %"class.std::allocator.71", align 1
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca %"class.ngraph::Shape", align 8
  %18 = alloca %"class.ngraph::Shape", align 8
  %19 = alloca %"class.std::initializer_list.83", align 8
  %20 = alloca [1 x i64], align 8
  %21 = alloca %"class.ngraph::element::Type", align 4
  %22 = alloca [2 x ptr], align 16
  %23 = alloca i64, align 8
  %24 = alloca %"class.ngraph::Input", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator.10", align 1
  %29 = alloca %"class.ngraph::PartialShape", align 8
  %30 = alloca %"class.ngraph::PartialShape", align 8
  %31 = alloca %"class.ngraph::PartialShape", align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store double %1, ptr %7, align 8, !tbaa !9
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  store ptr %4, ptr %10, align 8, !tbaa !5
  %32 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #8
  call void @llvm.lifetime.start.p0(i64 72, ptr %13) #8
  %33 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZN6ngraph6OutputINS_4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(24) %33) #8
  %34 = getelementptr inbounds %"class.ngraph::Output", ptr %13, i64 1
  %35 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN6ngraph6OutputINS_4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %34, ptr noundef nonnull align 8 dereferenceable(24) %35) #8
  %36 = getelementptr inbounds %"class.ngraph::Output", ptr %13, i64 2
  %37 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZN6ngraph6OutputINS_4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(24) %37) #8
  %38 = getelementptr inbounds %"class.std::initializer_list", ptr %12, i32 0, i32 0
  store ptr %13, ptr %38, align 8, !tbaa !11
  %39 = getelementptr inbounds %"class.std::initializer_list", ptr %12, i32 0, i32 1
  store i64 3, ptr %39, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #8
  call void @_ZNSaIN6ngraph6OutputINS_4NodeEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  %40 = getelementptr inbounds { ptr, i64 }, ptr %12, i32 0, i32 0
  %41 = load ptr, ptr %40, align 8
  %42 = getelementptr inbounds { ptr, i64 }, ptr %12, i32 0, i32 1
  %43 = load i64, ptr %42, align 8
  invoke void @_ZNSt6vectorIN6ngraph6OutputINS0_4NodeEEESaIS3_EEC2ESt16initializer_listIS3_ERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr %41, i64 %43, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %44 unwind label %67

44:                                               ; preds = %5
  invoke void @_ZN6ngraph2op2OpC2ERKSt6vectorINS_6OutputINS_4NodeEEESaIS5_EE(ptr noundef nonnull align 8 dereferenceable(680) %32, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %45 unwind label %71

45:                                               ; preds = %44
  call void @_ZNSt6vectorIN6ngraph6OutputINS0_4NodeEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #8
  call void @_ZNSt15__new_allocatorIN6ngraph6OutputINS0_4NodeEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #8
  %46 = getelementptr inbounds [3 x %"class.ngraph::Output"], ptr %13, i32 0, i32 0
  %47 = getelementptr inbounds %"class.ngraph::Output", ptr %46, i64 3
  br label %48

48:                                               ; preds = %48, %45
  %49 = phi ptr [ %47, %45 ], [ %50, %48 ]
  %50 = getelementptr inbounds %"class.ngraph::Output", ptr %49, i64 -1
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #8
  %51 = icmp eq ptr %50, %46
  br i1 %51, label %52, label %48

52:                                               ; preds = %48
  call void @llvm.lifetime.end.p0(i64 72, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #8
  store ptr getelementptr inbounds inrange(-16, 280) ({ [37 x ptr] }, ptr @_ZTVN6ngraph2op21BatchNormTrainingReluE, i32 0, i32 0, i32 2), ptr %32, align 8, !tbaa !15
  %53 = getelementptr inbounds %"class.ngraph::op::BatchNormTrainingRelu", ptr %32, i32 0, i32 1
  %54 = load double, ptr %7, align 8, !tbaa !9
  store double %54, ptr %53, align 8, !tbaa !17
  invoke void @_ZN6ngraph4Node36constructor_validate_and_infer_typesEv(ptr noundef nonnull align 8 dereferenceable(680) %32)
          to label %55 unwind label %83

55:                                               ; preds = %52
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #8
  %56 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph4Node15get_input_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %32, i64 noundef 2)
          to label %57 unwind label %87

57:                                               ; preds = %55
  invoke void @_ZN6ngraph5ShapeC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 8 dereferenceable(24) %56)
          to label %58 unwind label %87

58:                                               ; preds = %57
  %59 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  %60 = icmp ne i64 %59, 4
  br i1 %60, label %61, label %99

61:                                               ; preds = %58
  %62 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  %63 = icmp ne i64 %62, 5
  br i1 %63, label %64, label %99

64:                                               ; preds = %61
  %65 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZN6ngraph12ngraph_errorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %65, ptr noundef @.str)
          to label %66 unwind label %91

66:                                               ; preds = %64
  invoke void @__cxa_throw(ptr %65, ptr @_ZTIN6ngraph12ngraph_errorE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %303 unwind label %95

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

71:                                               ; preds = %44
  %72 = landingpad { ptr, i32 }
          cleanup
  %73 = extractvalue { ptr, i32 } %72, 0
  store ptr %73, ptr %15, align 8
  %74 = extractvalue { ptr, i32 } %72, 1
  store i32 %74, ptr %16, align 4
  call void @_ZNSt6vectorIN6ngraph6OutputINS0_4NodeEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #8
  br label %75

75:                                               ; preds = %71, %67
  call void @_ZNSt15__new_allocatorIN6ngraph6OutputINS0_4NodeEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #8
  %76 = getelementptr inbounds [3 x %"class.ngraph::Output"], ptr %13, i32 0, i32 0
  %77 = getelementptr inbounds %"class.ngraph::Output", ptr %76, i64 3
  br label %78

78:                                               ; preds = %78, %75
  %79 = phi ptr [ %77, %75 ], [ %80, %78 ]
  %80 = getelementptr inbounds %"class.ngraph::Output", ptr %79, i64 -1
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %80) #8
  %81 = icmp eq ptr %80, %76
  br i1 %81, label %82, label %78

82:                                               ; preds = %78
  call void @llvm.lifetime.end.p0(i64 72, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #8
  br label %298

83:                                               ; preds = %52
  %84 = landingpad { ptr, i32 }
          cleanup
  %85 = extractvalue { ptr, i32 } %84, 0
  store ptr %85, ptr %15, align 8
  %86 = extractvalue { ptr, i32 } %84, 1
  store i32 %86, ptr %16, align 4
  br label %297

87:                                               ; preds = %57, %55
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %15, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %16, align 4
  br label %296

91:                                               ; preds = %64
  %92 = landingpad { ptr, i32 }
          cleanup
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %15, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, ptr %16, align 4
  call void @__cxa_free_exception(ptr %65) #8
  br label %295

95:                                               ; preds = %66
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %15, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %16, align 4
  br label %295

99:                                               ; preds = %61, %58
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %19) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  %100 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef 1)
          to label %101 unwind label %112

101:                                              ; preds = %99
  %102 = load i64, ptr %100, align 8, !tbaa !71
  store i64 %102, ptr %20, align 8, !tbaa !71
  %103 = getelementptr inbounds %"class.std::initializer_list.83", ptr %19, i32 0, i32 0
  store ptr %20, ptr %103, align 8, !tbaa !72
  %104 = getelementptr inbounds %"class.std::initializer_list.83", ptr %19, i32 0, i32 1
  store i64 1, ptr %104, align 8, !tbaa !74
  invoke void @_ZN6ngraph5ShapeC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(16) %19)
          to label %105 unwind label %112

105:                                              ; preds = %101
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #8
  %106 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef 1) #8
  %107 = load i64, ptr %106, align 8, !tbaa !71
  %108 = icmp eq i64 %107, 0
  br i1 %108, label %109, label %124

109:                                              ; preds = %105
  %110 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZN6ngraph12ngraph_errorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %110, ptr noundef @.str.1)
          to label %111 unwind label %116

111:                                              ; preds = %109
  invoke void @__cxa_throw(ptr %110, ptr @_ZTIN6ngraph12ngraph_errorE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %303 unwind label %120

112:                                              ; preds = %101, %99
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %15, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #8
  br label %294

116:                                              ; preds = %109
  %117 = landingpad { ptr, i32 }
          cleanup
  %118 = extractvalue { ptr, i32 } %117, 0
  store ptr %118, ptr %15, align 8
  %119 = extractvalue { ptr, i32 } %117, 1
  store i32 %119, ptr %16, align 4
  call void @__cxa_free_exception(ptr %110) #8
  br label %293

120:                                              ; preds = %111
  %121 = landingpad { ptr, i32 }
          cleanup
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %15, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %16, align 4
  br label %293

124:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  %125 = load ptr, ptr %10, align 8, !tbaa !5
  %126 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24) %125)
          to label %127 unwind label %132

127:                                              ; preds = %124
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %21, ptr align 4 %126, i64 4, i1 false), !tbaa.struct !75
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %22, ptr align 16 @__const.BatchNormTrainingRelu.input_names, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  store i64 0, ptr %23, align 8, !tbaa !71
  br label %128

128:                                              ; preds = %187, %127
  %129 = load i64, ptr %23, align 8, !tbaa !71
  %130 = icmp ult i64 %129, 2
  br i1 %130, label %136, label %131

131:                                              ; preds = %128
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  br label %191

132:                                              ; preds = %124
  %133 = landingpad { ptr, i32 }
          cleanup
  %134 = extractvalue { ptr, i32 } %133, 0
  store ptr %134, ptr %15, align 8
  %135 = extractvalue { ptr, i32 } %133, 1
  store i32 %135, ptr %16, align 4
  br label %292

136:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #8
  %137 = load i64, ptr %23, align 8, !tbaa !71
  %138 = invoke { ptr, i64 } @_ZN6ngraph4Node5inputEm(ptr noundef nonnull align 8 dereferenceable(680) %32, i64 noundef %137)
          to label %139 unwind label %158

139:                                              ; preds = %136
  %140 = getelementptr inbounds { ptr, i64 }, ptr %24, i32 0, i32 0
  %141 = extractvalue { ptr, i64 } %138, 0
  store ptr %141, ptr %140, align 8
  %142 = getelementptr inbounds { ptr, i64 }, ptr %24, i32 0, i32 1
  %143 = extractvalue { ptr, i64 } %138, 1
  store i64 %143, ptr %142, align 8
  %144 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph5InputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(16) %24)
          to label %145 unwind label %158

145:                                              ; preds = %139
  %146 = invoke noundef zeroext i1 @_ZNK6ngraph7element4TypeneERKS1_(ptr noundef nonnull align 4 dereferenceable(4) %144, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %147 unwind label %158

147:                                              ; preds = %145
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #8
  br i1 %146, label %148, label %186

148:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %149 unwind label %162

149:                                              ; preds = %148
  %150 = load i64, ptr %23, align 8, !tbaa !71
  %151 = getelementptr inbounds [2 x ptr], ptr %22, i64 0, i64 %150
  %152 = load ptr, ptr %151, align 8, !tbaa !5
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef %152)
          to label %153 unwind label %166

153:                                              ; preds = %149
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.5)
          to label %154 unwind label %170

154:                                              ; preds = %153
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  %155 = call ptr @__cxa_allocate_exception(i64 16) #8
  %156 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  invoke void @_ZN6ngraph12ngraph_errorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %155, ptr noundef %156)
          to label %157 unwind label %176

157:                                              ; preds = %154
  invoke void @__cxa_throw(ptr %155, ptr @_ZTIN6ngraph12ngraph_errorE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %303 unwind label %180

158:                                              ; preds = %145, %139, %136
  %159 = landingpad { ptr, i32 }
          cleanup
  %160 = extractvalue { ptr, i32 } %159, 0
  store ptr %160, ptr %15, align 8
  %161 = extractvalue { ptr, i32 } %159, 1
  store i32 %161, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #8
  br label %190

162:                                              ; preds = %148
  %163 = landingpad { ptr, i32 }
          cleanup
  %164 = extractvalue { ptr, i32 } %163, 0
  store ptr %164, ptr %15, align 8
  %165 = extractvalue { ptr, i32 } %163, 1
  store i32 %165, ptr %16, align 4
  br label %175

166:                                              ; preds = %149
  %167 = landingpad { ptr, i32 }
          cleanup
  %168 = extractvalue { ptr, i32 } %167, 0
  store ptr %168, ptr %15, align 8
  %169 = extractvalue { ptr, i32 } %167, 1
  store i32 %169, ptr %16, align 4
  br label %174

170:                                              ; preds = %153
  %171 = landingpad { ptr, i32 }
          cleanup
  %172 = extractvalue { ptr, i32 } %171, 0
  store ptr %172, ptr %15, align 8
  %173 = extractvalue { ptr, i32 } %171, 1
  store i32 %173, ptr %16, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %174

174:                                              ; preds = %170, %166
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %175

175:                                              ; preds = %174, %162
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  br label %185

176:                                              ; preds = %154
  %177 = landingpad { ptr, i32 }
          cleanup
  %178 = extractvalue { ptr, i32 } %177, 0
  store ptr %178, ptr %15, align 8
  %179 = extractvalue { ptr, i32 } %177, 1
  store i32 %179, ptr %16, align 4
  call void @__cxa_free_exception(ptr %155) #8
  br label %184

180:                                              ; preds = %157
  %181 = landingpad { ptr, i32 }
          cleanup
  %182 = extractvalue { ptr, i32 } %181, 0
  store ptr %182, ptr %15, align 8
  %183 = extractvalue { ptr, i32 } %181, 1
  store i32 %183, ptr %16, align 4
  br label %184

184:                                              ; preds = %180, %176
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %185

185:                                              ; preds = %184, %175
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  br label %190

186:                                              ; preds = %147
  br label %187

187:                                              ; preds = %186
  %188 = load i64, ptr %23, align 8, !tbaa !71
  %189 = add i64 %188, 1
  store i64 %189, ptr %23, align 8, !tbaa !71
  br label %128, !llvm.loop !78

190:                                              ; preds = %185, %158
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  br label %291

191:                                              ; preds = %131
  %192 = load ptr, ptr %8, align 8, !tbaa !5
  %193 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %192)
          to label %194 unwind label %206

194:                                              ; preds = %191
  %195 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %193) #8
  %196 = icmp ne i64 %195, 1
  br i1 %196, label %203, label %197

197:                                              ; preds = %194
  %198 = load ptr, ptr %9, align 8, !tbaa !5
  %199 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %198)
          to label %200 unwind label %206

200:                                              ; preds = %197
  %201 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %199) #8
  %202 = icmp ne i64 %201, 1
  br i1 %202, label %203, label %214

203:                                              ; preds = %200, %194
  %204 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZN6ngraph12ngraph_errorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %204, ptr noundef @.str.6)
          to label %205 unwind label %210

205:                                              ; preds = %203
  invoke void @__cxa_throw(ptr %204, ptr @_ZTIN6ngraph12ngraph_errorE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %303 unwind label %206

206:                                              ; preds = %258, %253, %248, %247, %242, %237, %234, %231, %226, %217, %214, %205, %197, %191
  %207 = landingpad { ptr, i32 }
          cleanup
  %208 = extractvalue { ptr, i32 } %207, 0
  store ptr %208, ptr %15, align 8
  %209 = extractvalue { ptr, i32 } %207, 1
  store i32 %209, ptr %16, align 4
  br label %291

210:                                              ; preds = %203
  %211 = landingpad { ptr, i32 }
          cleanup
  %212 = extractvalue { ptr, i32 } %211, 0
  store ptr %212, ptr %15, align 8
  %213 = extractvalue { ptr, i32 } %211, 1
  store i32 %213, ptr %16, align 4
  call void @__cxa_free_exception(ptr %204) #8
  br label %291

214:                                              ; preds = %200
  %215 = load ptr, ptr %8, align 8, !tbaa !5
  %216 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %215)
          to label %217 unwind label %206

217:                                              ; preds = %214
  %218 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %216) #8
  %219 = load ptr, ptr %9, align 8, !tbaa !5
  %220 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %219)
          to label %221 unwind label %206

221:                                              ; preds = %217
  %222 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %220) #8
  %223 = icmp ne i64 %218, %222
  br i1 %223, label %224, label %231

224:                                              ; preds = %221
  %225 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZN6ngraph12ngraph_errorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %225, ptr noundef @.str.7)
          to label %226 unwind label %227

226:                                              ; preds = %224
  invoke void @__cxa_throw(ptr %225, ptr @_ZTIN6ngraph12ngraph_errorE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %303 unwind label %206

227:                                              ; preds = %224
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %15, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %16, align 4
  call void @__cxa_free_exception(ptr %225) #8
  br label %291

231:                                              ; preds = %221
  %232 = load ptr, ptr %8, align 8, !tbaa !5
  %233 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24) %232)
          to label %234 unwind label %206

234:                                              ; preds = %231
  %235 = load ptr, ptr %9, align 8, !tbaa !5
  %236 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24) %235)
          to label %237 unwind label %206

237:                                              ; preds = %234
  %238 = invoke noundef zeroext i1 @_ZNK6ngraph7element4TypeneERKS1_(ptr noundef nonnull align 4 dereferenceable(4) %233, ptr noundef nonnull align 4 dereferenceable(4) %236)
          to label %239 unwind label %206

239:                                              ; preds = %237
  br i1 %238, label %240, label %247

240:                                              ; preds = %239
  %241 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZN6ngraph12ngraph_errorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %241, ptr noundef @.str.8)
          to label %242 unwind label %243

242:                                              ; preds = %240
  invoke void @__cxa_throw(ptr %241, ptr @_ZTIN6ngraph12ngraph_errorE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %303 unwind label %206

243:                                              ; preds = %240
  %244 = landingpad { ptr, i32 }
          cleanup
  %245 = extractvalue { ptr, i32 } %244, 0
  store ptr %245, ptr %15, align 8
  %246 = extractvalue { ptr, i32 } %244, 1
  store i32 %246, ptr %16, align 4
  call void @__cxa_free_exception(ptr %241) #8
  br label %291

247:                                              ; preds = %239
  invoke void @_ZN6ngraph4Node15set_output_sizeEm(ptr noundef nonnull align 8 dereferenceable(680) %32, i64 noundef 3)
          to label %248 unwind label %206

248:                                              ; preds = %247
  %249 = load ptr, ptr %10, align 8, !tbaa !5
  %250 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24) %249)
          to label %251 unwind label %206

251:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #8
  invoke void @_ZN6ngraph12PartialShapeC1ERKNS_5ShapeE(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %252 unwind label %264

252:                                              ; preds = %251
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %32, i64 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %250, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %253 unwind label %268

253:                                              ; preds = %252
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  %254 = load ptr, ptr %10, align 8, !tbaa !5
  %255 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24) %254)
          to label %256 unwind label %206

256:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #8
  invoke void @_ZN6ngraph12PartialShapeC1ERKNS_5ShapeE(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %257 unwind label %273

257:                                              ; preds = %256
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %32, i64 noundef 1, ptr noundef nonnull align 4 dereferenceable(4) %255, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %258 unwind label %277

258:                                              ; preds = %257
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  %259 = load ptr, ptr %10, align 8, !tbaa !5
  %260 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24) %259)
          to label %261 unwind label %206

261:                                              ; preds = %258
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #8
  invoke void @_ZN6ngraph12PartialShapeC1ERKNS_5ShapeE(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %262 unwind label %282

262:                                              ; preds = %261
  invoke void @_ZN6ngraph4Node15set_output_typeEmRKNS_7element4TypeERKNS_12PartialShapeE(ptr noundef nonnull align 8 dereferenceable(680) %32, i64 noundef 2, ptr noundef nonnull align 4 dereferenceable(4) %260, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %263 unwind label %286

263:                                              ; preds = %262
  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.end.p0(i64 16, ptr %22) #8
  call void @_ZN6ngraph7element4TypeD2Ev(ptr noundef nonnull align 4 dereferenceable(4) %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #8
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #8
  ret void

264:                                              ; preds = %251
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %15, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %16, align 4
  br label %272

268:                                              ; preds = %252
  %269 = landingpad { ptr, i32 }
          cleanup
  %270 = extractvalue { ptr, i32 } %269, 0
  store ptr %270, ptr %15, align 8
  %271 = extractvalue { ptr, i32 } %269, 1
  store i32 %271, ptr %16, align 4
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %272

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

273:                                              ; preds = %256
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %15, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %16, align 4
  br label %281

277:                                              ; preds = %257
  %278 = landingpad { ptr, i32 }
          cleanup
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %15, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %16, align 4
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %281

281:                                              ; preds = %277, %273
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  br label %291

282:                                              ; preds = %261
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %15, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %16, align 4
  br label %290

286:                                              ; preds = %262
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %15, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %16, align 4
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %290

290:                                              ; preds = %286, %282
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  br label %291

291:                                              ; preds = %290, %281, %272, %243, %227, %210, %206, %190
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #8
  call void @_ZN6ngraph7element4TypeD2Ev(ptr noundef nonnull align 4 dereferenceable(4) %21) #8
  br label %292

292:                                              ; preds = %291, %132
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %293

293:                                              ; preds = %292, %120, %116
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #8
  br label %294

294:                                              ; preds = %293, %112
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #8
  br label %295

295:                                              ; preds = %294, %95, %91
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  br label %296

296:                                              ; preds = %295, %87
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #8
  br label %297

297:                                              ; preds = %296, %83
  call void @_ZN6ngraph4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(680) %32) #8
  br label %298

298:                                              ; preds = %297, %82
  %299 = load ptr, ptr %15, align 8
  %300 = load i32, ptr %16, align 4
  %301 = insertvalue { ptr, i32 } poison, ptr %299, 0
  %302 = insertvalue { ptr, i32 } %301, i32 %300, 1
  resume { ptr, i32 } %302

303:                                              ; preds = %242, %226, %205, %157, %111, %66
  unreachable
}

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

declare void @_ZN6ngraph4Node36constructor_validate_and_infer_typesEv(ptr noundef nonnull align 8 dereferenceable(680)) #4

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

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

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

declare ptr @__cxa_allocate_exception(i64)

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

declare void @__cxa_free_exception(ptr)

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

declare void @__cxa_throw(ptr, ptr, ptr)

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

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

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

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

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

declare { ptr, i64 } @_ZN6ngraph4Node5inputEm(ptr noundef nonnull align 8 dereferenceable(680), i64 noundef) #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #7

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

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

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

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

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

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

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)) #4

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"_ZTSSt16initializer_listIN6ngraph6OutputINS0_4NodeEEEE", !6, i64 0, !13, i64 8}
!13 = !{!"long", !7, i64 0}
!14 = !{!12, !13, i64 8}
!15 = !{!16, !16, i64 0}
!16 = !{!"vtable pointer", !8, i64 0}
!17 = !{!18, !10, i64 680}
!18 = !{!"_ZTSN6ngraph2op21BatchNormTrainingReluE", !19, i64 0, !10, i64 680}
!19 = !{!"_ZTSN6ngraph2op2OpE", !20, i64 0}
!20 = !{!"_ZTSN6ngraph4NodeE", !21, i64 8, !25, i64 24, !25, i64 80, !30, i64 136, !34, i64 160, !38, i64 184, !13, i64 216, !38, i64 224, !38, i64 256, !40, i64 288, !42, i64 344, !50, i64 392, !55, i64 472, !60, i64 552, !62, i64 608, !63, i64 616, !66, i64 632}
!21 = !{!"_ZTSSt23enable_shared_from_thisIN6ngraph4NodeEE", !22, i64 0}
!22 = !{!"_ZTSSt8weak_ptrIN6ngraph4NodeEE", !23, i64 0}
!23 = !{!"_ZTSSt10__weak_ptrIN6ngraph4NodeELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !24, i64 8}
!24 = !{!"_ZTSSt12__weak_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!25 = !{!"_ZTSSt13unordered_setIPN6ngraph10descriptor6TensorESt4hashIS3_ESt8equal_toIS3_ESaIS3_EE", !26, i64 0}
!26 = !{!"_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, !13, i64 8, !27, i64 16, !13, i64 24, !28, i64 32, !6, i64 48}
!27 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!28 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !29, i64 0, !13, 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", !6, i64 0, !6, i64 8, !6, 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", !6, i64 0, !6, i64 8, !6, i64 16}
!38 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !39, i64 0, !13, i64 8, !7, i64 16}
!39 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, 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", !6, i64 0, !13, i64 8, !27, i64 16, !13, i64 24, !28, i64 32, !6, 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, !13, i64 32}
!48 = !{!"_ZTSSt18_Rb_tree_node_base", !49, i64 0, !6, i64 8, !6, i64 16, !6, 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", !6, i64 0, !13, i64 8, !54, i64 16, !54, i64 48}
!54 = !{!"_ZTSSt15_Deque_iteratorIN6ngraph10descriptor5InputERS2_PS2_E", !6, i64 0, !6, i64 8, !6, i64 16, !6, 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", !6, i64 0, !13, i64 8, !59, i64 16, !59, i64 48}
!59 = !{!"_ZTSSt15_Deque_iteratorIN6ngraph10descriptor6OutputERS2_PS2_E", !6, i64 0, !6, i64 8, !6, i64 16, !6, 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", !6, i64 0, !13, i64 8, !27, i64 16, !13, i64 24, !28, i64 32, !6, i64 48}
!62 = !{!"int", !7, i64 0}
!63 = !{!"_ZTSSt10shared_ptrIN6ngraph2op4util13OpAnnotationsEE", !64, i64 0}
!64 = !{!"_ZTSSt12__shared_ptrIN6ngraph2op4util13OpAnnotationsELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !65, i64 8}
!65 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!66 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIN6ngraph7VariantEESt4lessIS5_ESaISt4pairIKS5_S9_EEE", !67, i64 0}
!67 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN6ngraph7VariantEEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE", !68, i64 0}
!68 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN6ngraph7VariantEEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE13_Rb_tree_implISG_Lb1EEE", !69, i64 0, !47, i64 8}
!69 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !70, i64 0}
!70 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!71 = !{!13, !13, i64 0}
!72 = !{!73, !6, i64 0}
!73 = !{!"_ZTSSt16initializer_listImE", !6, i64 0, !13, i64 8}
!74 = !{!73, !13, i64 8}
!75 = !{i64 0, i64 4, !76}
!76 = !{!77, !77, i64 0}
!77 = !{!"_ZTSN6ngraph7element6Type_tE", !7, i64 0}
!78 = distinct !{!78, !79}
!79 = !{!"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.std::vector.69" = type { %"struct.std::_Vector_base.70" }
%"struct.std::_Vector_base.70" = type { %"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl" }
%"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ngraph::Output<Node>, std::allocator<ngraph::Output<Node>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.ngraph::Output" = type { %"class.std::shared_ptr.74", i64 }
%"class.std::shared_ptr.74" = type { %"class.std::__shared_ptr.75" }
%"class.std::__shared_ptr.75" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::allocator.71" = type { i8 }
%"class.ngraph::Shape" = type { %"class.std::vector.77" }
%"class.std::vector.77" = type { %"struct.std::_Vector_base.78" }
%"struct.std::_Vector_base.78" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list.83" = type { ptr, i64 }
%"class.ngraph::element::Type" = type { i32 }
%"class.ngraph::Input" = type { ptr, i64 }
%"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::allocator.10" = type { i8 }
%"class.ngraph::PartialShape" = type { i8, %"class.std::vector.84" }
%"class.std::vector.84" = type { %"struct.std::_Vector_base.85" }
%"struct.std::_Vector_base.85" = 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 }

@_ZTVN6ngraph2op21BatchNormTrainingReluE = external dso_local unnamed_addr constant { [37 x ptr] }, align 8
@.str = external hidden unnamed_addr constant [49 x i8], align 1
@_ZTIN6ngraph12ngraph_errorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.1 = external hidden unnamed_addr constant [73 x i8], align 1
@__const.BatchNormTrainingRelu.input_names = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.4 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [43 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ngraph2op21BatchNormTrainingReluC2EdRKNS_6OutputINS_4NodeEEES6_S6_(ptr noundef nonnull align 8 dereferenceable(688) %0, double noundef %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %4) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca %"class.std::vector.69", align 8
  %7 = alloca [3 x %"class.ngraph::Output"], align 8
  %8 = alloca %"class.std::allocator.71", align 1
  %9 = alloca %"class.ngraph::Shape", align 8
  %10 = alloca %"class.ngraph::Shape", align 8
  %11 = alloca %"class.std::initializer_list.83", align 8
  %12 = alloca [1 x i64], align 8
  %13 = alloca %"class.ngraph::element::Type", align 4
  %14 = alloca %"class.ngraph::Input", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator.10", align 1
  %19 = alloca %"class.ngraph::PartialShape", align 8
  %20 = alloca %"class.ngraph::PartialShape", align 8
  %21 = alloca %"class.ngraph::PartialShape", align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #7
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %7) #7
  call void @_ZN6ngraph6OutputINS_4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %2) #7
  %22 = getelementptr inbounds i8, ptr %7, i64 24
  call void @_ZN6ngraph6OutputINS_4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  %23 = getelementptr inbounds i8, ptr %7, i64 48
  call void @_ZN6ngraph6OutputINS_4NodeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #7
  call void @_ZNSaIN6ngraph6OutputINS_4NodeEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  invoke void @_ZNSt6vectorIN6ngraph6OutputINS0_4NodeEEESaIS3_EEC2ESt16initializer_listIS3_ERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr nonnull %7, i64 3, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %24 unwind label %39

24:                                               ; preds = %5
  invoke void @_ZN6ngraph2op2OpC2ERKSt6vectorINS_6OutputINS_4NodeEEESaIS5_EE(ptr noundef nonnull align 8 dereferenceable(680) %0, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %25 unwind label %41

25:                                               ; preds = %24
  call void @_ZNSt6vectorIN6ngraph6OutputINS0_4NodeEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  call void @_ZNSt15__new_allocatorIN6ngraph6OutputINS0_4NodeEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  %26 = getelementptr inbounds i8, ptr %7, i64 48
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  %27 = getelementptr inbounds i8, ptr %7, i64 24
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #7
  store ptr getelementptr inbounds inrange(-16, 280) (i8, ptr @_ZTVN6ngraph2op21BatchNormTrainingReluE, i64 16), ptr %0, align 8, !tbaa !5
  %28 = getelementptr inbounds i8, ptr %0, i64 680
  store double %1, ptr %28, align 8, !tbaa !8
  invoke void @_ZN6ngraph4Node36constructor_validate_and_infer_typesEv(ptr noundef nonnull align 8 dereferenceable(680) %0)
          to label %29 unwind label %46

29:                                               ; preds = %25
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #7
  %30 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph4Node15get_input_shapeEm(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 2)
          to label %31 unwind label %48

31:                                               ; preds = %29
  invoke void @_ZN6ngraph5ShapeC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %30)
          to label %32 unwind label %48

32:                                               ; preds = %31
  %33 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  %.not = icmp eq i64 %33, 4
  br i1 %.not, label %54, label %34

34:                                               ; preds = %32
  %35 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  %.not41 = icmp eq i64 %35, 5
  br i1 %.not41, label %54, label %36

36:                                               ; preds = %34
  %37 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZN6ngraph12ngraph_errorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull @.str)
          to label %38 unwind label %50

38:                                               ; preds = %36
  invoke void @__cxa_throw(ptr nonnull %37, ptr nonnull @_ZTIN6ngraph12ngraph_errorE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #8
          to label %195 unwind label %52

39:                                               ; preds = %5
  %40 = landingpad { ptr, i32 }
          cleanup
  br label %43

41:                                               ; preds = %24
  %42 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIN6ngraph6OutputINS0_4NodeEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  br label %43

43:                                               ; preds = %41, %39
  %.pn = phi { ptr, i32 } [ %42, %41 ], [ %40, %39 ]
  call void @_ZNSt15__new_allocatorIN6ngraph6OutputINS0_4NodeEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  %44 = getelementptr inbounds i8, ptr %7, i64 48
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  %45 = getelementptr inbounds i8, ptr %7, i64 24
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  call void @_ZN6ngraph6OutputINS_4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #7
  br label %194

46:                                               ; preds = %25
  %47 = landingpad { ptr, i32 }
          cleanup
  br label %193

48:                                               ; preds = %31, %29
  %49 = landingpad { ptr, i32 }
          cleanup
  br label %192

50:                                               ; preds = %36
  %51 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %37) #7
  br label %191

52:                                               ; preds = %38
  %53 = landingpad { ptr, i32 }
          cleanup
  br label %191

54:                                               ; preds = %34, %32
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %55 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 1)
          to label %56 unwind label %66

56:                                               ; preds = %54
  %57 = load i64, ptr %55, align 8, !tbaa !66
  store i64 %57, ptr %12, align 8, !tbaa !66
  store ptr %12, ptr %11, align 8, !tbaa !67
  %58 = getelementptr inbounds i8, ptr %11, i64 8
  store i64 1, ptr %58, align 8, !tbaa !69
  invoke void @_ZN6ngraph5ShapeC1ERKSt16initializer_listImE(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %59 unwind label %66

59:                                               ; preds = %56
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #7
  %60 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 1) #7
  %61 = load i64, ptr %60, align 8, !tbaa !66
  %62 = icmp eq i64 %61, 0
  br i1 %62, label %63, label %72

63:                                               ; preds = %59
  %64 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZN6ngraph12ngraph_errorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %64, ptr noundef nonnull @.str.1)
          to label %65 unwind label %68

65:                                               ; preds = %63
  invoke void @__cxa_throw(ptr nonnull %64, ptr nonnull @_ZTIN6ngraph12ngraph_errorE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #8
          to label %195 unwind label %70

66:                                               ; preds = %56, %54
  %67 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #7
  br label %190

68:                                               ; preds = %63
  %69 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %64) #7
  br label %189

70:                                               ; preds = %65
  %71 = landingpad { ptr, i32 }
          cleanup
  br label %189

72:                                               ; preds = %59
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #7
  %73 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %74 unwind label %78

74:                                               ; preds = %72
  %75 = load i32, ptr %73, align 4, !tbaa !70
  store i32 %75, ptr %13, align 4, !tbaa !70
  %76 = getelementptr inbounds i8, ptr %14, i64 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #7
  %77 = invoke { ptr, i64 } @_ZN6ngraph4Node5inputEm(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 0)
          to label %80 unwind label %96

78:                                               ; preds = %72
  %79 = landingpad { ptr, i32 }
          cleanup
  br label %188

80:                                               ; preds = %74
  %81 = extractvalue { ptr, i64 } %77, 0
  store ptr %81, ptr %14, align 8
  %82 = extractvalue { ptr, i64 } %77, 1
  store i64 %82, ptr %76, align 8
  %83 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph5InputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %84 unwind label %96

84:                                               ; preds = %80
  %85 = invoke noundef zeroext i1 @_ZNK6ngraph7element4TypeneERKS1_(ptr noundef nonnull align 4 dereferenceable(4) %83, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %86 unwind label %96

86:                                               ; preds = %84
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  br i1 %85, label %87, label %112

87:                                               ; preds = %120, %86
  %.070.lcssa71 = phi i64 [ 0, %86 ], [ 1, %120 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %88 unwind label %98

88:                                               ; preds = %87
  %89 = getelementptr inbounds [2 x ptr], ptr @__const.BatchNormTrainingRelu.input_names, i64 0, i64 %.070.lcssa71
  %90 = load ptr, ptr %89, align 8, !tbaa !72
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef %90)
          to label %91 unwind label %100

91:                                               ; preds = %88
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.5)
          to label %92 unwind label %102

92:                                               ; preds = %91
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  %93 = call ptr @__cxa_allocate_exception(i64 16) #7
  %94 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  invoke void @_ZN6ngraph12ngraph_errorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %93, ptr noundef %94)
          to label %95 unwind label %106

95:                                               ; preds = %92
  invoke void @__cxa_throw(ptr nonnull %93, ptr nonnull @_ZTIN6ngraph12ngraph_errorE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #8
          to label %195 unwind label %108

96:                                               ; preds = %118, %114, %112, %84, %80, %74
  %97 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  br label %187

98:                                               ; preds = %87
  %99 = landingpad { ptr, i32 }
          cleanup
  br label %105

100:                                              ; preds = %88
  %101 = landingpad { ptr, i32 }
          cleanup
  br label %104

102:                                              ; preds = %91
  %103 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %104

104:                                              ; preds = %102, %100
  %.pn51 = phi { ptr, i32 } [ %103, %102 ], [ %101, %100 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %105

105:                                              ; preds = %104, %98
  %.pn51.pn = phi { ptr, i32 } [ %.pn51, %104 ], [ %99, %98 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %111

106:                                              ; preds = %92
  %107 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %93) #7
  br label %110

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

110:                                              ; preds = %108, %106
  %.pn54 = phi { ptr, i32 } [ %109, %108 ], [ %107, %106 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %111

111:                                              ; preds = %110, %105
  %.pn54.pn = phi { ptr, i32 } [ %.pn54, %110 ], [ %.pn51.pn, %105 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %187

112:                                              ; preds = %86
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #7
  %113 = invoke { ptr, i64 } @_ZN6ngraph4Node5inputEm(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 1)
          to label %114 unwind label %96

114:                                              ; preds = %112
  %115 = extractvalue { ptr, i64 } %113, 0
  store ptr %115, ptr %14, align 8
  %116 = extractvalue { ptr, i64 } %113, 1
  store i64 %116, ptr %76, align 8
  %117 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph5InputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %118 unwind label %96

118:                                              ; preds = %114
  %119 = invoke noundef zeroext i1 @_ZNK6ngraph7element4TypeneERKS1_(ptr noundef nonnull align 4 dereferenceable(4) %117, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %120 unwind label %96

120:                                              ; preds = %118
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  br i1 %119, label %87, label %121

121:                                              ; preds = %120
  %122 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %2)
          to label %123 unwind label %131

123:                                              ; preds = %121
  %124 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %122) #7
  %.not42 = icmp eq i64 %124, 1
  br i1 %.not42, label %125, label %129

125:                                              ; preds = %123
  %126 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %127 unwind label %131

127:                                              ; preds = %125
  %128 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %126) #7
  %.not43 = icmp eq i64 %128, 1
  br i1 %.not43, label %135, label %129

129:                                              ; preds = %127, %123
  %130 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZN6ngraph12ngraph_errorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %130, ptr noundef nonnull @.str.6)
          to label %.invoke unwind label %133

131:                                              ; preds = %.invoke, %167, %163, %159, %158, %150, %148, %146, %137, %135, %125, %121
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %187

133:                                              ; preds = %129
  %134 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %130) #7
  br label %187

135:                                              ; preds = %127
  %136 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %2)
          to label %137 unwind label %131

137:                                              ; preds = %135
  %138 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %136) #7
  %139 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6ngraph6OutputINS_4NodeEE9get_shapeEv(ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %140 unwind label %131

140:                                              ; preds = %137
  %141 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %139) #7
  %.not44 = icmp eq i64 %138, %141
  br i1 %.not44, label %146, label %142

142:                                              ; preds = %140
  %143 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZN6ngraph12ngraph_errorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %143, ptr noundef nonnull @.str.7)
          to label %.invoke unwind label %144

144:                                              ; preds = %142
  %145 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %143) #7
  br label %187

146:                                              ; preds = %140
  %147 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24) %2)
          to label %148 unwind label %131

148:                                              ; preds = %146
  %149 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %150 unwind label %131

150:                                              ; preds = %148
  %151 = invoke noundef zeroext i1 @_ZNK6ngraph7element4TypeneERKS1_(ptr noundef nonnull align 4 dereferenceable(4) %147, ptr noundef nonnull align 4 dereferenceable(4) %149)
          to label %152 unwind label %131

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

153:                                              ; preds = %152
  %154 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZN6ngraph12ngraph_errorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %154, ptr noundef nonnull @.str.8)
          to label %.invoke unwind label %156

.invoke:                                          ; preds = %129, %153, %142
  %155 = phi ptr [ %143, %142 ], [ %154, %153 ], [ %130, %129 ]
  invoke void @__cxa_throw(ptr nonnull %155, ptr nonnull @_ZTIN6ngraph12ngraph_errorE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #8
          to label %.cont unwind label %131

.cont:                                            ; preds = %.invoke
  unreachable

156:                                              ; preds = %153
  %157 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %154) #7
  br label %187

158:                                              ; preds = %152
  invoke void @_ZN6ngraph4Node15set_output_sizeEm(ptr noundef nonnull align 8 dereferenceable(680) %0, i64 noundef 3)
          to label %159 unwind label %131

159:                                              ; preds = %158
  %160 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %161 unwind label %131

161:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  invoke void @_ZN6ngraph12PartialShapeC1ERKNS_5ShapeE(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %162 unwind label %172

162:                                              ; preds = %161
  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) %160, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %163 unwind label %174

163:                                              ; preds = %162
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  %164 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %165 unwind label %131

165:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #7
  invoke void @_ZN6ngraph12PartialShapeC1ERKNS_5ShapeE(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %166 unwind label %177

166:                                              ; preds = %165
  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) %164, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %167 unwind label %179

167:                                              ; preds = %166
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  %168 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6ngraph6OutputINS_4NodeEE16get_element_typeEv(ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %169 unwind label %131

169:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #7
  invoke void @_ZN6ngraph12PartialShapeC1ERKNS_5ShapeE(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %170 unwind label %182

170:                                              ; preds = %169
  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) %168, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %171 unwind label %184

171:                                              ; preds = %170
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  call void @_ZN6ngraph7element4TypeD2Ev(ptr noundef nonnull align 4 dereferenceable(4) %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #7
  ret void

172:                                              ; preds = %161
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %176

174:                                              ; preds = %162
  %175 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %176

176:                                              ; preds = %174, %172
  %.pn45 = phi { ptr, i32 } [ %175, %174 ], [ %173, %172 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %187

177:                                              ; preds = %165
  %178 = landingpad { ptr, i32 }
          cleanup
  br label %181

179:                                              ; preds = %166
  %180 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %181

181:                                              ; preds = %179, %177
  %.pn47 = phi { ptr, i32 } [ %180, %179 ], [ %178, %177 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  br label %187

182:                                              ; preds = %169
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %186

184:                                              ; preds = %170
  %185 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %186

186:                                              ; preds = %184, %182
  %.pn49 = phi { ptr, i32 } [ %185, %184 ], [ %183, %182 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  br label %187

187:                                              ; preds = %96, %111, %186, %181, %176, %156, %144, %133, %131
  %.pn54.pn.pn.pn = phi { ptr, i32 } [ %132, %131 ], [ %134, %133 ], [ %145, %144 ], [ %157, %156 ], [ %.pn49, %186 ], [ %.pn47, %181 ], [ %.pn45, %176 ], [ %.pn54.pn, %111 ], [ %97, %96 ]
  call void @_ZN6ngraph7element4TypeD2Ev(ptr noundef nonnull align 4 dereferenceable(4) %13) #7
  br label %188

188:                                              ; preds = %187, %78
  %.pn54.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn54.pn.pn.pn, %187 ], [ %79, %78 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  br label %189

189:                                              ; preds = %188, %70, %68
  %.pn60 = phi { ptr, i32 } [ %71, %70 ], [ %69, %68 ], [ %.pn54.pn.pn.pn.pn, %188 ]
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  br label %190

190:                                              ; preds = %189, %66
  %.pn60.pn = phi { ptr, i32 } [ %.pn60, %189 ], [ %67, %66 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  br label %191

191:                                              ; preds = %190, %52, %50
  %.pn63 = phi { ptr, i32 } [ %53, %52 ], [ %51, %50 ], [ %.pn60.pn, %190 ]
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  br label %192

192:                                              ; preds = %191, %48
  %.pn63.pn = phi { ptr, i32 } [ %.pn63, %191 ], [ %49, %48 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #7
  br label %193

193:                                              ; preds = %192, %46
  %.pn63.pn.pn = phi { ptr, i32 } [ %.pn63.pn, %192 ], [ %47, %46 ]
  call void @_ZN6ngraph4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(680) %0) #7
  br label %194

194:                                              ; preds = %193, %43
  %.pn63.pn.pn.pn = phi { ptr, i32 } [ %.pn63.pn.pn, %193 ], [ %.pn, %43 ]
  resume { ptr, i32 } %.pn63.pn.pn.pn

195:                                              ; preds = %95, %65, %38
  unreachable
}

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

declare void @_ZN6ngraph4Node36constructor_validate_and_infer_typesEv(ptr noundef nonnull align 8 dereferenceable(680)) local_unnamed_addr #4

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

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

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

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

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

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

declare { ptr, i64 } @_ZN6ngraph4Node5inputEm(ptr noundef nonnull align 8 dereferenceable(680), i64 noundef) local_unnamed_addr #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #6

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

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

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

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

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

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

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

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

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

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

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

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

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

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


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,LCSSAPass,LICMPass,LoopRotatePass,SROAPass,SimplifyCFGPass