; LLVM IR from NervanaSystems/ngraph :: src/ngraph (validation_util)

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

%"class.ngraph::PartialShape" = type { i8, %"class.std::vector.0" }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl" }
%"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl" = type { %"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.ngraph::Dimension" = type { %"class.ngraph::Interval" }
%"class.ngraph::Interval" = type { i64, i64 }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"struct.ngraph::CheckLocInfo" = type { ptr, i32, ptr }

@.str.1 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [86 x i8], align 1
@_ZTIN6ngraph21NodeValidationFailureE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.33 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [407 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [89 x i8], align 1

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ngraph37infer_windowed_reduction_output_shapeEPKNS_4NodeERKNS_12PartialShapeERKNS_7StridesERKNS_14CoordinateDiffESB_S5_S8_S8_bb(ptr dead_on_unwind noalias writable sret(%"class.ngraph::PartialShape") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext, i1 noundef zeroext) #1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

declare ptr @__cxa_allocate_exception(i64)

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

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

declare void @__cxa_throw(ptr, ptr, ptr)

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

declare void @__cxa_free_exception(ptr)

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

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZN6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ngraph25infer_convolution_forwardEPKNS_4NodeERKNS_12PartialShapeERKNS_7StridesERKNS_14CoordinateDiffESB_S5_S8_S8_(ptr dead_on_unwind noalias writable sret(%"class.ngraph::PartialShape") align 8 %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %8) #1 personality ptr @__gxx_personality_v0 {
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca %"class.ngraph::Dimension", align 8
  %20 = alloca %"class.ngraph::Dimension", align 8
  %21 = alloca %"class.ngraph::Dimension", align 8
  %22 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca i1, align 1
  %28 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %29 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca i1, align 1
  %32 = alloca %"class.ngraph::Dimension", align 8
  %33 = alloca %"class.ngraph::Dimension", align 8
  %34 = alloca %"class.ngraph::Dimension", align 8
  %35 = alloca %"class.ngraph::Dimension", align 8
  %36 = alloca %"class.ngraph::Dimension", align 8
  %37 = alloca %"class.ngraph::Dimension", align 8
  %38 = alloca %"class.ngraph::Dimension", align 8
  %39 = alloca %"class.ngraph::Dimension", align 8
  %40 = alloca %"class.ngraph::Dimension", align 8
  %41 = alloca %"class.ngraph::Dimension", align 8
  %42 = alloca %"class.ngraph::Dimension", align 8
  %43 = alloca %"class.ngraph::Dimension", align 8
  %44 = alloca %"class.ngraph::Dimension", align 8
  %45 = alloca %"class.ngraph::Dimension", align 8
  %46 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %47 = alloca %"class.ngraph::Dimension", align 8
  %48 = alloca %"class.ngraph::Dimension", align 8
  %49 = alloca %"class.ngraph::Dimension", align 8
  %50 = alloca %"class.ngraph::Dimension", align 8
  %51 = alloca %"class.ngraph::Dimension", align 8
  %52 = alloca %"class.ngraph::Dimension", align 8
  %53 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca i1, align 1
  %56 = alloca %"class.ngraph::Dimension", align 8
  %57 = alloca %"class.ngraph::Dimension", align 8
  %58 = alloca %"class.ngraph::Dimension", align 8
  %59 = alloca %"class.ngraph::Dimension", align 8
  %60 = alloca %"class.ngraph::PartialShape", align 8
  %61 = alloca %"class.ngraph::Dimension", align 8
  %62 = alloca %"class.ngraph::Dimension", align 8
  %63 = alloca %"class.ngraph::Dimension", align 8
  %64 = alloca %"class.ngraph::Dimension", align 8
  %65 = alloca %"class.ngraph::Dimension", align 8
  %66 = alloca %"class.ngraph::PartialShape", align 8
  %67 = alloca %"class.ngraph::Dimension", align 8
  %68 = alloca i64, align 8
  %69 = alloca %"class.ngraph::Dimension", align 8
  %70 = alloca %"class.ngraph::Dimension", align 8
  %71 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %72 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca i1, align 1
  %75 = alloca %"class.ngraph::Dimension", align 8
  %76 = alloca %"class.ngraph::Dimension", align 8
  %77 = alloca %"class.ngraph::Dimension", align 8
  %78 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %79 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca i1, align 1
  %82 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %83 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca i1, align 1
  %86 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %87 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca i1, align 1
  %90 = alloca %"class.ngraph::PartialShape", align 8
  %91 = alloca i1, align 1
  %92 = alloca %"class.ngraph::Dimension", align 8
  %93 = alloca %"class.ngraph::Dimension", align 8
  %94 = alloca i64, align 8
  store ptr %0, ptr %10, align 8
  store ptr %1, ptr %11, align 8, !tbaa !5
  store ptr %2, ptr %12, align 8, !tbaa !5
  store ptr %3, ptr %13, align 8, !tbaa !5
  store ptr %4, ptr %14, align 8, !tbaa !5
  store ptr %5, ptr %15, align 8, !tbaa !5
  store ptr %6, ptr %16, align 8, !tbaa !5
  store ptr %7, ptr %17, align 8, !tbaa !5
  store ptr %8, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %19) #8
  %95 = call { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
  %96 = getelementptr inbounds %"class.ngraph::Dimension", ptr %19, i32 0, i32 0
  %97 = getelementptr inbounds { i64, i64 }, ptr %96, i32 0, i32 0
  %98 = extractvalue { i64, i64 } %95, 0
  store i64 %98, ptr %97, align 8
  %99 = getelementptr inbounds { i64, i64 }, ptr %96, i32 0, i32 1
  %100 = extractvalue { i64, i64 } %95, 1
  store i64 %100, ptr %99, align 8
  br label %101

101:                                              ; preds = %9
  %102 = load ptr, ptr %12, align 8, !tbaa !5
  %103 = call { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %102)
  %104 = getelementptr inbounds %"class.ngraph::Dimension", ptr %20, i32 0, i32 0
  %105 = getelementptr inbounds { i64, i64 }, ptr %104, i32 0, i32 0
  %106 = extractvalue { i64, i64 } %103, 0
  store i64 %106, ptr %105, align 8
  %107 = getelementptr inbounds { i64, i64 }, ptr %104, i32 0, i32 1
  %108 = extractvalue { i64, i64 } %103, 1
  store i64 %108, ptr %107, align 8
  %109 = load ptr, ptr %16, align 8, !tbaa !5
  %110 = call { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %109)
  %111 = getelementptr inbounds %"class.ngraph::Dimension", ptr %21, i32 0, i32 0
  %112 = getelementptr inbounds { i64, i64 }, ptr %111, i32 0, i32 0
  %113 = extractvalue { i64, i64 } %110, 0
  store i64 %113, ptr %112, align 8
  %114 = getelementptr inbounds { i64, i64 }, ptr %111, i32 0, i32 1
  %115 = extractvalue { i64, i64 } %110, 1
  store i64 %115, ptr %114, align 8
  %116 = getelementptr inbounds { i64, i64 }, ptr %20, i32 0, i32 0
  %117 = load i64, ptr %116, align 8
  %118 = getelementptr inbounds { i64, i64 }, ptr %20, i32 0, i32 1
  %119 = load i64, ptr %118, align 8
  %120 = getelementptr inbounds { i64, i64 }, ptr %21, i32 0, i32 0
  %121 = load i64, ptr %120, align 8
  %122 = getelementptr inbounds { i64, i64 }, ptr %21, i32 0, i32 1
  %123 = load i64, ptr %122, align 8
  %124 = call noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %19, i64 %117, i64 %119, i64 %121, i64 %123)
  br i1 %124, label %155, label %125

125:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 392, ptr %22) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %22)
  %126 = getelementptr inbounds i8, ptr %22, i64 16
  %127 = load ptr, ptr %12, align 8, !tbaa !5
  %128 = load ptr, ptr %16, align 8, !tbaa !5
  %129 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA61_cJRKNS_12PartialShapeERA18_KcS4_RA3_S5_EEERSoSA_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef nonnull align 1 dereferenceable(61) @.str.33, ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull align 1 dereferenceable(18) @.str.34, ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull align 1 dereferenceable(3) @.str.35)
          to label %130 unwind label %138

130:                                              ; preds = %125
  store i1 true, ptr %27, align 1
  %131 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %25) #8
  %132 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %25, i32 0, i32 0
  store ptr @.str.8, ptr %132, align 8, !tbaa !9
  %133 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %25, i32 0, i32 1
  store i32 256, ptr %133, align 8, !tbaa !12
  %134 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %25, i32 0, i32 2
  store ptr @.str.36, ptr %134, align 8, !tbaa !13
  %135 = load ptr, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(128) %22)
          to label %136 unwind label %142

136:                                              ; preds = %130
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %131, ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef %135, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %137 unwind label %146

137:                                              ; preds = %136
  store i1 false, ptr %27, align 1
  invoke void @__cxa_throw(ptr %131, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %799 unwind label %146

138:                                              ; preds = %125
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %23, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %24, align 4
  br label %154

142:                                              ; preds = %130
  %143 = landingpad { ptr, i32 }
          cleanup
  %144 = extractvalue { ptr, i32 } %143, 0
  store ptr %144, ptr %23, align 8
  %145 = extractvalue { ptr, i32 } %143, 1
  store i32 %145, ptr %24, align 4
  br label %150

146:                                              ; preds = %137, %136
  %147 = landingpad { ptr, i32 }
          cleanup
  %148 = extractvalue { ptr, i32 } %147, 0
  store ptr %148, ptr %23, align 8
  %149 = extractvalue { ptr, i32 } %147, 1
  store i32 %149, ptr %24, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %150

150:                                              ; preds = %146, %142
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #8
  %151 = load i1, ptr %27, align 1
  br i1 %151, label %152, label %153

152:                                              ; preds = %150
  call void @__cxa_free_exception(ptr %131) #8
  br label %153

153:                                              ; preds = %152, %150
  br label %154

154:                                              ; preds = %153, %138
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %22) #8
  call void @llvm.lifetime.end.p0(i64 392, ptr %22) #8
  br label %793

155:                                              ; preds = %101
  br label %156

156:                                              ; preds = %155
  br label %157

157:                                              ; preds = %156
  br label %158

158:                                              ; preds = %157
  %159 = call noundef zeroext i1 @_ZNK6ngraph9Dimension10is_dynamicEv(ptr noundef nonnull align 8 dereferenceable(16) %19)
  br i1 %159, label %193, label %160

160:                                              ; preds = %158
  %161 = call noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %19)
  %162 = icmp sge i64 %161, 3
  br i1 %162, label %193, label %163

163:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 392, ptr %28) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %28)
  %164 = getelementptr inbounds i8, ptr %28, i64 16
  %165 = load ptr, ptr %12, align 8, !tbaa !5
  %166 = load ptr, ptr %16, align 8, !tbaa !5
  %167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA70_cJRA61_KcRA20_S2_RKNS_12PartialShapeERA18_S2_S9_RA3_S2_EEERSoSE_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef nonnull align 1 dereferenceable(70) @.str.37, ptr noundef nonnull align 1 dereferenceable(61) @.str.38, ptr noundef nonnull align 1 dereferenceable(20) @.str.39, ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef nonnull align 1 dereferenceable(18) @.str.34, ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef nonnull align 1 dereferenceable(3) @.str.35)
          to label %168 unwind label %176

168:                                              ; preds = %163
  store i1 true, ptr %31, align 1
  %169 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #8
  %170 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %29, i32 0, i32 0
  store ptr @.str.8, ptr %170, align 8, !tbaa !9
  %171 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %29, i32 0, i32 1
  store i32 267, ptr %171, align 8, !tbaa !12
  %172 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %29, i32 0, i32 2
  store ptr @.str.40, ptr %172, align 8, !tbaa !13
  %173 = load ptr, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(128) %28)
          to label %174 unwind label %180

174:                                              ; preds = %168
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %169, ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef %173, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %175 unwind label %184

175:                                              ; preds = %174
  store i1 false, ptr %31, align 1
  invoke void @__cxa_throw(ptr %169, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %799 unwind label %184

176:                                              ; preds = %163
  %177 = landingpad { ptr, i32 }
          cleanup
  %178 = extractvalue { ptr, i32 } %177, 0
  store ptr %178, ptr %23, align 8
  %179 = extractvalue { ptr, i32 } %177, 1
  store i32 %179, ptr %24, align 4
  br label %192

180:                                              ; preds = %168
  %181 = landingpad { ptr, i32 }
          cleanup
  %182 = extractvalue { ptr, i32 } %181, 0
  store ptr %182, ptr %23, align 8
  %183 = extractvalue { ptr, i32 } %181, 1
  store i32 %183, ptr %24, align 4
  br label %188

184:                                              ; preds = %175, %174
  %185 = landingpad { ptr, i32 }
          cleanup
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %23, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %24, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %188

188:                                              ; preds = %184, %180
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #8
  %189 = load i1, ptr %31, align 1
  br i1 %189, label %190, label %191

190:                                              ; preds = %188
  call void @__cxa_free_exception(ptr %169) #8
  br label %191

191:                                              ; preds = %190, %188
  br label %192

192:                                              ; preds = %191, %176
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %28) #8
  call void @llvm.lifetime.end.p0(i64 392, ptr %28) #8
  br label %793

