; LLVM IR from stonne-simulator/omega :: omega-code/stonne/src/SDMemory.ll (ZN8SDMemory5cycleEv)

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

%"class.std::vector.19" = type { %"struct.std::_Vector_base.20" }
%"struct.std::_Vector_base.20" = type { %"struct.std::_Vector_base<DataPackage *, std::allocator<DataPackage *>>::_Vector_impl" }
%"struct.std::_Vector_base<DataPackage *, std::allocator<DataPackage *>>::_Vector_impl" = type { %"struct.std::_Vector_base<DataPackage *, std::allocator<DataPackage *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DataPackage *, std::allocator<DataPackage *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.SDMemory = type { %class.MemoryController, ptr, ptr, ptr, ptr, ptr, %"class.std::vector", i32, i32, i32, i32, i32, i32, ptr, %"class.std::vector.3", %"class.std::vector.3", ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, %"class.std::__cxx11::list", %"class.std::vector", ptr, i32, %class.SDMemoryStats }
%class.MemoryController = type { %class.Unit }
%class.Unit = type { ptr, i32, %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<Fifo *, std::allocator<Fifo *>>::_Vector_impl" }
%"struct.std::_Vector_base<Fifo *, std::allocator<Fifo *>>::_Vector_impl" = type { %"struct.std::_Vector_base<Fifo *, std::allocator<Fifo *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Fifo *, std::allocator<Fifo *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<DataPackage *, std::allocator<DataPackage *>>::_List_impl" }
%"struct.std::__cxx11::_List_base<DataPackage *, std::allocator<DataPackage *>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Connection *, std::allocator<Connection *>>::_Vector_impl" }
%"struct.std::_Vector_base<Connection *, std::allocator<Connection *>>::_Vector_impl" = type { %"struct.std::_Vector_base<Connection *, std::allocator<Connection *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Connection *, std::allocator<Connection *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.SDMemoryStats = type { %class.Stats, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::vector.11", %"class.std::vector.11", %"class.std::vector.11", %"class.std::vector.11" }
%class.Stats = type { ptr }
%"class.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.VNAT_Register = type <{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, i8, i8, [6 x i8] }>

@.str.1 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [17 x i8], align 1
@__PRETTY_FUNCTION__._ZN8SDMemory5cycleEv = external hidden unnamed_addr constant [31 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8DNNLayer5get_GEv(ptr noundef nonnull align 8 dereferenceable(84)) #0 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41)) #0 align 2

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #3

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #4

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) #4

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8DNNLayer5get_REv(ptr noundef nonnull align 8 dereferenceable(84)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8DNNLayer5get_SEv(ptr noundef nonnull align 8 dereferenceable(84)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41)) #0 align 2

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #6

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znam(i64 noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8DNNLayer5get_YEv(ptr noundef nonnull align 8 dereferenceable(84)) #0 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8SDMemory5cycleEv(ptr noundef nonnull align 8 dereferenceable(568) %0) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::vector.19", align 8
  %4 = alloca %"class.std::vector.19", align 8
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca float, align 4
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca float, align 4
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca ptr, align 8
  %95 = alloca float, align 4
  %96 = alloca ptr, align 8
  %97 = alloca i32, align 4
  %98 = alloca ptr, align 8
  %99 = alloca i32, align 4
  %100 = alloca float, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca ptr, align 8
  %104 = alloca i32, align 4
  %105 = alloca ptr, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %106 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %3) #9
  call void @_ZNSt6vectorIP11DataPackageSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %4) #9
  call void @_ZNSt6vectorIP11DataPackageSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  %107 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 58
  %108 = load i32, ptr %107, align 8, !tbaa !9
  %109 = add i32 %108, 1
  store i32 %109, ptr %107, align 8, !tbaa !9
  %110 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 59
  %111 = getelementptr inbounds %class.SDMemoryStats, ptr %110, i32 0, i32 1
  %112 = load i32, ptr %111, align 8, !tbaa !38
  %113 = add i32 %112, 1
  store i32 %113, ptr %111, align 8, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #9
  %114 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 41
  %115 = load i32, ptr %114, align 8, !tbaa !39
  %116 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 43
  %117 = load i32, ptr %116, align 8, !tbaa !40
  %118 = udiv i32 %115, %117
  store i32 %118, ptr %5, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  %119 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 36
  %120 = load i32, ptr %119, align 4, !tbaa !42
  %121 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %122 = load ptr, ptr %121, align 8, !tbaa !43
  %123 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %122)
          to label %124 unwind label %177

124:                                              ; preds = %1
  %125 = mul i32 %120, %123
  store i32 %125, ptr %6, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  %126 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 38
  %127 = load i32, ptr %126, align 4, !tbaa !44
  %128 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %129 = load ptr, ptr %128, align 8, !tbaa !43
  %130 = invoke noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %129)
          to label %131 unwind label %181

131:                                              ; preds = %124
  %132 = mul i32 %127, %130
  store i32 %132, ptr %9, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  %133 = load i32, ptr %6, align 4, !tbaa !41
  %134 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %135 = load ptr, ptr %134, align 8, !tbaa !45
  %136 = invoke noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84) %135)
          to label %137 unwind label %185

137:                                              ; preds = %131
  %138 = mul i32 %133, %136
  %139 = load i32, ptr %9, align 4, !tbaa !41
  %140 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %141 = load ptr, ptr %140, align 8, !tbaa !43
  %142 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %141)
          to label %143 unwind label %185

143:                                              ; preds = %137
  %144 = mul i32 %139, %142
  %145 = add i32 %138, %144
  store i32 %145, ptr %10, align 4, !tbaa !41
  %146 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 22
  %147 = load i8, ptr %146, align 1, !tbaa !46, !range !47, !noundef !48
  %148 = trunc i8 %147 to i1
  br i1 %148, label %2188, label %149

149:                                              ; preds = %143
  %150 = load i32, ptr %10, align 4, !tbaa !41
  %151 = load i32, ptr %5, align 4, !tbaa !41
  %152 = icmp ule i32 %150, %151
  br i1 %152, label %153, label %2188

153:                                              ; preds = %149
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  %154 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %155 = load ptr, ptr %154, align 8, !tbaa !43
  %156 = invoke noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %155)
          to label %157 unwind label %189

157:                                              ; preds = %153
  %158 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %159 = load ptr, ptr %158, align 8, !tbaa !43
  %160 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %159)
          to label %161 unwind label %189

161:                                              ; preds = %157
  %162 = mul i32 %156, %160
  %163 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %164 = load ptr, ptr %163, align 8, !tbaa !43
  %165 = invoke noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %164)
          to label %166 unwind label %189

166:                                              ; preds = %161
  %167 = mul i32 %162, %165
  store i32 %167, ptr %11, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  store i32 0, ptr %12, align 4, !tbaa !41
  %168 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %169 = load ptr, ptr %168, align 8, !tbaa !43
  %170 = invoke noundef zeroext i1 @_ZNK4Tile19get_folding_enabledEv(ptr noundef nonnull align 4 dereferenceable(41) %169)
          to label %171 unwind label %193

171:                                              ; preds = %166
  br i1 %170, label %172, label %197

172:                                              ; preds = %171
  %173 = load i32, ptr %11, align 4, !tbaa !41
  %174 = add i32 %173, 1
  store i32 %174, ptr %11, align 4, !tbaa !41
  %175 = load i32, ptr %12, align 4, !tbaa !41
  %176 = add i32 %175, 1
  store i32 %176, ptr %12, align 4, !tbaa !41
  br label %197

177:                                              ; preds = %1
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %7, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %8, align 4
  br label %2434

181:                                              ; preds = %124
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %7, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %8, align 4
  br label %2433

185:                                              ; preds = %2430, %2189, %2188, %137, %131
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %7, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %8, align 4
  br label %2432

189:                                              ; preds = %161, %157, %153
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %7, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %8, align 4
  br label %2187

193:                                              ; preds = %209, %205, %201, %166
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %7, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %8, align 4
  br label %2186

197:                                              ; preds = %172, %171
  %198 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 19
  %199 = load i8, ptr %198, align 8, !tbaa !49, !range !47, !noundef !48
  %200 = trunc i8 %199 to i1
  br i1 %200, label %1031, label %201

201:                                              ; preds = %197
  %202 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %203 = load ptr, ptr %202, align 8, !tbaa !43
  %204 = invoke noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %203)
          to label %205 unwind label %193

205:                                              ; preds = %201
  %206 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %207 = load ptr, ptr %206, align 8, !tbaa !43
  %208 = invoke noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %207)
          to label %209 unwind label %193

209:                                              ; preds = %205
  %210 = mul i32 %204, %208
  %211 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %212 = load ptr, ptr %211, align 8, !tbaa !43
  %213 = invoke noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %212)
          to label %214 unwind label %193

214:                                              ; preds = %209
  %215 = mul i32 %210, %213
  %216 = icmp ugt i32 %215, 1
  br i1 %216, label %217, label %686

217:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #9
  store i32 0, ptr %13, align 4, !tbaa !41
  br label %218

218:                                              ; preds = %680, %217
  %219 = load i32, ptr %13, align 4, !tbaa !41
  %220 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %221 = load ptr, ptr %220, align 8, !tbaa !43
  %222 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %221)
          to label %223 unwind label %226

223:                                              ; preds = %218
  %224 = icmp ult i32 %219, %222
  br i1 %224, label %230, label %225

225:                                              ; preds = %223
  store i32 2, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  br label %685

226:                                              ; preds = %218
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %7, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %8, align 4
  br label %684

230:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %231 = load i32, ptr %13, align 4, !tbaa !41
  %232 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %233 = load ptr, ptr %232, align 8, !tbaa !43
  %234 = invoke noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %233)
          to label %235 unwind label %257

235:                                              ; preds = %230
  %236 = mul i32 %231, %234
  %237 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %238 = load ptr, ptr %237, align 8, !tbaa !43
  %239 = invoke noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %238)
          to label %240 unwind label %257

240:                                              ; preds = %235
  %241 = mul i32 %236, %239
  %242 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %243 = load ptr, ptr %242, align 8, !tbaa !43
  %244 = invoke noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %243)
          to label %245 unwind label %257

245:                                              ; preds = %240
  %246 = mul i32 %241, %244
  %247 = load i32, ptr %11, align 4, !tbaa !41
  %248 = mul i32 %246, %247
  store i32 %248, ptr %15, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  store i32 0, ptr %16, align 4, !tbaa !41
  br label %249

249:                                              ; preds = %674, %245
  %250 = load i32, ptr %16, align 4, !tbaa !41
  %251 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %252 = load ptr, ptr %251, align 8, !tbaa !43
  %253 = invoke noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %252)
          to label %254 unwind label %261

254:                                              ; preds = %249
  %255 = icmp ult i32 %250, %253
  br i1 %255, label %265, label %256

256:                                              ; preds = %254
  store i32 5, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %679

257:                                              ; preds = %240, %235, %230
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %7, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %8, align 4
  br label %683

261:                                              ; preds = %249
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %7, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %8, align 4
  br label %678

265:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %266 = load i32, ptr %16, align 4, !tbaa !41
  %267 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %268 = load ptr, ptr %267, align 8, !tbaa !43
  %269 = invoke noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %268)
          to label %270 unwind label %287

270:                                              ; preds = %265
  %271 = mul i32 %266, %269
  %272 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %273 = load ptr, ptr %272, align 8, !tbaa !43
  %274 = invoke noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %273)
          to label %275 unwind label %287

275:                                              ; preds = %270
  %276 = mul i32 %271, %274
  %277 = load i32, ptr %11, align 4, !tbaa !41
  %278 = mul i32 %276, %277
  store i32 %278, ptr %17, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  store i32 0, ptr %18, align 4, !tbaa !41
  br label %279

279:                                              ; preds = %669, %275
  %280 = load i32, ptr %18, align 4, !tbaa !41
  %281 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %282 = load ptr, ptr %281, align 8, !tbaa !43
  %283 = invoke noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %282)
          to label %284 unwind label %291

284:                                              ; preds = %279
  %285 = icmp ult i32 %280, %283
  br i1 %285, label %295, label %286

286:                                              ; preds = %284
  store i32 8, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %673

287:                                              ; preds = %270, %265
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %7, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %8, align 4
  br label %677

291:                                              ; preds = %279
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %7, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %8, align 4
  br label %672

295:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  store i32 0, ptr %19, align 4, !tbaa !41
  br label %296

296:                                              ; preds = %664, %295
  %297 = load i32, ptr %19, align 4, !tbaa !41
  %298 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %299 = load ptr, ptr %298, align 8, !tbaa !43
  %300 = invoke noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %299)
          to label %301 unwind label %304

301:                                              ; preds = %296
  %302 = icmp ult i32 %297, %300
  br i1 %302, label %308, label %303

303:                                              ; preds = %301
  store i32 11, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %668

304:                                              ; preds = %296
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %7, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %8, align 4
  br label %667

308:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  store i32 0, ptr %20, align 4, !tbaa !41
  br label %309

309:                                              ; preds = %643, %308
  %310 = load i32, ptr %20, align 4, !tbaa !41
  %311 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %312 = load ptr, ptr %311, align 8, !tbaa !43
  %313 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %312)
          to label %314 unwind label %317

314:                                              ; preds = %309
  %315 = icmp ult i32 %310, %313
  br i1 %315, label %321, label %316

316:                                              ; preds = %314
  store i32 14, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %663

317:                                              ; preds = %309
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %7, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %8, align 4
  br label %662

321:                                              ; preds = %314
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %322 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 7
  %323 = load i32, ptr %322, align 8, !tbaa !50
  %324 = zext i32 %323 to i64
  %325 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %324) #10
          to label %326 unwind label %333

326:                                              ; preds = %321
  store ptr %325, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  store i32 0, ptr %22, align 4, !tbaa !41
  br label %327

327:                                              ; preds = %342, %326
  %328 = load i32, ptr %22, align 4, !tbaa !41
  %329 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 7
  %330 = load i32, ptr %329, align 8, !tbaa !50
  %331 = icmp ult i32 %328, %330
  br i1 %331, label %337, label %332

332:                                              ; preds = %327
  store i32 17, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %345

333:                                              ; preds = %321
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %7, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %8, align 4
  br label %661

337:                                              ; preds = %327
  %338 = load ptr, ptr %21, align 8, !tbaa !5
  %339 = load i32, ptr %22, align 4, !tbaa !41
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds i8, ptr %338, i64 %340
  store i8 0, ptr %341, align 1, !tbaa !51
  br label %342

342:                                              ; preds = %337
  %343 = load i32, ptr %22, align 4, !tbaa !41
  %344 = add nsw i32 %343, 1
  store i32 %344, ptr %22, align 4, !tbaa !41
  br label %327, !llvm.loop !52

345:                                              ; preds = %332
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  store i32 0, ptr %23, align 4, !tbaa !41
  br label %346

346:                                              ; preds = %471, %345
  %347 = load i32, ptr %23, align 4, !tbaa !41
  %348 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %349 = load ptr, ptr %348, align 8, !tbaa !43
  %350 = invoke noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %349)
          to label %351 unwind label %354

351:                                              ; preds = %346
  %352 = icmp ult i32 %347, %350
  br i1 %352, label %358, label %353

353:                                              ; preds = %351
  store i32 20, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %476

354:                                              ; preds = %346
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %7, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %8, align 4
  br label %475

358:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %359 = load i32, ptr %23, align 4, !tbaa !41
  %360 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %361 = load ptr, ptr %360, align 8, !tbaa !43
  %362 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %361)
          to label %363 unwind label %390

363:                                              ; preds = %358
  %364 = mul i32 %359, %362
  %365 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %366 = load ptr, ptr %365, align 8, !tbaa !43
  %367 = invoke noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %366)
          to label %368 unwind label %390

368:                                              ; preds = %363
  %369 = mul i32 %364, %367
  %370 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %371 = load ptr, ptr %370, align 8, !tbaa !43
  %372 = invoke noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %371)
          to label %373 unwind label %390

373:                                              ; preds = %368
  %374 = mul i32 %369, %372
  %375 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %376 = load ptr, ptr %375, align 8, !tbaa !43
  %377 = invoke noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %376)
          to label %378 unwind label %390

378:                                              ; preds = %373
  %379 = mul i32 %374, %377
  %380 = load i32, ptr %11, align 4, !tbaa !41
  %381 = mul i32 %379, %380
  store i32 %381, ptr %24, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  store i32 0, ptr %25, align 4, !tbaa !41
  br label %382

382:                                              ; preds = %466, %378
  %383 = load i32, ptr %25, align 4, !tbaa !41
  %384 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %385 = load ptr, ptr %384, align 8, !tbaa !43
  %386 = invoke noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %385)
          to label %387 unwind label %394

387:                                              ; preds = %382
  %388 = icmp ult i32 %383, %386
  br i1 %388, label %398, label %389

389:                                              ; preds = %387
  store i32 23, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %470

390:                                              ; preds = %373, %368, %363, %358
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %7, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %8, align 4
  br label %474

394:                                              ; preds = %382
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %7, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %8, align 4
  br label %469

398:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  store i32 0, ptr %26, align 4, !tbaa !41
  br label %399

399:                                              ; preds = %457, %398
  %400 = load i32, ptr %26, align 4, !tbaa !41
  %401 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %402 = load ptr, ptr %401, align 8, !tbaa !43
  %403 = invoke noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %402)
          to label %404 unwind label %407

404:                                              ; preds = %399
  %405 = icmp ult i32 %400, %403
  br i1 %405, label %411, label %406

406:                                              ; preds = %404
  store i32 26, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %465

407:                                              ; preds = %399
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %7, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %8, align 4
  br label %464

411:                                              ; preds = %404
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %412 = load i32, ptr %25, align 4, !tbaa !41
  %413 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %414 = load ptr, ptr %413, align 8, !tbaa !43
  %415 = invoke noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %414)
          to label %416 unwind label %460

416:                                              ; preds = %411
  %417 = mul i32 %412, %415
  %418 = load i32, ptr %11, align 4, !tbaa !41
  %419 = mul i32 %417, %418
  %420 = load i32, ptr %26, align 4, !tbaa !41
  %421 = load i32, ptr %11, align 4, !tbaa !41
  %422 = mul i32 %420, %421
  %423 = add i32 %419, %422
  store i32 %423, ptr %27, align 4, !tbaa !41
  %424 = load ptr, ptr %21, align 8, !tbaa !5
  %425 = load i32, ptr %24, align 4, !tbaa !41
  %426 = load i32, ptr %15, align 4, !tbaa !41
  %427 = add i32 %425, %426
  %428 = load i32, ptr %17, align 4, !tbaa !41
  %429 = add i32 %427, %428
  %430 = load i32, ptr %27, align 4, !tbaa !41
  %431 = add i32 %429, %430
  %432 = load i32, ptr %18, align 4, !tbaa !41
  %433 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %434 = load ptr, ptr %433, align 8, !tbaa !43
  %435 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %434)
          to label %436 unwind label %460

436:                                              ; preds = %416
  %437 = mul i32 %432, %435
  %438 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %439 = load ptr, ptr %438, align 8, !tbaa !43
  %440 = invoke noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %439)
          to label %441 unwind label %460

441:                                              ; preds = %436
  %442 = mul i32 %437, %440
  %443 = add i32 %431, %442
  %444 = load i32, ptr %19, align 4, !tbaa !41
  %445 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %446 = load ptr, ptr %445, align 8, !tbaa !43
  %447 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %446)
          to label %448 unwind label %460

448:                                              ; preds = %441
  %449 = mul i32 %444, %447
  %450 = add i32 %443, %449
  %451 = load i32, ptr %20, align 4, !tbaa !41
  %452 = add i32 %450, %451
  %453 = load i32, ptr %12, align 4, !tbaa !41
  %454 = add i32 %452, %453
  %455 = zext i32 %454 to i64
  %456 = getelementptr inbounds i8, ptr %424, i64 %455
  store i8 1, ptr %456, align 1, !tbaa !51
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %457

457:                                              ; preds = %448
  %458 = load i32, ptr %26, align 4, !tbaa !41
  %459 = add nsw i32 %458, 1
  store i32 %459, ptr %26, align 4, !tbaa !41
  br label %399, !llvm.loop !54

460:                                              ; preds = %441, %436, %416, %411
  %461 = landingpad { ptr, i32 }
          cleanup
  %462 = extractvalue { ptr, i32 } %461, 0
  store ptr %462, ptr %7, align 8
  %463 = extractvalue { ptr, i32 } %461, 1
  store i32 %463, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %464

464:                                              ; preds = %460, %407
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %469

465:                                              ; preds = %406
  br label %466

466:                                              ; preds = %465
  %467 = load i32, ptr %25, align 4, !tbaa !41
  %468 = add nsw i32 %467, 1
  store i32 %468, ptr %25, align 4, !tbaa !41
  br label %382, !llvm.loop !55

469:                                              ; preds = %464, %394
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %474

470:                                              ; preds = %389
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %471

471:                                              ; preds = %470
  %472 = load i32, ptr %23, align 4, !tbaa !41
  %473 = add nsw i32 %472, 1
  store i32 %473, ptr %23, align 4, !tbaa !41
  br label %346, !llvm.loop !56

474:                                              ; preds = %469, %390
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %475

475:                                              ; preds = %474, %354
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %661

476:                                              ; preds = %353
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %477 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 36
  %478 = load i32, ptr %477, align 4, !tbaa !42
  %479 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %480 = load ptr, ptr %479, align 8, !tbaa !43
  %481 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %480)
          to label %482 unwind label %594

482:                                              ; preds = %476
  %483 = mul i32 %478, %481
  store i32 %483, ptr %28, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %484 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 38
  %485 = load i32, ptr %484, align 4, !tbaa !44
  %486 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %487 = load ptr, ptr %486, align 8, !tbaa !43
  %488 = invoke noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %487)
          to label %489 unwind label %598

489:                                              ; preds = %482
  %490 = mul i32 %485, %488
  store i32 %490, ptr %29, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %491 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 35
  %492 = load i32, ptr %491, align 8, !tbaa !57
  %493 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %494 = load ptr, ptr %493, align 8, !tbaa !43
  %495 = invoke noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %494)
          to label %496 unwind label %602

496:                                              ; preds = %489
  %497 = mul i32 %492, %495
  store i32 %497, ptr %30, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %498 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 33
  %499 = load i32, ptr %498, align 8, !tbaa !58
  %500 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %501 = load ptr, ptr %500, align 8, !tbaa !43
  %502 = invoke noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %501)
          to label %503 unwind label %606

503:                                              ; preds = %496
  %504 = mul i32 %499, %502
  store i32 %504, ptr %31, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  %505 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 34
  %506 = load i32, ptr %505, align 4, !tbaa !59
  %507 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %508 = load ptr, ptr %507, align 8, !tbaa !43
  %509 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %508)
          to label %510 unwind label %610

510:                                              ; preds = %503
  %511 = mul i32 %506, %509
  store i32 %511, ptr %32, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  store float 0.000000e+00, ptr %33, align 4, !tbaa !60
  %512 = load i32, ptr %31, align 4, !tbaa !41
  %513 = load i32, ptr %19, align 4, !tbaa !41
  %514 = add i32 %512, %513
  %515 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %516 = load ptr, ptr %515, align 8, !tbaa !45
  %517 = invoke noundef i32 @_ZNK8DNNLayer5get_REv(ptr noundef nonnull align 8 dereferenceable(84) %516)
          to label %518 unwind label %614

518:                                              ; preds = %510
  %519 = icmp ult i32 %514, %517
  br i1 %519, label %520, label %618

520:                                              ; preds = %518
  %521 = load i32, ptr %32, align 4, !tbaa !41
  %522 = load i32, ptr %20, align 4, !tbaa !41
  %523 = add i32 %521, %522
  %524 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %525 = load ptr, ptr %524, align 8, !tbaa !45
  %526 = invoke noundef i32 @_ZNK8DNNLayer5get_SEv(ptr noundef nonnull align 8 dereferenceable(84) %525)
          to label %527 unwind label %614

527:                                              ; preds = %520
  %528 = icmp ult i32 %523, %526
  br i1 %528, label %529, label %618

529:                                              ; preds = %527
  %530 = load i32, ptr %30, align 4, !tbaa !41
  %531 = load i32, ptr %18, align 4, !tbaa !41
  %532 = add i32 %530, %531
  %533 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %534 = load ptr, ptr %533, align 8, !tbaa !45
  %535 = invoke noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %534)
          to label %536 unwind label %614

536:                                              ; preds = %529
  %537 = icmp ult i32 %532, %535
  br i1 %537, label %538, label %618

538:                                              ; preds = %536
  %539 = load i32, ptr %29, align 4, !tbaa !41
  %540 = load i32, ptr %16, align 4, !tbaa !41
  %541 = add i32 %539, %540
  %542 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %543 = load ptr, ptr %542, align 8, !tbaa !45
  %544 = invoke noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84) %543)
          to label %545 unwind label %614

545:                                              ; preds = %538
  %546 = icmp ult i32 %541, %544
  br i1 %546, label %547, label %618

547:                                              ; preds = %545
  %548 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 59
  %549 = getelementptr inbounds %class.SDMemoryStats, ptr %548, i32 0, i32 2
  %550 = load i32, ptr %549, align 4, !tbaa !62
  %551 = add i32 %550, 1
  store i32 %551, ptr %549, align 4, !tbaa !62
  %552 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 16
  %553 = load ptr, ptr %552, align 8, !tbaa !63
  %554 = load i32, ptr %28, align 4, !tbaa !41
  %555 = load i32, ptr %13, align 4, !tbaa !41
  %556 = add i32 %554, %555
  %557 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 53
  %558 = load i32, ptr %557, align 8, !tbaa !64
  %559 = mul i32 %556, %558
  %560 = mul i32 %559, 1
  %561 = load i32, ptr %29, align 4, !tbaa !41
  %562 = load i32, ptr %16, align 4, !tbaa !41
  %563 = add i32 %561, %562
  %564 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 46
  %565 = load i32, ptr %564, align 4, !tbaa !65
  %566 = mul i32 %563, %565
  %567 = mul i32 %566, 1
  %568 = add i32 %560, %567
  %569 = load i32, ptr %31, align 4, !tbaa !41
  %570 = load i32, ptr %19, align 4, !tbaa !41
  %571 = add i32 %569, %570
  %572 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 45
  %573 = load i32, ptr %572, align 8, !tbaa !66
  %574 = mul i32 %571, %573
  %575 = mul i32 %574, 1
  %576 = add i32 %568, %575
  %577 = load i32, ptr %32, align 4, !tbaa !41
  %578 = load i32, ptr %20, align 4, !tbaa !41
  %579 = add i32 %577, %578
  %580 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %581 = load ptr, ptr %580, align 8, !tbaa !45
  %582 = invoke noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %581)
          to label %583 unwind label %614

583:                                              ; preds = %547
  %584 = mul i32 %579, %582
  %585 = mul i32 %584, 1
  %586 = add i32 %576, %585
  %587 = load i32, ptr %30, align 4, !tbaa !41
  %588 = load i32, ptr %18, align 4, !tbaa !41
  %589 = add i32 %587, %588
  %590 = add i32 %586, %589
  %591 = zext i32 %590 to i64
  %592 = getelementptr inbounds float, ptr %553, i64 %591
  %593 = load float, ptr %592, align 4, !tbaa !60
  store float %593, ptr %33, align 4, !tbaa !60
  br label %618

594:                                              ; preds = %476
  %595 = landingpad { ptr, i32 }
          cleanup
  %596 = extractvalue { ptr, i32 } %595, 0
  store ptr %596, ptr %7, align 8
  %597 = extractvalue { ptr, i32 } %595, 1
  store i32 %597, ptr %8, align 4
  br label %660

598:                                              ; preds = %482
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %7, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %8, align 4
  br label %659

602:                                              ; preds = %489
  %603 = landingpad { ptr, i32 }
          cleanup
  %604 = extractvalue { ptr, i32 } %603, 0
  store ptr %604, ptr %7, align 8
  %605 = extractvalue { ptr, i32 } %603, 1
  store i32 %605, ptr %8, align 4
  br label %658

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

610:                                              ; preds = %503
  %611 = landingpad { ptr, i32 }
          cleanup
  %612 = extractvalue { ptr, i32 } %611, 0
  store ptr %612, ptr %7, align 8
  %613 = extractvalue { ptr, i32 } %611, 1
  store i32 %613, ptr %8, align 4
  br label %656

614:                                              ; preds = %547, %538, %529, %520, %510
  %615 = landingpad { ptr, i32 }
          cleanup
  %616 = extractvalue { ptr, i32 } %615, 0
  store ptr %616, ptr %7, align 8
  %617 = extractvalue { ptr, i32 } %615, 1
  store i32 %617, ptr %8, align 4
  br label %655

618:                                              ; preds = %583, %545, %536, %527, %518
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  %619 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 64) #10
          to label %620 unwind label %646

620:                                              ; preds = %618
  %621 = load float, ptr %33, align 4, !tbaa !60
  %622 = load ptr, ptr %21, align 8, !tbaa !5
  %623 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 7
  %624 = load i32, ptr %623, align 8, !tbaa !50
  invoke void @_ZN11DataPackageC1Emf9operand_tj9traffic_tPbj(ptr noundef nonnull align 8 dereferenceable(64) %619, i64 noundef 4, float noundef %621, i32 noundef 0, i32 noundef 0, i32 noundef 1, ptr noundef %622, i32 noundef %624)
          to label %625 unwind label %650

625:                                              ; preds = %620
  store ptr %619, ptr %34, align 8, !tbaa !5
  %626 = load ptr, ptr %34, align 8, !tbaa !5
  %627 = load i32, ptr %28, align 4, !tbaa !41
  %628 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %629 = load ptr, ptr %628, align 8, !tbaa !45
  %630 = invoke noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84) %629)
          to label %631 unwind label %646

631:                                              ; preds = %625
  %632 = mul i32 %627, %630
  %633 = load i32, ptr %29, align 4, !tbaa !41
  %634 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %635 = load ptr, ptr %634, align 8, !tbaa !43
  %636 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %635)
          to label %637 unwind label %646

637:                                              ; preds = %631
  %638 = mul i32 %633, %636
  %639 = add i32 %632, %638
  invoke void @_ZN11DataPackage13setIterationKEj(ptr noundef nonnull align 8 dereferenceable(64) %626, i32 noundef %639)
          to label %640 unwind label %646

640:                                              ; preds = %637
  %641 = load ptr, ptr %34, align 8, !tbaa !5
  invoke void @_ZN8SDMemory23sendPackageToInputFifosEP11DataPackage(ptr noundef nonnull align 8 dereferenceable(568) %106, ptr noundef %641)
          to label %642 unwind label %646

642:                                              ; preds = %640
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  br label %643

643:                                              ; preds = %642
  %644 = load i32, ptr %20, align 4, !tbaa !41
  %645 = add i32 %644, 1
  store i32 %645, ptr %20, align 4, !tbaa !41
  br label %309, !llvm.loop !67

646:                                              ; preds = %640, %637, %631, %625, %618
  %647 = landingpad { ptr, i32 }
          cleanup
  %648 = extractvalue { ptr, i32 } %647, 0
  store ptr %648, ptr %7, align 8
  %649 = extractvalue { ptr, i32 } %647, 1
  store i32 %649, ptr %8, align 4
  br label %654

650:                                              ; preds = %620
  %651 = landingpad { ptr, i32 }
          cleanup
  %652 = extractvalue { ptr, i32 } %651, 0
  store ptr %652, ptr %7, align 8
  %653 = extractvalue { ptr, i32 } %651, 1
  store i32 %653, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %619, i64 noundef 64) #11
  br label %654

654:                                              ; preds = %650, %646
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  br label %655

655:                                              ; preds = %654, %614
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %656

656:                                              ; preds = %655, %610
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %657

657:                                              ; preds = %656, %606
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %658

658:                                              ; preds = %657, %602
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %659

659:                                              ; preds = %658, %598
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %660

660:                                              ; preds = %659, %594
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %661

661:                                              ; preds = %660, %475, %333
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  br label %662

662:                                              ; preds = %661, %317
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %667

