; LLVM IR from stonne-simulator/omega :: omega-code/stonne/src/other_main/main.ll (Z19runDenseGEMMCommandiPPc)

; 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::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%class.Config = type { i32, %class.DSNetworkConfig, %class.DSwitchConfig, %class.MSNetworkConfig, %class.MSwitchConfig, %class.ASNetworkConfig, %class.ASwitchConfig, %class.LookUpTableConfig, %class.SDMemoryConfig }
%class.DSNetworkConfig = type { i32 }
%class.DSwitchConfig = type { i32, i32, i32, i32 }
%class.MSNetworkConfig = type { i32, i32, i32, i32 }
%class.MSwitchConfig = type { i32, i32, i32, i32, i32, i32 }
%class.ASNetworkConfig = type { i32, i32 }
%class.ASwitchConfig = type { i32, i32, i32, i32, i32, i32 }
%class.LookUpTableConfig = type { i32, i32 }
%class.SDMemoryConfig = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%class.MSNetworkStats = type { %class.Stats, i32, i32, i32, i32, i32, i32, i32, i32 }
%class.Stats = type { ptr }
%class.ASNetworkStats = type <{ %class.Stats, i32, i32, i32, i32, i32, i32, i32, [4 x i8] }>
%class.DSNetworkStats = type <{ %class.Stats, i32, i32, i32, i32, i32, [4 x i8] }>
%class.SDMemoryStats = type { %class.Stats, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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 }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.8 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [27 x i8], align 1
@__PRETTY_FUNCTION__._Z19runDenseGEMMCommandiPPc = external hidden unnamed_addr constant [39 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z19runDenseGEMMCommandiPPc(i32 noundef %0, ptr noundef %1) #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca float, align 4
  %6 = alloca i32, align 4
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca ptr, align 8
  %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 %class.Config, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %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 ptr, align 8
  %34 = alloca %class.Config, align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca ptr, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca %class.MSNetworkStats, align 8
  %42 = alloca %class.ASNetworkStats, align 8
  %43 = alloca %class.DSNetworkStats, align 8
  %44 = alloca %class.SDMemoryStats, align 8
  %45 = alloca i32, align 4
  %46 = alloca float, align 4
  store i32 %0, ptr %3, align 4, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #12
  store float 0x3FA99999A0000000, ptr %5, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #12
  store i32 10, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %47 unwind label %108

47:                                               ; preds = %2
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #12
  store i32 1, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #12
  store i32 3, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #12
  store i32 1, ptr %13, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #12
  store i32 1, ptr %14, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #12
  store i32 1, ptr %15, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #12
  store i32 1, ptr %16, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 160, ptr %17) #12
  invoke void @_ZN6ConfigC1Ev(ptr noundef nonnull align 4 dereferenceable(160) %17)
          to label %48 unwind label %112

48:                                               ; preds = %47
  %49 = load i32, ptr %3, align 4, !tbaa !5
  %50 = load ptr, ptr %4, align 8, !tbaa !9
  invoke void @_Z25configDenseGEMMParametersiPPcR6ConfigRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERjSA_SA_SA_SA_SA_(i32 noundef %49, ptr noundef %50, ptr noundef nonnull align 4 dereferenceable(160) %17, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %51 unwind label %112

51:                                               ; preds = %48
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #12
  %52 = load i32, ptr %11, align 4, !tbaa !5
  %53 = load i32, ptr %12, align 4, !tbaa !5
  %54 = mul i32 %52, %53
  store i32 %54, ptr %18, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #12
  %55 = load i32, ptr %13, align 4, !tbaa !5
  %56 = load i32, ptr %12, align 4, !tbaa !5
  %57 = mul i32 %55, %56
  store i32 %57, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #12
  %58 = load i32, ptr %11, align 4, !tbaa !5
  %59 = load i32, ptr %13, align 4, !tbaa !5
  %60 = mul i32 %58, %59
  store i32 %60, ptr %20, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #12
  %61 = load i32, ptr %18, align 4, !tbaa !5
  %62 = zext i32 %61 to i64
  %63 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %62, i64 4)
  %64 = extractvalue { i64, i1 } %63, 1
  %65 = extractvalue { i64, i1 } %63, 0
  %66 = select i1 %64, i64 -1, i64 %65
  %67 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %66) #13
          to label %68 unwind label %116

68:                                               ; preds = %51
  store ptr %67, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #12
  %69 = load i32, ptr %19, align 4, !tbaa !5
  %70 = zext i32 %69 to i64
  %71 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %70, i64 4)
  %72 = extractvalue { i64, i1 } %71, 1
  %73 = extractvalue { i64, i1 } %71, 0
  %74 = select i1 %72, i64 -1, i64 %73
  %75 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %74) #13
          to label %76 unwind label %120

76:                                               ; preds = %68
  store ptr %75, ptr %22, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #12
  %77 = load i32, ptr %20, align 4, !tbaa !5
  %78 = zext i32 %77 to i64
  %79 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %78, i64 4)
  %80 = extractvalue { i64, i1 } %79, 1
  %81 = extractvalue { i64, i1 } %79, 0
  %82 = select i1 %80, i64 -1, i64 %81
  %83 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %82) #13
          to label %84 unwind label %124

84:                                               ; preds = %76
  store ptr %83, ptr %23, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #12
  %85 = load i32, ptr %20, align 4, !tbaa !5
  %86 = zext i32 %85 to i64
  %87 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %86, i64 4)
  %88 = extractvalue { i64, i1 } %87, 1
  %89 = extractvalue { i64, i1 } %87, 0
  %90 = select i1 %88, i64 -1, i64 %89
  %91 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %90) #13
          to label %92 unwind label %128

92:                                               ; preds = %84
  store ptr %91, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #12
  %93 = load i32, ptr %11, align 4, !tbaa !5
  %94 = load i32, ptr %13, align 4, !tbaa !5
  %95 = mul i32 %93, %94
  %96 = zext i32 %95 to i64
  %97 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %96, i64 4)
  %98 = extractvalue { i64, i1 } %97, 1
  %99 = extractvalue { i64, i1 } %97, 0
  %100 = select i1 %98, i64 -1, i64 %99
  %101 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %100) #13
          to label %102 unwind label %132

102:                                              ; preds = %92
  store ptr %101, ptr %25, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #12
  store i32 0, ptr %26, align 4, !tbaa !5
  br label %103

103:                                              ; preds = %145, %102
  %104 = load i32, ptr %26, align 4, !tbaa !5
  %105 = load i32, ptr %18, align 4, !tbaa !5
  %106 = icmp ult i32 %104, %105
  br i1 %106, label %136, label %107

107:                                              ; preds = %103
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #12
  br label %148

108:                                              ; preds = %2
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %9, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #12
  br label %665

112:                                              ; preds = %48, %47
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %9, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %10, align 4
  br label %664

116:                                              ; preds = %51
  %117 = landingpad { ptr, i32 }
          cleanup
  %118 = extractvalue { ptr, i32 } %117, 0
  store ptr %118, ptr %9, align 8
  %119 = extractvalue { ptr, i32 } %117, 1
  store i32 %119, ptr %10, align 4
  br label %663

120:                                              ; preds = %68
  %121 = landingpad { ptr, i32 }
          cleanup
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %9, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %10, align 4
  br label %662

124:                                              ; preds = %76
  %125 = landingpad { ptr, i32 }
          cleanup
  %126 = extractvalue { ptr, i32 } %125, 0
  store ptr %126, ptr %9, align 8
  %127 = extractvalue { ptr, i32 } %125, 1
  store i32 %127, ptr %10, align 4
  br label %661

128:                                              ; preds = %84
  %129 = landingpad { ptr, i32 }
          cleanup
  %130 = extractvalue { ptr, i32 } %129, 0
  store ptr %130, ptr %9, align 8
  %131 = extractvalue { ptr, i32 } %129, 1
  store i32 %131, ptr %10, align 4
  br label %660

132:                                              ; preds = %262, %216, %214, %168, %166, %92
  %133 = landingpad { ptr, i32 }
          cleanup
  %134 = extractvalue { ptr, i32 } %133, 0
  store ptr %134, ptr %9, align 8
  %135 = extractvalue { ptr, i32 } %133, 1
  store i32 %135, ptr %10, align 4
  br label %659

136:                                              ; preds = %103
  %137 = call i32 @rand() #12
  %138 = load i32, ptr %6, align 4, !tbaa !5
  %139 = urem i32 %137, %138
  %140 = uitofp i32 %139 to float
  %141 = load ptr, ptr %21, align 8, !tbaa !9
  %142 = load i32, ptr %26, align 4, !tbaa !5
  %143 = sext i32 %142 to i64
  %144 = getelementptr inbounds float, ptr %141, i64 %143
  store float %140, ptr %144, align 4, !tbaa !11
  br label %145

145:                                              ; preds = %136
  %146 = load i32, ptr %26, align 4, !tbaa !5
  %147 = add nsw i32 %146, 1
  store i32 %147, ptr %26, align 4, !tbaa !5
  br label %103, !llvm.loop !13

148:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #12
  store i32 0, ptr %27, align 4, !tbaa !5
  br label %149

149:                                              ; preds = %163, %148
  %150 = load i32, ptr %27, align 4, !tbaa !5
  %151 = load i32, ptr %19, align 4, !tbaa !5
  %152 = icmp ult i32 %150, %151
  br i1 %152, label %154, label %153

153:                                              ; preds = %149
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #12
  br label %166

154:                                              ; preds = %149
  %155 = call i32 @rand() #12
  %156 = load i32, ptr %6, align 4, !tbaa !5
  %157 = urem i32 %155, %156
  %158 = uitofp i32 %157 to float
  %159 = load ptr, ptr %22, align 8, !tbaa !9
  %160 = load i32, ptr %27, align 4, !tbaa !5
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds float, ptr %159, i64 %161
  store float %158, ptr %162, align 4, !tbaa !11
  br label %163

163:                                              ; preds = %154
  %164 = load i32, ptr %27, align 4, !tbaa !5
  %165 = add nsw i32 %164, 1
  store i32 %165, ptr %27, align 4, !tbaa !5
  br label %149, !llvm.loop !15

166:                                              ; preds = %153
  %167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.18)
          to label %168 unwind label %132

168:                                              ; preds = %166
  %169 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %170 unwind label %132

170:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #12
  store i32 0, ptr %28, align 4, !tbaa !5
  br label %171

171:                                              ; preds = %206, %170
  %172 = load i32, ptr %28, align 4, !tbaa !5
  %173 = load i32, ptr %11, align 4, !tbaa !5
  %174 = icmp ult i32 %172, %173
  br i1 %174, label %176, label %175

175:                                              ; preds = %171
  store i32 8, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #12
  br label %214

176:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #12
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %177

177:                                              ; preds = %196, %176
  %178 = load i32, ptr %30, align 4, !tbaa !5
  %179 = load i32, ptr %12, align 4, !tbaa !5
  %180 = icmp ult i32 %178, %179
  br i1 %180, label %182, label %181

181:                                              ; preds = %177
  store i32 11, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #12
  br label %203

