; LLVM IR from stonne-simulator/omega :: omega-code/stonne/src/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.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 [87 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 [25 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.34 = 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.SDMemoryStats, align 8
  %43 = alloca i32, align 4
  %44 = 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 %45 unwind label %106

45:                                               ; 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 %46 unwind label %110

46:                                               ; preds = %45
  %47 = load i32, ptr %3, align 4, !tbaa !5
  %48 = load ptr, ptr %4, align 8, !tbaa !9
  invoke void @_Z25configDenseGEMMParametersiPPcR6ConfigRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERjSA_SA_SA_SA_SA_(i32 noundef %47, ptr noundef %48, 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 %49 unwind label %110

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

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

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

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

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

100:                                              ; preds = %90
  store ptr %99, 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 %101

101:                                              ; preds = %143, %100
  %102 = load i32, ptr %26, align 4, !tbaa !5
  %103 = load i32, ptr %18, align 4, !tbaa !5
  %104 = icmp ult i32 %102, %103
  br i1 %104, label %134, label %105

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

106:                                              ; preds = %2
  %107 = landingpad { ptr, i32 }
          cleanup
  %108 = extractvalue { ptr, i32 } %107, 0
  store ptr %108, ptr %9, align 8
  %109 = extractvalue { ptr, i32 } %107, 1
  store i32 %109, 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 %621

110:                                              ; preds = %46, %45
  %111 = landingpad { ptr, i32 }
          cleanup
  %112 = extractvalue { ptr, i32 } %111, 0
  store ptr %112, ptr %9, align 8
  %113 = extractvalue { ptr, i32 } %111, 1
  store i32 %113, ptr %10, align 4
  br label %620

114:                                              ; preds = %49
  %115 = landingpad { ptr, i32 }
          cleanup
  %116 = extractvalue { ptr, i32 } %115, 0
  store ptr %116, ptr %9, align 8
  %117 = extractvalue { ptr, i32 } %115, 1
  store i32 %117, ptr %10, align 4
  br label %619

118:                                              ; preds = %66
  %119 = landingpad { ptr, i32 }
          cleanup
  %120 = extractvalue { ptr, i32 } %119, 0
  store ptr %120, ptr %9, align 8
  %121 = extractvalue { ptr, i32 } %119, 1
  store i32 %121, ptr %10, align 4
  br label %618

122:                                              ; preds = %74
  %123 = landingpad { ptr, i32 }
          cleanup
  %124 = extractvalue { ptr, i32 } %123, 0
  store ptr %124, ptr %9, align 8
  %125 = extractvalue { ptr, i32 } %123, 1
  store i32 %125, ptr %10, align 4
  br label %617

126:                                              ; preds = %82
  %127 = landingpad { ptr, i32 }
          cleanup
  %128 = extractvalue { ptr, i32 } %127, 0
  store ptr %128, ptr %9, align 8
  %129 = extractvalue { ptr, i32 } %127, 1
  store i32 %129, ptr %10, align 4
  br label %616

130:                                              ; preds = %260, %214, %212, %166, %164, %90
  %131 = landingpad { ptr, i32 }
          cleanup
  %132 = extractvalue { ptr, i32 } %131, 0
  store ptr %132, ptr %9, align 8
  %133 = extractvalue { ptr, i32 } %131, 1
  store i32 %133, ptr %10, align 4
  br label %615

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

143:                                              ; preds = %134
  %144 = load i32, ptr %26, align 4, !tbaa !5
  %145 = add nsw i32 %144, 1
  store i32 %145, ptr %26, align 4, !tbaa !5
  br label %101, !llvm.loop !13

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

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

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

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

161:                                              ; preds = %152
  %162 = load i32, ptr %27, align 4, !tbaa !5
  %163 = add nsw i32 %162, 1
  store i32 %163, ptr %27, align 4, !tbaa !5
  br label %147, !llvm.loop !15

164:                                              ; preds = %151
  %165 = 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 %166 unwind label %130

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

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

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

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

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

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

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

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

191:                                              ; preds = %180
  %192 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %190, ptr noundef @.str.19)
          to label %193 unwind label %197

193:                                              ; preds = %191
  br label %194

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

197:                                              ; preds = %191, %180
  %198 = landingpad { ptr, i32 }
          cleanup
  %199 = extractvalue { ptr, i32 } %198, 0
  store ptr %199, ptr %9, align 8
  %200 = extractvalue { ptr, i32 } %198, 1
  store i32 %200, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #12
  br label %211

201:                                              ; preds = %179
  %202 = 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 %203 unwind label %207

203:                                              ; preds = %201
  br label %204

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

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

211:                                              ; preds = %207, %197
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #12
  br label %615

212:                                              ; preds = %173
  %213 = 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 %214 unwind label %130

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

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

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

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

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

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

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

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

239:                                              ; preds = %228
  %240 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %238, ptr noundef @.str.19)
          to label %241 unwind label %245

241:                                              ; preds = %239
  br label %242

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

245:                                              ; preds = %239, %228
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %9, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #12
  br label %259

249:                                              ; preds = %227
  %250 = 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 %251 unwind label %255

251:                                              ; preds = %249
  br label %252

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

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

259:                                              ; preds = %255, %245
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #12
  br label %615

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

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

270:                                              ; preds = %268
  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) %269, ptr noundef byval(%class.Config) align 8 %34)
          to label %271 unwind label %312

271:                                              ; preds = %270
  store ptr %269, ptr %33, align 8, !tbaa !9
  %272 = 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 %273 unwind label %308

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

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

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

288:                                              ; preds = %283
  %289 = load ptr, ptr %33, align 8, !tbaa !9
  invoke void @_ZN6Stonne3runEv(ptr noundef nonnull align 8 dereferenceable(316) %289)
          to label %290 unwind label %308

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