663:                                              ; preds = %316
  br label %664

664:                                              ; preds = %663
  %665 = load i32, ptr %19, align 4, !tbaa !41
  %666 = add i32 %665, 1
  store i32 %666, ptr %19, align 4, !tbaa !41
  br label %296, !llvm.loop !68

667:                                              ; preds = %662, %304
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %672

668:                                              ; preds = %303
  br label %669

669:                                              ; preds = %668
  %670 = load i32, ptr %18, align 4, !tbaa !41
  %671 = add i32 %670, 1
  store i32 %671, ptr %18, align 4, !tbaa !41
  br label %279, !llvm.loop !69

672:                                              ; preds = %667, %291
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %677

673:                                              ; preds = %286
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %674

674:                                              ; preds = %673
  %675 = load i32, ptr %16, align 4, !tbaa !41
  %676 = add i32 %675, 1
  store i32 %676, ptr %16, align 4, !tbaa !41
  br label %249, !llvm.loop !70

677:                                              ; preds = %672, %287
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %678

678:                                              ; preds = %677, %261
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %683

679:                                              ; preds = %256
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %680

680:                                              ; preds = %679
  %681 = load i32, ptr %13, align 4, !tbaa !41
  %682 = add i32 %681, 1
  store i32 %682, ptr %13, align 4, !tbaa !41
  br label %218, !llvm.loop !71

683:                                              ; preds = %678, %257
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %684

684:                                              ; preds = %683, %226
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  br label %2186

685:                                              ; preds = %225
  br label %996

686:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  store i32 0, ptr %35, align 4, !tbaa !41
  br label %687

687:                                              ; preds = %991, %686
  %688 = load i32, ptr %35, align 4, !tbaa !41
  %689 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %690 = load ptr, ptr %689, align 8, !tbaa !43
  %691 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %690)
          to label %692 unwind label %695

692:                                              ; preds = %687
  %693 = icmp ult i32 %688, %691
  br i1 %693, label %699, label %694

694:                                              ; preds = %692
  store i32 29, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %995

695:                                              ; preds = %687
  %696 = landingpad { ptr, i32 }
          cleanup
  %697 = extractvalue { ptr, i32 } %696, 0
  store ptr %697, ptr %7, align 8
  %698 = extractvalue { ptr, i32 } %696, 1
  store i32 %698, ptr %8, align 4
  br label %994

699:                                              ; preds = %692
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  store i32 0, ptr %36, align 4, !tbaa !41
  br label %700

700:                                              ; preds = %986, %699
  %701 = load i32, ptr %36, align 4, !tbaa !41
  %702 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %703 = load ptr, ptr %702, align 8, !tbaa !43
  %704 = invoke noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %703)
          to label %705 unwind label %708

705:                                              ; preds = %700
  %706 = icmp ult i32 %701, %704
  br i1 %706, label %712, label %707

707:                                              ; preds = %705
  store i32 32, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %990

708:                                              ; preds = %700
  %709 = landingpad { ptr, i32 }
          cleanup
  %710 = extractvalue { ptr, i32 } %709, 0
  store ptr %710, ptr %7, align 8
  %711 = extractvalue { ptr, i32 } %709, 1
  store i32 %711, ptr %8, align 4
  br label %989

712:                                              ; preds = %705
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  store i32 0, ptr %37, align 4, !tbaa !41
  br label %713

713:                                              ; preds = %981, %712
  %714 = load i32, ptr %37, align 4, !tbaa !41
  %715 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %716 = load ptr, ptr %715, align 8, !tbaa !43
  %717 = invoke noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %716)
          to label %718 unwind label %721

718:                                              ; preds = %713
  %719 = icmp ult i32 %714, %717
  br i1 %719, label %725, label %720

720:                                              ; preds = %718
  store i32 35, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %985

721:                                              ; preds = %713
  %722 = landingpad { ptr, i32 }
          cleanup
  %723 = extractvalue { ptr, i32 } %722, 0
  store ptr %723, ptr %7, align 8
  %724 = extractvalue { ptr, i32 } %722, 1
  store i32 %724, ptr %8, align 4
  br label %984

725:                                              ; preds = %718
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  store i32 0, ptr %38, align 4, !tbaa !41
  br label %726

726:                                              ; preds = %976, %725
  %727 = load i32, ptr %38, align 4, !tbaa !41
  %728 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %729 = load ptr, ptr %728, align 8, !tbaa !43
  %730 = invoke noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %729)
          to label %731 unwind label %734

731:                                              ; preds = %726
  %732 = icmp ult i32 %727, %730
  br i1 %732, label %738, label %733

733:                                              ; preds = %731
  store i32 38, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %980

734:                                              ; preds = %726
  %735 = landingpad { ptr, i32 }
          cleanup
  %736 = extractvalue { ptr, i32 } %735, 0
  store ptr %736, ptr %7, align 8
  %737 = extractvalue { ptr, i32 } %735, 1
  store i32 %737, ptr %8, align 4
  br label %979

738:                                              ; preds = %731
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  store i32 0, ptr %39, align 4, !tbaa !41
  br label %739

739:                                              ; preds = %951, %738
  %740 = load i32, ptr %39, align 4, !tbaa !41
  %741 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %742 = load ptr, ptr %741, align 8, !tbaa !43
  %743 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %742)
          to label %744 unwind label %747

744:                                              ; preds = %739
  %745 = icmp ult i32 %740, %743
  br i1 %745, label %751, label %746

746:                                              ; preds = %744
  store i32 41, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %975

747:                                              ; preds = %739
  %748 = landingpad { ptr, i32 }
          cleanup
  %749 = extractvalue { ptr, i32 } %748, 0
  store ptr %749, ptr %7, align 8
  %750 = extractvalue { ptr, i32 } %748, 1
  store i32 %750, ptr %8, align 4
  br label %974

751:                                              ; preds = %744
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  %752 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 36
  %753 = load i32, ptr %752, align 4, !tbaa !42
  %754 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %755 = load ptr, ptr %754, align 8, !tbaa !43
  %756 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %755)
          to label %757 unwind label %869

757:                                              ; preds = %751
  %758 = mul i32 %753, %756
  store i32 %758, ptr %40, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %759 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 38
  %760 = load i32, ptr %759, align 4, !tbaa !44
  %761 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %762 = load ptr, ptr %761, align 8, !tbaa !43
  %763 = invoke noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %762)
          to label %764 unwind label %873

764:                                              ; preds = %757
  %765 = mul i32 %760, %763
  store i32 %765, ptr %41, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  %766 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 35
  %767 = load i32, ptr %766, align 8, !tbaa !57
  %768 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %769 = load ptr, ptr %768, align 8, !tbaa !43
  %770 = invoke noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %769)
          to label %771 unwind label %877

771:                                              ; preds = %764
  %772 = mul i32 %767, %770
  store i32 %772, ptr %42, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %773 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 33
  %774 = load i32, ptr %773, align 8, !tbaa !58
  %775 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %776 = load ptr, ptr %775, align 8, !tbaa !43
  %777 = invoke noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %776)
          to label %778 unwind label %881

778:                                              ; preds = %771
  %779 = mul i32 %774, %777
  store i32 %779, ptr %43, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  %780 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 34
  %781 = load i32, ptr %780, align 4, !tbaa !59
  %782 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %783 = load ptr, ptr %782, align 8, !tbaa !43
  %784 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %783)
          to label %785 unwind label %885

785:                                              ; preds = %778
  %786 = mul i32 %781, %784
  store i32 %786, ptr %44, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  store float 0.000000e+00, ptr %45, align 4, !tbaa !60
  %787 = load i32, ptr %43, align 4, !tbaa !41
  %788 = load i32, ptr %38, align 4, !tbaa !41
  %789 = add i32 %787, %788
  %790 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %791 = load ptr, ptr %790, align 8, !tbaa !45
  %792 = invoke noundef i32 @_ZNK8DNNLayer5get_REv(ptr noundef nonnull align 8 dereferenceable(84) %791)
          to label %793 unwind label %889

793:                                              ; preds = %785
  %794 = icmp ult i32 %789, %792
  br i1 %794, label %795, label %893

795:                                              ; preds = %793
  %796 = load i32, ptr %44, align 4, !tbaa !41
  %797 = load i32, ptr %39, align 4, !tbaa !41
  %798 = add i32 %796, %797
  %799 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %800 = load ptr, ptr %799, align 8, !tbaa !45
  %801 = invoke noundef i32 @_ZNK8DNNLayer5get_SEv(ptr noundef nonnull align 8 dereferenceable(84) %800)
          to label %802 unwind label %889

802:                                              ; preds = %795
  %803 = icmp ult i32 %798, %801
  br i1 %803, label %804, label %893

804:                                              ; preds = %802
  %805 = load i32, ptr %42, align 4, !tbaa !41
  %806 = load i32, ptr %37, align 4, !tbaa !41
  %807 = add i32 %805, %806
  %808 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %809 = load ptr, ptr %808, align 8, !tbaa !45
  %810 = invoke noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %809)
          to label %811 unwind label %889

811:                                              ; preds = %804
  %812 = icmp ult i32 %807, %810
  br i1 %812, label %813, label %893

813:                                              ; preds = %811
  %814 = load i32, ptr %41, align 4, !tbaa !41
  %815 = load i32, ptr %36, align 4, !tbaa !41
  %816 = add i32 %814, %815
  %817 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %818 = load ptr, ptr %817, align 8, !tbaa !45
  %819 = invoke noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84) %818)
          to label %820 unwind label %889

820:                                              ; preds = %813
  %821 = icmp ult i32 %816, %819
  br i1 %821, label %822, label %893

822:                                              ; preds = %820
  %823 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 59
  %824 = getelementptr inbounds %class.SDMemoryStats, ptr %823, i32 0, i32 2
  %825 = load i32, ptr %824, align 4, !tbaa !62
  %826 = add i32 %825, 1
  store i32 %826, ptr %824, align 4, !tbaa !62
  %827 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 16
  %828 = load ptr, ptr %827, align 8, !tbaa !63
  %829 = load i32, ptr %40, align 4, !tbaa !41
  %830 = load i32, ptr %35, align 4, !tbaa !41
  %831 = add i32 %829, %830
  %832 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 53
  %833 = load i32, ptr %832, align 8, !tbaa !64
  %834 = mul i32 %831, %833
  %835 = mul i32 %834, 1
  %836 = load i32, ptr %41, align 4, !tbaa !41
  %837 = load i32, ptr %36, align 4, !tbaa !41
  %838 = add i32 %836, %837
  %839 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 46
  %840 = load i32, ptr %839, align 4, !tbaa !65
  %841 = mul i32 %838, %840
  %842 = mul i32 %841, 1
  %843 = add i32 %835, %842
  %844 = load i32, ptr %43, align 4, !tbaa !41
  %845 = load i32, ptr %38, align 4, !tbaa !41
  %846 = add i32 %844, %845
  %847 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 45
  %848 = load i32, ptr %847, align 8, !tbaa !66
  %849 = mul i32 %846, %848
  %850 = mul i32 %849, 1
  %851 = add i32 %843, %850
  %852 = load i32, ptr %44, align 4, !tbaa !41
  %853 = load i32, ptr %39, align 4, !tbaa !41
  %854 = add i32 %852, %853
  %855 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %856 = load ptr, ptr %855, align 8, !tbaa !45
  %857 = invoke noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %856)
          to label %858 unwind label %889

858:                                              ; preds = %822
  %859 = mul i32 %854, %857
  %860 = mul i32 %859, 1
  %861 = add i32 %851, %860
  %862 = load i32, ptr %42, align 4, !tbaa !41
  %863 = load i32, ptr %37, align 4, !tbaa !41
  %864 = add i32 %862, %863
  %865 = add i32 %861, %864
  %866 = zext i32 %865 to i64
  %867 = getelementptr inbounds float, ptr %828, i64 %866
  %868 = load float, ptr %867, align 4, !tbaa !60
  store float %868, ptr %45, align 4, !tbaa !60
  br label %893

869:                                              ; preds = %751
  %870 = landingpad { ptr, i32 }
          cleanup
  %871 = extractvalue { ptr, i32 } %870, 0
  store ptr %871, ptr %7, align 8
  %872 = extractvalue { ptr, i32 } %870, 1
  store i32 %872, ptr %8, align 4
  br label %973

873:                                              ; preds = %757
  %874 = landingpad { ptr, i32 }
          cleanup
  %875 = extractvalue { ptr, i32 } %874, 0
  store ptr %875, ptr %7, align 8
  %876 = extractvalue { ptr, i32 } %874, 1
  store i32 %876, ptr %8, align 4
  br label %972

877:                                              ; preds = %764
  %878 = landingpad { ptr, i32 }
          cleanup
  %879 = extractvalue { ptr, i32 } %878, 0
  store ptr %879, ptr %7, align 8
  %880 = extractvalue { ptr, i32 } %878, 1
  store i32 %880, ptr %8, align 4
  br label %971

881:                                              ; preds = %771
  %882 = landingpad { ptr, i32 }
          cleanup
  %883 = extractvalue { ptr, i32 } %882, 0
  store ptr %883, ptr %7, align 8
  %884 = extractvalue { ptr, i32 } %882, 1
  store i32 %884, ptr %8, align 4
  br label %970

885:                                              ; preds = %778
  %886 = landingpad { ptr, i32 }
          cleanup
  %887 = extractvalue { ptr, i32 } %886, 0
  store ptr %887, ptr %7, align 8
  %888 = extractvalue { ptr, i32 } %886, 1
  store i32 %888, ptr %8, align 4
  br label %969

889:                                              ; preds = %822, %813, %804, %795, %785
  %890 = landingpad { ptr, i32 }
          cleanup
  %891 = extractvalue { ptr, i32 } %890, 0
  store ptr %891, ptr %7, align 8
  %892 = extractvalue { ptr, i32 } %890, 1
  store i32 %892, ptr %8, align 4
  br label %968

893:                                              ; preds = %858, %820, %811, %802, %793
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  %894 = load i32, ptr %35, align 4, !tbaa !41
  %895 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %896 = load ptr, ptr %895, align 8, !tbaa !43
  %897 = invoke noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %896)
          to label %898 unwind label %954

898:                                              ; preds = %893
  %899 = mul i32 %894, %897
  %900 = load i32, ptr %11, align 4, !tbaa !41
  %901 = mul i32 %899, %900
  %902 = load i32, ptr %36, align 4, !tbaa !41
  %903 = load i32, ptr %11, align 4, !tbaa !41
  %904 = mul i32 %902, %903
  %905 = add i32 %901, %904
  %906 = load i32, ptr %37, align 4, !tbaa !41
  %907 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %908 = load ptr, ptr %907, align 8, !tbaa !43
  %909 = invoke noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %908)
          to label %910 unwind label %954

910:                                              ; preds = %898
  %911 = mul i32 %906, %909
  %912 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %913 = load ptr, ptr %912, align 8, !tbaa !43
  %914 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %913)
          to label %915 unwind label %954

915:                                              ; preds = %910
  %916 = mul i32 %911, %914
  %917 = add i32 %905, %916
  %918 = load i32, ptr %38, align 4, !tbaa !41
  %919 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %920 = load ptr, ptr %919, align 8, !tbaa !43
  %921 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %920)
          to label %922 unwind label %954

922:                                              ; preds = %915
  %923 = mul i32 %918, %921
  %924 = add i32 %917, %923
  %925 = load i32, ptr %39, align 4, !tbaa !41
  %926 = add i32 %924, %925
  %927 = load i32, ptr %12, align 4, !tbaa !41
  %928 = add i32 %926, %927
  store i32 %928, ptr %46, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  %929 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 64) #10
          to label %930 unwind label %958

930:                                              ; preds = %922
  %931 = load float, ptr %45, align 4, !tbaa !60
  %932 = load i32, ptr %46, align 4, !tbaa !41
  invoke void @_ZN11DataPackageC1Emf9operand_tj9traffic_tj(ptr noundef nonnull align 8 dereferenceable(64) %929, i64 noundef 4, float noundef %931, i32 noundef 0, i32 noundef 0, i32 noundef 2, i32 noundef %932)
          to label %933 unwind label %962

933:                                              ; preds = %930
  store ptr %929, ptr %47, align 8, !tbaa !5
  %934 = load ptr, ptr %47, align 8, !tbaa !5
  %935 = load i32, ptr %40, align 4, !tbaa !41
  %936 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %937 = load ptr, ptr %936, align 8, !tbaa !45
  %938 = invoke noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84) %937)
          to label %939 unwind label %958

939:                                              ; preds = %933
  %940 = mul i32 %935, %938
  %941 = load i32, ptr %41, align 4, !tbaa !41
  %942 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %943 = load ptr, ptr %942, align 8, !tbaa !43
  %944 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %943)
          to label %945 unwind label %958

945:                                              ; preds = %939
  %946 = mul i32 %941, %944
  %947 = add i32 %940, %946
  invoke void @_ZN11DataPackage13setIterationKEj(ptr noundef nonnull align 8 dereferenceable(64) %934, i32 noundef %947)
          to label %948 unwind label %958

948:                                              ; preds = %945
  %949 = load ptr, ptr %47, align 8, !tbaa !5
  invoke void @_ZN8SDMemory23sendPackageToInputFifosEP11DataPackage(ptr noundef nonnull align 8 dereferenceable(568) %106, ptr noundef %949)
          to label %950 unwind label %958

950:                                              ; preds = %948
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %951

951:                                              ; preds = %950
  %952 = load i32, ptr %39, align 4, !tbaa !41
  %953 = add i32 %952, 1
  store i32 %953, ptr %39, align 4, !tbaa !41
  br label %739, !llvm.loop !72

954:                                              ; preds = %915, %910, %898, %893
  %955 = landingpad { ptr, i32 }
          cleanup
  %956 = extractvalue { ptr, i32 } %955, 0
  store ptr %956, ptr %7, align 8
  %957 = extractvalue { ptr, i32 } %955, 1
  store i32 %957, ptr %8, align 4
  br label %967

958:                                              ; preds = %948, %945, %939, %933, %922
  %959 = landingpad { ptr, i32 }
          cleanup
  %960 = extractvalue { ptr, i32 } %959, 0
  store ptr %960, ptr %7, align 8
  %961 = extractvalue { ptr, i32 } %959, 1
  store i32 %961, ptr %8, align 4
  br label %966

962:                                              ; preds = %930
  %963 = landingpad { ptr, i32 }
          cleanup
  %964 = extractvalue { ptr, i32 } %963, 0
  store ptr %964, ptr %7, align 8
  %965 = extractvalue { ptr, i32 } %963, 1
  store i32 %965, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %929, i64 noundef 64) #11
  br label %966

966:                                              ; preds = %962, %958
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  br label %967

967:                                              ; preds = %966, %954
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %968

968:                                              ; preds = %967, %889
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %969

969:                                              ; preds = %968, %885
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %970

970:                                              ; preds = %969, %881
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %971

971:                                              ; preds = %970, %877
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %972

972:                                              ; preds = %971, %873
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %973

973:                                              ; preds = %972, %869
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %974

974:                                              ; preds = %973, %747
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %979

975:                                              ; preds = %746
  br label %976

976:                                              ; preds = %975
  %977 = load i32, ptr %38, align 4, !tbaa !41
  %978 = add i32 %977, 1
  store i32 %978, ptr %38, align 4, !tbaa !41
  br label %726, !llvm.loop !73

979:                                              ; preds = %974, %734
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %984

980:                                              ; preds = %733
  br label %981

981:                                              ; preds = %980
  %982 = load i32, ptr %37, align 4, !tbaa !41
  %983 = add i32 %982, 1
  store i32 %983, ptr %37, align 4, !tbaa !41
  br label %713, !llvm.loop !74

984:                                              ; preds = %979, %721
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %989

985:                                              ; preds = %720
  br label %986

986:                                              ; preds = %985
  %987 = load i32, ptr %36, align 4, !tbaa !41
  %988 = add i32 %987, 1
  store i32 %988, ptr %36, align 4, !tbaa !41
  br label %700, !llvm.loop !75

989:                                              ; preds = %984, %708
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %994

990:                                              ; preds = %707
  br label %991

991:                                              ; preds = %990
  %992 = load i32, ptr %35, align 4, !tbaa !41
  %993 = add i32 %992, 1
  store i32 %993, ptr %35, align 4, !tbaa !41
  br label %687, !llvm.loop !76

994:                                              ; preds = %989, %695
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %2186

995:                                              ; preds = %694
  br label %996

996:                                              ; preds = %995, %685
  %997 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 34
  %998 = load i32, ptr %997, align 4, !tbaa !59
  %999 = add i32 %998, 1
  store i32 %999, ptr %997, align 4, !tbaa !59
  %1000 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 34
  %1001 = load i32, ptr %1000, align 4, !tbaa !59
  %1002 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 26
  %1003 = load i32, ptr %1002, align 4, !tbaa !77
  %1004 = icmp eq i32 %1001, %1003
  br i1 %1004, label %1005, label %1030

1005:                                             ; preds = %996
  %1006 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 33
  %1007 = load i32, ptr %1006, align 8, !tbaa !58
  %1008 = add i32 %1007, 1
  store i32 %1008, ptr %1006, align 8, !tbaa !58
  %1009 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 34
  store i32 0, ptr %1009, align 4, !tbaa !59
  %1010 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 33
  %1011 = load i32, ptr %1010, align 8, !tbaa !58
  %1012 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 25
  %1013 = load i32, ptr %1012, align 8, !tbaa !78
  %1014 = icmp eq i32 %1011, %1013
  br i1 %1014, label %1015, label %1029

1015:                                             ; preds = %1005
  %1016 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 35
  %1017 = load i32, ptr %1016, align 8, !tbaa !57
  %1018 = add i32 %1017, 1
  store i32 %1018, ptr %1016, align 8, !tbaa !57
  %1019 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 33
  store i32 0, ptr %1019, align 8, !tbaa !58
  %1020 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 35
  %1021 = load i32, ptr %1020, align 8, !tbaa !57
  %1022 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 27
  %1023 = load i32, ptr %1022, align 8, !tbaa !79
  %1024 = icmp eq i32 %1021, %1023
  br i1 %1024, label %1025, label %1028

1025:                                             ; preds = %1015
  %1026 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 35
  store i32 0, ptr %1026, align 8, !tbaa !57
  %1027 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 19
  store i8 1, ptr %1027, align 8, !tbaa !49
  br label %1028

1028:                                             ; preds = %1025, %1015
  br label %1029

1029:                                             ; preds = %1028, %1005
  br label %1030

1030:                                             ; preds = %1029, %996
  br label %2185

1031:                                             ; preds = %197
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  %1032 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1033 = load ptr, ptr %1032, align 8, !tbaa !43
  %1034 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %1033)
          to label %1035 unwind label %1124

1035:                                             ; preds = %1031
  %1036 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1037 = load ptr, ptr %1036, align 8, !tbaa !43
  %1038 = invoke noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %1037)
          to label %1039 unwind label %1124

1039:                                             ; preds = %1035
  %1040 = sub i32 %1038, 1
  %1041 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1042 = load ptr, ptr %1041, align 8, !tbaa !45
  %1043 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1042)
          to label %1044 unwind label %1124

1044:                                             ; preds = %1039
  %1045 = mul i32 %1040, %1043
  %1046 = add i32 %1034, %1045
  store i32 %1046, ptr %48, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  %1047 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1048 = load ptr, ptr %1047, align 8, !tbaa !43
  %1049 = invoke noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %1048)
          to label %1050 unwind label %1128

1050:                                             ; preds = %1044
  %1051 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1052 = load ptr, ptr %1051, align 8, !tbaa !43
  %1053 = invoke noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %1052)
          to label %1054 unwind label %1128

1054:                                             ; preds = %1050
  %1055 = sub i32 %1053, 1
  %1056 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1057 = load ptr, ptr %1056, align 8, !tbaa !45
  %1058 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1057)
          to label %1059 unwind label %1128

1059:                                             ; preds = %1054
  %1060 = mul i32 %1055, %1058
  %1061 = add i32 %1049, %1060
  store i32 %1061, ptr %49, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  %1062 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1063 = load ptr, ptr %1062, align 8, !tbaa !43
  %1064 = invoke noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %1063)
          to label %1065 unwind label %1132

1065:                                             ; preds = %1059
  %1066 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1067 = load ptr, ptr %1066, align 8, !tbaa !45
  %1068 = invoke noundef i32 @_ZNK8DNNLayer5get_SEv(ptr noundef nonnull align 8 dereferenceable(84) %1067)
          to label %1069 unwind label %1132

1069:                                             ; preds = %1065
  %1070 = sub i32 %1068, 1
  %1071 = add i32 %1064, %1070
  store i32 %1071, ptr %50, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  %1072 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1073 = load ptr, ptr %1072, align 8, !tbaa !43
  %1074 = invoke noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %1073)
          to label %1075 unwind label %1136

1075:                                             ; preds = %1069
  %1076 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1077 = load ptr, ptr %1076, align 8, !tbaa !45
  %1078 = invoke noundef i32 @_ZNK8DNNLayer5get_REv(ptr noundef nonnull align 8 dereferenceable(84) %1077)
          to label %1079 unwind label %1136

1079:                                             ; preds = %1075
  %1080 = sub i32 %1078, 1
  %1081 = add i32 %1074, %1080
  store i32 %1081, ptr %51, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  store i32 0, ptr %52, align 4, !tbaa !41
  %1082 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1083 = load ptr, ptr %1082, align 8, !tbaa !43
  %1084 = invoke noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %1083)
          to label %1085 unwind label %1140

1085:                                             ; preds = %1079
  %1086 = icmp eq i32 %1084, 1
  br i1 %1086, label %1087, label %1150

1087:                                             ; preds = %1085
  %1088 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1089 = load ptr, ptr %1088, align 8, !tbaa !43
  %1090 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %1089)
          to label %1091 unwind label %1140

1091:                                             ; preds = %1087
  %1092 = icmp ugt i32 %1090, 1
  br i1 %1092, label %1093, label %1150

1093:                                             ; preds = %1091
  %1094 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1095 = load ptr, ptr %1094, align 8, !tbaa !45
  %1096 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1095)
          to label %1097 unwind label %1140

1097:                                             ; preds = %1093
  %1098 = icmp eq i32 %1096, 1
  br i1 %1098, label %1099, label %1150

1099:                                             ; preds = %1097
  %1100 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1101 = load ptr, ptr %1100, align 8, !tbaa !45
  %1102 = invoke noundef i32 @_ZNK8DNNLayer5get_SEv(ptr noundef nonnull align 8 dereferenceable(84) %1101)
          to label %1103 unwind label %1140

1103:                                             ; preds = %1099
  %1104 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1105 = load ptr, ptr %1104, align 8, !tbaa !43
  %1106 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %1105)
          to label %1107 unwind label %1140

1107:                                             ; preds = %1103
  %1108 = urem i32 %1102, %1106
  %1109 = icmp eq i32 %1108, 0
  br i1 %1109, label %1110, label %1150

1110:                                             ; preds = %1107
  %1111 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 40
  %1112 = load i32, ptr %1111, align 4, !tbaa !80
  %1113 = icmp ugt i32 %1112, 0
  br i1 %1113, label %1114, label %1148

1114:                                             ; preds = %1110
  %1115 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 34
  %1116 = load i32, ptr %1115, align 4, !tbaa !59
  %1117 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 26
  %1118 = load i32, ptr %1117, align 4, !tbaa !77
  %1119 = sub i32 %1118, 1
  %1120 = icmp eq i32 %1116, %1119
  br i1 %1120, label %1121, label %1144

1121:                                             ; preds = %1114
  %1122 = load i32, ptr %48, align 4, !tbaa !41
  %1123 = sub i32 %1122, 1
  store i32 %1123, ptr %52, align 4, !tbaa !41
  br label %1147

1124:                                             ; preds = %1039, %1035, %1031
  %1125 = landingpad { ptr, i32 }
          cleanup
  %1126 = extractvalue { ptr, i32 } %1125, 0
  store ptr %1126, ptr %7, align 8
  %1127 = extractvalue { ptr, i32 } %1125, 1
  store i32 %1127, ptr %8, align 4
  br label %2184

1128:                                             ; preds = %1054, %1050, %1044
  %1129 = landingpad { ptr, i32 }
          cleanup
  %1130 = extractvalue { ptr, i32 } %1129, 0
  store ptr %1130, ptr %7, align 8
  %1131 = extractvalue { ptr, i32 } %1129, 1
  store i32 %1131, ptr %8, align 4
  br label %2183

1132:                                             ; preds = %1065, %1059
  %1133 = landingpad { ptr, i32 }
          cleanup
  %1134 = extractvalue { ptr, i32 } %1133, 0
  store ptr %1134, ptr %7, align 8
  %1135 = extractvalue { ptr, i32 } %1133, 1
  store i32 %1135, ptr %8, align 4
  br label %2182

1136:                                             ; preds = %1075, %1069
  %1137 = landingpad { ptr, i32 }
          cleanup
  %1138 = extractvalue { ptr, i32 } %1137, 0
  store ptr %1138, ptr %7, align 8
  %1139 = extractvalue { ptr, i32 } %1137, 1
  store i32 %1139, ptr %8, align 4
  br label %2181

1140:                                             ; preds = %1103, %1099, %1093, %1087, %1079
  %1141 = landingpad { ptr, i32 }
          cleanup
  %1142 = extractvalue { ptr, i32 } %1141, 0
  store ptr %1142, ptr %7, align 8
  %1143 = extractvalue { ptr, i32 } %1141, 1
  store i32 %1143, ptr %8, align 4
  br label %2180

1144:                                             ; preds = %1114
  %1145 = load i32, ptr %48, align 4, !tbaa !41
  %1146 = sub i32 %1145, 1
  store i32 %1146, ptr %52, align 4, !tbaa !41
  br label %1147

1147:                                             ; preds = %1144, %1121
  br label %1149

1148:                                             ; preds = %1110
  store i32 0, ptr %52, align 4, !tbaa !41
  br label %1149

1149:                                             ; preds = %1148, %1147
  br label %1150

1150:                                             ; preds = %1149, %1107, %1097, %1091, %1085
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  store i32 0, ptr %53, align 4, !tbaa !41
  br label %1151

1151:                                             ; preds = %2079, %1150
  %1152 = load i32, ptr %53, align 4, !tbaa !41
  %1153 = load i32, ptr %49, align 4, !tbaa !41
  %1154 = icmp ult i32 %1152, %1153
  br i1 %1154, label %1156, label %1155

1155:                                             ; preds = %1151
  store i32 44, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2082

1156:                                             ; preds = %1151
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %1157 = load i32, ptr %52, align 4, !tbaa !41
  store i32 %1157, ptr %54, align 4, !tbaa !41
  br label %1158

1158:                                             ; preds = %2064, %1156
  %1159 = load i32, ptr %54, align 4, !tbaa !41
  %1160 = load i32, ptr %48, align 4, !tbaa !41
  %1161 = icmp ult i32 %1159, %1160
  br i1 %1161, label %1163, label %1162

1162:                                             ; preds = %1158
  store i32 47, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2078

1163:                                             ; preds = %1158
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #9
  %1164 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1165 = load ptr, ptr %1164, align 8, !tbaa !43
  %1166 = invoke noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %1165)
          to label %1167 unwind label %1183

1167:                                             ; preds = %1163
  %1168 = zext i32 %1166 to i64
  %1169 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %1168, i64 8)
  %1170 = extractvalue { i64, i1 } %1169, 1
  %1171 = extractvalue { i64, i1 } %1169, 0
  %1172 = select i1 %1170, i64 -1, i64 %1171
  %1173 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %1172) #10
          to label %1174 unwind label %1183

1174:                                             ; preds = %1167
  store ptr %1173, ptr %55, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  store i32 0, ptr %56, align 4, !tbaa !41
  br label %1175

1175:                                             ; preds = %1305, %1174
  %1176 = load i32, ptr %56, align 4, !tbaa !41
  %1177 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1178 = load ptr, ptr %1177, align 8, !tbaa !43
  %1179 = invoke noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %1178)
          to label %1180 unwind label %1187