182:                                              ; preds = %177
  %183 = load ptr, ptr %21, align 8, !tbaa !9
  %184 = load i32, ptr %28, align 4, !tbaa !5
  %185 = load i32, ptr %12, align 4, !tbaa !5
  %186 = mul i32 %184, %185
  %187 = load i32, ptr %30, align 4, !tbaa !5
  %188 = add i32 %186, %187
  %189 = zext i32 %188 to i64
  %190 = getelementptr inbounds float, ptr %183, i64 %189
  %191 = load float, ptr %190, align 4, !tbaa !11
  %192 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %191)
          to label %193 unwind label %199

193:                                              ; preds = %182
  %194 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %192, ptr noundef @.str.19)
          to label %195 unwind label %199

195:                                              ; preds = %193
  br label %196

196:                                              ; preds = %195
  %197 = load i32, ptr %30, align 4, !tbaa !5
  %198 = add nsw i32 %197, 1
  store i32 %198, ptr %30, align 4, !tbaa !5
  br label %177, !llvm.loop !16

199:                                              ; preds = %193, %182
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %9, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #12
  br label %213

203:                                              ; preds = %181
  %204 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %205 unwind label %209

205:                                              ; preds = %203
  br label %206

206:                                              ; preds = %205
  %207 = load i32, ptr %28, align 4, !tbaa !5
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr %28, align 4, !tbaa !5
  br label %171, !llvm.loop !17

209:                                              ; preds = %203
  %210 = landingpad { ptr, i32 }
          cleanup
  %211 = extractvalue { ptr, i32 } %210, 0
  store ptr %211, ptr %9, align 8
  %212 = extractvalue { ptr, i32 } %210, 1
  store i32 %212, ptr %10, align 4
  br label %213

213:                                              ; preds = %209, %199
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #12
  br label %659

214:                                              ; preds = %175
  %215 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.20)
          to label %216 unwind label %132

216:                                              ; preds = %214
  %217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %215, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %218 unwind label %132

218:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #12
  store i32 0, ptr %31, align 4, !tbaa !5
  br label %219

219:                                              ; preds = %254, %218
  %220 = load i32, ptr %31, align 4, !tbaa !5
  %221 = load i32, ptr %13, align 4, !tbaa !5
  %222 = icmp ult i32 %220, %221
  br i1 %222, label %224, label %223

223:                                              ; preds = %219
  store i32 14, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #12
  br label %262

224:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #12
  store i32 0, ptr %32, align 4, !tbaa !5
  br label %225

225:                                              ; preds = %244, %224
  %226 = load i32, ptr %32, align 4, !tbaa !5
  %227 = load i32, ptr %12, align 4, !tbaa !5
  %228 = icmp ult i32 %226, %227
  br i1 %228, label %230, label %229

229:                                              ; preds = %225
  store i32 17, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #12
  br label %251

230:                                              ; preds = %225
  %231 = load ptr, ptr %22, align 8, !tbaa !9
  %232 = load i32, ptr %31, align 4, !tbaa !5
  %233 = load i32, ptr %12, align 4, !tbaa !5
  %234 = mul i32 %232, %233
  %235 = load i32, ptr %32, align 4, !tbaa !5
  %236 = add i32 %234, %235
  %237 = zext i32 %236 to i64
  %238 = getelementptr inbounds float, ptr %231, i64 %237
  %239 = load float, ptr %238, align 4, !tbaa !11
  %240 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %239)
          to label %241 unwind label %247

241:                                              ; preds = %230
  %242 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %240, ptr noundef @.str.19)
          to label %243 unwind label %247

243:                                              ; preds = %241
  br label %244

244:                                              ; preds = %243
  %245 = load i32, ptr %32, align 4, !tbaa !5
  %246 = add nsw i32 %245, 1
  store i32 %246, ptr %32, align 4, !tbaa !5
  br label %225, !llvm.loop !18

247:                                              ; preds = %241, %230
  %248 = landingpad { ptr, i32 }
          cleanup
  %249 = extractvalue { ptr, i32 } %248, 0
  store ptr %249, ptr %9, align 8
  %250 = extractvalue { ptr, i32 } %248, 1
  store i32 %250, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #12
  br label %261

251:                                              ; preds = %229
  %252 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %253 unwind label %257

253:                                              ; preds = %251
  br label %254

254:                                              ; preds = %253
  %255 = load i32, ptr %31, align 4, !tbaa !5
  %256 = add nsw i32 %255, 1
  store i32 %256, ptr %31, align 4, !tbaa !5
  br label %219, !llvm.loop !19

257:                                              ; preds = %251
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %9, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %10, align 4
  br label %261

261:                                              ; preds = %257, %247
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #12
  br label %659

262:                                              ; preds = %223
  %263 = load i32, ptr %12, align 4, !tbaa !5
  %264 = load i32, ptr %11, align 4, !tbaa !5
  %265 = load i32, ptr %13, align 4, !tbaa !5
  %266 = load i32, ptr %12, align 4, !tbaa !5
  %267 = load ptr, ptr %22, align 8, !tbaa !9
  %268 = load ptr, ptr %21, align 8, !tbaa !9
  %269 = load ptr, ptr %24, align 8, !tbaa !9
  invoke void @_Z16sequential_layerjjjjjjjjjPfS_S_(i32 noundef 1, i32 noundef %263, i32 noundef 1, i32 noundef %264, i32 noundef 1, i32 noundef 1, i32 noundef %265, i32 noundef %266, i32 noundef 1, ptr noundef %267, ptr noundef %268, ptr noundef %269)
          to label %270 unwind label %132

270:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #12
  %271 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 320) #13
          to label %272 unwind label %310

272:                                              ; preds = %270
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %34, ptr align 4 %17, i64 160, i1 false), !tbaa.struct !20
  invoke void @_ZN6StonneC1E6Config(ptr noundef nonnull align 8 dereferenceable(316) %271, ptr noundef byval(%class.Config) align 8 %34)
          to label %273 unwind label %314

273:                                              ; preds = %272
  store ptr %271, ptr %33, align 8, !tbaa !9
  %274 = load ptr, ptr %33, align 8, !tbaa !9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %275 unwind label %310

275:                                              ; preds = %273
  %276 = load i32, ptr %13, align 4, !tbaa !5
  %277 = load i32, ptr %12, align 4, !tbaa !5
  %278 = load i32, ptr %11, align 4, !tbaa !5
  %279 = load ptr, ptr %21, align 8, !tbaa !9
  %280 = load ptr, ptr %22, align 8, !tbaa !9
  %281 = load ptr, ptr %23, align 8, !tbaa !9
  invoke void @_ZN6Stonne13loadDenseGEMMENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjjjPfS6_S6_8Dataflow(ptr noundef nonnull align 8 dereferenceable(316) %274, ptr noundef %35, i32 noundef %276, i32 noundef %277, i32 noundef %278, ptr noundef %279, ptr noundef %280, ptr noundef %281, i32 noundef 0)
          to label %282 unwind label %318

282:                                              ; preds = %275
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #12
  %283 = load ptr, ptr %33, align 8, !tbaa !9
  %284 = load ptr, ptr %25, align 8, !tbaa !9
  invoke void @_ZN6Stonne12loadClockingEPj(ptr noundef nonnull align 8 dereferenceable(316) %283, ptr noundef %284)
          to label %285 unwind label %310

285:                                              ; preds = %282
  %286 = load ptr, ptr %33, align 8, !tbaa !9
  %287 = load i32, ptr %16, align 4, !tbaa !5
  %288 = load i32, ptr %15, align 4, !tbaa !5
  %289 = load i32, ptr %14, align 4, !tbaa !5
  invoke void @_ZN6Stonne12loadGEMMTileEjjj(ptr noundef nonnull align 8 dereferenceable(316) %286, i32 noundef %287, i32 noundef %288, i32 noundef %289)
          to label %290 unwind label %310

290:                                              ; preds = %285
  %291 = load ptr, ptr %33, align 8, !tbaa !9
  invoke void @_ZN6Stonne3runEv(ptr noundef nonnull align 8 dereferenceable(316) %291)
          to label %292 unwind label %310

292:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #12
  %293 = load i32, ptr %11, align 4, !tbaa !5
  %294 = load i32, ptr %13, align 4, !tbaa !5
  %295 = mul i32 %293, %294
  %296 = zext i32 %295 to i64
  %297 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %296, i64 4)
  %298 = extractvalue { i64, i1 } %297, 1
  %299 = extractvalue { i64, i1 } %297, 0
  %300 = select i1 %298, i64 -1, i64 %299
  %301 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %300) #13
          to label %302 unwind label %322

302:                                              ; preds = %292
  store ptr %301, ptr %36, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #12
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %303

303:                                              ; preds = %336, %302
  %304 = load i32, ptr %37, align 4, !tbaa !5
  %305 = load i32, ptr %11, align 4, !tbaa !5
  %306 = load i32, ptr %13, align 4, !tbaa !5
  %307 = mul i32 %305, %306
  %308 = icmp ult i32 %304, %307
  br i1 %308, label %326, label %309

309:                                              ; preds = %303
  store i32 20, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #12
  br label %339

310:                                              ; preds = %290, %285, %282, %273, %270
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %9, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %10, align 4
  br label %658

314:                                              ; preds = %272
  %315 = landingpad { ptr, i32 }
          cleanup
  %316 = extractvalue { ptr, i32 } %315, 0
  store ptr %316, ptr %9, align 8
  %317 = extractvalue { ptr, i32 } %315, 1
  store i32 %317, ptr %10, align 4
  call void @_ZdlPvm(ptr noundef %271, i64 noundef 320) #14
  br label %658

318:                                              ; preds = %275
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %9, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #12
  br label %658

322:                                              ; preds = %292
  %323 = landingpad { ptr, i32 }
          cleanup
  %324 = extractvalue { ptr, i32 } %323, 0
  store ptr %324, ptr %9, align 8
  %325 = extractvalue { ptr, i32 } %323, 1
  store i32 %325, ptr %10, align 4
  br label %657

326:                                              ; preds = %303
  %327 = load ptr, ptr %25, align 8, !tbaa !9
  %328 = load i32, ptr %37, align 4, !tbaa !5
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds i32, ptr %327, i64 %329
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = load ptr, ptr %36, align 8, !tbaa !9
  %333 = load i32, ptr %37, align 4, !tbaa !5
  %334 = sext i32 %333 to i64
  %335 = getelementptr inbounds i32, ptr %332, i64 %334
  store i32 %331, ptr %335, align 4, !tbaa !5
  br label %336

336:                                              ; preds = %326
  %337 = load i32, ptr %37, align 4, !tbaa !5
  %338 = add nsw i32 %337, 1
  store i32 %338, ptr %37, align 4, !tbaa !5
  br label %303, !llvm.loop !29

339:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #12
  store i32 0, ptr %38, align 4, !tbaa !5
  br label %340

340:                                              ; preds = %373, %339
  %341 = load i32, ptr %38, align 4, !tbaa !5
  %342 = load i32, ptr %11, align 4, !tbaa !5
  %343 = icmp ult i32 %341, %342
  br i1 %343, label %345, label %344

344:                                              ; preds = %340
  store i32 23, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #12
  br label %376

345:                                              ; preds = %340
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #12
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %346

