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

; 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::Shape" = type { %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.ngraph::AxisVector" = type { %"class.std::vector" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.5" = type { ptr }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.9 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.9 = type { i64, [8 x i8] }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.ngraph::CoordinateTransform" = type { %"class.ngraph::Shape", %"class.ngraph::Coordinate", %"class.ngraph::Coordinate", %"class.ngraph::Strides", %"class.ngraph::AxisVector", %"class.ngraph::CoordinateDiff", %"class.ngraph::CoordinateDiff", %"class.ngraph::Strides", %"class.ngraph::Shape", i64, %"class.ngraph::CoordinateTransform::Iterator" }
%"class.ngraph::Coordinate" = type { %"class.std::vector" }
%"class.ngraph::CoordinateDiff" = type { %"class.std::vector.0" }
%"class.ngraph::Strides" = type { %"class.std::vector" }
%"class.ngraph::CoordinateTransform::Iterator" = type <{ %"class.ngraph::Shape", %"class.ngraph::Shape", %"class.ngraph::Coordinate", i8, i8, [6 x i8] }>

@.str = external hidden unnamed_addr constant [84 x i8], align 1
@_ZTISt12domain_error = external constant ptr
@.str.1 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [32 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ngraph19CoordinateTransformC2ERKNS_5ShapeERKNS_10CoordinateES6_RKNS_7StridesERKNS_10AxisVectorERKNS_14CoordinateDiffESF_S9_(ptr noundef nonnull align 8 dereferenceable(304) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %8) unnamed_addr #0 align 2 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 ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca %"class.ngraph::Shape", align 8
  %22 = alloca %"class.ngraph::AxisVector", align 8
  %23 = alloca i64, align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %27 = alloca i64, align 8
  %28 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca i1, align 1
  %31 = alloca %"class.std::vector.0", align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca i1, align 1
  %37 = alloca i64, align 8
  %38 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca i1, align 1
  %41 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca i1, align 1
  %44 = alloca i64, align 8
  %45 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca i1, align 1
  %48 = alloca i64, align 8
  %49 = alloca i64, align 8
  %50 = alloca i64, align 8
  store ptr %0, ptr %10, align 8, !tbaa !5
  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
  %51 = load ptr, ptr %10, align 8
  %52 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 0
  %53 = load ptr, ptr %11, align 8, !tbaa !5
  call void @_ZN6ngraph5ShapeC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %52, ptr noundef nonnull align 8 dereferenceable(24) %53)
  %54 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 1
  %55 = load ptr, ptr %12, align 8, !tbaa !5
  invoke void @_ZN6ngraph10CoordinateC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %54, ptr noundef nonnull align 8 dereferenceable(24) %55)
          to label %56 unwind label %91

56:                                               ; preds = %9
  %57 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 2
  %58 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN6ngraph10CoordinateC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %57, ptr noundef nonnull align 8 dereferenceable(24) %58)
          to label %59 unwind label %95

59:                                               ; preds = %56
  %60 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 3
  %61 = load ptr, ptr %14, align 8, !tbaa !5
  invoke void @_ZN6ngraph7StridesC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %60, ptr noundef nonnull align 8 dereferenceable(24) %61)
          to label %62 unwind label %99

62:                                               ; preds = %59
  %63 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 4
  %64 = load ptr, ptr %15, align 8, !tbaa !5
  invoke void @_ZN6ngraph10AxisVectorC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %63, ptr noundef nonnull align 8 dereferenceable(24) %64)
          to label %65 unwind label %103

65:                                               ; preds = %62
  %66 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 5
  %67 = load ptr, ptr %16, align 8, !tbaa !5
  invoke void @_ZN6ngraph14CoordinateDiffC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %66, ptr noundef nonnull align 8 dereferenceable(24) %67)
          to label %68 unwind label %107

68:                                               ; preds = %65
  %69 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 6
  %70 = load ptr, ptr %17, align 8, !tbaa !5
  invoke void @_ZN6ngraph14CoordinateDiffC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 8 dereferenceable(24) %70)
          to label %71 unwind label %111

71:                                               ; preds = %68
  %72 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 7
  %73 = load ptr, ptr %18, align 8, !tbaa !5
  invoke void @_ZN6ngraph7StridesC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %72, ptr noundef nonnull align 8 dereferenceable(24) %73)
          to label %74 unwind label %115

74:                                               ; preds = %71
  %75 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 8
  invoke void @_ZN6ngraph5ShapeC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %76 unwind label %119

76:                                               ; preds = %74
  %77 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #7
  invoke void @_ZN6ngraph5ShapeC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %21)
          to label %78 unwind label %123

78:                                               ; preds = %76
  invoke void @_ZN6ngraph19CoordinateTransform8IteratorC1ERKNS_5ShapeEb(ptr noundef nonnull align 8 dereferenceable(74) %77, ptr noundef nonnull align 8 dereferenceable(24) %21, i1 noundef zeroext true)
          to label %79 unwind label %127

79:                                               ; preds = %78
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #7
  %80 = load ptr, ptr %11, align 8, !tbaa !5
  %81 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %80) #7
  %82 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 9
  store i64 %81, ptr %82, align 8, !tbaa !9
  %83 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 9
  %84 = load i64, ptr %83, align 8, !tbaa !9
  %85 = load ptr, ptr %12, align 8, !tbaa !5
  %86 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %85) #7
  %87 = icmp ne i64 %84, %86
  br i1 %87, label %88, label %140

88:                                               ; preds = %79
  %89 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %89, ptr noundef @.str)
          to label %90 unwind label %132

90:                                               ; preds = %88
  invoke void @__cxa_throw(ptr %89, ptr @_ZTISt12domain_error, ptr @_ZNSt12domain_errorD1Ev) #8
          to label %605 unwind label %136

91:                                               ; preds = %9
  %92 = landingpad { ptr, i32 }
          cleanup
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %19, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, ptr %20, align 4
  br label %599

95:                                               ; preds = %56
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %19, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %20, align 4
  br label %598

99:                                               ; preds = %59
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %19, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %20, align 4
  br label %597

103:                                              ; preds = %62
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %19, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %20, align 4
  br label %596

107:                                              ; preds = %65
  %108 = landingpad { ptr, i32 }
          cleanup
  %109 = extractvalue { ptr, i32 } %108, 0
  store ptr %109, ptr %19, align 8
  %110 = extractvalue { ptr, i32 } %108, 1
  store i32 %110, ptr %20, align 4
  br label %595

111:                                              ; preds = %68
  %112 = landingpad { ptr, i32 }
          cleanup
  %113 = extractvalue { ptr, i32 } %112, 0
  store ptr %113, ptr %19, align 8
  %114 = extractvalue { ptr, i32 } %112, 1
  store i32 %114, ptr %20, align 4
  br label %594

115:                                              ; preds = %71
  %116 = landingpad { ptr, i32 }
          cleanup
  %117 = extractvalue { ptr, i32 } %116, 0
  store ptr %117, ptr %19, align 8
  %118 = extractvalue { ptr, i32 } %116, 1
  store i32 %118, ptr %20, align 4
  br label %593

119:                                              ; preds = %74
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %19, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %20, align 4
  br label %592

123:                                              ; preds = %76
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %19, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %20, align 4
  br label %131

127:                                              ; preds = %78
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %19, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %20, align 4
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  br label %131

131:                                              ; preds = %127, %123
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #7
  br label %591

132:                                              ; preds = %88
  %133 = landingpad { ptr, i32 }
          cleanup
  %134 = extractvalue { ptr, i32 } %133, 0
  store ptr %134, ptr %19, align 8
  %135 = extractvalue { ptr, i32 } %133, 1
  store i32 %135, ptr %20, align 4
  call void @__cxa_free_exception(ptr %89) #7
  br label %590

136:                                              ; preds = %213, %200, %187, %174, %161, %148, %90
  %137 = landingpad { ptr, i32 }
          cleanup
  %138 = extractvalue { ptr, i32 } %137, 0
  store ptr %138, ptr %19, align 8
  %139 = extractvalue { ptr, i32 } %137, 1
  store i32 %139, ptr %20, align 4
  br label %590

140:                                              ; preds = %79
  %141 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 9
  %142 = load i64, ptr %141, align 8, !tbaa !9
  %143 = load ptr, ptr %13, align 8, !tbaa !5
  %144 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %143) #7
  %145 = icmp ne i64 %142, %144
  br i1 %145, label %146, label %153

146:                                              ; preds = %140
  %147 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %147, ptr noundef @.str.1)
          to label %148 unwind label %149

148:                                              ; preds = %146
  invoke void @__cxa_throw(ptr %147, ptr @_ZTISt12domain_error, ptr @_ZNSt12domain_errorD1Ev) #8
          to label %605 unwind label %136

149:                                              ; preds = %146
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %19, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %20, align 4
  call void @__cxa_free_exception(ptr %147) #7
  br label %590

153:                                              ; preds = %140
  %154 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 9
  %155 = load i64, ptr %154, align 8, !tbaa !9
  %156 = load ptr, ptr %14, align 8, !tbaa !5
  %157 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %156) #7
  %158 = icmp ne i64 %155, %157
  br i1 %158, label %159, label %166

159:                                              ; preds = %153
  %160 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %160, ptr noundef @.str.2)
          to label %161 unwind label %162