300:                                              ; preds = %290
  store ptr %299, 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 %301

301:                                              ; preds = %334, %300
  %302 = load i32, ptr %37, align 4, !tbaa !5
  %303 = load i32, ptr %11, align 4, !tbaa !5
  %304 = load i32, ptr %13, align 4, !tbaa !5
  %305 = mul i32 %303, %304
  %306 = icmp ult i32 %302, %305
  br i1 %306, label %324, label %307

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

308:                                              ; preds = %288, %283, %280, %271, %268
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %9, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %10, align 4
  br label %614

312:                                              ; preds = %270
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %9, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %10, align 4
  call void @_ZdlPvm(ptr noundef %269, i64 noundef 320) #14
  br label %614

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

320:                                              ; preds = %290
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %9, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %10, align 4
  br label %613

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

334:                                              ; preds = %324
  %335 = load i32, ptr %37, align 4, !tbaa !5
  %336 = add nsw i32 %335, 1
  store i32 %336, ptr %37, align 4, !tbaa !5
  br label %301, !llvm.loop !29

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

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

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

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

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

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

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

367:                                              ; preds = %349
  %368 = load i32, ptr %39, align 4, !tbaa !5
  %369 = add nsw i32 %368, 1
  store i32 %369, ptr %39, align 4, !tbaa !5
  br label %344, !llvm.loop !30

370:                                              ; preds = %348
  br label %371

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

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

377:                                              ; preds = %394, %374
  %378 = load i32, ptr %40, align 4, !tbaa !5
  %379 = load i32, ptr %11, align 4, !tbaa !5
  %380 = load i32, ptr %13, align 4, !tbaa !5
  %381 = mul i32 %379, %380
  %382 = icmp ult i32 %378, %381
  br i1 %382, label %384, label %383

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

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

391:                                              ; preds = %384
  %392 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %390, ptr noundef @.str.21)
          to label %393 unwind label %398

393:                                              ; preds = %391
  br label %394

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

398:                                              ; preds = %391, %384
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %9, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #12
  br label %613

402:                                              ; preds = %383
  call void @llvm.lifetime.start.p0(i64 40, ptr %41) #12
  %403 = 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) %403)
          to label %404 unwind label %496

404:                                              ; preds = %402
  %405 = 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 %406 unwind label %496

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.23)
          to label %408 unwind label %496

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

412:                                              ; preds = %408
  %413 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %411, ptr noundef @.str.24)
          to label %414 unwind label %496

414:                                              ; preds = %412
  %415 = 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 %416 unwind label %496

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

420:                                              ; preds = %416
  %421 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %419, ptr noundef @.str.24)
          to label %422 unwind label %496

422:                                              ; preds = %420
  %423 = 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 %424 unwind label %496

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

428:                                              ; preds = %424
  %429 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %427, ptr noundef @.str.24)
          to label %430 unwind label %496

430:                                              ; preds = %428
  %431 = 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 %432 unwind label %496

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

436:                                              ; preds = %432
  %437 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %435, ptr noundef @.str.24)
          to label %438 unwind label %496

438:                                              ; preds = %436
  %439 = 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 %440 unwind label %496

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

444:                                              ; preds = %440
  %445 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %443, ptr noundef @.str.24)
          to label %446 unwind label %496

446:                                              ; preds = %444
  %447 = 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 %448 unwind label %496

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

452:                                              ; preds = %448
  %453 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %451, ptr noundef @.str.24)
          to label %454 unwind label %496

454:                                              ; preds = %452
  call void @llvm.lifetime.start.p0(i64 152, ptr %42) #12
  %455 = load ptr, ptr %33, align 8, !tbaa !9
  invoke void @_ZN6Stonne14getMemoryStatsEv(ptr dead_on_unwind writable sret(%class.SDMemoryStats) align 8 %42, ptr noundef nonnull align 8 dereferenceable(316) %455)
          to label %456 unwind label %500

456:                                              ; preds = %454
  %457 = 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 %458 unwind label %504

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.31)
          to label %460 unwind label %504

460:                                              ; preds = %458
  %461 = getelementptr inbounds %class.SDMemoryStats, ptr %42, i32 0, i32 2
  %462 = load i32, ptr %461, align 4, !tbaa !41
  %463 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %459, i32 noundef %462)
          to label %464 unwind label %504

464:                                              ; preds = %460
  %465 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %463, ptr noundef @.str.24)
          to label %466 unwind label %504

466:                                              ; preds = %464
  %467 = 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 %468 unwind label %504

468:                                              ; preds = %466
  %469 = getelementptr inbounds %class.SDMemoryStats, ptr %42, i32 0, i32 3
  %470 = load i32, ptr %469, align 8, !tbaa !48
  %471 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %467, i32 noundef %470)
          to label %472 unwind label %504

472:                                              ; preds = %468
  %473 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %471, ptr noundef @.str.24)
          to label %474 unwind label %504

474:                                              ; preds = %472
  %475 = 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 %476 unwind label %504

476:                                              ; preds = %474
  %477 = getelementptr inbounds %class.SDMemoryStats, ptr %42, i32 0, i32 4
  %478 = load i32, ptr %477, align 4, !tbaa !49
  %479 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %475, i32 noundef %478)
          to label %480 unwind label %504

480:                                              ; preds = %476
  %481 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %479, ptr noundef @.str.24)
          to label %482 unwind label %504

482:                                              ; preds = %480
  %483 = 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 %484 unwind label %504

484:                                              ; preds = %482
  %485 = getelementptr inbounds %class.SDMemoryStats, ptr %42, i32 0, i32 5
  %486 = load i32, ptr %485, align 8, !tbaa !50
  %487 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %483, i32 noundef %486)
          to label %488 unwind label %504