346:                                              ; preds = %369, %345
  %347 = load i32, ptr %39, align 4, !tbaa !5
  %348 = load i32, ptr %13, align 4, !tbaa !5
  %349 = icmp ult i32 %347, %348
  br i1 %349, label %351, label %350

350:                                              ; preds = %346
  store i32 26, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #12
  br label %372

351:                                              ; preds = %346
  %352 = load ptr, ptr %36, align 8, !tbaa !9
  %353 = load i32, ptr %39, align 4, !tbaa !5
  %354 = load i32, ptr %11, align 4, !tbaa !5
  %355 = mul i32 %353, %354
  %356 = load i32, ptr %38, align 4, !tbaa !5
  %357 = add i32 %355, %356
  %358 = zext i32 %357 to i64
  %359 = getelementptr inbounds i32, ptr %352, i64 %358
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = load ptr, ptr %25, align 8, !tbaa !9
  %362 = load i32, ptr %38, align 4, !tbaa !5
  %363 = load i32, ptr %13, align 4, !tbaa !5
  %364 = mul i32 %362, %363
  %365 = load i32, ptr %39, align 4, !tbaa !5
  %366 = add i32 %364, %365
  %367 = zext i32 %366 to i64
  %368 = getelementptr inbounds i32, ptr %361, i64 %367
  store i32 %360, ptr %368, align 4, !tbaa !5
  br label %369

369:                                              ; preds = %351
  %370 = load i32, ptr %39, align 4, !tbaa !5
  %371 = add nsw i32 %370, 1
  store i32 %371, ptr %39, align 4, !tbaa !5
  br label %346, !llvm.loop !30

372:                                              ; preds = %350
  br label %373

373:                                              ; preds = %372
  %374 = load i32, ptr %38, align 4, !tbaa !5
  %375 = add nsw i32 %374, 1
  store i32 %375, ptr %38, align 4, !tbaa !5
  br label %340, !llvm.loop !31

376:                                              ; preds = %344
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #12
  %377 = load i32, ptr %13, align 4, !tbaa !5
  %378 = sub i32 %377, 1
  store i32 %378, ptr %40, align 4, !tbaa !5
  br label %379

379:                                              ; preds = %396, %376
  %380 = load i32, ptr %40, align 4, !tbaa !5
  %381 = load i32, ptr %11, align 4, !tbaa !5
  %382 = load i32, ptr %13, align 4, !tbaa !5
  %383 = mul i32 %381, %382
  %384 = icmp ult i32 %380, %383
  br i1 %384, label %386, label %385

385:                                              ; preds = %379
  store i32 29, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #12
  br label %404

386:                                              ; preds = %379
  %387 = load ptr, ptr %25, align 8, !tbaa !9
  %388 = load i32, ptr %40, align 4, !tbaa !5
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds i32, ptr %387, i64 %389
  %391 = load i32, ptr %390, align 4, !tbaa !5
  %392 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %391)
          to label %393 unwind label %400

393:                                              ; preds = %386
  %394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %392, ptr noundef @.str.21)
          to label %395 unwind label %400

395:                                              ; preds = %393
  br label %396

396:                                              ; preds = %395
  %397 = load i32, ptr %13, align 4, !tbaa !5
  %398 = load i32, ptr %40, align 4, !tbaa !5
  %399 = add i32 %398, %397
  store i32 %399, ptr %40, align 4, !tbaa !5
  br label %379, !llvm.loop !32

400:                                              ; preds = %393, %386
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %9, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #12
  br label %657

404:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 40, ptr %41) #12
  %405 = load ptr, ptr %33, align 8, !tbaa !9
  invoke void @_ZN6Stonne25getMultiplierNetworkStatsEv(ptr dead_on_unwind writable sret(%class.MSNetworkStats) align 8 %41, ptr noundef nonnull align 8 dereferenceable(316) %405)
          to label %406 unwind label %530

406:                                              ; preds = %404
  %407 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.22)
          to label %408 unwind label %530

408:                                              ; preds = %406
  %409 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.23)
          to label %410 unwind label %530

410:                                              ; preds = %408
  %411 = getelementptr inbounds %class.MSNetworkStats, ptr %41, i32 0, i32 3
  %412 = load i32, ptr %411, align 8, !tbaa !33
  %413 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %409, i32 noundef %412)
          to label %414 unwind label %530

414:                                              ; preds = %410
  %415 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %413, ptr noundef @.str.24)
          to label %416 unwind label %530

416:                                              ; preds = %414
  %417 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.25)
          to label %418 unwind label %530

418:                                              ; preds = %416
  %419 = getelementptr inbounds %class.MSNetworkStats, ptr %41, i32 0, i32 4
  %420 = load i32, ptr %419, align 4, !tbaa !36
  %421 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %417, i32 noundef %420)
          to label %422 unwind label %530

422:                                              ; preds = %418
  %423 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %421, ptr noundef @.str.24)
          to label %424 unwind label %530

424:                                              ; preds = %422
  %425 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.26)
          to label %426 unwind label %530

426:                                              ; preds = %424
  %427 = getelementptr inbounds %class.MSNetworkStats, ptr %41, i32 0, i32 5
  %428 = load i32, ptr %427, align 8, !tbaa !37
  %429 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %425, i32 noundef %428)
          to label %430 unwind label %530

430:                                              ; preds = %426
  %431 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %429, ptr noundef @.str.24)
          to label %432 unwind label %530

432:                                              ; preds = %430
  %433 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.27)
          to label %434 unwind label %530

434:                                              ; preds = %432
  %435 = getelementptr inbounds %class.MSNetworkStats, ptr %41, i32 0, i32 6
  %436 = load i32, ptr %435, align 4, !tbaa !38
  %437 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %433, i32 noundef %436)
          to label %438 unwind label %530

438:                                              ; preds = %434
  %439 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %437, ptr noundef @.str.24)
          to label %440 unwind label %530

440:                                              ; preds = %438
  %441 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.28)
          to label %442 unwind label %530

442:                                              ; preds = %440
  %443 = getelementptr inbounds %class.MSNetworkStats, ptr %41, i32 0, i32 7
  %444 = load i32, ptr %443, align 8, !tbaa !39
  %445 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %441, i32 noundef %444)
          to label %446 unwind label %530

446:                                              ; preds = %442
  %447 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %445, ptr noundef @.str.24)
          to label %448 unwind label %530

448:                                              ; preds = %446
  %449 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.29)
          to label %450 unwind label %530

450:                                              ; preds = %448
  %451 = getelementptr inbounds %class.MSNetworkStats, ptr %41, i32 0, i32 8
  %452 = load i32, ptr %451, align 4, !tbaa !40
  %453 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %449, i32 noundef %452)
          to label %454 unwind label %530

454:                                              ; preds = %450
  %455 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %453, ptr noundef @.str.24)
          to label %456 unwind label %530

456:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 40, ptr %42) #12
  %457 = load ptr, ptr %33, align 8, !tbaa !9
  invoke void @_ZN6Stonne17getASNetworkStatsEv(ptr dead_on_unwind writable sret(%class.ASNetworkStats) align 8 %42, ptr noundef nonnull align 8 dereferenceable(316) %457)
          to label %458 unwind label %534

458:                                              ; preds = %456
  %459 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.30)
          to label %460 unwind label %534

460:                                              ; preds = %458
  %461 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.31)
          to label %462 unwind label %534

462:                                              ; preds = %460
  %463 = getelementptr inbounds %class.ASNetworkStats, ptr %42, i32 0, i32 6
  %464 = load i32, ptr %463, align 4, !tbaa !41
  %465 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %461, i32 noundef %464)
          to label %466 unwind label %534

466:                                              ; preds = %462
  %467 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %465, ptr noundef @.str.24)
          to label %468 unwind label %534

468:                                              ; preds = %466
  %469 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.32)
          to label %470 unwind label %534

470:                                              ; preds = %468
  %471 = getelementptr inbounds %class.ASNetworkStats, ptr %42, i32 0, i32 5
  %472 = load i32, ptr %471, align 8, !tbaa !43
  %473 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %469, i32 noundef %472)
          to label %474 unwind label %534

474:                                              ; preds = %470
  %475 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %473, ptr noundef @.str.24)
          to label %476 unwind label %534

476:                                              ; preds = %474
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #12
  %477 = load ptr, ptr %33, align 8, !tbaa !9
  invoke void @_ZN6Stonne17getDSNetworkStatsEv(ptr dead_on_unwind writable sret(%class.DSNetworkStats) align 8 %43, ptr noundef nonnull align 8 dereferenceable(316) %477)
          to label %478 unwind label %538

478:                                              ; preds = %476
  %479 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.33)
          to label %480 unwind label %538

480:                                              ; preds = %478
  %481 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.31)
          to label %482 unwind label %538

482:                                              ; preds = %480
  %483 = getelementptr inbounds %class.DSNetworkStats, ptr %43, i32 0, i32 5
  %484 = load i32, ptr %483, align 8, !tbaa !44
  %485 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %481, i32 noundef %484)
          to label %486 unwind label %538

486:                                              ; preds = %482
  %487 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %485, ptr noundef @.str.24)
          to label %488 unwind label %538

488:                                              ; preds = %486
  call void @llvm.lifetime.start.p0(i64 152, ptr %44) #12
  %489 = load ptr, ptr %33, align 8, !tbaa !9
  invoke void @_ZN6Stonne14getMemoryStatsEv(ptr dead_on_unwind writable sret(%class.SDMemoryStats) align 8 %44, ptr noundef nonnull align 8 dereferenceable(316) %489)
          to label %490 unwind label %542

490:                                              ; preds = %488
  %491 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.34)
          to label %492 unwind label %546

492:                                              ; preds = %490
  %493 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.35)
          to label %494 unwind label %546

494:                                              ; preds = %492
  %495 = getelementptr inbounds %class.SDMemoryStats, ptr %44, i32 0, i32 2
  %496 = load i32, ptr %495, align 4, !tbaa !46
  %497 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %493, i32 noundef %496)
          to label %498 unwind label %546

498:                                              ; preds = %494
  %499 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %497, ptr noundef @.str.24)
          to label %500 unwind label %546

500:                                              ; preds = %498
  %501 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.36)
          to label %502 unwind label %546

502:                                              ; preds = %500
  %503 = getelementptr inbounds %class.SDMemoryStats, ptr %44, i32 0, i32 3
  %504 = load i32, ptr %503, align 8, !tbaa !53
  %505 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %501, i32 noundef %504)
          to label %506 unwind label %546

506:                                              ; preds = %502
  %507 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %505, ptr noundef @.str.24)
          to label %508 unwind label %546

508:                                              ; preds = %506
  %509 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.37)
          to label %510 unwind label %546

510:                                              ; preds = %508
  %511 = getelementptr inbounds %class.SDMemoryStats, ptr %44, i32 0, i32 4
  %512 = load i32, ptr %511, align 4, !tbaa !54
  %513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %509, i32 noundef %512)
          to label %514 unwind label %546

514:                                              ; preds = %510
  %515 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %513, ptr noundef @.str.24)
          to label %516 unwind label %546

516:                                              ; preds = %514
  %517 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.38)
          to label %518 unwind label %546

518:                                              ; preds = %516
  %519 = getelementptr inbounds %class.SDMemoryStats, ptr %44, i32 0, i32 5
  %520 = load i32, ptr %519, align 8, !tbaa !55
  %521 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %517, i32 noundef %520)
          to label %522 unwind label %546