161:                                              ; preds = %159
  invoke void @__cxa_throw(ptr %160, ptr @_ZTISt12domain_error, ptr @_ZNSt12domain_errorD1Ev) #8
          to label %605 unwind label %136

162:                                              ; preds = %159
  %163 = landingpad { ptr, i32 }
          cleanup
  %164 = extractvalue { ptr, i32 } %163, 0
  store ptr %164, ptr %19, align 8
  %165 = extractvalue { ptr, i32 } %163, 1
  store i32 %165, ptr %20, align 4
  call void @__cxa_free_exception(ptr %160) #7
  br label %590

166:                                              ; preds = %153
  %167 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 9
  %168 = load i64, ptr %167, align 8, !tbaa !9
  %169 = load ptr, ptr %15, align 8, !tbaa !5
  %170 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %169) #7
  %171 = icmp ne i64 %168, %170
  br i1 %171, label %172, label %179

172:                                              ; preds = %166
  %173 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %173, ptr noundef @.str.3)
          to label %174 unwind label %175

174:                                              ; preds = %172
  invoke void @__cxa_throw(ptr %173, ptr @_ZTISt12domain_error, ptr @_ZNSt12domain_errorD1Ev) #8
          to label %605 unwind label %136

175:                                              ; preds = %172
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %19, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %20, align 4
  call void @__cxa_free_exception(ptr %173) #7
  br label %590

179:                                              ; preds = %166
  %180 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 9
  %181 = load i64, ptr %180, align 8, !tbaa !9
  %182 = load ptr, ptr %16, align 8, !tbaa !5
  %183 = call noundef i64 @_ZNKSt6vectorIlSaIlEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %182) #7
  %184 = icmp ne i64 %181, %183
  br i1 %184, label %185, label %192

185:                                              ; preds = %179
  %186 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %186, ptr noundef @.str.4)
          to label %187 unwind label %188

187:                                              ; preds = %185
  invoke void @__cxa_throw(ptr %186, ptr @_ZTISt12domain_error, ptr @_ZNSt12domain_errorD1Ev) #8
          to label %605 unwind label %136

188:                                              ; preds = %185
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %19, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %20, align 4
  call void @__cxa_free_exception(ptr %186) #7
  br label %590

192:                                              ; preds = %179
  %193 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 9
  %194 = load i64, ptr %193, align 8, !tbaa !9
  %195 = load ptr, ptr %17, align 8, !tbaa !5
  %196 = call noundef i64 @_ZNKSt6vectorIlSaIlEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %195) #7
  %197 = icmp ne i64 %194, %196
  br i1 %197, label %198, label %205

198:                                              ; preds = %192
  %199 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %199, ptr noundef @.str.5)
          to label %200 unwind label %201

200:                                              ; preds = %198
  invoke void @__cxa_throw(ptr %199, ptr @_ZTISt12domain_error, ptr @_ZNSt12domain_errorD1Ev) #8
          to label %605 unwind label %136

201:                                              ; preds = %198
  %202 = landingpad { ptr, i32 }
          cleanup
  %203 = extractvalue { ptr, i32 } %202, 0
  store ptr %203, ptr %19, align 8
  %204 = extractvalue { ptr, i32 } %202, 1
  store i32 %204, ptr %20, align 4
  call void @__cxa_free_exception(ptr %199) #7
  br label %590

205:                                              ; preds = %192
  %206 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 9
  %207 = load i64, ptr %206, align 8, !tbaa !9
  %208 = load ptr, ptr %18, align 8, !tbaa !5
  %209 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %208) #7
  %210 = icmp ne i64 %207, %209
  br i1 %210, label %211, label %218

211:                                              ; preds = %205
  %212 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %212, ptr noundef @.str.6)
          to label %213 unwind label %214

213:                                              ; preds = %211
  invoke void @__cxa_throw(ptr %212, ptr @_ZTISt12domain_error, ptr @_ZNSt12domain_errorD1Ev) #8
          to label %605 unwind label %136

214:                                              ; preds = %211
  %215 = landingpad { ptr, i32 }
          cleanup
  %216 = extractvalue { ptr, i32 } %215, 0
  store ptr %216, ptr %19, align 8
  %217 = extractvalue { ptr, i32 } %215, 1
  store i32 %217, ptr %20, align 4
  call void @__cxa_free_exception(ptr %212) #7
  br label %590

218:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #7
  %219 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 9
  %220 = load i64, ptr %219, align 8, !tbaa !9
  invoke void @_ZN6ngraph10AxisVectorC1Em(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %220)
          to label %221 unwind label %227

221:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  store i64 0, ptr %23, align 8, !tbaa !27
  br label %222

222:                                              ; preds = %235, %221
  %223 = load i64, ptr %23, align 8, !tbaa !27
  %224 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  %225 = icmp ult i64 %223, %224
  br i1 %225, label %231, label %226

226:                                              ; preds = %222
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %238

227:                                              ; preds = %218
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %19, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %20, align 4
  br label %589

231:                                              ; preds = %222
  %232 = load i64, ptr %23, align 8, !tbaa !27
  %233 = load i64, ptr %23, align 8, !tbaa !27
  %234 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %233) #7
  store i64 %232, ptr %234, align 8, !tbaa !27
  br label %235

235:                                              ; preds = %231
  %236 = load i64, ptr %23, align 8, !tbaa !27
  %237 = add i64 %236, 1
  store i64 %237, ptr %23, align 8, !tbaa !27
  br label %222, !llvm.loop !28

238:                                              ; preds = %226
  %239 = call ptr @_ZNSt6vectorImSaImEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  %240 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %24, i32 0, i32 0
  store ptr %239, ptr %240, align 8
  %241 = call ptr @_ZNSt6vectorImSaImEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  %242 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %25, i32 0, i32 0
  store ptr %241, ptr %242, align 8
  %243 = load ptr, ptr %15, align 8, !tbaa !5
  %244 = call ptr @_ZNKSt6vectorImSaImEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %243) #7
  %245 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.5", ptr %26, i32 0, i32 0
  store ptr %244, ptr %245, align 8
  %246 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %24, i32 0, i32 0
  %247 = load ptr, ptr %246, align 8
  %248 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %25, i32 0, i32 0
  %249 = load ptr, ptr %248, align 8
  %250 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.5", ptr %26, i32 0, i32 0
  %251 = load ptr, ptr %250, align 8
  %252 = invoke noundef zeroext i1 @_ZSt14is_permutationIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEENS1_IPKmS5_EEEbT_SA_T0_(ptr %247, ptr %249, ptr %251)
          to label %253 unwind label %257

253:                                              ; preds = %238
  br i1 %252, label %265, label %254

254:                                              ; preds = %253
  %255 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %255, ptr noundef @.str.7)
          to label %256 unwind label %261

256:                                              ; preds = %254
  invoke void @__cxa_throw(ptr %255, ptr @_ZTISt12domain_error, ptr @_ZNSt12domain_errorD1Ev) #8
          to label %605 unwind label %257

257:                                              ; preds = %256, %238
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %19, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %20, align 4
  br label %588

261:                                              ; preds = %254
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %19, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %20, align 4
  call void @__cxa_free_exception(ptr %255) #7
  br label %588

265:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  store i64 0, ptr %27, align 8, !tbaa !27
  br label %266

266:                                              ; preds = %312, %265
  %267 = load i64, ptr %27, align 8, !tbaa !27
  %268 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 9
  %269 = load i64, ptr %268, align 8, !tbaa !9
  %270 = icmp ult i64 %267, %269
  br i1 %270, label %272, label %271

271:                                              ; preds = %266
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %315

272:                                              ; preds = %266
  %273 = load ptr, ptr %18, align 8, !tbaa !5
  %274 = load i64, ptr %27, align 8, !tbaa !27
  %275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %273, i64 noundef %274) #7
  %276 = load i64, ptr %275, align 8, !tbaa !27
  %277 = icmp eq i64 %276, 0
  br i1 %277, label %278, label %311

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

279:                                              ; preds = %278
  %280 = getelementptr inbounds i8, ptr %28, i64 16
  %281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %280, ptr noundef @.str.8)
          to label %282 unwind label %293

282:                                              ; preds = %279
  %283 = load i64, ptr %27, align 8, !tbaa !27
  %284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %281, i64 noundef %283)
          to label %285 unwind label %293

285:                                              ; preds = %282
  store i1 true, ptr %30, align 1
  %286 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(128) %28)
          to label %287 unwind label %297

287:                                              ; preds = %285
  invoke void @_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %286, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %288 unwind label %301

288:                                              ; preds = %287
  store i1 false, ptr %30, align 1
  invoke void @__cxa_throw(ptr %286, ptr @_ZTISt12domain_error, ptr @_ZNSt12domain_errorD1Ev) #8
          to label %605 unwind label %301

289:                                              ; preds = %278
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %19, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %20, align 4
  br label %310

293:                                              ; preds = %282, %279
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %19, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %20, align 4
  br label %309

297:                                              ; preds = %285
  %298 = landingpad { ptr, i32 }
          cleanup
  %299 = extractvalue { ptr, i32 } %298, 0
  store ptr %299, ptr %19, align 8
  %300 = extractvalue { ptr, i32 } %298, 1
  store i32 %300, ptr %20, align 4
  br label %305