1180:                                             ; preds = %1175
  %1181 = icmp ult i32 %1176, %1179
  br i1 %1181, label %1191, label %1182

1182:                                             ; preds = %1180
  store i32 50, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %1309

1183:                                             ; preds = %1167, %1163
  %1184 = landingpad { ptr, i32 }
          cleanup
  %1185 = extractvalue { ptr, i32 } %1184, 0
  store ptr %1185, ptr %7, align 8
  %1186 = extractvalue { ptr, i32 } %1184, 1
  store i32 %1186, ptr %8, align 4
  br label %2077

1187:                                             ; preds = %1195, %1191, %1175
  %1188 = landingpad { ptr, i32 }
          cleanup
  %1189 = extractvalue { ptr, i32 } %1188, 0
  store ptr %1189, ptr %7, align 8
  %1190 = extractvalue { ptr, i32 } %1188, 1
  store i32 %1190, ptr %8, align 4
  br label %1308

1191:                                             ; preds = %1180
  %1192 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1193 = load ptr, ptr %1192, align 8, !tbaa !43
  %1194 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %1193)
          to label %1195 unwind label %1187

1195:                                             ; preds = %1191
  %1196 = zext i32 %1194 to i64
  %1197 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %1196, i64 8)
  %1198 = extractvalue { i64, i1 } %1197, 1
  %1199 = extractvalue { i64, i1 } %1197, 0
  %1200 = select i1 %1198, i64 -1, i64 %1199
  %1201 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %1200) #10
          to label %1202 unwind label %1187

1202:                                             ; preds = %1195
  %1203 = load ptr, ptr %55, align 8, !tbaa !5
  %1204 = load i32, ptr %56, align 4, !tbaa !41
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds ptr, ptr %1203, i64 %1205
  store ptr %1201, ptr %1206, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  store i32 0, ptr %57, align 4, !tbaa !41
  br label %1207

1207:                                             ; preds = %1300, %1202
  %1208 = load i32, ptr %57, align 4, !tbaa !41
  %1209 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1210 = load ptr, ptr %1209, align 8, !tbaa !43
  %1211 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %1210)
          to label %1212 unwind label %1215

1212:                                             ; preds = %1207
  %1213 = icmp ult i32 %1208, %1211
  br i1 %1213, label %1219, label %1214

1214:                                             ; preds = %1212
  store i32 53, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %1304

1215:                                             ; preds = %1223, %1219, %1207
  %1216 = landingpad { ptr, i32 }
          cleanup
  %1217 = extractvalue { ptr, i32 } %1216, 0
  store ptr %1217, ptr %7, align 8
  %1218 = extractvalue { ptr, i32 } %1216, 1
  store i32 %1218, ptr %8, align 4
  br label %1303

1219:                                             ; preds = %1212
  %1220 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1221 = load ptr, ptr %1220, align 8, !tbaa !43
  %1222 = invoke noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %1221)
          to label %1223 unwind label %1215

1223:                                             ; preds = %1219
  %1224 = zext i32 %1222 to i64
  %1225 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %1224, i64 8)
  %1226 = extractvalue { i64, i1 } %1225, 1
  %1227 = extractvalue { i64, i1 } %1225, 0
  %1228 = select i1 %1226, i64 -1, i64 %1227
  %1229 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %1228) #10
          to label %1230 unwind label %1215

1230:                                             ; preds = %1223
  %1231 = load ptr, ptr %55, align 8, !tbaa !5
  %1232 = load i32, ptr %56, align 4, !tbaa !41
  %1233 = sext i32 %1232 to i64
  %1234 = getelementptr inbounds ptr, ptr %1231, i64 %1233
  %1235 = load ptr, ptr %1234, align 8, !tbaa !5
  %1236 = load i32, ptr %57, align 4, !tbaa !41
  %1237 = sext i32 %1236 to i64
  %1238 = getelementptr inbounds ptr, ptr %1235, i64 %1237
  store ptr %1229, ptr %1238, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  store i32 0, ptr %58, align 4, !tbaa !41
  br label %1239

1239:                                             ; preds = %1296, %1230
  %1240 = load i32, ptr %58, align 4, !tbaa !41
  %1241 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1242 = load ptr, ptr %1241, align 8, !tbaa !43
  %1243 = invoke noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %1242)
          to label %1244 unwind label %1247

1244:                                             ; preds = %1239
  %1245 = icmp ult i32 %1240, %1243
  br i1 %1245, label %1251, label %1246

1246:                                             ; preds = %1244
  store i32 56, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %1299

1247:                                             ; preds = %1251, %1239
  %1248 = landingpad { ptr, i32 }
          cleanup
  %1249 = extractvalue { ptr, i32 } %1248, 0
  store ptr %1249, ptr %7, align 8
  %1250 = extractvalue { ptr, i32 } %1248, 1
  store i32 %1250, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %1303

1251:                                             ; preds = %1244
  %1252 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 7
  %1253 = load i32, ptr %1252, align 8, !tbaa !50
  %1254 = zext i32 %1253 to i64
  %1255 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %1254) #10
          to label %1256 unwind label %1247

1256:                                             ; preds = %1251
  %1257 = load ptr, ptr %55, align 8, !tbaa !5
  %1258 = load i32, ptr %56, align 4, !tbaa !41
  %1259 = sext i32 %1258 to i64
  %1260 = getelementptr inbounds ptr, ptr %1257, i64 %1259
  %1261 = load ptr, ptr %1260, align 8, !tbaa !5
  %1262 = load i32, ptr %57, align 4, !tbaa !41
  %1263 = sext i32 %1262 to i64
  %1264 = getelementptr inbounds ptr, ptr %1261, i64 %1263
  %1265 = load ptr, ptr %1264, align 8, !tbaa !5
  %1266 = load i32, ptr %58, align 4, !tbaa !41
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds ptr, ptr %1265, i64 %1267
  store ptr %1255, ptr %1268, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #9
  store i32 0, ptr %59, align 4, !tbaa !41
  br label %1269

1269:                                             ; preds = %1292, %1256
  %1270 = load i32, ptr %59, align 4, !tbaa !41
  %1271 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 7
  %1272 = load i32, ptr %1271, align 8, !tbaa !50
  %1273 = icmp ult i32 %1270, %1272
  br i1 %1273, label %1275, label %1274

1274:                                             ; preds = %1269
  store i32 59, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %1295

1275:                                             ; preds = %1269
  %1276 = load ptr, ptr %55, align 8, !tbaa !5
  %1277 = load i32, ptr %56, align 4, !tbaa !41
  %1278 = sext i32 %1277 to i64
  %1279 = getelementptr inbounds ptr, ptr %1276, i64 %1278
  %1280 = load ptr, ptr %1279, align 8, !tbaa !5
  %1281 = load i32, ptr %57, align 4, !tbaa !41
  %1282 = sext i32 %1281 to i64
  %1283 = getelementptr inbounds ptr, ptr %1280, i64 %1282
  %1284 = load ptr, ptr %1283, align 8, !tbaa !5
  %1285 = load i32, ptr %58, align 4, !tbaa !41
  %1286 = sext i32 %1285 to i64
  %1287 = getelementptr inbounds ptr, ptr %1284, i64 %1286
  %1288 = load ptr, ptr %1287, align 8, !tbaa !5
  %1289 = load i32, ptr %59, align 4, !tbaa !41
  %1290 = sext i32 %1289 to i64
  %1291 = getelementptr inbounds i8, ptr %1288, i64 %1290
  store i8 0, ptr %1291, align 1, !tbaa !51
  br label %1292

1292:                                             ; preds = %1275
  %1293 = load i32, ptr %59, align 4, !tbaa !41
  %1294 = add nsw i32 %1293, 1
  store i32 %1294, ptr %59, align 4, !tbaa !41
  br label %1269, !llvm.loop !81

1295:                                             ; preds = %1274
  br label %1296

1296:                                             ; preds = %1295
  %1297 = load i32, ptr %58, align 4, !tbaa !41
  %1298 = add nsw i32 %1297, 1
  store i32 %1298, ptr %58, align 4, !tbaa !41
  br label %1239, !llvm.loop !82

1299:                                             ; preds = %1246
  br label %1300

1300:                                             ; preds = %1299
  %1301 = load i32, ptr %57, align 4, !tbaa !41
  %1302 = add nsw i32 %1301, 1
  store i32 %1302, ptr %57, align 4, !tbaa !41
  br label %1207, !llvm.loop !83

1303:                                             ; preds = %1247, %1215
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %1308

1304:                                             ; preds = %1214
  br label %1305

1305:                                             ; preds = %1304
  %1306 = load i32, ptr %56, align 4, !tbaa !41
  %1307 = add nsw i32 %1306, 1
  store i32 %1307, ptr %56, align 4, !tbaa !41
  br label %1175, !llvm.loop !84

1308:                                             ; preds = %1303, %1187
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2077

1309:                                             ; preds = %1182
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  %1310 = load i32, ptr %53, align 4, !tbaa !41
  %1311 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1312 = load ptr, ptr %1311, align 8, !tbaa !43
  %1313 = invoke noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %1312)
          to label %1314 unwind label %1320

1314:                                             ; preds = %1309
  %1315 = sub i32 %1313, 1
  %1316 = sub i32 %1310, %1315
  store i32 %1316, ptr %60, align 4, !tbaa !41
  %1317 = load i32, ptr %60, align 4, !tbaa !41
  %1318 = icmp slt i32 %1317, 0
  br i1 %1318, label %1319, label %1324

1319:                                             ; preds = %1314
  store i32 0, ptr %60, align 4, !tbaa !41
  br label %1331

1320:                                             ; preds = %1324, %1309
  %1321 = landingpad { ptr, i32 }
          cleanup
  %1322 = extractvalue { ptr, i32 } %1321, 0
  store ptr %1322, ptr %7, align 8
  %1323 = extractvalue { ptr, i32 } %1321, 1
  store i32 %1323, ptr %8, align 4
  br label %2076

1324:                                             ; preds = %1314
  %1325 = load i32, ptr %60, align 4, !tbaa !41
  %1326 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1327 = load ptr, ptr %1326, align 8, !tbaa !45
  %1328 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1327)
          to label %1329 unwind label %1320

1329:                                             ; preds = %1324
  %1330 = udiv i32 %1325, %1328
  store i32 %1330, ptr %60, align 4, !tbaa !41
  br label %1331

1331:                                             ; preds = %1329, %1319
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %1332 = load i32, ptr %53, align 4, !tbaa !41
  %1333 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1334 = load ptr, ptr %1333, align 8, !tbaa !45
  %1335 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1334)
          to label %1336 unwind label %1344

1336:                                             ; preds = %1331
  %1337 = udiv i32 %1332, %1335
  store i32 %1337, ptr %61, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %1338 = load i32, ptr %60, align 4, !tbaa !41
  store i32 %1338, ptr %62, align 4, !tbaa !41
  br label %1339

1339:                                             ; preds = %1740, %1336
  %1340 = load i32, ptr %62, align 4, !tbaa !41
  %1341 = load i32, ptr %61, align 4, !tbaa !41
  %1342 = icmp sle i32 %1340, %1341
  br i1 %1342, label %1348, label %1343

1343:                                             ; preds = %1339
  store i32 62, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %1745

1344:                                             ; preds = %1331
  %1345 = landingpad { ptr, i32 }
          cleanup
  %1346 = extractvalue { ptr, i32 } %1345, 0
  store ptr %1346, ptr %7, align 8
  %1347 = extractvalue { ptr, i32 } %1345, 1
  store i32 %1347, ptr %8, align 4
  br label %2075

1348:                                             ; preds = %1339
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  %1349 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1350 = load ptr, ptr %1349, align 8, !tbaa !45
  %1351 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1350)
          to label %1352 unwind label %1398

1352:                                             ; preds = %1348
  %1353 = load i32, ptr %62, align 4, !tbaa !41
  %1354 = mul i32 %1351, %1353
  %1355 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1356 = load ptr, ptr %1355, align 8, !tbaa !43
  %1357 = invoke noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %1356)
          to label %1358 unwind label %1398

1358:                                             ; preds = %1352
  %1359 = sub i32 %1357, 1
  %1360 = add i32 %1354, %1359
  store i32 %1360, ptr %63, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  %1361 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1362 = load ptr, ptr %1361, align 8, !tbaa !45
  %1363 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1362)
          to label %1364 unwind label %1402

1364:                                             ; preds = %1358
  %1365 = load i32, ptr %62, align 4, !tbaa !41
  %1366 = mul i32 %1363, %1365
  store i32 %1366, ptr %64, align 4, !tbaa !41
  %1367 = load i32, ptr %62, align 4, !tbaa !41
  %1368 = icmp sge i32 %1367, 0
  br i1 %1368, label %1369, label %1739

1369:                                             ; preds = %1364
  %1370 = load i32, ptr %64, align 4, !tbaa !41
  %1371 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1372 = load ptr, ptr %1371, align 8, !tbaa !43
  %1373 = invoke noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %1372)
          to label %1374 unwind label %1402

1374:                                             ; preds = %1369
  %1375 = sub i32 %1373, 1
  %1376 = add i32 %1370, %1375
  %1377 = load i32, ptr %49, align 4, !tbaa !41
  %1378 = icmp ult i32 %1376, %1377
  br i1 %1378, label %1379, label %1739

1379:                                             ; preds = %1374
  %1380 = load i32, ptr %53, align 4, !tbaa !41
  %1381 = load i32, ptr %63, align 4, !tbaa !41
  %1382 = icmp ule i32 %1380, %1381
  br i1 %1382, label %1383, label %1739

1383:                                             ; preds = %1379
  %1384 = load i32, ptr %53, align 4, !tbaa !41
  %1385 = load i32, ptr %64, align 4, !tbaa !41
  %1386 = icmp uge i32 %1384, %1385
  br i1 %1386, label %1387, label %1739

1387:                                             ; preds = %1383
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %1388 = load i32, ptr %54, align 4, !tbaa !41
  %1389 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1390 = load ptr, ptr %1389, align 8, !tbaa !43
  %1391 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %1390)
          to label %1392 unwind label %1406

1392:                                             ; preds = %1387
  %1393 = sub i32 %1391, 1
  %1394 = sub i32 %1388, %1393
  store i32 %1394, ptr %65, align 4, !tbaa !41
  %1395 = load i32, ptr %65, align 4, !tbaa !41
  %1396 = icmp slt i32 %1395, 0
  br i1 %1396, label %1397, label %1410

1397:                                             ; preds = %1392
  store i32 0, ptr %65, align 4, !tbaa !41
  br label %1417

1398:                                             ; preds = %1352, %1348
  %1399 = landingpad { ptr, i32 }
          cleanup
  %1400 = extractvalue { ptr, i32 } %1399, 0
  store ptr %1400, ptr %7, align 8
  %1401 = extractvalue { ptr, i32 } %1399, 1
  store i32 %1401, ptr %8, align 4
  br label %1744

1402:                                             ; preds = %1369, %1358
  %1403 = landingpad { ptr, i32 }
          cleanup
  %1404 = extractvalue { ptr, i32 } %1403, 0
  store ptr %1404, ptr %7, align 8
  %1405 = extractvalue { ptr, i32 } %1403, 1
  store i32 %1405, ptr %8, align 4
  br label %1743

1406:                                             ; preds = %1410, %1387
  %1407 = landingpad { ptr, i32 }
          cleanup
  %1408 = extractvalue { ptr, i32 } %1407, 0
  store ptr %1408, ptr %7, align 8
  %1409 = extractvalue { ptr, i32 } %1407, 1
  store i32 %1409, ptr %8, align 4
  br label %1738

1410:                                             ; preds = %1392
  %1411 = load i32, ptr %65, align 4, !tbaa !41
  %1412 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1413 = load ptr, ptr %1412, align 8, !tbaa !45
  %1414 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1413)
          to label %1415 unwind label %1406

1415:                                             ; preds = %1410
  %1416 = udiv i32 %1411, %1414
  store i32 %1416, ptr %65, align 4, !tbaa !41
  br label %1417

1417:                                             ; preds = %1415, %1397
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %1418 = load i32, ptr %54, align 4, !tbaa !41
  %1419 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1420 = load ptr, ptr %1419, align 8, !tbaa !45
  %1421 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1420)
          to label %1422 unwind label %1430

1422:                                             ; preds = %1417
  %1423 = udiv i32 %1418, %1421
  store i32 %1423, ptr %66, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  %1424 = load i32, ptr %65, align 4, !tbaa !41
  store i32 %1424, ptr %67, align 4, !tbaa !41
  br label %1425

1425:                                             ; preds = %1731, %1422
  %1426 = load i32, ptr %67, align 4, !tbaa !41
  %1427 = load i32, ptr %66, align 4, !tbaa !41
  %1428 = icmp sle i32 %1426, %1427
  br i1 %1428, label %1434, label %1429

1429:                                             ; preds = %1425
  store i32 65, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %1736

1430:                                             ; preds = %1417
  %1431 = landingpad { ptr, i32 }
          cleanup
  %1432 = extractvalue { ptr, i32 } %1431, 0
  store ptr %1432, ptr %7, align 8
  %1433 = extractvalue { ptr, i32 } %1431, 1
  store i32 %1433, ptr %8, align 4
  br label %1737

1434:                                             ; preds = %1425
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  %1435 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1436 = load ptr, ptr %1435, align 8, !tbaa !45
  %1437 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1436)
          to label %1438 unwind label %1521

1438:                                             ; preds = %1434
  %1439 = load i32, ptr %67, align 4, !tbaa !41
  %1440 = mul i32 %1437, %1439
  %1441 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1442 = load ptr, ptr %1441, align 8, !tbaa !43
  %1443 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %1442)
          to label %1444 unwind label %1521

1444:                                             ; preds = %1438
  %1445 = sub i32 %1443, 1
  %1446 = add i32 %1440, %1445
  store i32 %1446, ptr %68, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %1447 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1448 = load ptr, ptr %1447, align 8, !tbaa !45
  %1449 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1448)
          to label %1450 unwind label %1525

1450:                                             ; preds = %1444
  %1451 = load i32, ptr %67, align 4, !tbaa !41
  %1452 = mul i32 %1449, %1451
  store i32 %1452, ptr %69, align 4, !tbaa !41
  %1453 = load i32, ptr %67, align 4, !tbaa !41
  %1454 = icmp sge i32 %1453, 0
  br i1 %1454, label %1455, label %1730

1455:                                             ; preds = %1450
  %1456 = load i32, ptr %69, align 4, !tbaa !41
  %1457 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1458 = load ptr, ptr %1457, align 8, !tbaa !43
  %1459 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %1458)
          to label %1460 unwind label %1525

1460:                                             ; preds = %1455
  %1461 = sub i32 %1459, 1
  %1462 = add i32 %1456, %1461
  %1463 = load i32, ptr %48, align 4, !tbaa !41
  %1464 = icmp ult i32 %1462, %1463
  br i1 %1464, label %1465, label %1730

1465:                                             ; preds = %1460
  %1466 = load i32, ptr %54, align 4, !tbaa !41
  %1467 = load i32, ptr %68, align 4, !tbaa !41
  %1468 = icmp ule i32 %1466, %1467
  br i1 %1468, label %1469, label %1730

1469:                                             ; preds = %1465
  %1470 = load i32, ptr %54, align 4, !tbaa !41
  %1471 = load i32, ptr %69, align 4, !tbaa !41
  %1472 = icmp uge i32 %1470, %1471
  br i1 %1472, label %1473, label %1730

1473:                                             ; preds = %1469
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #9
  %1474 = load i32, ptr %62, align 4, !tbaa !41
  %1475 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1476 = load ptr, ptr %1475, align 8, !tbaa !43
  %1477 = invoke noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %1476)
          to label %1478 unwind label %1529

1478:                                             ; preds = %1473
  %1479 = mul i32 %1474, %1477
  %1480 = load i32, ptr %67, align 4, !tbaa !41
  %1481 = add i32 %1479, %1480
  store i32 %1481, ptr %70, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #9
  %1482 = load i32, ptr %54, align 4, !tbaa !41
  %1483 = load i32, ptr %67, align 4, !tbaa !41
  %1484 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1485 = load ptr, ptr %1484, align 8, !tbaa !45
  %1486 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1485)
          to label %1487 unwind label %1533

1487:                                             ; preds = %1478
  %1488 = mul i32 %1483, %1486
  %1489 = sub i32 %1482, %1488
  store i32 %1489, ptr %71, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %1490 = load i32, ptr %53, align 4, !tbaa !41
  %1491 = load i32, ptr %62, align 4, !tbaa !41
  %1492 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1493 = load ptr, ptr %1492, align 8, !tbaa !45
  %1494 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1493)
          to label %1495 unwind label %1537

1495:                                             ; preds = %1487
  %1496 = mul i32 %1491, %1494
  %1497 = sub i32 %1490, %1496
  store i32 %1497, ptr %72, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %1498 = load i32, ptr %72, align 4, !tbaa !41
  %1499 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1500 = load ptr, ptr %1499, align 8, !tbaa !43
  %1501 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %1500)
          to label %1502 unwind label %1541

1502:                                             ; preds = %1495
  %1503 = mul i32 %1498, %1501
  %1504 = load i32, ptr %71, align 4, !tbaa !41
  %1505 = add i32 %1503, %1504
  store i32 %1505, ptr %73, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %1506 = load i32, ptr %70, align 4, !tbaa !41
  %1507 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1508 = load ptr, ptr %1507, align 8, !tbaa !43
  %1509 = invoke noundef i32 @_ZNK4Tile11get_VN_SizeEv(ptr noundef nonnull align 4 dereferenceable(41) %1508)
          to label %1510 unwind label %1545

1510:                                             ; preds = %1502
  %1511 = mul i32 %1506, %1509
  %1512 = load i32, ptr %73, align 4, !tbaa !41
  %1513 = add i32 %1511, %1512
  store i32 %1513, ptr %74, align 4, !tbaa !41
  %1514 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1515 = load ptr, ptr %1514, align 8, !tbaa !43
  %1516 = invoke noundef zeroext i1 @_ZNK4Tile19get_folding_enabledEv(ptr noundef nonnull align 4 dereferenceable(41) %1515)
          to label %1517 unwind label %1545

1517:                                             ; preds = %1510
  br i1 %1516, label %1518, label %1549

1518:                                             ; preds = %1517
  %1519 = load i32, ptr %74, align 4, !tbaa !41
  %1520 = add nsw i32 %1519, 1
  store i32 %1520, ptr %74, align 4, !tbaa !41
  br label %1549

1521:                                             ; preds = %1438, %1434
  %1522 = landingpad { ptr, i32 }
          cleanup
  %1523 = extractvalue { ptr, i32 } %1522, 0
  store ptr %1523, ptr %7, align 8
  %1524 = extractvalue { ptr, i32 } %1522, 1
  store i32 %1524, ptr %8, align 4
  br label %1735

1525:                                             ; preds = %1455, %1444
  %1526 = landingpad { ptr, i32 }
          cleanup
  %1527 = extractvalue { ptr, i32 } %1526, 0
  store ptr %1527, ptr %7, align 8
  %1528 = extractvalue { ptr, i32 } %1526, 1
  store i32 %1528, ptr %8, align 4
  br label %1734

1529:                                             ; preds = %1473
  %1530 = landingpad { ptr, i32 }
          cleanup
  %1531 = extractvalue { ptr, i32 } %1530, 0
  store ptr %1531, ptr %7, align 8
  %1532 = extractvalue { ptr, i32 } %1530, 1
  store i32 %1532, ptr %8, align 4
  br label %1729

1533:                                             ; preds = %1478
  %1534 = landingpad { ptr, i32 }
          cleanup
  %1535 = extractvalue { ptr, i32 } %1534, 0
  store ptr %1535, ptr %7, align 8
  %1536 = extractvalue { ptr, i32 } %1534, 1
  store i32 %1536, ptr %8, align 4
  br label %1728

1537:                                             ; preds = %1487
  %1538 = landingpad { ptr, i32 }
          cleanup
  %1539 = extractvalue { ptr, i32 } %1538, 0
  store ptr %1539, ptr %7, align 8
  %1540 = extractvalue { ptr, i32 } %1538, 1
  store i32 %1540, ptr %8, align 4
  br label %1727

1541:                                             ; preds = %1495
  %1542 = landingpad { ptr, i32 }
          cleanup
  %1543 = extractvalue { ptr, i32 } %1542, 0
  store ptr %1543, ptr %7, align 8
  %1544 = extractvalue { ptr, i32 } %1542, 1
  store i32 %1544, ptr %8, align 4
  br label %1726

1545:                                             ; preds = %1510, %1502
  %1546 = landingpad { ptr, i32 }
          cleanup
  %1547 = extractvalue { ptr, i32 } %1546, 0
  store ptr %1547, ptr %7, align 8
  %1548 = extractvalue { ptr, i32 } %1546, 1
  store i32 %1548, ptr %8, align 4
  br label %1725

1549:                                             ; preds = %1518, %1517
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #9
  store i32 0, ptr %75, align 4, !tbaa !41
  br label %1550

1550:                                             ; preds = %1719, %1549
  %1551 = load i32, ptr %75, align 4, !tbaa !41
  %1552 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1553 = load ptr, ptr %1552, align 8, !tbaa !43
  %1554 = invoke noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %1553)
          to label %1555 unwind label %1558

1555:                                             ; preds = %1550
  %1556 = icmp ult i32 %1551, %1554
  br i1 %1556, label %1562, label %1557

1557:                                             ; preds = %1555
  store i32 68, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  br label %1724

1558:                                             ; preds = %1550
  %1559 = landingpad { ptr, i32 }
          cleanup
  %1560 = extractvalue { ptr, i32 } %1559, 0
  store ptr %1560, ptr %7, align 8
  %1561 = extractvalue { ptr, i32 } %1559, 1
  store i32 %1561, ptr %8, align 4
  br label %1723

1562:                                             ; preds = %1555
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  %1563 = load i32, ptr %75, align 4, !tbaa !41
  %1564 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1565 = load ptr, ptr %1564, align 8, !tbaa !43
  %1566 = invoke noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %1565)
          to label %1567 unwind label %1589

1567:                                             ; preds = %1562
  %1568 = mul i32 %1563, %1566
  %1569 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1570 = load ptr, ptr %1569, align 8, !tbaa !43
  %1571 = invoke noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %1570)
          to label %1572 unwind label %1589

1572:                                             ; preds = %1567
  %1573 = mul i32 %1568, %1571
  %1574 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1575 = load ptr, ptr %1574, align 8, !tbaa !43
  %1576 = invoke noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %1575)
          to label %1577 unwind label %1589

1577:                                             ; preds = %1572
  %1578 = mul i32 %1573, %1576
  %1579 = load i32, ptr %11, align 4, !tbaa !41
  %1580 = mul i32 %1578, %1579
  store i32 %1580, ptr %76, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  store i32 0, ptr %77, align 4, !tbaa !41
  br label %1581

1581:                                             ; preds = %1713, %1577
  %1582 = load i32, ptr %77, align 4, !tbaa !41
  %1583 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1584 = load ptr, ptr %1583, align 8, !tbaa !43
  %1585 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %1584)
          to label %1586 unwind label %1593

1586:                                             ; preds = %1581
  %1587 = icmp ult i32 %1582, %1585
  br i1 %1587, label %1597, label %1588

1588:                                             ; preds = %1586
  store i32 71, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %1718

1589:                                             ; preds = %1572, %1567, %1562
  %1590 = landingpad { ptr, i32 }
          cleanup
  %1591 = extractvalue { ptr, i32 } %1590, 0
  store ptr %1591, ptr %7, align 8
  %1592 = extractvalue { ptr, i32 } %1590, 1
  store i32 %1592, ptr %8, align 4
  br label %1722

1593:                                             ; preds = %1581
  %1594 = landingpad { ptr, i32 }
          cleanup
  %1595 = extractvalue { ptr, i32 } %1594, 0
  store ptr %1595, ptr %7, align 8
  %1596 = extractvalue { ptr, i32 } %1594, 1
  store i32 %1596, ptr %8, align 4
  br label %1717

1597:                                             ; preds = %1586
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #9
  %1598 = load i32, ptr %77, align 4, !tbaa !41
  %1599 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1600 = load ptr, ptr %1599, align 8, !tbaa !43
  %1601 = invoke noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %1600)
          to label %1602 unwind label %1624

1602:                                             ; preds = %1597
  %1603 = mul i32 %1598, %1601
  %1604 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1605 = load ptr, ptr %1604, align 8, !tbaa !43
  %1606 = invoke noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %1605)
          to label %1607 unwind label %1624

1607:                                             ; preds = %1602
  %1608 = mul i32 %1603, %1606
  %1609 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1610 = load ptr, ptr %1609, align 8, !tbaa !43
  %1611 = invoke noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %1610)
          to label %1612 unwind label %1624

1612:                                             ; preds = %1607
  %1613 = mul i32 %1608, %1611
  %1614 = load i32, ptr %11, align 4, !tbaa !41
  %1615 = mul i32 %1613, %1614
  store i32 %1615, ptr %78, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  store i32 0, ptr %79, align 4, !tbaa !41
  br label %1616

1616:                                             ; preds = %1707, %1612
  %1617 = load i32, ptr %79, align 4, !tbaa !41
  %1618 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1619 = load ptr, ptr %1618, align 8, !tbaa !43
  %1620 = invoke noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %1619)
          to label %1621 unwind label %1628

1621:                                             ; preds = %1616
  %1622 = icmp ult i32 %1617, %1620
  br i1 %1622, label %1632, label %1623

1623:                                             ; preds = %1621
  store i32 74, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %1712

1624:                                             ; preds = %1607, %1602, %1597
  %1625 = landingpad { ptr, i32 }
          cleanup
  %1626 = extractvalue { ptr, i32 } %1625, 0
  store ptr %1626, ptr %7, align 8
  %1627 = extractvalue { ptr, i32 } %1625, 1
  store i32 %1627, ptr %8, align 4
  br label %1716

1628:                                             ; preds = %1616
  %1629 = landingpad { ptr, i32 }
          cleanup
  %1630 = extractvalue { ptr, i32 } %1629, 0
  store ptr %1630, ptr %7, align 8
  %1631 = extractvalue { ptr, i32 } %1629, 1
  store i32 %1631, ptr %8, align 4
  br label %1711

1632:                                             ; preds = %1621
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  %1633 = load i32, ptr %79, align 4, !tbaa !41
  %1634 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1635 = load ptr, ptr %1634, align 8, !tbaa !43
  %1636 = invoke noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %1635)
          to label %1637 unwind label %1654

1637:                                             ; preds = %1632
  %1638 = mul i32 %1633, %1636
  %1639 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1640 = load ptr, ptr %1639, align 8, !tbaa !43
  %1641 = invoke noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %1640)
          to label %1642 unwind label %1654

1642:                                             ; preds = %1637
  %1643 = mul i32 %1638, %1641
  %1644 = load i32, ptr %11, align 4, !tbaa !41
  %1645 = mul i32 %1643, %1644
  store i32 %1645, ptr %80, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #9
  store i32 0, ptr %81, align 4, !tbaa !41
  br label %1646

1646:                                             ; preds = %1698, %1642
  %1647 = load i32, ptr %81, align 4, !tbaa !41
  %1648 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1649 = load ptr, ptr %1648, align 8, !tbaa !43
  %1650 = invoke noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %1649)
          to label %1651 unwind label %1658

1651:                                             ; preds = %1646
  %1652 = icmp ult i32 %1647, %1650
  br i1 %1652, label %1662, label %1653

1653:                                             ; preds = %1651
  store i32 77, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #9
  br label %1706

1654:                                             ; preds = %1637, %1632
  %1655 = landingpad { ptr, i32 }
          cleanup
  %1656 = extractvalue { ptr, i32 } %1655, 0
  store ptr %1656, ptr %7, align 8
  %1657 = extractvalue { ptr, i32 } %1655, 1
  store i32 %1657, ptr %8, align 4
  br label %1710

1658:                                             ; preds = %1646
  %1659 = landingpad { ptr, i32 }
          cleanup
  %1660 = extractvalue { ptr, i32 } %1659, 0
  store ptr %1660, ptr %7, align 8
  %1661 = extractvalue { ptr, i32 } %1659, 1
  store i32 %1661, ptr %8, align 4
  br label %1705