522:                                              ; preds = %518
  %523 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %521, ptr noundef @.str.24)
          to label %524 unwind label %546

524:                                              ; preds = %522
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #12
  store i32 0, ptr %45, align 4, !tbaa !5
  br label %525

525:                                              ; preds = %622, %524
  %526 = load i32, ptr %45, align 4, !tbaa !5
  %527 = load i32, ptr %20, align 4, !tbaa !5
  %528 = icmp ult i32 %526, %527
  br i1 %528, label %550, label %529

529:                                              ; preds = %525
  store i32 32, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #12
  br label %625

530:                                              ; preds = %454, %450, %448, %446, %442, %440, %438, %434, %432, %430, %426, %424, %422, %418, %416, %414, %410, %408, %406, %404
  %531 = landingpad { ptr, i32 }
          cleanup
  %532 = extractvalue { ptr, i32 } %531, 0
  store ptr %532, ptr %9, align 8
  %533 = extractvalue { ptr, i32 } %531, 1
  store i32 %533, ptr %10, align 4
  br label %656

534:                                              ; preds = %474, %470, %468, %466, %462, %460, %458, %456
  %535 = landingpad { ptr, i32 }
          cleanup
  %536 = extractvalue { ptr, i32 } %535, 0
  store ptr %536, ptr %9, align 8
  %537 = extractvalue { ptr, i32 } %535, 1
  store i32 %537, ptr %10, align 4
  br label %655

538:                                              ; preds = %486, %482, %480, %478, %476
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %9, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %10, align 4
  br label %654

542:                                              ; preds = %488
  %543 = landingpad { ptr, i32 }
          cleanup
  %544 = extractvalue { ptr, i32 } %543, 0
  store ptr %544, ptr %9, align 8
  %545 = extractvalue { ptr, i32 } %543, 1
  store i32 %545, ptr %10, align 4
  br label %653

546:                                              ; preds = %629, %627, %625, %522, %518, %516, %514, %510, %508, %506, %502, %500, %498, %494, %492, %490
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %9, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %10, align 4
  br label %652

550:                                              ; preds = %525
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #12
  %551 = load ptr, ptr %23, align 8, !tbaa !9
  %552 = load i32, ptr %45, align 4, !tbaa !5
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds float, ptr %551, i64 %553
  %555 = load float, ptr %554, align 4, !tbaa !11
  %556 = load ptr, ptr %24, align 8, !tbaa !9
  %557 = load i32, ptr %45, align 4, !tbaa !5
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds float, ptr %556, i64 %558
  %560 = load float, ptr %559, align 4, !tbaa !11
  %561 = fsub float %555, %560
  %562 = invoke noundef float @_ZSt4fabsf(float noundef %561)
          to label %563 unwind label %617

563:                                              ; preds = %550
  store float %562, ptr %46, align 4, !tbaa !11
  %564 = load float, ptr %46, align 4, !tbaa !11
  %565 = load float, ptr %5, align 4, !tbaa !11
  %566 = fcmp ogt float %564, %565
  br i1 %566, label %567, label %621

567:                                              ; preds = %563
  %568 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.11)
          to label %569 unwind label %617

569:                                              ; preds = %567
  %570 = load i32, ptr %45, align 4, !tbaa !5
  %571 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %568, i32 noundef %570)
          to label %572 unwind label %617

572:                                              ; preds = %569
  %573 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %571, ptr noundef @.str.12)
          to label %574 unwind label %617

574:                                              ; preds = %572
  %575 = load ptr, ptr %23, align 8, !tbaa !9
  %576 = load i32, ptr %45, align 4, !tbaa !5
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds float, ptr %575, i64 %577
  %579 = load float, ptr %578, align 4, !tbaa !11
  %580 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %573, float noundef %579)
          to label %581 unwind label %617

581:                                              ; preds = %574
  %582 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %580, ptr noundef @.str.13)
          to label %583 unwind label %617

583:                                              ; preds = %581
  %584 = load ptr, ptr %24, align 8, !tbaa !9
  %585 = load i32, ptr %45, align 4, !tbaa !5
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds float, ptr %584, i64 %586
  %588 = load float, ptr %587, align 4, !tbaa !11
  %589 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %582, float noundef %588)
          to label %590 unwind label %617

590:                                              ; preds = %583
  %591 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %589, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %592 unwind label %617

592:                                              ; preds = %590
  %593 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.14)
          to label %594 unwind label %617

594:                                              ; preds = %592
  %595 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %593, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %596 unwind label %617

596:                                              ; preds = %594
  %597 = load ptr, ptr %21, align 8, !tbaa !9
  %598 = icmp eq ptr %597, null
  br i1 %598, label %600, label %599

599:                                              ; preds = %596
  call void @_ZdaPv(ptr noundef %597) #14
  br label %600

600:                                              ; preds = %599, %596
  %601 = load ptr, ptr %22, align 8, !tbaa !9
  %602 = icmp eq ptr %601, null
  br i1 %602, label %604, label %603

603:                                              ; preds = %600
  call void @_ZdaPv(ptr noundef %601) #14
  br label %604

604:                                              ; preds = %603, %600
  %605 = load ptr, ptr %23, align 8, !tbaa !9
  %606 = icmp eq ptr %605, null
  br i1 %606, label %608, label %607

607:                                              ; preds = %604
  call void @_ZdaPv(ptr noundef %605) #14
  br label %608

608:                                              ; preds = %607, %604
  %609 = load ptr, ptr %24, align 8, !tbaa !9
  %610 = icmp eq ptr %609, null
  br i1 %610, label %612, label %611

611:                                              ; preds = %608
  call void @_ZdaPv(ptr noundef %609) #14
  br label %612

612:                                              ; preds = %611, %608
  %613 = load ptr, ptr %33, align 8, !tbaa !9
  %614 = icmp eq ptr %613, null
  br i1 %614, label %616, label %615

615:                                              ; preds = %612
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %613) #12
  call void @_ZdlPvm(ptr noundef %613, i64 noundef 320) #14
  br label %616

616:                                              ; preds = %615, %612
  call void @__assert_fail(ptr noundef @.str.15, ptr noundef @.str.16, i32 noundef 316, ptr noundef @__PRETTY_FUNCTION__._Z19runDenseGEMMCommandiPPc) #15
  unreachable

617:                                              ; preds = %594, %592, %590, %583, %581, %574, %572, %569, %567, %550
  %618 = landingpad { ptr, i32 }
          cleanup
  %619 = extractvalue { ptr, i32 } %618, 0
  store ptr %619, ptr %9, align 8
  %620 = extractvalue { ptr, i32 } %618, 1
  store i32 %620, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #12
  br label %652

621:                                              ; preds = %563
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #12
  br label %622

622:                                              ; preds = %621
  %623 = load i32, ptr %45, align 4, !tbaa !5
  %624 = add nsw i32 %623, 1
  store i32 %624, ptr %45, align 4, !tbaa !5
  br label %525, !llvm.loop !56

625:                                              ; preds = %529
  %626 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.17)
          to label %627 unwind label %546

627:                                              ; preds = %625
  %628 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %626, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %629 unwind label %546

629:                                              ; preds = %627
  %630 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %628, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %631 unwind label %546

631:                                              ; preds = %629
  %632 = load ptr, ptr %21, align 8, !tbaa !9
  %633 = icmp eq ptr %632, null
  br i1 %633, label %635, label %634

634:                                              ; preds = %631
  call void @_ZdaPv(ptr noundef %632) #14
  br label %635

635:                                              ; preds = %634, %631
  %636 = load ptr, ptr %22, align 8, !tbaa !9
  %637 = icmp eq ptr %636, null
  br i1 %637, label %639, label %638

638:                                              ; preds = %635
  call void @_ZdaPv(ptr noundef %636) #14
  br label %639

639:                                              ; preds = %638, %635
  %640 = load ptr, ptr %23, align 8, !tbaa !9
  %641 = icmp eq ptr %640, null
  br i1 %641, label %643, label %642

642:                                              ; preds = %639
  call void @_ZdaPv(ptr noundef %640) #14
  br label %643

643:                                              ; preds = %642, %639
  %644 = load ptr, ptr %24, align 8, !tbaa !9
  %645 = icmp eq ptr %644, null
  br i1 %645, label %647, label %646

646:                                              ; preds = %643
  call void @_ZdaPv(ptr noundef %644) #14
  br label %647

647:                                              ; preds = %646, %643
  %648 = load ptr, ptr %33, align 8, !tbaa !9
  %649 = icmp eq ptr %648, null
  br i1 %649, label %651, label %650

650:                                              ; preds = %647
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %648) #12
  call void @_ZdlPvm(ptr noundef %648, i64 noundef 320) #14
  br label %651

651:                                              ; preds = %650, %647
  store i32 1, ptr %29, align 4
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %44) #12
  call void @llvm.lifetime.end.p0(i64 152, ptr %44) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %42) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %41) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #12
  call void @llvm.lifetime.end.p0(i64 160, ptr %17) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #12
  ret i1 true

652:                                              ; preds = %617, %546
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %44) #12
  br label %653

653:                                              ; preds = %652, %542
  call void @llvm.lifetime.end.p0(i64 152, ptr %44) #12
  br label %654

654:                                              ; preds = %653, %538
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #12
  br label %655

655:                                              ; preds = %654, %534
  call void @llvm.lifetime.end.p0(i64 40, ptr %42) #12
  br label %656

656:                                              ; preds = %655, %530
  call void @llvm.lifetime.end.p0(i64 40, ptr %41) #12
  br label %657

657:                                              ; preds = %656, %400, %322
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #12
  br label %658

658:                                              ; preds = %657, %318, %314, %310
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #12
  br label %659

659:                                              ; preds = %658, %261, %213, %132
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #12
  br label %660

660:                                              ; preds = %659, %128
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #12
  br label %661

661:                                              ; preds = %660, %124
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #12
  br label %662

662:                                              ; preds = %661, %120
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #12
  br label %663

663:                                              ; preds = %662, %116
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #12
  br label %664

664:                                              ; preds = %663, %112
  call void @llvm.lifetime.end.p0(i64 160, ptr %17) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #12
  br label %665

665:                                              ; preds = %664, %108
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #12
  br label %666

666:                                              ; preds = %665
  %667 = load ptr, ptr %9, align 8
  %668 = load i32, ptr %10, align 4
  %669 = insertvalue { ptr, i32 } poison, ptr %667, 0
  %670 = insertvalue { ptr, i32 } %669, i32 %668, 1
  resume { ptr, i32 } %670
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

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

declare void @_ZN6ConfigC1Ev(ptr noundef nonnull align 4 dereferenceable(160)) unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #2 align 2

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

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

; Function Attrs: nounwind
declare i32 @rand() #7

declare void @_Z16sequential_layerjjjjjjjjjPfS_S_(i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) #4

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

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

declare void @_ZN6StonneC1E6Config(ptr noundef nonnull align 8 dereferenceable(316), ptr noundef byval(%class.Config) align 8) unnamed_addr #4

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

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