301:                                              ; preds = %288, %287
  %302 = landingpad { ptr, i32 }
          cleanup
  %303 = extractvalue { ptr, i32 } %302, 0
  store ptr %303, ptr %19, align 8
  %304 = extractvalue { ptr, i32 } %302, 1
  store i32 %304, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %305

305:                                              ; preds = %301, %297
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #7
  %306 = load i1, ptr %30, align 1
  br i1 %306, label %307, label %308

307:                                              ; preds = %305
  call void @__cxa_free_exception(ptr %286) #7
  br label %308

308:                                              ; preds = %307, %305
  br label %309

309:                                              ; preds = %308, %293
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %28) #7
  br label %310

310:                                              ; preds = %309, %289
  call void @llvm.lifetime.end.p0(i64 392, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %588

311:                                              ; preds = %272
  br label %312

312:                                              ; preds = %311
  %313 = load i64, ptr %27, align 8, !tbaa !27
  %314 = add i64 %313, 1
  store i64 %314, ptr %27, align 8, !tbaa !27
  br label %266, !llvm.loop !30

315:                                              ; preds = %271
  call void @llvm.lifetime.start.p0(i64 24, ptr %31) #7
  call void @_ZNSt6vectorIlSaIlEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  store i64 0, ptr %32, align 8, !tbaa !27
  br label %316

316:                                              ; preds = %386, %315
  %317 = load i64, ptr %32, align 8, !tbaa !27
  %318 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 9
  %319 = load i64, ptr %318, align 8, !tbaa !9
  %320 = icmp ult i64 %317, %319
  br i1 %320, label %322, label %321

321:                                              ; preds = %316
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %390

322:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  %323 = load ptr, ptr %11, align 8, !tbaa !5
  %324 = load i64, ptr %32, align 8, !tbaa !27
  %325 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %323, i64 noundef %324) #7
  %326 = load i64, ptr %325, align 8, !tbaa !27
  %327 = invoke noundef i64 @_ZN6ngraph16subtract_or_zeroImEET_S1_S1_(i64 noundef %326, i64 noundef 1)
          to label %328 unwind label %358

328:                                              ; preds = %322
  %329 = load ptr, ptr %18, align 8, !tbaa !5
  %330 = load i64, ptr %32, align 8, !tbaa !27
  %331 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %329, i64 noundef %330) #7
  %332 = load i64, ptr %331, align 8, !tbaa !27
  %333 = mul i64 %327, %332
  %334 = add i64 %333, 1
  %335 = load ptr, ptr %16, align 8, !tbaa !5
  %336 = load i64, ptr %32, align 8, !tbaa !27
  %337 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %335, i64 noundef %336) #7
  %338 = load i64, ptr %337, align 8, !tbaa !27
  %339 = add i64 %334, %338
  %340 = load ptr, ptr %17, align 8, !tbaa !5
  %341 = load i64, ptr %32, align 8, !tbaa !27
  %342 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %340, i64 noundef %341) #7
  %343 = load i64, ptr %342, align 8, !tbaa !27
  %344 = add i64 %339, %343
  store i64 %344, ptr %33, align 8, !tbaa !27
  %345 = load i64, ptr %33, align 8, !tbaa !27
  %346 = icmp slt i64 %345, 0
  br i1 %346, label %347, label %384

347:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 392, ptr %34) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %34)
          to label %348 unwind label %362

348:                                              ; preds = %347
  %349 = getelementptr inbounds i8, ptr %34, i64 16
  %350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %349, ptr noundef @.str.9)
          to label %351 unwind label %366

351:                                              ; preds = %348
  %352 = load i64, ptr %32, align 8, !tbaa !27
  %353 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %350, i64 noundef %352)
          to label %354 unwind label %366

354:                                              ; preds = %351
  store i1 true, ptr %36, align 1
  %355 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(128) %34)
          to label %356 unwind label %370

356:                                              ; preds = %354
  invoke void @_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %355, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %357 unwind label %374

357:                                              ; preds = %356
  store i1 false, ptr %36, align 1
  invoke void @__cxa_throw(ptr %355, ptr @_ZTISt12domain_error, ptr @_ZNSt12domain_errorD1Ev) #8
          to label %605 unwind label %374

358:                                              ; preds = %384, %322
  %359 = landingpad { ptr, i32 }
          cleanup
  %360 = extractvalue { ptr, i32 } %359, 0
  store ptr %360, ptr %19, align 8
  %361 = extractvalue { ptr, i32 } %359, 1
  store i32 %361, ptr %20, align 4
  br label %389

362:                                              ; preds = %347
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %19, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %20, align 4
  br label %383

366:                                              ; preds = %351, %348
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %19, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %20, align 4
  br label %382

370:                                              ; preds = %354
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %19, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %20, align 4
  br label %378

374:                                              ; preds = %357, %356
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %19, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %378

378:                                              ; preds = %374, %370
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  %379 = load i1, ptr %36, align 1
  br i1 %379, label %380, label %381

380:                                              ; preds = %378
  call void @__cxa_free_exception(ptr %355) #7
  br label %381

381:                                              ; preds = %380, %378
  br label %382

382:                                              ; preds = %381, %366
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %34) #7
  br label %383

383:                                              ; preds = %382, %362
  call void @llvm.lifetime.end.p0(i64 392, ptr %34) #7
  br label %389

384:                                              ; preds = %328
  invoke void @_ZNSt6vectorIlSaIlEE9push_backERKl(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %385 unwind label %358

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

386:                                              ; preds = %385
  %387 = load i64, ptr %32, align 8, !tbaa !27
  %388 = add i64 %387, 1
  store i64 %388, ptr %32, align 8, !tbaa !27
  br label %316, !llvm.loop !31

389:                                              ; preds = %383, %358
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %587

390:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #7
  store i64 0, ptr %37, align 8, !tbaa !27
  br label %391

391:                                              ; preds = %492, %390
  %392 = load i64, ptr %37, align 8, !tbaa !27
  %393 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 9
  %394 = load i64, ptr %393, align 8, !tbaa !9
  %395 = icmp ult i64 %392, %394
  br i1 %395, label %397, label %396

396:                                              ; preds = %391
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  br label %496

397:                                              ; preds = %391
  %398 = load ptr, ptr %12, align 8, !tbaa !5
  %399 = load i64, ptr %37, align 8, !tbaa !27
  %400 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %398, i64 noundef %399) #7
  %401 = load i64, ptr %400, align 8, !tbaa !27
  %402 = load i64, ptr %37, align 8, !tbaa !27
  %403 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %402) #7
  %404 = load i64, ptr %403, align 8, !tbaa !27
  %405 = icmp sge i64 %401, %404
  br i1 %405, label %406, label %449

406:                                              ; preds = %397
  %407 = load ptr, ptr %12, align 8, !tbaa !5
  %408 = load i64, ptr %37, align 8, !tbaa !27
  %409 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %407, i64 noundef %408) #7
  %410 = load i64, ptr %409, align 8, !tbaa !27
  %411 = load ptr, ptr %11, align 8, !tbaa !5
  %412 = load i64, ptr %37, align 8, !tbaa !27
  %413 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %411, i64 noundef %412) #7
  %414 = load i64, ptr %413, align 8, !tbaa !27
  %415 = icmp ne i64 %410, %414
  br i1 %415, label %416, label %449

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

417:                                              ; preds = %416
  %418 = getelementptr inbounds i8, ptr %38, i64 16
  %419 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %418, ptr noundef @.str.10)
          to label %420 unwind label %431

420:                                              ; preds = %417
  %421 = load i64, ptr %37, align 8, !tbaa !27
  %422 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %419, i64 noundef %421)
          to label %423 unwind label %431

423:                                              ; preds = %420
  store i1 true, ptr %40, align 1
  %424 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(128) %38)
          to label %425 unwind label %435

425:                                              ; preds = %423
  invoke void @_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %424, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %426 unwind label %439

426:                                              ; preds = %425
  store i1 false, ptr %40, align 1
  invoke void @__cxa_throw(ptr %424, ptr @_ZTISt12domain_error, ptr @_ZNSt12domain_errorD1Ev) #8
          to label %605 unwind label %439

427:                                              ; preds = %416
  %428 = landingpad { ptr, i32 }
          cleanup
  %429 = extractvalue { ptr, i32 } %428, 0
  store ptr %429, ptr %19, align 8
  %430 = extractvalue { ptr, i32 } %428, 1
  store i32 %430, ptr %20, align 4
  br label %448

431:                                              ; preds = %420, %417
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %19, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %20, align 4
  br label %447

435:                                              ; preds = %423
  %436 = landingpad { ptr, i32 }
          cleanup
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %19, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %20, align 4
  br label %443

439:                                              ; preds = %426, %425
  %440 = landingpad { ptr, i32 }
          cleanup
  %441 = extractvalue { ptr, i32 } %440, 0
  store ptr %441, ptr %19, align 8
  %442 = extractvalue { ptr, i32 } %440, 1
  store i32 %442, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %443

443:                                              ; preds = %439, %435
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #7
  %444 = load i1, ptr %40, align 1
  br i1 %444, label %445, label %446

445:                                              ; preds = %443
  call void @__cxa_free_exception(ptr %424) #7
  br label %446

446:                                              ; preds = %445, %443
  br label %447

447:                                              ; preds = %446, %431
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %38) #7
  br label %448