1662:                                             ; preds = %1651
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  %1663 = load i32, ptr %81, align 4, !tbaa !41
  %1664 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1665 = load ptr, ptr %1664, align 8, !tbaa !43
  %1666 = invoke noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %1665)
          to label %1667 unwind label %1701

1667:                                             ; preds = %1662
  %1668 = mul i32 %1663, %1666
  %1669 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1670 = load ptr, ptr %1669, align 8, !tbaa !43
  %1671 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %1670)
          to label %1672 unwind label %1701

1672:                                             ; preds = %1667
  %1673 = mul i32 %1668, %1671
  store i32 %1673, ptr %82, align 4, !tbaa !41
  %1674 = load ptr, ptr %55, align 8, !tbaa !5
  %1675 = load i32, ptr %75, align 4, !tbaa !41
  %1676 = sext i32 %1675 to i64
  %1677 = getelementptr inbounds ptr, ptr %1674, i64 %1676
  %1678 = load ptr, ptr %1677, align 8, !tbaa !5
  %1679 = load i32, ptr %77, align 4, !tbaa !41
  %1680 = sext i32 %1679 to i64
  %1681 = getelementptr inbounds ptr, ptr %1678, i64 %1680
  %1682 = load ptr, ptr %1681, align 8, !tbaa !5
  %1683 = load i32, ptr %81, align 4, !tbaa !41
  %1684 = sext i32 %1683 to i64
  %1685 = getelementptr inbounds ptr, ptr %1682, i64 %1684
  %1686 = load ptr, ptr %1685, align 8, !tbaa !5
  %1687 = load i32, ptr %76, align 4, !tbaa !41
  %1688 = load i32, ptr %78, align 4, !tbaa !41
  %1689 = add nsw i32 %1687, %1688
  %1690 = load i32, ptr %80, align 4, !tbaa !41
  %1691 = add nsw i32 %1689, %1690
  %1692 = load i32, ptr %82, align 4, !tbaa !41
  %1693 = add nsw i32 %1691, %1692
  %1694 = load i32, ptr %74, align 4, !tbaa !41
  %1695 = add nsw i32 %1693, %1694
  %1696 = sext i32 %1695 to i64
  %1697 = getelementptr inbounds i8, ptr %1686, i64 %1696
  store i8 1, ptr %1697, align 1, !tbaa !51
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %1698

1698:                                             ; preds = %1672
  %1699 = load i32, ptr %81, align 4, !tbaa !41
  %1700 = add nsw i32 %1699, 1
  store i32 %1700, ptr %81, align 4, !tbaa !41
  br label %1646, !llvm.loop !85

1701:                                             ; preds = %1667, %1662
  %1702 = landingpad { ptr, i32 }
          cleanup
  %1703 = extractvalue { ptr, i32 } %1702, 0
  store ptr %1703, ptr %7, align 8
  %1704 = extractvalue { ptr, i32 } %1702, 1
  store i32 %1704, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %1705

1705:                                             ; preds = %1701, %1658
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #9
  br label %1710

1706:                                             ; preds = %1653
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %1707

1707:                                             ; preds = %1706
  %1708 = load i32, ptr %79, align 4, !tbaa !41
  %1709 = add nsw i32 %1708, 1
  store i32 %1709, ptr %79, align 4, !tbaa !41
  br label %1616, !llvm.loop !86

1710:                                             ; preds = %1705, %1654
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %1711

1711:                                             ; preds = %1710, %1628
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %1716

1712:                                             ; preds = %1623
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %1713

1713:                                             ; preds = %1712
  %1714 = load i32, ptr %77, align 4, !tbaa !41
  %1715 = add nsw i32 %1714, 1
  store i32 %1715, ptr %77, align 4, !tbaa !41
  br label %1581, !llvm.loop !87

1716:                                             ; preds = %1711, %1624
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %1717

1717:                                             ; preds = %1716, %1593
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %1722

1718:                                             ; preds = %1588
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %1719

1719:                                             ; preds = %1718
  %1720 = load i32, ptr %75, align 4, !tbaa !41
  %1721 = add nsw i32 %1720, 1
  store i32 %1721, ptr %75, align 4, !tbaa !41
  br label %1550, !llvm.loop !88

1722:                                             ; preds = %1717, %1589
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %1723

1723:                                             ; preds = %1722, %1558
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  br label %1725

1724:                                             ; preds = %1557
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  br label %1730

1725:                                             ; preds = %1723, %1545
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %1726

1726:                                             ; preds = %1725, %1541
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %1727

1727:                                             ; preds = %1726, %1537
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %1728

1728:                                             ; preds = %1727, %1533
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  br label %1729

1729:                                             ; preds = %1728, %1529
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  br label %1734

1730:                                             ; preds = %1724, %1469, %1465, %1460, %1450
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  br label %1731

1731:                                             ; preds = %1730
  %1732 = load i32, ptr %67, align 4, !tbaa !41
  %1733 = add nsw i32 %1732, 1
  store i32 %1733, ptr %67, align 4, !tbaa !41
  br label %1425, !llvm.loop !89

1734:                                             ; preds = %1729, %1525
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %1735

1735:                                             ; preds = %1734, %1521
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %1737

1736:                                             ; preds = %1429
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  br label %1739

1737:                                             ; preds = %1735, %1430
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %1738

1738:                                             ; preds = %1737, %1406
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  br label %1743

1739:                                             ; preds = %1736, %1383, %1379, %1374, %1364
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %1740

1740:                                             ; preds = %1739
  %1741 = load i32, ptr %62, align 4, !tbaa !41
  %1742 = add nsw i32 %1741, 1
  store i32 %1742, ptr %62, align 4, !tbaa !41
  br label %1339, !llvm.loop !90

1743:                                             ; preds = %1738, %1402
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %1744

1744:                                             ; preds = %1743, %1398
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %2075

1745:                                             ; preds = %1343
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #9
  %1746 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 37
  %1747 = load i32, ptr %1746, align 8, !tbaa !91
  %1748 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1749 = load ptr, ptr %1748, align 8, !tbaa !43
  %1750 = invoke noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %1749)
          to label %1751 unwind label %1810

1751:                                             ; preds = %1745
  %1752 = mul i32 %1747, %1750
  store i32 %1752, ptr %83, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #9
  %1753 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 36
  %1754 = load i32, ptr %1753, align 4, !tbaa !42
  %1755 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1756 = load ptr, ptr %1755, align 8, !tbaa !43
  %1757 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %1756)
          to label %1758 unwind label %1814

1758:                                             ; preds = %1751
  %1759 = mul i32 %1754, %1757
  store i32 %1759, ptr %84, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  %1760 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 38
  %1761 = load i32, ptr %1760, align 4, !tbaa !44
  %1762 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1763 = load ptr, ptr %1762, align 8, !tbaa !43
  %1764 = invoke noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %1763)
          to label %1765 unwind label %1818

1765:                                             ; preds = %1758
  %1766 = mul i32 %1761, %1764
  store i32 %1766, ptr %85, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  %1767 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 39
  %1768 = load i32, ptr %1767, align 8, !tbaa !92
  %1769 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1770 = load ptr, ptr %1769, align 8, !tbaa !43
  %1771 = invoke noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %1770)
          to label %1772 unwind label %1822

1772:                                             ; preds = %1765
  %1773 = mul i32 %1768, %1771
  store i32 %1773, ptr %86, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #9
  %1774 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 40
  %1775 = load i32, ptr %1774, align 4, !tbaa !80
  %1776 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1777 = load ptr, ptr %1776, align 8, !tbaa !43
  %1778 = invoke noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %1777)
          to label %1779 unwind label %1826

1779:                                             ; preds = %1772
  %1780 = mul i32 %1775, %1778
  store i32 %1780, ptr %87, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #9
  %1781 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 35
  %1782 = load i32, ptr %1781, align 8, !tbaa !57
  %1783 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1784 = load ptr, ptr %1783, align 8, !tbaa !43
  %1785 = invoke noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %1784)
          to label %1786 unwind label %1830

1786:                                             ; preds = %1779
  %1787 = mul i32 %1782, %1785
  store i32 %1787, ptr %88, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #9
  %1788 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 33
  %1789 = load i32, ptr %1788, align 8, !tbaa !58
  %1790 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1791 = load ptr, ptr %1790, align 8, !tbaa !43
  %1792 = invoke noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %1791)
          to label %1793 unwind label %1834

1793:                                             ; preds = %1786
  %1794 = mul i32 %1789, %1792
  store i32 %1794, ptr %89, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #9
  %1795 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 34
  %1796 = load i32, ptr %1795, align 4, !tbaa !59
  %1797 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1798 = load ptr, ptr %1797, align 8, !tbaa !43
  %1799 = invoke noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %1798)
          to label %1800 unwind label %1838

1800:                                             ; preds = %1793
  %1801 = mul i32 %1796, %1799
  store i32 %1801, ptr %90, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #9
  store i32 0, ptr %91, align 4, !tbaa !41
  br label %1802

1802:                                             ; preds = %2055, %1800
  %1803 = load i32, ptr %91, align 4, !tbaa !41
  %1804 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1805 = load ptr, ptr %1804, align 8, !tbaa !43
  %1806 = invoke noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %1805)
          to label %1807 unwind label %1842

1807:                                             ; preds = %1802
  %1808 = icmp ult i32 %1803, %1806
  br i1 %1808, label %1846, label %1809

1809:                                             ; preds = %1807
  store i32 80, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %2059

1810:                                             ; preds = %1745
  %1811 = landingpad { ptr, i32 }
          cleanup
  %1812 = extractvalue { ptr, i32 } %1811, 0
  store ptr %1812, ptr %7, align 8
  %1813 = extractvalue { ptr, i32 } %1811, 1
  store i32 %1813, ptr %8, align 4
  br label %2074

1814:                                             ; preds = %1751
  %1815 = landingpad { ptr, i32 }
          cleanup
  %1816 = extractvalue { ptr, i32 } %1815, 0
  store ptr %1816, ptr %7, align 8
  %1817 = extractvalue { ptr, i32 } %1815, 1
  store i32 %1817, ptr %8, align 4
  br label %2073

1818:                                             ; preds = %1758
  %1819 = landingpad { ptr, i32 }
          cleanup
  %1820 = extractvalue { ptr, i32 } %1819, 0
  store ptr %1820, ptr %7, align 8
  %1821 = extractvalue { ptr, i32 } %1819, 1
  store i32 %1821, ptr %8, align 4
  br label %2072

1822:                                             ; preds = %1765
  %1823 = landingpad { ptr, i32 }
          cleanup
  %1824 = extractvalue { ptr, i32 } %1823, 0
  store ptr %1824, ptr %7, align 8
  %1825 = extractvalue { ptr, i32 } %1823, 1
  store i32 %1825, ptr %8, align 4
  br label %2071

1826:                                             ; preds = %1772
  %1827 = landingpad { ptr, i32 }
          cleanup
  %1828 = extractvalue { ptr, i32 } %1827, 0
  store ptr %1828, ptr %7, align 8
  %1829 = extractvalue { ptr, i32 } %1827, 1
  store i32 %1829, ptr %8, align 4
  br label %2070

1830:                                             ; preds = %1779
  %1831 = landingpad { ptr, i32 }
          cleanup
  %1832 = extractvalue { ptr, i32 } %1831, 0
  store ptr %1832, ptr %7, align 8
  %1833 = extractvalue { ptr, i32 } %1831, 1
  store i32 %1833, ptr %8, align 4
  br label %2069

1834:                                             ; preds = %1786
  %1835 = landingpad { ptr, i32 }
          cleanup
  %1836 = extractvalue { ptr, i32 } %1835, 0
  store ptr %1836, ptr %7, align 8
  %1837 = extractvalue { ptr, i32 } %1835, 1
  store i32 %1837, ptr %8, align 4
  br label %2068

1838:                                             ; preds = %1793
  %1839 = landingpad { ptr, i32 }
          cleanup
  %1840 = extractvalue { ptr, i32 } %1839, 0
  store ptr %1840, ptr %7, align 8
  %1841 = extractvalue { ptr, i32 } %1839, 1
  store i32 %1841, ptr %8, align 4
  br label %2067

1842:                                             ; preds = %1802
  %1843 = landingpad { ptr, i32 }
          cleanup
  %1844 = extractvalue { ptr, i32 } %1843, 0
  store ptr %1844, ptr %7, align 8
  %1845 = extractvalue { ptr, i32 } %1843, 1
  store i32 %1845, ptr %8, align 4
  br label %2058

1846:                                             ; preds = %1807
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  store i32 0, ptr %92, align 4, !tbaa !41
  br label %1847

1847:                                             ; preds = %2042, %1846
  %1848 = load i32, ptr %92, align 4, !tbaa !41
  %1849 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1850 = load ptr, ptr %1849, align 8, !tbaa !43
  %1851 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %1850)
          to label %1852 unwind label %1855

1852:                                             ; preds = %1847
  %1853 = icmp ult i32 %1848, %1851
  br i1 %1853, label %1859, label %1854

1854:                                             ; preds = %1852
  store i32 83, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %2046

1855:                                             ; preds = %1847
  %1856 = landingpad { ptr, i32 }
          cleanup
  %1857 = extractvalue { ptr, i32 } %1856, 0
  store ptr %1857, ptr %7, align 8
  %1858 = extractvalue { ptr, i32 } %1856, 1
  store i32 %1858, ptr %8, align 4
  br label %2045

1859:                                             ; preds = %1852
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  store i32 0, ptr %93, align 4, !tbaa !41
  br label %1860

1860:                                             ; preds = %2015, %1859
  %1861 = load i32, ptr %93, align 4, !tbaa !41
  %1862 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %1863 = load ptr, ptr %1862, align 8, !tbaa !43
  %1864 = invoke noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %1863)
          to label %1865 unwind label %1868

1865:                                             ; preds = %1860
  %1866 = icmp ult i32 %1861, %1864
  br i1 %1866, label %1872, label %1867

1867:                                             ; preds = %1865
  store i32 86, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %2029

1868:                                             ; preds = %1860
  %1869 = landingpad { ptr, i32 }
          cleanup
  %1870 = extractvalue { ptr, i32 } %1869, 0
  store ptr %1870, ptr %7, align 8
  %1871 = extractvalue { ptr, i32 } %1869, 1
  store i32 %1871, ptr %8, align 4
  br label %2028

1872:                                             ; preds = %1865
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #9
  %1873 = load ptr, ptr %55, align 8, !tbaa !5
  %1874 = load i32, ptr %91, align 4, !tbaa !41
  %1875 = sext i32 %1874 to i64
  %1876 = getelementptr inbounds ptr, ptr %1873, i64 %1875
  %1877 = load ptr, ptr %1876, align 8, !tbaa !5
  %1878 = load i32, ptr %92, align 4, !tbaa !41
  %1879 = sext i32 %1878 to i64
  %1880 = getelementptr inbounds ptr, ptr %1877, i64 %1879
  %1881 = load ptr, ptr %1880, align 8, !tbaa !5
  %1882 = load i32, ptr %93, align 4, !tbaa !41
  %1883 = sext i32 %1882 to i64
  %1884 = getelementptr inbounds ptr, ptr %1881, i64 %1883
  %1885 = load ptr, ptr %1884, align 8, !tbaa !5
  store ptr %1885, ptr %94, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #9
  store float 0.000000e+00, ptr %95, align 4, !tbaa !60
  %1886 = load i32, ptr %89, align 4, !tbaa !41
  %1887 = load i32, ptr %53, align 4, !tbaa !41
  %1888 = add i32 %1886, %1887
  %1889 = load i32, ptr %51, align 4, !tbaa !41
  %1890 = icmp ult i32 %1888, %1889
  br i1 %1890, label %1891, label %1990

1891:                                             ; preds = %1872
  %1892 = load i32, ptr %90, align 4, !tbaa !41
  %1893 = load i32, ptr %54, align 4, !tbaa !41
  %1894 = add i32 %1892, %1893
  %1895 = load i32, ptr %50, align 4, !tbaa !41
  %1896 = icmp ult i32 %1894, %1895
  br i1 %1896, label %1897, label %1990

1897:                                             ; preds = %1891
  %1898 = load i32, ptr %88, align 4, !tbaa !41
  %1899 = load i32, ptr %93, align 4, !tbaa !41
  %1900 = add i32 %1898, %1899
  %1901 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1902 = load ptr, ptr %1901, align 8, !tbaa !45
  %1903 = invoke noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %1902)
          to label %1904 unwind label %1986

1904:                                             ; preds = %1897
  %1905 = icmp ult i32 %1900, %1903
  br i1 %1905, label %1906, label %1990

1906:                                             ; preds = %1904
  %1907 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 59
  %1908 = getelementptr inbounds %class.SDMemoryStats, ptr %1907, i32 0, i32 3
  %1909 = load i32, ptr %1908, align 8, !tbaa !93
  %1910 = add i32 %1909, 1
  store i32 %1910, ptr %1908, align 8, !tbaa !93
  %1911 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 17
  %1912 = load ptr, ptr %1911, align 8, !tbaa !94
  %1913 = load i32, ptr %83, align 4, !tbaa !41
  %1914 = load i32, ptr %91, align 4, !tbaa !41
  %1915 = add i32 %1913, %1914
  %1916 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 49
  %1917 = load i32, ptr %1916, align 8, !tbaa !95
  %1918 = mul i32 %1915, %1917
  %1919 = load i32, ptr %86, align 4, !tbaa !41
  %1920 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1921 = load ptr, ptr %1920, align 8, !tbaa !45
  %1922 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1921)
          to label %1923 unwind label %1986

1923:                                             ; preds = %1906
  %1924 = mul i32 %1919, %1922
  %1925 = load i32, ptr %53, align 4, !tbaa !41
  %1926 = add i32 %1924, %1925
  %1927 = load i32, ptr %89, align 4, !tbaa !41
  %1928 = add i32 %1926, %1927
  %1929 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1930 = load ptr, ptr %1929, align 8, !tbaa !45
  %1931 = invoke noundef i32 @_ZNK8DNNLayer5get_YEv(ptr noundef nonnull align 8 dereferenceable(84) %1930)
          to label %1932 unwind label %1986

1932:                                             ; preds = %1923
  %1933 = mul i32 %1928, %1931
  %1934 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1935 = load ptr, ptr %1934, align 8, !tbaa !45
  %1936 = invoke noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %1935)
          to label %1937 unwind label %1986

1937:                                             ; preds = %1932
  %1938 = mul i32 %1933, %1936
  %1939 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1940 = load ptr, ptr %1939, align 8, !tbaa !45
  %1941 = invoke noundef i32 @_ZNK8DNNLayer5get_GEv(ptr noundef nonnull align 8 dereferenceable(84) %1940)
          to label %1942 unwind label %1986

1942:                                             ; preds = %1937
  %1943 = mul i32 %1938, %1941
  %1944 = mul i32 %1943, 1
  %1945 = add i32 %1918, %1944
  %1946 = load i32, ptr %87, align 4, !tbaa !41
  %1947 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1948 = load ptr, ptr %1947, align 8, !tbaa !45
  %1949 = invoke noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %1948)
          to label %1950 unwind label %1986

1950:                                             ; preds = %1942
  %1951 = mul i32 %1946, %1949
  %1952 = load i32, ptr %54, align 4, !tbaa !41
  %1953 = add i32 %1951, %1952
  %1954 = load i32, ptr %90, align 4, !tbaa !41
  %1955 = add i32 %1953, %1954
  %1956 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1957 = load ptr, ptr %1956, align 8, !tbaa !45
  %1958 = invoke noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %1957)
          to label %1959 unwind label %1986

1959:                                             ; preds = %1950
  %1960 = mul i32 %1955, %1958
  %1961 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1962 = load ptr, ptr %1961, align 8, !tbaa !45
  %1963 = invoke noundef i32 @_ZNK8DNNLayer5get_GEv(ptr noundef nonnull align 8 dereferenceable(84) %1962)
          to label %1964 unwind label %1986

1964:                                             ; preds = %1959
  %1965 = mul i32 %1960, %1963
  %1966 = mul i32 %1965, 1
  %1967 = add i32 %1945, %1966
  %1968 = load i32, ptr %84, align 4, !tbaa !41
  %1969 = load i32, ptr %92, align 4, !tbaa !41
  %1970 = add i32 %1968, %1969
  %1971 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %1972 = load ptr, ptr %1971, align 8, !tbaa !45
  %1973 = invoke noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %1972)
          to label %1974 unwind label %1986

1974:                                             ; preds = %1964
  %1975 = mul i32 %1970, %1973
  %1976 = mul i32 %1975, 1
  %1977 = add i32 %1967, %1976
  %1978 = load i32, ptr %88, align 4, !tbaa !41
  %1979 = load i32, ptr %93, align 4, !tbaa !41
  %1980 = add i32 %1978, %1979
  %1981 = mul i32 %1980, 1
  %1982 = add i32 %1977, %1981
  %1983 = zext i32 %1982 to i64
  %1984 = getelementptr inbounds float, ptr %1912, i64 %1983
  %1985 = load float, ptr %1984, align 4, !tbaa !60
  store float %1985, ptr %95, align 4, !tbaa !60
  br label %1990

1986:                                             ; preds = %1964, %1959, %1950, %1942, %1937, %1932, %1923, %1906, %1897
  %1987 = landingpad { ptr, i32 }
          cleanup
  %1988 = extractvalue { ptr, i32 } %1987, 0
  store ptr %1988, ptr %7, align 8
  %1989 = extractvalue { ptr, i32 } %1987, 1
  store i32 %1989, ptr %8, align 4
  br label %2027

1990:                                             ; preds = %1974, %1904, %1891, %1872
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #9
  %1991 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 64) #10
          to label %1992 unwind label %2018

1992:                                             ; preds = %1990
  %1993 = load float, ptr %95, align 4, !tbaa !60
  %1994 = load ptr, ptr %94, align 8, !tbaa !5
  %1995 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 7
  %1996 = load i32, ptr %1995, align 8, !tbaa !50
  invoke void @_ZN11DataPackageC1Emf9operand_tj9traffic_tPbj(ptr noundef nonnull align 8 dereferenceable(64) %1991, i64 noundef 4, float noundef %1993, i32 noundef 1, i32 noundef 0, i32 noundef 1, ptr noundef %1994, i32 noundef %1996)
          to label %1997 unwind label %2022

1997:                                             ; preds = %1992
  store ptr %1991, ptr %96, align 8, !tbaa !5
  %1998 = load ptr, ptr %96, align 8, !tbaa !5
  %1999 = load i32, ptr %84, align 4, !tbaa !41
  %2000 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 1
  %2001 = load ptr, ptr %2000, align 8, !tbaa !45
  %2002 = invoke noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84) %2001)
          to label %2003 unwind label %2018

2003:                                             ; preds = %1997
  %2004 = mul i32 %1999, %2002
  %2005 = load i32, ptr %85, align 4, !tbaa !41
  %2006 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %2007 = load ptr, ptr %2006, align 8, !tbaa !43
  %2008 = invoke noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %2007)
          to label %2009 unwind label %2018

2009:                                             ; preds = %2003
  %2010 = mul i32 %2005, %2008
  %2011 = add i32 %2004, %2010
  invoke void @_ZN11DataPackage13setIterationKEj(ptr noundef nonnull align 8 dereferenceable(64) %1998, i32 noundef %2011)
          to label %2012 unwind label %2018

2012:                                             ; preds = %2009
  %2013 = load ptr, ptr %96, align 8, !tbaa !5
  invoke void @_ZN8SDMemory23sendPackageToInputFifosEP11DataPackage(ptr noundef nonnull align 8 dereferenceable(568) %106, ptr noundef %2013)
          to label %2014 unwind label %2018

2014:                                             ; preds = %2012
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #9
  br label %2015

2015:                                             ; preds = %2014
  %2016 = load i32, ptr %93, align 4, !tbaa !41
  %2017 = add nsw i32 %2016, 1
  store i32 %2017, ptr %93, align 4, !tbaa !41
  br label %1860, !llvm.loop !96

2018:                                             ; preds = %2012, %2009, %2003, %1997, %1990
  %2019 = landingpad { ptr, i32 }
          cleanup
  %2020 = extractvalue { ptr, i32 } %2019, 0
  store ptr %2020, ptr %7, align 8
  %2021 = extractvalue { ptr, i32 } %2019, 1
  store i32 %2021, ptr %8, align 4
  br label %2026

2022:                                             ; preds = %1992
  %2023 = landingpad { ptr, i32 }
          cleanup
  %2024 = extractvalue { ptr, i32 } %2023, 0
  store ptr %2024, ptr %7, align 8
  %2025 = extractvalue { ptr, i32 } %2023, 1
  store i32 %2025, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %1991, i64 noundef 64) #11
  br label %2026

2026:                                             ; preds = %2022, %2018
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #9
  br label %2027

2027:                                             ; preds = %2026, %1986
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #9
  br label %2028

2028:                                             ; preds = %2027, %1868
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %2045

2029:                                             ; preds = %1867
  %2030 = load ptr, ptr %55, align 8, !tbaa !5
  %2031 = load i32, ptr %91, align 4, !tbaa !41
  %2032 = sext i32 %2031 to i64
  %2033 = getelementptr inbounds ptr, ptr %2030, i64 %2032
  %2034 = load ptr, ptr %2033, align 8, !tbaa !5
  %2035 = load i32, ptr %92, align 4, !tbaa !41
  %2036 = sext i32 %2035 to i64
  %2037 = getelementptr inbounds ptr, ptr %2034, i64 %2036
  %2038 = load ptr, ptr %2037, align 8, !tbaa !5
  %2039 = icmp eq ptr %2038, null
  br i1 %2039, label %2041, label %2040

2040:                                             ; preds = %2029
  call void @_ZdaPv(ptr noundef %2038) #11
  br label %2041

2041:                                             ; preds = %2040, %2029
  br label %2042

2042:                                             ; preds = %2041
  %2043 = load i32, ptr %92, align 4, !tbaa !41
  %2044 = add nsw i32 %2043, 1
  store i32 %2044, ptr %92, align 4, !tbaa !41
  br label %1847, !llvm.loop !97

2045:                                             ; preds = %2028, %1855
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %2058

2046:                                             ; preds = %1854
  %2047 = load ptr, ptr %55, align 8, !tbaa !5
  %2048 = load i32, ptr %91, align 4, !tbaa !41
  %2049 = sext i32 %2048 to i64
  %2050 = getelementptr inbounds ptr, ptr %2047, i64 %2049
  %2051 = load ptr, ptr %2050, align 8, !tbaa !5
  %2052 = icmp eq ptr %2051, null
  br i1 %2052, label %2054, label %2053

2053:                                             ; preds = %2046
  call void @_ZdaPv(ptr noundef %2051) #11
  br label %2054

2054:                                             ; preds = %2053, %2046
  br label %2055

2055:                                             ; preds = %2054
  %2056 = load i32, ptr %91, align 4, !tbaa !41
  %2057 = add nsw i32 %2056, 1
  store i32 %2057, ptr %91, align 4, !tbaa !41
  br label %1802, !llvm.loop !98

2058:                                             ; preds = %2045, %1842
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %2067

2059:                                             ; preds = %1809
  %2060 = load ptr, ptr %55, align 8, !tbaa !5
  %2061 = icmp eq ptr %2060, null
  br i1 %2061, label %2063, label %2062

2062:                                             ; preds = %2059
  call void @_ZdaPv(ptr noundef %2060) #11
  br label %2063

2063:                                             ; preds = %2062, %2059
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  br label %2064

2064:                                             ; preds = %2063
  %2065 = load i32, ptr %54, align 4, !tbaa !41
  %2066 = add i32 %2065, 1
  store i32 %2066, ptr %54, align 4, !tbaa !41
  br label %1158, !llvm.loop !99

2067:                                             ; preds = %2058, %1838
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %2068

2068:                                             ; preds = %2067, %1834
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %2069

2069:                                             ; preds = %2068, %1830
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  br label %2070

2070:                                             ; preds = %2069, %1826
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %2071

2071:                                             ; preds = %2070, %1822
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %2072

2072:                                             ; preds = %2071, %1818
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %2073

2073:                                             ; preds = %2072, %1814
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %2074

2074:                                             ; preds = %2073, %1810
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %2075

2075:                                             ; preds = %2074, %1744, %1344
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2076

2076:                                             ; preds = %2075, %1320
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %2077

2077:                                             ; preds = %2076, %1308, %1183
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2180

2078:                                             ; preds = %1162
  br label %2079

2079:                                             ; preds = %2078
  %2080 = load i32, ptr %53, align 4, !tbaa !41
  %2081 = add i32 %2080, 1
  store i32 %2081, ptr %53, align 4, !tbaa !41
  br label %1151, !llvm.loop !100

2082:                                             ; preds = %1155
  %2083 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 34
  %2084 = load i32, ptr %2083, align 4, !tbaa !59
  %2085 = add i32 %2084, 1
  store i32 %2085, ptr %2083, align 4, !tbaa !59
  %2086 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 34
  %2087 = load i32, ptr %2086, align 4, !tbaa !59
  %2088 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 26
  %2089 = load i32, ptr %2088, align 4, !tbaa !77
  %2090 = icmp eq i32 %2087, %2089
  br i1 %2090, label %2091, label %2179

2091:                                             ; preds = %2082
  %2092 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 34
  store i32 0, ptr %2092, align 4, !tbaa !59
  %2093 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 33
  %2094 = load i32, ptr %2093, align 8, !tbaa !58
  %2095 = add i32 %2094, 1
  store i32 %2095, ptr %2093, align 8, !tbaa !58
  %2096 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 33
  %2097 = load i32, ptr %2096, align 8, !tbaa !58
  %2098 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 25
  %2099 = load i32, ptr %2098, align 8, !tbaa !78
  %2100 = icmp eq i32 %2097, %2099
  br i1 %2100, label %2101, label %2178

2101:                                             ; preds = %2091
  %2102 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 33
  store i32 0, ptr %2102, align 8, !tbaa !58
  %2103 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 35
  %2104 = load i32, ptr %2103, align 8, !tbaa !57
  %2105 = add i32 %2104, 1
  store i32 %2105, ptr %2103, align 8, !tbaa !57
  %2106 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 35
  %2107 = load i32, ptr %2106, align 8, !tbaa !57
  %2108 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 27
  %2109 = load i32, ptr %2108, align 8, !tbaa !79
  %2110 = icmp eq i32 %2107, %2109
  br i1 %2110, label %2111, label %2177

2111:                                             ; preds = %2101
  %2112 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 35
  store i32 0, ptr %2112, align 8, !tbaa !57
  %2113 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 40
  %2114 = load i32, ptr %2113, align 4, !tbaa !80
  %2115 = add i32 %2114, 1
  store i32 %2115, ptr %2113, align 4, !tbaa !80
  %2116 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 40
  %2117 = load i32, ptr %2116, align 4, !tbaa !80
  %2118 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 32
  %2119 = load i32, ptr %2118, align 4, !tbaa !101
  %2120 = icmp eq i32 %2117, %2119
  br i1 %2120, label %2121, label %2176

2121:                                             ; preds = %2111
  %2122 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 40
  store i32 0, ptr %2122, align 4, !tbaa !80
  %2123 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 39
  %2124 = load i32, ptr %2123, align 8, !tbaa !92
  %2125 = add i32 %2124, 1
  store i32 %2125, ptr %2123, align 8, !tbaa !92
  %2126 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 39
  %2127 = load i32, ptr %2126, align 8, !tbaa !92
  %2128 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 31
  %2129 = load i32, ptr %2128, align 8, !tbaa !102
  %2130 = icmp eq i32 %2127, %2129
  br i1 %2130, label %2131, label %2175

2131:                                             ; preds = %2121
  %2132 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 39
  store i32 0, ptr %2132, align 8, !tbaa !92
  %2133 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 38
  %2134 = load i32, ptr %2133, align 4, !tbaa !44
  %2135 = add i32 %2134, 1
  store i32 %2135, ptr %2133, align 4, !tbaa !44
  %2136 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 19
  store i8 0, ptr %2136, align 8, !tbaa !49
  %2137 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 38
  %2138 = load i32, ptr %2137, align 4, !tbaa !44
  %2139 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 30
  %2140 = load i32, ptr %2139, align 4, !tbaa !103
  %2141 = icmp eq i32 %2138, %2140
  br i1 %2141, label %2142, label %2174