488:                                              ; preds = %484
  %489 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %487, ptr noundef @.str.24)
          to label %490 unwind label %504

490:                                              ; preds = %488
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #12
  store i32 0, ptr %43, align 4, !tbaa !5
  br label %491

491:                                              ; preds = %580, %490
  %492 = load i32, ptr %43, align 4, !tbaa !5
  %493 = load i32, ptr %20, align 4, !tbaa !5
  %494 = icmp ult i32 %492, %493
  br i1 %494, label %508, label %495

495:                                              ; preds = %491
  store i32 32, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #12
  br label %583

496:                                              ; preds = %452, %448, %446, %444, %440, %438, %436, %432, %430, %428, %424, %422, %420, %416, %414, %412, %408, %406, %404, %402
  %497 = landingpad { ptr, i32 }
          cleanup
  %498 = extractvalue { ptr, i32 } %497, 0
  store ptr %498, ptr %9, align 8
  %499 = extractvalue { ptr, i32 } %497, 1
  store i32 %499, ptr %10, align 4
  br label %612

500:                                              ; preds = %454
  %501 = landingpad { ptr, i32 }
          cleanup
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %9, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %10, align 4
  br label %611

504:                                              ; preds = %587, %585, %583, %488, %484, %482, %480, %476, %474, %472, %468, %466, %464, %460, %458, %456
  %505 = landingpad { ptr, i32 }
          cleanup
  %506 = extractvalue { ptr, i32 } %505, 0
  store ptr %506, ptr %9, align 8
  %507 = extractvalue { ptr, i32 } %505, 1
  store i32 %507, ptr %10, align 4
  br label %610

508:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #12
  %509 = load ptr, ptr %23, align 8, !tbaa !9
  %510 = load i32, ptr %43, align 4, !tbaa !5
  %511 = sext i32 %510 to i64
  %512 = getelementptr inbounds float, ptr %509, i64 %511
  %513 = load float, ptr %512, align 4, !tbaa !11
  %514 = load ptr, ptr %24, align 8, !tbaa !9
  %515 = load i32, ptr %43, align 4, !tbaa !5
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds float, ptr %514, i64 %516
  %518 = load float, ptr %517, align 4, !tbaa !11
  %519 = fsub float %513, %518
  %520 = invoke noundef float @_ZSt4fabsf(float noundef %519)
          to label %521 unwind label %575

521:                                              ; preds = %508
  store float %520, ptr %44, align 4, !tbaa !11
  %522 = load float, ptr %44, align 4, !tbaa !11
  %523 = load float, ptr %5, align 4, !tbaa !11
  %524 = fcmp ogt float %522, %523
  br i1 %524, label %525, label %579

525:                                              ; preds = %521
  %526 = 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 %527 unwind label %575

527:                                              ; preds = %525
  %528 = load i32, ptr %43, align 4, !tbaa !5
  %529 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %526, i32 noundef %528)
          to label %530 unwind label %575

530:                                              ; preds = %527
  %531 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %529, ptr noundef @.str.12)
          to label %532 unwind label %575

532:                                              ; preds = %530
  %533 = load ptr, ptr %23, align 8, !tbaa !9
  %534 = load i32, ptr %43, align 4, !tbaa !5
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds float, ptr %533, i64 %535
  %537 = load float, ptr %536, align 4, !tbaa !11
  %538 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %531, float noundef %537)
          to label %539 unwind label %575

539:                                              ; preds = %532
  %540 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %538, ptr noundef @.str.13)
          to label %541 unwind label %575

541:                                              ; preds = %539
  %542 = load ptr, ptr %24, align 8, !tbaa !9
  %543 = load i32, ptr %43, align 4, !tbaa !5
  %544 = sext i32 %543 to i64
  %545 = getelementptr inbounds float, ptr %542, i64 %544
  %546 = load float, ptr %545, align 4, !tbaa !11
  %547 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %540, float noundef %546)
          to label %548 unwind label %575

548:                                              ; preds = %541
  %549 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %547, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %550 unwind label %575

550:                                              ; preds = %548
  %551 = 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 %552 unwind label %575

552:                                              ; preds = %550
  %553 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %551, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %554 unwind label %575

554:                                              ; preds = %552
  %555 = load ptr, ptr %21, align 8, !tbaa !9
  %556 = icmp eq ptr %555, null
  br i1 %556, label %558, label %557

557:                                              ; preds = %554
  call void @_ZdaPv(ptr noundef %555) #14
  br label %558

558:                                              ; preds = %557, %554
  %559 = load ptr, ptr %22, align 8, !tbaa !9
  %560 = icmp eq ptr %559, null
  br i1 %560, label %562, label %561

561:                                              ; preds = %558
  call void @_ZdaPv(ptr noundef %559) #14
  br label %562

562:                                              ; preds = %561, %558
  %563 = load ptr, ptr %23, align 8, !tbaa !9
  %564 = icmp eq ptr %563, null
  br i1 %564, label %566, label %565

565:                                              ; preds = %562
  call void @_ZdaPv(ptr noundef %563) #14
  br label %566

566:                                              ; preds = %565, %562
  %567 = load ptr, ptr %24, align 8, !tbaa !9
  %568 = icmp eq ptr %567, null
  br i1 %568, label %570, label %569

569:                                              ; preds = %566
  call void @_ZdaPv(ptr noundef %567) #14
  br label %570

570:                                              ; preds = %569, %566
  %571 = load ptr, ptr %33, align 8, !tbaa !9
  %572 = icmp eq ptr %571, null
  br i1 %572, label %574, label %573

573:                                              ; preds = %570
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %571) #12
  call void @_ZdlPvm(ptr noundef %571, i64 noundef 320) #14
  br label %574

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