448:                                              ; preds = %447, %427
  call void @llvm.lifetime.end.p0(i64 392, ptr %38) #7
  br label %495

449:                                              ; preds = %406, %397
  %450 = load ptr, ptr %13, align 8, !tbaa !5
  %451 = load i64, ptr %37, align 8, !tbaa !27
  %452 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %450, i64 noundef %451) #7
  %453 = load i64, ptr %452, align 8, !tbaa !27
  %454 = load i64, ptr %37, align 8, !tbaa !27
  %455 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %454) #7
  %456 = load i64, ptr %455, align 8, !tbaa !27
  %457 = icmp sgt i64 %453, %456
  br i1 %457, label %458, label %491

458:                                              ; preds = %449
  call void @llvm.lifetime.start.p0(i64 392, ptr %41) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %41)
          to label %459 unwind label %469

459:                                              ; preds = %458
  %460 = getelementptr inbounds i8, ptr %41, i64 16
  %461 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %460, ptr noundef @.str.9)
          to label %462 unwind label %473

462:                                              ; preds = %459
  %463 = load i64, ptr %37, align 8, !tbaa !27
  %464 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %461, i64 noundef %463)
          to label %465 unwind label %473

465:                                              ; preds = %462
  store i1 true, ptr %43, align 1
  %466 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(128) %41)
          to label %467 unwind label %477

467:                                              ; preds = %465
  invoke void @_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %466, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %468 unwind label %481

468:                                              ; preds = %467
  store i1 false, ptr %43, align 1
  invoke void @__cxa_throw(ptr %466, ptr @_ZTISt12domain_error, ptr @_ZNSt12domain_errorD1Ev) #8
          to label %605 unwind label %481

469:                                              ; preds = %458
  %470 = landingpad { ptr, i32 }
          cleanup
  %471 = extractvalue { ptr, i32 } %470, 0
  store ptr %471, ptr %19, align 8
  %472 = extractvalue { ptr, i32 } %470, 1
  store i32 %472, ptr %20, align 4
  br label %490

473:                                              ; preds = %462, %459
  %474 = landingpad { ptr, i32 }
          cleanup
  %475 = extractvalue { ptr, i32 } %474, 0
  store ptr %475, ptr %19, align 8
  %476 = extractvalue { ptr, i32 } %474, 1
  store i32 %476, ptr %20, align 4
  br label %489

477:                                              ; preds = %465
  %478 = landingpad { ptr, i32 }
          cleanup
  %479 = extractvalue { ptr, i32 } %478, 0
  store ptr %479, ptr %19, align 8
  %480 = extractvalue { ptr, i32 } %478, 1
  store i32 %480, ptr %20, align 4
  br label %485

481:                                              ; preds = %468, %467
  %482 = landingpad { ptr, i32 }
          cleanup
  %483 = extractvalue { ptr, i32 } %482, 0
  store ptr %483, ptr %19, align 8
  %484 = extractvalue { ptr, i32 } %482, 1
  store i32 %484, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  br label %485

485:                                              ; preds = %481, %477
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #7
  %486 = load i1, ptr %43, align 1
  br i1 %486, label %487, label %488

487:                                              ; preds = %485
  call void @__cxa_free_exception(ptr %466) #7
  br label %488

488:                                              ; preds = %487, %485
  br label %489

489:                                              ; preds = %488, %473
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %41) #7
  br label %490

490:                                              ; preds = %489, %469
  call void @llvm.lifetime.end.p0(i64 392, ptr %41) #7
  br label %495

491:                                              ; preds = %449
  br label %492

492:                                              ; preds = %491
  %493 = load i64, ptr %37, align 8, !tbaa !27
  %494 = add i64 %493, 1
  store i64 %494, ptr %37, align 8, !tbaa !27
  br label %391, !llvm.loop !32

495:                                              ; preds = %490, %448
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  br label %587

496:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  store i64 0, ptr %44, align 8, !tbaa !27
  br label %497

497:                                              ; preds = %543, %496
  %498 = load i64, ptr %44, align 8, !tbaa !27
  %499 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 9
  %500 = load i64, ptr %499, align 8, !tbaa !9
  %501 = icmp ult i64 %498, %500
  br i1 %501, label %503, label %502

502:                                              ; preds = %497
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  br label %546

503:                                              ; preds = %497
  %504 = load ptr, ptr %14, align 8, !tbaa !5
  %505 = load i64, ptr %44, align 8, !tbaa !27
  %506 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %504, i64 noundef %505) #7
  %507 = load i64, ptr %506, align 8, !tbaa !27
  %508 = icmp eq i64 %507, 0
  br i1 %508, label %509, label %542

509:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 392, ptr %45) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %45)
          to label %510 unwind label %520

510:                                              ; preds = %509
  %511 = getelementptr inbounds i8, ptr %45, i64 16
  %512 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %511, ptr noundef @.str.11)
          to label %513 unwind label %524

513:                                              ; preds = %510
  %514 = load i64, ptr %44, align 8, !tbaa !27
  %515 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %512, i64 noundef %514)
          to label %516 unwind label %524

516:                                              ; preds = %513
  store i1 true, ptr %47, align 1
  %517 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(128) %45)
          to label %518 unwind label %528

518:                                              ; preds = %516
  invoke void @_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %517, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %519 unwind label %532

519:                                              ; preds = %518
  store i1 false, ptr %47, align 1
  invoke void @__cxa_throw(ptr %517, ptr @_ZTISt12domain_error, ptr @_ZNSt12domain_errorD1Ev) #8
          to label %605 unwind label %532

520:                                              ; preds = %509
  %521 = landingpad { ptr, i32 }
          cleanup
  %522 = extractvalue { ptr, i32 } %521, 0
  store ptr %522, ptr %19, align 8
  %523 = extractvalue { ptr, i32 } %521, 1
  store i32 %523, ptr %20, align 4
  br label %541

524:                                              ; preds = %513, %510
  %525 = landingpad { ptr, i32 }
          cleanup
  %526 = extractvalue { ptr, i32 } %525, 0
  store ptr %526, ptr %19, align 8
  %527 = extractvalue { ptr, i32 } %525, 1
  store i32 %527, ptr %20, align 4
  br label %540

528:                                              ; preds = %516
  %529 = landingpad { ptr, i32 }
          cleanup
  %530 = extractvalue { ptr, i32 } %529, 0
  store ptr %530, ptr %19, align 8
  %531 = extractvalue { ptr, i32 } %529, 1
  store i32 %531, ptr %20, align 4
  br label %536

532:                                              ; preds = %519, %518
  %533 = landingpad { ptr, i32 }
          cleanup
  %534 = extractvalue { ptr, i32 } %533, 0
  store ptr %534, ptr %19, align 8
  %535 = extractvalue { ptr, i32 } %533, 1
  store i32 %535, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %536

536:                                              ; preds = %532, %528
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  %537 = load i1, ptr %47, align 1
  br i1 %537, label %538, label %539

538:                                              ; preds = %536
  call void @__cxa_free_exception(ptr %517) #7
  br label %539

539:                                              ; preds = %538, %536
  br label %540

540:                                              ; preds = %539, %524
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %45) #7
  br label %541

541:                                              ; preds = %540, %520
  call void @llvm.lifetime.end.p0(i64 392, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  br label %587

542:                                              ; preds = %503
  br label %543

543:                                              ; preds = %542
  %544 = load i64, ptr %44, align 8, !tbaa !27
  %545 = add i64 %544, 1
  store i64 %545, ptr %44, align 8, !tbaa !27
  br label %497, !llvm.loop !33

546:                                              ; preds = %502
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  store i64 0, ptr %48, align 8, !tbaa !27
  br label %547

547:                                              ; preds = %579, %546
  %548 = load i64, ptr %48, align 8, !tbaa !27
  %549 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 9
  %550 = load i64, ptr %549, align 8, !tbaa !9
  %551 = icmp ult i64 %548, %550
  br i1 %551, label %553, label %552

552:                                              ; preds = %547
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  br label %586

553:                                              ; preds = %547
  %554 = getelementptr inbounds %"class.ngraph::CoordinateTransform", ptr %51, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  %555 = load ptr, ptr %13, align 8, !tbaa !5
  %556 = load ptr, ptr %15, align 8, !tbaa !5
  %557 = load i64, ptr %48, align 8, !tbaa !27
  %558 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %556, i64 noundef %557) #7
  %559 = load i64, ptr %558, align 8, !tbaa !27
  %560 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %555, i64 noundef %559) #7
  %561 = load i64, ptr %560, align 8, !tbaa !27
  %562 = load ptr, ptr %12, align 8, !tbaa !5
  %563 = load ptr, ptr %15, align 8, !tbaa !5
  %564 = load i64, ptr %48, align 8, !tbaa !27
  %565 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %563, i64 noundef %564) #7
  %566 = load i64, ptr %565, align 8, !tbaa !27
  %567 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %562, i64 noundef %566) #7
  %568 = load i64, ptr %567, align 8, !tbaa !27
  %569 = sub i64 %561, %568
  store i64 %569, ptr %50, align 8, !tbaa !27
  %570 = load ptr, ptr %14, align 8, !tbaa !5
  %571 = load ptr, ptr %15, align 8, !tbaa !5
  %572 = load i64, ptr %48, align 8, !tbaa !27
  %573 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %571, i64 noundef %572) #7
  %574 = load i64, ptr %573, align 8, !tbaa !27
  %575 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %570, i64 noundef %574) #7
  %576 = invoke noundef i64 @_ZN6ngraph8ceil_divImEET_RKS1_S3_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %575)
          to label %577 unwind label %582