2142:                                             ; preds = %2131
  %2143 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 38
  store i32 0, ptr %2143, align 4, !tbaa !44
  %2144 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 36
  %2145 = load i32, ptr %2144, align 4, !tbaa !42
  %2146 = add i32 %2145, 1
  store i32 %2146, ptr %2144, align 4, !tbaa !42
  %2147 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 36
  %2148 = load i32, ptr %2147, align 4, !tbaa !42
  %2149 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 28
  %2150 = load i32, ptr %2149, align 4, !tbaa !104
  %2151 = icmp eq i32 %2148, %2150
  br i1 %2151, label %2152, label %2173

2152:                                             ; preds = %2142
  %2153 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 36
  store i32 0, ptr %2153, align 4, !tbaa !42
  %2154 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 37
  %2155 = load i32, ptr %2154, align 8, !tbaa !91
  %2156 = add i32 %2155, 1
  store i32 %2156, ptr %2154, align 8, !tbaa !91
  %2157 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 37
  %2158 = load i32, ptr %2157, align 8, !tbaa !91
  %2159 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 29
  %2160 = load i32, ptr %2159, align 8, !tbaa !105
  %2161 = icmp eq i32 %2158, %2160
  br i1 %2161, label %2162, label %2172

2162:                                             ; preds = %2152
  %2163 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 37
  store i32 0, ptr %2163, align 8, !tbaa !91
  %2164 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 19
  store i8 1, ptr %2164, align 8, !tbaa !49
  %2165 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 21
  store i8 1, ptr %2165, align 2, !tbaa !106
  %2166 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 21
  %2167 = load i8, ptr %2166, align 2, !tbaa !106, !range !47, !noundef !48
  %2168 = trunc i8 %2167 to i1
  br i1 %2168, label %2169, label %2171

2169:                                             ; preds = %2162
  %2170 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 22
  store i8 1, ptr %2170, align 1, !tbaa !46
  br label %2171

2171:                                             ; preds = %2169, %2162
  br label %2172

2172:                                             ; preds = %2171, %2152
  br label %2173

2173:                                             ; preds = %2172, %2142
  br label %2174

2174:                                             ; preds = %2173, %2131
  br label %2175

2175:                                             ; preds = %2174, %2121
  br label %2176

2176:                                             ; preds = %2175, %2111
  br label %2177

2177:                                             ; preds = %2176, %2101
  br label %2178

2178:                                             ; preds = %2177, %2091
  br label %2179

2179:                                             ; preds = %2178, %2082
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %2185

2180:                                             ; preds = %2077, %1140
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %2181

2181:                                             ; preds = %2180, %1136
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %2182

2182:                                             ; preds = %2181, %1132
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %2183

2183:                                             ; preds = %2182, %1128
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  br label %2184

2184:                                             ; preds = %2183, %1124
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %2186

2185:                                             ; preds = %2179, %1030
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %2188

2186:                                             ; preds = %2184, %994, %684, %193
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %2187

2187:                                             ; preds = %2186, %189
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %2432

2188:                                             ; preds = %2185, %149, %143
  invoke void @_ZN8SDMemory7receiveEv(ptr noundef nonnull align 8 dereferenceable(568) %106)
          to label %2189 unwind label %185

2189:                                             ; preds = %2188
  %2190 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 13
  %2191 = load ptr, ptr %2190, align 8, !tbaa !107
  %2192 = invoke noundef zeroext i1 @_ZN4Fifo7isEmptyEv(ptr noundef nonnull align 8 dereferenceable(120) %2191)
          to label %2193 unwind label %185

2193:                                             ; preds = %2189
  br i1 %2192, label %2430, label %2194

2194:                                             ; preds = %2193
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #9
  store i32 0, ptr %97, align 4, !tbaa !41
  br label %2195

2195:                                             ; preds = %2421, %2194
  %2196 = load i32, ptr %97, align 4, !tbaa !41
  %2197 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 13
  %2198 = load ptr, ptr %2197, align 8, !tbaa !107
  %2199 = invoke noundef i32 @_ZN4Fifo4sizeEv(ptr noundef nonnull align 8 dereferenceable(120) %2198)
          to label %2200 unwind label %2203

2200:                                             ; preds = %2195
  %2201 = icmp ult i32 %2196, %2199
  br i1 %2201, label %2207, label %2202

2202:                                             ; preds = %2200
  store i32 89, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %2429

2203:                                             ; preds = %2195
  %2204 = landingpad { ptr, i32 }
          cleanup
  %2205 = extractvalue { ptr, i32 } %2204, 0
  store ptr %2205, ptr %7, align 8
  %2206 = extractvalue { ptr, i32 } %2204, 1
  store i32 %2206, ptr %8, align 4
  br label %2428

2207:                                             ; preds = %2200
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #9
  %2208 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 13
  %2209 = load ptr, ptr %2208, align 8, !tbaa !107
  %2210 = invoke noundef ptr @_ZN4Fifo3popEv(ptr noundef nonnull align 8 dereferenceable(120) %2209)
          to label %2211 unwind label %2230

2211:                                             ; preds = %2207
  store ptr %2210, ptr %98, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #9
  %2212 = load ptr, ptr %98, align 8, !tbaa !5
  %2213 = invoke noundef i32 @_ZNK11DataPackage6get_vnEv(ptr noundef nonnull align 8 dereferenceable(64) %2212)
          to label %2214 unwind label %2234

2214:                                             ; preds = %2211
  store i32 %2213, ptr %99, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #9
  %2215 = load ptr, ptr %98, align 8, !tbaa !5
  %2216 = invoke noundef float @_ZNK11DataPackage8get_dataEv(ptr noundef nonnull align 8 dereferenceable(64) %2215)
          to label %2217 unwind label %2238

2217:                                             ; preds = %2214
  store float %2216, ptr %100, align 4, !tbaa !60
  %2218 = load i32, ptr %99, align 4, !tbaa !41
  %2219 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 57
  %2220 = load ptr, ptr %2219, align 8, !tbaa !108
  %2221 = load i32, ptr %99, align 4, !tbaa !41
  %2222 = zext i32 %2221 to i64
  %2223 = getelementptr inbounds ptr, ptr %2220, i64 %2222
  %2224 = load ptr, ptr %2223, align 8, !tbaa !5
  %2225 = getelementptr inbounds %class.VNAT_Register, ptr %2224, i32 0, i32 0
  %2226 = load i32, ptr %2225, align 8, !tbaa !109
  %2227 = icmp eq i32 %2218, %2226
  br i1 %2227, label %2228, label %2229

2228:                                             ; preds = %2217
  br label %2243

2229:                                             ; preds = %2217
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 700, ptr noundef @__PRETTY_FUNCTION__._ZN8SDMemory5cycleEv) #12
  unreachable

2230:                                             ; preds = %2207
  %2231 = landingpad { ptr, i32 }
          cleanup
  %2232 = extractvalue { ptr, i32 } %2231, 0
  store ptr %2232, ptr %7, align 8
  %2233 = extractvalue { ptr, i32 } %2231, 1
  store i32 %2233, ptr %8, align 4
  br label %2427

2234:                                             ; preds = %2211
  %2235 = landingpad { ptr, i32 }
          cleanup
  %2236 = extractvalue { ptr, i32 } %2235, 0
  store ptr %2236, ptr %7, align 8
  %2237 = extractvalue { ptr, i32 } %2235, 1
  store i32 %2237, ptr %8, align 4
  br label %2426

2238:                                             ; preds = %2214
  %2239 = landingpad { ptr, i32 }
          cleanup
  %2240 = extractvalue { ptr, i32 } %2239, 0
  store ptr %2240, ptr %7, align 8
  %2241 = extractvalue { ptr, i32 } %2239, 1
  store i32 %2241, ptr %8, align 4
  br label %2425

2242:                                             ; No predecessors!
  br label %2243

2243:                                             ; preds = %2242, %2228
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #9
  %2244 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 57
  %2245 = load ptr, ptr %2244, align 8, !tbaa !108
  %2246 = load i32, ptr %99, align 4, !tbaa !41
  %2247 = zext i32 %2246 to i64
  %2248 = getelementptr inbounds ptr, ptr %2245, i64 %2247
  %2249 = load ptr, ptr %2248, align 8, !tbaa !5
  %2250 = getelementptr inbounds %class.VNAT_Register, ptr %2249, i32 0, i32 2
  %2251 = load i32, ptr %2250, align 8, !tbaa !111
  store i32 %2251, ptr %101, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #9
  %2252 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 57
  %2253 = load ptr, ptr %2252, align 8, !tbaa !108
  %2254 = load i32, ptr %99, align 4, !tbaa !41
  %2255 = zext i32 %2254 to i64
  %2256 = getelementptr inbounds ptr, ptr %2253, i64 %2255
  %2257 = load ptr, ptr %2256, align 8, !tbaa !5
  %2258 = getelementptr inbounds %class.VNAT_Register, ptr %2257, i32 0, i32 0
  %2259 = load i32, ptr %2258, align 8, !tbaa !109
  store i32 %2259, ptr %102, align 4, !tbaa !41
  %2260 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 57
  %2261 = load ptr, ptr %2260, align 8, !tbaa !108
  %2262 = load i32, ptr %99, align 4, !tbaa !41
  %2263 = zext i32 %2262 to i64
  %2264 = getelementptr inbounds ptr, ptr %2261, i64 %2263
  %2265 = load ptr, ptr %2264, align 8, !tbaa !5
  %2266 = getelementptr inbounds %class.VNAT_Register, ptr %2265, i32 0, i32 29
  %2267 = load i8, ptr %2266, align 1, !tbaa !112, !range !47, !noundef !48
  %2268 = trunc i8 %2267 to i1
  br i1 %2268, label %2269, label %2287

2269:                                             ; preds = %2243
  %2270 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 58
  %2271 = load i32, ptr %2270, align 8, !tbaa !9
  %2272 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 54
  %2273 = load ptr, ptr %2272, align 8, !tbaa !113
  %2274 = load i32, ptr %101, align 4, !tbaa !41
  %2275 = zext i32 %2274 to i64
  %2276 = getelementptr inbounds i32, ptr %2273, i64 %2275
  store i32 %2271, ptr %2276, align 4, !tbaa !41
  %2277 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 59
  %2278 = getelementptr inbounds %class.SDMemoryStats, ptr %2277, i32 0, i32 5
  %2279 = load i32, ptr %2278, align 8, !tbaa !114
  %2280 = add i32 %2279, 1
  store i32 %2280, ptr %2278, align 8, !tbaa !114
  %2281 = load float, ptr %100, align 4, !tbaa !60
  %2282 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 18
  %2283 = load ptr, ptr %2282, align 8, !tbaa !115
  %2284 = load i32, ptr %101, align 4, !tbaa !41
  %2285 = zext i32 %2284 to i64
  %2286 = getelementptr inbounds float, ptr %2283, i64 %2285
  store float %2281, ptr %2286, align 4, !tbaa !60
  br label %2287

2287:                                             ; preds = %2269, %2243
  %2288 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 41
  %2289 = load i32, ptr %2288, align 8, !tbaa !39
  %2290 = add i32 %2289, 1
  store i32 %2290, ptr %2288, align 8, !tbaa !39
  %2291 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 59
  %2292 = getelementptr inbounds %class.SDMemoryStats, ptr %2291, i32 0, i32 15
  %2293 = load ptr, ptr %98, align 8, !tbaa !5
  %2294 = invoke noundef i32 @_ZNK11DataPackage13getOutputPortEv(ptr noundef nonnull align 8 dereferenceable(64) %2293)
          to label %2295 unwind label %2305

2295:                                             ; preds = %2287
  %2296 = zext i32 %2294 to i64
  %2297 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2292, i64 noundef %2296) #9
  %2298 = load i32, ptr %2297, align 4, !tbaa !41
  %2299 = add i32 %2298, 1
  store i32 %2299, ptr %2297, align 4, !tbaa !41
  %2300 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 41
  %2301 = load i32, ptr %2300, align 8, !tbaa !39
  %2302 = urem i32 %2301, 10000
  %2303 = icmp eq i32 %2302, 0
  br i1 %2303, label %2304, label %2309

2304:                                             ; preds = %2295
  br label %2309

2305:                                             ; preds = %2409, %2287
  %2306 = landingpad { ptr, i32 }
          cleanup
  %2307 = extractvalue { ptr, i32 } %2306, 0
  store ptr %2307, ptr %7, align 8
  %2308 = extractvalue { ptr, i32 } %2306, 1
  store i32 %2308, ptr %8, align 4
  br label %2424

2309:                                             ; preds = %2304, %2295
  %2310 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 57
  %2311 = load ptr, ptr %2310, align 8, !tbaa !108
  %2312 = load i32, ptr %99, align 4, !tbaa !41
  %2313 = zext i32 %2312 to i64
  %2314 = getelementptr inbounds ptr, ptr %2311, i64 %2313
  %2315 = load ptr, ptr %2314, align 8, !tbaa !5
  %2316 = getelementptr inbounds %class.VNAT_Register, ptr %2315, i32 0, i32 25
  %2317 = load i32, ptr %2316, align 4, !tbaa !116
  %2318 = add i32 %2317, 1
  store i32 %2318, ptr %2316, align 4, !tbaa !116
  %2319 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 57
  %2320 = load ptr, ptr %2319, align 8, !tbaa !108
  %2321 = load i32, ptr %99, align 4, !tbaa !41
  %2322 = zext i32 %2321 to i64
  %2323 = getelementptr inbounds ptr, ptr %2320, i64 %2322
  %2324 = load ptr, ptr %2323, align 8, !tbaa !5
  %2325 = getelementptr inbounds %class.VNAT_Register, ptr %2324, i32 0, i32 25
  %2326 = load i32, ptr %2325, align 4, !tbaa !116
  %2327 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 57
  %2328 = load ptr, ptr %2327, align 8, !tbaa !108
  %2329 = load i32, ptr %99, align 4, !tbaa !41
  %2330 = zext i32 %2329 to i64
  %2331 = getelementptr inbounds ptr, ptr %2328, i64 %2330
  %2332 = load ptr, ptr %2331, align 8, !tbaa !5
  %2333 = getelementptr inbounds %class.VNAT_Register, ptr %2332, i32 0, i32 24
  %2334 = load i32, ptr %2333, align 8, !tbaa !117
  %2335 = icmp ult i32 %2326, %2334
  br i1 %2335, label %2336, label %2393

2336:                                             ; preds = %2309
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #9
  %2337 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 7
  %2338 = load i32, ptr %2337, align 8, !tbaa !50
  %2339 = zext i32 %2338 to i64
  %2340 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %2339) #10
          to label %2341 unwind label %2348

2341:                                             ; preds = %2336
  store ptr %2340, ptr %103, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #9
  store i32 0, ptr %104, align 4, !tbaa !41
  br label %2342

2342:                                             ; preds = %2357, %2341
  %2343 = load i32, ptr %104, align 4, !tbaa !41
  %2344 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 7
  %2345 = load i32, ptr %2344, align 8, !tbaa !50
  %2346 = icmp ult i32 %2343, %2345
  br i1 %2346, label %2352, label %2347

2347:                                             ; preds = %2342
  store i32 92, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #9
  br label %2360

2348:                                             ; preds = %2360, %2336
  %2349 = landingpad { ptr, i32 }
          cleanup
  %2350 = extractvalue { ptr, i32 } %2349, 0
  store ptr %2350, ptr %7, align 8
  %2351 = extractvalue { ptr, i32 } %2349, 1
  store i32 %2351, ptr %8, align 4
  br label %2392

2352:                                             ; preds = %2342
  %2353 = load ptr, ptr %103, align 8, !tbaa !5
  %2354 = load i32, ptr %104, align 4, !tbaa !41
  %2355 = sext i32 %2354 to i64
  %2356 = getelementptr inbounds i8, ptr %2353, i64 %2355
  store i8 0, ptr %2356, align 1, !tbaa !51
  br label %2357

2357:                                             ; preds = %2352
  %2358 = load i32, ptr %104, align 4, !tbaa !41
  %2359 = add nsw i32 %2358, 1
  store i32 %2359, ptr %104, align 4, !tbaa !41
  br label %2342, !llvm.loop !118

2360:                                             ; preds = %2347
  %2361 = load ptr, ptr %103, align 8, !tbaa !5
  %2362 = load i32, ptr %99, align 4, !tbaa !41
  %2363 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 2
  %2364 = load ptr, ptr %2363, align 8, !tbaa !43
  %2365 = invoke noundef i32 @_ZNK4Tile11get_VN_SizeEv(ptr noundef nonnull align 4 dereferenceable(41) %2364)
          to label %2366 unwind label %2348

2366:                                             ; preds = %2360
  %2367 = mul i32 %2362, %2365
  %2368 = zext i32 %2367 to i64
  %2369 = getelementptr inbounds i8, ptr %2361, i64 %2368
  store i8 1, ptr %2369, align 1, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #9
  %2370 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 64) #10
          to label %2371 unwind label %2383

2371:                                             ; preds = %2366
  %2372 = load float, ptr %100, align 4, !tbaa !60
  %2373 = load ptr, ptr %103, align 8, !tbaa !5
  %2374 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 7
  %2375 = load i32, ptr %2374, align 8, !tbaa !50
  invoke void @_ZN11DataPackageC1Emf9operand_tj9traffic_tPbj(ptr noundef nonnull align 8 dereferenceable(64) %2370, i64 noundef 4, float noundef %2372, i32 noundef 3, i32 noundef 0, i32 noundef 1, ptr noundef %2373, i32 noundef %2375)
          to label %2376 unwind label %2387

2376:                                             ; preds = %2371
  store ptr %2370, ptr %105, align 8, !tbaa !5
  %2377 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 59
  %2378 = getelementptr inbounds %class.SDMemoryStats, ptr %2377, i32 0, i32 4
  %2379 = load i32, ptr %2378, align 4, !tbaa !119
  %2380 = add i32 %2379, 1
  store i32 %2380, ptr %2378, align 4, !tbaa !119
  %2381 = load ptr, ptr %105, align 8, !tbaa !5
  invoke void @_ZN8SDMemory23sendPackageToInputFifosEP11DataPackage(ptr noundef nonnull align 8 dereferenceable(568) %106, ptr noundef %2381)
          to label %2382 unwind label %2383

2382:                                             ; preds = %2376
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #9
  br label %2401

2383:                                             ; preds = %2376, %2366
  %2384 = landingpad { ptr, i32 }
          cleanup
  %2385 = extractvalue { ptr, i32 } %2384, 0
  store ptr %2385, ptr %7, align 8
  %2386 = extractvalue { ptr, i32 } %2384, 1
  store i32 %2386, ptr %8, align 4
  br label %2391

2387:                                             ; preds = %2371
  %2388 = landingpad { ptr, i32 }
          cleanup
  %2389 = extractvalue { ptr, i32 } %2388, 0
  store ptr %2389, ptr %7, align 8
  %2390 = extractvalue { ptr, i32 } %2388, 1
  store i32 %2390, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2370, i64 noundef 64) #11
  br label %2391

2391:                                             ; preds = %2387, %2383
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #9
  br label %2392

2392:                                             ; preds = %2391, %2348
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #9
  br label %2424

2393:                                             ; preds = %2309
  %2394 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 57
  %2395 = load ptr, ptr %2394, align 8, !tbaa !108
  %2396 = load i32, ptr %99, align 4, !tbaa !41
  %2397 = zext i32 %2396 to i64
  %2398 = getelementptr inbounds ptr, ptr %2395, i64 %2397
  %2399 = load ptr, ptr %2398, align 8, !tbaa !5
  %2400 = getelementptr inbounds %class.VNAT_Register, ptr %2399, i32 0, i32 25
  store i32 0, ptr %2400, align 4, !tbaa !116
  br label %2401

2401:                                             ; preds = %2393, %2382
  %2402 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 41
  %2403 = load i32, ptr %2402, align 8, !tbaa !39
  %2404 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 42
  %2405 = load i32, ptr %2404, align 4, !tbaa !120
  %2406 = icmp eq i32 %2403, %2405
  br i1 %2406, label %2407, label %2409

2407:                                             ; preds = %2401
  %2408 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 24
  store i8 1, ptr %2408, align 1, !tbaa !121
  br label %2409

2409:                                             ; preds = %2407, %2401
  %2410 = getelementptr inbounds %class.SDMemory, ptr %106, i32 0, i32 57
  %2411 = load ptr, ptr %2410, align 8, !tbaa !108
  %2412 = load i32, ptr %99, align 4, !tbaa !41
  %2413 = zext i32 %2412 to i64
  %2414 = getelementptr inbounds ptr, ptr %2411, i64 %2413
  %2415 = load ptr, ptr %2414, align 8, !tbaa !5
  invoke void @_ZN13VNAT_Register6updateEv(ptr noundef nonnull align 8 dereferenceable(122) %2415)
          to label %2416 unwind label %2305

2416:                                             ; preds = %2409
  %2417 = load ptr, ptr %98, align 8, !tbaa !5
  %2418 = icmp eq ptr %2417, null
  br i1 %2418, label %2420, label %2419

2419:                                             ; preds = %2416
  call void @_ZN11DataPackageD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %2417) #9
  call void @_ZdlPvm(ptr noundef %2417, i64 noundef 64) #11
  br label %2420

2420:                                             ; preds = %2419, %2416
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #9
  br label %2421

2421:                                             ; preds = %2420
  %2422 = load i32, ptr %97, align 4, !tbaa !41
  %2423 = add nsw i32 %2422, 1
  store i32 %2423, ptr %97, align 4, !tbaa !41
  br label %2195, !llvm.loop !122

2424:                                             ; preds = %2392, %2305
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #9
  br label %2425

2425:                                             ; preds = %2424, %2238
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  br label %2426

2426:                                             ; preds = %2425, %2234
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %2427

2427:                                             ; preds = %2426, %2230
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #9
  br label %2428

2428:                                             ; preds = %2427, %2203
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %2432

2429:                                             ; preds = %2202
  br label %2430

2430:                                             ; preds = %2429, %2193
  invoke void @_ZN8SDMemory4sendEv(ptr noundef nonnull align 8 dereferenceable(568) %106)
          to label %2431 unwind label %185

2431:                                             ; preds = %2430
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #9
  call void @_ZNSt6vectorIP11DataPackageSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %4) #9
  call void @_ZNSt6vectorIP11DataPackageSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #9
  ret void

2432:                                             ; preds = %2428, %2187, %185
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  br label %2433

2433:                                             ; preds = %2432, %181
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %2434

2434:                                             ; preds = %2433, %177
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #9
  call void @_ZNSt6vectorIP11DataPackageSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %4) #9
  call void @_ZNSt6vectorIP11DataPackageSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #9
  br label %2435

2435:                                             ; preds = %2434
  %2436 = load ptr, ptr %7, align 8
  %2437 = load i32, ptr %8, align 4
  %2438 = insertvalue { ptr, i32 } poison, ptr %2436, 0
  %2439 = insertvalue { ptr, i32 } %2438, i32 %2437, 1
  resume { ptr, i32 } %2439
}

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

declare void @_ZN11DataPackageC1Emf9operand_tj9traffic_tPbj(ptr noundef nonnull align 8 dereferenceable(64), i64 noundef, float noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) unnamed_addr #7

declare void @_ZN11DataPackage13setIterationKEj(ptr noundef nonnull align 8 dereferenceable(64), i32 noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8SDMemory23sendPackageToInputFifosEP11DataPackage(ptr noundef nonnull align 8 dereferenceable(568), ptr noundef) #1 align 2

declare void @_ZN11DataPackageC1Emf9operand_tj9traffic_tj(ptr noundef nonnull align 8 dereferenceable(64), i64 noundef, float noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile11get_VN_SizeEv(ptr noundef nonnull align 4 dereferenceable(41)) #0 align 2

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

declare noundef zeroext i1 @_ZN4Fifo7isEmptyEv(ptr noundef nonnull align 8 dereferenceable(120)) #7

declare noundef i32 @_ZN4Fifo4sizeEv(ptr noundef nonnull align 8 dereferenceable(120)) #7

declare noundef ptr @_ZN4Fifo3popEv(ptr noundef nonnull align 8 dereferenceable(120)) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK11DataPackage6get_vnEv(ptr noundef nonnull align 8 dereferenceable(64)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK11DataPackage8get_dataEv(ptr noundef nonnull align 8 dereferenceable(64)) #0 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK11DataPackage13getOutputPortEv(ptr noundef nonnull align 8 dereferenceable(64)) #0 align 2

; Function Attrs: nounwind
declare void @_ZN11DataPackageD1Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #8

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

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

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

!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, !13, i64 408}
!10 = !{!"_ZTS8SDMemory", !11, i64 0, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !17, i64 88, !13, i64 112, !13, i64 116, !13, i64 120, !13, i64 124, !13, i64 128, !13, i64 132, !6, i64 136, !21, i64 144, !21, i64 168, !6, i64 192, !6, i64 200, !6, i64 208, !25, i64 216, !25, i64 217, !25, i64 218, !25, i64 219, !25, i64 220, !25, i64 221, !13, i64 224, !13, i64 228, !13, i64 232, !13, i64 236, !13, i64 240, !13, i64 244, !13, i64 248, !13, i64 252, !13, i64 256, !13, i64 260, !13, i64 264, !13, i64 268, !13, i64 272, !13, i64 276, !13, i64 280, !13, i64 284, !13, i64 288, !13, i64 292, !13, i64 296, !13, i64 300, !13, i64 304, !13, i64 308, !13, i64 312, !13, i64 316, !13, i64 320, !13, i64 324, !13, i64 328, !13, i64 332, !13, i64 336, !6, i64 344, !26, i64 352, !17, i64 376, !6, i64 400, !13, i64 408, !31, i64 416}
!11 = !{!"_ZTS16MemoryController", !12, i64 0}
!12 = !{!"_ZTS4Unit", !13, i64 8, !14, i64 16}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !15, i64 0, !16, i64 8, !7, i64 16}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!"_ZTSSt6vectorIP10ConnectionSaIS1_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIP10ConnectionSaIS1_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIP10ConnectionSaIS1_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIP10ConnectionSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!21 = !{!"_ZTSSt6vectorIP4FifoSaIS1_EE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIP4FifoSaIS1_EE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIP4FifoSaIS1_EE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIP4FifoSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!25 = !{!"bool", !7, i64 0}
!26 = !{!"_ZTSNSt7__cxx114listIP11DataPackageSaIS2_EEE", !27, i64 0}
!27 = !{!"_ZTSNSt7__cxx1110_List_baseIP11DataPackageSaIS2_EEE", !28, i64 0}
!28 = !{!"_ZTSNSt7__cxx1110_List_baseIP11DataPackageSaIS2_EE10_List_implE", !29, i64 0}
!29 = !{!"_ZTSNSt8__detail17_List_node_headerE", !30, i64 0, !16, i64 16}
!30 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!31 = !{!"_ZTS13SDMemoryStats", !32, i64 0, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !13, i64 32, !13, i64 36, !13, i64 40, !13, i64 44, !33, i64 48, !34, i64 56, !34, i64 80, !34, i64 104, !34, i64 128}
!32 = !{!"_ZTS5Stats"}
!33 = !{!"_ZTS8Dataflow", !7, i64 0}
!34 = !{!"_ZTSSt6vectorIjSaIjEE", !35, i64 0}
!35 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!38 = !{!10, !13, i64 424}
!39 = !{!10, !13, i64 288}
!40 = !{!10, !13, i64 296}
!41 = !{!13, !13, i64 0}
!42 = !{!10, !13, i64 268}
!43 = !{!10, !6, i64 56}
!44 = !{!10, !13, i64 276}
!45 = !{!10, !6, i64 48}
!46 = !{!10, !25, i64 219}
!47 = !{i8 0, i8 2}
!48 = !{}
!49 = !{!10, !25, i64 216}
!50 = !{!10, !13, i64 112}
!51 = !{!25, !25, i64 0}
!52 = distinct !{!52, !53}
!53 = !{!"llvm.loop.mustprogress"}
!54 = distinct !{!54, !53}
!55 = distinct !{!55, !53}
!56 = distinct !{!56, !53}
!57 = !{!10, !13, i64 264}
!58 = !{!10, !13, i64 256}
!59 = !{!10, !13, i64 260}
!60 = !{!61, !61, i64 0}
!61 = !{!"float", !7, i64 0}
!62 = !{!10, !13, i64 428}
!63 = !{!10, !6, i64 192}
!64 = !{!10, !13, i64 336}
!65 = !{!10, !13, i64 308}
!66 = !{!10, !13, i64 304}
!67 = distinct !{!67, !53}
!68 = distinct !{!68, !53}
!69 = distinct !{!69, !53}
!70 = distinct !{!70, !53}
!71 = distinct !{!71, !53}
!72 = distinct !{!72, !53}
!73 = distinct !{!73, !53}
!74 = distinct !{!74, !53}
!75 = distinct !{!75, !53}
!76 = distinct !{!76, !53}
!77 = !{!10, !13, i64 228}
!78 = !{!10, !13, i64 224}
!79 = !{!10, !13, i64 232}
!80 = !{!10, !13, i64 284}
!81 = distinct !{!81, !53}
!82 = distinct !{!82, !53}
!83 = distinct !{!83, !53}
!84 = distinct !{!84, !53}
!85 = distinct !{!85, !53}
!86 = distinct !{!86, !53}
!87 = distinct !{!87, !53}
!88 = distinct !{!88, !53}
!89 = distinct !{!89, !53}
!90 = distinct !{!90, !53}
!91 = !{!10, !13, i64 272}
!92 = !{!10, !13, i64 280}
!93 = !{!10, !13, i64 432}
!94 = !{!10, !6, i64 200}
!95 = !{!10, !13, i64 320}
!96 = distinct !{!96, !53}
!97 = distinct !{!97, !53}
!98 = distinct !{!98, !53}
!99 = distinct !{!99, !53}
!100 = distinct !{!100, !53}
!101 = !{!10, !13, i64 252}
!102 = !{!10, !13, i64 248}
!103 = !{!10, !13, i64 244}
!104 = !{!10, !13, i64 236}
!105 = !{!10, !13, i64 240}
!106 = !{!10, !25, i64 218}
!107 = !{!10, !6, i64 136}
!108 = !{!10, !6, i64 400}
!109 = !{!110, !13, i64 0}
!110 = !{!"_ZTS13VNAT_Register", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !13, i64 32, !13, i64 36, !13, i64 40, !13, i64 44, !13, i64 48, !13, i64 52, !13, i64 56, !13, i64 60, !13, i64 64, !13, i64 68, !13, i64 72, !13, i64 76, !13, i64 80, !13, i64 84, !13, i64 88, !13, i64 92, !13, i64 96, !13, i64 100, !6, i64 104, !6, i64 112, !25, i64 120, !25, i64 121}
!111 = !{!110, !13, i64 8}
!112 = !{!110, !25, i64 121}
!113 = !{!10, !6, i64 344}
!114 = !{!10, !13, i64 440}
!115 = !{!10, !6, i64 208}
!116 = !{!110, !13, i64 100}
!117 = !{!110, !13, i64 96}
!118 = distinct !{!118, !53}
!119 = !{!10, !13, i64 436}
!120 = !{!10, !13, i64 292}
!121 = !{!10, !25, i64 221}
!122 = distinct !{!122, !53}


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

%"class.std::vector.19" = type { %"struct.std::_Vector_base.20" }
%"struct.std::_Vector_base.20" = type { %"struct.std::_Vector_base<DataPackage *, std::allocator<DataPackage *>>::_Vector_impl" }
%"struct.std::_Vector_base<DataPackage *, std::allocator<DataPackage *>>::_Vector_impl" = type { %"struct.std::_Vector_base<DataPackage *, std::allocator<DataPackage *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DataPackage *, std::allocator<DataPackage *>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.1 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [17 x i8], align 1
@__PRETTY_FUNCTION__._ZN8SDMemory5cycleEv = external hidden unnamed_addr constant [31 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8DNNLayer5get_GEv(ptr noundef nonnull align 8 dereferenceable(84)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN13VNAT_Register6updateEv(ptr noundef nonnull align 8 dereferenceable(122)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41)) local_unnamed_addr #0 align 2

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #3

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #4

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) local_unnamed_addr #4

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8DNNLayer5get_REv(ptr noundef nonnull align 8 dereferenceable(84)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8DNNLayer5get_SEv(ptr noundef nonnull align 8 dereferenceable(84)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41)) local_unnamed_addr #0 align 2

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znam(i64 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8DNNLayer5get_YEv(ptr noundef nonnull align 8 dereferenceable(84)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8SDMemory5cycleEv(ptr noundef nonnull align 8 dereferenceable(568) %0) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::vector.19", align 8
  %3 = alloca %"class.std::vector.19", align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2) #9
  call void @_ZNSt6vectorIP11DataPackageSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #9
  call void @_ZNSt6vectorIP11DataPackageSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #9
  %4 = getelementptr inbounds i8, ptr %0, i64 408
  %5 = load i32, ptr %4, align 8, !tbaa !5
  %6 = add i32 %5, 1
  store i32 %6, ptr %4, align 8, !tbaa !5
  %7 = getelementptr inbounds i8, ptr %0, i64 424
  %8 = load i32, ptr %7, align 8, !tbaa !37
  %9 = add i32 %8, 1
  store i32 %9, ptr %7, align 8, !tbaa !37
  %10 = getelementptr inbounds i8, ptr %0, i64 288
  %11 = load i32, ptr %10, align 8, !tbaa !38
  %12 = getelementptr inbounds i8, ptr %0, i64 296
  %13 = load i32, ptr %12, align 8, !tbaa !39
  %14 = getelementptr inbounds i8, ptr %0, i64 268
  %15 = load i32, ptr %14, align 4, !tbaa !40
  %16 = getelementptr inbounds i8, ptr %0, i64 56
  %17 = load ptr, ptr %16, align 8, !tbaa !41
  %18 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %17)
  %19 = getelementptr inbounds i8, ptr %0, i64 276
  %20 = load i32, ptr %19, align 4, !tbaa !42
  %21 = load ptr, ptr %16, align 8, !tbaa !41
  %22 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %21)
  %23 = getelementptr inbounds i8, ptr %0, i64 48
  %24 = load ptr, ptr %23, align 8, !tbaa !43
  %25 = call noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84) %24)
  %26 = load ptr, ptr %16, align 8, !tbaa !41
  %27 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %26)
  %28 = getelementptr inbounds i8, ptr %0, i64 219
  %29 = load i8, ptr %28, align 1, !tbaa !44, !range !45, !noundef !46
  %30 = trunc nuw i8 %29 to i1
  br i1 %30, label %912, label %31