declare void @_ZN6Stonne3runEv(ptr noundef nonnull align 8 dereferenceable(316)) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt4fabsf(float noundef) #10

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8), float noundef) #2 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z25configDenseGEMMParametersiPPcR6ConfigRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERjSA_SA_SA_SA_SA_(i32 noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #2

declare void @_ZN6Stonne13loadDenseGEMMENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjjjPfS6_S6_8Dataflow(ptr noundef nonnull align 8 dereferenceable(316), ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) #4

declare void @_ZN6Stonne12loadClockingEPj(ptr noundef nonnull align 8 dereferenceable(316), ptr noundef) #4

declare void @_ZN6Stonne12loadGEMMTileEjjj(ptr noundef nonnull align 8 dereferenceable(316), i32 noundef, i32 noundef, i32 noundef) #4

declare void @_ZN6Stonne25getMultiplierNetworkStatsEv(ptr dead_on_unwind writable sret(%class.MSNetworkStats) align 8, ptr noundef nonnull align 8 dereferenceable(316)) #4

declare void @_ZN6Stonne17getASNetworkStatsEv(ptr dead_on_unwind writable sret(%class.ASNetworkStats) align 8, ptr noundef nonnull align 8 dereferenceable(316)) #4

declare void @_ZN6Stonne17getDSNetworkStatsEv(ptr dead_on_unwind writable sret(%class.DSNetworkStats) align 8, ptr noundef nonnull align 8 dereferenceable(316)) #4

declare void @_ZN6Stonne14getMemoryStatsEv(ptr dead_on_unwind writable sret(%class.SDMemoryStats) align 8, ptr noundef nonnull align 8 dereferenceable(316)) #4

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 #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: readwrite) }
attributes #9 = { 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 #10 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { 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 #12 = { nounwind }
attributes #13 = { builtin allocsize(0) }
attributes #14 = { builtin nounwind }
attributes #15 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = !{i64 0, i64 4, !5, i64 4, i64 4, !5, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 4, !5, i64 20, i64 4, !5, i64 24, i64 4, !21, i64 28, i64 4, !5, i64 32, i64 4, !5, i64 36, i64 4, !5, i64 40, i64 4, !5, i64 44, i64 4, !5, i64 48, i64 4, !5, i64 52, i64 4, !5, i64 56, i64 4, !5, i64 60, i64 4, !5, i64 64, i64 4, !23, i64 68, i64 4, !5, i64 72, i64 4, !5, i64 76, i64 4, !5, i64 80, i64 4, !5, i64 84, i64 4, !5, i64 88, i64 4, !5, i64 92, i64 4, !5, i64 96, i64 4, !5, i64 100, i64 4, !5, i64 104, i64 4, !25, i64 108, i64 4, !5, i64 112, i64 4, !5, i64 116, i64 4, !5, i64 120, i64 4, !5, i64 124, i64 4, !5, i64 128, i64 4, !5, i64 132, i64 4, !27, i64 136, i64 4, !5, i64 140, i64 4, !5, i64 144, i64 4, !5, i64 148, i64 4, !5, i64 152, i64 4, !5, i64 156, i64 4, !5}
!21 = !{!22, !22, i64 0}
!22 = !{!"_ZTS19MultiplierNetwork_t", !7, i64 0}
!23 = !{!24, !24, i64 0}
!24 = !{!"_ZTS15ReduceNetwork_t", !7, i64 0}
!25 = !{!26, !26, i64 0}
!26 = !{!"_ZTS18MemoryController_t", !7, i64 0}
!27 = !{!28, !28, i64 0}
!28 = !{!"_ZTS17MemoryHierarchy_t", !7, i64 0}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = !{!34, !6, i64 16}
!34 = !{!"_ZTS14MSNetworkStats", !35, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36}
!35 = !{!"_ZTS5Stats"}
!36 = !{!34, !6, i64 20}
!37 = !{!34, !6, i64 24}
!38 = !{!34, !6, i64 28}
!39 = !{!34, !6, i64 32}
!40 = !{!34, !6, i64 36}
!41 = !{!42, !6, i64 28}
!42 = !{!"_ZTS14ASNetworkStats", !35, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32}
!43 = !{!42, !6, i64 24}
!44 = !{!45, !6, i64 24}
!45 = !{!"_ZTS14DSNetworkStats", !35, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24}
!46 = !{!47, !6, i64 12}
!47 = !{!"_ZTS13SDMemoryStats", !35, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 40, !6, i64 44, !48, i64 48, !49, i64 56, !49, i64 80, !49, i64 104, !49, i64 128}
!48 = !{!"_ZTS8Dataflow", !7, i64 0}
!49 = !{!"_ZTSSt6vectorIjSaIjEE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!53 = !{!47, !6, i64 16}
!54 = !{!47, !6, i64 20}
!55 = !{!47, !6, i64 24}
!56 = distinct !{!56, !14}


; 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::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%class.Config = type { i32, %class.DSNetworkConfig, %class.DSwitchConfig, %class.MSNetworkConfig, %class.MSwitchConfig, %class.ASNetworkConfig, %class.ASwitchConfig, %class.LookUpTableConfig, %class.SDMemoryConfig }
%class.DSNetworkConfig = type { i32 }
%class.DSwitchConfig = type { i32, i32, i32, i32 }
%class.MSNetworkConfig = type { i32, i32, i32, i32 }
%class.MSwitchConfig = type { i32, i32, i32, i32, i32, i32 }
%class.ASNetworkConfig = type { i32, i32 }
%class.ASwitchConfig = type { i32, i32, i32, i32, i32, i32 }
%class.LookUpTableConfig = type { i32, i32 }
%class.SDMemoryConfig = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%class.MSNetworkStats = type { %class.Stats, i32, i32, i32, i32, i32, i32, i32, i32 }
%class.Stats = type { ptr }
%class.ASNetworkStats = type <{ %class.Stats, i32, i32, i32, i32, i32, i32, i32, [4 x i8] }>
%class.DSNetworkStats = type <{ %class.Stats, i32, i32, i32, i32, i32, [4 x i8] }>
%class.SDMemoryStats = type { %class.Stats, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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 }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.8 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [27 x i8], align 1
@__PRETTY_FUNCTION__._Z19runDenseGEMMCommandiPPc = external hidden unnamed_addr constant [39 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z19runDenseGEMMCommandiPPc(i32 noundef %0, ptr noundef %1) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator", align 1
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca %class.Config, align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %class.MSNetworkStats, align 8
  %14 = alloca %class.ASNetworkStats, align 8
  %15 = alloca %class.DSNetworkStats, align 8
  %16 = alloca %class.SDMemoryStats, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %17 unwind label %41

17:                                               ; preds = %2
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #11
  store i32 1, ptr %5, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #11
  store i32 3, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #11
  store i32 1, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #11
  store i32 1, ptr %8, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #11
  store i32 1, ptr %9, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #11
  store i32 1, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %11) #11
  invoke void @_ZN6ConfigC1Ev(ptr noundef nonnull align 4 dereferenceable(160) %11)
          to label %18 unwind label %43

18:                                               ; preds = %17
  invoke void @_Z25configDenseGEMMParametersiPPcR6ConfigRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERjSA_SA_SA_SA_SA_(i32 noundef %0, ptr noundef %1, ptr noundef nonnull align 4 dereferenceable(160) %11, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %10)
          to label %19 unwind label %43

19:                                               ; preds = %18
  %20 = load i32, ptr %5, align 4, !tbaa !5
  %21 = load i32, ptr %6, align 4, !tbaa !5
  %22 = mul i32 %21, %20
  %23 = load i32, ptr %7, align 4, !tbaa !5
  %24 = mul i32 %23, %21
  %25 = mul i32 %23, %20
  %26 = zext i32 %22 to i64
  %27 = shl nuw nsw i64 %26, 2
  %28 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %27) #12
          to label %29 unwind label %45

29:                                               ; preds = %19
  %30 = zext i32 %24 to i64
  %31 = shl nuw nsw i64 %30, 2
  %32 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %31) #12
          to label %33 unwind label %47

33:                                               ; preds = %29
  %34 = zext i32 %25 to i64
  %35 = shl nuw nsw i64 %34, 2
  %36 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %35) #12
          to label %37 unwind label %49

37:                                               ; preds = %33
  %38 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %35) #12
          to label %39 unwind label %51

39:                                               ; preds = %37
  %40 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %35) #12
          to label %.preheader150 unwind label %53

.preheader150:                                    ; preds = %39
  %.not = icmp eq i32 %22, 0
  br i1 %.not, label %.preheader149, label %.lr.ph

.preheader149:                                    ; preds = %.lr.ph, %.preheader150
  %.not184 = icmp eq i32 %24, 0
  br i1 %.not184, label %._crit_edge, label %.lr.ph158

41:                                               ; preds = %2
  %42 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #11
  br label %389

43:                                               ; preds = %18, %17
  %44 = landingpad { ptr, i32 }
          cleanup
  br label %388

45:                                               ; preds = %19
  %46 = landingpad { ptr, i32 }
          cleanup
  br label %388

47:                                               ; preds = %29
  %48 = landingpad { ptr, i32 }
          cleanup
  br label %388

49:                                               ; preds = %33
  %50 = landingpad { ptr, i32 }
          cleanup
  br label %388

51:                                               ; preds = %37
  %52 = landingpad { ptr, i32 }
          cleanup
  br label %388

53:                                               ; preds = %._crit_edge168, %91, %._crit_edge163, %64, %._crit_edge, %39
  %54 = landingpad { ptr, i32 }
          cleanup
  br label %388

.lr.ph:                                           ; preds = %.preheader150, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %.preheader150 ]
  %55 = call i32 @rand() #11
  %56 = urem i32 %55, 10
  %57 = uitofp nneg i32 %56 to float
  %58 = getelementptr inbounds float, ptr %28, i64 %indvars.iv
  store float %57, ptr %58, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %26
  br i1 %exitcond.not, label %.preheader149, label %.lr.ph, !llvm.loop !11

._crit_edge:                                      ; preds = %.lr.ph158, %.preheader149
  %59 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.18)
          to label %64 unwind label %53

.lr.ph158:                                        ; preds = %.preheader149, %.lr.ph158
  %indvars.iv198 = phi i64 [ %indvars.iv.next199, %.lr.ph158 ], [ 0, %.preheader149 ]
  %60 = call i32 @rand() #11
  %61 = urem i32 %60, 10
  %62 = uitofp nneg i32 %61 to float
  %63 = getelementptr inbounds float, ptr %32, i64 %indvars.iv198
  store float %62, ptr %63, align 4, !tbaa !9
  %indvars.iv.next199 = add nuw nsw i64 %indvars.iv198, 1
  %exitcond202.not = icmp eq i64 %indvars.iv.next199, %30
  br i1 %exitcond202.not, label %._crit_edge, label %.lr.ph158, !llvm.loop !13

64:                                               ; preds = %._crit_edge
  %65 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.preheader148 unwind label %53

.preheader148:                                    ; preds = %64
  %66 = load i32, ptr %5, align 4, !tbaa !5
  %.not185 = icmp eq i32 %66, 0
  br i1 %.not185, label %._crit_edge163, label %.preheader147

.preheader147:                                    ; preds = %.preheader148, %85
  %.0117162 = phi i32 [ %86, %85 ], [ 0, %.preheader148 ]
  %67 = load i32, ptr %6, align 4, !tbaa !5
  %.not186 = icmp eq i32 %67, 0
  br i1 %.not186, label %._crit_edge161, label %.lr.ph160