575:                                              ; preds = %552, %550, %548, %541, %539, %532, %530, %527, %525, %508
  %576 = landingpad { ptr, i32 }
          cleanup
  %577 = extractvalue { ptr, i32 } %576, 0
  store ptr %577, ptr %9, align 8
  %578 = extractvalue { ptr, i32 } %576, 1
  store i32 %578, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #12
  br label %610

579:                                              ; preds = %521
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #12
  br label %580

580:                                              ; preds = %579
  %581 = load i32, ptr %43, align 4, !tbaa !5
  %582 = add nsw i32 %581, 1
  store i32 %582, ptr %43, align 4, !tbaa !5
  br label %491, !llvm.loop !51

583:                                              ; preds = %495
  %584 = 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 %585 unwind label %504

585:                                              ; preds = %583
  %586 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %584, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %587 unwind label %504

587:                                              ; preds = %585
  %588 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %586, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %589 unwind label %504

589:                                              ; preds = %587
  %590 = load ptr, ptr %21, align 8, !tbaa !9
  %591 = icmp eq ptr %590, null
  br i1 %591, label %593, label %592

592:                                              ; preds = %589
  call void @_ZdaPv(ptr noundef %590) #14
  br label %593

593:                                              ; preds = %592, %589
  %594 = load ptr, ptr %22, align 8, !tbaa !9
  %595 = icmp eq ptr %594, null
  br i1 %595, label %597, label %596

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

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

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

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

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

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

608:                                              ; preds = %605
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %606) #12
  call void @_ZdlPvm(ptr noundef %606, i64 noundef 320) #14
  br label %609

609:                                              ; preds = %608, %605
  store i32 1, ptr %29, align 4
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %42) #12
  call void @llvm.lifetime.end.p0(i64 152, 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

610:                                              ; preds = %575, %504
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %42) #12
  br label %611

611:                                              ; preds = %610, %500
  call void @llvm.lifetime.end.p0(i64 152, ptr %42) #12
  br label %612

612:                                              ; preds = %611, %496
  call void @llvm.lifetime.end.p0(i64 40, ptr %41) #12
  br label %613

613:                                              ; preds = %612, %398, %320
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #12
  br label %614

614:                                              ; preds = %613, %316, %312, %308
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #12
  br label %615

615:                                              ; preds = %614, %259, %211, %130
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #12
  br label %616

616:                                              ; preds = %615, %126
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #12
  br label %617

617:                                              ; preds = %616, %122
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #12
  br label %618

618:                                              ; preds = %617, %118
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #12
  br label %619

619:                                              ; preds = %618, %114
  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 %620

620:                                              ; preds = %619, %110
  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 %621

621:                                              ; preds = %620, %106
  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 %622

622:                                              ; preds = %621
  %623 = load ptr, ptr %9, align 8
  %624 = load i32, ptr %10, align 4
  %625 = insertvalue { ptr, i32 } poison, ptr %623, 0
  %626 = insertvalue { ptr, i32 } %625, i32 %624, 1
  resume { ptr, i32 } %626
}

; 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 @_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 12}
!42 = !{!"_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, !43, i64 48, !44, i64 56, !44, i64 80, !44, i64 104, !44, i64 128}
!43 = !{!"_ZTS8Dataflow", !7, i64 0}
!44 = !{!"_ZTSSt6vectorIjSaIjEE", !45, i64 0}
!45 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!48 = !{!42, !6, i64 16}
!49 = !{!42, !6, i64 20}
!50 = !{!42, !6, i64 24}
!51 = distinct !{!51, !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.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 [87 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 [25 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.34 = 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.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 %15 unwind label %39

15:                                               ; 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 %16 unwind label %41

16:                                               ; preds = %15
  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 %17 unwind label %41

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

27:                                               ; preds = %17
  %28 = zext i32 %22 to i64
  %29 = shl nuw nsw i64 %28, 2
  %30 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %29) #12
          to label %31 unwind label %45

31:                                               ; preds = %27
  %32 = zext i32 %23 to i64
  %33 = shl nuw nsw i64 %32, 2
  %34 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %33) #12
          to label %35 unwind label %47

35:                                               ; preds = %31
  %36 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %33) #12
          to label %37 unwind label %49

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

.preheader144:                                    ; preds = %37
  %.not = icmp eq i32 %20, 0
  br i1 %.not, label %.preheader143, label %.lr.ph

.preheader143:                                    ; preds = %.lr.ph, %.preheader144
  %.not178 = icmp eq i32 %22, 0
  br i1 %.not178, label %._crit_edge, label %.lr.ph152

39:                                               ; preds = %2
  %40 = 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 %351

41:                                               ; preds = %16, %15
  %42 = landingpad { ptr, i32 }
          cleanup
  br label %350

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

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

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

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

51:                                               ; preds = %._crit_edge162, %89, %._crit_edge157, %62, %._crit_edge, %37
  %52 = landingpad { ptr, i32 }
          cleanup
  br label %350

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

._crit_edge:                                      ; preds = %.lr.ph152, %.preheader143
  %57 = 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 %62 unwind label %51

.lr.ph152:                                        ; preds = %.preheader143, %.lr.ph152
  %indvars.iv192 = phi i64 [ %indvars.iv.next193, %.lr.ph152 ], [ 0, %.preheader143 ]
  %58 = call i32 @rand() #11
  %59 = urem i32 %58, 10
  %60 = uitofp nneg i32 %59 to float
  %61 = getelementptr inbounds float, ptr %30, i64 %indvars.iv192
  store float %60, ptr %61, align 4, !tbaa !9
  %indvars.iv.next193 = add nuw nsw i64 %indvars.iv192, 1
  %exitcond196.not = icmp eq i64 %indvars.iv.next193, %28
  br i1 %exitcond196.not, label %._crit_edge, label %.lr.ph152, !llvm.loop !13

62:                                               ; preds = %._crit_edge
  %63 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.preheader142 unwind label %51

.preheader142:                                    ; preds = %62
  %64 = load i32, ptr %5, align 4, !tbaa !5
  %.not179 = icmp eq i32 %64, 0
  br i1 %.not179, label %._crit_edge157, label %.preheader141

.preheader141:                                    ; preds = %.preheader142, %83
  %.0113156 = phi i32 [ %84, %83 ], [ 0, %.preheader142 ]
  %65 = load i32, ptr %6, align 4, !tbaa !5
  %.not180 = icmp eq i32 %65, 0
  br i1 %.not180, label %._crit_edge155, label %.lr.ph154

._crit_edge157:                                   ; preds = %83, %.preheader142
  %66 = 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 %89 unwind label %51

._crit_edge155:                                   ; preds = %77, %.preheader141
  %67 = 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 %83 unwind label %87

.lr.ph154:                                        ; preds = %.preheader141, %77
  %68 = phi i32 [ %79, %77 ], [ %65, %.preheader141 ]
  %.0112153 = phi i32 [ %78, %77 ], [ 0, %.preheader141 ]
  %69 = mul i32 %68, %.0113156
  %70 = add i32 %69, %.0112153
  %71 = zext i32 %70 to i64
  %72 = getelementptr inbounds float, ptr %26, i64 %71
  %73 = load float, ptr %72, align 4, !tbaa !9
  %74 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %73)
          to label %75 unwind label %81