193:                                              ; preds = %160, %158
  br label %194

194:                                              ; preds = %193
  br label %195

195:                                              ; preds = %194
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #8
  %196 = call { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
  %197 = getelementptr inbounds %"class.ngraph::Dimension", ptr %32, i32 0, i32 0
  %198 = getelementptr inbounds { i64, i64 }, ptr %197, i32 0, i32 0
  %199 = extractvalue { i64, i64 } %196, 0
  store i64 %199, ptr %198, align 8
  %200 = getelementptr inbounds { i64, i64 }, ptr %197, i32 0, i32 1
  %201 = extractvalue { i64, i64 } %196, 1
  store i64 %201, ptr %200, align 8
  br label %202

202:                                              ; preds = %195
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %33, ptr align 8 %32, i64 16, i1 false), !tbaa.struct !14
  call void @llvm.lifetime.start.p0(i64 16, ptr %35) #8
  call void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %35, i64 noundef 2)
  %203 = call { i64, i64 } @_ZNK6ngraph9DimensionmiERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 8 dereferenceable(16) %35)
  %204 = getelementptr inbounds %"class.ngraph::Dimension", ptr %34, i32 0, i32 0
  %205 = getelementptr inbounds { i64, i64 }, ptr %204, i32 0, i32 0
  %206 = extractvalue { i64, i64 } %203, 0
  store i64 %206, ptr %205, align 8
  %207 = getelementptr inbounds { i64, i64 }, ptr %204, i32 0, i32 1
  %208 = extractvalue { i64, i64 } %203, 1
  store i64 %208, ptr %207, align 8
  %209 = getelementptr inbounds { i64, i64 }, ptr %33, i32 0, i32 0
  %210 = load i64, ptr %209, align 8
  %211 = getelementptr inbounds { i64, i64 }, ptr %33, i32 0, i32 1
  %212 = load i64, ptr %211, align 8
  %213 = getelementptr inbounds { i64, i64 }, ptr %34, i32 0, i32 0
  %214 = load i64, ptr %213, align 8
  %215 = getelementptr inbounds { i64, i64 }, ptr %34, i32 0, i32 1
  %216 = load i64, ptr %215, align 8
  %217 = call noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %32, i64 %210, i64 %212, i64 %214, i64 %216)
  br i1 %217, label %218, label %278

218:                                              ; preds = %202
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %36, ptr align 8 %32, i64 16, i1 false), !tbaa.struct !14
  %219 = load ptr, ptr %13, align 8, !tbaa !5
  %220 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %219) #8
  call void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %37, i64 noundef %220)
  %221 = getelementptr inbounds { i64, i64 }, ptr %36, i32 0, i32 0
  %222 = load i64, ptr %221, align 8
  %223 = getelementptr inbounds { i64, i64 }, ptr %36, i32 0, i32 1
  %224 = load i64, ptr %223, align 8
  %225 = getelementptr inbounds { i64, i64 }, ptr %37, i32 0, i32 0
  %226 = load i64, ptr %225, align 8
  %227 = getelementptr inbounds { i64, i64 }, ptr %37, i32 0, i32 1
  %228 = load i64, ptr %227, align 8
  %229 = call noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %32, i64 %222, i64 %224, i64 %226, i64 %228)
  br i1 %229, label %230, label %278

230:                                              ; preds = %218
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %38, ptr align 8 %32, i64 16, i1 false), !tbaa.struct !14
  %231 = load ptr, ptr %14, align 8, !tbaa !5
  %232 = call noundef i64 @_ZNKSt6vectorIlSaIlEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %231) #8
  call void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %39, i64 noundef %232)
  %233 = getelementptr inbounds { i64, i64 }, ptr %38, i32 0, i32 0
  %234 = load i64, ptr %233, align 8
  %235 = getelementptr inbounds { i64, i64 }, ptr %38, i32 0, i32 1
  %236 = load i64, ptr %235, align 8
  %237 = getelementptr inbounds { i64, i64 }, ptr %39, i32 0, i32 0
  %238 = load i64, ptr %237, align 8
  %239 = getelementptr inbounds { i64, i64 }, ptr %39, i32 0, i32 1
  %240 = load i64, ptr %239, align 8
  %241 = call noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %32, i64 %234, i64 %236, i64 %238, i64 %240)
  br i1 %241, label %242, label %278

242:                                              ; preds = %230
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %40, ptr align 8 %32, i64 16, i1 false), !tbaa.struct !14
  %243 = load ptr, ptr %15, align 8, !tbaa !5
  %244 = call noundef i64 @_ZNKSt6vectorIlSaIlEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %243) #8
  call void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %41, i64 noundef %244)
  %245 = getelementptr inbounds { i64, i64 }, ptr %40, i32 0, i32 0
  %246 = load i64, ptr %245, align 8
  %247 = getelementptr inbounds { i64, i64 }, ptr %40, i32 0, i32 1
  %248 = load i64, ptr %247, align 8
  %249 = getelementptr inbounds { i64, i64 }, ptr %41, i32 0, i32 0
  %250 = load i64, ptr %249, align 8
  %251 = getelementptr inbounds { i64, i64 }, ptr %41, i32 0, i32 1
  %252 = load i64, ptr %251, align 8
  %253 = call noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %32, i64 %246, i64 %248, i64 %250, i64 %252)
  br i1 %253, label %254, label %278

254:                                              ; preds = %242
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %42, ptr align 8 %32, i64 16, i1 false), !tbaa.struct !14
  %255 = load ptr, ptr %17, align 8, !tbaa !5
  %256 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %255) #8
  call void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %43, i64 noundef %256)
  %257 = getelementptr inbounds { i64, i64 }, ptr %42, i32 0, i32 0
  %258 = load i64, ptr %257, align 8
  %259 = getelementptr inbounds { i64, i64 }, ptr %42, i32 0, i32 1
  %260 = load i64, ptr %259, align 8
  %261 = getelementptr inbounds { i64, i64 }, ptr %43, i32 0, i32 0
  %262 = load i64, ptr %261, align 8
  %263 = getelementptr inbounds { i64, i64 }, ptr %43, i32 0, i32 1
  %264 = load i64, ptr %263, align 8
  %265 = call noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %32, i64 %258, i64 %260, i64 %262, i64 %264)
  br i1 %265, label %266, label %278

266:                                              ; preds = %254
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %44, ptr align 8 %32, i64 16, i1 false), !tbaa.struct !14
  %267 = load ptr, ptr %18, align 8, !tbaa !5
  %268 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %267) #8
  call void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %45, i64 noundef %268)
  %269 = getelementptr inbounds { i64, i64 }, ptr %44, i32 0, i32 0
  %270 = load i64, ptr %269, align 8
  %271 = getelementptr inbounds { i64, i64 }, ptr %44, i32 0, i32 1
  %272 = load i64, ptr %271, align 8
  %273 = getelementptr inbounds { i64, i64 }, ptr %45, i32 0, i32 0
  %274 = load i64, ptr %273, align 8
  %275 = getelementptr inbounds { i64, i64 }, ptr %45, i32 0, i32 1
  %276 = load i64, ptr %275, align 8
  %277 = call noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %32, i64 %270, i64 %272, i64 %274, i64 %276)
  br label %278

278:                                              ; preds = %266, %254, %242, %230, %218, %202
  %279 = phi i1 [ false, %254 ], [ false, %242 ], [ false, %230 ], [ false, %218 ], [ false, %202 ], [ %277, %266 ]
  %280 = xor i1 %279, true
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #8
  br i1 %280, label %281, label %363

281:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 392, ptr %46) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %46)
  %282 = getelementptr inbounds i8, ptr %46, i64 16
  %283 = load ptr, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %47) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %48) #8
  %284 = load ptr, ptr %12, align 8, !tbaa !5
  %285 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %284)
          to label %286 unwind label %331

286:                                              ; preds = %281
  %287 = getelementptr inbounds %"class.ngraph::Dimension", ptr %48, i32 0, i32 0
  %288 = getelementptr inbounds { i64, i64 }, ptr %287, i32 0, i32 0
  %289 = extractvalue { i64, i64 } %285, 0
  store i64 %289, ptr %288, align 8
  %290 = getelementptr inbounds { i64, i64 }, ptr %287, i32 0, i32 1
  %291 = extractvalue { i64, i64 } %285, 1
  store i64 %291, ptr %290, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %49) #8
  invoke void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %49, i64 noundef 2)
          to label %292 unwind label %335

292:                                              ; preds = %286
  %293 = invoke { i64, i64 } @_ZNK6ngraph9DimensionmiERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(16) %49)
          to label %294 unwind label %335

294:                                              ; preds = %292
  %295 = getelementptr inbounds %"class.ngraph::Dimension", ptr %47, i32 0, i32 0
  %296 = getelementptr inbounds { i64, i64 }, ptr %295, i32 0, i32 0
  %297 = extractvalue { i64, i64 } %293, 0
  store i64 %297, ptr %296, align 8
  %298 = getelementptr inbounds { i64, i64 }, ptr %295, i32 0, i32 1
  %299 = extractvalue { i64, i64 } %293, 1
  store i64 %299, ptr %298, align 8
  %300 = load ptr, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %50) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %51) #8
  %301 = load ptr, ptr %16, align 8, !tbaa !5
  %302 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %301)
          to label %303 unwind label %339

303:                                              ; preds = %294
  %304 = getelementptr inbounds %"class.ngraph::Dimension", ptr %51, i32 0, i32 0
  %305 = getelementptr inbounds { i64, i64 }, ptr %304, i32 0, i32 0
  %306 = extractvalue { i64, i64 } %302, 0
  store i64 %306, ptr %305, align 8
  %307 = getelementptr inbounds { i64, i64 }, ptr %304, i32 0, i32 1
  %308 = extractvalue { i64, i64 } %302, 1
  store i64 %308, ptr %307, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %52) #8
  invoke void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %52, i64 noundef 2)
          to label %309 unwind label %343

309:                                              ; preds = %303
  %310 = invoke { i64, i64 } @_ZNK6ngraph9DimensionmiERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %51, ptr noundef nonnull align 8 dereferenceable(16) %52)
          to label %311 unwind label %343

311:                                              ; preds = %309
  %312 = getelementptr inbounds %"class.ngraph::Dimension", ptr %50, i32 0, i32 0
  %313 = getelementptr inbounds { i64, i64 }, ptr %312, i32 0, i32 0
  %314 = extractvalue { i64, i64 } %310, 0
  store i64 %314, ptr %313, align 8
  %315 = getelementptr inbounds { i64, i64 }, ptr %312, i32 0, i32 1
  %316 = extractvalue { i64, i64 } %310, 1
  store i64 %316, ptr %315, align 8
  %317 = load ptr, ptr %13, align 8, !tbaa !5
  %318 = load ptr, ptr %14, align 8, !tbaa !5
  %319 = load ptr, ptr %15, align 8, !tbaa !5
  %320 = load ptr, ptr %17, align 8, !tbaa !5
  %321 = load ptr, ptr %18, align 8, !tbaa !5
  %322 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA63_cJRKNS_12PartialShapeERA24_KcNS_9DimensionERA25_S5_S4_RA30_S5_S8_RA19_S5_RKNS_7StridesESE_RKNS_14CoordinateDiffESE_SK_RA20_S5_SH_SA_SH_RA16_S5_EEERSoSP_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %282, ptr noundef nonnull align 1 dereferenceable(63) @.str.41, ptr noundef nonnull align 8 dereferenceable(32) %283, ptr noundef nonnull align 1 dereferenceable(24) @.str.42, ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 1 dereferenceable(25) @.str.43, ptr noundef nonnull align 8 dereferenceable(32) %300, ptr noundef nonnull align 1 dereferenceable(30) @.str.44, ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 1 dereferenceable(19) @.str.1, ptr noundef nonnull align 8 dereferenceable(24) %317, ptr noundef nonnull align 1 dereferenceable(19) @.str.2, ptr noundef nonnull align 8 dereferenceable(24) %318, ptr noundef nonnull align 1 dereferenceable(19) @.str.3, ptr noundef nonnull align 8 dereferenceable(24) %319, ptr noundef nonnull align 1 dereferenceable(20) @.str.45, ptr noundef nonnull align 8 dereferenceable(24) %320, ptr noundef nonnull align 1 dereferenceable(25) @.str.46, ptr noundef nonnull align 8 dereferenceable(24) %321, ptr noundef nonnull align 1 dereferenceable(16) @.str.7)
          to label %323 unwind label %343

323:                                              ; preds = %311
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #8
  store i1 true, ptr %55, align 1
  %324 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #8
  %325 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %53, i32 0, i32 0
  store ptr @.str.8, ptr %325, align 8, !tbaa !9
  %326 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %53, i32 0, i32 1
  store i32 295, ptr %326, align 8, !tbaa !12
  %327 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %53, i32 0, i32 2
  store ptr @.str.47, ptr %327, align 8, !tbaa !13
  %328 = load ptr, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(128) %46)
          to label %329 unwind label %350

329:                                              ; preds = %323
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %324, ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef %328, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %330 unwind label %354