31:                                               ; preds = %1
  %32 = mul i32 %18, %15
  %33 = mul i32 %32, %25
  %34 = mul i32 %22, %20
  %35 = mul i32 %34, %27
  %36 = add i32 %35, %33
  %37 = udiv i32 %11, %13
  %.not = icmp ugt i32 %36, %37
  br i1 %.not, label %912, label %38

38:                                               ; preds = %31
  %39 = load ptr, ptr %16, align 8, !tbaa !41
  %40 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %39)
  %41 = load ptr, ptr %16, align 8, !tbaa !41
  %42 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %41)
  %43 = mul i32 %42, %40
  %44 = load ptr, ptr %16, align 8, !tbaa !41
  %45 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %44)
  %46 = mul i32 %43, %45
  %47 = load ptr, ptr %16, align 8, !tbaa !41
  %48 = call noundef zeroext i1 @_ZNK4Tile19get_folding_enabledEv(ptr noundef nonnull align 4 dereferenceable(41) %47)
  %spec.select = zext i1 %48 to i32
  %spec.select380 = add i32 %46, %spec.select
  %49 = getelementptr inbounds i8, ptr %0, i64 216
  %50 = load i8, ptr %49, align 8, !tbaa !47, !range !45, !noundef !46
  %51 = trunc nuw i8 %50 to i1
  %52 = load ptr, ptr %16, align 8, !tbaa !41
  br i1 %51, label %408, label %55

53:                                               ; preds = %.loopexit, %913, %912
  %54 = landingpad { ptr, i32 }
          cleanup
  br label %1017

55:                                               ; preds = %38
  %56 = call noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %52)
  %57 = load ptr, ptr %16, align 8, !tbaa !41
  %58 = call noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %57)
  %59 = mul i32 %58, %56
  %60 = load ptr, ptr %16, align 8, !tbaa !41
  %61 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %60)
  %62 = mul i32 %59, %61
  %63 = icmp ugt i32 %62, 1
  %64 = load ptr, ptr %16, align 8, !tbaa !41
  %65 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %64)
  %.not537 = icmp eq i32 %65, 0
  br i1 %63, label %.preheader405, label %.preheader411

.preheader411:                                    ; preds = %55
  br i1 %.not537, label %.loopexit406, label %.preheader410.lr.ph

.preheader410.lr.ph:                              ; preds = %.preheader411
  %66 = getelementptr inbounds i8, ptr %0, i64 264
  %67 = getelementptr inbounds i8, ptr %0, i64 256
  %68 = getelementptr inbounds i8, ptr %0, i64 260
  %69 = getelementptr inbounds i8, ptr %0, i64 428
  %70 = getelementptr inbounds i8, ptr %0, i64 192
  %71 = getelementptr inbounds i8, ptr %0, i64 336
  %72 = getelementptr inbounds i8, ptr %0, i64 308
  %73 = getelementptr inbounds i8, ptr %0, i64 304
  br label %.preheader410

.preheader405:                                    ; preds = %55
  br i1 %.not537, label %.loopexit406, label %.lr.ph446

.lr.ph446:                                        ; preds = %.preheader405
  %74 = getelementptr inbounds i8, ptr %0, i64 112
  %75 = getelementptr inbounds i8, ptr %0, i64 264
  %76 = getelementptr inbounds i8, ptr %0, i64 256
  %77 = getelementptr inbounds i8, ptr %0, i64 260
  %78 = getelementptr inbounds i8, ptr %0, i64 428
  %79 = getelementptr inbounds i8, ptr %0, i64 192
  %80 = getelementptr inbounds i8, ptr %0, i64 336
  %81 = getelementptr inbounds i8, ptr %0, i64 308
  %82 = getelementptr inbounds i8, ptr %0, i64 304
  br label %83

83:                                               ; preds = %.lr.ph446, %._crit_edge444
  %.0300445 = phi i32 [ 0, %.lr.ph446 ], [ %95, %._crit_edge444 ]
  %84 = load ptr, ptr %16, align 8, !tbaa !41
  %85 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %84)
  %86 = mul i32 %85, %.0300445
  %87 = load ptr, ptr %16, align 8, !tbaa !41
  %88 = call noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %87)
  %89 = mul i32 %86, %88
  %90 = load ptr, ptr %16, align 8, !tbaa !41
  %91 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %90)
  %92 = mul i32 %89, %91
  %93 = load ptr, ptr %16, align 8, !tbaa !41
  %94 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %93)
  %.not538 = icmp eq i32 %94, 0
  br i1 %.not538, label %._crit_edge444, label %.lr.ph443

._crit_edge444:                                   ; preds = %._crit_edge440, %83
  %95 = add nuw i32 %.0300445, 1
  %96 = load ptr, ptr %16, align 8, !tbaa !41
  %97 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %96)
  %98 = icmp ult i32 %95, %97
  br i1 %98, label %83, label %.loopexit406, !llvm.loop !48

.lr.ph443:                                        ; preds = %83, %._crit_edge440
  %.0301441 = phi i32 [ %110, %._crit_edge440 ], [ 0, %83 ]
  %99 = load ptr, ptr %16, align 8, !tbaa !41
  %100 = call noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %99)
  %101 = load ptr, ptr %16, align 8, !tbaa !41
  %102 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %101)
  %103 = load ptr, ptr %16, align 8, !tbaa !41
  %104 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %103)
  %.not539 = icmp eq i32 %104, 0
  br i1 %.not539, label %._crit_edge440, label %.preheader404.lr.ph

.preheader404.lr.ph:                              ; preds = %.lr.ph443
  %105 = mul i32 %100, %.0301441
  %106 = mul i32 %105, %102
  %107 = add i32 %106, %92
  br label %.preheader404

.preheader404:                                    ; preds = %.preheader404.lr.ph, %._crit_edge438
  %.0303439 = phi i32 [ 0, %.preheader404.lr.ph ], [ %116, %._crit_edge438 ]
  %108 = load ptr, ptr %16, align 8, !tbaa !41
  %109 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %108)
  %.not540 = icmp eq i32 %109, 0
  br i1 %.not540, label %._crit_edge438, label %.preheader403

._crit_edge440:                                   ; preds = %._crit_edge438, %.lr.ph443
  %110 = add nuw i32 %.0301441, 1
  %111 = load ptr, ptr %16, align 8, !tbaa !41
  %112 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %111)
  %113 = icmp ult i32 %110, %112
  br i1 %113, label %.lr.ph443, label %._crit_edge444, !llvm.loop !50

.preheader403:                                    ; preds = %.preheader404, %._crit_edge436
  %.0305437 = phi i32 [ %120, %._crit_edge436 ], [ 0, %.preheader404 ]
  %114 = load ptr, ptr %16, align 8, !tbaa !41
  %115 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %114)
  %.not541 = icmp eq i32 %115, 0
  br i1 %.not541, label %._crit_edge436, label %.lr.ph435

._crit_edge438:                                   ; preds = %._crit_edge436, %.preheader404
  %116 = add nuw i32 %.0303439, 1
  %117 = load ptr, ptr %16, align 8, !tbaa !41
  %118 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %117)
  %119 = icmp ult i32 %116, %118
  br i1 %119, label %.preheader404, label %._crit_edge440, !llvm.loop !51

._crit_edge436:                                   ; preds = %255, %.preheader403
  %120 = add nuw i32 %.0305437, 1
  %121 = load ptr, ptr %16, align 8, !tbaa !41
  %122 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %121)
  %123 = icmp ult i32 %120, %122
  br i1 %123, label %.preheader403, label %._crit_edge438, !llvm.loop !52

.lr.ph435:                                        ; preds = %.preheader403, %255
  %.0309434 = phi i32 [ %256, %255 ], [ 0, %.preheader403 ]
  %124 = load i32, ptr %74, align 8, !tbaa !53
  %125 = zext i32 %124 to i64
  %126 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %125) #10
          to label %.preheader402 unwind label %130

.preheader402:                                    ; preds = %.lr.ph435
  %.not542 = icmp eq i32 %124, 0
  br i1 %.not542, label %.preheader401, label %.lr.ph425.preheader

.lr.ph425.preheader:                              ; preds = %.preheader402
  call void @llvm.memset.p0.i64(ptr nonnull align 1 %126, i8 0, i64 %125, i1 false), !tbaa !54
  br label %.preheader401

.preheader401:                                    ; preds = %.lr.ph425.preheader, %.preheader402
  %127 = load ptr, ptr %16, align 8, !tbaa !41
  %128 = call noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %127)
  %.not543 = icmp eq i32 %128, 0
  br i1 %.not543, label %._crit_edge433, label %.lr.ph432

.lr.ph432:                                        ; preds = %.preheader401
  %129 = add nuw i32 %.0309434, %spec.select
  br label %155

130:                                              ; preds = %.lr.ph435
  %131 = landingpad { ptr, i32 }
          cleanup
  br label %1017

._crit_edge433:                                   ; preds = %._crit_edge430, %.preheader401
  %132 = load i32, ptr %14, align 4, !tbaa !40
  %133 = load ptr, ptr %16, align 8, !tbaa !41
  %134 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %133)
  %135 = mul i32 %134, %132
  %136 = load i32, ptr %19, align 4, !tbaa !42
  %137 = load ptr, ptr %16, align 8, !tbaa !41
  %138 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %137)
  %139 = mul i32 %138, %136
  %140 = load i32, ptr %75, align 8, !tbaa !55
  %141 = load ptr, ptr %16, align 8, !tbaa !41
  %142 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %141)
  %143 = mul i32 %142, %140
  %144 = load i32, ptr %76, align 8, !tbaa !56
  %145 = load ptr, ptr %16, align 8, !tbaa !41
  %146 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %145)
  %147 = mul i32 %146, %144
  %148 = load i32, ptr %77, align 4, !tbaa !57
  %149 = load ptr, ptr %16, align 8, !tbaa !41
  %150 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %149)
  %151 = add i32 %147, %.0305437
  %152 = load ptr, ptr %23, align 8, !tbaa !43
  %153 = call noundef i32 @_ZNK8DNNLayer5get_REv(ptr noundef nonnull align 8 dereferenceable(84) %152)
  %154 = icmp ult i32 %151, %153
  br i1 %154, label %205, label %242

155:                                              ; preds = %.lr.ph432, %._crit_edge430
  %.0311431 = phi i32 [ 0, %.lr.ph432 ], [ %173, %._crit_edge430 ]
  %156 = load ptr, ptr %16, align 8, !tbaa !41
  %157 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %156)
  %158 = load ptr, ptr %16, align 8, !tbaa !41
  %159 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %158)
  %160 = load ptr, ptr %16, align 8, !tbaa !41
  %161 = call noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %160)
  %162 = load ptr, ptr %16, align 8, !tbaa !41
  %163 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %162)
  %164 = load ptr, ptr %16, align 8, !tbaa !41
  %165 = call noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %164)
  %.not544 = icmp eq i32 %165, 0
  br i1 %.not544, label %._crit_edge430, label %.preheader400.lr.ph

.preheader400.lr.ph:                              ; preds = %155
  %166 = mul i32 %157, %.0311431
  %167 = mul i32 %166, %159
  %168 = mul i32 %167, %161
  %169 = mul i32 %168, %163
  %170 = add i32 %107, %169
  br label %.preheader400

.preheader400:                                    ; preds = %.preheader400.lr.ph, %._crit_edge428
  %.0312429 = phi i32 [ 0, %.preheader400.lr.ph ], [ %177, %._crit_edge428 ]
  %171 = load ptr, ptr %16, align 8, !tbaa !41
  %172 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %171)
  %.not545 = icmp eq i32 %172, 0
  br i1 %.not545, label %._crit_edge428, label %.lr.ph427

._crit_edge430:                                   ; preds = %._crit_edge428, %155
  %173 = add nuw nsw i32 %.0311431, 1
  %174 = load ptr, ptr %16, align 8, !tbaa !41
  %175 = call noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %174)
  %176 = icmp ult i32 %173, %175
  br i1 %176, label %155, label %._crit_edge433, !llvm.loop !58

._crit_edge428:                                   ; preds = %.lr.ph427, %.preheader400
  %177 = add nuw nsw i32 %.0312429, 1
  %178 = load ptr, ptr %16, align 8, !tbaa !41
  %179 = call noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %178)
  %180 = icmp ult i32 %177, %179
  br i1 %180, label %.preheader400, label %._crit_edge430, !llvm.loop !59

.lr.ph427:                                        ; preds = %.preheader400, %.lr.ph427
  %.0313426 = phi i32 [ %201, %.lr.ph427 ], [ 0, %.preheader400 ]
  %181 = load ptr, ptr %16, align 8, !tbaa !41
  %182 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %181)
  %183 = mul i32 %182, %.0312429
  %184 = add i32 %170, %.0313426
  %185 = add i32 %184, %183
  %186 = mul i32 %185, %spec.select380
  %187 = load ptr, ptr %16, align 8, !tbaa !41
  %188 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %187)
  %189 = mul i32 %188, %.0303439
  %190 = load ptr, ptr %16, align 8, !tbaa !41
  %191 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %190)
  %192 = mul i32 %189, %191
  %193 = load ptr, ptr %16, align 8, !tbaa !41
  %194 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %193)
  %195 = mul i32 %194, %.0305437
  %196 = add i32 %129, %186
  %197 = add i32 %196, %192
  %198 = add i32 %197, %195
  %199 = zext i32 %198 to i64
  %200 = getelementptr inbounds i8, ptr %126, i64 %199
  store i8 1, ptr %200, align 1, !tbaa !54
  %201 = add nuw nsw i32 %.0313426, 1
  %202 = load ptr, ptr %16, align 8, !tbaa !41
  %203 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %202)
  %204 = icmp ult i32 %201, %203
  br i1 %204, label %.lr.ph427, label %._crit_edge428, !llvm.loop !60

205:                                              ; preds = %._crit_edge433
  %206 = mul i32 %150, %148
  %207 = add i32 %206, %.0309434
  %208 = load ptr, ptr %23, align 8, !tbaa !43
  %209 = call noundef i32 @_ZNK8DNNLayer5get_SEv(ptr noundef nonnull align 8 dereferenceable(84) %208)
  %210 = icmp ult i32 %207, %209
  br i1 %210, label %211, label %242

211:                                              ; preds = %205
  %212 = add i32 %143, %.0303439
  %213 = load ptr, ptr %23, align 8, !tbaa !43
  %214 = call noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %213)
  %215 = icmp ult i32 %212, %214
  br i1 %215, label %216, label %242

216:                                              ; preds = %211
  %217 = add i32 %139, %.0301441
  %218 = load ptr, ptr %23, align 8, !tbaa !43
  %219 = call noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84) %218)
  %220 = icmp ult i32 %217, %219
  br i1 %220, label %221, label %242

221:                                              ; preds = %216
  %222 = load i32, ptr %78, align 4, !tbaa !61
  %223 = add i32 %222, 1
  store i32 %223, ptr %78, align 4, !tbaa !61
  %224 = load ptr, ptr %79, align 8, !tbaa !62
  %225 = add i32 %135, %.0300445
  %226 = load i32, ptr %80, align 8, !tbaa !63
  %227 = mul i32 %226, %225
  %228 = load i32, ptr %81, align 4, !tbaa !64
  %229 = mul i32 %228, %217
  %230 = load i32, ptr %82, align 8, !tbaa !65
  %231 = mul i32 %230, %151
  %232 = load ptr, ptr %23, align 8, !tbaa !43
  %233 = call noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %232)
  %234 = mul i32 %233, %207
  %235 = add i32 %227, %212
  %236 = add i32 %235, %229
  %237 = add i32 %236, %231
  %238 = add i32 %237, %234
  %239 = zext i32 %238 to i64
  %240 = getelementptr inbounds float, ptr %224, i64 %239
  %241 = load float, ptr %240, align 4, !tbaa !66
  br label %242

242:                                              ; preds = %221, %216, %211, %205, %._crit_edge433
  %.0314 = phi float [ %241, %221 ], [ 0.000000e+00, %216 ], [ 0.000000e+00, %211 ], [ 0.000000e+00, %205 ], [ 0.000000e+00, %._crit_edge433 ]
  %243 = invoke noalias noundef nonnull dereferenceable(64) ptr @_Znwm(i64 noundef 64) #10
          to label %244 unwind label %260

244:                                              ; preds = %242
  %245 = load i32, ptr %74, align 8, !tbaa !53
  invoke void @_ZN11DataPackageC1Emf9operand_tj9traffic_tPbj(ptr noundef nonnull align 8 dereferenceable(64) %243, i64 noundef 4, float noundef %.0314, i32 noundef 0, i32 noundef 0, i32 noundef 1, ptr noundef nonnull %126, i32 noundef %245)
          to label %246 unwind label %262

246:                                              ; preds = %244
  %247 = load ptr, ptr %23, align 8, !tbaa !43
  %248 = call noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84) %247)
  %249 = mul i32 %248, %135
  %250 = load ptr, ptr %16, align 8, !tbaa !41
  %251 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %250)
  %252 = mul i32 %251, %139
  %253 = add i32 %252, %249
  invoke void @_ZN11DataPackage13setIterationKEj(ptr noundef nonnull align 8 dereferenceable(64) %243, i32 noundef %253)
          to label %254 unwind label %260

254:                                              ; preds = %246
  invoke void @_ZN8SDMemory23sendPackageToInputFifosEP11DataPackage(ptr noundef nonnull align 8 dereferenceable(568) %0, ptr noundef nonnull %243)
          to label %255 unwind label %260

255:                                              ; preds = %254
  %256 = add nuw i32 %.0309434, 1
  %257 = load ptr, ptr %16, align 8, !tbaa !41
  %258 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %257)
  %259 = icmp ult i32 %256, %258
  br i1 %259, label %.lr.ph435, label %._crit_edge436, !llvm.loop !68

260:                                              ; preds = %254, %246, %242
  %261 = landingpad { ptr, i32 }
          cleanup
  br label %1017

262:                                              ; preds = %244
  %263 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %243, i64 noundef 64) #11
  br label %1017

.preheader410:                                    ; preds = %.preheader410.lr.ph, %._crit_edge422
  %.0315423 = phi i32 [ 0, %.preheader410.lr.ph ], [ %268, %._crit_edge422 ]
  %264 = load ptr, ptr %16, align 8, !tbaa !41
  %265 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %264)
  %.not533 = icmp eq i32 %265, 0
  br i1 %.not533, label %._crit_edge422, label %.preheader409

.preheader409:                                    ; preds = %.preheader410, %._crit_edge420
  %.0316421 = phi i32 [ %274, %._crit_edge420 ], [ 0, %.preheader410 ]
  %266 = load ptr, ptr %16, align 8, !tbaa !41
  %267 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %266)
  %.not534 = icmp eq i32 %267, 0
  br i1 %.not534, label %._crit_edge420, label %.preheader408

._crit_edge422:                                   ; preds = %._crit_edge420, %.preheader410
  %268 = add nuw i32 %.0315423, 1
  %269 = load ptr, ptr %16, align 8, !tbaa !41
  %270 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %269)
  %271 = icmp ult i32 %268, %270
  br i1 %271, label %.preheader410, label %.loopexit406, !llvm.loop !69

.preheader408:                                    ; preds = %.preheader409, %._crit_edge418
  %.0317419 = phi i32 [ %280, %._crit_edge418 ], [ 0, %.preheader409 ]
  %272 = load ptr, ptr %16, align 8, !tbaa !41
  %273 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %272)
  %.not535 = icmp eq i32 %273, 0
  br i1 %.not535, label %._crit_edge418, label %.preheader407

._crit_edge420:                                   ; preds = %._crit_edge418, %.preheader409
  %274 = add nuw i32 %.0316421, 1
  %275 = load ptr, ptr %16, align 8, !tbaa !41
  %276 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %275)
  %277 = icmp ult i32 %274, %276
  br i1 %277, label %.preheader409, label %._crit_edge422, !llvm.loop !70

.preheader407:                                    ; preds = %.preheader408, %._crit_edge
  %.0319417 = phi i32 [ %284, %._crit_edge ], [ 0, %.preheader408 ]
  %278 = load ptr, ptr %16, align 8, !tbaa !41
  %279 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %278)
  %.not536 = icmp eq i32 %279, 0
  br i1 %.not536, label %._crit_edge, label %.lr.ph

._crit_edge418:                                   ; preds = %._crit_edge, %.preheader408
  %280 = add nuw i32 %.0317419, 1
  %281 = load ptr, ptr %16, align 8, !tbaa !41
  %282 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %281)
  %283 = icmp ult i32 %280, %282
  br i1 %283, label %.preheader408, label %._crit_edge420, !llvm.loop !71

._crit_edge:                                      ; preds = %378, %.preheader407
  %284 = add nuw i32 %.0319417, 1
  %285 = load ptr, ptr %16, align 8, !tbaa !41
  %286 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %285)
  %287 = icmp ult i32 %284, %286
  br i1 %287, label %.preheader407, label %._crit_edge418, !llvm.loop !72

.lr.ph:                                           ; preds = %.preheader407, %378
  %.0321416 = phi i32 [ %379, %378 ], [ 0, %.preheader407 ]
  %288 = load i32, ptr %14, align 4, !tbaa !40
  %289 = load ptr, ptr %16, align 8, !tbaa !41
  %290 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %289)
  %291 = mul i32 %290, %288
  %292 = load i32, ptr %19, align 4, !tbaa !42
  %293 = load ptr, ptr %16, align 8, !tbaa !41
  %294 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %293)
  %295 = mul i32 %294, %292
  %296 = load i32, ptr %66, align 8, !tbaa !55
  %297 = load ptr, ptr %16, align 8, !tbaa !41
  %298 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %297)
  %299 = mul i32 %298, %296
  %300 = load i32, ptr %67, align 8, !tbaa !56
  %301 = load ptr, ptr %16, align 8, !tbaa !41
  %302 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %301)
  %303 = mul i32 %302, %300
  %304 = load i32, ptr %68, align 4, !tbaa !57
  %305 = load ptr, ptr %16, align 8, !tbaa !41
  %306 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %305)
  %307 = add i32 %303, %.0319417
  %308 = load ptr, ptr %23, align 8, !tbaa !43
  %309 = call noundef i32 @_ZNK8DNNLayer5get_REv(ptr noundef nonnull align 8 dereferenceable(84) %308)
  %310 = icmp ult i32 %307, %309
  br i1 %310, label %311, label %348

311:                                              ; preds = %.lr.ph
  %312 = mul i32 %306, %304
  %313 = add i32 %312, %.0321416
  %314 = load ptr, ptr %23, align 8, !tbaa !43
  %315 = call noundef i32 @_ZNK8DNNLayer5get_SEv(ptr noundef nonnull align 8 dereferenceable(84) %314)
  %316 = icmp ult i32 %313, %315
  br i1 %316, label %317, label %348

317:                                              ; preds = %311
  %318 = add i32 %299, %.0317419
  %319 = load ptr, ptr %23, align 8, !tbaa !43
  %320 = call noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %319)
  %321 = icmp ult i32 %318, %320
  br i1 %321, label %322, label %348

322:                                              ; preds = %317
  %323 = add i32 %295, %.0316421
  %324 = load ptr, ptr %23, align 8, !tbaa !43
  %325 = call noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84) %324)
  %326 = icmp ult i32 %323, %325
  br i1 %326, label %327, label %348

327:                                              ; preds = %322
  %328 = load i32, ptr %69, align 4, !tbaa !61
  %329 = add i32 %328, 1
  store i32 %329, ptr %69, align 4, !tbaa !61
  %330 = load ptr, ptr %70, align 8, !tbaa !62
  %331 = add i32 %291, %.0315423
  %332 = load i32, ptr %71, align 8, !tbaa !63
  %333 = mul i32 %332, %331
  %334 = load i32, ptr %72, align 4, !tbaa !64
  %335 = mul i32 %334, %323
  %336 = load i32, ptr %73, align 8, !tbaa !65
  %337 = mul i32 %336, %307
  %338 = load ptr, ptr %23, align 8, !tbaa !43
  %339 = call noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %338)
  %340 = mul i32 %339, %313
  %341 = add i32 %333, %318
  %342 = add i32 %341, %335
  %343 = add i32 %342, %337
  %344 = add i32 %343, %340
  %345 = zext i32 %344 to i64
  %346 = getelementptr inbounds float, ptr %330, i64 %345
  %347 = load float, ptr %346, align 4, !tbaa !66
  br label %348

348:                                              ; preds = %327, %322, %317, %311, %.lr.ph
  %.0323 = phi float [ %347, %327 ], [ 0.000000e+00, %322 ], [ 0.000000e+00, %317 ], [ 0.000000e+00, %311 ], [ 0.000000e+00, %.lr.ph ]
  %349 = load ptr, ptr %16, align 8, !tbaa !41
  %350 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %349)
  %351 = load ptr, ptr %16, align 8, !tbaa !41
  %352 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %351)
  %353 = load ptr, ptr %16, align 8, !tbaa !41
  %354 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %353)
  %355 = load ptr, ptr %16, align 8, !tbaa !41
  %356 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %355)
  %357 = invoke noalias noundef nonnull dereferenceable(64) ptr @_Znwm(i64 noundef 64) #10
          to label %358 unwind label %383

358:                                              ; preds = %348
  %359 = mul i32 %350, %.0315423
  %360 = add i32 %359, %.0316421
  %361 = mul i32 %360, %spec.select380
  %362 = mul i32 %352, %.0317419
  %363 = mul i32 %362, %354
  %364 = mul i32 %356, %.0319417
  %365 = add nuw i32 %.0321416, %spec.select
  %366 = add i32 %365, %361
  %367 = add i32 %366, %363
  %368 = add i32 %367, %364
  invoke void @_ZN11DataPackageC1Emf9operand_tj9traffic_tj(ptr noundef nonnull align 8 dereferenceable(64) %357, i64 noundef 4, float noundef %.0323, i32 noundef 0, i32 noundef 0, i32 noundef 2, i32 noundef %368)
          to label %369 unwind label %385

369:                                              ; preds = %358
  %370 = load ptr, ptr %23, align 8, !tbaa !43
  %371 = call noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84) %370)
  %372 = mul i32 %371, %291
  %373 = load ptr, ptr %16, align 8, !tbaa !41
  %374 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %373)
  %375 = mul i32 %374, %295
  %376 = add i32 %375, %372
  invoke void @_ZN11DataPackage13setIterationKEj(ptr noundef nonnull align 8 dereferenceable(64) %357, i32 noundef %376)
          to label %377 unwind label %383

377:                                              ; preds = %369
  invoke void @_ZN8SDMemory23sendPackageToInputFifosEP11DataPackage(ptr noundef nonnull align 8 dereferenceable(568) %0, ptr noundef nonnull %357)
          to label %378 unwind label %383

378:                                              ; preds = %377
  %379 = add nuw i32 %.0321416, 1
  %380 = load ptr, ptr %16, align 8, !tbaa !41
  %381 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %380)
  %382 = icmp ult i32 %379, %381
  br i1 %382, label %.lr.ph, label %._crit_edge, !llvm.loop !73

383:                                              ; preds = %377, %369, %348
  %384 = landingpad { ptr, i32 }
          cleanup
  br label %1017

385:                                              ; preds = %358
  %386 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %357, i64 noundef 64) #11
  br label %1017

.loopexit406:                                     ; preds = %._crit_edge422, %._crit_edge444, %.preheader411, %.preheader405
  %387 = getelementptr inbounds i8, ptr %0, i64 260
  %388 = load i32, ptr %387, align 4, !tbaa !57
  %389 = add i32 %388, 1
  store i32 %389, ptr %387, align 4, !tbaa !57
  %390 = getelementptr inbounds i8, ptr %0, i64 228
  %391 = load i32, ptr %390, align 4, !tbaa !74
  %392 = icmp eq i32 %389, %391
  br i1 %392, label %393, label %912

393:                                              ; preds = %.loopexit406
  %394 = getelementptr inbounds i8, ptr %0, i64 256
  %395 = load i32, ptr %394, align 8, !tbaa !56
  %396 = add i32 %395, 1
  store i32 %396, ptr %394, align 8, !tbaa !56
  store i32 0, ptr %387, align 4, !tbaa !57
  %397 = getelementptr inbounds i8, ptr %0, i64 224
  %398 = load i32, ptr %397, align 8, !tbaa !75
  %399 = icmp eq i32 %396, %398
  br i1 %399, label %400, label %912

400:                                              ; preds = %393
  %401 = getelementptr inbounds i8, ptr %0, i64 264
  %402 = load i32, ptr %401, align 8, !tbaa !55
  %403 = add i32 %402, 1
  store i32 %403, ptr %401, align 8, !tbaa !55
  store i32 0, ptr %394, align 8, !tbaa !56
  %404 = getelementptr inbounds i8, ptr %0, i64 232
  %405 = load i32, ptr %404, align 8, !tbaa !76
  %406 = icmp eq i32 %403, %405
  br i1 %406, label %407, label %912

407:                                              ; preds = %400
  store i32 0, ptr %401, align 8, !tbaa !55
  store i8 1, ptr %49, align 8, !tbaa !47
  br label %912