75:                                               ; preds = %.lr.ph154
  %76 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull @.str.19)
          to label %77 unwind label %81

77:                                               ; preds = %75
  %78 = add nuw nsw i32 %.0112153, 1
  %79 = load i32, ptr %6, align 4, !tbaa !5
  %80 = icmp ult i32 %78, %79
  br i1 %80, label %.lr.ph154, label %._crit_edge155, !llvm.loop !14

81:                                               ; preds = %75, %.lr.ph154
  %82 = landingpad { ptr, i32 }
          cleanup
  br label %350

83:                                               ; preds = %._crit_edge155
  %84 = add nuw nsw i32 %.0113156, 1
  %85 = load i32, ptr %5, align 4, !tbaa !5
  %86 = icmp ult i32 %84, %85
  br i1 %86, label %.preheader141, label %._crit_edge157, !llvm.loop !15

87:                                               ; preds = %._crit_edge155
  %88 = landingpad { ptr, i32 }
          cleanup
  br label %350

89:                                               ; preds = %._crit_edge157
  %90 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.preheader140 unwind label %51

.preheader140:                                    ; preds = %89
  %91 = load i32, ptr %7, align 4, !tbaa !5
  %.not181 = icmp eq i32 %91, 0
  br i1 %.not181, label %._crit_edge162, label %.preheader139

.preheader139:                                    ; preds = %.preheader140, %111
  %.0111161 = phi i32 [ %112, %111 ], [ 0, %.preheader140 ]
  %92 = load i32, ptr %6, align 4, !tbaa !5
  %.not182 = icmp eq i32 %92, 0
  br i1 %.not182, label %._crit_edge160, label %.lr.ph159

._crit_edge162:                                   ; preds = %111, %.preheader140
  %.lcssa147 = phi i32 [ 0, %.preheader140 ], [ %113, %111 ]
  %93 = load i32, ptr %6, align 4, !tbaa !5
  %94 = load i32, ptr %5, align 4, !tbaa !5
  invoke void @_Z16sequential_layerjjjjjjjjjPfS_S_(i32 noundef 1, i32 noundef %93, i32 noundef 1, i32 noundef %94, i32 noundef 1, i32 noundef 1, i32 noundef %.lcssa147, i32 noundef %93, i32 noundef 1, ptr noundef nonnull %30, ptr noundef nonnull %26, ptr noundef nonnull %36)
          to label %117 unwind label %51

._crit_edge160:                                   ; preds = %105, %.preheader139
  %95 = 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 %111 unwind label %115

.lr.ph159:                                        ; preds = %.preheader139, %105
  %96 = phi i32 [ %107, %105 ], [ %92, %.preheader139 ]
  %.0110158 = phi i32 [ %106, %105 ], [ 0, %.preheader139 ]
  %97 = mul i32 %96, %.0111161
  %98 = add i32 %97, %.0110158
  %99 = zext i32 %98 to i64
  %100 = getelementptr inbounds float, ptr %30, i64 %99
  %101 = load float, ptr %100, align 4, !tbaa !9
  %102 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %101)
          to label %103 unwind label %109

103:                                              ; preds = %.lr.ph159
  %104 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull @.str.19)
          to label %105 unwind label %109

105:                                              ; preds = %103
  %106 = add nuw nsw i32 %.0110158, 1
  %107 = load i32, ptr %6, align 4, !tbaa !5
  %108 = icmp ult i32 %106, %107
  br i1 %108, label %.lr.ph159, label %._crit_edge160, !llvm.loop !16

109:                                              ; preds = %103, %.lr.ph159
  %110 = landingpad { ptr, i32 }
          cleanup
  br label %350

111:                                              ; preds = %._crit_edge160
  %112 = add nuw nsw i32 %.0111161, 1
  %113 = load i32, ptr %7, align 4, !tbaa !5
  %114 = icmp ult i32 %112, %113
  br i1 %114, label %.preheader139, label %._crit_edge162, !llvm.loop !17

115:                                              ; preds = %._crit_edge160
  %116 = landingpad { ptr, i32 }
          cleanup
  br label %350

117:                                              ; preds = %._crit_edge162
  %118 = invoke noalias noundef nonnull dereferenceable(320) ptr @_Znwm(i64 noundef 320) #12
          to label %119 unwind label %192

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

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