330:                                              ; preds = %329
  store i1 false, ptr %55, align 1
  invoke void @__cxa_throw(ptr %324, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %799 unwind label %354

331:                                              ; preds = %281
  %332 = landingpad { ptr, i32 }
          cleanup
  %333 = extractvalue { ptr, i32 } %332, 0
  store ptr %333, ptr %23, align 8
  %334 = extractvalue { ptr, i32 } %332, 1
  store i32 %334, ptr %24, align 4
  br label %349

335:                                              ; preds = %292, %286
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %23, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %24, align 4
  br label %348

339:                                              ; preds = %294
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %23, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %24, align 4
  br label %347

343:                                              ; preds = %311, %309, %303
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %23, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #8
  br label %347

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

348:                                              ; preds = %347, %335
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #8
  br label %349

349:                                              ; preds = %348, %331
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #8
  br label %362

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

354:                                              ; preds = %330, %329
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %23, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %24, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %358

358:                                              ; preds = %354, %350
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #8
  %359 = load i1, ptr %55, align 1
  br i1 %359, label %360, label %361

360:                                              ; preds = %358
  call void @__cxa_free_exception(ptr %324) #8
  br label %361

361:                                              ; preds = %360, %358
  br label %362

362:                                              ; preds = %361, %349
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %46) #8
  call void @llvm.lifetime.end.p0(i64 392, ptr %46) #8
  br label %792

363:                                              ; preds = %278
  br label %364

364:                                              ; preds = %363
  br label %365

365:                                              ; preds = %364
  call void @llvm.lifetime.start.p0(i64 16, ptr %56) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #8
  %366 = load ptr, ptr %12, align 8, !tbaa !5
  %367 = call { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %366)
  %368 = getelementptr inbounds %"class.ngraph::Dimension", ptr %57, i32 0, i32 0
  %369 = getelementptr inbounds { i64, i64 }, ptr %368, i32 0, i32 0
  %370 = extractvalue { i64, i64 } %367, 0
  store i64 %370, ptr %369, align 8
  %371 = getelementptr inbounds { i64, i64 }, ptr %368, i32 0, i32 1
  %372 = extractvalue { i64, i64 } %367, 1
  store i64 %372, ptr %371, align 8
  %373 = call noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %57)
  br i1 %373, label %374, label %377

374:                                              ; preds = %365
  %375 = load ptr, ptr %12, align 8, !tbaa !5
  %376 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %375, i64 noundef 0)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %56, ptr align 8 %376, i64 16, i1 false), !tbaa.struct !14
  br label %384

377:                                              ; preds = %365
  %378 = call { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
  %379 = getelementptr inbounds %"class.ngraph::Dimension", ptr %56, i32 0, i32 0
  %380 = getelementptr inbounds { i64, i64 }, ptr %379, i32 0, i32 0
  %381 = extractvalue { i64, i64 } %378, 0
  store i64 %381, ptr %380, align 8
  %382 = getelementptr inbounds { i64, i64 }, ptr %379, i32 0, i32 1
  %383 = extractvalue { i64, i64 } %378, 1
  store i64 %383, ptr %382, align 8
  br label %384

384:                                              ; preds = %377, %374
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #8
  %385 = load ptr, ptr %12, align 8, !tbaa !5
  %386 = call { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %385)
  %387 = getelementptr inbounds %"class.ngraph::Dimension", ptr %59, i32 0, i32 0
  %388 = getelementptr inbounds { i64, i64 }, ptr %387, i32 0, i32 0
  %389 = extractvalue { i64, i64 } %386, 0
  store i64 %389, ptr %388, align 8
  %390 = getelementptr inbounds { i64, i64 }, ptr %387, i32 0, i32 1
  %391 = extractvalue { i64, i64 } %386, 1
  store i64 %391, ptr %390, align 8
  %392 = call noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %59)
  br i1 %392, label %393, label %396

393:                                              ; preds = %384
  %394 = load ptr, ptr %12, align 8, !tbaa !5
  %395 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %394, i64 noundef 1)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %58, ptr align 8 %395, i64 16, i1 false), !tbaa.struct !14
  br label %403

396:                                              ; preds = %384
  %397 = call { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
  %398 = getelementptr inbounds %"class.ngraph::Dimension", ptr %58, i32 0, i32 0
  %399 = getelementptr inbounds { i64, i64 }, ptr %398, i32 0, i32 0
  %400 = extractvalue { i64, i64 } %397, 0
  store i64 %400, ptr %399, align 8
  %401 = getelementptr inbounds { i64, i64 }, ptr %398, i32 0, i32 1
  %402 = extractvalue { i64, i64 } %397, 1
  store i64 %402, ptr %401, align 8
  br label %403

403:                                              ; preds = %396, %393
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %61, ptr align 8 %32, i64 16, i1 false), !tbaa.struct !14
  %404 = getelementptr inbounds { i64, i64 }, ptr %61, i32 0, i32 0
  %405 = load i64, ptr %404, align 8
  %406 = getelementptr inbounds { i64, i64 }, ptr %61, i32 0, i32 1
  %407 = load i64, ptr %406, align 8
  call void @_ZN6ngraph12PartialShape7dynamicENS_9DimensionE(ptr dead_on_unwind writable sret(%"class.ngraph::PartialShape") align 8 %60, i64 %405, i64 %407)
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %63) #8
  %408 = load ptr, ptr %16, align 8, !tbaa !5
  %409 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %408)
          to label %410 unwind label %465

410:                                              ; preds = %403
  %411 = getelementptr inbounds %"class.ngraph::Dimension", ptr %63, i32 0, i32 0
  %412 = getelementptr inbounds { i64, i64 }, ptr %411, i32 0, i32 0
  %413 = extractvalue { i64, i64 } %409, 0
  store i64 %413, ptr %412, align 8
  %414 = getelementptr inbounds { i64, i64 }, ptr %411, i32 0, i32 1
  %415 = extractvalue { i64, i64 } %409, 1
  store i64 %415, ptr %414, align 8
  %416 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %63)
          to label %417 unwind label %465

417:                                              ; preds = %410
  br i1 %416, label %418, label %422

418:                                              ; preds = %417
  %419 = load ptr, ptr %16, align 8, !tbaa !5
  %420 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %419, i64 noundef 0)
          to label %421 unwind label %465

421:                                              ; preds = %418
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %62, ptr align 8 %420, i64 16, i1 false), !tbaa.struct !14
  br label %430

422:                                              ; preds = %417
  %423 = invoke { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
          to label %424 unwind label %465

424:                                              ; preds = %422
  %425 = getelementptr inbounds %"class.ngraph::Dimension", ptr %62, i32 0, i32 0
  %426 = getelementptr inbounds { i64, i64 }, ptr %425, i32 0, i32 0
  %427 = extractvalue { i64, i64 } %423, 0
  store i64 %427, ptr %426, align 8
  %428 = getelementptr inbounds { i64, i64 }, ptr %425, i32 0, i32 1
  %429 = extractvalue { i64, i64 } %423, 1
  store i64 %429, ptr %428, align 8
  br label %430

430:                                              ; preds = %424, %421
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %64) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %65) #8
  %431 = load ptr, ptr %16, align 8, !tbaa !5
  %432 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %431)
          to label %433 unwind label %469

433:                                              ; preds = %430
  %434 = getelementptr inbounds %"class.ngraph::Dimension", ptr %65, i32 0, i32 0
  %435 = getelementptr inbounds { i64, i64 }, ptr %434, i32 0, i32 0
  %436 = extractvalue { i64, i64 } %432, 0
  store i64 %436, ptr %435, align 8
  %437 = getelementptr inbounds { i64, i64 }, ptr %434, i32 0, i32 1
  %438 = extractvalue { i64, i64 } %432, 1
  store i64 %438, ptr %437, align 8
  %439 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %65)
          to label %440 unwind label %469

440:                                              ; preds = %433
  br i1 %439, label %441, label %445

441:                                              ; preds = %440
  %442 = load ptr, ptr %16, align 8, !tbaa !5
  %443 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %442, i64 noundef 1)
          to label %444 unwind label %469

444:                                              ; preds = %441
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %64, ptr align 8 %443, i64 16, i1 false), !tbaa.struct !14
  br label %453

445:                                              ; preds = %440
  %446 = invoke { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
          to label %447 unwind label %469

447:                                              ; preds = %445
  %448 = getelementptr inbounds %"class.ngraph::Dimension", ptr %64, i32 0, i32 0
  %449 = getelementptr inbounds { i64, i64 }, ptr %448, i32 0, i32 0
  %450 = extractvalue { i64, i64 } %446, 0
  store i64 %450, ptr %449, align 8
  %451 = getelementptr inbounds { i64, i64 }, ptr %448, i32 0, i32 1
  %452 = extractvalue { i64, i64 } %446, 1
  store i64 %452, ptr %451, align 8
  br label %453

453:                                              ; preds = %447, %444
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %67, ptr align 8 %32, i64 16, i1 false), !tbaa.struct !14
  %454 = getelementptr inbounds { i64, i64 }, ptr %67, i32 0, i32 0
  %455 = load i64, ptr %454, align 8
  %456 = getelementptr inbounds { i64, i64 }, ptr %67, i32 0, i32 1
  %457 = load i64, ptr %456, align 8
  invoke void @_ZN6ngraph12PartialShape7dynamicENS_9DimensionE(ptr dead_on_unwind writable sret(%"class.ngraph::PartialShape") align 8 %66, i64 %455, i64 %457)
          to label %458 unwind label %473

458:                                              ; preds = %453
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #8
  store i64 0, ptr %68, align 8, !tbaa !15
  br label %459

459:                                              ; preds = %530, %458
  %460 = load i64, ptr %68, align 8, !tbaa !15
  %461 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %32)
          to label %462 unwind label %477

462:                                              ; preds = %459
  %463 = icmp ult i64 %460, %461
  br i1 %463, label %481, label %464

464:                                              ; preds = %462
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  br label %534

465:                                              ; preds = %422, %418, %410, %403
  %466 = landingpad { ptr, i32 }
          cleanup
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %23, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #8
  br label %791

469:                                              ; preds = %445, %441, %433, %430
  %470 = landingpad { ptr, i32 }
          cleanup
  %471 = extractvalue { ptr, i32 } %470, 0
  store ptr %471, ptr %23, align 8
  %472 = extractvalue { ptr, i32 } %470, 1
  store i32 %472, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #8
  br label %790

473:                                              ; preds = %453
  %474 = landingpad { ptr, i32 }
          cleanup
  %475 = extractvalue { ptr, i32 } %474, 0
  store ptr %475, ptr %23, align 8
  %476 = extractvalue { ptr, i32 } %474, 1
  store i32 %476, ptr %24, align 4
  br label %789

477:                                              ; preds = %521, %516, %497, %492, %459
  %478 = landingpad { ptr, i32 }
          cleanup
  %479 = extractvalue { ptr, i32 } %478, 0
  store ptr %479, ptr %23, align 8
  %480 = extractvalue { ptr, i32 } %478, 1
  store i32 %480, ptr %24, align 4
  br label %533

481:                                              ; preds = %462
  call void @llvm.lifetime.start.p0(i64 16, ptr %69) #8
  %482 = load ptr, ptr %12, align 8, !tbaa !5
  %483 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %482)
          to label %484 unwind label %501

484:                                              ; preds = %481
  %485 = getelementptr inbounds %"class.ngraph::Dimension", ptr %69, i32 0, i32 0
  %486 = getelementptr inbounds { i64, i64 }, ptr %485, i32 0, i32 0
  %487 = extractvalue { i64, i64 } %483, 0
  store i64 %487, ptr %486, align 8
  %488 = getelementptr inbounds { i64, i64 }, ptr %485, i32 0, i32 1
  %489 = extractvalue { i64, i64 } %483, 1
  store i64 %489, ptr %488, align 8
  %490 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %69)
          to label %491 unwind label %501

491:                                              ; preds = %484
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #8
  br i1 %490, label %492, label %505

492:                                              ; preds = %491
  %493 = load ptr, ptr %12, align 8, !tbaa !5
  %494 = load i64, ptr %68, align 8, !tbaa !15
  %495 = add i64 %494, 2
  %496 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %493, i64 noundef %495)
          to label %497 unwind label %477

497:                                              ; preds = %492
  %498 = load i64, ptr %68, align 8, !tbaa !15
  %499 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %60, i64 noundef %498)
          to label %500 unwind label %477

500:                                              ; preds = %497
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %499, ptr align 8 %496, i64 16, i1 false), !tbaa.struct !14
  br label %505

501:                                              ; preds = %484, %481
  %502 = landingpad { ptr, i32 }
          cleanup
  %503 = extractvalue { ptr, i32 } %502, 0
  store ptr %503, ptr %23, align 8
  %504 = extractvalue { ptr, i32 } %502, 1
  store i32 %504, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #8
  br label %533

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

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

515:                                              ; preds = %508
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #8
  br i1 %514, label %516, label %529

516:                                              ; preds = %515
  %517 = load ptr, ptr %16, align 8, !tbaa !5
  %518 = load i64, ptr %68, align 8, !tbaa !15
  %519 = add i64 %518, 2
  %520 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %517, i64 noundef %519)
          to label %521 unwind label %477

521:                                              ; preds = %516
  %522 = load i64, ptr %68, align 8, !tbaa !15
  %523 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %66, i64 noundef %522)
          to label %524 unwind label %477

524:                                              ; preds = %521
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %523, ptr align 8 %520, i64 16, i1 false), !tbaa.struct !14
  br label %529

525:                                              ; preds = %508, %505
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %23, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #8
  br label %533