408:                                              ; preds = %38
  %409 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %52)
  %410 = load ptr, ptr %16, align 8, !tbaa !41
  %411 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %410)
  %412 = add i32 %411, -1
  %413 = load ptr, ptr %23, align 8, !tbaa !43
  %414 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %413)
  %415 = mul i32 %414, %412
  %416 = add i32 %415, %409
  %417 = load ptr, ptr %16, align 8, !tbaa !41
  %418 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %417)
  %419 = load ptr, ptr %16, align 8, !tbaa !41
  %420 = call noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %419)
  %421 = add i32 %420, -1
  %422 = load ptr, ptr %23, align 8, !tbaa !43
  %423 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %422)
  %424 = mul i32 %423, %421
  %425 = add i32 %424, %418
  %426 = load ptr, ptr %16, align 8, !tbaa !41
  %427 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %426)
  %428 = load ptr, ptr %23, align 8, !tbaa !43
  %429 = call noundef i32 @_ZNK8DNNLayer5get_SEv(ptr noundef nonnull align 8 dereferenceable(84) %428)
  %430 = add i32 %427, -1
  %431 = add i32 %430, %429
  %432 = load ptr, ptr %16, align 8, !tbaa !41
  %433 = call noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %432)
  %434 = load ptr, ptr %23, align 8, !tbaa !43
  %435 = call noundef i32 @_ZNK8DNNLayer5get_REv(ptr noundef nonnull align 8 dereferenceable(84) %434)
  %436 = add i32 %433, -1
  %437 = add i32 %436, %435
  %438 = load ptr, ptr %16, align 8, !tbaa !41
  %439 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %438)
  %440 = icmp eq i32 %439, 1
  br i1 %440, label %441, label %459

441:                                              ; preds = %408
  %442 = load ptr, ptr %16, align 8, !tbaa !41
  %443 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %442)
  %444 = icmp ugt i32 %443, 1
  br i1 %444, label %445, label %459

445:                                              ; preds = %441
  %446 = load ptr, ptr %23, align 8, !tbaa !43
  %447 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %446)
  %448 = icmp eq i32 %447, 1
  br i1 %448, label %449, label %459

449:                                              ; preds = %445
  %450 = load ptr, ptr %23, align 8, !tbaa !43
  %451 = call noundef i32 @_ZNK8DNNLayer5get_SEv(ptr noundef nonnull align 8 dereferenceable(84) %450)
  %452 = load ptr, ptr %16, align 8, !tbaa !41
  %453 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %452)
  %454 = urem i32 %451, %453
  %455 = icmp ne i32 %454, 0
  %456 = getelementptr inbounds i8, ptr %0, i64 284
  %457 = load i32, ptr %456, align 4
  %.not357 = icmp eq i32 %457, 0
  %or.cond388 = select i1 %455, i1 true, i1 %.not357
  %458 = add i32 %416, -1
  %spec.select618 = select i1 %or.cond388, i32 0, i32 %458
  br label %459

459:                                              ; preds = %449, %445, %441, %408
  %.0326 = phi i32 [ 0, %445 ], [ 0, %441 ], [ 0, %408 ], [ %spec.select618, %449 ]
  %.not546 = icmp eq i32 %425, 0
  br i1 %.not546, label %._crit_edge505, label %.preheader399.lr.ph

.preheader399.lr.ph:                              ; preds = %459
  %460 = icmp ult i32 %.0326, %416
  %461 = getelementptr inbounds i8, ptr %0, i64 112
  %462 = getelementptr inbounds i8, ptr %0, i64 272
  %463 = getelementptr inbounds i8, ptr %0, i64 280
  %464 = getelementptr inbounds i8, ptr %0, i64 284
  %465 = getelementptr inbounds i8, ptr %0, i64 264
  %466 = getelementptr inbounds i8, ptr %0, i64 256
  %467 = getelementptr inbounds i8, ptr %0, i64 260
  %468 = getelementptr inbounds i8, ptr %0, i64 432
  %469 = getelementptr inbounds i8, ptr %0, i64 200
  %470 = getelementptr inbounds i8, ptr %0, i64 320
  br i1 %460, label %.preheader399.us, label %._crit_edge505

.preheader399.us:                                 ; preds = %.preheader399.lr.ph, %._crit_edge503.us
  %.0327504.us = phi i32 [ %.neg389.us, %._crit_edge503.us ], [ 0, %.preheader399.lr.ph ]
  %.neg389.us = add nuw i32 %.0327504.us, 1
  br label %471

471:                                              ; preds = %.preheader399.us, %._crit_edge500.us
  %.0328501.us = phi i32 [ %.0326, %.preheader399.us ], [ %643, %._crit_edge500.us ]
  %472 = load ptr, ptr %16, align 8, !tbaa !41
  %473 = call noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %472)
  %474 = zext i32 %473 to i64
  %475 = shl nuw nsw i64 %474, 3
  %476 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %475) #10
          to label %.preheader398.us unwind label %.split512.us

._crit_edge461.us:                                ; preds = %._crit_edge458.us, %.preheader398.us
  %477 = load ptr, ptr %16, align 8, !tbaa !41
  %478 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %477)
  %479 = sub i32 %.neg389.us, %478
  %480 = icmp slt i32 %479, 0
  br i1 %480, label %485, label %481

481:                                              ; preds = %._crit_edge461.us
  %482 = load ptr, ptr %23, align 8, !tbaa !43
  %483 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %482)
  %484 = udiv i32 %479, %483
  br label %485

485:                                              ; preds = %481, %._crit_edge461.us
  %.0335.us = phi i32 [ %484, %481 ], [ 0, %._crit_edge461.us ]
  %486 = load ptr, ptr %23, align 8, !tbaa !43
  %487 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %486)
  %488 = udiv i32 %.0327504.us, %487
  %.not358481.us = icmp sgt i32 %.0335.us, %488
  br i1 %.not358481.us, label %._crit_edge486.us, label %.lr.ph485.us

489:                                              ; preds = %.lr.ph485.us, %.loopexit397.us
  %.0336482.us = phi i32 [ %.0335.us, %.lr.ph485.us ], [ %610, %.loopexit397.us ]
  %490 = load ptr, ptr %23, align 8, !tbaa !43
  %491 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %490)
  %492 = mul i32 %491, %.0336482.us
  %493 = load ptr, ptr %16, align 8, !tbaa !41
  %494 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %493)
  %495 = add i32 %492, -1
  %496 = add i32 %495, %494
  %497 = load ptr, ptr %23, align 8, !tbaa !43
  %498 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %497)
  %499 = mul i32 %498, %.0336482.us
  %500 = load ptr, ptr %16, align 8, !tbaa !41
  %501 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %500)
  %502 = add i32 %499, -1
  %503 = add i32 %502, %501
  %504 = icmp uge i32 %503, %425
  %.not361.us = icmp ugt i32 %.0327504.us, %496
  %or.cond.us = or i1 %.not361.us, %504
  %.not362.us = icmp ult i32 %.0327504.us, %499
  %or.cond381.us = or i1 %.not362.us, %or.cond.us
  br i1 %or.cond381.us, label %.loopexit397.us, label %505

505:                                              ; preds = %489
  %506 = load ptr, ptr %16, align 8, !tbaa !41
  %507 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %506)
  %508 = sub i32 %.neg391.us, %507
  %509 = icmp slt i32 %508, 0
  br i1 %509, label %514, label %510

510:                                              ; preds = %505
  %511 = load ptr, ptr %23, align 8, !tbaa !43
  %512 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %511)
  %513 = udiv i32 %508, %512
  br label %514

514:                                              ; preds = %510, %505
  %.0334.us = phi i32 [ %513, %510 ], [ 0, %505 ]
  %515 = load ptr, ptr %23, align 8, !tbaa !43
  %516 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %515)
  %517 = udiv i32 %.0328501.us, %516
  %.not363477.us = icmp sgt i32 %.0334.us, %517
  br i1 %.not363477.us, label %.loopexit397.us, label %.lr.ph480.us

.lr.ph480.us:                                     ; preds = %514, %.loopexit395.us
  %.0332478.us = phi i32 [ %609, %.loopexit395.us ], [ %.0334.us, %514 ]
  %518 = load ptr, ptr %23, align 8, !tbaa !43
  %519 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %518)
  %520 = mul i32 %519, %.0332478.us
  %521 = load ptr, ptr %16, align 8, !tbaa !41
  %522 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %521)
  %523 = add i32 %520, -1
  %524 = add i32 %523, %522
  %525 = load ptr, ptr %23, align 8, !tbaa !43
  %526 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %525)
  %527 = mul i32 %526, %.0332478.us
  %528 = load ptr, ptr %16, align 8, !tbaa !41
  %529 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %528)
  %530 = add i32 %527, -1
  %531 = add i32 %530, %529
  %532 = icmp uge i32 %531, %416
  %.not364.us = icmp ugt i32 %.0328501.us, %524
  %or.cond382.us = or i1 %.not364.us, %532
  %.not365.us = icmp ult i32 %.0328501.us, %527
  %or.cond383.us = or i1 %.not365.us, %or.cond382.us
  br i1 %or.cond383.us, label %.loopexit395.us, label %533

533:                                              ; preds = %.lr.ph480.us
  %534 = load ptr, ptr %16, align 8, !tbaa !41
  %535 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %534)
  %536 = load ptr, ptr %23, align 8, !tbaa !43
  %537 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %536)
  %538 = load ptr, ptr %23, align 8, !tbaa !43
  %539 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %538)
  %540 = load ptr, ptr %16, align 8, !tbaa !41
  %541 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %540)
  %542 = load ptr, ptr %16, align 8, !tbaa !41
  %543 = call noundef i32 @_ZNK4Tile11get_VN_SizeEv(ptr noundef nonnull align 4 dereferenceable(41) %542)
  %544 = load ptr, ptr %16, align 8, !tbaa !41
  %545 = call noundef zeroext i1 @_ZNK4Tile19get_folding_enabledEv(ptr noundef nonnull align 4 dereferenceable(41) %544)
  %546 = load ptr, ptr %16, align 8, !tbaa !41
  %547 = call noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %546)
  %.not551 = icmp eq i32 %547, 0
  br i1 %.not551, label %.loopexit395.us, label %.lr.ph476.us

548:                                              ; preds = %.lr.ph476.us, %._crit_edge473.us
  %indvars.iv586 = phi i64 [ 0, %.lr.ph476.us ], [ %indvars.iv.next587, %._crit_edge473.us ]
  %549 = load ptr, ptr %16, align 8, !tbaa !41
  %550 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %549)
  %551 = trunc nuw nsw i64 %indvars.iv586 to i32
  %552 = mul i32 %550, %551
  %553 = load ptr, ptr %16, align 8, !tbaa !41
  %554 = call noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %553)
  %555 = mul i32 %552, %554
  %556 = load ptr, ptr %16, align 8, !tbaa !41
  %557 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %556)
  %558 = mul i32 %555, %557
  %559 = load ptr, ptr %16, align 8, !tbaa !41
  %560 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %559)
  %.not552 = icmp eq i32 %560, 0
  br i1 %.not552, label %._crit_edge473.us, label %.lr.ph472.us

._crit_edge473.us:                                ; preds = %._crit_edge469.us, %548
  %indvars.iv.next587 = add nuw nsw i64 %indvars.iv586, 1
  %561 = load ptr, ptr %16, align 8, !tbaa !41
  %562 = call noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %561)
  %563 = zext i32 %562 to i64
  %564 = icmp ult i64 %indvars.iv.next587, %563
  br i1 %564, label %548, label %.loopexit395.us, !llvm.loop !77

565:                                              ; preds = %.lr.ph472.us, %._crit_edge469.us
  %indvars.iv583 = phi i64 [ 0, %.lr.ph472.us ], [ %indvars.iv.next584, %._crit_edge469.us ]
  %566 = load ptr, ptr %16, align 8, !tbaa !41
  %567 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %566)
  %568 = load ptr, ptr %16, align 8, !tbaa !41
  %569 = call noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %568)
  %570 = load ptr, ptr %16, align 8, !tbaa !41
  %571 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %570)
  %572 = load ptr, ptr %16, align 8, !tbaa !41
  %573 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %572)
  %.not553 = icmp eq i32 %573, 0
  br i1 %.not553, label %._crit_edge469.us, label %.lr.ph468.us

._crit_edge469.us:                                ; preds = %._crit_edge465.us, %565
  %indvars.iv.next584 = add nuw nsw i64 %indvars.iv583, 1
  %574 = load ptr, ptr %16, align 8, !tbaa !41
  %575 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %574)
  %576 = zext i32 %575 to i64
  %577 = icmp ult i64 %indvars.iv.next584, %576
  br i1 %577, label %565, label %._crit_edge473.us, !llvm.loop !78

578:                                              ; preds = %.lr.ph468.us, %._crit_edge465.us
  %.0320466.us = phi i32 [ 0, %.lr.ph468.us ], [ %585, %._crit_edge465.us ]
  %579 = load ptr, ptr %16, align 8, !tbaa !41
  %580 = call noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %579)
  %581 = load ptr, ptr %16, align 8, !tbaa !41
  %582 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %581)
  %583 = load ptr, ptr %16, align 8, !tbaa !41
  %584 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %583)
  %.not554 = icmp eq i32 %584, 0
  br i1 %.not554, label %._crit_edge465.us, label %.lr.ph464.us

._crit_edge465.us:                                ; preds = %589, %578
  %585 = add nuw nsw i32 %.0320466.us, 1
  %586 = load ptr, ptr %16, align 8, !tbaa !41
  %587 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %586)
  %588 = icmp ult i32 %585, %587
  br i1 %588, label %578, label %._crit_edge469.us, !llvm.loop !79

589:                                              ; preds = %.lr.ph464.us, %589
  %indvars.iv580 = phi i64 [ 0, %.lr.ph464.us ], [ %indvars.iv.next581, %589 ]
  %590 = load ptr, ptr %16, align 8, !tbaa !41
  %591 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %590)
  %592 = trunc nuw nsw i64 %indvars.iv580 to i32
  %593 = mul i32 %591, %592
  %594 = load ptr, ptr %16, align 8, !tbaa !41
  %595 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %594)
  %596 = mul i32 %593, %595
  %597 = load ptr, ptr %744, align 8, !tbaa !80
  %598 = getelementptr inbounds ptr, ptr %597, i64 %indvars.iv583
  %599 = load ptr, ptr %598, align 8, !tbaa !80
  %600 = getelementptr inbounds ptr, ptr %599, i64 %indvars.iv580
  %601 = load ptr, ptr %600, align 8, !tbaa !80
  %602 = add i32 %spec.select384.us, %596
  %603 = sext i32 %602 to i64
  %604 = getelementptr inbounds i8, ptr %601, i64 %603
  store i8 1, ptr %604, align 1, !tbaa !54
  %indvars.iv.next581 = add nuw nsw i64 %indvars.iv580, 1
  %605 = load ptr, ptr %16, align 8, !tbaa !41
  %606 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %605)
  %607 = zext i32 %606 to i64
  %608 = icmp ult i64 %indvars.iv.next581, %607
  br i1 %608, label %589, label %._crit_edge465.us, !llvm.loop !81

.loopexit395.us:                                  ; preds = %._crit_edge473.us, %533, %.lr.ph480.us
  %609 = add nuw nsw i32 %.0332478.us, 1
  %.not363.us.not = icmp slt i32 %.0332478.us, %517
  br i1 %.not363.us.not, label %.lr.ph480.us, label %.loopexit397.us, !llvm.loop !82

.loopexit397.us:                                  ; preds = %.loopexit395.us, %514, %489
  %610 = add nuw nsw i32 %.0336482.us, 1
  %.not358.us.not = icmp slt i32 %.0336482.us, %488
  br i1 %.not358.us.not, label %489, label %._crit_edge486.us, !llvm.loop !83

._crit_edge486.us:                                ; preds = %.loopexit397.us, %485
  %611 = load i32, ptr %462, align 8, !tbaa !84
  %612 = load ptr, ptr %16, align 8, !tbaa !41
  %613 = call noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %612)
  %614 = mul i32 %613, %611
  %615 = load i32, ptr %14, align 4, !tbaa !40
  %616 = load ptr, ptr %16, align 8, !tbaa !41
  %617 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %616)
  %618 = mul i32 %617, %615
  %619 = load i32, ptr %19, align 4, !tbaa !42
  %620 = load ptr, ptr %16, align 8, !tbaa !41
  %621 = call noundef i32 @_ZNK4Tile7get_T_KEv(ptr noundef nonnull align 4 dereferenceable(41) %620)
  %622 = mul i32 %621, %619
  %623 = load i32, ptr %463, align 8, !tbaa !85
  %624 = load ptr, ptr %16, align 8, !tbaa !41
  %625 = call noundef i32 @_ZNK4Tile8get_T_X_Ev(ptr noundef nonnull align 4 dereferenceable(41) %624)
  %626 = mul i32 %625, %623
  %627 = load i32, ptr %464, align 4, !tbaa !86
  %628 = load ptr, ptr %16, align 8, !tbaa !41
  %629 = call noundef i32 @_ZNK4Tile8get_T_Y_Ev(ptr noundef nonnull align 4 dereferenceable(41) %628)
  %630 = mul i32 %629, %627
  %631 = load i32, ptr %465, align 8, !tbaa !55
  %632 = load ptr, ptr %16, align 8, !tbaa !41
  %633 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %632)
  %634 = mul i32 %633, %631
  %635 = load i32, ptr %466, align 8, !tbaa !56
  %636 = load ptr, ptr %16, align 8, !tbaa !41
  %637 = call noundef i32 @_ZNK4Tile7get_T_REv(ptr noundef nonnull align 4 dereferenceable(41) %636)
  %638 = load i32, ptr %467, align 4, !tbaa !57
  %639 = load ptr, ptr %16, align 8, !tbaa !41
  %640 = call noundef i32 @_ZNK4Tile7get_T_SEv(ptr noundef nonnull align 4 dereferenceable(41) %639)
  %641 = load ptr, ptr %16, align 8, !tbaa !41
  %642 = call noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %641)
  %.not555 = icmp eq i32 %642, 0
  br i1 %.not555, label %._crit_edge500.us, label %.preheader396.lr.ph.us

._crit_edge500.us:                                ; preds = %648, %._crit_edge486.us
  call void @_ZdaPv(ptr noundef nonnull %476) #11
  %643 = add nuw i32 %.0328501.us, 1
  %exitcond.not = icmp eq i32 %643, %416
  br i1 %exitcond.not, label %._crit_edge503.us, label %471, !llvm.loop !87

._crit_edge495.us:                                ; preds = %658, %767, %.preheader396.us
  %644 = getelementptr inbounds ptr, ptr %476, i64 %indvars.iv601
  %645 = load ptr, ptr %644, align 8, !tbaa !80
  %646 = icmp eq ptr %645, null
  br i1 %646, label %648, label %647

647:                                              ; preds = %._crit_edge495.us
  call void @_ZdaPv(ptr noundef nonnull %645) #11
  br label %648

648:                                              ; preds = %647, %._crit_edge495.us
  %indvars.iv.next602 = add nuw nsw i64 %indvars.iv601, 1
  %649 = load ptr, ptr %16, align 8, !tbaa !41
  %650 = call noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %649)
  %651 = zext i32 %650 to i64
  %652 = icmp ult i64 %indvars.iv.next602, %651
  br i1 %652, label %.preheader396.us, label %._crit_edge500.us, !llvm.loop !88

._crit_edge489.split.us:                          ; preds = %680, %.preheader394.us506
  %653 = load ptr, ptr %757, align 8, !tbaa !80
  %654 = getelementptr inbounds ptr, ptr %653, i64 %indvars.iv592
  %655 = load ptr, ptr %654, align 8, !tbaa !80
  %656 = icmp eq ptr %655, null
  br i1 %656, label %658, label %657

657:                                              ; preds = %._crit_edge489.split.us
  call void @_ZdaPv(ptr noundef nonnull %655) #11
  br label %658

658:                                              ; preds = %657, %._crit_edge489.split.us
  %indvars.iv.next593 = add nuw nsw i64 %indvars.iv592, 1
  %659 = load ptr, ptr %16, align 8, !tbaa !41
  %660 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %659)
  %661 = zext i32 %660 to i64
  %662 = icmp ult i64 %indvars.iv.next593, %661
  br i1 %662, label %.preheader394.us506, label %._crit_edge495.us, !llvm.loop !89

.lr.ph488.us508:                                  ; preds = %.preheader394.us506, %680
  %indvars.iv589 = phi i64 [ %indvars.iv.next590, %680 ], [ 0, %.preheader394.us506 ]
  %663 = load ptr, ptr %757, align 8, !tbaa !80
  %664 = getelementptr inbounds ptr, ptr %663, i64 %indvars.iv592
  %665 = load ptr, ptr %664, align 8, !tbaa !80
  %666 = getelementptr inbounds ptr, ptr %665, i64 %indvars.iv589
  %667 = load ptr, ptr %666, align 8, !tbaa !80
  %668 = invoke noalias noundef nonnull dereferenceable(64) ptr @_Znwm(i64 noundef 64) #10
          to label %669 unwind label %.split.split.us

669:                                              ; preds = %.lr.ph488.us508
  %670 = load i32, ptr %461, align 8, !tbaa !53
  invoke void @_ZN11DataPackageC1Emf9operand_tj9traffic_tPbj(ptr noundef nonnull align 8 dereferenceable(64) %668, i64 noundef 4, float noundef 0.000000e+00, i32 noundef 1, i32 noundef 0, i32 noundef 1, ptr noundef %667, i32 noundef %670)
          to label %671 unwind label %.split491.split.us

671:                                              ; preds = %669
  %672 = load ptr, ptr %23, align 8, !tbaa !43
  %673 = call noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84) %672)
  %674 = mul i32 %673, %618
  %675 = load ptr, ptr %16, align 8, !tbaa !41
  %676 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %675)
  %677 = mul i32 %622, %676
  %678 = add i32 %677, %674
  invoke void @_ZN11DataPackage13setIterationKEj(ptr noundef nonnull align 8 dereferenceable(64) %668, i32 noundef %678)
          to label %679 unwind label %.split.split.us

679:                                              ; preds = %671
  invoke void @_ZN8SDMemory23sendPackageToInputFifosEP11DataPackage(ptr noundef nonnull align 8 dereferenceable(568) %0, ptr noundef nonnull %668)
          to label %680 unwind label %.split.split.us

680:                                              ; preds = %679
  %indvars.iv.next590 = add nuw nsw i64 %indvars.iv589, 1
  %681 = load ptr, ptr %16, align 8, !tbaa !41
  %682 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %681)
  %683 = zext i32 %682 to i64
  %684 = icmp ult i64 %indvars.iv.next590, %683
  br i1 %684, label %.lr.ph488.us508, label %._crit_edge489.split.us, !llvm.loop !90

.lr.ph460.us:                                     ; preds = %.preheader398.us, %._crit_edge458.us
  %indvars.iv577 = phi i64 [ %indvars.iv.next578, %._crit_edge458.us ], [ 0, %.preheader398.us ]
  %685 = load ptr, ptr %16, align 8, !tbaa !41
  %686 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %685)
  %687 = zext i32 %686 to i64
  %688 = shl nuw nsw i64 %687, 3
  %689 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %688) #10
          to label %690 unwind label %.split518.us

690:                                              ; preds = %.lr.ph460.us
  %691 = getelementptr inbounds ptr, ptr %476, i64 %indvars.iv577
  store ptr %689, ptr %691, align 8, !tbaa !80
  %692 = load ptr, ptr %16, align 8, !tbaa !41
  %693 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %692)
  %.not548 = icmp eq i32 %693, 0
  br i1 %.not548, label %._crit_edge458.us, label %.lr.ph457.us

._crit_edge458.us:                                ; preds = %._crit_edge454.us, %690
  %indvars.iv.next578 = add nuw nsw i64 %indvars.iv577, 1
  %694 = load ptr, ptr %16, align 8, !tbaa !41
  %695 = call noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %694)
  %696 = zext i32 %695 to i64
  %697 = icmp ult i64 %indvars.iv.next578, %696
  br i1 %697, label %.lr.ph460.us, label %._crit_edge461.us, !llvm.loop !91

.lr.ph457.us:                                     ; preds = %690, %._crit_edge454.us
  %indvars.iv574 = phi i64 [ %indvars.iv.next575, %._crit_edge454.us ], [ 0, %690 ]
  %698 = load ptr, ptr %16, align 8, !tbaa !41
  %699 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %698)
  %700 = zext i32 %699 to i64
  %701 = shl nuw nsw i64 %700, 3
  %702 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %701) #10
          to label %703 unwind label %.split521.us

703:                                              ; preds = %.lr.ph457.us
  %704 = load ptr, ptr %691, align 8, !tbaa !80
  %705 = getelementptr inbounds ptr, ptr %704, i64 %indvars.iv574
  store ptr %702, ptr %705, align 8, !tbaa !80
  %706 = load ptr, ptr %16, align 8, !tbaa !41
  %707 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %706)
  %.not549 = icmp eq i32 %707, 0
  br i1 %.not549, label %._crit_edge454.us, label %.lr.ph453.us

._crit_edge454.us:                                ; preds = %._crit_edge450.us, %703
  %indvars.iv.next575 = add nuw nsw i64 %indvars.iv574, 1
  %708 = load ptr, ptr %16, align 8, !tbaa !41
  %709 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %708)
  %710 = zext i32 %709 to i64
  %711 = icmp ult i64 %indvars.iv.next575, %710
  br i1 %711, label %.lr.ph457.us, label %._crit_edge458.us, !llvm.loop !92

.lr.ph453.us:                                     ; preds = %703, %._crit_edge450.us
  %indvars.iv = phi i64 [ %indvars.iv.next, %._crit_edge450.us ], [ 0, %703 ]
  %712 = load i32, ptr %461, align 8, !tbaa !53
  %713 = zext i32 %712 to i64
  %714 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %713) #10
          to label %715 unwind label %.split524.us

715:                                              ; preds = %.lr.ph453.us
  %716 = load ptr, ptr %691, align 8, !tbaa !80
  %717 = getelementptr inbounds ptr, ptr %716, i64 %indvars.iv574
  %718 = load ptr, ptr %717, align 8, !tbaa !80
  %719 = getelementptr inbounds ptr, ptr %718, i64 %indvars.iv
  store ptr %714, ptr %719, align 8, !tbaa !80
  %.not550 = icmp eq i32 %712, 0
  br i1 %.not550, label %._crit_edge450.us, label %.lr.ph449.us

._crit_edge450.us:                                ; preds = %.lr.ph449.us, %715
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %720 = load ptr, ptr %16, align 8, !tbaa !41
  %721 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %720)
  %722 = zext i32 %721 to i64
  %723 = icmp ult i64 %indvars.iv.next, %722
  br i1 %723, label %.lr.ph453.us, label %._crit_edge454.us, !llvm.loop !93

.preheader394.us506:                              ; preds = %.preheader394.lr.ph.us, %658
  %indvars.iv592 = phi i64 [ %indvars.iv.next593, %658 ], [ 0, %.preheader394.lr.ph.us ]
  %724 = load ptr, ptr %16, align 8, !tbaa !41
  %725 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %724)
  %.not557 = icmp eq i32 %725, 0
  br i1 %.not557, label %._crit_edge489.split.us, label %.lr.ph488.us508

.preheader396.us:                                 ; preds = %.preheader396.lr.ph.us, %648
  %indvars.iv601 = phi i64 [ 0, %.preheader396.lr.ph.us ], [ %indvars.iv.next602, %648 ]
  %726 = load ptr, ptr %16, align 8, !tbaa !41
  %727 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %726)
  %.not556 = icmp eq i32 %727, 0
  br i1 %.not556, label %._crit_edge495.us, label %.preheader394.lr.ph.us

.preheader398.us:                                 ; preds = %471
  %728 = load ptr, ptr %16, align 8, !tbaa !41
  %729 = call noundef i32 @_ZNK4Tile7get_T_NEv(ptr noundef nonnull align 4 dereferenceable(41) %728)
  %.not547 = icmp eq i32 %729, 0
  br i1 %.not547, label %._crit_edge461.us, label %.lr.ph460.us

.lr.ph449.us:                                     ; preds = %715
  %730 = load ptr, ptr %691, align 8, !tbaa !80
  %731 = getelementptr inbounds ptr, ptr %730, i64 %indvars.iv574
  %732 = load ptr, ptr %731, align 8, !tbaa !80
  %733 = getelementptr inbounds ptr, ptr %732, i64 %indvars.iv
  %734 = load ptr, ptr %733, align 8, !tbaa !80
  call void @llvm.memset.p0.i64(ptr align 1 %734, i8 0, i64 %713, i1 false), !tbaa !54
  br label %._crit_edge450.us

.lr.ph464.us:                                     ; preds = %578
  %735 = mul i32 %580, %.0320466.us
  %736 = mul i32 %735, %582
  %737 = add i32 %743, %736
  %738 = mul i32 %737, %spec.select380
  %spec.select384.us = add i32 %756, %738
  br label %589

.lr.ph468.us:                                     ; preds = %565
  %739 = trunc nuw nsw i64 %indvars.iv583 to i32
  %740 = mul i32 %567, %739
  %741 = mul i32 %740, %569
  %742 = mul i32 %741, %571
  %743 = add i32 %742, %558
  br label %578

.lr.ph472.us:                                     ; preds = %548
  %744 = getelementptr inbounds ptr, ptr %476, i64 %indvars.iv586
  br label %565

.lr.ph476.us:                                     ; preds = %533
  %745 = zext i1 %545 to i32
  %746 = mul i32 %535, %.0336482.us
  %747 = add i32 %746, %.0332478.us
  %748 = mul i32 %543, %747
  %749 = mul i32 %539, %.0336482.us
  %750 = sub i32 %.0327504.us, %749
  %751 = mul i32 %750, %541
  %752 = mul i32 %537, %.0332478.us
  %753 = sub i32 %.0328501.us, %752
  %754 = add i32 %753, %751
  %755 = add i32 %754, %748
  %756 = add i32 %755, %745
  br label %548

.lr.ph485.us:                                     ; preds = %485
  %.neg391.us = add nuw i32 %.0328501.us, 1
  br label %489

.preheader394.lr.ph.us:                           ; preds = %.preheader396.us
  %757 = getelementptr inbounds ptr, ptr %476, i64 %indvars.iv601
  %758 = trunc nuw nsw i64 %indvars.iv601 to i32
  %759 = add i32 %614, %758
  br i1 %or.cond386.fr.us, label %.preheader394.us.us, label %.preheader394.us506

.preheader394.us.us:                              ; preds = %.preheader394.lr.ph.us, %767
  %indvars.iv598 = phi i64 [ %indvars.iv.next599, %767 ], [ 0, %.preheader394.lr.ph.us ]
  %760 = load ptr, ptr %16, align 8, !tbaa !41
  %761 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %760)
  %.not558 = icmp eq i32 %761, 0
  br i1 %.not558, label %._crit_edge489.split.us.us.us, label %.lr.ph488.us.us

._crit_edge489.split.us.us.us:                    ; preds = %837, %.preheader394.us.us
  %762 = load ptr, ptr %757, align 8, !tbaa !80
  %763 = getelementptr inbounds ptr, ptr %762, i64 %indvars.iv598
  %764 = load ptr, ptr %763, align 8, !tbaa !80
  %765 = icmp eq ptr %764, null
  br i1 %765, label %767, label %766

766:                                              ; preds = %._crit_edge489.split.us.us.us
  call void @_ZdaPv(ptr noundef nonnull %764) #11
  br label %767

767:                                              ; preds = %766, %._crit_edge489.split.us.us.us
  %indvars.iv.next599 = add nuw nsw i64 %indvars.iv598, 1
  %768 = load ptr, ptr %16, align 8, !tbaa !41
  %769 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %768)
  %770 = zext i32 %769 to i64
  %771 = icmp ult i64 %indvars.iv.next599, %770
  br i1 %771, label %.preheader394.us.us, label %._crit_edge495.us, !llvm.loop !89

.lr.ph488.us.us:                                  ; preds = %.preheader394.us.us
  %772 = trunc nuw nsw i64 %indvars.iv598 to i32
  %773 = add i32 %618, %772
  br label %774