577:                                              ; preds = %553
  store i64 %576, ptr %49, align 8, !tbaa !27
  invoke void @_ZNSt6vectorImSaImEE9push_backEOm(ptr noundef nonnull align 8 dereferenceable(24) %554, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %578 unwind label %582

578:                                              ; preds = %577
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  br label %579

579:                                              ; preds = %578
  %580 = load i64, ptr %48, align 8, !tbaa !27
  %581 = add i64 %580, 1
  store i64 %581, ptr %48, align 8, !tbaa !27
  br label %547, !llvm.loop !34

582:                                              ; preds = %577, %553
  %583 = landingpad { ptr, i32 }
          cleanup
  %584 = extractvalue { ptr, i32 } %583, 0
  store ptr %584, ptr %19, align 8
  %585 = extractvalue { ptr, i32 } %583, 1
  store i32 %585, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  br label %587

586:                                              ; preds = %552
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #7
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #7
  ret void

587:                                              ; preds = %582, %541, %495, %389
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #7
  br label %588

588:                                              ; preds = %587, %310, %261, %257
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  br label %589

589:                                              ; preds = %588, %227
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #7
  br label %590

590:                                              ; preds = %589, %214, %201, %188, %175, %162, %149, %136, %132
  call void @_ZN6ngraph19CoordinateTransform8IteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(74) %77) #7
  br label %591

591:                                              ; preds = %590, %131
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %75) #7
  br label %592

592:                                              ; preds = %591, %119
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %72) #7
  br label %593

593:                                              ; preds = %592, %115
  call void @_ZN6ngraph14CoordinateDiffD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #7
  br label %594

594:                                              ; preds = %593, %111
  call void @_ZN6ngraph14CoordinateDiffD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %66) #7
  br label %595

595:                                              ; preds = %594, %107
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %63) #7
  br label %596

596:                                              ; preds = %595, %103
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %60) #7
  br label %597

597:                                              ; preds = %596, %99
  call void @_ZN6ngraph10CoordinateD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #7
  br label %598

598:                                              ; preds = %597, %95
  call void @_ZN6ngraph10CoordinateD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %54) #7
  br label %599

599:                                              ; preds = %598, %91
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %52) #7
  br label %600

600:                                              ; preds = %599
  %601 = load ptr, ptr %19, align 8
  %602 = load i32, ptr %20, align 4
  %603 = insertvalue { ptr, i32 } poison, ptr %601, 0
  %604 = insertvalue { ptr, i32 } %603, i32 %602, 1
  resume { ptr, i32 } %604

605:                                              ; preds = %519, %468, %426, %357, %288, %256, %213, %200, %187, %174, %161, %148, %90
  unreachable
}

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

declare void @_ZN6ngraph10CoordinateC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1

declare i32 @__gxx_personality_v0(...)

declare void @_ZN6ngraph7StridesC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1

declare void @_ZN6ngraph10AxisVectorC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1

declare void @_ZN6ngraph14CoordinateDiffC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1

declare void @_ZN6ngraph5ShapeC1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1

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

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

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

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

declare ptr @__cxa_allocate_exception(i64)

declare void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #1

declare void @__cxa_free_exception(ptr)

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

declare void @__cxa_throw(ptr, ptr, ptr)

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

declare void @_ZN6ngraph10AxisVectorC1Em(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) unnamed_addr #1

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZSt14is_permutationIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEENS1_IPKmS5_EEEbT_SA_T0_(ptr, ptr, ptr) #5

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #5

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

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

declare void @_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN6ngraph16subtract_or_zeroImEET_S1_S1_(i64 noundef, i64 noundef) #4

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN6ngraph8ceil_divImEET_RKS1_S3_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #4

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

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

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

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

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

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

declare void @_ZN6ngraph19CoordinateTransform8IteratorC1ERKNS_5ShapeEb(ptr, ptr, i1)

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !24, i64 216}
!10 = !{!"_ZTSN6ngraph19CoordinateTransformE", !11, i64 0, !16, i64 24, !16, i64 48, !17, i64 72, !18, i64 96, !19, i64 120, !19, i64 144, !17, i64 168, !11, i64 192, !24, i64 216, !25, i64 224}
!11 = !{!"_ZTSN6ngraph5ShapeE", !12, i64 0}
!12 = !{!"_ZTSSt6vectorImSaImEE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseImSaImEE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseImSaImEE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseImSaImEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!16 = !{!"_ZTSN6ngraph10CoordinateE", !12, i64 0}
!17 = !{!"_ZTSN6ngraph7StridesE", !12, i64 0}
!18 = !{!"_ZTSN6ngraph10AxisVectorE", !12, i64 0}
!19 = !{!"_ZTSN6ngraph14CoordinateDiffE", !20, i64 0}
!20 = !{!"_ZTSSt6vectorIlSaIlEE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIlSaIlEE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIlSaIlEE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIlSaIlEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!24 = !{!"long", !7, i64 0}
!25 = !{!"_ZTSN6ngraph19CoordinateTransform8IteratorE", !11, i64 0, !11, i64 24, !16, i64 48, !26, i64 72, !26, i64 73}
!26 = !{!"bool", !7, i64 0}
!27 = !{!24, !24, i64 0}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = distinct !{!30, !29}
!31 = distinct !{!31, !29}
!32 = distinct !{!32, !29}
!33 = distinct !{!33, !29}
!34 = distinct !{!34, !29}


; 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::Shape" = type { %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.ngraph::AxisVector" = type { %"class.std::vector" }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.9 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.9 = type { i64, [8 x i8] }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [84 x i8], align 1
@_ZTISt12domain_error = external constant ptr
@.str.1 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [32 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ngraph19CoordinateTransformC2ERKNS_5ShapeERKNS_10CoordinateES6_RKNS_7StridesERKNS_10AxisVectorERKNS_14CoordinateDiffESF_S9_(ptr noundef nonnull align 8 dereferenceable(304) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %8) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %10 = alloca %"class.ngraph::Shape", align 8
  %11 = alloca %"class.ngraph::AxisVector", align 8
  %12 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::vector.0", align 8
  %15 = alloca i64, align 8
  %16 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  tail call void @_ZN6ngraph5ShapeC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %1)
  %26 = getelementptr inbounds i8, ptr %0, i64 24
  invoke void @_ZN6ngraph10CoordinateC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(24) %2)
          to label %27 unwind label %50

27:                                               ; preds = %9
  %28 = getelementptr inbounds i8, ptr %0, i64 48
  invoke void @_ZN6ngraph10CoordinateC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %29 unwind label %52

29:                                               ; preds = %27
  %30 = getelementptr inbounds i8, ptr %0, i64 72
  invoke void @_ZN6ngraph7StridesC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %31 unwind label %54

31:                                               ; preds = %29
  %32 = getelementptr inbounds i8, ptr %0, i64 96
  invoke void @_ZN6ngraph10AxisVectorC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %33 unwind label %56

33:                                               ; preds = %31
  %34 = getelementptr inbounds i8, ptr %0, i64 120
  invoke void @_ZN6ngraph14CoordinateDiffC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %34, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %35 unwind label %58

35:                                               ; preds = %33
  %36 = getelementptr inbounds i8, ptr %0, i64 144
  invoke void @_ZN6ngraph14CoordinateDiffC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(24) %7)
          to label %37 unwind label %60

37:                                               ; preds = %35
  %38 = getelementptr inbounds i8, ptr %0, i64 168
  invoke void @_ZN6ngraph7StridesC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %38, ptr noundef nonnull align 8 dereferenceable(24) %8)
          to label %39 unwind label %62

39:                                               ; preds = %37
  %40 = getelementptr inbounds i8, ptr %0, i64 192
  invoke void @_ZN6ngraph5ShapeC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %40)
          to label %41 unwind label %64

41:                                               ; preds = %39
  %42 = getelementptr inbounds i8, ptr %0, i64 224
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #7
  invoke void @_ZN6ngraph5ShapeC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %43 unwind label %66

43:                                               ; preds = %41
  invoke void @_ZN6ngraph19CoordinateTransform8IteratorC1ERKNS_5ShapeEb(ptr noundef nonnull align 8 dereferenceable(74) %42, ptr noundef nonnull align 8 dereferenceable(24) %10, i1 noundef zeroext true)
          to label %44 unwind label %68

44:                                               ; preds = %43
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  %45 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %46 = getelementptr inbounds i8, ptr %0, i64 216
  store i64 %45, ptr %46, align 8, !tbaa !5
  %47 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #7
  %.not = icmp eq i64 %45, %47
  br i1 %.not, label %75, label %48

48:                                               ; preds = %44
  %49 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull @.str)
          to label %.invoke unwind label %71

50:                                               ; preds = %9
  %51 = landingpad { ptr, i32 }
          cleanup
  br label %333

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

54:                                               ; preds = %29
  %55 = landingpad { ptr, i32 }
          cleanup
  br label %331

56:                                               ; preds = %31
  %57 = landingpad { ptr, i32 }
          cleanup
  br label %330