529:                                              ; preds = %524, %515
  br label %530

530:                                              ; preds = %529
  %531 = load i64, ptr %68, align 8, !tbaa !15
  %532 = add i64 %531, 1
  store i64 %532, ptr %68, align 8, !tbaa !15
  br label %459, !llvm.loop !17

533:                                              ; preds = %525, %501, %477
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  br label %788

534:                                              ; preds = %464
  br label %535

535:                                              ; preds = %534
  %536 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension10is_dynamicEv(ptr noundef nonnull align 8 dereferenceable(16) %56)
          to label %537 unwind label %554

537:                                              ; preds = %535
  br i1 %536, label %580, label %538

538:                                              ; preds = %537
  %539 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %56)
          to label %540 unwind label %554

540:                                              ; preds = %538
  %541 = icmp sgt i64 %539, 0
  br i1 %541, label %580, label %542

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

543:                                              ; preds = %542
  %544 = getelementptr inbounds i8, ptr %71, i64 16
  %545 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA20_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %544, ptr noundef nonnull align 1 dereferenceable(20) @.str.48)
          to label %546 unwind label %562

546:                                              ; preds = %543
  store i1 true, ptr %74, align 1
  %547 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %72) #8
  %548 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %72, i32 0, i32 0
  store ptr @.str.8, ptr %548, align 8, !tbaa !9
  %549 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %72, i32 0, i32 1
  store i32 327, ptr %549, align 8, !tbaa !12
  %550 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %72, i32 0, i32 2
  store ptr @.str.49, ptr %550, align 8, !tbaa !13
  %551 = load ptr, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(128) %71)
          to label %552 unwind label %566

552:                                              ; preds = %546
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %547, ptr noundef nonnull align 8 dereferenceable(24) %72, ptr noundef %551, ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %553 unwind label %570

553:                                              ; preds = %552
  store i1 false, ptr %74, align 1
  invoke void @__cxa_throw(ptr %547, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %799 unwind label %570

554:                                              ; preds = %538, %535
  %555 = landingpad { ptr, i32 }
          cleanup
  %556 = extractvalue { ptr, i32 } %555, 0
  store ptr %556, ptr %23, align 8
  %557 = extractvalue { ptr, i32 } %555, 1
  store i32 %557, ptr %24, align 4
  br label %788

558:                                              ; preds = %542
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %23, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %24, align 4
  br label %579

562:                                              ; preds = %543
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %23, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %24, align 4
  br label %578

566:                                              ; preds = %546
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %23, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %24, align 4
  br label %574

570:                                              ; preds = %553, %552
  %571 = landingpad { ptr, i32 }
          cleanup
  %572 = extractvalue { ptr, i32 } %571, 0
  store ptr %572, ptr %23, align 8
  %573 = extractvalue { ptr, i32 } %571, 1
  store i32 %573, ptr %24, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  br label %574

574:                                              ; preds = %570, %566
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %72) #8
  %575 = load i1, ptr %74, align 1
  br i1 %575, label %576, label %577

576:                                              ; preds = %574
  call void @__cxa_free_exception(ptr %547) #8
  br label %577

577:                                              ; preds = %576, %574
  br label %578

578:                                              ; preds = %577, %562
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %71) #8
  br label %579

579:                                              ; preds = %578, %558
  call void @llvm.lifetime.end.p0(i64 392, ptr %71) #8
  br label %788

580:                                              ; preds = %540, %537
  br label %581

581:                                              ; preds = %580
  br label %582

582:                                              ; preds = %581
  call void @llvm.lifetime.start.p0(i64 16, ptr %75) #8
  call void @_ZN6ngraph9DimensionC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %75) #8
  br label %583

583:                                              ; preds = %582
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %76, ptr align 8 %58, i64 16, i1 false), !tbaa.struct !14
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %77, ptr align 8 %64, i64 16, i1 false), !tbaa.struct !14
  %584 = getelementptr inbounds { i64, i64 }, ptr %76, i32 0, i32 0
  %585 = load i64, ptr %584, align 8
  %586 = getelementptr inbounds { i64, i64 }, ptr %76, i32 0, i32 1
  %587 = load i64, ptr %586, align 8
  %588 = getelementptr inbounds { i64, i64 }, ptr %77, i32 0, i32 0
  %589 = load i64, ptr %588, align 8
  %590 = getelementptr inbounds { i64, i64 }, ptr %77, i32 0, i32 1
  %591 = load i64, ptr %590, align 8
  %592 = invoke noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %75, i64 %585, i64 %587, i64 %589, i64 %591)
          to label %593 unwind label %606

593:                                              ; preds = %583
  br i1 %592, label %632, label %594

594:                                              ; preds = %593
  call void @llvm.lifetime.start.p0(i64 392, ptr %78) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %78)
          to label %595 unwind label %610

595:                                              ; preds = %594
  %596 = getelementptr inbounds i8, ptr %78, i64 16
  %597 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA27_cJRNS_9DimensionERA31_KcRA16_S4_S3_RA3_S4_EEERSoSB_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %596, ptr noundef nonnull align 1 dereferenceable(27) @.str.50, ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 1 dereferenceable(31) @.str.51, ptr noundef nonnull align 1 dereferenceable(16) @.str.52, ptr noundef nonnull align 8 dereferenceable(16) %64, ptr noundef nonnull align 1 dereferenceable(3) @.str.35)
          to label %598 unwind label %614

598:                                              ; preds = %595
  store i1 true, ptr %81, align 1
  %599 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %79) #8
  %600 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %79, i32 0, i32 0
  store ptr @.str.8, ptr %600, align 8, !tbaa !9
  %601 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %79, i32 0, i32 1
  store i32 339, ptr %601, align 8, !tbaa !12
  %602 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %79, i32 0, i32 2
  store ptr @.str.53, ptr %602, align 8, !tbaa !13
  %603 = load ptr, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(128) %78)
          to label %604 unwind label %618

604:                                              ; preds = %598
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %599, ptr noundef nonnull align 8 dereferenceable(24) %79, ptr noundef %603, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %605 unwind label %622

605:                                              ; preds = %604
  store i1 false, ptr %81, align 1
  invoke void @__cxa_throw(ptr %599, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %799 unwind label %622

606:                                              ; preds = %682, %679, %638, %635, %583
  %607 = landingpad { ptr, i32 }
          cleanup
  %608 = extractvalue { ptr, i32 } %607, 0
  store ptr %608, ptr %23, align 8
  %609 = extractvalue { ptr, i32 } %607, 1
  store i32 %609, ptr %24, align 4
  br label %787

610:                                              ; preds = %594
  %611 = landingpad { ptr, i32 }
          cleanup
  %612 = extractvalue { ptr, i32 } %611, 0
  store ptr %612, ptr %23, align 8
  %613 = extractvalue { ptr, i32 } %611, 1
  store i32 %613, ptr %24, align 4
  br label %631

614:                                              ; preds = %595
  %615 = landingpad { ptr, i32 }
          cleanup
  %616 = extractvalue { ptr, i32 } %615, 0
  store ptr %616, ptr %23, align 8
  %617 = extractvalue { ptr, i32 } %615, 1
  store i32 %617, ptr %24, align 4
  br label %630

618:                                              ; preds = %598
  %619 = landingpad { ptr, i32 }
          cleanup
  %620 = extractvalue { ptr, i32 } %619, 0
  store ptr %620, ptr %23, align 8
  %621 = extractvalue { ptr, i32 } %619, 1
  store i32 %621, ptr %24, align 4
  br label %626

622:                                              ; preds = %605, %604
  %623 = landingpad { ptr, i32 }
          cleanup
  %624 = extractvalue { ptr, i32 } %623, 0
  store ptr %624, ptr %23, align 8
  %625 = extractvalue { ptr, i32 } %623, 1
  store i32 %625, ptr %24, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  br label %626

626:                                              ; preds = %622, %618
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %79) #8
  %627 = load i1, ptr %81, align 1
  br i1 %627, label %628, label %629

628:                                              ; preds = %626
  call void @__cxa_free_exception(ptr %599) #8
  br label %629

629:                                              ; preds = %628, %626
  br label %630

630:                                              ; preds = %629, %614
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %78) #8
  br label %631

631:                                              ; preds = %630, %610
  call void @llvm.lifetime.end.p0(i64 392, ptr %78) #8
  br label %787

632:                                              ; preds = %593
  br label %633

633:                                              ; preds = %632
  br label %634

634:                                              ; preds = %633
  br label %635

635:                                              ; preds = %634
  %636 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension10is_dynamicEv(ptr noundef nonnull align 8 dereferenceable(16) %75)
          to label %637 unwind label %606

637:                                              ; preds = %635
  br i1 %636, label %676, label %638

638:                                              ; preds = %637
  %639 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %75)
          to label %640 unwind label %606

640:                                              ; preds = %638
  %641 = icmp sgt i64 %639, 0
  br i1 %641, label %676, label %642

642:                                              ; preds = %640
  call void @llvm.lifetime.start.p0(i64 392, ptr %82) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %82)
          to label %643 unwind label %654

643:                                              ; preds = %642
  %644 = getelementptr inbounds i8, ptr %82, i64 16
  %645 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA68_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %644, ptr noundef nonnull align 1 dereferenceable(68) @.str.54)
          to label %646 unwind label %658

646:                                              ; preds = %643
  store i1 true, ptr %85, align 1
  %647 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %83) #8
  %648 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %83, i32 0, i32 0
  store ptr @.str.8, ptr %648, align 8, !tbaa !9
  %649 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %83, i32 0, i32 1
  store i32 344, ptr %649, align 8, !tbaa !12
  %650 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %83, i32 0, i32 2
  store ptr @.str.55, ptr %650, align 8, !tbaa !13
  %651 = load ptr, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %84, ptr noundef nonnull align 8 dereferenceable(128) %82)
          to label %652 unwind label %662

652:                                              ; preds = %646
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %647, ptr noundef nonnull align 8 dereferenceable(24) %83, ptr noundef %651, ptr noundef nonnull align 8 dereferenceable(32) %84)
          to label %653 unwind label %666

653:                                              ; preds = %652
  store i1 false, ptr %85, align 1
  invoke void @__cxa_throw(ptr %647, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %799 unwind label %666

654:                                              ; preds = %642
  %655 = landingpad { ptr, i32 }
          cleanup
  %656 = extractvalue { ptr, i32 } %655, 0
  store ptr %656, ptr %23, align 8
  %657 = extractvalue { ptr, i32 } %655, 1
  store i32 %657, ptr %24, align 4
  br label %675

658:                                              ; preds = %643
  %659 = landingpad { ptr, i32 }
          cleanup
  %660 = extractvalue { ptr, i32 } %659, 0
  store ptr %660, ptr %23, align 8
  %661 = extractvalue { ptr, i32 } %659, 1
  store i32 %661, ptr %24, align 4
  br label %674

662:                                              ; preds = %646
  %663 = landingpad { ptr, i32 }
          cleanup
  %664 = extractvalue { ptr, i32 } %663, 0
  store ptr %664, ptr %23, align 8
  %665 = extractvalue { ptr, i32 } %663, 1
  store i32 %665, ptr %24, align 4
  br label %670

666:                                              ; preds = %653, %652
  %667 = landingpad { ptr, i32 }
          cleanup
  %668 = extractvalue { ptr, i32 } %667, 0
  store ptr %668, ptr %23, align 8
  %669 = extractvalue { ptr, i32 } %667, 1
  store i32 %669, ptr %24, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  br label %670

670:                                              ; preds = %666, %662
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %83) #8
  %671 = load i1, ptr %85, align 1
  br i1 %671, label %672, label %673

672:                                              ; preds = %670
  call void @__cxa_free_exception(ptr %647) #8
  br label %673

673:                                              ; preds = %672, %670
  br label %674

674:                                              ; preds = %673, %658
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %82) #8
  br label %675

675:                                              ; preds = %674, %654
  call void @llvm.lifetime.end.p0(i64 392, ptr %82) #8
  br label %787

676:                                              ; preds = %640, %637
  br label %677

677:                                              ; preds = %676
  br label %678

678:                                              ; preds = %677
  br label %679

679:                                              ; preds = %678
  %680 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension10is_dynamicEv(ptr noundef nonnull align 8 dereferenceable(16) %62)
          to label %681 unwind label %606

681:                                              ; preds = %679
  br i1 %680, label %720, label %682

682:                                              ; preds = %681
  %683 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %62)
          to label %684 unwind label %606

684:                                              ; preds = %682
  %685 = icmp sgt i64 %683, 0
  br i1 %685, label %720, label %686

686:                                              ; preds = %684
  call void @llvm.lifetime.start.p0(i64 392, ptr %86) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %86)
          to label %687 unwind label %698

687:                                              ; preds = %686
  %688 = getelementptr inbounds i8, ptr %86, i64 16
  %689 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA37_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %688, ptr noundef nonnull align 1 dereferenceable(37) @.str.56)
          to label %690 unwind label %702

690:                                              ; preds = %687
  store i1 true, ptr %89, align 1
  %691 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %87) #8
  %692 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %87, i32 0, i32 0
  store ptr @.str.8, ptr %692, align 8, !tbaa !9
  %693 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %87, i32 0, i32 1
  store i32 349, ptr %693, align 8, !tbaa !12
  %694 = getelementptr inbounds %"struct.ngraph::CheckLocInfo", ptr %87, i32 0, i32 2
  store ptr @.str.57, ptr %694, align 8, !tbaa !13
  %695 = load ptr, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(128) %86)
          to label %696 unwind label %706