121:                                              ; preds = %120
  %122 = load i32, ptr %7, align 4, !tbaa !5
  %123 = load i32, ptr %6, align 4, !tbaa !5
  %124 = load i32, ptr %5, align 4, !tbaa !5
  invoke void @_ZN6Stonne13loadDenseGEMMENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjjjPfS6_S6_8Dataflow(ptr noundef nonnull align 8 dereferenceable(316) %118, ptr noundef nonnull %12, i32 noundef %122, i32 noundef %123, i32 noundef %124, ptr noundef nonnull %26, ptr noundef nonnull %30, ptr noundef nonnull %34, i32 noundef 0)
          to label %125 unwind label %196

125:                                              ; preds = %121
  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) %118, ptr noundef nonnull %38)
          to label %126 unwind label %192

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

130:                                              ; preds = %126
  invoke void @_ZN6Stonne3runEv(ptr noundef nonnull align 8 dereferenceable(316) %118)
          to label %131 unwind label %192

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

.preheader138:                                    ; preds = %131
  %.not183 = icmp eq i32 %134, 0
  br i1 %.not183, label %.preheader137, label %.lr.ph164.preheader

.lr.ph164.preheader:                              ; preds = %.preheader138
  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %137, ptr nonnull align 4 %38, i64 %136, i1 false), !tbaa !5
  br label %.preheader137

.preheader137:                                    ; preds = %.lr.ph164.preheader, %.preheader138
  %.not184 = icmp eq i32 %132, 0
  %.not185 = icmp eq i32 %133, 0
  %or.cond = or i1 %.not184, %.not185
  br i1 %or.cond, label %._crit_edge169, label %.preheader136.us.preheader

.preheader136.us.preheader:                       ; preds = %.preheader137
  %wide.trip.count203 = zext i32 %133 to i64
  %138 = add nsw i64 %wide.trip.count203, -1
  %min.iters.check = icmp ult i32 %133, 20
  %ident.check = icmp ne i32 %132, 1
  %139 = trunc i64 %138 to i32
  %140 = icmp ugt i64 %138, 4294967295
  %141 = trunc i64 %138 to i32
  %n.vec = and i64 %wide.trip.count203, 4294967288
  %cmp.n = icmp eq i64 %n.vec, %wide.trip.count203
  %xtraiter = and i64 %wide.trip.count203, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  %142 = add nsw i64 %wide.trip.count203, -1
  br label %.preheader136.us

.preheader136.us:                                 ; preds = %.preheader136.us.preheader, %._crit_edge167.us
  %.093168.us = phi i32 [ %191, %._crit_edge167.us ], [ 0, %.preheader136.us.preheader ]
  %143 = mul i32 %.093168.us, %133
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.preheader136.us
  %144 = mul i32 %133, %.093168.us
  %145 = xor i32 %.093168.us, -1
  %146 = icmp ult i32 %145, %139
  %147 = or i1 %146, %140
  %148 = xor i32 %144, -1
  %149 = icmp ult i32 %148, %141
  %150 = or i1 %ident.check, %147
  %151 = or i1 %149, %150
  br i1 %151, label %scalar.ph.preheader, label %vector.body

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

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

scalar.ph.preheader:                              ; preds = %middle.block, %vector.scevcheck, %.preheader136.us
  %indvars.iv200.ph = phi i64 [ 0, %vector.scevcheck ], [ 0, %.preheader136.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
  %162 = trunc nuw nsw i64 %indvars.iv200.ph to i32
  %163 = mul i32 %132, %162
  %164 = add i32 %163, %.093168.us
  %165 = zext i32 %164 to i64
  %166 = getelementptr inbounds i32, ptr %137, i64 %165
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = add i32 %143, %162
  %169 = zext i32 %168 to i64
  %170 = getelementptr inbounds i32, ptr %38, i64 %169
  store i32 %167, ptr %170, align 4, !tbaa !5
  %indvars.iv.next201.prol = or disjoint i64 %indvars.iv200.ph, 1
  br label %scalar.ph.prol.loopexit

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %indvars.iv200.unr = phi i64 [ %indvars.iv200.ph, %scalar.ph.preheader ], [ %indvars.iv.next201.prol, %scalar.ph.prol ]
  %171 = icmp eq i64 %indvars.iv200.ph, %142
  br i1 %171, label %._crit_edge167.us, label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.prol.loopexit, %scalar.ph
  %indvars.iv200 = phi i64 [ %indvars.iv.next201.1, %scalar.ph ], [ %indvars.iv200.unr, %scalar.ph.prol.loopexit ]
  %172 = trunc nuw nsw i64 %indvars.iv200 to i32
  %173 = mul i32 %132, %172
  %174 = add i32 %173, %.093168.us
  %175 = zext i32 %174 to i64
  %176 = getelementptr inbounds i32, ptr %137, i64 %175
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = add i32 %143, %172
  %179 = zext i32 %178 to i64
  %180 = getelementptr inbounds i32, ptr %38, i64 %179
  store i32 %177, ptr %180, align 4, !tbaa !5
  %181 = trunc i64 %indvars.iv200 to i32
  %182 = add i32 %181, 1
  %183 = mul i32 %132, %182
  %184 = add i32 %183, %.093168.us
  %185 = zext i32 %184 to i64
  %186 = getelementptr inbounds i32, ptr %137, i64 %185
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = add i32 %143, %182
  %189 = zext i32 %188 to i64
  %190 = getelementptr inbounds i32, ptr %38, i64 %189
  store i32 %187, ptr %190, align 4, !tbaa !5
  %indvars.iv.next201.1 = add nuw nsw i64 %indvars.iv200, 2
  %exitcond204.not.1 = icmp eq i64 %indvars.iv.next201.1, %wide.trip.count203
  br i1 %exitcond204.not.1, label %._crit_edge167.us, label %scalar.ph, !llvm.loop !21

._crit_edge167.us:                                ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block
  %191 = add nuw nsw i32 %.093168.us, 1
  %exitcond205.not = icmp eq i32 %191, %132
  br i1 %exitcond205.not, label %._crit_edge169, label %.preheader136.us, !llvm.loop !22

192:                                              ; preds = %130, %126, %125, %120, %117
  %193 = landingpad { ptr, i32 }
          cleanup
  br label %350

194:                                              ; preds = %119
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %118, i64 noundef 320) #13
  br label %350