._crit_edge163:                                   ; preds = %85, %.preheader148
  %68 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.20)
          to label %91 unwind label %53

._crit_edge161:                                   ; preds = %79, %.preheader147
  %69 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %85 unwind label %89

.lr.ph160:                                        ; preds = %.preheader147, %79
  %70 = phi i32 [ %81, %79 ], [ %67, %.preheader147 ]
  %.0116159 = phi i32 [ %80, %79 ], [ 0, %.preheader147 ]
  %71 = mul i32 %70, %.0117162
  %72 = add i32 %71, %.0116159
  %73 = zext i32 %72 to i64
  %74 = getelementptr inbounds float, ptr %28, i64 %73
  %75 = load float, ptr %74, align 4, !tbaa !9
  %76 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %75)
          to label %77 unwind label %83

77:                                               ; preds = %.lr.ph160
  %78 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull @.str.19)
          to label %79 unwind label %83

79:                                               ; preds = %77
  %80 = add nuw nsw i32 %.0116159, 1
  %81 = load i32, ptr %6, align 4, !tbaa !5
  %82 = icmp ult i32 %80, %81
  br i1 %82, label %.lr.ph160, label %._crit_edge161, !llvm.loop !14

83:                                               ; preds = %77, %.lr.ph160
  %84 = landingpad { ptr, i32 }
          cleanup
  br label %388

85:                                               ; preds = %._crit_edge161
  %86 = add nuw nsw i32 %.0117162, 1
  %87 = load i32, ptr %5, align 4, !tbaa !5
  %88 = icmp ult i32 %86, %87
  br i1 %88, label %.preheader147, label %._crit_edge163, !llvm.loop !15

89:                                               ; preds = %._crit_edge161
  %90 = landingpad { ptr, i32 }
          cleanup
  br label %388

91:                                               ; preds = %._crit_edge163
  %92 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.preheader146 unwind label %53

.preheader146:                                    ; preds = %91
  %93 = load i32, ptr %7, align 4, !tbaa !5
  %.not187 = icmp eq i32 %93, 0
  br i1 %.not187, label %._crit_edge168, label %.preheader145

.preheader145:                                    ; preds = %.preheader146, %113
  %.0115167 = phi i32 [ %114, %113 ], [ 0, %.preheader146 ]
  %94 = load i32, ptr %6, align 4, !tbaa !5
  %.not188 = icmp eq i32 %94, 0
  br i1 %.not188, label %._crit_edge166, label %.lr.ph165

._crit_edge168:                                   ; preds = %113, %.preheader146
  %.lcssa153 = phi i32 [ 0, %.preheader146 ], [ %115, %113 ]
  %95 = load i32, ptr %6, align 4, !tbaa !5
  %96 = load i32, ptr %5, align 4, !tbaa !5
  invoke void @_Z16sequential_layerjjjjjjjjjPfS_S_(i32 noundef 1, i32 noundef %95, i32 noundef 1, i32 noundef %96, i32 noundef 1, i32 noundef 1, i32 noundef %.lcssa153, i32 noundef %95, i32 noundef 1, ptr noundef nonnull %32, ptr noundef nonnull %28, ptr noundef nonnull %38)
          to label %119 unwind label %53

._crit_edge166:                                   ; preds = %107, %.preheader145
  %97 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %113 unwind label %117

.lr.ph165:                                        ; preds = %.preheader145, %107
  %98 = phi i32 [ %109, %107 ], [ %94, %.preheader145 ]
  %.0114164 = phi i32 [ %108, %107 ], [ 0, %.preheader145 ]
  %99 = mul i32 %98, %.0115167
  %100 = add i32 %99, %.0114164
  %101 = zext i32 %100 to i64
  %102 = getelementptr inbounds float, ptr %32, i64 %101
  %103 = load float, ptr %102, align 4, !tbaa !9
  %104 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %103)
          to label %105 unwind label %111

105:                                              ; preds = %.lr.ph165
  %106 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull @.str.19)
          to label %107 unwind label %111

107:                                              ; preds = %105
  %108 = add nuw nsw i32 %.0114164, 1
  %109 = load i32, ptr %6, align 4, !tbaa !5
  %110 = icmp ult i32 %108, %109
  br i1 %110, label %.lr.ph165, label %._crit_edge166, !llvm.loop !16

111:                                              ; preds = %105, %.lr.ph165
  %112 = landingpad { ptr, i32 }
          cleanup
  br label %388

113:                                              ; preds = %._crit_edge166
  %114 = add nuw nsw i32 %.0115167, 1
  %115 = load i32, ptr %7, align 4, !tbaa !5
  %116 = icmp ult i32 %114, %115
  br i1 %116, label %.preheader145, label %._crit_edge168, !llvm.loop !17

117:                                              ; preds = %._crit_edge166
  %118 = landingpad { ptr, i32 }
          cleanup
  br label %388

119:                                              ; preds = %._crit_edge168
  %120 = invoke noalias noundef nonnull dereferenceable(320) ptr @_Znwm(i64 noundef 320) #12
          to label %121 unwind label %194

121:                                              ; preds = %119
  invoke void @_ZN6StonneC1E6Config(ptr noundef nonnull align 8 dereferenceable(316) %120, ptr noundef nonnull byval(%class.Config) align 8 %11)
          to label %122 unwind label %196

122:                                              ; preds = %121
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %123 unwind label %194

123:                                              ; preds = %122
  %124 = load i32, ptr %7, align 4, !tbaa !5
  %125 = load i32, ptr %6, align 4, !tbaa !5
  %126 = load i32, ptr %5, align 4, !tbaa !5
  invoke void @_ZN6Stonne13loadDenseGEMMENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjjjPfS6_S6_8Dataflow(ptr noundef nonnull align 8 dereferenceable(316) %120, ptr noundef nonnull %12, i32 noundef %124, i32 noundef %125, i32 noundef %126, ptr noundef nonnull %28, ptr noundef nonnull %32, ptr noundef nonnull %36, i32 noundef 0)
          to label %127 unwind label %198

127:                                              ; preds = %123
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  invoke void @_ZN6Stonne12loadClockingEPj(ptr noundef nonnull align 8 dereferenceable(316) %120, ptr noundef nonnull %40)
          to label %128 unwind label %194

128:                                              ; preds = %127
  %129 = load i32, ptr %10, align 4, !tbaa !5
  %130 = load i32, ptr %9, align 4, !tbaa !5
  %131 = load i32, ptr %8, align 4, !tbaa !5
  invoke void @_ZN6Stonne12loadGEMMTileEjjj(ptr noundef nonnull align 8 dereferenceable(316) %120, i32 noundef %129, i32 noundef %130, i32 noundef %131)
          to label %132 unwind label %194

132:                                              ; preds = %128
  invoke void @_ZN6Stonne3runEv(ptr noundef nonnull align 8 dereferenceable(316) %120)
          to label %133 unwind label %194

133:                                              ; preds = %132
  %134 = load i32, ptr %5, align 4, !tbaa !5
  %135 = load i32, ptr %7, align 4, !tbaa !5
  %136 = mul i32 %135, %134
  %137 = zext i32 %136 to i64
  %138 = shl nuw nsw i64 %137, 2
  %139 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %138) #12
          to label %.preheader144 unwind label %200

.preheader144:                                    ; preds = %133
  %.not189 = icmp eq i32 %136, 0
  br i1 %.not189, label %.preheader143, label %.lr.ph170.preheader

.lr.ph170.preheader:                              ; preds = %.preheader144
  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %139, ptr nonnull align 4 %40, i64 %138, i1 false), !tbaa !5
  br label %.preheader143

.preheader143:                                    ; preds = %.lr.ph170.preheader, %.preheader144
  %.not190 = icmp eq i32 %134, 0
  %.not191 = icmp eq i32 %135, 0
  %or.cond = or i1 %.not190, %.not191
  br i1 %or.cond, label %._crit_edge175, label %.preheader142.us.preheader

.preheader142.us.preheader:                       ; preds = %.preheader143
  %wide.trip.count209 = zext i32 %135 to i64
  %140 = add nsw i64 %wide.trip.count209, -1
  %min.iters.check = icmp ult i32 %135, 20
  %ident.check = icmp ne i32 %134, 1
  %141 = trunc i64 %140 to i32
  %142 = icmp ugt i64 %140, 4294967295
  %143 = trunc i64 %140 to i32
  %n.vec = and i64 %wide.trip.count209, 4294967288
  %cmp.n = icmp eq i64 %n.vec, %wide.trip.count209
  %xtraiter = and i64 %wide.trip.count209, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  %144 = add nsw i64 %wide.trip.count209, -1
  br label %.preheader142.us

.preheader142.us:                                 ; preds = %.preheader142.us.preheader, %._crit_edge173.us
  %.095174.us = phi i32 [ %193, %._crit_edge173.us ], [ 0, %.preheader142.us.preheader ]
  %145 = mul i32 %.095174.us, %135
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.preheader142.us
  %146 = mul i32 %135, %.095174.us
  %147 = xor i32 %.095174.us, -1
  %148 = icmp ult i32 %147, %141
  %149 = or i1 %148, %142
  %150 = xor i32 %146, -1
  %151 = icmp ult i32 %150, %143
  %152 = or i1 %ident.check, %149
  %153 = or i1 %151, %152
  br i1 %153, label %scalar.ph.preheader, label %vector.body

vector.body:                                      ; preds = %vector.scevcheck, %vector.body
  %index = phi i64 [ %index.next, %vector.body ], [ 0, %vector.scevcheck ]
  %154 = trunc i64 %index to i32
  %155 = add i32 %.095174.us, %154
  %156 = zext i32 %155 to i64
  %157 = getelementptr inbounds i32, ptr %139, i64 %156
  %158 = getelementptr inbounds i8, ptr %157, i64 16
  %wide.load = load <4 x i32>, ptr %157, align 4, !tbaa !5
  %wide.load225 = load <4 x i32>, ptr %158, align 4, !tbaa !5
  %159 = add i32 %145, %154
  %160 = zext i32 %159 to i64
  %161 = getelementptr inbounds i32, ptr %40, i64 %160
  %162 = getelementptr inbounds i8, ptr %161, i64 16
  store <4 x i32> %wide.load, ptr %161, align 4, !tbaa !5
  store <4 x i32> %wide.load225, ptr %162, align 4, !tbaa !5
  %index.next = add nuw i64 %index, 8
  %163 = icmp eq i64 %index.next, %n.vec
  br i1 %163, label %middle.block, label %vector.body, !llvm.loop !18

middle.block:                                     ; preds = %vector.body
  br i1 %cmp.n, label %._crit_edge173.us, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %vector.scevcheck, %.preheader142.us
  %indvars.iv206.ph = phi i64 [ 0, %vector.scevcheck ], [ 0, %.preheader142.us ], [ %n.vec, %middle.block ]
  br i1 %lcmp.mod.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol

scalar.ph.prol:                                   ; preds = %scalar.ph.preheader
  %164 = trunc nuw nsw i64 %indvars.iv206.ph to i32
  %165 = mul i32 %134, %164
  %166 = add i32 %165, %.095174.us
  %167 = zext i32 %166 to i64
  %168 = getelementptr inbounds i32, ptr %139, i64 %167
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = add i32 %145, %164
  %171 = zext i32 %170 to i64
  %172 = getelementptr inbounds i32, ptr %40, i64 %171
  store i32 %169, ptr %172, align 4, !tbaa !5
  %indvars.iv.next207.prol = or disjoint i64 %indvars.iv206.ph, 1
  br label %scalar.ph.prol.loopexit

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %indvars.iv206.unr = phi i64 [ %indvars.iv206.ph, %scalar.ph.preheader ], [ %indvars.iv.next207.prol, %scalar.ph.prol ]
  %173 = icmp eq i64 %indvars.iv206.ph, %144
  br i1 %173, label %._crit_edge173.us, label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.prol.loopexit, %scalar.ph
  %indvars.iv206 = phi i64 [ %indvars.iv.next207.1, %scalar.ph ], [ %indvars.iv206.unr, %scalar.ph.prol.loopexit ]
  %174 = trunc nuw nsw i64 %indvars.iv206 to i32
  %175 = mul i32 %134, %174
  %176 = add i32 %175, %.095174.us
  %177 = zext i32 %176 to i64
  %178 = getelementptr inbounds i32, ptr %139, i64 %177
  %179 = load i32, ptr %178, align 4, !tbaa !5
  %180 = add i32 %145, %174
  %181 = zext i32 %180 to i64
  %182 = getelementptr inbounds i32, ptr %40, i64 %181
  store i32 %179, ptr %182, align 4, !tbaa !5
  %183 = trunc i64 %indvars.iv206 to i32
  %184 = add i32 %183, 1
  %185 = mul i32 %134, %184
  %186 = add i32 %185, %.095174.us
  %187 = zext i32 %186 to i64
  %188 = getelementptr inbounds i32, ptr %139, i64 %187
  %189 = load i32, ptr %188, align 4, !tbaa !5
  %190 = add i32 %145, %184
  %191 = zext i32 %190 to i64
  %192 = getelementptr inbounds i32, ptr %40, i64 %191
  store i32 %189, ptr %192, align 4, !tbaa !5
  %indvars.iv.next207.1 = add nuw nsw i64 %indvars.iv206, 2
  %exitcond210.not.1 = icmp eq i64 %indvars.iv.next207.1, %wide.trip.count209
  br i1 %exitcond210.not.1, label %._crit_edge173.us, label %scalar.ph, !llvm.loop !21

._crit_edge173.us:                                ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block
  %193 = add nuw nsw i32 %.095174.us, 1
  %exitcond211.not = icmp eq i32 %193, %134
  br i1 %exitcond211.not, label %._crit_edge175, label %.preheader142.us, !llvm.loop !22

194:                                              ; preds = %132, %128, %127, %122, %119
  %195 = landingpad { ptr, i32 }
          cleanup
  br label %388

196:                                              ; preds = %121
  %197 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %120, i64 noundef 320) #13
  br label %388

198:                                              ; preds = %123
  %199 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  br label %388

200:                                              ; preds = %133
  %201 = landingpad { ptr, i32 }
          cleanup
  br label %388

._crit_edge175:                                   ; preds = %._crit_edge173.us, %.preheader143
  %202 = add i32 %135, -1
  %203 = icmp ult i32 %202, %136
  br i1 %203, label %.lr.ph178, label %._crit_edge179

._crit_edge179:                                   ; preds = %210, %._crit_edge175
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #11
  invoke void @_ZN6Stonne25getMultiplierNetworkStatsEv(ptr dead_on_unwind nonnull writable sret(%class.MSNetworkStats) align 8 %13, ptr noundef nonnull align 8 dereferenceable(316) %120)
          to label %218 unwind label %334

.lr.ph178:                                        ; preds = %._crit_edge175, %210
  %.093176 = phi i32 [ %212, %210 ], [ %202, %._crit_edge175 ]
  %204 = sext i32 %.093176 to i64
  %205 = getelementptr inbounds i32, ptr %40, i64 %204
  %206 = load i32, ptr %205, align 4, !tbaa !5
  %207 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %206)
          to label %208 unwind label %216

208:                                              ; preds = %.lr.ph178
  %209 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %207, ptr noundef nonnull @.str.21)
          to label %210 unwind label %216

210:                                              ; preds = %208
  %211 = load i32, ptr %7, align 4, !tbaa !5
  %212 = add i32 %211, %.093176
  %213 = load i32, ptr %5, align 4, !tbaa !5
  %214 = mul i32 %211, %213
  %215 = icmp ult i32 %212, %214
  br i1 %215, label %.lr.ph178, label %._crit_edge179, !llvm.loop !23

216:                                              ; preds = %208, %.lr.ph178
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %388

218:                                              ; preds = %._crit_edge179
  %219 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.22)
          to label %220 unwind label %334

220:                                              ; preds = %218
  %221 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.23)
          to label %222 unwind label %334

222:                                              ; preds = %220
  %223 = getelementptr inbounds i8, ptr %13, i64 16
  %224 = load i32, ptr %223, align 8, !tbaa !24
  %225 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %221, i32 noundef %224)
          to label %226 unwind label %334

226:                                              ; preds = %222
  %227 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %225, ptr noundef nonnull @.str.24)
          to label %228 unwind label %334

228:                                              ; preds = %226
  %229 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.25)
          to label %230 unwind label %334

230:                                              ; preds = %228
  %231 = getelementptr inbounds i8, ptr %13, i64 20
  %232 = load i32, ptr %231, align 4, !tbaa !27
  %233 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %229, i32 noundef %232)
          to label %234 unwind label %334

234:                                              ; preds = %230
  %235 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %233, ptr noundef nonnull @.str.24)
          to label %236 unwind label %334

236:                                              ; preds = %234
  %237 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.26)
          to label %238 unwind label %334

238:                                              ; preds = %236
  %239 = getelementptr inbounds i8, ptr %13, i64 24
  %240 = load i32, ptr %239, align 8, !tbaa !28
  %241 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %237, i32 noundef %240)
          to label %242 unwind label %334

242:                                              ; preds = %238
  %243 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %241, ptr noundef nonnull @.str.24)
          to label %244 unwind label %334

244:                                              ; preds = %242
  %245 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.27)
          to label %246 unwind label %334

246:                                              ; preds = %244
  %247 = getelementptr inbounds i8, ptr %13, i64 28
  %248 = load i32, ptr %247, align 4, !tbaa !29
  %249 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %245, i32 noundef %248)
          to label %250 unwind label %334

250:                                              ; preds = %246
  %251 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %249, ptr noundef nonnull @.str.24)
          to label %252 unwind label %334

252:                                              ; preds = %250
  %253 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.28)
          to label %254 unwind label %334

254:                                              ; preds = %252
  %255 = getelementptr inbounds i8, ptr %13, i64 32
  %256 = load i32, ptr %255, align 8, !tbaa !30
  %257 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %253, i32 noundef %256)
          to label %258 unwind label %334

258:                                              ; preds = %254
  %259 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %257, ptr noundef nonnull @.str.24)
          to label %260 unwind label %334

260:                                              ; preds = %258
  %261 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.29)
          to label %262 unwind label %334

262:                                              ; preds = %260
  %263 = getelementptr inbounds i8, ptr %13, i64 36
  %264 = load i32, ptr %263, align 4, !tbaa !31
  %265 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %261, i32 noundef %264)
          to label %266 unwind label %334

266:                                              ; preds = %262
  %267 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %265, ptr noundef nonnull @.str.24)
          to label %268 unwind label %334

268:                                              ; preds = %266
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %14) #11
  invoke void @_ZN6Stonne17getASNetworkStatsEv(ptr dead_on_unwind nonnull writable sret(%class.ASNetworkStats) align 8 %14, ptr noundef nonnull align 8 dereferenceable(316) %120)
          to label %269 unwind label %336

269:                                              ; preds = %268
  %270 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.30)
          to label %271 unwind label %336

271:                                              ; preds = %269
  %272 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.31)
          to label %273 unwind label %336

273:                                              ; preds = %271
  %274 = getelementptr inbounds i8, ptr %14, i64 28
  %275 = load i32, ptr %274, align 4, !tbaa !32
  %276 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %272, i32 noundef %275)
          to label %277 unwind label %336

277:                                              ; preds = %273
  %278 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %276, ptr noundef nonnull @.str.24)
          to label %279 unwind label %336

279:                                              ; preds = %277
  %280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.32)
          to label %281 unwind label %336

281:                                              ; preds = %279
  %282 = getelementptr inbounds i8, ptr %14, i64 24
  %283 = load i32, ptr %282, align 8, !tbaa !34
  %284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %280, i32 noundef %283)
          to label %285 unwind label %336

285:                                              ; preds = %281
  %286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %284, ptr noundef nonnull @.str.24)
          to label %287 unwind label %336

287:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #11
  invoke void @_ZN6Stonne17getDSNetworkStatsEv(ptr dead_on_unwind nonnull writable sret(%class.DSNetworkStats) align 8 %15, ptr noundef nonnull align 8 dereferenceable(316) %120)
          to label %288 unwind label %338

288:                                              ; preds = %287
  %289 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.33)
          to label %290 unwind label %338

290:                                              ; preds = %288
  %291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.31)
          to label %292 unwind label %338

292:                                              ; preds = %290
  %293 = getelementptr inbounds i8, ptr %15, i64 24
  %294 = load i32, ptr %293, align 8, !tbaa !35
  %295 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %291, i32 noundef %294)
          to label %296 unwind label %338

296:                                              ; preds = %292
  %297 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %295, ptr noundef nonnull @.str.24)
          to label %298 unwind label %338

298:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 152, ptr nonnull %16) #11
  invoke void @_ZN6Stonne14getMemoryStatsEv(ptr dead_on_unwind nonnull writable sret(%class.SDMemoryStats) align 8 %16, ptr noundef nonnull align 8 dereferenceable(316) %120)
          to label %299 unwind label %340

299:                                              ; preds = %298
  %300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.34)
          to label %301 unwind label %342

301:                                              ; preds = %299
  %302 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.35)
          to label %303 unwind label %342

303:                                              ; preds = %301
  %304 = getelementptr inbounds i8, ptr %16, i64 12
  %305 = load i32, ptr %304, align 4, !tbaa !37
  %306 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %302, i32 noundef %305)
          to label %307 unwind label %342

307:                                              ; preds = %303
  %308 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %306, ptr noundef nonnull @.str.24)
          to label %309 unwind label %342

309:                                              ; preds = %307
  %310 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.36)
          to label %311 unwind label %342

311:                                              ; preds = %309
  %312 = getelementptr inbounds i8, ptr %16, i64 16
  %313 = load i32, ptr %312, align 8, !tbaa !45
  %314 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %310, i32 noundef %313)
          to label %315 unwind label %342

315:                                              ; preds = %311
  %316 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %314, ptr noundef nonnull @.str.24)
          to label %317 unwind label %342

317:                                              ; preds = %315
  %318 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.37)
          to label %319 unwind label %342

319:                                              ; preds = %317
  %320 = getelementptr inbounds i8, ptr %16, i64 20
  %321 = load i32, ptr %320, align 4, !tbaa !46
  %322 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %318, i32 noundef %321)
          to label %323 unwind label %342