696:                                              ; preds = %690
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %691, ptr noundef nonnull align 8 dereferenceable(24) %87, ptr noundef %695, ptr noundef nonnull align 8 dereferenceable(32) %88)
          to label %697 unwind label %710

697:                                              ; preds = %696
  store i1 false, ptr %89, align 1
  invoke void @__cxa_throw(ptr %691, ptr @_ZTIN6ngraph21NodeValidationFailureE, ptr @_ZNSt13runtime_errorD2Ev) #9
          to label %799 unwind label %710

698:                                              ; preds = %686
  %699 = landingpad { ptr, i32 }
          cleanup
  %700 = extractvalue { ptr, i32 } %699, 0
  store ptr %700, ptr %23, align 8
  %701 = extractvalue { ptr, i32 } %699, 1
  store i32 %701, ptr %24, align 4
  br label %719

702:                                              ; preds = %687
  %703 = landingpad { ptr, i32 }
          cleanup
  %704 = extractvalue { ptr, i32 } %703, 0
  store ptr %704, ptr %23, align 8
  %705 = extractvalue { ptr, i32 } %703, 1
  store i32 %705, ptr %24, align 4
  br label %718

706:                                              ; preds = %690
  %707 = landingpad { ptr, i32 }
          cleanup
  %708 = extractvalue { ptr, i32 } %707, 0
  store ptr %708, ptr %23, align 8
  %709 = extractvalue { ptr, i32 } %707, 1
  store i32 %709, ptr %24, align 4
  br label %714

710:                                              ; preds = %697, %696
  %711 = landingpad { ptr, i32 }
          cleanup
  %712 = extractvalue { ptr, i32 } %711, 0
  store ptr %712, ptr %23, align 8
  %713 = extractvalue { ptr, i32 } %711, 1
  store i32 %713, ptr %24, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  br label %714

714:                                              ; preds = %710, %706
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %87) #8
  %715 = load i1, ptr %89, align 1
  br i1 %715, label %716, label %717

716:                                              ; preds = %714
  call void @__cxa_free_exception(ptr %691) #8
  br label %717

717:                                              ; preds = %716, %714
  br label %718

718:                                              ; preds = %717, %702
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %86) #8
  br label %719

719:                                              ; preds = %718, %698
  call void @llvm.lifetime.end.p0(i64 392, ptr %86) #8
  br label %787

720:                                              ; preds = %684, %681
  br label %721

721:                                              ; preds = %720
  br label %722

722:                                              ; preds = %721
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #8
  %723 = load ptr, ptr %11, align 8, !tbaa !5
  %724 = load ptr, ptr %13, align 8, !tbaa !5
  %725 = load ptr, ptr %14, align 8, !tbaa !5
  %726 = load ptr, ptr %15, align 8, !tbaa !5
  %727 = load ptr, ptr %17, align 8, !tbaa !5
  %728 = load ptr, ptr %18, align 8, !tbaa !5
  invoke void @_ZN6ngraph37infer_windowed_reduction_output_shapeEPKNS_4NodeERKNS_12PartialShapeERKNS_7StridesERKNS_14CoordinateDiffESB_S5_S8_S8_bb(ptr dead_on_unwind writable sret(%"class.ngraph::PartialShape") align 8 %90, ptr noundef %723, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(24) %724, ptr noundef nonnull align 8 dereferenceable(24) %725, ptr noundef nonnull align 8 dereferenceable(24) %726, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(24) %727, ptr noundef nonnull align 8 dereferenceable(24) %728, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %729 unwind label %753

729:                                              ; preds = %722
  store i1 false, ptr %91, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %93) #8
  invoke void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %93, i64 noundef 2)
          to label %730 unwind label %757

730:                                              ; preds = %729
  %731 = invoke { i64, i64 } @_ZNK6ngraph9DimensionplERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(16) %93)
          to label %732 unwind label %757

732:                                              ; preds = %730
  %733 = getelementptr inbounds %"class.ngraph::Dimension", ptr %92, i32 0, i32 0
  %734 = getelementptr inbounds { i64, i64 }, ptr %733, i32 0, i32 0
  %735 = extractvalue { i64, i64 } %731, 0
  store i64 %735, ptr %734, align 8
  %736 = getelementptr inbounds { i64, i64 }, ptr %733, i32 0, i32 1
  %737 = extractvalue { i64, i64 } %731, 1
  store i64 %737, ptr %736, align 8
  %738 = getelementptr inbounds { i64, i64 }, ptr %92, i32 0, i32 0
  %739 = load i64, ptr %738, align 8
  %740 = getelementptr inbounds { i64, i64 }, ptr %92, i32 0, i32 1
  %741 = load i64, ptr %740, align 8
  invoke void @_ZN6ngraph12PartialShape7dynamicENS_9DimensionE(ptr dead_on_unwind writable sret(%"class.ngraph::PartialShape") align 8 %0, i64 %739, i64 %741)
          to label %742 unwind label %757

742:                                              ; preds = %732
  call void @llvm.lifetime.end.p0(i64 16, ptr %93) #8
  %743 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef 0)
          to label %744 unwind label %761

744:                                              ; preds = %742
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %743, ptr align 8 %56, i64 16, i1 false), !tbaa.struct !14
  %745 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef 1)
          to label %746 unwind label %761

746:                                              ; preds = %744
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %745, ptr align 8 %62, i64 16, i1 false), !tbaa.struct !14
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #8
  store i64 0, ptr %94, align 8, !tbaa !15
  br label %747

747:                                              ; preds = %777, %746
  %748 = load i64, ptr %94, align 8, !tbaa !15
  %749 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %32)
          to label %750 unwind label %765

750:                                              ; preds = %747
  %751 = icmp ult i64 %748, %749
  br i1 %751, label %769, label %752

752:                                              ; preds = %750
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  br label %780

753:                                              ; preds = %722
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %23, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %24, align 4
  br label %786

757:                                              ; preds = %732, %730, %729
  %758 = landingpad { ptr, i32 }
          cleanup
  %759 = extractvalue { ptr, i32 } %758, 0
  store ptr %759, ptr %23, align 8
  %760 = extractvalue { ptr, i32 } %758, 1
  store i32 %760, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %93) #8
  br label %785

761:                                              ; preds = %744, %742
  %762 = landingpad { ptr, i32 }
          cleanup
  %763 = extractvalue { ptr, i32 } %762, 0
  store ptr %763, ptr %23, align 8
  %764 = extractvalue { ptr, i32 } %762, 1
  store i32 %764, ptr %24, align 4
  br label %784

765:                                              ; preds = %772, %769, %747
  %766 = landingpad { ptr, i32 }
          cleanup
  %767 = extractvalue { ptr, i32 } %766, 0
  store ptr %767, ptr %23, align 8
  %768 = extractvalue { ptr, i32 } %766, 1
  store i32 %768, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  br label %784

769:                                              ; preds = %750
  %770 = load i64, ptr %94, align 8, !tbaa !15
  %771 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %90, i64 noundef %770)
          to label %772 unwind label %765

772:                                              ; preds = %769
  %773 = load i64, ptr %94, align 8, !tbaa !15
  %774 = add i64 %773, 2
  %775 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %774)
          to label %776 unwind label %765

776:                                              ; preds = %772
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %775, ptr align 8 %771, i64 16, i1 false), !tbaa.struct !14
  br label %777

777:                                              ; preds = %776
  %778 = load i64, ptr %94, align 8, !tbaa !15
  %779 = add i64 %778, 1
  store i64 %779, ptr %94, align 8, !tbaa !15
  br label %747, !llvm.loop !19

780:                                              ; preds = %752
  store i1 true, ptr %91, align 1
  %781 = load i1, ptr %91, align 1
  br i1 %781, label %783, label %782

782:                                              ; preds = %780
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  br label %783

783:                                              ; preds = %782, %780
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %75) #8
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #8
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #8
  ret void

784:                                              ; preds = %765, %761
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  br label %785

785:                                              ; preds = %784, %757
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  br label %786

786:                                              ; preds = %785, %753
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #8
  br label %787

787:                                              ; preds = %786, %719, %675, %631, %606
  call void @llvm.lifetime.end.p0(i64 16, ptr %75) #8
  br label %788

788:                                              ; preds = %787, %579, %554, %533
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %789

789:                                              ; preds = %788, %473
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #8
  br label %790

790:                                              ; preds = %789, %469
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #8
  br label %791

791:                                              ; preds = %790, %465
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #8
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #8
  br label %792

792:                                              ; preds = %791, %362
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #8
  br label %793

793:                                              ; preds = %792, %192, %154
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #8
  br label %794

794:                                              ; preds = %793
  %795 = load ptr, ptr %23, align 8
  %796 = load i32, ptr %24, align 4
  %797 = insertvalue { ptr, i32 } poison, ptr %795, 0
  %798 = insertvalue { ptr, i32 } %797, i32 %796, 1
  resume { ptr, i32 } %798

799:                                              ; preds = %697, %653, %605, %553, %330, %175, %137
  unreachable
}

declare noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16), i64, i64, i64, i64) #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA61_cJRKNS_12PartialShapeERA18_KcS4_RA3_S5_EEERSoSA_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(61), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(3)) #6

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA70_cJRA61_KcRA20_S2_RKNS_12PartialShapeERA18_S2_S9_RA3_S2_EEERSoSE_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(70), ptr noundef nonnull align 1 dereferenceable(61), ptr noundef nonnull align 1 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(3)) #6

declare { i64, i64 } @_ZNK6ngraph9DimensionmiERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA63_cJRKNS_12PartialShapeERA24_KcNS_9DimensionERA25_S5_S4_RA30_S5_S8_RA19_S5_RKNS_7StridesESE_RKNS_14CoordinateDiffESE_SK_RA20_S5_SH_SA_SH_RA16_S5_EEERSoSP_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(63), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(25), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(30), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(19), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(19), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(19), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(25), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(16)) #6

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA20_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(20)) #6

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA27_cJRNS_9DimensionERA31_KcRA16_S4_S3_RA3_S4_EEERSoSB_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(27), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(31), ptr noundef nonnull align 1 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3)) #6

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA68_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(68)) #6

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA37_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(37)) #6

declare { i64, i64 } @_ZNK6ngraph9DimensionplERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 0}
!10 = !{!"_ZTSN6ngraph12CheckLocInfoE", !6, i64 0, !11, i64 8, !6, i64 16}
!11 = !{!"int", !7, i64 0}
!12 = !{!10, !11, i64 8}
!13 = !{!10, !6, i64 16}
!14 = !{i64 0, i64 8, !15, i64 8, i64 8, !15}
!15 = !{!16, !16, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = distinct !{!19, !18}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.ngraph::PartialShape" = type { i8, %"class.std::vector.0" }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl" }
%"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl" = type { %"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ngraph::Dimension, std::allocator<ngraph::Dimension>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.ngraph::Dimension" = type { %"class.ngraph::Interval" }
%"class.ngraph::Interval" = type { i64, i64 }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"struct.ngraph::CheckLocInfo" = type { ptr, i32, ptr }

@.str.1 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [86 x i8], align 1
@_ZTIN6ngraph21NodeValidationFailureE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.33 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [407 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [89 x i8], align 1

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ngraph37infer_windowed_reduction_output_shapeEPKNS_4NodeERKNS_12PartialShapeERKNS_7StridesERKNS_14CoordinateDiffESB_S5_S8_S8_bb(ptr dead_on_unwind noalias writable sret(%"class.ngraph::PartialShape") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #1

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

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

declare i32 @__gxx_personality_v0(...)

; 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 void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) unnamed_addr #2

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

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

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

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ngraph25infer_convolution_forwardEPKNS_4NodeERKNS_12PartialShapeERKNS_7StridesERKNS_14CoordinateDiffESB_S5_S8_S8_(ptr dead_on_unwind noalias writable sret(%"class.ngraph::PartialShape") align 8 %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %8) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 {
  %10 = alloca %"class.ngraph::Dimension", align 8
  %11 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %12 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %15 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.ngraph::Dimension", align 8
  %18 = alloca %"class.ngraph::Dimension", align 8
  %19 = alloca %"class.ngraph::Dimension", align 8
  %20 = alloca %"class.ngraph::Dimension", align 8
  %21 = alloca %"class.ngraph::Dimension", align 8
  %22 = alloca %"class.ngraph::Dimension", align 8
  %23 = alloca %"class.ngraph::Dimension", align 8
  %24 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %25 = alloca %"class.ngraph::Dimension", align 8
  %26 = alloca %"class.ngraph::Dimension", align 8
  %27 = alloca %"class.ngraph::Dimension", align 8
  %28 = alloca %"class.ngraph::Dimension", align 8
  %29 = alloca %"class.ngraph::Dimension", align 8
  %30 = alloca %"class.ngraph::Dimension", align 8
  %31 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.ngraph::Dimension", align 8
  %34 = alloca %"class.ngraph::Dimension", align 8
  %35 = alloca %"class.ngraph::Dimension", align 8
  %36 = alloca %"class.ngraph::Dimension", align 8
  %37 = alloca %"class.ngraph::PartialShape", align 8
  %38 = alloca %"class.ngraph::Dimension", align 8
  %39 = alloca %"class.ngraph::Dimension", align 8
  %40 = alloca %"class.ngraph::Dimension", align 8
  %41 = alloca %"class.ngraph::Dimension", align 8
  %42 = alloca %"class.ngraph::PartialShape", align 8
  %43 = alloca %"class.ngraph::Dimension", align 8
  %44 = alloca %"class.ngraph::Dimension", align 8
  %45 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %46 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.ngraph::Dimension", align 8
  %49 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %50 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %53 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %56 = alloca %"struct.ngraph::CheckLocInfo", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.ngraph::PartialShape", align 8
  %59 = alloca %"class.ngraph::Dimension", align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #8
  %60 = tail call { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
  %61 = extractvalue { i64, i64 } %60, 0
  store i64 %61, ptr %10, align 8
  %62 = getelementptr inbounds i8, ptr %10, i64 8
  %63 = extractvalue { i64, i64 } %60, 1
  store i64 %63, ptr %62, align 8
  %64 = tail call { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %2)
  %65 = extractvalue { i64, i64 } %64, 0
  %66 = extractvalue { i64, i64 } %64, 1
  %67 = tail call { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %6)
  %68 = extractvalue { i64, i64 } %67, 0
  %69 = extractvalue { i64, i64 } %67, 1
  %70 = call noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %10, i64 %65, i64 %66, i64 %68, i64 %69)
  br i1 %70, label %88, label %71

71:                                               ; preds = %9
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %11) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %11)
  %72 = getelementptr inbounds i8, ptr %11, i64 16
  %73 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA61_cJRKNS_12PartialShapeERA18_KcS4_RA3_S5_EEERSoSA_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 1 dereferenceable(61) @.str.33, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(18) @.str.34, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 1 dereferenceable(3) @.str.35)
          to label %74 unwind label %81

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

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

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