196:                                              ; preds = %121
  %197 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  br label %350

198:                                              ; preds = %131
  %199 = landingpad { ptr, i32 }
          cleanup
  br label %350

._crit_edge169:                                   ; preds = %._crit_edge167.us, %.preheader137
  %200 = add i32 %133, -1
  %201 = icmp ult i32 %200, %134
  br i1 %201, label %.lr.ph172, label %._crit_edge173

._crit_edge173:                                   ; preds = %208, %._crit_edge169
  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) %118)
          to label %216 unwind label %302

.lr.ph172:                                        ; preds = %._crit_edge169, %208
  %.091170 = phi i32 [ %210, %208 ], [ %200, %._crit_edge169 ]
  %202 = sext i32 %.091170 to i64
  %203 = getelementptr inbounds i32, ptr %38, i64 %202
  %204 = load i32, ptr %203, align 4, !tbaa !5
  %205 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %204)
          to label %206 unwind label %214

206:                                              ; preds = %.lr.ph172
  %207 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %205, ptr noundef nonnull @.str.21)
          to label %208 unwind label %214

208:                                              ; preds = %206
  %209 = load i32, ptr %7, align 4, !tbaa !5
  %210 = add i32 %209, %.091170
  %211 = load i32, ptr %5, align 4, !tbaa !5
  %212 = mul i32 %209, %211
  %213 = icmp ult i32 %210, %212
  br i1 %213, label %.lr.ph172, label %._crit_edge173, !llvm.loop !23

214:                                              ; preds = %206, %.lr.ph172
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %350

216:                                              ; preds = %._crit_edge173
  %217 = 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 %218 unwind label %302

218:                                              ; preds = %216
  %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.23)
          to label %220 unwind label %302

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

224:                                              ; preds = %220
  %225 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef nonnull @.str.24)
          to label %226 unwind label %302

226:                                              ; preds = %224
  %227 = 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 %228 unwind label %302

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

232:                                              ; preds = %228
  %233 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %231, ptr noundef nonnull @.str.24)
          to label %234 unwind label %302

234:                                              ; preds = %232
  %235 = 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 %236 unwind label %302

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

240:                                              ; preds = %236
  %241 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %239, ptr noundef nonnull @.str.24)
          to label %242 unwind label %302

242:                                              ; preds = %240
  %243 = 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 %244 unwind label %302

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

248:                                              ; preds = %244
  %249 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %247, ptr noundef nonnull @.str.24)
          to label %250 unwind label %302

250:                                              ; preds = %248
  %251 = 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 %252 unwind label %302

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

256:                                              ; preds = %252
  %257 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %255, ptr noundef nonnull @.str.24)
          to label %258 unwind label %302

258:                                              ; preds = %256
  %259 = 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 %260 unwind label %302

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

264:                                              ; preds = %260
  %265 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %263, ptr noundef nonnull @.str.24)
          to label %266 unwind label %302

266:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 152, ptr nonnull %14) #11
  invoke void @_ZN6Stonne14getMemoryStatsEv(ptr dead_on_unwind nonnull writable sret(%class.SDMemoryStats) align 8 %14, ptr noundef nonnull align 8 dereferenceable(316) %118)
          to label %267 unwind label %304

267:                                              ; preds = %266
  %268 = 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 %269 unwind label %306

269:                                              ; preds = %267
  %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.31)
          to label %271 unwind label %306

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

275:                                              ; preds = %271
  %276 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %274, ptr noundef nonnull @.str.24)
          to label %277 unwind label %306

277:                                              ; preds = %275
  %278 = 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 %279 unwind label %306

279:                                              ; preds = %277
  %280 = getelementptr inbounds i8, ptr %14, i64 16
  %281 = load i32, ptr %280, align 8, !tbaa !40
  %282 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %278, i32 noundef %281)
          to label %283 unwind label %306

283:                                              ; preds = %279
  %284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %282, ptr noundef nonnull @.str.24)
          to label %285 unwind label %306

285:                                              ; preds = %283
  %286 = 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 %287 unwind label %306

287:                                              ; preds = %285
  %288 = getelementptr inbounds i8, ptr %14, i64 20
  %289 = load i32, ptr %288, align 4, !tbaa !41
  %290 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %286, i32 noundef %289)
          to label %291 unwind label %306

291:                                              ; preds = %287
  %292 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %290, ptr noundef nonnull @.str.24)
          to label %293 unwind label %306

293:                                              ; preds = %291
  %294 = 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 %295 unwind label %306

295:                                              ; preds = %293
  %296 = getelementptr inbounds i8, ptr %14, i64 24
  %297 = load i32, ptr %296, align 8, !tbaa !42
  %298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %294, i32 noundef %297)
          to label %299 unwind label %306

299:                                              ; preds = %295
  %300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %298, ptr noundef nonnull @.str.24)
          to label %.preheader unwind label %306

.preheader:                                       ; preds = %299
  %.not186 = icmp eq i32 %23, 0
  br i1 %.not186, label %._crit_edge177, label %.lr.ph176

._crit_edge177:                                   ; preds = %341, %.preheader
  %301 = 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 %342 unwind label %306