58:                                               ; preds = %33
  %59 = landingpad { ptr, i32 }
          cleanup
  br label %329

60:                                               ; preds = %35
  %61 = landingpad { ptr, i32 }
          cleanup
  br label %328

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

64:                                               ; preds = %39
  %65 = landingpad { ptr, i32 }
          cleanup
  br label %326

66:                                               ; preds = %41
  %67 = landingpad { ptr, i32 }
          cleanup
  br label %70

68:                                               ; preds = %43
  %69 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  br label %70

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

71:                                               ; preds = %48
  %72 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %49) #7
  br label %324

73:                                               ; preds = %.invoke
  %74 = landingpad { ptr, i32 }
          cleanup
  br label %324

75:                                               ; preds = %44
  %76 = load i64, ptr %46, align 8, !tbaa !5
  %77 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  %.not124 = icmp eq i64 %76, %77
  br i1 %.not124, label %82, label %78

78:                                               ; preds = %75
  %79 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %79, ptr noundef nonnull @.str.1)
          to label %.invoke unwind label %80

80:                                               ; preds = %78
  %81 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %79) #7
  br label %324

82:                                               ; preds = %75
  %83 = load i64, ptr %46, align 8, !tbaa !5
  %84 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  %.not125 = icmp eq i64 %83, %84
  br i1 %.not125, label %89, label %85

85:                                               ; preds = %82
  %86 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %86, ptr noundef nonnull @.str.2)
          to label %.invoke unwind label %87

87:                                               ; preds = %85
  %88 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %86) #7
  br label %324

89:                                               ; preds = %82
  %90 = load i64, ptr %46, align 8, !tbaa !5
  %91 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %.not126 = icmp eq i64 %90, %91
  br i1 %.not126, label %96, label %92

92:                                               ; preds = %89
  %93 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %93, ptr noundef nonnull @.str.3)
          to label %.invoke unwind label %94

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

96:                                               ; preds = %89
  %97 = load i64, ptr %46, align 8, !tbaa !5
  %98 = call noundef i64 @_ZNKSt6vectorIlSaIlEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  %.not127 = icmp eq i64 %97, %98
  br i1 %.not127, label %103, label %99

99:                                               ; preds = %96
  %100 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull @.str.4)
          to label %.invoke unwind label %101

101:                                              ; preds = %99
  %102 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %100) #7
  br label %324

103:                                              ; preds = %96
  %104 = load i64, ptr %46, align 8, !tbaa !5
  %105 = call noundef i64 @_ZNKSt6vectorIlSaIlEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  %.not128 = icmp eq i64 %104, %105
  br i1 %.not128, label %110, label %106

106:                                              ; preds = %103
  %107 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %107, ptr noundef nonnull @.str.5)
          to label %.invoke unwind label %108

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

110:                                              ; preds = %103
  %111 = load i64, ptr %46, align 8, !tbaa !5
  %112 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  %.not129 = icmp eq i64 %111, %112
  br i1 %.not129, label %118, label %113

113:                                              ; preds = %110
  %114 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %114, ptr noundef nonnull @.str.6)
          to label %.invoke unwind label %116

.invoke:                                          ; preds = %48, %113, %106, %99, %92, %85, %78
  %115 = phi ptr [ %79, %78 ], [ %86, %85 ], [ %93, %92 ], [ %100, %99 ], [ %107, %106 ], [ %114, %113 ], [ %49, %48 ]
  invoke void @__cxa_throw(ptr nonnull %115, ptr nonnull @_ZTISt12domain_error, ptr nonnull @_ZNSt12domain_errorD1Ev) #8
          to label %.cont unwind label %73

.cont:                                            ; preds = %.invoke
  unreachable

116:                                              ; preds = %113
  %117 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %114) #7
  br label %324

118:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #7
  %119 = load i64, ptr %46, align 8, !tbaa !5
  invoke void @_ZN6ngraph10AxisVectorC1Em(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %119)
          to label %.preheader200 unwind label %125

.preheader200:                                    ; preds = %118
  %120 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %.not221 = icmp eq i64 %120, 0
  br i1 %.not221, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %.lr.ph, %.preheader200
  %121 = call ptr @_ZNSt6vectorImSaImEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %122 = call ptr @_ZNSt6vectorImSaImEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %123 = call ptr @_ZNKSt6vectorImSaImEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %124 = invoke noundef zeroext i1 @_ZSt14is_permutationIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEENS1_IPKmS5_EEEbT_SA_T0_(ptr %121, ptr %122, ptr %123)
          to label %131 unwind label %136

125:                                              ; preds = %118
  %126 = landingpad { ptr, i32 }
          cleanup
  br label %323

.lr.ph:                                           ; preds = %.preheader200, %.lr.ph
  %.0122207 = phi i64 [ %128, %.lr.ph ], [ 0, %.preheader200 ]
  %127 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %.0122207) #7
  store i64 %.0122207, ptr %127, align 8, !tbaa !26
  %128 = add nuw i64 %.0122207, 1
  %129 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %130 = icmp ult i64 %128, %129
  br i1 %130, label %.lr.ph, label %._crit_edge, !llvm.loop !27

131:                                              ; preds = %._crit_edge
  br i1 %124, label %.preheader199, label %133

.preheader199:                                    ; preds = %131
  %132 = load i64, ptr %46, align 8, !tbaa !5
  %.not222 = icmp eq i64 %132, 0
  br i1 %.not222, label %._crit_edge210, label %.lr.ph209

133:                                              ; preds = %131
  %134 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %134, ptr noundef nonnull @.str.7)
          to label %135 unwind label %138

135:                                              ; preds = %133
  invoke void @__cxa_throw(ptr nonnull %134, ptr nonnull @_ZTISt12domain_error, ptr nonnull @_ZNSt12domain_errorD1Ev) #8
          to label %334 unwind label %136

136:                                              ; preds = %135, %._crit_edge
  %137 = landingpad { ptr, i32 }
          cleanup
  br label %322

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

._crit_edge210:                                   ; preds = %165, %.preheader199
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #7
  call void @_ZNSt6vectorIlSaIlEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  %140 = load i64, ptr %46, align 8, !tbaa !5
  %.not223 = icmp eq i64 %140, 0
  br i1 %.not223, label %._crit_edge220, label %.lr.ph213

.lr.ph209:                                        ; preds = %.preheader199, %165
  %.088208 = phi i64 [ %166, %165 ], [ 0, %.preheader199 ]
  %141 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.088208) #7
  %142 = load i64, ptr %141, align 8, !tbaa !26
  %143 = icmp eq i64 %142, 0
  br i1 %143, label %144, label %165

144:                                              ; preds = %.lr.ph209
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %12) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %12)
          to label %145 unwind label %155

145:                                              ; preds = %144
  %146 = getelementptr inbounds i8, ptr %12, i64 16
  %147 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull @.str.8)
          to label %148 unwind label %157

148:                                              ; preds = %145
  %149 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %147, i64 noundef %.088208)
          to label %150 unwind label %157

150:                                              ; preds = %148
  %151 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #7
  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) %12)
          to label %152 unwind label %.thread

152:                                              ; preds = %150
  invoke void @_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %151, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %154 unwind label %.thread171

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

154:                                              ; preds = %152
  invoke void @__cxa_throw(ptr nonnull %151, ptr nonnull @_ZTISt12domain_error, ptr nonnull @_ZNSt12domain_errorD1Ev) #8
          to label %334 unwind label %160

155:                                              ; preds = %144
  %156 = landingpad { ptr, i32 }
          cleanup
  br label %164

157:                                              ; preds = %148, %145
  %158 = landingpad { ptr, i32 }
          cleanup
  br label %163

.thread:                                          ; preds = %150
  %159 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  br label %162

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

162:                                              ; preds = %.thread171, %.thread
  %.pn151170 = phi { ptr, i32 } [ %159, %.thread ], [ %153, %.thread171 ]
  call void @__cxa_free_exception(ptr %151) #7
  br label %163

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

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

165:                                              ; preds = %.lr.ph209
  %166 = add nuw i64 %.088208, 1
  %167 = load i64, ptr %46, align 8, !tbaa !5
  %168 = icmp ult i64 %166, %167
  br i1 %168, label %.lr.ph209, label %._crit_edge210, !llvm.loop !29

.preheader198:                                    ; preds = %207
  %.not224 = icmp eq i64 %209, 0
  br i1 %.not224, label %._crit_edge220, label %.lr.ph215

.lr.ph213:                                        ; preds = %._crit_edge210, %207
  %.085211 = phi i64 [ %208, %207 ], [ 0, %._crit_edge210 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #7
  %169 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %.085211) #7
  %170 = load i64, ptr %169, align 8, !tbaa !26
  %171 = call noundef i64 @_ZN6ngraph16subtract_or_zeroImEET_S1_S1_(i64 noundef %170, i64 noundef 1)
  %172 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.085211) #7
  %173 = load i64, ptr %172, align 8, !tbaa !26
  %174 = mul i64 %173, %171
  %175 = add i64 %174, 1
  %176 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %.085211) #7
  %177 = load i64, ptr %176, align 8, !tbaa !26
  %178 = add i64 %175, %177
  %179 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %.085211) #7
  %180 = load i64, ptr %179, align 8, !tbaa !26
  %181 = add i64 %178, %180
  store i64 %181, ptr %15, align 8, !tbaa !26
  %182 = icmp slt i64 %181, 0
  br i1 %182, label %183, label %206