80:                                               ; preds = %78
  invoke void @__cxa_throw(ptr nonnull %75, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #9
          to label %456 unwind label %84

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

.thread:                                          ; preds = %74
  %83 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #8
  br label %86

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

86:                                               ; preds = %.thread182, %.thread
  %.pn181 = phi { ptr, i32 } [ %83, %.thread ], [ %79, %.thread182 ]
  call void @__cxa_free_exception(ptr %75) #8
  br label %87

87:                                               ; preds = %84, %86, %81
  %.pn.pn = phi { ptr, i32 } [ %.pn181, %86 ], [ %85, %84 ], [ %82, %81 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %11) #8
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %11) #8
  br label %455

88:                                               ; preds = %9
  %89 = call noundef zeroext i1 @_ZNK6ngraph9Dimension10is_dynamicEv(ptr noundef nonnull align 8 dereferenceable(16) %10)
  br i1 %89, label %110, label %90

90:                                               ; preds = %88
  %91 = call noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %10)
  %92 = icmp sgt i64 %91, 2
  br i1 %92, label %110, label %93

93:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %14) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %14)
  %94 = getelementptr inbounds i8, ptr %14, i64 16
  %95 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA70_cJRA61_KcRA20_S2_RKNS_12PartialShapeERA18_S2_S9_RA3_S2_EEERSoSE_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 1 dereferenceable(70) @.str.37, ptr noundef nonnull align 1 dereferenceable(61) @.str.38, ptr noundef nonnull align 1 dereferenceable(20) @.str.39, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(18) @.str.34, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 1 dereferenceable(3) @.str.35)
          to label %96 unwind label %103

96:                                               ; preds = %93
  %97 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #8
  store ptr @.str.8, ptr %15, align 8, !tbaa !5
  %98 = getelementptr inbounds i8, ptr %15, i64 8
  store i32 267, ptr %98, align 8, !tbaa !11
  %99 = getelementptr inbounds i8, ptr %15, i64 16
  store ptr @.str.40, ptr %99, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(128) %14)
          to label %100 unwind label %.thread184

100:                                              ; preds = %96
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %97, ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %102 unwind label %.thread188

.thread188:                                       ; preds = %100
  %101 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #8
  br label %108

102:                                              ; preds = %100
  invoke void @__cxa_throw(ptr nonnull %97, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #9
          to label %456 unwind label %106

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

.thread184:                                       ; preds = %96
  %105 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #8
  br label %108

106:                                              ; preds = %102
  %107 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #8
  br label %109

108:                                              ; preds = %.thread188, %.thread184
  %.pn140187 = phi { ptr, i32 } [ %105, %.thread184 ], [ %101, %.thread188 ]
  call void @__cxa_free_exception(ptr %97) #8
  br label %109

109:                                              ; preds = %106, %108, %103
  %.pn140.pn = phi { ptr, i32 } [ %.pn140187, %108 ], [ %107, %106 ], [ %104, %103 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %14) #8
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %14) #8
  br label %455

110:                                              ; preds = %90, %88
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #8
  %111 = call { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
  %112 = extractvalue { i64, i64 } %111, 0
  store i64 %112, ptr %17, align 8
  %113 = getelementptr inbounds i8, ptr %17, i64 8
  %114 = extractvalue { i64, i64 } %111, 1
  store i64 %114, ptr %113, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #8
  call void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %18, i64 noundef 2)
  %115 = call { i64, i64 } @_ZNK6ngraph9DimensionmiERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %18)
  %116 = extractvalue { i64, i64 } %115, 0
  %117 = extractvalue { i64, i64 } %115, 1
  %118 = call noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %17, i64 %112, i64 %114, i64 %116, i64 %117)
  br i1 %118, label %119, label %.critedge

119:                                              ; preds = %110
  %.sroa.031.0.copyload = load i64, ptr %17, align 8, !tbaa !13
  %.sroa.232.0.copyload = load i64, ptr %113, align 8, !tbaa !13
  %120 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #8
  call void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %19, i64 noundef %120)
  %121 = load i64, ptr %19, align 8
  %122 = getelementptr inbounds i8, ptr %19, i64 8
  %123 = load i64, ptr %122, align 8
  %124 = call noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %17, i64 %.sroa.031.0.copyload, i64 %.sroa.232.0.copyload, i64 %121, i64 %123)
  br i1 %124, label %125, label %.critedge

125:                                              ; preds = %119
  %.sroa.029.0.copyload = load i64, ptr %17, align 8, !tbaa !13
  %.sroa.230.0.copyload = load i64, ptr %113, align 8, !tbaa !13
  %126 = call noundef i64 @_ZNKSt6vectorIlSaIlEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #8
  call void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %20, i64 noundef %126)
  %127 = load i64, ptr %20, align 8
  %128 = getelementptr inbounds i8, ptr %20, i64 8
  %129 = load i64, ptr %128, align 8
  %130 = call noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %17, i64 %.sroa.029.0.copyload, i64 %.sroa.230.0.copyload, i64 %127, i64 %129)
  br i1 %130, label %131, label %.critedge

131:                                              ; preds = %125
  %.sroa.027.0.copyload = load i64, ptr %17, align 8, !tbaa !13
  %.sroa.228.0.copyload = load i64, ptr %113, align 8, !tbaa !13
  %132 = call noundef i64 @_ZNKSt6vectorIlSaIlEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #8
  call void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %21, i64 noundef %132)
  %133 = load i64, ptr %21, align 8
  %134 = getelementptr inbounds i8, ptr %21, i64 8
  %135 = load i64, ptr %134, align 8
  %136 = call noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %17, i64 %.sroa.027.0.copyload, i64 %.sroa.228.0.copyload, i64 %133, i64 %135)
  br i1 %136, label %137, label %.critedge

137:                                              ; preds = %131
  %.sroa.025.0.copyload = load i64, ptr %17, align 8, !tbaa !13
  %.sroa.226.0.copyload = load i64, ptr %113, align 8, !tbaa !13
  %138 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #8
  call void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %22, i64 noundef %138)
  %139 = load i64, ptr %22, align 8
  %140 = getelementptr inbounds i8, ptr %22, i64 8
  %141 = load i64, ptr %140, align 8
  %142 = call noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %17, i64 %.sroa.025.0.copyload, i64 %.sroa.226.0.copyload, i64 %139, i64 %141)
  br i1 %142, label %143, label %.critedge

143:                                              ; preds = %137
  %.sroa.023.0.copyload = load i64, ptr %17, align 8, !tbaa !13
  %.sroa.224.0.copyload = load i64, ptr %113, align 8, !tbaa !13
  %144 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  call void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %23, i64 noundef %144)
  %145 = load i64, ptr %23, align 8
  %146 = getelementptr inbounds i8, ptr %23, i64 8
  %147 = load i64, ptr %146, align 8
  %148 = call noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %17, i64 %.sroa.023.0.copyload, i64 %.sroa.224.0.copyload, i64 %145, i64 %147)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #8
  br i1 %148, label %197, label %149

.critedge:                                        ; preds = %110, %119, %125, %131, %137
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #8
  br label %149

149:                                              ; preds = %.critedge, %143
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %24) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %24)
  %150 = getelementptr inbounds i8, ptr %24, i64 16
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #8
  %151 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %152 unwind label %181

152:                                              ; preds = %149
  %153 = extractvalue { i64, i64 } %151, 0
  store i64 %153, ptr %26, align 8
  %154 = getelementptr inbounds i8, ptr %26, i64 8
  %155 = extractvalue { i64, i64 } %151, 1
  store i64 %155, ptr %154, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #8
  invoke void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %27, i64 noundef 2)
          to label %156 unwind label %183

156:                                              ; preds = %152
  %157 = invoke { i64, i64 } @_ZNK6ngraph9DimensionmiERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 8 dereferenceable(16) %27)
          to label %158 unwind label %183

158:                                              ; preds = %156
  %159 = extractvalue { i64, i64 } %157, 0
  store i64 %159, ptr %25, align 8
  %160 = getelementptr inbounds i8, ptr %25, i64 8
  %161 = extractvalue { i64, i64 } %157, 1
  store i64 %161, ptr %160, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29) #8
  %162 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %163 unwind label %185

163:                                              ; preds = %158
  %164 = extractvalue { i64, i64 } %162, 0
  store i64 %164, ptr %29, align 8
  %165 = getelementptr inbounds i8, ptr %29, i64 8
  %166 = extractvalue { i64, i64 } %162, 1
  store i64 %166, ptr %165, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #8
  invoke void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %30, i64 noundef 2)
          to label %167 unwind label %187

167:                                              ; preds = %163
  %168 = invoke { i64, i64 } @_ZNK6ngraph9DimensionmiERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %29, ptr noundef nonnull align 8 dereferenceable(16) %30)
          to label %169 unwind label %187

169:                                              ; preds = %167
  %170 = extractvalue { i64, i64 } %168, 0
  store i64 %170, ptr %28, align 8
  %171 = getelementptr inbounds i8, ptr %28, i64 8
  %172 = extractvalue { i64, i64 } %168, 1
  store i64 %172, ptr %171, align 8
  %173 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA63_cJRKNS_12PartialShapeERA24_KcNS_9DimensionERA25_S5_S4_RA30_S5_S8_RA19_S5_RKNS_7StridesESE_RKNS_14CoordinateDiffESE_SK_RA20_S5_SH_SA_SH_RA16_S5_EEERSoSP_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef nonnull align 1 dereferenceable(63) @.str.41, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(24) @.str.42, ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef nonnull align 1 dereferenceable(25) @.str.43, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 1 dereferenceable(30) @.str.44, ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 1 dereferenceable(19) @.str.1, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 1 dereferenceable(19) @.str.2, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 1 dereferenceable(19) @.str.3, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 1 dereferenceable(20) @.str.45, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 1 dereferenceable(25) @.str.46, ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 1 dereferenceable(16) @.str.7)
          to label %174 unwind label %187

174:                                              ; preds = %169
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #8
  %175 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #8
  store ptr @.str.8, ptr %31, align 8, !tbaa !5
  %176 = getelementptr inbounds i8, ptr %31, i64 8
  store i32 295, ptr %176, align 8, !tbaa !11
  %177 = getelementptr inbounds i8, ptr %31, i64 16
  store ptr @.str.47, ptr %177, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(128) %24)
          to label %178 unwind label %.thread190

178:                                              ; preds = %174
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %175, ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %180 unwind label %.thread194

.thread194:                                       ; preds = %178
  %179 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #8
  br label %195

180:                                              ; preds = %178
  invoke void @__cxa_throw(ptr nonnull %175, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #9
          to label %456 unwind label %193

181:                                              ; preds = %149
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %191

183:                                              ; preds = %156, %152
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %190

185:                                              ; preds = %158
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %189

187:                                              ; preds = %169, %167, %163
  %188 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #8
  br label %189

189:                                              ; preds = %187, %185
  %.pn170 = phi { ptr, i32 } [ %188, %187 ], [ %186, %185 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #8
  br label %190

190:                                              ; preds = %189, %183
  %.pn170.pn = phi { ptr, i32 } [ %.pn170, %189 ], [ %184, %183 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #8
  br label %191

191:                                              ; preds = %190, %181
  %.pn170.pn.pn = phi { ptr, i32 } [ %.pn170.pn, %190 ], [ %182, %181 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #8
  br label %196

.thread190:                                       ; preds = %174
  %192 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #8
  br label %195

193:                                              ; preds = %180
  %194 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #8
  br label %196

195:                                              ; preds = %.thread194, %.thread190
  %.pn174193 = phi { ptr, i32 } [ %192, %.thread190 ], [ %179, %.thread194 ]
  call void @__cxa_free_exception(ptr %175) #8
  br label %196

196:                                              ; preds = %193, %195, %191
  %.pn174.pn = phi { ptr, i32 } [ %.pn174193, %195 ], [ %194, %193 ], [ %.pn170.pn.pn, %191 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %24) #8
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %24) #8
  br label %454

197:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #8
  %198 = call { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %2)
  %199 = extractvalue { i64, i64 } %198, 0
  store i64 %199, ptr %34, align 8
  %200 = getelementptr inbounds i8, ptr %34, i64 8
  %201 = extractvalue { i64, i64 } %198, 1
  store i64 %201, ptr %200, align 8
  %202 = call noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %34)
  br i1 %202, label %203, label %205

203:                                              ; preds = %197
  %204 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %2, i64 noundef 0)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(16) %204, i64 16, i1 false), !tbaa.struct !15
  br label %210