774:                                              ; preds = %837, %.lr.ph488.us.us
  %indvars.iv595 = phi i64 [ %indvars.iv.next596, %837 ], [ 0, %.lr.ph488.us.us ]
  %775 = load ptr, ptr %757, align 8, !tbaa !80
  %776 = getelementptr inbounds ptr, ptr %775, i64 %indvars.iv598
  %777 = load ptr, ptr %776, align 8, !tbaa !80
  %778 = getelementptr inbounds ptr, ptr %777, i64 %indvars.iv595
  %779 = load ptr, ptr %778, align 8, !tbaa !80
  %780 = trunc nuw nsw i64 %indvars.iv595 to i32
  %781 = add i32 %634, %780
  %782 = load ptr, ptr %23, align 8, !tbaa !43
  %783 = call noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %782)
  %784 = icmp ult i32 %781, %783
  br i1 %784, label %785, label %824

785:                                              ; preds = %774
  %786 = load i32, ptr %468, align 8, !tbaa !94
  %787 = add i32 %786, 1
  store i32 %787, ptr %468, align 8, !tbaa !94
  %788 = load ptr, ptr %469, align 8, !tbaa !95
  %789 = load i32, ptr %470, align 8, !tbaa !96
  %790 = mul i32 %789, %759
  %791 = load ptr, ptr %23, align 8, !tbaa !43
  %792 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %791)
  %793 = mul i32 %626, %792
  %794 = add i32 %844, %793
  %795 = load ptr, ptr %23, align 8, !tbaa !43
  %796 = call noundef i32 @_ZNK8DNNLayer5get_YEv(ptr noundef nonnull align 8 dereferenceable(84) %795)
  %797 = mul i32 %794, %796
  %798 = load ptr, ptr %23, align 8, !tbaa !43
  %799 = call noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %798)
  %800 = mul i32 %797, %799
  %801 = load ptr, ptr %23, align 8, !tbaa !43
  %802 = call noundef i32 @_ZNK8DNNLayer5get_GEv(ptr noundef nonnull align 8 dereferenceable(84) %801)
  %803 = mul i32 %800, %802
  %804 = load ptr, ptr %23, align 8, !tbaa !43
  %805 = call noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84) %804)
  %806 = mul i32 %630, %805
  %807 = add i32 %846, %806
  %808 = load ptr, ptr %23, align 8, !tbaa !43
  %809 = call noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %808)
  %810 = mul i32 %807, %809
  %811 = load ptr, ptr %23, align 8, !tbaa !43
  %812 = call noundef i32 @_ZNK8DNNLayer5get_GEv(ptr noundef nonnull align 8 dereferenceable(84) %811)
  %813 = mul i32 %810, %812
  %814 = load ptr, ptr %23, align 8, !tbaa !43
  %815 = call noundef i32 @_ZNK8DNNLayer5get_CEv(ptr noundef nonnull align 8 dereferenceable(84) %814)
  %816 = mul i32 %815, %773
  %817 = add i32 %790, %781
  %818 = add i32 %817, %803
  %819 = add i32 %818, %813
  %820 = add i32 %819, %816
  %821 = zext i32 %820 to i64
  %822 = getelementptr inbounds float, ptr %788, i64 %821
  %823 = load float, ptr %822, align 4, !tbaa !66
  br label %824

824:                                              ; preds = %785, %774
  %.0304.us.us.us = phi float [ %823, %785 ], [ 0.000000e+00, %774 ]
  %825 = invoke noalias noundef nonnull dereferenceable(64) ptr @_Znwm(i64 noundef 64) #10
          to label %826 unwind label %.split.us.split.us.split.us

826:                                              ; preds = %824
  %827 = load i32, ptr %461, align 8, !tbaa !53
  invoke void @_ZN11DataPackageC1Emf9operand_tj9traffic_tPbj(ptr noundef nonnull align 8 dereferenceable(64) %825, i64 noundef 4, float noundef %.0304.us.us.us, i32 noundef 1, i32 noundef 0, i32 noundef 1, ptr noundef %779, i32 noundef %827)
          to label %828 unwind label %.split491.us.split.us.split.us

828:                                              ; preds = %826
  %829 = load ptr, ptr %23, align 8, !tbaa !43
  %830 = call noundef i32 @_ZNK8DNNLayer5get_KEv(ptr noundef nonnull align 8 dereferenceable(84) %829)
  %831 = mul i32 %830, %618
  %832 = load ptr, ptr %16, align 8, !tbaa !41
  %833 = call noundef i32 @_ZNK4Tile7get_T_GEv(ptr noundef nonnull align 4 dereferenceable(41) %832)
  %834 = mul i32 %622, %833
  %835 = add i32 %834, %831
  invoke void @_ZN11DataPackage13setIterationKEj(ptr noundef nonnull align 8 dereferenceable(64) %825, i32 noundef %835)
          to label %836 unwind label %.split.us.split.us.split.us

836:                                              ; preds = %828
  invoke void @_ZN8SDMemory23sendPackageToInputFifosEP11DataPackage(ptr noundef nonnull align 8 dereferenceable(568) %0, ptr noundef nonnull %825)
          to label %837 unwind label %.split.us.split.us.split.us

837:                                              ; preds = %836
  %indvars.iv.next596 = add nuw nsw i64 %indvars.iv595, 1
  %838 = load ptr, ptr %16, align 8, !tbaa !41
  %839 = call noundef i32 @_ZNK4Tile7get_T_CEv(ptr noundef nonnull align 4 dereferenceable(41) %838)
  %840 = zext i32 %839 to i64
  %841 = icmp ult i64 %indvars.iv.next596, %840
  br i1 %841, label %774, label %._crit_edge489.split.us.us.us, !llvm.loop !90

.preheader396.lr.ph.us:                           ; preds = %._crit_edge486.us
  %842 = mul i32 %640, %638
  %843 = mul i32 %637, %635
  %844 = add i32 %843, %.0327504.us
  %845 = icmp ult i32 %844, %437
  %846 = add i32 %842, %.0328501.us
  %847 = icmp ult i32 %846, %431
  %or.cond386.us = select i1 %845, i1 %847, i1 false
  %or.cond386.fr.us = freeze i1 %or.cond386.us
  br label %.preheader396.us

._crit_edge503.us:                                ; preds = %._crit_edge500.us
  %exitcond604.not = icmp eq i32 %.neg389.us, %425
  br i1 %exitcond604.not, label %._crit_edge505, label %.preheader399.us, !llvm.loop !97

.split512.us:                                     ; preds = %471
  %848 = landingpad { ptr, i32 }
          cleanup
  br label %1017

.split.split.us:                                  ; preds = %679, %671, %.lr.ph488.us508
  %849 = landingpad { ptr, i32 }
          cleanup
  br label %1017

.split491.split.us:                               ; preds = %669
  %850 = landingpad { ptr, i32 }
          cleanup
  br label %862

.split518.us:                                     ; preds = %.lr.ph460.us
  %851 = landingpad { ptr, i32 }
          cleanup
  br label %1017

.split521.us:                                     ; preds = %.lr.ph457.us
  %852 = landingpad { ptr, i32 }
          cleanup
  br label %1017

.split524.us:                                     ; preds = %.lr.ph453.us
  %853 = landingpad { ptr, i32 }
          cleanup
  br label %1017

.split.us.split.us.split.us:                      ; preds = %836, %828, %824
  %854 = landingpad { ptr, i32 }
          cleanup
  br label %1017

.split491.us.split.us.split.us:                   ; preds = %826
  %855 = landingpad { ptr, i32 }
          cleanup
  br label %862

._crit_edge505:                                   ; preds = %._crit_edge503.us, %.preheader399.lr.ph, %459
  %856 = getelementptr inbounds i8, ptr %0, i64 260
  %857 = load i32, ptr %856, align 4, !tbaa !57
  %858 = add i32 %857, 1
  store i32 %858, ptr %856, align 4, !tbaa !57
  %859 = getelementptr inbounds i8, ptr %0, i64 228
  %860 = load i32, ptr %859, align 4, !tbaa !74
  %861 = icmp eq i32 %858, %860
  br i1 %861, label %863, label %912

862:                                              ; preds = %.split491.us.split.us.split.us, %.split491.split.us
  %.us-phi492 = phi ptr [ %668, %.split491.split.us ], [ %825, %.split491.us.split.us.split.us ]
  %.us-phi493 = phi { ptr, i32 } [ %850, %.split491.split.us ], [ %855, %.split491.us.split.us.split.us ]
  call void @_ZdlPvm(ptr noundef nonnull %.us-phi492, i64 noundef 64) #11
  br label %1017

863:                                              ; preds = %._crit_edge505
  store i32 0, ptr %856, align 4, !tbaa !57
  %864 = getelementptr inbounds i8, ptr %0, i64 256
  %865 = load i32, ptr %864, align 8, !tbaa !56
  %866 = add i32 %865, 1
  store i32 %866, ptr %864, align 8, !tbaa !56
  %867 = getelementptr inbounds i8, ptr %0, i64 224
  %868 = load i32, ptr %867, align 8, !tbaa !75
  %869 = icmp eq i32 %866, %868
  br i1 %869, label %870, label %912

870:                                              ; preds = %863
  store i32 0, ptr %864, align 8, !tbaa !56
  %871 = getelementptr inbounds i8, ptr %0, i64 264
  %872 = load i32, ptr %871, align 8, !tbaa !55
  %873 = add i32 %872, 1
  store i32 %873, ptr %871, align 8, !tbaa !55
  %874 = getelementptr inbounds i8, ptr %0, i64 232
  %875 = load i32, ptr %874, align 8, !tbaa !76
  %876 = icmp eq i32 %873, %875
  br i1 %876, label %877, label %912

877:                                              ; preds = %870
  store i32 0, ptr %871, align 8, !tbaa !55
  %878 = getelementptr inbounds i8, ptr %0, i64 284
  %879 = load i32, ptr %878, align 4, !tbaa !86
  %880 = add i32 %879, 1
  store i32 %880, ptr %878, align 4, !tbaa !86
  %881 = getelementptr inbounds i8, ptr %0, i64 252
  %882 = load i32, ptr %881, align 4, !tbaa !98
  %883 = icmp eq i32 %880, %882
  br i1 %883, label %884, label %912

884:                                              ; preds = %877
  store i32 0, ptr %878, align 4, !tbaa !86
  %885 = getelementptr inbounds i8, ptr %0, i64 280
  %886 = load i32, ptr %885, align 8, !tbaa !85
  %887 = add i32 %886, 1
  store i32 %887, ptr %885, align 8, !tbaa !85
  %888 = getelementptr inbounds i8, ptr %0, i64 248
  %889 = load i32, ptr %888, align 8, !tbaa !99
  %890 = icmp eq i32 %887, %889
  br i1 %890, label %891, label %912

891:                                              ; preds = %884
  store i32 0, ptr %885, align 8, !tbaa !85
  %892 = load i32, ptr %19, align 4, !tbaa !42
  %893 = add i32 %892, 1
  store i32 %893, ptr %19, align 4, !tbaa !42
  store i8 0, ptr %49, align 8, !tbaa !47
  %894 = getelementptr inbounds i8, ptr %0, i64 244
  %895 = load i32, ptr %894, align 4, !tbaa !100
  %896 = icmp eq i32 %893, %895
  br i1 %896, label %897, label %912

897:                                              ; preds = %891
  store i32 0, ptr %19, align 4, !tbaa !42
  %898 = load i32, ptr %14, align 4, !tbaa !40
  %899 = add i32 %898, 1
  store i32 %899, ptr %14, align 4, !tbaa !40
  %900 = getelementptr inbounds i8, ptr %0, i64 236
  %901 = load i32, ptr %900, align 4, !tbaa !101
  %902 = icmp eq i32 %899, %901
  br i1 %902, label %903, label %912

903:                                              ; preds = %897
  store i32 0, ptr %14, align 4, !tbaa !40
  %904 = getelementptr inbounds i8, ptr %0, i64 272
  %905 = load i32, ptr %904, align 8, !tbaa !84
  %906 = add i32 %905, 1
  store i32 %906, ptr %904, align 8, !tbaa !84
  %907 = getelementptr inbounds i8, ptr %0, i64 240
  %908 = load i32, ptr %907, align 8, !tbaa !102
  %909 = icmp eq i32 %906, %908
  br i1 %909, label %910, label %912

910:                                              ; preds = %903
  store i32 0, ptr %904, align 8, !tbaa !84
  store i8 1, ptr %49, align 8, !tbaa !47
  %911 = getelementptr inbounds i8, ptr %0, i64 218
  store i8 1, ptr %911, align 2, !tbaa !103
  store i8 1, ptr %28, align 1, !tbaa !44
  br label %912

912:                                              ; preds = %393, %407, %400, %.loopexit406, %863, %877, %891, %903, %910, %897, %884, %870, %._crit_edge505, %31, %1
  invoke void @_ZN8SDMemory7receiveEv(ptr noundef nonnull align 8 dereferenceable(568) %0)
          to label %913 unwind label %53

913:                                              ; preds = %912
  %914 = getelementptr inbounds i8, ptr %0, i64 136
  %915 = load ptr, ptr %914, align 8, !tbaa !104
  %916 = invoke noundef zeroext i1 @_ZN4Fifo7isEmptyEv(ptr noundef nonnull align 8 dereferenceable(120) %915)
          to label %917 unwind label %53

917:                                              ; preds = %913
  br i1 %916, label %.loopexit, label %.preheader393

.preheader393:                                    ; preds = %917
  %918 = getelementptr inbounds i8, ptr %0, i64 400
  %919 = getelementptr inbounds i8, ptr %0, i64 344
  %920 = getelementptr inbounds i8, ptr %0, i64 440
  %921 = getelementptr inbounds i8, ptr %0, i64 208
  %922 = getelementptr inbounds i8, ptr %0, i64 544
  %923 = getelementptr inbounds i8, ptr %0, i64 112
  %924 = getelementptr inbounds i8, ptr %0, i64 436
  %925 = getelementptr inbounds i8, ptr %0, i64 292
  %926 = getelementptr inbounds i8, ptr %0, i64 221
  br label %927

927:                                              ; preds = %.preheader393, %1014
  %.0302 = phi i32 [ %1015, %1014 ], [ 0, %.preheader393 ]
  %928 = load ptr, ptr %914, align 8, !tbaa !104
  %929 = invoke noundef i32 @_ZN4Fifo4sizeEv(ptr noundef nonnull align 8 dereferenceable(120) %928)
          to label %930 unwind label %932

930:                                              ; preds = %927
  %931 = icmp ult i32 %.0302, %929
  br i1 %931, label %934, label %.loopexit

932:                                              ; preds = %927
  %933 = landingpad { ptr, i32 }
          cleanup
  br label %1017

934:                                              ; preds = %930
  %935 = load ptr, ptr %914, align 8, !tbaa !104
  %936 = invoke noundef ptr @_ZN4Fifo3popEv(ptr noundef nonnull align 8 dereferenceable(120) %935)
          to label %937 unwind label %947

937:                                              ; preds = %934
  %938 = call noundef i32 @_ZNK11DataPackage6get_vnEv(ptr noundef nonnull align 8 dereferenceable(64) %936)
  %939 = call noundef float @_ZNK11DataPackage8get_dataEv(ptr noundef nonnull align 8 dereferenceable(64) %936)
  %940 = load ptr, ptr %918, align 8, !tbaa !105
  %941 = zext i32 %938 to i64
  %942 = getelementptr inbounds ptr, ptr %940, i64 %941
  %943 = load ptr, ptr %942, align 8, !tbaa !80
  %944 = load i32, ptr %943, align 8, !tbaa !106
  %945 = icmp eq i32 %938, %944
  br i1 %945, label %949, label %946

946:                                              ; preds = %937
  call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 700, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8SDMemory5cycleEv) #12
  unreachable

947:                                              ; preds = %934
  %948 = landingpad { ptr, i32 }
          cleanup
  br label %1017

949:                                              ; preds = %937
  %950 = getelementptr inbounds i8, ptr %943, i64 121
  %951 = load i8, ptr %950, align 1, !tbaa !108, !range !45, !noundef !46
  %952 = trunc nuw i8 %951 to i1
  br i1 %952, label %953, label %964

953:                                              ; preds = %949
  %954 = getelementptr inbounds i8, ptr %943, i64 8
  %955 = load i32, ptr %954, align 8, !tbaa !109
  %956 = load i32, ptr %4, align 8, !tbaa !5
  %957 = load ptr, ptr %919, align 8, !tbaa !110
  %958 = zext i32 %955 to i64
  %959 = getelementptr inbounds i32, ptr %957, i64 %958
  store i32 %956, ptr %959, align 4, !tbaa !111
  %960 = load i32, ptr %920, align 8, !tbaa !112
  %961 = add i32 %960, 1
  store i32 %961, ptr %920, align 8, !tbaa !112
  %962 = load ptr, ptr %921, align 8, !tbaa !113
  %963 = getelementptr inbounds float, ptr %962, i64 %958
  store float %939, ptr %963, align 4, !tbaa !66
  br label %964

964:                                              ; preds = %953, %949
  %965 = load i32, ptr %10, align 8, !tbaa !38
  %966 = add i32 %965, 1
  store i32 %966, ptr %10, align 8, !tbaa !38
  %967 = call noundef i32 @_ZNK11DataPackage13getOutputPortEv(ptr noundef nonnull align 8 dereferenceable(64) %936)
  %968 = zext i32 %967 to i64
  %969 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %922, i64 noundef %968) #9
  %970 = load i32, ptr %969, align 4, !tbaa !111
  %971 = add i32 %970, 1
  store i32 %971, ptr %969, align 4, !tbaa !111
  %972 = load ptr, ptr %918, align 8, !tbaa !105
  %973 = getelementptr inbounds ptr, ptr %972, i64 %941
  %974 = load ptr, ptr %973, align 8, !tbaa !80
  %975 = getelementptr inbounds i8, ptr %974, i64 100
  %976 = load i32, ptr %975, align 4, !tbaa !114
  %977 = add i32 %976, 1
  store i32 %977, ptr %975, align 4, !tbaa !114
  %978 = getelementptr inbounds i8, ptr %974, i64 96
  %979 = load i32, ptr %978, align 8, !tbaa !115
  %980 = icmp ult i32 %977, %979
  br i1 %980, label %983, label %1004

981:                                              ; preds = %1010
  %982 = landingpad { ptr, i32 }
          cleanup
  br label %1017

983:                                              ; preds = %964
  %984 = load i32, ptr %923, align 8, !tbaa !53
  %985 = zext i32 %984 to i64
  %986 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %985) #10
          to label %.preheader unwind label %993

.preheader:                                       ; preds = %983
  %.not559 = icmp eq i32 %984, 0
  br i1 %.not559, label %._crit_edge531, label %.lr.ph530.preheader

.lr.ph530.preheader:                              ; preds = %.preheader
  call void @llvm.memset.p0.i64(ptr nonnull align 1 %986, i8 0, i64 %985, i1 false), !tbaa !54
  br label %._crit_edge531

._crit_edge531:                                   ; preds = %.lr.ph530.preheader, %.preheader
  %987 = load ptr, ptr %16, align 8, !tbaa !41
  %988 = call noundef i32 @_ZNK4Tile11get_VN_SizeEv(ptr noundef nonnull align 4 dereferenceable(41) %987)
  %989 = mul i32 %988, %938
  %990 = zext i32 %989 to i64
  %991 = getelementptr inbounds i8, ptr %986, i64 %990
  store i8 1, ptr %991, align 1, !tbaa !54
  %992 = invoke noalias noundef nonnull dereferenceable(64) ptr @_Znwm(i64 noundef 64) #10
          to label %995 unwind label %1000

993:                                              ; preds = %983
  %994 = landingpad { ptr, i32 }
          cleanup
  br label %1017

995:                                              ; preds = %._crit_edge531
  %996 = load i32, ptr %923, align 8, !tbaa !53
  invoke void @_ZN11DataPackageC1Emf9operand_tj9traffic_tPbj(ptr noundef nonnull align 8 dereferenceable(64) %992, i64 noundef 4, float noundef %939, i32 noundef 3, i32 noundef 0, i32 noundef 1, ptr noundef nonnull %986, i32 noundef %996)
          to label %997 unwind label %1002

997:                                              ; preds = %995
  %998 = load i32, ptr %924, align 4, !tbaa !116
  %999 = add i32 %998, 1
  store i32 %999, ptr %924, align 4, !tbaa !116
  invoke void @_ZN8SDMemory23sendPackageToInputFifosEP11DataPackage(ptr noundef nonnull align 8 dereferenceable(568) %0, ptr noundef nonnull %992)
          to label %1005 unwind label %1000

1000:                                             ; preds = %997, %._crit_edge531
  %1001 = landingpad { ptr, i32 }
          cleanup
  br label %1017

1002:                                             ; preds = %995
  %1003 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %992, i64 noundef 64) #11
  br label %1017

1004:                                             ; preds = %964
  store i32 0, ptr %975, align 4, !tbaa !114
  br label %1005

1005:                                             ; preds = %997, %1004
  %1006 = load i32, ptr %10, align 8, !tbaa !38
  %1007 = load i32, ptr %925, align 4, !tbaa !117
  %1008 = icmp eq i32 %1006, %1007
  br i1 %1008, label %1009, label %1010

1009:                                             ; preds = %1005
  store i8 1, ptr %926, align 1, !tbaa !118
  br label %1010

1010:                                             ; preds = %1009, %1005
  %1011 = load ptr, ptr %918, align 8, !tbaa !105
  %1012 = getelementptr inbounds ptr, ptr %1011, i64 %941
  %1013 = load ptr, ptr %1012, align 8, !tbaa !80
  invoke void @_ZN13VNAT_Register6updateEv(ptr noundef nonnull align 8 dereferenceable(122) %1013)
          to label %1014 unwind label %981

1014:                                             ; preds = %1010
  call void @_ZN11DataPackageD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %936) #9
  call void @_ZdlPvm(ptr noundef %936, i64 noundef 64) #11
  %1015 = add nuw nsw i32 %.0302, 1
  br label %927, !llvm.loop !119

.loopexit:                                        ; preds = %930, %917
  invoke void @_ZN8SDMemory4sendEv(ptr noundef nonnull align 8 dereferenceable(568) %0)
          to label %1016 unwind label %53

1016:                                             ; preds = %.loopexit
  call void @_ZNSt6vectorIP11DataPackageSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #9
  call void @_ZNSt6vectorIP11DataPackageSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #9
  ret void

1017:                                             ; preds = %.split.split.us, %.split.us.split.us.split.us, %932, %981, %1000, %1002, %993, %947, %260, %262, %130, %385, %383, %862, %.split518.us, %.split524.us, %.split521.us, %.split512.us, %53
  %.pn378 = phi { ptr, i32 } [ %54, %53 ], [ %131, %130 ], [ %261, %260 ], [ %263, %262 ], [ %384, %383 ], [ %386, %385 ], [ %848, %.split512.us ], [ %851, %.split518.us ], [ %853, %.split524.us ], [ %852, %.split521.us ], [ %.us-phi493, %862 ], [ %933, %932 ], [ %948, %947 ], [ %982, %981 ], [ %994, %993 ], [ %1001, %1000 ], [ %1003, %1002 ], [ %849, %.split.split.us ], [ %854, %.split.us.split.us.split.us ]
  call void @_ZNSt6vectorIP11DataPackageSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #9
  call void @_ZNSt6vectorIP11DataPackageSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #9
  resume { ptr, i32 } %.pn378
}

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

declare void @_ZN11DataPackageC1Emf9operand_tj9traffic_tPbj(ptr noundef nonnull align 8 dereferenceable(64), i64 noundef, float noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) unnamed_addr #6

declare void @_ZN11DataPackage13setIterationKEj(ptr noundef nonnull align 8 dereferenceable(64), i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8SDMemory23sendPackageToInputFifosEP11DataPackage(ptr noundef nonnull align 8 dereferenceable(568), ptr noundef) local_unnamed_addr #1 align 2

declare void @_ZN11DataPackageC1Emf9operand_tj9traffic_tj(ptr noundef nonnull align 8 dereferenceable(64), i64 noundef, float noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8DNNLayer11get_stridesEv(ptr noundef nonnull align 8 dereferenceable(84)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Tile11get_VN_SizeEv(ptr noundef nonnull align 4 dereferenceable(41)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8SDMemory7receiveEv(ptr noundef nonnull align 8 dereferenceable(568)) local_unnamed_addr #1 align 2

declare noundef zeroext i1 @_ZN4Fifo7isEmptyEv(ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #6

declare noundef i32 @_ZN4Fifo4sizeEv(ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #6

declare noundef ptr @_ZN4Fifo3popEv(ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK11DataPackage6get_vnEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK11DataPackage8get_dataEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK11DataPackage13getOutputPortEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8SDMemory4sendEv(ptr noundef nonnull align 8 dereferenceable(568)) local_unnamed_addr #1 align 2

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

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

!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, !9, i64 408}
!6 = !{!"_ZTS8SDMemory", !7, i64 0, !14, i64 48, !14, i64 56, !14, i64 64, !14, i64 72, !14, i64 80, !16, i64 88, !9, i64 112, !9, i64 116, !9, i64 120, !9, i64 124, !9, i64 128, !9, i64 132, !14, i64 136, !20, i64 144, !20, i64 168, !14, i64 192, !14, i64 200, !14, i64 208, !24, i64 216, !24, i64 217, !24, i64 218, !24, i64 219, !24, i64 220, !24, i64 221, !9, i64 224, !9, i64 228, !9, i64 232, !9, i64 236, !9, i64 240, !9, i64 244, !9, i64 248, !9, i64 252, !9, i64 256, !9, i64 260, !9, i64 264, !9, i64 268, !9, i64 272, !9, i64 276, !9, i64 280, !9, i64 284, !9, i64 288, !9, i64 292, !9, i64 296, !9, i64 300, !9, i64 304, !9, i64 308, !9, i64 312, !9, i64 316, !9, i64 320, !9, i64 324, !9, i64 328, !9, i64 332, !9, i64 336, !14, i64 344, !25, i64 352, !16, i64 376, !14, i64 400, !9, i64 408, !30, i64 416}
!7 = !{!"_ZTS16MemoryController", !8, i64 0}
!8 = !{!"_ZTS4Unit", !9, i64 8, !12, i64 16}
!9 = !{!"int", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !13, i64 0, !15, i64 8, !10, i64 16}
!13 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !14, i64 0}
!14 = !{!"any pointer", !10, i64 0}
!15 = !{!"long", !10, i64 0}
!16 = !{!"_ZTSSt6vectorIP10ConnectionSaIS1_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIP10ConnectionSaIS1_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIP10ConnectionSaIS1_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIP10ConnectionSaIS1_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!20 = !{!"_ZTSSt6vectorIP4FifoSaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIP4FifoSaIS1_EE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIP4FifoSaIS1_EE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIP4FifoSaIS1_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!24 = !{!"bool", !10, i64 0}
!25 = !{!"_ZTSNSt7__cxx114listIP11DataPackageSaIS2_EEE", !26, i64 0}
!26 = !{!"_ZTSNSt7__cxx1110_List_baseIP11DataPackageSaIS2_EEE", !27, i64 0}
!27 = !{!"_ZTSNSt7__cxx1110_List_baseIP11DataPackageSaIS2_EE10_List_implE", !28, i64 0}
!28 = !{!"_ZTSNSt8__detail17_List_node_headerE", !29, i64 0, !15, i64 16}
!29 = !{!"_ZTSNSt8__detail15_List_node_baseE", !14, i64 0, !14, i64 8}
!30 = !{!"_ZTS13SDMemoryStats", !31, i64 0, !9, i64 8, !9, i64 12, !9, i64 16, !9, i64 20, !9, i64 24, !9, i64 28, !9, i64 32, !9, i64 36, !9, i64 40, !9, i64 44, !32, i64 48, !33, i64 56, !33, i64 80, !33, i64 104, !33, i64 128}
!31 = !{!"_ZTS5Stats"}
!32 = !{!"_ZTS8Dataflow", !10, i64 0}
!33 = !{!"_ZTSSt6vectorIjSaIjEE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!37 = !{!6, !9, i64 424}
!38 = !{!6, !9, i64 288}
!39 = !{!6, !9, i64 296}
!40 = !{!6, !9, i64 268}
!41 = !{!6, !14, i64 56}
!42 = !{!6, !9, i64 276}
!43 = !{!6, !14, i64 48}
!44 = !{!6, !24, i64 219}
!45 = !{i8 0, i8 2}
!46 = !{}
!47 = !{!6, !24, i64 216}
!48 = distinct !{!48, !49}
!49 = !{!"llvm.loop.mustprogress"}
!50 = distinct !{!50, !49}
!51 = distinct !{!51, !49}
!52 = distinct !{!52, !49}
!53 = !{!6, !9, i64 112}
!54 = !{!24, !24, i64 0}
!55 = !{!6, !9, i64 264}
!56 = !{!6, !9, i64 256}
!57 = !{!6, !9, i64 260}
!58 = distinct !{!58, !49}
!59 = distinct !{!59, !49}
!60 = distinct !{!60, !49}
!61 = !{!6, !9, i64 428}
!62 = !{!6, !14, i64 192}
!63 = !{!6, !9, i64 336}
!64 = !{!6, !9, i64 308}
!65 = !{!6, !9, i64 304}
!66 = !{!67, !67, i64 0}
!67 = !{!"float", !10, i64 0}
!68 = distinct !{!68, !49}
!69 = distinct !{!69, !49}
!70 = distinct !{!70, !49}
!71 = distinct !{!71, !49}
!72 = distinct !{!72, !49}
!73 = distinct !{!73, !49}
!74 = !{!6, !9, i64 228}
!75 = !{!6, !9, i64 224}
!76 = !{!6, !9, i64 232}
!77 = distinct !{!77, !49}
!78 = distinct !{!78, !49}
!79 = distinct !{!79, !49}
!80 = !{!14, !14, i64 0}
!81 = distinct !{!81, !49}
!82 = distinct !{!82, !49}
!83 = distinct !{!83, !49}
!84 = !{!6, !9, i64 272}
!85 = !{!6, !9, i64 280}
!86 = !{!6, !9, i64 284}
!87 = distinct !{!87, !49}
!88 = distinct !{!88, !49}
!89 = distinct !{!89, !49}
!90 = distinct !{!90, !49}
!91 = distinct !{!91, !49}
!92 = distinct !{!92, !49}
!93 = distinct !{!93, !49}
!94 = !{!6, !9, i64 432}
!95 = !{!6, !14, i64 200}
!96 = !{!6, !9, i64 320}
!97 = distinct !{!97, !49}
!98 = !{!6, !9, i64 252}
!99 = !{!6, !9, i64 248}
!100 = !{!6, !9, i64 244}
!101 = !{!6, !9, i64 236}
!102 = !{!6, !9, i64 240}
!103 = !{!6, !24, i64 218}
!104 = !{!6, !14, i64 136}
!105 = !{!6, !14, i64 400}
!106 = !{!107, !9, i64 0}
!107 = !{!"_ZTS13VNAT_Register", !9, i64 0, !9, i64 4, !9, i64 8, !9, i64 12, !9, i64 16, !9, i64 20, !9, i64 24, !9, i64 28, !9, i64 32, !9, i64 36, !9, i64 40, !9, i64 44, !9, i64 48, !9, i64 52, !9, i64 56, !9, i64 60, !9, i64 64, !9, i64 68, !9, i64 72, !9, i64 76, !9, i64 80, !9, i64 84, !9, i64 88, !9, i64 92, !9, i64 96, !9, i64 100, !14, i64 104, !14, i64 112, !24, i64 120, !24, i64 121}
!108 = !{!107, !24, i64 121}
!109 = !{!107, !9, i64 8}
!110 = !{!6, !14, i64 344}
!111 = !{!9, !9, i64 0}
!112 = !{!6, !9, i64 440}
!113 = !{!6, !14, i64 208}
!114 = !{!107, !9, i64 100}
!115 = !{!107, !9, i64 96}
!116 = !{!6, !9, i64 436}
!117 = !{!6, !9, i64 292}
!118 = !{!6, !24, i64 221}
!119 = distinct !{!119, !49}


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