183:                                              ; preds = %.lr.ph213
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %16) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %16)
          to label %184 unwind label %196

184:                                              ; preds = %183
  %185 = getelementptr inbounds i8, ptr %16, i64 16
  %186 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %185, ptr noundef nonnull @.str.9)
          to label %187 unwind label %198

187:                                              ; preds = %184
  %188 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %186, i64 noundef %.085211)
          to label %189 unwind label %198

189:                                              ; preds = %187
  %190 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(128) %16)
          to label %191 unwind label %.thread173

191:                                              ; preds = %189
  invoke void @_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %190, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %193 unwind label %.thread177

.thread177:                                       ; preds = %191
  %192 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  br label %203

193:                                              ; preds = %191
  invoke void @__cxa_throw(ptr nonnull %190, ptr nonnull @_ZTISt12domain_error, ptr nonnull @_ZNSt12domain_errorD1Ev) #8
          to label %334 unwind label %201

194:                                              ; preds = %206
  %195 = landingpad { ptr, i32 }
          cleanup
  br label %211

196:                                              ; preds = %183
  %197 = landingpad { ptr, i32 }
          cleanup
  br label %205

198:                                              ; preds = %187, %184
  %199 = landingpad { ptr, i32 }
          cleanup
  br label %204

.thread173:                                       ; preds = %189
  %200 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  br label %203

201:                                              ; preds = %193
  %202 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  br label %204

203:                                              ; preds = %.thread177, %.thread173
  %.pn145176 = phi { ptr, i32 } [ %200, %.thread173 ], [ %192, %.thread177 ]
  call void @__cxa_free_exception(ptr %190) #7
  br label %204

204:                                              ; preds = %201, %203, %198
  %.pn145.pn = phi { ptr, i32 } [ %.pn145176, %203 ], [ %202, %201 ], [ %199, %198 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %16) #7
  br label %205

205:                                              ; preds = %204, %196
  %.pn145.pn.pn = phi { ptr, i32 } [ %.pn145.pn, %204 ], [ %197, %196 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %16) #7
  br label %211

206:                                              ; preds = %.lr.ph213
  invoke void @_ZNSt6vectorIlSaIlEE9push_backERKl(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %207 unwind label %194

207:                                              ; preds = %206
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  %208 = add nuw i64 %.085211, 1
  %209 = load i64, ptr %46, align 8, !tbaa !5
  %210 = icmp ult i64 %208, %209
  br i1 %210, label %.lr.ph213, label %.preheader198, !llvm.loop !30

211:                                              ; preds = %205, %194
  %.pn145.pn.pn.pn = phi { ptr, i32 } [ %.pn145.pn.pn, %205 ], [ %195, %194 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  br label %321

.preheader197:                                    ; preds = %269
  %.not225 = icmp eq i64 %271, 0
  br i1 %.not225, label %._crit_edge220, label %.lr.ph217

.lr.ph215:                                        ; preds = %.preheader198, %269
  %.082214 = phi i64 [ %270, %269 ], [ 0, %.preheader198 ]
  %212 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %.082214) #7
  %213 = load i64, ptr %212, align 8, !tbaa !26
  %214 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %.082214) #7
  %215 = load i64, ptr %214, align 8, !tbaa !26
  %.not134 = icmp slt i64 %213, %215
  br i1 %.not134, label %242, label %216

216:                                              ; preds = %.lr.ph215
  %217 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %.082214) #7
  %218 = load i64, ptr %217, align 8, !tbaa !26
  %219 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %.082214) #7
  %220 = load i64, ptr %219, align 8, !tbaa !26
  %.not135 = icmp eq i64 %218, %220
  br i1 %.not135, label %242, label %221

221:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %18) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %222 unwind label %232

222:                                              ; preds = %221
  %223 = getelementptr inbounds i8, ptr %18, i64 16
  %224 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef nonnull @.str.10)
          to label %225 unwind label %234

225:                                              ; preds = %222
  %226 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %224, i64 noundef %.082214)
          to label %227 unwind label %234

227:                                              ; preds = %225
  %228 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %229 unwind label %.thread179

229:                                              ; preds = %227
  invoke void @_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %228, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %231 unwind label %.thread183

.thread183:                                       ; preds = %229
  %230 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %239

231:                                              ; preds = %229
  invoke void @__cxa_throw(ptr nonnull %228, ptr nonnull @_ZTISt12domain_error, ptr nonnull @_ZNSt12domain_errorD1Ev) #8
          to label %334 unwind label %237

232:                                              ; preds = %221
  %233 = landingpad { ptr, i32 }
          cleanup
  br label %241

234:                                              ; preds = %225, %222
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %240

.thread179:                                       ; preds = %227
  %236 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %239

237:                                              ; preds = %231
  %238 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %240

239:                                              ; preds = %.thread183, %.thread179
  %.pn140182 = phi { ptr, i32 } [ %236, %.thread179 ], [ %230, %.thread183 ]
  call void @__cxa_free_exception(ptr %228) #7
  br label %240

240:                                              ; preds = %237, %239, %234
  %.pn140.pn = phi { ptr, i32 } [ %.pn140182, %239 ], [ %238, %237 ], [ %235, %234 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %18) #7
  br label %241

241:                                              ; preds = %240, %232
  %.pn140.pn.pn = phi { ptr, i32 } [ %.pn140.pn, %240 ], [ %233, %232 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %18) #7
  br label %321

242:                                              ; preds = %216, %.lr.ph215
  %243 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %.082214) #7
  %244 = load i64, ptr %243, align 8, !tbaa !26
  %245 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %.082214) #7
  %246 = load i64, ptr %245, align 8, !tbaa !26
  %247 = icmp sgt i64 %244, %246
  br i1 %247, label %248, label %269

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

249:                                              ; preds = %248
  %250 = getelementptr inbounds i8, ptr %20, i64 16
  %251 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef nonnull @.str.9)
          to label %252 unwind label %261

252:                                              ; preds = %249
  %253 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %251, i64 noundef %.082214)
          to label %254 unwind label %261

254:                                              ; preds = %252
  %255 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(128) %20)
          to label %256 unwind label %.thread185

256:                                              ; preds = %254
  invoke void @_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %255, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %258 unwind label %.thread189

.thread189:                                       ; preds = %256
  %257 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  br label %266

258:                                              ; preds = %256
  invoke void @__cxa_throw(ptr nonnull %255, ptr nonnull @_ZTISt12domain_error, ptr nonnull @_ZNSt12domain_errorD1Ev) #8
          to label %334 unwind label %264

259:                                              ; preds = %248
  %260 = landingpad { ptr, i32 }
          cleanup
  br label %268

261:                                              ; preds = %252, %249
  %262 = landingpad { ptr, i32 }
          cleanup
  br label %267

.thread185:                                       ; preds = %254
  %263 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  br label %266

264:                                              ; preds = %258
  %265 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  br label %267

266:                                              ; preds = %.thread189, %.thread185
  %.pn136188 = phi { ptr, i32 } [ %263, %.thread185 ], [ %257, %.thread189 ]
  call void @__cxa_free_exception(ptr %255) #7
  br label %267

267:                                              ; preds = %264, %266, %261
  %.pn136.pn = phi { ptr, i32 } [ %.pn136188, %266 ], [ %265, %264 ], [ %262, %261 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %20) #7
  br label %268

268:                                              ; preds = %267, %259
  %.pn136.pn.pn = phi { ptr, i32 } [ %.pn136.pn, %267 ], [ %260, %259 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %20) #7
  br label %321

269:                                              ; preds = %242
  %270 = add nuw i64 %.082214, 1
  %271 = load i64, ptr %46, align 8, !tbaa !5
  %272 = icmp ult i64 %270, %271
  br i1 %272, label %.lr.ph215, label %.preheader197, !llvm.loop !31

.preheader:                                       ; preds = %298
  %273 = icmp eq i64 %300, 0
  br i1 %273, label %._crit_edge220, label %.lr.ph219

.lr.ph217:                                        ; preds = %.preheader197, %298
  %.077216 = phi i64 [ %299, %298 ], [ 0, %.preheader197 ]
  %274 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %.077216) #7
  %275 = load i64, ptr %274, align 8, !tbaa !26
  %276 = icmp eq i64 %275, 0
  br i1 %276, label %277, label %298

277:                                              ; preds = %.lr.ph217
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %22) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %22)
          to label %278 unwind label %288

278:                                              ; preds = %277
  %279 = getelementptr inbounds i8, ptr %22, i64 16
  %280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %279, ptr noundef nonnull @.str.11)
          to label %281 unwind label %290

281:                                              ; preds = %278
  %282 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %280, i64 noundef %.077216)
          to label %283 unwind label %290

283:                                              ; preds = %281
  %284 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(128) %22)
          to label %285 unwind label %.thread191

285:                                              ; preds = %283
  invoke void @_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %284, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %287 unwind label %.thread195

.thread195:                                       ; preds = %285
  %286 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %295

287:                                              ; preds = %285
  invoke void @__cxa_throw(ptr nonnull %284, ptr nonnull @_ZTISt12domain_error, ptr nonnull @_ZNSt12domain_errorD1Ev) #8
          to label %334 unwind label %293