323:                                              ; preds = %319
  %324 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %322, ptr noundef nonnull @.str.24)
          to label %325 unwind label %342

325:                                              ; preds = %323
  %326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.38)
          to label %327 unwind label %342

327:                                              ; preds = %325
  %328 = getelementptr inbounds i8, ptr %16, i64 24
  %329 = load i32, ptr %328, align 8, !tbaa !47
  %330 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %326, i32 noundef %329)
          to label %331 unwind label %342

331:                                              ; preds = %327
  %332 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %330, ptr noundef nonnull @.str.24)
          to label %.preheader unwind label %342

.preheader:                                       ; preds = %331
  %.not192 = icmp eq i32 %25, 0
  br i1 %.not192, label %._crit_edge183, label %.lr.ph182

._crit_edge183:                                   ; preds = %377, %.preheader
  %333 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.17)
          to label %378 unwind label %342

334:                                              ; preds = %266, %262, %260, %258, %254, %252, %250, %246, %244, %242, %238, %236, %234, %230, %228, %226, %222, %220, %218, %._crit_edge179
  %335 = landingpad { ptr, i32 }
          cleanup
  br label %387

336:                                              ; preds = %285, %281, %279, %277, %273, %271, %269, %268
  %337 = landingpad { ptr, i32 }
          cleanup
  br label %386

338:                                              ; preds = %296, %292, %290, %288, %287
  %339 = landingpad { ptr, i32 }
          cleanup
  br label %385

340:                                              ; preds = %298
  %341 = landingpad { ptr, i32 }
          cleanup
  br label %384

342:                                              ; preds = %380, %378, %._crit_edge183, %331, %327, %325, %323, %319, %317, %315, %311, %309, %307, %303, %301, %299
  %343 = landingpad { ptr, i32 }
          cleanup
  br label %383

.lr.ph182:                                        ; preds = %.preheader, %377
  %indvars.iv212 = phi i64 [ %indvars.iv.next213, %377 ], [ 0, %.preheader ]
  %344 = getelementptr inbounds float, ptr %36, i64 %indvars.iv212
  %345 = load float, ptr %344, align 4, !tbaa !9
  %346 = getelementptr inbounds float, ptr %38, i64 %indvars.iv212
  %347 = load float, ptr %346, align 4, !tbaa !9
  %348 = fsub float %345, %347
  %349 = call noundef float @_ZSt4fabsf(float noundef %348)
  %350 = fcmp ogt float %349, 0x3FA99999A0000000
  br i1 %350, label %351, label %377

351:                                              ; preds = %.lr.ph182
  %352 = getelementptr inbounds float, ptr %36, i64 %indvars.iv212
  %353 = getelementptr inbounds float, ptr %38, i64 %indvars.iv212
  %354 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.11)
          to label %355 unwind label %375

355:                                              ; preds = %351
  %356 = trunc nuw nsw i64 %indvars.iv212 to i32
  %357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %354, i32 noundef %356)
          to label %358 unwind label %375

358:                                              ; preds = %355
  %359 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %357, ptr noundef nonnull @.str.12)
          to label %360 unwind label %375

360:                                              ; preds = %358
  %361 = load float, ptr %352, align 4, !tbaa !9
  %362 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %359, float noundef %361)
          to label %363 unwind label %375

363:                                              ; preds = %360
  %364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %362, ptr noundef nonnull @.str.13)
          to label %365 unwind label %375

365:                                              ; preds = %363
  %366 = load float, ptr %353, align 4, !tbaa !9
  %367 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %364, float noundef %366)
          to label %368 unwind label %375

368:                                              ; preds = %365
  %369 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %367, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %370 unwind label %375

370:                                              ; preds = %368
  %371 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.14)
          to label %372 unwind label %375

372:                                              ; preds = %370
  %373 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %371, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %374 unwind label %375

374:                                              ; preds = %372
  call void @_ZdaPv(ptr noundef nonnull %28) #13
  call void @_ZdaPv(ptr noundef nonnull %32) #13
  call void @_ZdaPv(ptr noundef nonnull %36) #13
  call void @_ZdaPv(ptr noundef nonnull %38) #13
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %120) #11
  call void @_ZdlPvm(ptr noundef nonnull %120, i64 noundef 320) #13
  call void @__assert_fail(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 316, ptr noundef nonnull @__PRETTY_FUNCTION__._Z19runDenseGEMMCommandiPPc) #14
  unreachable

375:                                              ; preds = %372, %370, %368, %365, %363, %360, %358, %355, %351
  %376 = landingpad { ptr, i32 }
          cleanup
  br label %383

377:                                              ; preds = %.lr.ph182
  %indvars.iv.next213 = add nuw nsw i64 %indvars.iv212, 1
  %exitcond216.not = icmp eq i64 %indvars.iv.next213, %34
  br i1 %exitcond216.not, label %._crit_edge183, label %.lr.ph182, !llvm.loop !48

378:                                              ; preds = %._crit_edge183
  %379 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %333, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %380 unwind label %342

380:                                              ; preds = %378
  %381 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %379, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %382 unwind label %342

382:                                              ; preds = %380
  call void @_ZdaPv(ptr noundef nonnull %28) #13
  call void @_ZdaPv(ptr noundef nonnull %32) #13
  call void @_ZdaPv(ptr noundef nonnull %36) #13
  call void @_ZdaPv(ptr noundef nonnull %38) #13
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %120) #11
  call void @_ZdlPvm(ptr noundef nonnull %120, i64 noundef 320) #13
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %16) #11
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %16) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #11
  ret i1 true

383:                                              ; preds = %375, %342
  %.pn = phi { ptr, i32 } [ %376, %375 ], [ %343, %342 ]
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %16) #11
  br label %384

384:                                              ; preds = %383, %340
  %.pn.pn = phi { ptr, i32 } [ %.pn, %383 ], [ %341, %340 ]
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %16) #11
  br label %385

385:                                              ; preds = %384, %338
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %384 ], [ %339, %338 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #11
  br label %386

386:                                              ; preds = %385, %336
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %385 ], [ %337, %336 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #11
  br label %387

387:                                              ; preds = %386, %334
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %386 ], [ %335, %334 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #11
  br label %388

388:                                              ; preds = %45, %49, %53, %89, %83, %117, %111, %200, %216, %387, %198, %196, %194, %51, %47, %43
  %.pn133.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %44, %43 ], [ %46, %45 ], [ %48, %47 ], [ %50, %49 ], [ %52, %51 ], [ %54, %53 ], [ %84, %83 ], [ %90, %89 ], [ %112, %111 ], [ %118, %117 ], [ %195, %194 ], [ %199, %198 ], [ %197, %196 ], [ %217, %216 ], [ %.pn.pn.pn.pn.pn, %387 ], [ %201, %200 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #11
  br label %389

389:                                              ; preds = %388, %41
  %.pn133.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn133.pn.pn.pn.pn.pn.pn, %388 ], [ %42, %41 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #11
  resume { ptr, i32 } %.pn133.pn.pn.pn.pn.pn.pn.pn
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

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

declare void @_ZN6ConfigC1Ev(ptr noundef nonnull align 4 dereferenceable(160)) unnamed_addr #4

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

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

; Function Attrs: nounwind
declare i32 @rand() local_unnamed_addr #6

declare void @_Z16sequential_layerjjjjjjjjjPfS_S_(i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

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

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

declare void @_ZN6StonneC1E6Config(ptr noundef nonnull align 8 dereferenceable(316), ptr noundef byval(%class.Config) align 8) unnamed_addr #4

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

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

declare void @_ZN6Stonne3runEv(ptr noundef nonnull align 8 dereferenceable(316)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt4fabsf(float noundef) local_unnamed_addr #9

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #4

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

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

; Function Attrs: nounwind
declare void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316)) unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z25configDenseGEMMParametersiPPcR6ConfigRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERjSA_SA_SA_SA_SA_(i32 noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2

declare void @_ZN6Stonne13loadDenseGEMMENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjjjPfS6_S6_8Dataflow(ptr noundef nonnull align 8 dereferenceable(316), ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #4

declare void @_ZN6Stonne12loadClockingEPj(ptr noundef nonnull align 8 dereferenceable(316), ptr noundef) local_unnamed_addr #4

declare void @_ZN6Stonne12loadGEMMTileEjjj(ptr noundef nonnull align 8 dereferenceable(316), i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

declare void @_ZN6Stonne25getMultiplierNetworkStatsEv(ptr dead_on_unwind writable sret(%class.MSNetworkStats) align 8, ptr noundef nonnull align 8 dereferenceable(316)) local_unnamed_addr #4

declare void @_ZN6Stonne17getASNetworkStatsEv(ptr dead_on_unwind writable sret(%class.ASNetworkStats) align 8, ptr noundef nonnull align 8 dereferenceable(316)) local_unnamed_addr #4

declare void @_ZN6Stonne17getDSNetworkStatsEv(ptr dead_on_unwind writable sret(%class.DSNetworkStats) align 8, ptr noundef nonnull align 8 dereferenceable(316)) local_unnamed_addr #4

declare void @_ZN6Stonne14getMemoryStatsEv(ptr dead_on_unwind writable sret(%class.SDMemoryStats) align 8, ptr noundef nonnull align 8 dereferenceable(316)) local_unnamed_addr #4

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "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 = { 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 #6 = { 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 #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { 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 #9 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { 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 #11 = { nounwind }
attributes #12 = { builtin allocsize(0) }
attributes #13 = { builtin nounwind }
attributes #14 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12, !19, !20}
!19 = !{!"llvm.loop.isvectorized", i32 1}
!20 = !{!"llvm.loop.unroll.runtime.disable"}
!21 = distinct !{!21, !12, !19}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = !{!25, !6, i64 16}
!25 = !{!"_ZTS14MSNetworkStats", !26, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36}
!26 = !{!"_ZTS5Stats"}
!27 = !{!25, !6, i64 20}
!28 = !{!25, !6, i64 24}
!29 = !{!25, !6, i64 28}
!30 = !{!25, !6, i64 32}
!31 = !{!25, !6, i64 36}
!32 = !{!33, !6, i64 28}
!33 = !{!"_ZTS14ASNetworkStats", !26, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32}
!34 = !{!33, !6, i64 24}
!35 = !{!36, !6, i64 24}
!36 = !{!"_ZTS14DSNetworkStats", !26, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24}
!37 = !{!38, !6, i64 12}
!38 = !{!"_ZTS13SDMemoryStats", !26, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 40, !6, i64 44, !39, i64 48, !40, i64 56, !40, i64 80, !40, i64 104, !40, i64 128}
!39 = !{!"_ZTS8Dataflow", !7, i64 0}
!40 = !{!"_ZTSSt6vectorIjSaIjEE", !41, i64 0}
!41 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !44, i64 0, !44, i64 8, !44, i64 16}
!44 = !{!"any pointer", !7, i64 0}
!45 = !{!38, !6, i64 16}
!46 = !{!38, !6, i64 20}
!47 = !{!38, !6, i64 24}
!48 = distinct !{!48, !12}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MemCpyOptPass,ReassociatePass,SROAPass,SimplifyCFGPass