205:                                              ; preds = %197
  %206 = call { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
  %207 = extractvalue { i64, i64 } %206, 0
  store i64 %207, ptr %33, align 8
  %208 = getelementptr inbounds i8, ptr %33, i64 8
  %209 = extractvalue { i64, i64 } %206, 1
  store i64 %209, ptr %208, align 8
  br label %210

210:                                              ; preds = %205, %203
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #8
  %211 = call { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %2)
  %212 = extractvalue { i64, i64 } %211, 0
  store i64 %212, ptr %36, align 8
  %213 = getelementptr inbounds i8, ptr %36, i64 8
  %214 = extractvalue { i64, i64 } %211, 1
  store i64 %214, ptr %213, align 8
  %215 = call noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %36)
  br i1 %215, label %216, label %218

216:                                              ; preds = %210
  %217 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %2, i64 noundef 1)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull align 8 dereferenceable(16) %217, i64 16, i1 false), !tbaa.struct !15
  br label %223

218:                                              ; preds = %210
  %219 = call { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
  %220 = extractvalue { i64, i64 } %219, 0
  store i64 %220, ptr %35, align 8
  %221 = getelementptr inbounds i8, ptr %35, i64 8
  %222 = extractvalue { i64, i64 } %219, 1
  store i64 %222, ptr %221, align 8
  br label %223

223:                                              ; preds = %218, %216
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #8
  %.sroa.020.0.copyload = load i64, ptr %17, align 8, !tbaa !13
  %.sroa.221.0.copyload = load i64, ptr %113, align 8, !tbaa !13
  call void @_ZN6ngraph12PartialShape7dynamicENS_9DimensionE(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::PartialShape") align 8 %37, i64 %.sroa.020.0.copyload, i64 %.sroa.221.0.copyload)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #8
  %224 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %225 unwind label %264

225:                                              ; preds = %223
  %226 = extractvalue { i64, i64 } %224, 0
  store i64 %226, ptr %39, align 8
  %227 = getelementptr inbounds i8, ptr %39, i64 8
  %228 = extractvalue { i64, i64 } %224, 1
  store i64 %228, ptr %227, align 8
  %229 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %39)
          to label %230 unwind label %264

230:                                              ; preds = %225
  br i1 %229, label %231, label %234

231:                                              ; preds = %230
  %232 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef 0)
          to label %233 unwind label %264

233:                                              ; preds = %231
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull align 8 dereferenceable(16) %232, i64 16, i1 false), !tbaa.struct !15
  br label %239

234:                                              ; preds = %230
  %235 = call { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
  %236 = extractvalue { i64, i64 } %235, 0
  store i64 %236, ptr %38, align 8
  %237 = getelementptr inbounds i8, ptr %38, i64 8
  %238 = extractvalue { i64, i64 } %235, 1
  store i64 %238, ptr %237, align 8
  br label %239

239:                                              ; preds = %234, %233
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #8
  %240 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %241 unwind label %266

241:                                              ; preds = %239
  %242 = extractvalue { i64, i64 } %240, 0
  store i64 %242, ptr %41, align 8
  %243 = getelementptr inbounds i8, ptr %41, i64 8
  %244 = extractvalue { i64, i64 } %240, 1
  store i64 %244, ptr %243, align 8
  %245 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %41)
          to label %246 unwind label %266

246:                                              ; preds = %241
  br i1 %245, label %247, label %250

247:                                              ; preds = %246
  %248 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef 1)
          to label %249 unwind label %266

249:                                              ; preds = %247
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef nonnull align 8 dereferenceable(16) %248, i64 16, i1 false), !tbaa.struct !15
  br label %255

250:                                              ; preds = %246
  %251 = call { i64, i64 } @_ZN6ngraph9Dimension7dynamicEv()
  %252 = extractvalue { i64, i64 } %251, 0
  store i64 %252, ptr %40, align 8
  %253 = getelementptr inbounds i8, ptr %40, i64 8
  %254 = extractvalue { i64, i64 } %251, 1
  store i64 %254, ptr %253, align 8
  br label %255

255:                                              ; preds = %250, %249
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #8
  %.sroa.018.0.copyload = load i64, ptr %17, align 8, !tbaa !13
  %.sroa.219.0.copyload = load i64, ptr %113, align 8, !tbaa !13
  invoke void @_ZN6ngraph12PartialShape7dynamicENS_9DimensionE(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::PartialShape") align 8 %42, i64 %.sroa.018.0.copyload, i64 %.sroa.219.0.copyload)
          to label %.preheader unwind label %268

.preheader:                                       ; preds = %255
  %256 = getelementptr inbounds i8, ptr %43, i64 8
  %257 = getelementptr inbounds i8, ptr %44, i64 8
  br label %258

258:                                              ; preds = %.preheader, %302
  %.0135 = phi i64 [ %303, %302 ], [ 0, %.preheader ]
  %259 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %260 unwind label %270

260:                                              ; preds = %258
  %261 = icmp ult i64 %.0135, %259
  br i1 %261, label %272, label %262

262:                                              ; preds = %260
  %263 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension10is_dynamicEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %304 unwind label %320

264:                                              ; preds = %231, %225, %223
  %265 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #8
  br label %453

266:                                              ; preds = %247, %241, %239
  %267 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #8
  br label %452

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

270:                                              ; preds = %297, %294, %282, %279, %258
  %271 = landingpad { ptr, i32 }
          cleanup
  br label %450

272:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %43) #8
  %273 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %274 unwind label %285

274:                                              ; preds = %272
  %275 = extractvalue { i64, i64 } %273, 0
  store i64 %275, ptr %43, align 8
  %276 = extractvalue { i64, i64 } %273, 1
  store i64 %276, ptr %256, align 8
  %277 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %43)
          to label %278 unwind label %285

278:                                              ; preds = %274
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %43) #8
  br i1 %277, label %279, label %287

279:                                              ; preds = %278
  %280 = add i64 %.0135, 2
  %281 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %2, i64 noundef %280)
          to label %282 unwind label %270

282:                                              ; preds = %279
  %283 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %37, i64 noundef %.0135)
          to label %284 unwind label %270

284:                                              ; preds = %282
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %283, ptr noundef nonnull align 8 dereferenceable(16) %281, i64 16, i1 false), !tbaa.struct !15
  br label %287

285:                                              ; preds = %274, %272
  %286 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %43) #8
  br label %450

287:                                              ; preds = %284, %278
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %44) #8
  %288 = invoke { i64, i64 } @_ZNK6ngraph12PartialShape4rankEv(ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %289 unwind label %300

289:                                              ; preds = %287
  %290 = extractvalue { i64, i64 } %288, 0
  store i64 %290, ptr %44, align 8
  %291 = extractvalue { i64, i64 } %288, 1
  store i64 %291, ptr %257, align 8
  %292 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension9is_staticEv(ptr noundef nonnull align 8 dereferenceable(16) %44)
          to label %293 unwind label %300

293:                                              ; preds = %289
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #8
  br i1 %292, label %294, label %302

294:                                              ; preds = %293
  %295 = add i64 %.0135, 2
  %296 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef %295)
          to label %297 unwind label %270

297:                                              ; preds = %294
  %298 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %42, i64 noundef %.0135)
          to label %299 unwind label %270

299:                                              ; preds = %297
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %298, ptr noundef nonnull align 8 dereferenceable(16) %296, i64 16, i1 false), !tbaa.struct !15
  br label %302

300:                                              ; preds = %289, %287
  %301 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #8
  br label %450

302:                                              ; preds = %293, %299
  %303 = add nuw i64 %.0135, 1
  br label %258, !llvm.loop !16

304:                                              ; preds = %262
  br i1 %263, label %332, label %305

305:                                              ; preds = %304
  %306 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %307 unwind label %320

307:                                              ; preds = %305
  %308 = icmp sgt i64 %306, 0
  br i1 %308, label %332, label %309

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

310:                                              ; preds = %309
  %311 = getelementptr inbounds i8, ptr %45, i64 16
  %312 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA20_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %311, ptr noundef nonnull align 1 dereferenceable(20) @.str.48)
          to label %313 unwind label %324

313:                                              ; preds = %310
  %314 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %46) #8
  store ptr @.str.8, ptr %46, align 8, !tbaa !5
  %315 = getelementptr inbounds i8, ptr %46, i64 8
  store i32 327, ptr %315, align 8, !tbaa !11
  %316 = getelementptr inbounds i8, ptr %46, i64 16
  store ptr @.str.49, ptr %316, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(128) %45)
          to label %317 unwind label %.thread196

317:                                              ; preds = %313
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %314, ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %319 unwind label %.thread200

.thread200:                                       ; preds = %317
  %318 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %46) #8
  br label %329

319:                                              ; preds = %317
  invoke void @__cxa_throw(ptr nonnull %314, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #9
          to label %456 unwind label %327

320:                                              ; preds = %305, %262
  %321 = landingpad { ptr, i32 }
          cleanup
  br label %450

322:                                              ; preds = %309
  %323 = landingpad { ptr, i32 }
          cleanup
  br label %331

324:                                              ; preds = %310
  %325 = landingpad { ptr, i32 }
          cleanup
  br label %330

.thread196:                                       ; preds = %313
  %326 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %46) #8
  br label %329

327:                                              ; preds = %319
  %328 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %46) #8
  br label %330

329:                                              ; preds = %.thread200, %.thread196
  %.pn143199 = phi { ptr, i32 } [ %326, %.thread196 ], [ %318, %.thread200 ]
  call void @__cxa_free_exception(ptr %314) #8
  br label %330

330:                                              ; preds = %327, %329, %324
  %.pn143.pn = phi { ptr, i32 } [ %.pn143199, %329 ], [ %328, %327 ], [ %325, %324 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %45) #8
  br label %331

331:                                              ; preds = %330, %322
  %.pn143.pn.pn = phi { ptr, i32 } [ %.pn143.pn, %330 ], [ %323, %322 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %45) #8
  br label %450

332:                                              ; preds = %307, %304
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #8
  call void @_ZN6ngraph9DimensionC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #8
  %.sroa.09.0.copyload = load i64, ptr %35, align 8, !tbaa !13
  %.sroa.210.0..sroa_idx = getelementptr inbounds i8, ptr %35, i64 8
  %.sroa.210.0.copyload = load i64, ptr %.sroa.210.0..sroa_idx, align 8, !tbaa !13
  %.sroa.07.0.copyload = load i64, ptr %40, align 8, !tbaa !13
  %.sroa.28.0..sroa_idx = getelementptr inbounds i8, ptr %40, i64 8
  %.sroa.28.0.copyload = load i64, ptr %.sroa.28.0..sroa_idx, align 8, !tbaa !13
  %333 = invoke noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16) %48, i64 %.sroa.09.0.copyload, i64 %.sroa.210.0.copyload, i64 %.sroa.07.0.copyload, i64 %.sroa.28.0.copyload)
          to label %334 unwind label %346

334:                                              ; preds = %332
  br i1 %333, label %358, label %335

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

336:                                              ; preds = %335
  %337 = getelementptr inbounds i8, ptr %49, i64 16
  %338 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA27_cJRNS_9DimensionERA31_KcRA16_S4_S3_RA3_S4_EEERSoSB_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %337, ptr noundef nonnull align 1 dereferenceable(27) @.str.50, ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull align 1 dereferenceable(31) @.str.51, ptr noundef nonnull align 1 dereferenceable(16) @.str.52, ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef nonnull align 1 dereferenceable(3) @.str.35)
          to label %339 unwind label %350

339:                                              ; preds = %336
  %340 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %50) #8
  store ptr @.str.8, ptr %50, align 8, !tbaa !5
  %341 = getelementptr inbounds i8, ptr %50, i64 8
  store i32 339, ptr %341, align 8, !tbaa !11
  %342 = getelementptr inbounds i8, ptr %50, i64 16
  store ptr @.str.53, ptr %342, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(128) %49)
          to label %343 unwind label %.thread202

343:                                              ; preds = %339
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %340, ptr noundef nonnull align 8 dereferenceable(24) %50, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %345 unwind label %.thread206

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

345:                                              ; preds = %343
  invoke void @__cxa_throw(ptr nonnull %340, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #9
          to label %456 unwind label %353

346:                                              ; preds = %389, %386, %361, %358, %332
  %347 = landingpad { ptr, i32 }
          cleanup
  br label %449

348:                                              ; preds = %335
  %349 = landingpad { ptr, i32 }
          cleanup
  br label %357

350:                                              ; preds = %336
  %351 = landingpad { ptr, i32 }
          cleanup
  br label %356

.thread202:                                       ; preds = %339
  %352 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %50) #8
  br label %355

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