288:                                              ; preds = %277
  %289 = landingpad { ptr, i32 }
          cleanup
  br label %297

290:                                              ; preds = %281, %278
  %291 = landingpad { ptr, i32 }
          cleanup
  br label %296

.thread191:                                       ; preds = %283
  %292 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %295

293:                                              ; preds = %287
  %294 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %296

295:                                              ; preds = %.thread195, %.thread191
  %.pn130194 = phi { ptr, i32 } [ %292, %.thread191 ], [ %286, %.thread195 ]
  call void @__cxa_free_exception(ptr %284) #7
  br label %296

296:                                              ; preds = %293, %295, %290
  %.pn130.pn = phi { ptr, i32 } [ %.pn130194, %295 ], [ %294, %293 ], [ %291, %290 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %22) #7
  br label %297

297:                                              ; preds = %296, %288
  %.pn130.pn.pn = phi { ptr, i32 } [ %.pn130.pn, %296 ], [ %289, %288 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %22) #7
  br label %321

298:                                              ; preds = %.lr.ph217
  %299 = add nuw i64 %.077216, 1
  %300 = load i64, ptr %46, align 8, !tbaa !5
  %301 = icmp ult i64 %299, %300
  br i1 %301, label %.lr.ph217, label %.preheader, !llvm.loop !32

._crit_edge220:                                   ; preds = %315, %._crit_edge210, %.preheader198, %.preheader197, %.preheader
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #7
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #7
  ret void

.lr.ph219:                                        ; preds = %.preheader, %315
  %.0218 = phi i64 [ %316, %315 ], [ 0, %.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #7
  %302 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %.0218) #7
  %303 = load i64, ptr %302, align 8, !tbaa !26
  %304 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %303) #7
  %305 = load i64, ptr %304, align 8, !tbaa !26
  %306 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %.0218) #7
  %307 = load i64, ptr %306, align 8, !tbaa !26
  %308 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %307) #7
  %309 = load i64, ptr %308, align 8, !tbaa !26
  %310 = sub i64 %305, %309
  store i64 %310, ptr %25, align 8, !tbaa !26
  %311 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %.0218) #7
  %312 = load i64, ptr %311, align 8, !tbaa !26
  %313 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %312) #7
  %314 = call noundef i64 @_ZN6ngraph8ceil_divImEET_RKS1_S3_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %313)
  store i64 %314, ptr %24, align 8, !tbaa !26
  invoke void @_ZNSt6vectorImSaImEE9push_backEOm(ptr noundef nonnull align 8 dereferenceable(24) %40, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %315 unwind label %319

315:                                              ; preds = %.lr.ph219
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  %316 = add nuw i64 %.0218, 1
  %317 = load i64, ptr %46, align 8, !tbaa !5
  %318 = icmp ult i64 %316, %317
  br i1 %318, label %.lr.ph219, label %._crit_edge220, !llvm.loop !33

319:                                              ; preds = %.lr.ph219
  %320 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  br label %321

321:                                              ; preds = %241, %268, %319, %297, %211
  %.pn145.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn145.pn.pn.pn, %211 ], [ %.pn130.pn.pn, %297 ], [ %320, %319 ], [ %.pn140.pn.pn, %241 ], [ %.pn136.pn.pn, %268 ]
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #7
  br label %322

322:                                              ; preds = %321, %164, %138, %136
  %.pn151.pn.pn.pn = phi { ptr, i32 } [ %.pn151.pn.pn, %164 ], [ %.pn145.pn.pn.pn.pn, %321 ], [ %137, %136 ], [ %139, %138 ]
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  br label %323

323:                                              ; preds = %322, %125
  %.pn151.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn151.pn.pn.pn, %322 ], [ %126, %125 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #7
  br label %324

324:                                              ; preds = %323, %116, %108, %101, %94, %87, %80, %73, %71
  %.pn157 = phi { ptr, i32 } [ %74, %73 ], [ %72, %71 ], [ %81, %80 ], [ %88, %87 ], [ %95, %94 ], [ %102, %101 ], [ %109, %108 ], [ %117, %116 ], [ %.pn151.pn.pn.pn.pn, %323 ]
  call void @_ZN6ngraph19CoordinateTransform8IteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(74) %42) #7
  br label %325

325:                                              ; preds = %324, %70
  %.pn157.pn = phi { ptr, i32 } [ %.pn157, %324 ], [ %.pn, %70 ]
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #7
  br label %326

326:                                              ; preds = %325, %64
  %.pn157.pn.pn = phi { ptr, i32 } [ %.pn157.pn, %325 ], [ %65, %64 ]
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #7
  br label %327

327:                                              ; preds = %326, %62
  %.pn157.pn.pn.pn = phi { ptr, i32 } [ %.pn157.pn.pn, %326 ], [ %63, %62 ]
  call void @_ZN6ngraph14CoordinateDiffD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #7
  br label %328

328:                                              ; preds = %327, %60
  %.pn157.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn157.pn.pn.pn, %327 ], [ %61, %60 ]
  call void @_ZN6ngraph14CoordinateDiffD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #7
  br label %329

329:                                              ; preds = %328, %58
  %.pn157.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn157.pn.pn.pn.pn, %328 ], [ %59, %58 ]
  call void @_ZN6ngraph10AxisVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #7
  br label %330

330:                                              ; preds = %329, %56
  %.pn157.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn157.pn.pn.pn.pn.pn, %329 ], [ %57, %56 ]
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #7
  br label %331

331:                                              ; preds = %330, %54
  %.pn157.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn157.pn.pn.pn.pn.pn.pn, %330 ], [ %55, %54 ]
  call void @_ZN6ngraph10CoordinateD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  br label %332

332:                                              ; preds = %331, %52
  %.pn157.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn157.pn.pn.pn.pn.pn.pn.pn, %331 ], [ %53, %52 ]
  call void @_ZN6ngraph10CoordinateD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  br label %333

333:                                              ; preds = %332, %50
  %.pn157.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn157.pn.pn.pn.pn.pn.pn.pn.pn, %332 ], [ %51, %50 ]
  call void @_ZN6ngraph5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) #7
  resume { ptr, i32 } %.pn157.pn.pn.pn.pn.pn.pn.pn.pn.pn

334:                                              ; preds = %287, %258, %231, %193, %154, %135
  unreachable
}

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

declare void @_ZN6ngraph10CoordinateC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1

declare i32 @__gxx_personality_v0(...)

declare void @_ZN6ngraph7StridesC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1

declare void @_ZN6ngraph10AxisVectorC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1

declare void @_ZN6ngraph14CoordinateDiffC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1

declare void @_ZN6ngraph5ShapeC1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1

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

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

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @_ZNSt12domain_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #1

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

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

declare void @_ZN6ngraph10AxisVectorC1Em(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) unnamed_addr #1

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZSt14is_permutationIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEENS1_IPKmS5_EEEbT_SA_T0_(ptr, ptr, ptr) local_unnamed_addr #5

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #5

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

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

declare void @_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN6ngraph16subtract_or_zeroImEET_S1_S1_(i64 noundef, i64 noundef) local_unnamed_addr #4

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN6ngraph8ceil_divImEET_RKS1_S3_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

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

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

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

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

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

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

declare void @_ZN6ngraph19CoordinateTransform8IteratorC1ERKNS_5ShapeEb(ptr, ptr, i1) local_unnamed_addr

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !23, i64 216}
!6 = !{!"_ZTSN6ngraph19CoordinateTransformE", !7, i64 0, !15, i64 24, !15, i64 48, !16, i64 72, !17, i64 96, !18, i64 120, !18, i64 144, !16, i64 168, !7, i64 192, !23, i64 216, !24, i64 224}
!7 = !{!"_ZTSN6ngraph5ShapeE", !8, i64 0}
!8 = !{!"_ZTSSt6vectorImSaImEE", !9, i64 0}
!9 = !{!"_ZTSSt12_Vector_baseImSaImEE", !10, i64 0}
!10 = !{!"_ZTSNSt12_Vector_baseImSaImEE12_Vector_implE", !11, i64 0}
!11 = !{!"_ZTSNSt12_Vector_baseImSaImEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!12 = !{!"any pointer", !13, i64 0}
!13 = !{!"omnipotent char", !14, i64 0}
!14 = !{!"Simple C++ TBAA"}
!15 = !{!"_ZTSN6ngraph10CoordinateE", !8, i64 0}
!16 = !{!"_ZTSN6ngraph7StridesE", !8, i64 0}
!17 = !{!"_ZTSN6ngraph10AxisVectorE", !8, i64 0}
!18 = !{!"_ZTSN6ngraph14CoordinateDiffE", !19, i64 0}
!19 = !{!"_ZTSSt6vectorIlSaIlEE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIlSaIlEE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIlSaIlEE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIlSaIlEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!23 = !{!"long", !13, i64 0}
!24 = !{!"_ZTSN6ngraph19CoordinateTransform8IteratorE", !7, i64 0, !7, i64 24, !15, i64 48, !25, i64 72, !25, i64 73}
!25 = !{!"bool", !13, i64 0}
!26 = !{!23, !23, i64 0}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}
!29 = distinct !{!29, !28}
!30 = distinct !{!30, !28}
!31 = distinct !{!31, !28}
!32 = distinct !{!32, !28}
!33 = distinct !{!33, !28}


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