302:                                              ; preds = %264, %260, %258, %256, %252, %250, %248, %244, %242, %240, %236, %234, %232, %228, %226, %224, %220, %218, %216, %._crit_edge173
  %303 = landingpad { ptr, i32 }
          cleanup
  br label %349

304:                                              ; preds = %266
  %305 = landingpad { ptr, i32 }
          cleanup
  br label %348

306:                                              ; preds = %344, %342, %._crit_edge177, %299, %295, %293, %291, %287, %285, %283, %279, %277, %275, %271, %269, %267
  %307 = landingpad { ptr, i32 }
          cleanup
  br label %347

.lr.ph176:                                        ; preds = %.preheader, %341
  %indvars.iv206 = phi i64 [ %indvars.iv.next207, %341 ], [ 0, %.preheader ]
  %308 = getelementptr inbounds float, ptr %34, i64 %indvars.iv206
  %309 = load float, ptr %308, align 4, !tbaa !9
  %310 = getelementptr inbounds float, ptr %36, i64 %indvars.iv206
  %311 = load float, ptr %310, align 4, !tbaa !9
  %312 = fsub float %309, %311
  %313 = call noundef float @_ZSt4fabsf(float noundef %312)
  %314 = fcmp ogt float %313, 0x3FA99999A0000000
  br i1 %314, label %315, label %341

315:                                              ; preds = %.lr.ph176
  %316 = getelementptr inbounds float, ptr %34, i64 %indvars.iv206
  %317 = getelementptr inbounds float, ptr %36, i64 %indvars.iv206
  %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.11)
          to label %319 unwind label %339

319:                                              ; preds = %315
  %320 = trunc nuw nsw i64 %indvars.iv206 to i32
  %321 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %318, i32 noundef %320)
          to label %322 unwind label %339

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

324:                                              ; preds = %322
  %325 = load float, ptr %316, align 4, !tbaa !9
  %326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %323, float noundef %325)
          to label %327 unwind label %339

327:                                              ; preds = %324
  %328 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %326, ptr noundef nonnull @.str.13)
          to label %329 unwind label %339

329:                                              ; preds = %327
  %330 = load float, ptr %317, align 4, !tbaa !9
  %331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %328, float noundef %330)
          to label %332 unwind label %339

332:                                              ; preds = %329
  %333 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %331, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %334 unwind label %339

334:                                              ; preds = %332
  %335 = 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 %336 unwind label %339

336:                                              ; preds = %334
  %337 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %335, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %338 unwind label %339

338:                                              ; preds = %336
  call void @_ZdaPv(ptr noundef nonnull %26) #13
  call void @_ZdaPv(ptr noundef nonnull %30) #13
  call void @_ZdaPv(ptr noundef nonnull %34) #13
  call void @_ZdaPv(ptr noundef nonnull %36) #13
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %118) #11
  call void @_ZdlPvm(ptr noundef nonnull %118, 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

339:                                              ; preds = %336, %334, %332, %329, %327, %324, %322, %319, %315
  %340 = landingpad { ptr, i32 }
          cleanup
  br label %347

341:                                              ; preds = %.lr.ph176
  %indvars.iv.next207 = add nuw nsw i64 %indvars.iv206, 1
  %exitcond210.not = icmp eq i64 %indvars.iv.next207, %32
  br i1 %exitcond210.not, label %._crit_edge177, label %.lr.ph176, !llvm.loop !43

342:                                              ; preds = %._crit_edge177
  %343 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %301, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %344 unwind label %306

344:                                              ; preds = %342
  %345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %343, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %346 unwind label %306

346:                                              ; preds = %344
  call void @_ZdaPv(ptr noundef nonnull %26) #13
  call void @_ZdaPv(ptr noundef nonnull %30) #13
  call void @_ZdaPv(ptr noundef nonnull %34) #13
  call void @_ZdaPv(ptr noundef nonnull %36) #13
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %118) #11
  call void @_ZdlPvm(ptr noundef nonnull %118, i64 noundef 320) #13
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %14) #11
  call void @llvm.lifetime.end.p0(i64 152, 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

347:                                              ; preds = %339, %306
  %.pn = phi { ptr, i32 } [ %340, %339 ], [ %307, %306 ]
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %14) #11
  br label %348

348:                                              ; preds = %347, %304
  %.pn.pn = phi { ptr, i32 } [ %.pn, %347 ], [ %305, %304 ]
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %14) #11
  br label %349

349:                                              ; preds = %348, %302
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %348 ], [ %303, %302 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #11
  br label %350

350:                                              ; preds = %43, %47, %51, %87, %81, %115, %109, %198, %214, %349, %196, %194, %192, %49, %45, %41
  %.pn127.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %42, %41 ], [ %44, %43 ], [ %46, %45 ], [ %48, %47 ], [ %50, %49 ], [ %52, %51 ], [ %82, %81 ], [ %88, %87 ], [ %110, %109 ], [ %116, %115 ], [ %193, %192 ], [ %197, %196 ], [ %195, %194 ], [ %215, %214 ], [ %.pn.pn.pn, %349 ], [ %199, %198 ]
  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 %351

351:                                              ; preds = %350, %39
  %.pn127.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn127.pn.pn.pn.pn.pn.pn, %350 ], [ %40, %39 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #11
  resume { ptr, i32 } %.pn127.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 @_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 12}
!33 = !{!"_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, !34, i64 48, !35, i64 56, !35, i64 80, !35, i64 104, !35, i64 128}
!34 = !{!"_ZTS8Dataflow", !7, i64 0}
!35 = !{!"_ZTSSt6vectorIjSaIjEE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !39, i64 0, !39, i64 8, !39, i64 16}
!39 = !{!"any pointer", !7, i64 0}
!40 = !{!33, !6, i64 16}
!41 = !{!33, !6, i64 20}
!42 = !{!33, !6, i64 24}
!43 = distinct !{!43, !12}


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