355:                                              ; preds = %.thread206, %.thread202
  %.pn147205 = phi { ptr, i32 } [ %352, %.thread202 ], [ %344, %.thread206 ]
  call void @__cxa_free_exception(ptr %340) #8
  br label %356

356:                                              ; preds = %353, %355, %350
  %.pn147.pn = phi { ptr, i32 } [ %.pn147205, %355 ], [ %354, %353 ], [ %351, %350 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %49) #8
  br label %357

357:                                              ; preds = %356, %348
  %.pn147.pn.pn = phi { ptr, i32 } [ %.pn147.pn, %356 ], [ %349, %348 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %49) #8
  br label %449

358:                                              ; preds = %334
  %359 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension10is_dynamicEv(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %360 unwind label %346

360:                                              ; preds = %358
  br i1 %359, label %386, label %361

361:                                              ; preds = %360
  %362 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %363 unwind label %346

363:                                              ; preds = %361
  %364 = icmp sgt i64 %362, 0
  br i1 %364, label %386, label %365

365:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %52) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %52)
          to label %366 unwind label %376

366:                                              ; preds = %365
  %367 = getelementptr inbounds i8, ptr %52, i64 16
  %368 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA68_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %367, ptr noundef nonnull align 1 dereferenceable(68) @.str.54)
          to label %369 unwind label %378

369:                                              ; preds = %366
  %370 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %53) #8
  store ptr @.str.8, ptr %53, align 8, !tbaa !5
  %371 = getelementptr inbounds i8, ptr %53, i64 8
  store i32 344, ptr %371, align 8, !tbaa !11
  %372 = getelementptr inbounds i8, ptr %53, i64 16
  store ptr @.str.55, ptr %372, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(128) %52)
          to label %373 unwind label %.thread208

373:                                              ; preds = %369
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %370, ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %375 unwind label %.thread212

.thread212:                                       ; preds = %373
  %374 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %53) #8
  br label %383

375:                                              ; preds = %373
  invoke void @__cxa_throw(ptr nonnull %370, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #9
          to label %456 unwind label %381

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

378:                                              ; preds = %366
  %379 = landingpad { ptr, i32 }
          cleanup
  br label %384

.thread208:                                       ; preds = %369
  %380 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %53) #8
  br label %383

381:                                              ; preds = %375
  %382 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %53) #8
  br label %384

383:                                              ; preds = %.thread212, %.thread208
  %.pn151211 = phi { ptr, i32 } [ %380, %.thread208 ], [ %374, %.thread212 ]
  call void @__cxa_free_exception(ptr %370) #8
  br label %384

384:                                              ; preds = %381, %383, %378
  %.pn151.pn = phi { ptr, i32 } [ %.pn151211, %383 ], [ %382, %381 ], [ %379, %378 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %52) #8
  br label %385

385:                                              ; preds = %384, %376
  %.pn151.pn.pn = phi { ptr, i32 } [ %.pn151.pn, %384 ], [ %377, %376 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %52) #8
  br label %449

386:                                              ; preds = %360, %363
  %387 = invoke noundef zeroext i1 @_ZNK6ngraph9Dimension10is_dynamicEv(ptr noundef nonnull align 8 dereferenceable(16) %38)
          to label %388 unwind label %346

388:                                              ; preds = %386
  br i1 %387, label %414, label %389

389:                                              ; preds = %388
  %390 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %38)
          to label %391 unwind label %346

391:                                              ; preds = %389
  %392 = icmp sgt i64 %390, 0
  br i1 %392, label %414, label %393

393:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %55) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %55)
          to label %394 unwind label %404

394:                                              ; preds = %393
  %395 = getelementptr inbounds i8, ptr %55, i64 16
  %396 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA37_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8) %395, ptr noundef nonnull align 1 dereferenceable(37) @.str.56)
          to label %397 unwind label %406

397:                                              ; preds = %394
  %398 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %56) #8
  store ptr @.str.8, ptr %56, align 8, !tbaa !5
  %399 = getelementptr inbounds i8, ptr %56, i64 8
  store i32 349, ptr %399, align 8, !tbaa !11
  %400 = getelementptr inbounds i8, ptr %56, i64 16
  store ptr @.str.57, ptr %400, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(128) %55)
          to label %401 unwind label %.thread214

401:                                              ; preds = %397
  invoke void @_ZN6ngraph21NodeValidationFailureC2ERKNS_12CheckLocInfoEPKNS_4NodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %398, ptr noundef nonnull align 8 dereferenceable(24) %56, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %403 unwind label %.thread218

.thread218:                                       ; preds = %401
  %402 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #8
  br label %411

403:                                              ; preds = %401
  invoke void @__cxa_throw(ptr nonnull %398, ptr nonnull @_ZTIN6ngraph21NodeValidationFailureE, ptr nonnull @_ZNSt13runtime_errorD2Ev) #9
          to label %456 unwind label %409

404:                                              ; preds = %393
  %405 = landingpad { ptr, i32 }
          cleanup
  br label %413

406:                                              ; preds = %394
  %407 = landingpad { ptr, i32 }
          cleanup
  br label %412

.thread214:                                       ; preds = %397
  %408 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #8
  br label %411

409:                                              ; preds = %403
  %410 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #8
  br label %412

411:                                              ; preds = %.thread218, %.thread214
  %.pn155217 = phi { ptr, i32 } [ %408, %.thread214 ], [ %402, %.thread218 ]
  call void @__cxa_free_exception(ptr %398) #8
  br label %412

412:                                              ; preds = %409, %411, %406
  %.pn155.pn = phi { ptr, i32 } [ %.pn155217, %411 ], [ %410, %409 ], [ %407, %406 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %55) #8
  br label %413

413:                                              ; preds = %412, %404
  %.pn155.pn.pn = phi { ptr, i32 } [ %.pn155.pn, %412 ], [ %405, %404 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %55) #8
  br label %449

414:                                              ; preds = %391, %388
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #8
  invoke void @_ZN6ngraph37infer_windowed_reduction_output_shapeEPKNS_4NodeERKNS_12PartialShapeERKNS_7StridesERKNS_14CoordinateDiffESB_S5_S8_S8_bb(ptr dead_on_unwind nonnull writable sret(%"class.ngraph::PartialShape") align 8 %58, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %8, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %415 unwind label %430

415:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %59) #8
  invoke void @_ZN6ngraph9DimensionC1El(ptr noundef nonnull align 8 dereferenceable(16) %59, i64 noundef 2)
          to label %416 unwind label %432

416:                                              ; preds = %415
  %417 = invoke { i64, i64 } @_ZNK6ngraph9DimensionplERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %59)
          to label %418 unwind label %432

418:                                              ; preds = %416
  %419 = extractvalue { i64, i64 } %417, 0
  %420 = extractvalue { i64, i64 } %417, 1
  invoke void @_ZN6ngraph12PartialShape7dynamicENS_9DimensionE(ptr dead_on_unwind writable sret(%"class.ngraph::PartialShape") align 8 %0, i64 %419, i64 %420)
          to label %421 unwind label %432

421:                                              ; preds = %418
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %59) #8
  %422 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef 0)
          to label %423 unwind label %434

423:                                              ; preds = %421
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %422, ptr noundef nonnull align 8 dereferenceable(16) %33, i64 16, i1 false), !tbaa.struct !15
  %424 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef 1)
          to label %425 unwind label %434

425:                                              ; preds = %423
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %424, ptr noundef nonnull align 8 dereferenceable(16) %38, i64 16, i1 false), !tbaa.struct !15
  br label %426

426:                                              ; preds = %443, %425
  %.0 = phi i64 [ 0, %425 ], [ %444, %443 ]
  %427 = invoke noundef i64 @_ZNK6ngraph9Dimension10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %428 unwind label %436

428:                                              ; preds = %426
  %429 = icmp ult i64 %.0, %427
  br i1 %429, label %438, label %445

430:                                              ; preds = %414
  %431 = landingpad { ptr, i32 }
          cleanup
  br label %448

432:                                              ; preds = %418, %416, %415
  %433 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %59) #8
  br label %447

434:                                              ; preds = %423, %421
  %435 = landingpad { ptr, i32 }
          cleanup
  br label %446

436:                                              ; preds = %440, %438, %426
  %437 = landingpad { ptr, i32 }
          cleanup
  br label %446

438:                                              ; preds = %428
  %439 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %58, i64 noundef %.0)
          to label %440 unwind label %436

440:                                              ; preds = %438
  %441 = add i64 %.0, 2
  %442 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6ngraph12PartialShapeixEm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %441)
          to label %443 unwind label %436

443:                                              ; preds = %440
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %442, ptr noundef nonnull align 8 dereferenceable(16) %439, i64 16, i1 false), !tbaa.struct !15
  %444 = add nuw i64 %.0, 1
  br label %426, !llvm.loop !18

445:                                              ; preds = %428
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #8
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #8
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #8
  ret void

446:                                              ; preds = %436, %434
  %.pn159 = phi { ptr, i32 } [ %437, %436 ], [ %435, %434 ]
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  br label %447

447:                                              ; preds = %446, %432
  %.pn159.pn = phi { ptr, i32 } [ %.pn159, %446 ], [ %433, %432 ]
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  br label %448

448:                                              ; preds = %447, %430
  %.pn159.pn.pn = phi { ptr, i32 } [ %.pn159.pn, %447 ], [ %431, %430 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #8
  br label %449

449:                                              ; preds = %448, %413, %385, %357, %346
  %.pn159.pn.pn.pn = phi { ptr, i32 } [ %.pn159.pn.pn, %448 ], [ %.pn155.pn.pn, %413 ], [ %347, %346 ], [ %.pn151.pn.pn, %385 ], [ %.pn147.pn.pn, %357 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #8
  br label %450

450:                                              ; preds = %270, %285, %300, %449, %331, %320
  %.pn164.pn = phi { ptr, i32 } [ %.pn159.pn.pn.pn, %449 ], [ %.pn143.pn.pn, %331 ], [ %321, %320 ], [ %271, %270 ], [ %301, %300 ], [ %286, %285 ]
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  br label %451

451:                                              ; preds = %450, %268
  %.pn164.pn.pn = phi { ptr, i32 } [ %.pn164.pn, %450 ], [ %269, %268 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  br label %452

452:                                              ; preds = %451, %266
  %.pn164.pn.pn.pn = phi { ptr, i32 } [ %.pn164.pn.pn, %451 ], [ %267, %266 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #8
  br label %453

453:                                              ; preds = %452, %264
  %.pn164.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn164.pn.pn.pn, %452 ], [ %265, %264 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #8
  call void @_ZN6ngraph12PartialShapeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #8
  br label %454

454:                                              ; preds = %453, %196
  %.pn174.pn.pn = phi { ptr, i32 } [ %.pn174.pn, %196 ], [ %.pn164.pn.pn.pn.pn, %453 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #8
  br label %455

455:                                              ; preds = %454, %109, %87
  %.pn174.pn.pn.pn = phi { ptr, i32 } [ %.pn174.pn.pn, %454 ], [ %.pn140.pn, %109 ], [ %.pn.pn, %87 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #8
  resume { ptr, i32 } %.pn174.pn.pn.pn

456:                                              ; preds = %403, %375, %345, %319, %180, %102, %80
  unreachable
}

declare noundef zeroext i1 @_ZN6ngraph9Dimension5mergeERS0_S0_S0_(ptr noundef nonnull align 8 dereferenceable(16), i64, i64, i64, i64) local_unnamed_addr #2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA70_cJRA61_KcRA20_S2_RKNS_12PartialShapeERA18_S2_S9_RA3_S2_EEERSoSE_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(70), ptr noundef nonnull align 1 dereferenceable(61), ptr noundef nonnull align 1 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(3)) local_unnamed_addr #6

declare { i64, i64 } @_ZNK6ngraph9DimensionmiERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA63_cJRKNS_12PartialShapeERA24_KcNS_9DimensionERA25_S5_S4_RA30_S5_S8_RA19_S5_RKNS_7StridesESE_RKNS_14CoordinateDiffESE_SK_RA20_S5_SH_SA_SH_RA16_S5_EEERSoSP_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(63), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(25), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(30), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(19), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(19), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(19), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(25), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(16)) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA20_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(20)) local_unnamed_addr #6

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA27_cJRNS_9DimensionERA31_KcRA16_S4_S3_RA3_S4_EEERSoSB_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(27), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(31), ptr noundef nonnull align 1 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3)) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA68_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(68)) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN6ngraphL19write_all_to_streamIA37_cJEEERSoS2_RKT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(37)) local_unnamed_addr #6

declare { i64, i64 } @_ZNK6ngraph9DimensionplERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTSN6ngraph12CheckLocInfoE", !7, i64 0, !10, i64 8, !7, i64 16}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!6, !10, i64 8}
!12 = !{!6, !7, i64 16}
!13 = !{!14, !14, i64 0}
!14 = !{!"long", !8, i64 0}
!15 = !{i64 0, i64 8, !13, i64 8, i64 8, !13}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopSimplifyPass,SROAPass,SimplifyCFGPass,TailCallElimPass