; LLVM IR from stonne-simulator/omega :: omega-code/stonne/src/other_main (pipelining_gs)

; 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 }

@__const.main.loop_order_agg = external hidden unnamed_addr constant [4 x i8], align 1
@__const.main.loop_order_cmb = external hidden unnamed_addr constant [4 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [45 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %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 i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca [4 x i8], align 1
  %19 = alloca [4 x i8], align 1
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca float, align 4
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca i32, align 4
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca %class.Config, align 4
  %44 = alloca %class.Config, align 4
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca ptr, align 8
  %50 = alloca %class.Config, align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca ptr, align 8
  %58 = alloca ptr, align 8
  %59 = alloca i32, align 4
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca ptr, align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::allocator", align 1
  %67 = alloca ptr, align 8
  %68 = alloca %class.Config, align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca ptr, align 8
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca ptr, align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  store i32 0, ptr %1, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #11
  store i32 0, ptr %3, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  store i32 1313, ptr %4, align 4, !tbaa !9
  store i32 136, ptr %5, align 4, !tbaa !9
  store i32 2, ptr %6, align 4, !tbaa !9
  store i32 12, ptr %7, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #11
  store i32 1, ptr %8, align 4, !tbaa !9
  store i32 1, ptr %9, align 4, !tbaa !9
  store i32 136, ptr %10, align 4, !tbaa !9
  store i32 1, ptr %11, align 4, !tbaa !9
  store i32 1, ptr %12, align 4, !tbaa !9
  store i32 136, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  store i32 512, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  store i32 512, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %18, ptr align 1 @__const.main.loop_order_agg, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %19, ptr align 1 @__const.main.loop_order_cmb, i64 4, i1 false)
  %93 = load i32, ptr %3, align 4, !tbaa !5
  %94 = icmp eq i32 %93, 0
  br i1 %94, label %95, label %154

95:                                               ; preds = %0
  %96 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 0
  %97 = load i8, ptr %96, align 1, !tbaa !11
  %98 = sext i8 %97 to i32
  %99 = getelementptr inbounds [4 x i8], ptr %19, i64 0, i64 0
  %100 = load i8, ptr %99, align 1, !tbaa !11
  %101 = sext i8 %100 to i32
  %102 = icmp eq i32 %98, %101
  br i1 %102, label %103, label %122

103:                                              ; preds = %95
  %104 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 1
  %105 = load i8, ptr %104, align 1, !tbaa !11
  %106 = sext i8 %105 to i32
  %107 = getelementptr inbounds [4 x i8], ptr %19, i64 0, i64 1
  %108 = load i8, ptr %107, align 1, !tbaa !11
  %109 = sext i8 %108 to i32
  %110 = icmp eq i32 %106, %109
  br i1 %110, label %111, label %122

111:                                              ; preds = %103
  %112 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 0
  %113 = load i8, ptr %112, align 1, !tbaa !11
  %114 = sext i8 %113 to i32
  %115 = icmp eq i32 %114, 86
  br i1 %115, label %121, label %116

116:                                              ; preds = %111
  %117 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 0
  %118 = load i8, ptr %117, align 1, !tbaa !11
  %119 = sext i8 %118 to i32
  %120 = icmp eq i32 %119, 70
  br i1 %120, label %121, label %122

121:                                              ; preds = %116, %111
  store i32 0, ptr %2, align 4, !tbaa !12
  br label %153

122:                                              ; preds = %116, %103, %95
  %123 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 0
  %124 = load i8, ptr %123, align 1, !tbaa !11
  %125 = sext i8 %124 to i32
  %126 = getelementptr inbounds [4 x i8], ptr %19, i64 0, i64 0
  %127 = load i8, ptr %126, align 1, !tbaa !11
  %128 = sext i8 %127 to i32
  %129 = icmp eq i32 %125, %128
  br i1 %129, label %130, label %136

130:                                              ; preds = %122
  %131 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 0
  %132 = load i8, ptr %131, align 1, !tbaa !11
  %133 = sext i8 %132 to i32
  %134 = icmp eq i32 %133, 86
  br i1 %134, label %135, label %136

135:                                              ; preds = %130
  store i32 1, ptr %2, align 4, !tbaa !12
  br label %152

136:                                              ; preds = %130, %122
  %137 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 0
  %138 = load i8, ptr %137, align 1, !tbaa !11
  %139 = sext i8 %138 to i32
  %140 = getelementptr inbounds [4 x i8], ptr %19, i64 0, i64 0
  %141 = load i8, ptr %140, align 1, !tbaa !11
  %142 = sext i8 %141 to i32
  %143 = icmp eq i32 %139, %142
  br i1 %143, label %144, label %150

144:                                              ; preds = %136
  %145 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 0
  %146 = load i8, ptr %145, align 1, !tbaa !11
  %147 = sext i8 %146 to i32
  %148 = icmp eq i32 %147, 70
  br i1 %148, label %149, label %150

149:                                              ; preds = %144
  store i32 2, ptr %2, align 4, !tbaa !12
  br label %151

150:                                              ; preds = %144, %136
  store i32 3, ptr %2, align 4, !tbaa !12
  br label %151

151:                                              ; preds = %150, %149
  br label %152

152:                                              ; preds = %151, %135
  br label %153

153:                                              ; preds = %152, %121
  br label %225

154:                                              ; preds = %0
  %155 = load i32, ptr %3, align 4, !tbaa !5
  %156 = icmp eq i32 %155, 1
  br i1 %156, label %157, label %224

157:                                              ; preds = %154
  %158 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 0
  %159 = load i8, ptr %158, align 1, !tbaa !11
  %160 = sext i8 %159 to i32
  %161 = icmp eq i32 %160, 78
  br i1 %161, label %162, label %177

162:                                              ; preds = %157
  %163 = getelementptr inbounds [4 x i8], ptr %19, i64 0, i64 0
  %164 = load i8, ptr %163, align 1, !tbaa !11
  %165 = sext i8 %164 to i32
  %166 = icmp eq i32 %165, 86
  br i1 %166, label %167, label %177

167:                                              ; preds = %162
  %168 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 1
  %169 = load i8, ptr %168, align 1, !tbaa !11
  %170 = sext i8 %169 to i32
  %171 = icmp eq i32 %170, 70
  br i1 %171, label %172, label %177

172:                                              ; preds = %167
  %173 = getelementptr inbounds [4 x i8], ptr %19, i64 0, i64 1
  %174 = load i8, ptr %173, align 1, !tbaa !11
  %175 = sext i8 %174 to i32
  %176 = icmp eq i32 %175, 71
  br i1 %176, label %197, label %177

177:                                              ; preds = %172, %167, %162, %157
  %178 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 0
  %179 = load i8, ptr %178, align 1, !tbaa !11
  %180 = sext i8 %179 to i32
  %181 = icmp eq i32 %180, 70
  br i1 %181, label %182, label %198

182:                                              ; preds = %177
  %183 = getelementptr inbounds [4 x i8], ptr %19, i64 0, i64 0
  %184 = load i8, ptr %183, align 1, !tbaa !11
  %185 = sext i8 %184 to i32
  %186 = icmp eq i32 %185, 71
  br i1 %186, label %187, label %198

187:                                              ; preds = %182
  %188 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 1
  %189 = load i8, ptr %188, align 1, !tbaa !11
  %190 = sext i8 %189 to i32
  %191 = icmp eq i32 %190, 78
  br i1 %191, label %192, label %198

192:                                              ; preds = %187
  %193 = getelementptr inbounds [4 x i8], ptr %19, i64 0, i64 1
  %194 = load i8, ptr %193, align 1, !tbaa !11
  %195 = sext i8 %194 to i32
  %196 = icmp eq i32 %195, 86
  br i1 %196, label %197, label %198

197:                                              ; preds = %192, %172
  store i32 0, ptr %2, align 4, !tbaa !12
  br label %223

198:                                              ; preds = %192, %187, %182, %177
  %199 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 0
  %200 = load i8, ptr %199, align 1, !tbaa !11
  %201 = sext i8 %200 to i32
  %202 = icmp eq i32 %201, 78
  br i1 %202, label %203, label %209

203:                                              ; preds = %198
  %204 = getelementptr inbounds [4 x i8], ptr %19, i64 0, i64 0
  %205 = load i8, ptr %204, align 1, !tbaa !11
  %206 = sext i8 %205 to i32
  %207 = icmp eq i32 %206, 86
  br i1 %207, label %208, label %209

208:                                              ; preds = %203
  store i32 1, ptr %2, align 4, !tbaa !12
  br label %222

209:                                              ; preds = %203, %198
  %210 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 0
  %211 = load i8, ptr %210, align 1, !tbaa !11
  %212 = sext i8 %211 to i32
  %213 = icmp eq i32 %212, 70
  br i1 %213, label %214, label %220

214:                                              ; preds = %209
  %215 = getelementptr inbounds [4 x i8], ptr %19, i64 0, i64 0
  %216 = load i8, ptr %215, align 1, !tbaa !11
  %217 = sext i8 %216 to i32
  %218 = icmp eq i32 %217, 71
  br i1 %218, label %219, label %220

219:                                              ; preds = %214
  store i32 2, ptr %2, align 4, !tbaa !12
  br label %221

220:                                              ; preds = %214, %209
  store i32 3, ptr %2, align 4, !tbaa !12
  br label %221

221:                                              ; preds = %220, %219
  br label %222

222:                                              ; preds = %221, %208
  br label %223

223:                                              ; preds = %222, %197
  br label %224

224:                                              ; preds = %223, %154
  br label %225

225:                                              ; preds = %224, %153
  %226 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str)
  %227 = getelementptr inbounds [4 x i8], ptr %18, i64 0, i64 0
  %228 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %226, ptr noundef %227)
  %229 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %228, ptr noundef @.str.1)
  %230 = getelementptr inbounds [4 x i8], ptr %19, i64 0, i64 0
  %231 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %229, ptr noundef %230)
  %232 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %231, ptr noundef @.str.1)
  %233 = load i32, ptr %2, align 4, !tbaa !12
  %234 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %232, i32 noundef %233)
  %235 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %234, ptr noundef @.str)
  %236 = load i32, ptr %2, align 4, !tbaa !12
  %237 = icmp eq i32 %236, 0
  br i1 %237, label %238, label %267

238:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  store i32 0, ptr %20, align 4, !tbaa !9
  %239 = load i32, ptr %8, align 4, !tbaa !9
  %240 = load i32, ptr %11, align 4, !tbaa !9
  %241 = icmp sgt i32 %239, %240
  br i1 %241, label %242, label %244

242:                                              ; preds = %238
  %243 = load i32, ptr %8, align 4, !tbaa !9
  br label %246

244:                                              ; preds = %238
  %245 = load i32, ptr %11, align 4, !tbaa !9
  br label %246

246:                                              ; preds = %244, %242
  %247 = phi i32 [ %243, %242 ], [ %245, %244 ]
  store i32 %247, ptr %14, align 4, !tbaa !9
  %248 = load i32, ptr %10, align 4, !tbaa !9
  %249 = load i32, ptr %13, align 4, !tbaa !9
  %250 = icmp sgt i32 %248, %249
  br i1 %250, label %251, label %253

251:                                              ; preds = %246
  %252 = load i32, ptr %10, align 4, !tbaa !9
  br label %255

253:                                              ; preds = %246
  %254 = load i32, ptr %13, align 4, !tbaa !9
  br label %255

255:                                              ; preds = %253, %251
  %256 = phi i32 [ %252, %251 ], [ %254, %253 ]
  store i32 %256, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %257 = load i32, ptr %14, align 4, !tbaa !9
  %258 = mul nsw i32 2, %257
  %259 = load i32, ptr %15, align 4, !tbaa !9
  %260 = mul nsw i32 %258, %259
  store i32 %260, ptr %21, align 4, !tbaa !9
  %261 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.2)
  %262 = load i32, ptr %20, align 4, !tbaa !9
  %263 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %261, i32 noundef %262)
  %264 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %263, ptr noundef @.str.3)
  %265 = load i32, ptr %21, align 4, !tbaa !9
  %266 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %264, i32 noundef %265)
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %267

267:                                              ; preds = %255, %225
  %268 = load i32, ptr %2, align 4, !tbaa !12
  %269 = icmp eq i32 %268, 1
  br i1 %269, label %270, label %1658

270:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  store i32 0, ptr %22, align 4, !tbaa !9
  %271 = load i32, ptr %8, align 4, !tbaa !9
  %272 = load i32, ptr %11, align 4, !tbaa !9
  %273 = icmp sgt i32 %271, %272
  br i1 %273, label %274, label %276

274:                                              ; preds = %270
  %275 = load i32, ptr %8, align 4, !tbaa !9
  br label %278

276:                                              ; preds = %270
  %277 = load i32, ptr %11, align 4, !tbaa !9
  br label %278

278:                                              ; preds = %276, %274
  %279 = phi i32 [ %275, %274 ], [ %277, %276 ]
  store i32 %279, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %280 = load i32, ptr %14, align 4, !tbaa !9
  %281 = mul nsw i32 2, %280
  %282 = load i32, ptr %5, align 4, !tbaa !9
  %283 = mul nsw i32 %281, %282
  store i32 %283, ptr %23, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  store float 0x3FA99999A0000000, ptr %24, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %284 unwind label %307

284:                                              ; preds = %278
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #11
  %285 = load i32, ptr %4, align 4, !tbaa !9
  %286 = load i32, ptr %4, align 4, !tbaa !9
  %287 = load i32, ptr %7, align 4, !tbaa !9
  %288 = invoke noundef ptr @_Z26generateMatrixDenseSampledjji(i32 noundef %285, i32 noundef %286, i32 noundef %287)
          to label %289 unwind label %311

289:                                              ; preds = %284
  store ptr %288, ptr %29, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #11
  %290 = load i32, ptr %4, align 4, !tbaa !9
  %291 = load i32, ptr %4, align 4, !tbaa !9
  %292 = mul nsw i32 %290, %291
  %293 = sext i32 %292 to i64
  %294 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %293, i64 4)
  %295 = extractvalue { i64, i1 } %294, 1
  %296 = extractvalue { i64, i1 } %294, 0
  %297 = select i1 %295, i64 -1, i64 %296
  %298 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %297) #12
          to label %299 unwind label %315

299:                                              ; preds = %289
  store ptr %298, ptr %30, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  store i32 0, ptr %31, align 4, !tbaa !9
  br label %300

300:                                              ; preds = %329, %299
  %301 = load i32, ptr %31, align 4, !tbaa !9
  %302 = load i32, ptr %4, align 4, !tbaa !9
  %303 = load i32, ptr %4, align 4, !tbaa !9
  %304 = mul nsw i32 %302, %303
  %305 = icmp slt i32 %301, %304
  br i1 %305, label %319, label %306

306:                                              ; preds = %300
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %332

307:                                              ; preds = %278
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %27, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %28, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #11
  br label %1657

311:                                              ; preds = %284
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %27, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %28, align 4
  br label %1656

315:                                              ; preds = %289
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %27, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %28, align 4
  br label %1655

319:                                              ; preds = %300
  %320 = load ptr, ptr %29, align 8, !tbaa !16
  %321 = load i32, ptr %31, align 4, !tbaa !9
  %322 = sext i32 %321 to i64
  %323 = getelementptr inbounds float, ptr %320, i64 %322
  %324 = load float, ptr %323, align 4, !tbaa !14
  %325 = load ptr, ptr %30, align 8, !tbaa !16
  %326 = load i32, ptr %31, align 4, !tbaa !9
  %327 = sext i32 %326 to i64
  %328 = getelementptr inbounds float, ptr %325, i64 %327
  store float %324, ptr %328, align 4, !tbaa !14
  br label %329

329:                                              ; preds = %319
  %330 = load i32, ptr %31, align 4, !tbaa !9
  %331 = add nsw i32 %330, 1
  store i32 %331, ptr %31, align 4, !tbaa !9
  br label %300, !llvm.loop !18

332:                                              ; preds = %306
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  store i32 0, ptr %32, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #11
  %333 = load ptr, ptr %30, align 8, !tbaa !16
  %334 = load i32, ptr %4, align 4, !tbaa !9
  %335 = load i32, ptr %4, align 4, !tbaa !9
  %336 = invoke noundef ptr @_Z24generateMinorIDFromDensePfjjRi15GENERATION_TYPE(ptr noundef %333, i32 noundef %334, i32 noundef %335, ptr noundef nonnull align 4 dereferenceable(4) %32, i32 noundef 0)
          to label %337 unwind label %350

337:                                              ; preds = %332
  store ptr %336, ptr %33, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #11
  %338 = load ptr, ptr %30, align 8, !tbaa !16
  %339 = load i32, ptr %4, align 4, !tbaa !9
  %340 = load i32, ptr %4, align 4, !tbaa !9
  %341 = invoke noundef ptr @_Z29generateMajorPointerFromDensePfjj15GENERATION_TYPE(ptr noundef %338, i32 noundef %339, i32 noundef %340, i32 noundef 0)
          to label %342 unwind label %354

342:                                              ; preds = %337
  store ptr %341, ptr %34, align 8, !tbaa !16
  %343 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.5)
          to label %344 unwind label %354

344:                                              ; preds = %342
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  store i32 0, ptr %35, align 4, !tbaa !9
  br label %345

345:                                              ; preds = %368, %344
  %346 = load i32, ptr %35, align 4, !tbaa !9
  %347 = load i32, ptr %4, align 4, !tbaa !9
  %348 = icmp sle i32 %346, %347
  br i1 %348, label %358, label %349

349:                                              ; preds = %345
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %375

350:                                              ; preds = %332
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %27, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %28, align 4
  br label %1654

354:                                              ; preds = %375, %342, %337
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %27, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %28, align 4
  br label %1653

358:                                              ; preds = %345
  %359 = load ptr, ptr %34, align 8, !tbaa !16
  %360 = load i32, ptr %35, align 4, !tbaa !9
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds i32, ptr %359, i64 %361
  %363 = load i32, ptr %362, align 4, !tbaa !9
  %364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %363)
          to label %365 unwind label %371

365:                                              ; preds = %358
  %366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef @.str.1)
          to label %367 unwind label %371

367:                                              ; preds = %365
  br label %368

368:                                              ; preds = %367
  %369 = load i32, ptr %35, align 4, !tbaa !9
  %370 = add nsw i32 %369, 1
  store i32 %370, ptr %35, align 4, !tbaa !9
  br label %345, !llvm.loop !20

371:                                              ; preds = %365, %358
  %372 = landingpad { ptr, i32 }
          cleanup
  %373 = extractvalue { ptr, i32 } %372, 0
  store ptr %373, ptr %27, align 8
  %374 = extractvalue { ptr, i32 } %372, 1
  store i32 %374, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1653

375:                                              ; preds = %349
  %376 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.6)
          to label %377 unwind label %354

377:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #11
  %378 = load ptr, ptr %30, align 8, !tbaa !16
  %379 = load i32, ptr %4, align 4, !tbaa !9
  %380 = load i32, ptr %4, align 4, !tbaa !9
  %381 = invoke noundef ptr @_Z37generateMatrixSparseFromDenseNoBitmapPfjj15GENERATION_TYPE(ptr noundef %378, i32 noundef %379, i32 noundef %380, i32 noundef 0)
          to label %382 unwind label %404

382:                                              ; preds = %377
  store ptr %381, ptr %36, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #11
  %383 = load i32, ptr %4, align 4, !tbaa !9
  %384 = load i32, ptr %5, align 4, !tbaa !9
  %385 = invoke noundef ptr @_Z19generateMatrixDensejjf(i32 noundef %383, i32 noundef %384, float noundef 0.000000e+00)
          to label %386 unwind label %408

386:                                              ; preds = %382
  store ptr %385, ptr %37, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #11
  %387 = load i32, ptr %4, align 4, !tbaa !9
  %388 = load i32, ptr %5, align 4, !tbaa !9
  %389 = mul nsw i32 %387, %388
  %390 = sext i32 %389 to i64
  %391 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %390, i64 4)
  %392 = extractvalue { i64, i1 } %391, 1
  %393 = extractvalue { i64, i1 } %391, 0
  %394 = select i1 %392, i64 -1, i64 %393
  %395 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %394) #12
          to label %396 unwind label %412

396:                                              ; preds = %386
  store ptr %395, ptr %38, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  store i32 0, ptr %39, align 4, !tbaa !9
  br label %397

397:                                              ; preds = %426, %396
  %398 = load i32, ptr %39, align 4, !tbaa !9
  %399 = load i32, ptr %4, align 4, !tbaa !9
  %400 = load i32, ptr %5, align 4, !tbaa !9
  %401 = mul nsw i32 %399, %400
  %402 = icmp slt i32 %398, %401
  br i1 %402, label %416, label %403

403:                                              ; preds = %397
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %429

404:                                              ; preds = %377
  %405 = landingpad { ptr, i32 }
          cleanup
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %27, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %28, align 4
  br label %1652

408:                                              ; preds = %382
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %27, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %28, align 4
  br label %1651

412:                                              ; preds = %386
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %27, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %28, align 4
  br label %1650

416:                                              ; preds = %397
  %417 = load ptr, ptr %37, align 8, !tbaa !16
  %418 = load i32, ptr %39, align 4, !tbaa !9
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds float, ptr %417, i64 %419
  %421 = load float, ptr %420, align 4, !tbaa !14
  %422 = load ptr, ptr %38, align 8, !tbaa !16
  %423 = load i32, ptr %39, align 4, !tbaa !9
  %424 = sext i32 %423 to i64
  %425 = getelementptr inbounds float, ptr %422, i64 %424
  store float %421, ptr %425, align 4, !tbaa !14
  br label %426

426:                                              ; preds = %416
  %427 = load i32, ptr %39, align 4, !tbaa !9
  %428 = add nsw i32 %427, 1
  store i32 %428, ptr %39, align 4, !tbaa !9
  br label %397, !llvm.loop !21

429:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #11
  %430 = load i32, ptr %4, align 4, !tbaa !9
  %431 = load i32, ptr %5, align 4, !tbaa !9
  %432 = mul nsw i32 %430, %431
  %433 = sext i32 %432 to i64
  %434 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %433, i64 4)
  %435 = extractvalue { i64, i1 } %434, 1
  %436 = extractvalue { i64, i1 } %434, 0
  %437 = select i1 %435, i64 -1, i64 %436
  %438 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %437) #12
          to label %439 unwind label %484

439:                                              ; preds = %429
  store ptr %438, ptr %40, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #11
  %440 = load i32, ptr %4, align 4, !tbaa !9
  %441 = load i32, ptr %5, align 4, !tbaa !9
  %442 = mul nsw i32 %440, %441
  %443 = sext i32 %442 to i64
  %444 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %443, i64 4)
  %445 = extractvalue { i64, i1 } %444, 1
  %446 = extractvalue { i64, i1 } %444, 0
  %447 = select i1 %445, i64 -1, i64 %446
  %448 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %447) #12
          to label %449 unwind label %488

449:                                              ; preds = %439
  store ptr %448, ptr %41, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  %450 = load i32, ptr %4, align 4, !tbaa !9
  %451 = load i32, ptr %5, align 4, !tbaa !9
  %452 = mul nsw i32 %450, %451
  %453 = sext i32 %452 to i64
  %454 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %453, i64 4)
  %455 = extractvalue { i64, i1 } %454, 1
  %456 = extractvalue { i64, i1 } %454, 0
  %457 = select i1 %455, i64 -1, i64 %456
  %458 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %457) #12
          to label %459 unwind label %492

459:                                              ; preds = %449
  store ptr %458, ptr %42, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 160, ptr %43) #11
  invoke void @_ZN6ConfigC1Ev(ptr noundef nonnull align 4 dereferenceable(160) %43)
          to label %460 unwind label %496

460:                                              ; preds = %459
  call void @llvm.lifetime.start.p0(i64 160, ptr %44) #11
  invoke void @_ZN6ConfigC1Ev(ptr noundef nonnull align 4 dereferenceable(160) %44)
          to label %461 unwind label %500

461:                                              ; preds = %460
  %462 = load i32, ptr %16, align 4, !tbaa !9
  %463 = getelementptr inbounds %class.Config, ptr %43, i32 0, i32 3
  %464 = getelementptr inbounds %class.MSNetworkConfig, ptr %463, i32 0, i32 1
  store i32 %462, ptr %464, align 4, !tbaa !22
  %465 = load i32, ptr %16, align 4, !tbaa !9
  %466 = getelementptr inbounds %class.Config, ptr %43, i32 0, i32 8
  %467 = getelementptr inbounds %class.SDMemoryConfig, ptr %466, i32 0, i32 2
  store i32 %465, ptr %467, align 4, !tbaa !36
  %468 = load i32, ptr %16, align 4, !tbaa !9
  %469 = getelementptr inbounds %class.Config, ptr %43, i32 0, i32 8
  %470 = getelementptr inbounds %class.SDMemoryConfig, ptr %469, i32 0, i32 3
  store i32 %468, ptr %470, align 4, !tbaa !37
  %471 = getelementptr inbounds %class.Config, ptr %43, i32 0, i32 5
  %472 = getelementptr inbounds %class.ASNetworkConfig, ptr %471, i32 0, i32 1
  store i32 1, ptr %472, align 4, !tbaa !38
  %473 = getelementptr inbounds %class.Config, ptr %43, i32 0, i32 8
  %474 = getelementptr inbounds %class.SDMemoryConfig, ptr %473, i32 0, i32 0
  store i32 2, ptr %474, align 4, !tbaa !39
  %475 = getelementptr inbounds %class.Config, ptr %43, i32 0, i32 0
  store i32 0, ptr %475, align 4, !tbaa !40
  %476 = load i32, ptr %9, align 4, !tbaa !9
  %477 = icmp sgt i32 %476, 1
  br i1 %477, label %478, label %513

478:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %479 unwind label %504

479:                                              ; preds = %478
  %480 = invoke noundef i32 @_Z28get_type_reduce_network_typeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %45)
          to label %481 unwind label %508

481:                                              ; preds = %479
  %482 = getelementptr inbounds %class.Config, ptr %43, i32 0, i32 5
  %483 = getelementptr inbounds %class.ASNetworkConfig, ptr %482, i32 0, i32 0
  store i32 %480, ptr %483, align 4, !tbaa !41
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #11
  br label %528

484:                                              ; preds = %429
  %485 = landingpad { ptr, i32 }
          cleanup
  %486 = extractvalue { ptr, i32 } %485, 0
  store ptr %486, ptr %27, align 8
  %487 = extractvalue { ptr, i32 } %485, 1
  store i32 %487, ptr %28, align 4
  br label %1649

488:                                              ; preds = %439
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %27, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %28, align 4
  br label %1648

492:                                              ; preds = %449
  %493 = landingpad { ptr, i32 }
          cleanup
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %27, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %28, align 4
  br label %1647

496:                                              ; preds = %459
  %497 = landingpad { ptr, i32 }
          cleanup
  %498 = extractvalue { ptr, i32 } %497, 0
  store ptr %498, ptr %27, align 8
  %499 = extractvalue { ptr, i32 } %497, 1
  store i32 %499, ptr %28, align 4
  br label %1646

500:                                              ; preds = %460
  %501 = landingpad { ptr, i32 }
          cleanup
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %27, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %28, align 4
  br label %1645

504:                                              ; preds = %478
  %505 = landingpad { ptr, i32 }
          cleanup
  %506 = extractvalue { ptr, i32 } %505, 0
  store ptr %506, ptr %27, align 8
  %507 = extractvalue { ptr, i32 } %505, 1
  store i32 %507, ptr %28, align 4
  br label %512

508:                                              ; preds = %479
  %509 = landingpad { ptr, i32 }
          cleanup
  %510 = extractvalue { ptr, i32 } %509, 0
  store ptr %510, ptr %27, align 8
  %511 = extractvalue { ptr, i32 } %509, 1
  store i32 %511, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #11
  br label %512

512:                                              ; preds = %508, %504
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #11
  br label %1645

513:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %514 unwind label %519

514:                                              ; preds = %513
  %515 = invoke noundef i32 @_Z28get_type_reduce_network_typeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %47)
          to label %516 unwind label %523

516:                                              ; preds = %514
  %517 = getelementptr inbounds %class.Config, ptr %43, i32 0, i32 5
  %518 = getelementptr inbounds %class.ASNetworkConfig, ptr %517, i32 0, i32 0
  store i32 %515, ptr %518, align 4, !tbaa !41
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #11
  br label %528

519:                                              ; preds = %513
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %27, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %28, align 4
  br label %527

523:                                              ; preds = %514
  %524 = landingpad { ptr, i32 }
          cleanup
  %525 = extractvalue { ptr, i32 } %524, 0
  store ptr %525, ptr %27, align 8
  %526 = extractvalue { ptr, i32 } %524, 1
  store i32 %526, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #11
  br label %527

527:                                              ; preds = %523, %519
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #11
  br label %1645

528:                                              ; preds = %516, %481
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #11
  %529 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 320) #12
          to label %530 unwind label %562

530:                                              ; preds = %528
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %50, ptr align 4 %43, i64 160, i1 false), !tbaa.struct !42
  invoke void @_ZN6StonneC1E6Config(ptr noundef nonnull align 8 dereferenceable(316) %529, ptr noundef byval(%class.Config) align 8 %50)
          to label %531 unwind label %566

531:                                              ; preds = %530
  store ptr %529, ptr %49, align 8, !tbaa !16
  %532 = load ptr, ptr %49, align 8, !tbaa !16
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %533 unwind label %562

533:                                              ; preds = %531
  %534 = load i32, ptr %5, align 4, !tbaa !9
  %535 = load i32, ptr %4, align 4, !tbaa !9
  %536 = load i32, ptr %4, align 4, !tbaa !9
  %537 = load ptr, ptr %36, align 8, !tbaa !16
  %538 = load ptr, ptr %38, align 8, !tbaa !16
  %539 = load ptr, ptr %33, align 8, !tbaa !16
  %540 = load ptr, ptr %34, align 8, !tbaa !16
  %541 = load ptr, ptr %42, align 8, !tbaa !16
  %542 = load i32, ptr %10, align 4, !tbaa !9
  %543 = load i32, ptr %9, align 4, !tbaa !9
  invoke void @_ZN6Stonne15loadSparseDenseENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjjjPfS6_PjS7_S6_jj(ptr noundef nonnull align 8 dereferenceable(316) %532, ptr noundef %51, i32 noundef %534, i32 noundef %535, i32 noundef %536, ptr noundef %537, ptr noundef %538, ptr noundef %539, ptr noundef %540, ptr noundef %541, i32 noundef %542, i32 noundef %543)
          to label %544 unwind label %570

544:                                              ; preds = %533
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  %545 = load ptr, ptr %49, align 8, !tbaa !16
  %546 = load ptr, ptr %40, align 8, !tbaa !16
  invoke void @_ZN6Stonne12loadClockingEPj(ptr noundef nonnull align 8 dereferenceable(316) %545, ptr noundef %546)
          to label %547 unwind label %562

547:                                              ; preds = %544
  %548 = load ptr, ptr %49, align 8, !tbaa !16
  invoke void @_ZN6Stonne3runEv(ptr noundef nonnull align 8 dereferenceable(316) %548)
          to label %549 unwind label %562

549:                                              ; preds = %547
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #11
  %550 = load ptr, ptr %49, align 8, !tbaa !16
  %551 = invoke noundef i32 @_ZN6Stonne9getCyclesEv(ptr noundef nonnull align 8 dereferenceable(316) %550)
          to label %552 unwind label %574

552:                                              ; preds = %549
  store i32 %551, ptr %52, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #11
  %553 = load i32, ptr %5, align 4, !tbaa !9
  %554 = sub nsw i32 %553, 1
  store i32 %554, ptr %53, align 4, !tbaa !9
  br label %555

555:                                              ; preds = %588, %552
  %556 = load i32, ptr %53, align 4, !tbaa !9
  %557 = load i32, ptr %4, align 4, !tbaa !9
  %558 = load i32, ptr %5, align 4, !tbaa !9
  %559 = mul nsw i32 %557, %558
  %560 = icmp slt i32 %556, %559
  br i1 %560, label %578, label %561

561:                                              ; preds = %555
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %596

562:                                              ; preds = %547, %544, %531, %528
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %27, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %28, align 4
  br label %1644

566:                                              ; preds = %530
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %27, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %28, align 4
  call void @_ZdlPvm(ptr noundef %529, i64 noundef 320) #13
  br label %1644

570:                                              ; preds = %533
  %571 = landingpad { ptr, i32 }
          cleanup
  %572 = extractvalue { ptr, i32 } %571, 0
  store ptr %572, ptr %27, align 8
  %573 = extractvalue { ptr, i32 } %571, 1
  store i32 %573, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  br label %1644

574:                                              ; preds = %636, %549
  %575 = landingpad { ptr, i32 }
          cleanup
  %576 = extractvalue { ptr, i32 } %575, 0
  store ptr %576, ptr %27, align 8
  %577 = extractvalue { ptr, i32 } %575, 1
  store i32 %577, ptr %28, align 4
  br label %1643

578:                                              ; preds = %555
  %579 = load ptr, ptr %40, align 8, !tbaa !16
  %580 = load i32, ptr %53, align 4, !tbaa !9
  %581 = sext i32 %580 to i64
  %582 = getelementptr inbounds i32, ptr %579, i64 %581
  %583 = load i32, ptr %582, align 4, !tbaa !9
  %584 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %583)
          to label %585 unwind label %592

585:                                              ; preds = %578
  %586 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %584, ptr noundef @.str.1)
          to label %587 unwind label %592

587:                                              ; preds = %585
  br label %588

588:                                              ; preds = %587
  %589 = load i32, ptr %5, align 4, !tbaa !9
  %590 = load i32, ptr %53, align 4, !tbaa !9
  %591 = add nsw i32 %590, %589
  store i32 %591, ptr %53, align 4, !tbaa !9
  br label %555, !llvm.loop !47

592:                                              ; preds = %585, %578
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %27, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %1643

596:                                              ; preds = %561
  %597 = load ptr, ptr %29, align 8, !tbaa !16
  %598 = icmp eq ptr %597, null
  br i1 %598, label %600, label %599

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

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

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

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

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

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

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

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

615:                                              ; preds = %612
  call void @_ZdaPv(ptr noundef %613) #13
  br label %616

616:                                              ; preds = %615, %612
  %617 = load ptr, ptr %34, align 8, !tbaa !16
  %618 = icmp eq ptr %617, null
  br i1 %618, label %620, label %619

619:                                              ; preds = %616
  call void @_ZdaPv(ptr noundef %617) #13
  br label %620

620:                                              ; preds = %619, %616
  %621 = load ptr, ptr %36, align 8, !tbaa !16
  %622 = icmp eq ptr %621, null
  br i1 %622, label %624, label %623

623:                                              ; preds = %620
  call void @_ZdaPv(ptr noundef %621) #13
  br label %624

624:                                              ; preds = %623, %620
  %625 = load ptr, ptr %41, align 8, !tbaa !16
  %626 = icmp eq ptr %625, null
  br i1 %626, label %628, label %627

627:                                              ; preds = %624
  call void @_ZdaPv(ptr noundef %625) #13
  br label %628

628:                                              ; preds = %627, %624
  %629 = load ptr, ptr %42, align 8, !tbaa !16
  %630 = icmp eq ptr %629, null
  br i1 %630, label %632, label %631

631:                                              ; preds = %628
  call void @_ZdaPv(ptr noundef %629) #13
  br label %632

632:                                              ; preds = %631, %628
  %633 = load ptr, ptr %49, align 8, !tbaa !16
  %634 = icmp eq ptr %633, null
  br i1 %634, label %636, label %635

635:                                              ; preds = %632
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %633) #11
  call void @_ZdlPvm(ptr noundef %633, i64 noundef 320) #13
  br label %636

636:                                              ; preds = %635, %632
  %637 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.9)
          to label %638 unwind label %574

638:                                              ; preds = %636
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #11
  %639 = load i32, ptr %4, align 4, !tbaa !9
  %640 = load i32, ptr %5, align 4, !tbaa !9
  %641 = invoke noundef ptr @_Z19generateMatrixDensejjf(i32 noundef %639, i32 noundef %640, float noundef 0.000000e+00)
          to label %642 unwind label %660

642:                                              ; preds = %638
  store ptr %641, ptr %54, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #11
  %643 = load i32, ptr %4, align 4, !tbaa !9
  %644 = load i32, ptr %5, align 4, !tbaa !9
  %645 = mul nsw i32 %643, %644
  %646 = sext i32 %645 to i64
  %647 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %646, i64 4)
  %648 = extractvalue { i64, i1 } %647, 1
  %649 = extractvalue { i64, i1 } %647, 0
  %650 = select i1 %648, i64 -1, i64 %649
  %651 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %650) #12
          to label %652 unwind label %664

652:                                              ; preds = %642
  store ptr %651, ptr %55, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  store i32 0, ptr %56, align 4, !tbaa !9
  br label %653

653:                                              ; preds = %678, %652
  %654 = load i32, ptr %56, align 4, !tbaa !9
  %655 = load i32, ptr %4, align 4, !tbaa !9
  %656 = load i32, ptr %5, align 4, !tbaa !9
  %657 = mul nsw i32 %655, %656
  %658 = icmp slt i32 %654, %657
  br i1 %658, label %668, label %659

659:                                              ; preds = %653
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %681

660:                                              ; preds = %638
  %661 = landingpad { ptr, i32 }
          cleanup
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %27, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %28, align 4
  br label %1642

664:                                              ; preds = %642
  %665 = landingpad { ptr, i32 }
          cleanup
  %666 = extractvalue { ptr, i32 } %665, 0
  store ptr %666, ptr %27, align 8
  %667 = extractvalue { ptr, i32 } %665, 1
  store i32 %667, ptr %28, align 4
  br label %1641

668:                                              ; preds = %653
  %669 = load ptr, ptr %54, align 8, !tbaa !16
  %670 = load i32, ptr %56, align 4, !tbaa !9
  %671 = sext i32 %670 to i64
  %672 = getelementptr inbounds float, ptr %669, i64 %671
  %673 = load float, ptr %672, align 4, !tbaa !14
  %674 = load ptr, ptr %55, align 8, !tbaa !16
  %675 = load i32, ptr %56, align 4, !tbaa !9
  %676 = sext i32 %675 to i64
  %677 = getelementptr inbounds float, ptr %674, i64 %676
  store float %673, ptr %677, align 4, !tbaa !14
  br label %678

678:                                              ; preds = %668
  %679 = load i32, ptr %56, align 4, !tbaa !9
  %680 = add nsw i32 %679, 1
  store i32 %680, ptr %56, align 4, !tbaa !9
  br label %653, !llvm.loop !48

681:                                              ; preds = %659
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #11
  %682 = load i32, ptr %5, align 4, !tbaa !9
  %683 = load i32, ptr %6, align 4, !tbaa !9
  %684 = invoke noundef ptr @_Z19generateMatrixDensejjf(i32 noundef %682, i32 noundef %683, float noundef 0.000000e+00)
          to label %685 unwind label %703

685:                                              ; preds = %681
  store ptr %684, ptr %57, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #11
  %686 = load i32, ptr %5, align 4, !tbaa !9
  %687 = load i32, ptr %6, align 4, !tbaa !9
  %688 = mul nsw i32 %686, %687
  %689 = sext i32 %688 to i64
  %690 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %689, i64 4)
  %691 = extractvalue { i64, i1 } %690, 1
  %692 = extractvalue { i64, i1 } %690, 0
  %693 = select i1 %691, i64 -1, i64 %692
  %694 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %693) #12
          to label %695 unwind label %707

695:                                              ; preds = %685
  store ptr %694, ptr %58, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  store i32 0, ptr %59, align 4, !tbaa !9
  br label %696

696:                                              ; preds = %721, %695
  %697 = load i32, ptr %59, align 4, !tbaa !9
  %698 = load i32, ptr %5, align 4, !tbaa !9
  %699 = load i32, ptr %6, align 4, !tbaa !9
  %700 = mul nsw i32 %698, %699
  %701 = icmp slt i32 %697, %700
  br i1 %701, label %711, label %702

702:                                              ; preds = %696
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %724

703:                                              ; preds = %681
  %704 = landingpad { ptr, i32 }
          cleanup
  %705 = extractvalue { ptr, i32 } %704, 0
  store ptr %705, ptr %27, align 8
  %706 = extractvalue { ptr, i32 } %704, 1
  store i32 %706, ptr %28, align 4
  br label %1640

707:                                              ; preds = %685
  %708 = landingpad { ptr, i32 }
          cleanup
  %709 = extractvalue { ptr, i32 } %708, 0
  store ptr %709, ptr %27, align 8
  %710 = extractvalue { ptr, i32 } %708, 1
  store i32 %710, ptr %28, align 4
  br label %1639

711:                                              ; preds = %696
  %712 = load ptr, ptr %57, align 8, !tbaa !16
  %713 = load i32, ptr %59, align 4, !tbaa !9
  %714 = sext i32 %713 to i64
  %715 = getelementptr inbounds float, ptr %712, i64 %714
  %716 = load float, ptr %715, align 4, !tbaa !14
  %717 = load ptr, ptr %58, align 8, !tbaa !16
  %718 = load i32, ptr %59, align 4, !tbaa !9
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds float, ptr %717, i64 %719
  store float %716, ptr %720, align 4, !tbaa !14
  br label %721

721:                                              ; preds = %711
  %722 = load i32, ptr %59, align 4, !tbaa !9
  %723 = add nsw i32 %722, 1
  store i32 %723, ptr %59, align 4, !tbaa !9
  br label %696, !llvm.loop !49

724:                                              ; preds = %702
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #11
  %725 = load i32, ptr %4, align 4, !tbaa !9
  %726 = load i32, ptr %6, align 4, !tbaa !9
  %727 = mul nsw i32 %725, %726
  %728 = sext i32 %727 to i64
  %729 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %728, i64 4)
  %730 = extractvalue { i64, i1 } %729, 1
  %731 = extractvalue { i64, i1 } %729, 0
  %732 = select i1 %730, i64 -1, i64 %731
  %733 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %732) #12
          to label %734 unwind label %777

734:                                              ; preds = %724
  store ptr %733, ptr %60, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #11
  %735 = load i32, ptr %4, align 4, !tbaa !9
  %736 = load i32, ptr %6, align 4, !tbaa !9
  %737 = mul nsw i32 %735, %736
  %738 = sext i32 %737 to i64
  %739 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %738, i64 4)
  %740 = extractvalue { i64, i1 } %739, 1
  %741 = extractvalue { i64, i1 } %739, 0
  %742 = select i1 %740, i64 -1, i64 %741
  %743 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %742) #12
          to label %744 unwind label %781

744:                                              ; preds = %734
  store ptr %743, ptr %61, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #11
  %745 = load i32, ptr %4, align 4, !tbaa !9
  %746 = load i32, ptr %6, align 4, !tbaa !9
  %747 = mul nsw i32 %745, %746
  %748 = sext i32 %747 to i64
  %749 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %748, i64 4)
  %750 = extractvalue { i64, i1 } %749, 1
  %751 = extractvalue { i64, i1 } %749, 0
  %752 = select i1 %750, i64 -1, i64 %751
  %753 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %752) #12
          to label %754 unwind label %785

754:                                              ; preds = %744
  store ptr %753, ptr %62, align 8, !tbaa !16
  %755 = load i32, ptr %17, align 4, !tbaa !9
  %756 = getelementptr inbounds %class.Config, ptr %44, i32 0, i32 3
  %757 = getelementptr inbounds %class.MSNetworkConfig, ptr %756, i32 0, i32 1
  store i32 %755, ptr %757, align 4, !tbaa !22
  %758 = load i32, ptr %17, align 4, !tbaa !9
  %759 = getelementptr inbounds %class.Config, ptr %44, i32 0, i32 8
  %760 = getelementptr inbounds %class.SDMemoryConfig, ptr %759, i32 0, i32 2
  store i32 %758, ptr %760, align 4, !tbaa !36
  %761 = load i32, ptr %17, align 4, !tbaa !9
  %762 = getelementptr inbounds %class.Config, ptr %44, i32 0, i32 8
  %763 = getelementptr inbounds %class.SDMemoryConfig, ptr %762, i32 0, i32 3
  store i32 %761, ptr %763, align 4, !tbaa !37
  %764 = getelementptr inbounds %class.Config, ptr %44, i32 0, i32 5
  %765 = getelementptr inbounds %class.ASNetworkConfig, ptr %764, i32 0, i32 1
  store i32 1, ptr %765, align 4, !tbaa !38
  %766 = getelementptr inbounds %class.Config, ptr %44, i32 0, i32 8
  %767 = getelementptr inbounds %class.SDMemoryConfig, ptr %766, i32 0, i32 0
  store i32 0, ptr %767, align 4, !tbaa !39
  %768 = getelementptr inbounds %class.Config, ptr %44, i32 0, i32 0
  store i32 0, ptr %768, align 4, !tbaa !40
  %769 = load i32, ptr %13, align 4, !tbaa !9
  %770 = icmp sgt i32 %769, 1
  br i1 %770, label %771, label %798

771:                                              ; preds = %754
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %772 unwind label %789

772:                                              ; preds = %771
  %773 = invoke noundef i32 @_Z28get_type_reduce_network_typeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %63)
          to label %774 unwind label %793

774:                                              ; preds = %772
  %775 = getelementptr inbounds %class.Config, ptr %44, i32 0, i32 5
  %776 = getelementptr inbounds %class.ASNetworkConfig, ptr %775, i32 0, i32 0
  store i32 %773, ptr %776, align 4, !tbaa !41
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #11
  br label %813

777:                                              ; preds = %724
  %778 = landingpad { ptr, i32 }
          cleanup
  %779 = extractvalue { ptr, i32 } %778, 0
  store ptr %779, ptr %27, align 8
  %780 = extractvalue { ptr, i32 } %778, 1
  store i32 %780, ptr %28, align 4
  br label %1638

781:                                              ; preds = %734
  %782 = landingpad { ptr, i32 }
          cleanup
  %783 = extractvalue { ptr, i32 } %782, 0
  store ptr %783, ptr %27, align 8
  %784 = extractvalue { ptr, i32 } %782, 1
  store i32 %784, ptr %28, align 4
  br label %1637

785:                                              ; preds = %744
  %786 = landingpad { ptr, i32 }
          cleanup
  %787 = extractvalue { ptr, i32 } %786, 0
  store ptr %787, ptr %27, align 8
  %788 = extractvalue { ptr, i32 } %786, 1
  store i32 %788, ptr %28, align 4
  br label %1636

789:                                              ; preds = %771
  %790 = landingpad { ptr, i32 }
          cleanup
  %791 = extractvalue { ptr, i32 } %790, 0
  store ptr %791, ptr %27, align 8
  %792 = extractvalue { ptr, i32 } %790, 1
  store i32 %792, ptr %28, align 4
  br label %797

793:                                              ; preds = %772
  %794 = landingpad { ptr, i32 }
          cleanup
  %795 = extractvalue { ptr, i32 } %794, 0
  store ptr %795, ptr %27, align 8
  %796 = extractvalue { ptr, i32 } %794, 1
  store i32 %796, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #11
  br label %797

797:                                              ; preds = %793, %789
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #11
  br label %1636

798:                                              ; preds = %754
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %799 unwind label %804

799:                                              ; preds = %798
  %800 = invoke noundef i32 @_Z28get_type_reduce_network_typeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %65)
          to label %801 unwind label %808

801:                                              ; preds = %799
  %802 = getelementptr inbounds %class.Config, ptr %44, i32 0, i32 5
  %803 = getelementptr inbounds %class.ASNetworkConfig, ptr %802, i32 0, i32 0
  store i32 %800, ptr %803, align 4, !tbaa !41
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #11
  br label %813

804:                                              ; preds = %798
  %805 = landingpad { ptr, i32 }
          cleanup
  %806 = extractvalue { ptr, i32 } %805, 0
  store ptr %806, ptr %27, align 8
  %807 = extractvalue { ptr, i32 } %805, 1
  store i32 %807, ptr %28, align 4
  br label %812

808:                                              ; preds = %799
  %809 = landingpad { ptr, i32 }
          cleanup
  %810 = extractvalue { ptr, i32 } %809, 0
  store ptr %810, ptr %27, align 8
  %811 = extractvalue { ptr, i32 } %809, 1
  store i32 %811, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  br label %812

812:                                              ; preds = %808, %804
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #11
  br label %1636

813:                                              ; preds = %801, %774
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #11
  %814 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 320) #12
          to label %815 unwind label %853

815:                                              ; preds = %813
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %68, ptr align 4 %44, i64 160, i1 false), !tbaa.struct !42
  invoke void @_ZN6StonneC1E6Config(ptr noundef nonnull align 8 dereferenceable(316) %814, ptr noundef byval(%class.Config) align 8 %68)
          to label %816 unwind label %857

816:                                              ; preds = %815
  store ptr %814, ptr %67, align 8, !tbaa !16
  %817 = load ptr, ptr %67, align 8, !tbaa !16
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %818 unwind label %853

818:                                              ; preds = %816
  %819 = load i32, ptr %6, align 4, !tbaa !9
  %820 = load i32, ptr %5, align 4, !tbaa !9
  %821 = load i32, ptr %4, align 4, !tbaa !9
  %822 = load ptr, ptr %55, align 8, !tbaa !16
  %823 = load ptr, ptr %58, align 8, !tbaa !16
  %824 = load ptr, ptr %62, align 8, !tbaa !16
  invoke void @_ZN6Stonne13loadDenseGEMMENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjjjPfS6_S6_8Dataflow(ptr noundef nonnull align 8 dereferenceable(316) %817, ptr noundef %69, i32 noundef %819, i32 noundef %820, i32 noundef %821, ptr noundef %822, ptr noundef %823, ptr noundef %824, i32 noundef 0)
          to label %825 unwind label %861

825:                                              ; preds = %818
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #11
  %826 = load ptr, ptr %67, align 8, !tbaa !16
  %827 = load ptr, ptr %60, align 8, !tbaa !16
  invoke void @_ZN6Stonne12loadClockingEPj(ptr noundef nonnull align 8 dereferenceable(316) %826, ptr noundef %827)
          to label %828 unwind label %853

828:                                              ; preds = %825
  %829 = load ptr, ptr %67, align 8, !tbaa !16
  %830 = load i32, ptr %12, align 4, !tbaa !9
  %831 = load i32, ptr %13, align 4, !tbaa !9
  %832 = load i32, ptr %11, align 4, !tbaa !9
  invoke void @_ZN6Stonne12loadGEMMTileEjjj(ptr noundef nonnull align 8 dereferenceable(316) %829, i32 noundef %830, i32 noundef %831, i32 noundef %832)
          to label %833 unwind label %853

833:                                              ; preds = %828
  %834 = load ptr, ptr %67, align 8, !tbaa !16
  invoke void @_ZN6Stonne3runEv(ptr noundef nonnull align 8 dereferenceable(316) %834)
          to label %835 unwind label %853

835:                                              ; preds = %833
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #11
  %836 = load i32, ptr %4, align 4, !tbaa !9
  %837 = load i32, ptr %6, align 4, !tbaa !9
  %838 = mul nsw i32 %836, %837
  %839 = sext i32 %838 to i64
  %840 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %839, i64 4)
  %841 = extractvalue { i64, i1 } %840, 1
  %842 = extractvalue { i64, i1 } %840, 0
  %843 = select i1 %841, i64 -1, i64 %842
  %844 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %843) #12
          to label %845 unwind label %865

845:                                              ; preds = %835
  store ptr %844, ptr %70, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  store i32 0, ptr %71, align 4, !tbaa !9
  br label %846

846:                                              ; preds = %879, %845
  %847 = load i32, ptr %71, align 4, !tbaa !9
  %848 = load i32, ptr %4, align 4, !tbaa !9
  %849 = load i32, ptr %6, align 4, !tbaa !9
  %850 = mul nsw i32 %848, %849
  %851 = icmp slt i32 %847, %850
  br i1 %851, label %869, label %852

852:                                              ; preds = %846
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %882

853:                                              ; preds = %833, %828, %825, %816, %813
  %854 = landingpad { ptr, i32 }
          cleanup
  %855 = extractvalue { ptr, i32 } %854, 0
  store ptr %855, ptr %27, align 8
  %856 = extractvalue { ptr, i32 } %854, 1
  store i32 %856, ptr %28, align 4
  br label %1635

857:                                              ; preds = %815
  %858 = landingpad { ptr, i32 }
          cleanup
  %859 = extractvalue { ptr, i32 } %858, 0
  store ptr %859, ptr %27, align 8
  %860 = extractvalue { ptr, i32 } %858, 1
  store i32 %860, ptr %28, align 4
  call void @_ZdlPvm(ptr noundef %814, i64 noundef 320) #13
  br label %1635

861:                                              ; preds = %818
  %862 = landingpad { ptr, i32 }
          cleanup
  %863 = extractvalue { ptr, i32 } %862, 0
  store ptr %863, ptr %27, align 8
  %864 = extractvalue { ptr, i32 } %862, 1
  store i32 %864, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #11
  br label %1635

865:                                              ; preds = %835
  %866 = landingpad { ptr, i32 }
          cleanup
  %867 = extractvalue { ptr, i32 } %866, 0
  store ptr %867, ptr %27, align 8
  %868 = extractvalue { ptr, i32 } %866, 1
  store i32 %868, ptr %28, align 4
  br label %1634

869:                                              ; preds = %846
  %870 = load ptr, ptr %60, align 8, !tbaa !16
  %871 = load i32, ptr %71, align 4, !tbaa !9
  %872 = sext i32 %871 to i64
  %873 = getelementptr inbounds i32, ptr %870, i64 %872
  %874 = load i32, ptr %873, align 4, !tbaa !9
  %875 = load ptr, ptr %70, align 8, !tbaa !16
  %876 = load i32, ptr %71, align 4, !tbaa !9
  %877 = sext i32 %876 to i64
  %878 = getelementptr inbounds i32, ptr %875, i64 %877
  store i32 %874, ptr %878, align 4, !tbaa !9
  br label %879

879:                                              ; preds = %869
  %880 = load i32, ptr %71, align 4, !tbaa !9
  %881 = add nsw i32 %880, 1
  store i32 %881, ptr %71, align 4, !tbaa !9
  br label %846, !llvm.loop !50

882:                                              ; preds = %852
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  store i32 0, ptr %72, align 4, !tbaa !9
  br label %883

883:                                              ; preds = %916, %882
  %884 = load i32, ptr %72, align 4, !tbaa !9
  %885 = load i32, ptr %4, align 4, !tbaa !9
  %886 = icmp slt i32 %884, %885
  br i1 %886, label %888, label %887

887:                                              ; preds = %883
  store i32 23, ptr %73, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %919

888:                                              ; preds = %883
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #11
  store i32 0, ptr %74, align 4, !tbaa !9
  br label %889

889:                                              ; preds = %912, %888
  %890 = load i32, ptr %74, align 4, !tbaa !9
  %891 = load i32, ptr %6, align 4, !tbaa !9
  %892 = icmp slt i32 %890, %891
  br i1 %892, label %894, label %893

893:                                              ; preds = %889
  store i32 26, ptr %73, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %915

894:                                              ; preds = %889
  %895 = load ptr, ptr %70, align 8, !tbaa !16
  %896 = load i32, ptr %74, align 4, !tbaa !9
  %897 = load i32, ptr %4, align 4, !tbaa !9
  %898 = mul nsw i32 %896, %897
  %899 = load i32, ptr %72, align 4, !tbaa !9
  %900 = add nsw i32 %898, %899
  %901 = sext i32 %900 to i64
  %902 = getelementptr inbounds i32, ptr %895, i64 %901
  %903 = load i32, ptr %902, align 4, !tbaa !9
  %904 = load ptr, ptr %60, align 8, !tbaa !16
  %905 = load i32, ptr %72, align 4, !tbaa !9
  %906 = load i32, ptr %6, align 4, !tbaa !9
  %907 = mul nsw i32 %905, %906
  %908 = load i32, ptr %74, align 4, !tbaa !9
  %909 = add nsw i32 %907, %908
  %910 = sext i32 %909 to i64
  %911 = getelementptr inbounds i32, ptr %904, i64 %910
  store i32 %903, ptr %911, align 4, !tbaa !9
  br label %912

912:                                              ; preds = %894
  %913 = load i32, ptr %74, align 4, !tbaa !9
  %914 = add nsw i32 %913, 1
  store i32 %914, ptr %74, align 4, !tbaa !9
  br label %889, !llvm.loop !51

915:                                              ; preds = %893
  br label %916

916:                                              ; preds = %915
  %917 = load i32, ptr %72, align 4, !tbaa !9
  %918 = add nsw i32 %917, 1
  store i32 %918, ptr %72, align 4, !tbaa !9
  br label %883, !llvm.loop !52

919:                                              ; preds = %887
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #11
  %920 = load ptr, ptr %67, align 8, !tbaa !16
  %921 = invoke noundef i32 @_ZN6Stonne9getCyclesEv(ptr noundef nonnull align 8 dereferenceable(316) %920)
          to label %922 unwind label %934

922:                                              ; preds = %919
  store i32 %921, ptr %75, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #11
  %923 = load i32, ptr %14, align 4, !tbaa !9
  %924 = load i32, ptr %6, align 4, !tbaa !9
  %925 = mul nsw i32 %923, %924
  %926 = sub nsw i32 %925, 1
  store i32 %926, ptr %76, align 4, !tbaa !9
  br label %927

927:                                              ; preds = %948, %922
  %928 = load i32, ptr %76, align 4, !tbaa !9
  %929 = load i32, ptr %4, align 4, !tbaa !9
  %930 = load i32, ptr %6, align 4, !tbaa !9
  %931 = mul nsw i32 %929, %930
  %932 = icmp slt i32 %928, %931
  br i1 %932, label %938, label %933

933:                                              ; preds = %927
  store i32 29, ptr %73, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %958

934:                                              ; preds = %1204, %1201, %1199, %1196, %1173, %919
  %935 = landingpad { ptr, i32 }
          cleanup
  %936 = extractvalue { ptr, i32 } %935, 0
  store ptr %936, ptr %27, align 8
  %937 = extractvalue { ptr, i32 } %935, 1
  store i32 %937, ptr %28, align 4
  br label %1633

938:                                              ; preds = %927
  %939 = load ptr, ptr %60, align 8, !tbaa !16
  %940 = load i32, ptr %76, align 4, !tbaa !9
  %941 = sext i32 %940 to i64
  %942 = getelementptr inbounds i32, ptr %939, i64 %941
  %943 = load i32, ptr %942, align 4, !tbaa !9
  %944 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %943)
          to label %945 unwind label %954

945:                                              ; preds = %938
  %946 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %944, ptr noundef @.str.1)
          to label %947 unwind label %954

947:                                              ; preds = %945
  br label %948

948:                                              ; preds = %947
  %949 = load i32, ptr %14, align 4, !tbaa !9
  %950 = load i32, ptr %6, align 4, !tbaa !9
  %951 = mul nsw i32 %949, %950
  %952 = load i32, ptr %76, align 4, !tbaa !9
  %953 = add nsw i32 %952, %951
  store i32 %953, ptr %76, align 4, !tbaa !9
  br label %927, !llvm.loop !53

954:                                              ; preds = %945, %938
  %955 = landingpad { ptr, i32 }
          cleanup
  %956 = extractvalue { ptr, i32 } %955, 0
  store ptr %956, ptr %27, align 8
  %957 = extractvalue { ptr, i32 } %955, 1
  store i32 %957, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %1633

958:                                              ; preds = %933
  %959 = load ptr, ptr %55, align 8, !tbaa !16
  %960 = icmp eq ptr %959, null
  br i1 %960, label %962, label %961

961:                                              ; preds = %958
  call void @_ZdaPv(ptr noundef %959) #13
  br label %962

962:                                              ; preds = %961, %958
  %963 = load ptr, ptr %58, align 8, !tbaa !16
  %964 = icmp eq ptr %963, null
  br i1 %964, label %966, label %965

965:                                              ; preds = %962
  call void @_ZdaPv(ptr noundef %963) #13
  br label %966

966:                                              ; preds = %965, %962
  %967 = load ptr, ptr %62, align 8, !tbaa !16
  %968 = icmp eq ptr %967, null
  br i1 %968, label %970, label %969

969:                                              ; preds = %966
  call void @_ZdaPv(ptr noundef %967) #13
  br label %970

970:                                              ; preds = %969, %966
  %971 = load ptr, ptr %61, align 8, !tbaa !16
  %972 = icmp eq ptr %971, null
  br i1 %972, label %974, label %973

973:                                              ; preds = %970
  call void @_ZdaPv(ptr noundef %971) #13
  br label %974

974:                                              ; preds = %973, %970
  %975 = load ptr, ptr %67, align 8, !tbaa !16
  %976 = icmp eq ptr %975, null
  br i1 %976, label %978, label %977

977:                                              ; preds = %974
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %975) #11
  call void @_ZdlPvm(ptr noundef %975, i64 noundef 320) #13
  br label %978

978:                                              ; preds = %977, %974
  %979 = load i32, ptr %8, align 4, !tbaa !9
  %980 = icmp eq i32 %979, 1
  br i1 %980, label %981, label %1207

981:                                              ; preds = %978
  %982 = load ptr, ptr %40, align 8, !tbaa !16
  %983 = load i32, ptr %14, align 4, !tbaa !9
  %984 = load i32, ptr %5, align 4, !tbaa !9
  %985 = mul nsw i32 %983, %984
  %986 = sub nsw i32 %985, 1
  %987 = sext i32 %986 to i64
  %988 = getelementptr inbounds i32, ptr %982, i64 %987
  %989 = load i32, ptr %988, align 4, !tbaa !9
  store i32 %989, ptr %22, align 4, !tbaa !9
  %990 = load ptr, ptr %40, align 8, !tbaa !16
  %991 = load i32, ptr %14, align 4, !tbaa !9
  %992 = mul nsw i32 2, %991
  %993 = load i32, ptr %5, align 4, !tbaa !9
  %994 = mul nsw i32 %992, %993
  %995 = sub nsw i32 %994, 1
  %996 = sext i32 %995 to i64
  %997 = getelementptr inbounds i32, ptr %990, i64 %996
  %998 = load i32, ptr %997, align 4, !tbaa !9
  %999 = load ptr, ptr %40, align 8, !tbaa !16
  %1000 = load i32, ptr %14, align 4, !tbaa !9
  %1001 = load i32, ptr %5, align 4, !tbaa !9
  %1002 = mul nsw i32 %1000, %1001
  %1003 = sub nsw i32 %1002, 1
  %1004 = sext i32 %1003 to i64
  %1005 = getelementptr inbounds i32, ptr %999, i64 %1004
  %1006 = load i32, ptr %1005, align 4, !tbaa !9
  %1007 = sub i32 %998, %1006
  %1008 = load ptr, ptr %60, align 8, !tbaa !16
  %1009 = load i32, ptr %14, align 4, !tbaa !9
  %1010 = load i32, ptr %6, align 4, !tbaa !9
  %1011 = mul nsw i32 %1009, %1010
  %1012 = sub nsw i32 %1011, 1
  %1013 = sext i32 %1012 to i64
  %1014 = getelementptr inbounds i32, ptr %1008, i64 %1013
  %1015 = load i32, ptr %1014, align 4, !tbaa !9
  %1016 = icmp ugt i32 %1007, %1015
  br i1 %1016, label %1017, label %1036

1017:                                             ; preds = %981
  %1018 = load ptr, ptr %40, align 8, !tbaa !16
  %1019 = load i32, ptr %14, align 4, !tbaa !9
  %1020 = mul nsw i32 2, %1019
  %1021 = load i32, ptr %5, align 4, !tbaa !9
  %1022 = mul nsw i32 %1020, %1021
  %1023 = sub nsw i32 %1022, 1
  %1024 = sext i32 %1023 to i64
  %1025 = getelementptr inbounds i32, ptr %1018, i64 %1024
  %1026 = load i32, ptr %1025, align 4, !tbaa !9
  %1027 = load ptr, ptr %40, align 8, !tbaa !16
  %1028 = load i32, ptr %14, align 4, !tbaa !9
  %1029 = load i32, ptr %5, align 4, !tbaa !9
  %1030 = mul nsw i32 %1028, %1029
  %1031 = sub nsw i32 %1030, 1
  %1032 = sext i32 %1031 to i64
  %1033 = getelementptr inbounds i32, ptr %1027, i64 %1032
  %1034 = load i32, ptr %1033, align 4, !tbaa !9
  %1035 = sub i32 %1026, %1034
  br label %1045

1036:                                             ; preds = %981
  %1037 = load ptr, ptr %60, align 8, !tbaa !16
  %1038 = load i32, ptr %14, align 4, !tbaa !9
  %1039 = load i32, ptr %6, align 4, !tbaa !9
  %1040 = mul nsw i32 %1038, %1039
  %1041 = sub nsw i32 %1040, 1
  %1042 = sext i32 %1041 to i64
  %1043 = getelementptr inbounds i32, ptr %1037, i64 %1042
  %1044 = load i32, ptr %1043, align 4, !tbaa !9
  br label %1045

1045:                                             ; preds = %1036, %1017
  %1046 = phi i32 [ %1035, %1017 ], [ %1044, %1036 ]
  %1047 = load i32, ptr %22, align 4, !tbaa !9
  %1048 = add i32 %1047, %1046
  store i32 %1048, ptr %22, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  store i32 2, ptr %77, align 4, !tbaa !9
  br label %1049

1049:                                             ; preds = %1170, %1045
  %1050 = load i32, ptr %77, align 4, !tbaa !9
  %1051 = load i32, ptr %4, align 4, !tbaa !9
  %1052 = load i32, ptr %14, align 4, !tbaa !9
  %1053 = sdiv i32 %1051, %1052
  %1054 = icmp slt i32 %1050, %1053
  br i1 %1054, label %1056, label %1055

1055:                                             ; preds = %1049
  store i32 32, ptr %73, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %1173

1056:                                             ; preds = %1049
  %1057 = load ptr, ptr %40, align 8, !tbaa !16
  %1058 = load i32, ptr %77, align 4, !tbaa !9
  %1059 = load i32, ptr %5, align 4, !tbaa !9
  %1060 = mul nsw i32 %1058, %1059
  %1061 = load i32, ptr %5, align 4, !tbaa !9
  %1062 = add nsw i32 %1060, %1061
  %1063 = load i32, ptr %14, align 4, !tbaa !9
  %1064 = mul nsw i32 %1062, %1063
  %1065 = sub nsw i32 %1064, 1
  %1066 = sext i32 %1065 to i64
  %1067 = getelementptr inbounds i32, ptr %1057, i64 %1066
  %1068 = load i32, ptr %1067, align 4, !tbaa !9
  %1069 = load ptr, ptr %40, align 8, !tbaa !16
  %1070 = load i32, ptr %77, align 4, !tbaa !9
  %1071 = sub nsw i32 %1070, 1
  %1072 = load i32, ptr %5, align 4, !tbaa !9
  %1073 = mul nsw i32 %1071, %1072
  %1074 = load i32, ptr %5, align 4, !tbaa !9
  %1075 = add nsw i32 %1073, %1074
  %1076 = load i32, ptr %14, align 4, !tbaa !9
  %1077 = mul nsw i32 %1075, %1076
  %1078 = sub nsw i32 %1077, 1
  %1079 = sext i32 %1078 to i64
  %1080 = getelementptr inbounds i32, ptr %1069, i64 %1079
  %1081 = load i32, ptr %1080, align 4, !tbaa !9
  %1082 = sub i32 %1068, %1081
  %1083 = load ptr, ptr %60, align 8, !tbaa !16
  %1084 = load i32, ptr %77, align 4, !tbaa !9
  %1085 = sub nsw i32 %1084, 1
  %1086 = load i32, ptr %6, align 4, !tbaa !9
  %1087 = mul nsw i32 %1085, %1086
  %1088 = load i32, ptr %6, align 4, !tbaa !9
  %1089 = add nsw i32 %1087, %1088
  %1090 = load i32, ptr %14, align 4, !tbaa !9
  %1091 = mul nsw i32 %1089, %1090
  %1092 = sub nsw i32 %1091, 1
  %1093 = sext i32 %1092 to i64
  %1094 = getelementptr inbounds i32, ptr %1083, i64 %1093
  %1095 = load i32, ptr %1094, align 4, !tbaa !9
  %1096 = load ptr, ptr %60, align 8, !tbaa !16
  %1097 = load i32, ptr %77, align 4, !tbaa !9
  %1098 = sub nsw i32 %1097, 2
  %1099 = load i32, ptr %6, align 4, !tbaa !9
  %1100 = mul nsw i32 %1098, %1099
  %1101 = load i32, ptr %6, align 4, !tbaa !9
  %1102 = add nsw i32 %1100, %1101
  %1103 = load i32, ptr %14, align 4, !tbaa !9
  %1104 = mul nsw i32 %1102, %1103
  %1105 = sub nsw i32 %1104, 1
  %1106 = sext i32 %1105 to i64
  %1107 = getelementptr inbounds i32, ptr %1096, i64 %1106
  %1108 = load i32, ptr %1107, align 4, !tbaa !9
  %1109 = sub i32 %1095, %1108
  %1110 = icmp ugt i32 %1082, %1109
  br i1 %1110, label %1111, label %1138

1111:                                             ; preds = %1056
  %1112 = load ptr, ptr %40, align 8, !tbaa !16
  %1113 = load i32, ptr %14, align 4, !tbaa !9
  %1114 = load i32, ptr %77, align 4, !tbaa !9
  %1115 = load i32, ptr %5, align 4, !tbaa !9
  %1116 = mul nsw i32 %1114, %1115
  %1117 = load i32, ptr %5, align 4, !tbaa !9
  %1118 = add nsw i32 %1116, %1117
  %1119 = mul nsw i32 %1113, %1118
  %1120 = sub nsw i32 %1119, 1
  %1121 = sext i32 %1120 to i64
  %1122 = getelementptr inbounds i32, ptr %1112, i64 %1121
  %1123 = load i32, ptr %1122, align 4, !tbaa !9
  %1124 = load ptr, ptr %40, align 8, !tbaa !16
  %1125 = load i32, ptr %77, align 4, !tbaa !9
  %1126 = sub nsw i32 %1125, 1
  %1127 = load i32, ptr %5, align 4, !tbaa !9
  %1128 = mul nsw i32 %1126, %1127
  %1129 = load i32, ptr %5, align 4, !tbaa !9
  %1130 = add nsw i32 %1128, %1129
  %1131 = load i32, ptr %14, align 4, !tbaa !9
  %1132 = mul nsw i32 %1130, %1131
  %1133 = sub nsw i32 %1132, 1
  %1134 = sext i32 %1133 to i64
  %1135 = getelementptr inbounds i32, ptr %1124, i64 %1134
  %1136 = load i32, ptr %1135, align 4, !tbaa !9
  %1137 = sub i32 %1123, %1136
  br label %1166

1138:                                             ; preds = %1056
  %1139 = load ptr, ptr %60, align 8, !tbaa !16
  %1140 = load i32, ptr %77, align 4, !tbaa !9
  %1141 = sub nsw i32 %1140, 1
  %1142 = load i32, ptr %6, align 4, !tbaa !9
  %1143 = mul nsw i32 %1141, %1142
  %1144 = load i32, ptr %6, align 4, !tbaa !9
  %1145 = add nsw i32 %1143, %1144
  %1146 = load i32, ptr %14, align 4, !tbaa !9
  %1147 = mul nsw i32 %1145, %1146
  %1148 = sub nsw i32 %1147, 1
  %1149 = sext i32 %1148 to i64
  %1150 = getelementptr inbounds i32, ptr %1139, i64 %1149
  %1151 = load i32, ptr %1150, align 4, !tbaa !9
  %1152 = load ptr, ptr %60, align 8, !tbaa !16
  %1153 = load i32, ptr %77, align 4, !tbaa !9
  %1154 = sub nsw i32 %1153, 2
  %1155 = load i32, ptr %6, align 4, !tbaa !9
  %1156 = mul nsw i32 %1154, %1155
  %1157 = load i32, ptr %6, align 4, !tbaa !9
  %1158 = add nsw i32 %1156, %1157
  %1159 = load i32, ptr %14, align 4, !tbaa !9
  %1160 = mul nsw i32 %1158, %1159
  %1161 = sub nsw i32 %1160, 1
  %1162 = sext i32 %1161 to i64
  %1163 = getelementptr inbounds i32, ptr %1152, i64 %1162
  %1164 = load i32, ptr %1163, align 4, !tbaa !9
  %1165 = sub i32 %1151, %1164
  br label %1166

1166:                                             ; preds = %1138, %1111
  %1167 = phi i32 [ %1137, %1111 ], [ %1165, %1138 ]
  %1168 = load i32, ptr %22, align 4, !tbaa !9
  %1169 = add i32 %1168, %1167
  store i32 %1169, ptr %22, align 4, !tbaa !9
  br label %1170

1170:                                             ; preds = %1166
  %1171 = load i32, ptr %77, align 4, !tbaa !9
  %1172 = add nsw i32 %1171, 1
  store i32 %1172, ptr %77, align 4, !tbaa !9
  br label %1049, !llvm.loop !54

1173:                                             ; preds = %1055
  %1174 = load ptr, ptr %60, align 8, !tbaa !16
  %1175 = load i32, ptr %4, align 4, !tbaa !9
  %1176 = load i32, ptr %6, align 4, !tbaa !9
  %1177 = mul nsw i32 %1175, %1176
  %1178 = sub nsw i32 %1177, 1
  %1179 = sext i32 %1178 to i64
  %1180 = getelementptr inbounds i32, ptr %1174, i64 %1179
  %1181 = load i32, ptr %1180, align 4, !tbaa !9
  %1182 = load ptr, ptr %60, align 8, !tbaa !16
  %1183 = load i32, ptr %4, align 4, !tbaa !9
  %1184 = load i32, ptr %14, align 4, !tbaa !9
  %1185 = sub nsw i32 %1183, %1184
  %1186 = load i32, ptr %6, align 4, !tbaa !9
  %1187 = mul nsw i32 %1185, %1186
  %1188 = sub nsw i32 %1187, 1
  %1189 = sext i32 %1188 to i64
  %1190 = getelementptr inbounds i32, ptr %1182, i64 %1189
  %1191 = load i32, ptr %1190, align 4, !tbaa !9
  %1192 = sub i32 %1181, %1191
  %1193 = load i32, ptr %22, align 4, !tbaa !9
  %1194 = add i32 %1193, %1192
  store i32 %1194, ptr %22, align 4, !tbaa !9
  %1195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.10)
          to label %1196 unwind label %934

1196:                                             ; preds = %1173
  %1197 = load i32, ptr %22, align 4, !tbaa !9
  %1198 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1195, i32 noundef %1197)
          to label %1199 unwind label %934

1199:                                             ; preds = %1196
  %1200 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1198, ptr noundef @.str.11)
          to label %1201 unwind label %934

1201:                                             ; preds = %1199
  %1202 = load i32, ptr %23, align 4, !tbaa !9
  %1203 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1200, i32 noundef %1202)
          to label %1204 unwind label %934

1204:                                             ; preds = %1201
  %1205 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1203, ptr noundef @.str.12)
          to label %1206 unwind label %934

1206:                                             ; preds = %1204
  br label %1207

1207:                                             ; preds = %1206, %978
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #11
  %1208 = load i32, ptr %4, align 4, !tbaa !9
  %1209 = load i32, ptr %8, align 4, !tbaa !9
  %1210 = sdiv i32 %1208, %1209
  %1211 = sext i32 %1210 to i64
  %1212 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %1211, i64 4)
  %1213 = extractvalue { i64, i1 } %1212, 1
  %1214 = extractvalue { i64, i1 } %1212, 0
  %1215 = select i1 %1213, i64 -1, i64 %1214
  %1216 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %1215) #12
          to label %1217 unwind label %1225

1217:                                             ; preds = %1207
  store ptr %1216, ptr %78, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  store i32 0, ptr %80, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  store i32 0, ptr %81, align 4, !tbaa !9
  br label %1218

1218:                                             ; preds = %1317, %1217
  %1219 = load i32, ptr %81, align 4, !tbaa !9
  %1220 = load i32, ptr %4, align 4, !tbaa !9
  %1221 = load i32, ptr %8, align 4, !tbaa !9
  %1222 = sdiv i32 %1220, %1221
  %1223 = icmp slt i32 %1219, %1222
  br i1 %1223, label %1229, label %1224

1224:                                             ; preds = %1218
  store i32 35, ptr %73, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %1324

1225:                                             ; preds = %1207
  %1226 = landingpad { ptr, i32 }
          cleanup
  %1227 = extractvalue { ptr, i32 } %1226, 0
  store ptr %1227, ptr %27, align 8
  %1228 = extractvalue { ptr, i32 } %1226, 1
  store i32 %1228, ptr %28, align 4
  br label %1632

1229:                                             ; preds = %1218
  store i32 0, ptr %79, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  store i32 0, ptr %82, align 4, !tbaa !9
  br label %1230

1230:                                             ; preds = %1300, %1229
  %1231 = load i32, ptr %82, align 4, !tbaa !9
  %1232 = load i32, ptr %8, align 4, !tbaa !9
  %1233 = icmp slt i32 %1231, %1232
  br i1 %1233, label %1235, label %1234

1234:                                             ; preds = %1230
  store i32 38, ptr %73, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %1303

1235:                                             ; preds = %1230
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #11
  %1236 = load i32, ptr %81, align 4, !tbaa !9
  %1237 = load i32, ptr %8, align 4, !tbaa !9
  %1238 = mul nsw i32 %1236, %1237
  %1239 = load i32, ptr %82, align 4, !tbaa !9
  %1240 = add nsw i32 %1238, %1239
  store i32 %1240, ptr %83, align 4, !tbaa !9
  %1241 = load i32, ptr %83, align 4, !tbaa !9
  %1242 = icmp eq i32 %1241, 0
  br i1 %1242, label %1243, label %1250

1243:                                             ; preds = %1235
  %1244 = load ptr, ptr %40, align 8, !tbaa !16
  %1245 = load i32, ptr %5, align 4, !tbaa !9
  %1246 = sub nsw i32 %1245, 1
  %1247 = sext i32 %1246 to i64
  %1248 = getelementptr inbounds i32, ptr %1244, i64 %1247
  %1249 = load i32, ptr %1248, align 4, !tbaa !9
  store i32 %1249, ptr %79, align 4, !tbaa !9
  br label %1299

1250:                                             ; preds = %1235
  %1251 = load ptr, ptr %40, align 8, !tbaa !16
  %1252 = load i32, ptr %83, align 4, !tbaa !9
  %1253 = load i32, ptr %5, align 4, !tbaa !9
  %1254 = mul nsw i32 %1252, %1253
  %1255 = load i32, ptr %5, align 4, !tbaa !9
  %1256 = add nsw i32 %1254, %1255
  %1257 = sub nsw i32 %1256, 1
  %1258 = sext i32 %1257 to i64
  %1259 = getelementptr inbounds i32, ptr %1251, i64 %1258
  %1260 = load i32, ptr %1259, align 4, !tbaa !9
  %1261 = load ptr, ptr %40, align 8, !tbaa !16
  %1262 = load i32, ptr %83, align 4, !tbaa !9
  %1263 = sub nsw i32 %1262, 1
  %1264 = load i32, ptr %5, align 4, !tbaa !9
  %1265 = mul nsw i32 %1263, %1264
  %1266 = load i32, ptr %5, align 4, !tbaa !9
  %1267 = add nsw i32 %1265, %1266
  %1268 = sub nsw i32 %1267, 1
  %1269 = sext i32 %1268 to i64
  %1270 = getelementptr inbounds i32, ptr %1261, i64 %1269
  %1271 = load i32, ptr %1270, align 4, !tbaa !9
  %1272 = sub i32 %1260, %1271
  %1273 = load i32, ptr %79, align 4, !tbaa !9
  %1274 = icmp ugt i32 %1272, %1273
  br i1 %1274, label %1275, label %1298

1275:                                             ; preds = %1250
  %1276 = load ptr, ptr %40, align 8, !tbaa !16
  %1277 = load i32, ptr %83, align 4, !tbaa !9
  %1278 = load i32, ptr %5, align 4, !tbaa !9
  %1279 = mul nsw i32 %1277, %1278
  %1280 = load i32, ptr %5, align 4, !tbaa !9
  %1281 = add nsw i32 %1279, %1280
  %1282 = sub nsw i32 %1281, 1
  %1283 = sext i32 %1282 to i64
  %1284 = getelementptr inbounds i32, ptr %1276, i64 %1283
  %1285 = load i32, ptr %1284, align 4, !tbaa !9
  %1286 = load ptr, ptr %40, align 8, !tbaa !16
  %1287 = load i32, ptr %83, align 4, !tbaa !9
  %1288 = sub nsw i32 %1287, 1
  %1289 = load i32, ptr %5, align 4, !tbaa !9
  %1290 = mul nsw i32 %1288, %1289
  %1291 = load i32, ptr %5, align 4, !tbaa !9
  %1292 = add nsw i32 %1290, %1291
  %1293 = sub nsw i32 %1292, 1
  %1294 = sext i32 %1293 to i64
  %1295 = getelementptr inbounds i32, ptr %1286, i64 %1294
  %1296 = load i32, ptr %1295, align 4, !tbaa !9
  %1297 = sub i32 %1285, %1296
  store i32 %1297, ptr %79, align 4, !tbaa !9
  br label %1298

1298:                                             ; preds = %1275, %1250
  br label %1299

1299:                                             ; preds = %1298, %1243
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %1300

1300:                                             ; preds = %1299
  %1301 = load i32, ptr %82, align 4, !tbaa !9
  %1302 = add nsw i32 %1301, 1
  store i32 %1302, ptr %82, align 4, !tbaa !9
  br label %1230, !llvm.loop !55

1303:                                             ; preds = %1234
  %1304 = load i32, ptr %79, align 4, !tbaa !9
  %1305 = load i32, ptr %80, align 4, !tbaa !9
  %1306 = add nsw i32 %1305, %1304
  store i32 %1306, ptr %80, align 4, !tbaa !9
  %1307 = load i32, ptr %79, align 4, !tbaa !9
  %1308 = load ptr, ptr %78, align 8, !tbaa !16
  %1309 = load i32, ptr %81, align 4, !tbaa !9
  %1310 = sext i32 %1309 to i64
  %1311 = getelementptr inbounds i32, ptr %1308, i64 %1310
  store i32 %1307, ptr %1311, align 4, !tbaa !9
  %1312 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.1)
          to label %1313 unwind label %1320

1313:                                             ; preds = %1303
  %1314 = load i32, ptr %79, align 4, !tbaa !9
  %1315 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1312, i32 noundef %1314)
          to label %1316 unwind label %1320

1316:                                             ; preds = %1313
  br label %1317

1317:                                             ; preds = %1316
  %1318 = load i32, ptr %81, align 4, !tbaa !9
  %1319 = add nsw i32 %1318, 1
  store i32 %1319, ptr %81, align 4, !tbaa !9
  br label %1218, !llvm.loop !56

1320:                                             ; preds = %1313, %1303
  %1321 = landingpad { ptr, i32 }
          cleanup
  %1322 = extractvalue { ptr, i32 } %1321, 0
  store ptr %1322, ptr %27, align 8
  %1323 = extractvalue { ptr, i32 } %1321, 1
  store i32 %1323, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %1631

1324:                                             ; preds = %1224
  %1325 = load i32, ptr %8, align 4, !tbaa !9
  %1326 = icmp ne i32 %1325, 1
  br i1 %1326, label %1327, label %1509

1327:                                             ; preds = %1324
  %1328 = load ptr, ptr %78, align 8, !tbaa !16
  %1329 = load i32, ptr %14, align 4, !tbaa !9
  %1330 = load i32, ptr %8, align 4, !tbaa !9
  %1331 = sdiv i32 %1329, %1330
  %1332 = sub nsw i32 %1331, 1
  %1333 = sext i32 %1332 to i64
  %1334 = getelementptr inbounds i32, ptr %1328, i64 %1333
  %1335 = load i32, ptr %1334, align 4, !tbaa !9
  store i32 %1335, ptr %22, align 4, !tbaa !9
  %1336 = load ptr, ptr %78, align 8, !tbaa !16
  %1337 = load i32, ptr %14, align 4, !tbaa !9
  %1338 = mul nsw i32 2, %1337
  %1339 = load i32, ptr %8, align 4, !tbaa !9
  %1340 = sdiv i32 %1338, %1339
  %1341 = sub nsw i32 %1340, 1
  %1342 = sext i32 %1341 to i64
  %1343 = getelementptr inbounds i32, ptr %1336, i64 %1342
  %1344 = load i32, ptr %1343, align 4, !tbaa !9
  %1345 = load ptr, ptr %60, align 8, !tbaa !16
  %1346 = load i32, ptr %14, align 4, !tbaa !9
  %1347 = load i32, ptr %6, align 4, !tbaa !9
  %1348 = mul nsw i32 %1346, %1347
  %1349 = sub nsw i32 %1348, 1
  %1350 = sext i32 %1349 to i64
  %1351 = getelementptr inbounds i32, ptr %1345, i64 %1350
  %1352 = load i32, ptr %1351, align 4, !tbaa !9
  %1353 = icmp ugt i32 %1344, %1352
  br i1 %1353, label %1354, label %1364

1354:                                             ; preds = %1327
  %1355 = load ptr, ptr %78, align 8, !tbaa !16
  %1356 = load i32, ptr %14, align 4, !tbaa !9
  %1357 = mul nsw i32 2, %1356
  %1358 = load i32, ptr %8, align 4, !tbaa !9
  %1359 = sdiv i32 %1357, %1358
  %1360 = sub nsw i32 %1359, 1
  %1361 = sext i32 %1360 to i64
  %1362 = getelementptr inbounds i32, ptr %1355, i64 %1361
  %1363 = load i32, ptr %1362, align 4, !tbaa !9
  br label %1373

1364:                                             ; preds = %1327
  %1365 = load ptr, ptr %60, align 8, !tbaa !16
  %1366 = load i32, ptr %14, align 4, !tbaa !9
  %1367 = load i32, ptr %6, align 4, !tbaa !9
  %1368 = mul nsw i32 %1366, %1367
  %1369 = sub nsw i32 %1368, 1
  %1370 = sext i32 %1369 to i64
  %1371 = getelementptr inbounds i32, ptr %1365, i64 %1370
  %1372 = load i32, ptr %1371, align 4, !tbaa !9
  br label %1373

1373:                                             ; preds = %1364, %1354
  %1374 = phi i32 [ %1363, %1354 ], [ %1372, %1364 ]
  %1375 = load i32, ptr %22, align 4, !tbaa !9
  %1376 = add i32 %1375, %1374
  store i32 %1376, ptr %22, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  store i32 2, ptr %84, align 4, !tbaa !9
  br label %1377

1377:                                             ; preds = %1468, %1373
  %1378 = load i32, ptr %84, align 4, !tbaa !9
  %1379 = load i32, ptr %4, align 4, !tbaa !9
  %1380 = load i32, ptr %14, align 4, !tbaa !9
  %1381 = sdiv i32 %1379, %1380
  %1382 = icmp slt i32 %1378, %1381
  br i1 %1382, label %1384, label %1383

1383:                                             ; preds = %1377
  store i32 41, ptr %73, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %1471

1384:                                             ; preds = %1377
  %1385 = load ptr, ptr %78, align 8, !tbaa !16
  %1386 = load i32, ptr %84, align 4, !tbaa !9
  %1387 = add nsw i32 %1386, 1
  %1388 = load i32, ptr %14, align 4, !tbaa !9
  %1389 = mul nsw i32 %1387, %1388
  %1390 = load i32, ptr %8, align 4, !tbaa !9
  %1391 = sdiv i32 %1389, %1390
  %1392 = sub nsw i32 %1391, 1
  %1393 = sext i32 %1392 to i64
  %1394 = getelementptr inbounds i32, ptr %1385, i64 %1393
  %1395 = load i32, ptr %1394, align 4, !tbaa !9
  %1396 = load ptr, ptr %60, align 8, !tbaa !16
  %1397 = load i32, ptr %84, align 4, !tbaa !9
  %1398 = sub nsw i32 %1397, 1
  %1399 = load i32, ptr %6, align 4, !tbaa !9
  %1400 = mul nsw i32 %1398, %1399
  %1401 = load i32, ptr %6, align 4, !tbaa !9
  %1402 = add nsw i32 %1400, %1401
  %1403 = load i32, ptr %14, align 4, !tbaa !9
  %1404 = mul nsw i32 %1402, %1403
  %1405 = sub nsw i32 %1404, 1
  %1406 = sext i32 %1405 to i64
  %1407 = getelementptr inbounds i32, ptr %1396, i64 %1406
  %1408 = load i32, ptr %1407, align 4, !tbaa !9
  %1409 = load ptr, ptr %60, align 8, !tbaa !16
  %1410 = load i32, ptr %84, align 4, !tbaa !9
  %1411 = sub nsw i32 %1410, 2
  %1412 = load i32, ptr %6, align 4, !tbaa !9
  %1413 = mul nsw i32 %1411, %1412
  %1414 = load i32, ptr %6, align 4, !tbaa !9
  %1415 = add nsw i32 %1413, %1414
  %1416 = load i32, ptr %14, align 4, !tbaa !9
  %1417 = mul nsw i32 %1415, %1416
  %1418 = sub nsw i32 %1417, 1
  %1419 = sext i32 %1418 to i64
  %1420 = getelementptr inbounds i32, ptr %1409, i64 %1419
  %1421 = load i32, ptr %1420, align 4, !tbaa !9
  %1422 = sub i32 %1408, %1421
  %1423 = icmp ugt i32 %1395, %1422
  br i1 %1423, label %1424, label %1436

1424:                                             ; preds = %1384
  %1425 = load ptr, ptr %78, align 8, !tbaa !16
  %1426 = load i32, ptr %84, align 4, !tbaa !9
  %1427 = add nsw i32 %1426, 1
  %1428 = load i32, ptr %14, align 4, !tbaa !9
  %1429 = mul nsw i32 %1427, %1428
  %1430 = load i32, ptr %8, align 4, !tbaa !9
  %1431 = sdiv i32 %1429, %1430
  %1432 = sub nsw i32 %1431, 1
  %1433 = sext i32 %1432 to i64
  %1434 = getelementptr inbounds i32, ptr %1425, i64 %1433
  %1435 = load i32, ptr %1434, align 4, !tbaa !9
  br label %1464

1436:                                             ; preds = %1384
  %1437 = load ptr, ptr %60, align 8, !tbaa !16
  %1438 = load i32, ptr %84, align 4, !tbaa !9
  %1439 = sub nsw i32 %1438, 1
  %1440 = load i32, ptr %6, align 4, !tbaa !9
  %1441 = mul nsw i32 %1439, %1440
  %1442 = load i32, ptr %6, align 4, !tbaa !9
  %1443 = add nsw i32 %1441, %1442
  %1444 = load i32, ptr %14, align 4, !tbaa !9
  %1445 = mul nsw i32 %1443, %1444
  %1446 = sub nsw i32 %1445, 1
  %1447 = sext i32 %1446 to i64
  %1448 = getelementptr inbounds i32, ptr %1437, i64 %1447
  %1449 = load i32, ptr %1448, align 4, !tbaa !9
  %1450 = load ptr, ptr %60, align 8, !tbaa !16
  %1451 = load i32, ptr %84, align 4, !tbaa !9
  %1452 = sub nsw i32 %1451, 2
  %1453 = load i32, ptr %6, align 4, !tbaa !9
  %1454 = mul nsw i32 %1452, %1453
  %1455 = load i32, ptr %6, align 4, !tbaa !9
  %1456 = add nsw i32 %1454, %1455
  %1457 = load i32, ptr %14, align 4, !tbaa !9
  %1458 = mul nsw i32 %1456, %1457
  %1459 = sub nsw i32 %1458, 1
  %1460 = sext i32 %1459 to i64
  %1461 = getelementptr inbounds i32, ptr %1450, i64 %1460
  %1462 = load i32, ptr %1461, align 4, !tbaa !9
  %1463 = sub i32 %1449, %1462
  br label %1464

1464:                                             ; preds = %1436, %1424
  %1465 = phi i32 [ %1435, %1424 ], [ %1463, %1436 ]
  %1466 = load i32, ptr %22, align 4, !tbaa !9
  %1467 = add i32 %1466, %1465
  store i32 %1467, ptr %22, align 4, !tbaa !9
  br label %1468

1468:                                             ; preds = %1464
  %1469 = load i32, ptr %84, align 4, !tbaa !9
  %1470 = add nsw i32 %1469, 1
  store i32 %1470, ptr %84, align 4, !tbaa !9
  br label %1377, !llvm.loop !57

1471:                                             ; preds = %1383
  %1472 = load ptr, ptr %60, align 8, !tbaa !16
  %1473 = load i32, ptr %4, align 4, !tbaa !9
  %1474 = load i32, ptr %6, align 4, !tbaa !9
  %1475 = mul nsw i32 %1473, %1474
  %1476 = sub nsw i32 %1475, 1
  %1477 = sext i32 %1476 to i64
  %1478 = getelementptr inbounds i32, ptr %1472, i64 %1477
  %1479 = load i32, ptr %1478, align 4, !tbaa !9
  %1480 = load ptr, ptr %60, align 8, !tbaa !16
  %1481 = load i32, ptr %4, align 4, !tbaa !9
  %1482 = load i32, ptr %14, align 4, !tbaa !9
  %1483 = sub nsw i32 %1481, %1482
  %1484 = load i32, ptr %6, align 4, !tbaa !9
  %1485 = mul nsw i32 %1483, %1484
  %1486 = sub nsw i32 %1485, 1
  %1487 = sext i32 %1486 to i64
  %1488 = getelementptr inbounds i32, ptr %1480, i64 %1487
  %1489 = load i32, ptr %1488, align 4, !tbaa !9
  %1490 = sub i32 %1479, %1489
  %1491 = load i32, ptr %22, align 4, !tbaa !9
  %1492 = add i32 %1491, %1490
  store i32 %1492, ptr %22, align 4, !tbaa !9
  %1493 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.10)
          to label %1494 unwind label %1505

1494:                                             ; preds = %1471
  %1495 = load i32, ptr %22, align 4, !tbaa !9
  %1496 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1493, i32 noundef %1495)
          to label %1497 unwind label %1505

1497:                                             ; preds = %1494
  %1498 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1496, ptr noundef @.str.11)
          to label %1499 unwind label %1505

1499:                                             ; preds = %1497
  %1500 = load i32, ptr %23, align 4, !tbaa !9
  %1501 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1498, i32 noundef %1500)
          to label %1502 unwind label %1505

1502:                                             ; preds = %1499
  %1503 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1501, ptr noundef @.str.12)
          to label %1504 unwind label %1505

1504:                                             ; preds = %1502
  br label %1509

1505:                                             ; preds = %1528, %1525, %1523, %1521, %1518, %1516, %1514, %1511, %1509, %1502, %1499, %1497, %1494, %1471
  %1506 = landingpad { ptr, i32 }
          cleanup
  %1507 = extractvalue { ptr, i32 } %1506, 0
  store ptr %1507, ptr %27, align 8
  %1508 = extractvalue { ptr, i32 } %1506, 1
  store i32 %1508, ptr %28, align 4
  br label %1631

1509:                                             ; preds = %1504, %1324
  %1510 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.13)
          to label %1511 unwind label %1505

1511:                                             ; preds = %1509
  %1512 = load i32, ptr %52, align 4, !tbaa !9
  %1513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %1510, i32 noundef %1512)
          to label %1514 unwind label %1505

1514:                                             ; preds = %1511
  %1515 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1513, ptr noundef @.str.6)
          to label %1516 unwind label %1505

1516:                                             ; preds = %1514
  %1517 = 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 %1518 unwind label %1505

1518:                                             ; preds = %1516
  %1519 = load i32, ptr %75, align 4, !tbaa !9
  %1520 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %1517, i32 noundef %1519)
          to label %1521 unwind label %1505

1521:                                             ; preds = %1518
  %1522 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1520, ptr noundef @.str.6)
          to label %1523 unwind label %1505

1523:                                             ; preds = %1521
  %1524 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.15)
          to label %1525 unwind label %1505

1525:                                             ; preds = %1523
  %1526 = load i32, ptr %80, align 4, !tbaa !9
  %1527 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1524, i32 noundef %1526)
          to label %1528 unwind label %1505

1528:                                             ; preds = %1525
  %1529 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1527, ptr noundef @.str.6)
          to label %1530 unwind label %1505

1530:                                             ; preds = %1528
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #11
  %1531 = load i32, ptr %80, align 4, !tbaa !9
  %1532 = load i32, ptr %75, align 4, !tbaa !9
  %1533 = add i32 %1531, %1532
  store i32 %1533, ptr %85, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  %1534 = load i32, ptr %4, align 4, !tbaa !9
  %1535 = load i32, ptr %5, align 4, !tbaa !9
  %1536 = mul nsw i32 %1534, %1535
  store i32 %1536, ptr %86, align 4, !tbaa !9
  %1537 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.16)
          to label %1538 unwind label %1587

1538:                                             ; preds = %1530
  %1539 = load i32, ptr %85, align 4, !tbaa !9
  %1540 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1537, i32 noundef %1539)
          to label %1541 unwind label %1587

1541:                                             ; preds = %1538
  %1542 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1540, ptr noundef @.str.17)
          to label %1543 unwind label %1587

1543:                                             ; preds = %1541
  %1544 = load i32, ptr %86, align 4, !tbaa !9
  %1545 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1542, i32 noundef %1544)
          to label %1546 unwind label %1587

1546:                                             ; preds = %1543
  %1547 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1545, ptr noundef @.str.6)
          to label %1548 unwind label %1587

1548:                                             ; preds = %1546
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  %1549 = load i32, ptr %4, align 4, !tbaa !9
  %1550 = load i32, ptr %11, align 4, !tbaa !9
  %1551 = sdiv i32 %1549, %1550
  %1552 = load i32, ptr %5, align 4, !tbaa !9
  %1553 = mul nsw i32 %1551, %1552
  %1554 = load i32, ptr %13, align 4, !tbaa !9
  %1555 = sdiv i32 %1553, %1554
  store i32 %1555, ptr %87, align 4, !tbaa !9
  %1556 = 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 %1557 unwind label %1591

1557:                                             ; preds = %1548
  %1558 = load i32, ptr %87, align 4, !tbaa !9
  %1559 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1556, i32 noundef %1558)
          to label %1560 unwind label %1591

1560:                                             ; preds = %1557
  %1561 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1559, ptr noundef @.str.6)
          to label %1562 unwind label %1591

1562:                                             ; preds = %1560
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %1563 = load i32, ptr %6, align 4, !tbaa !9
  %1564 = load i32, ptr %11, align 4, !tbaa !9
  %1565 = mul nsw i32 %1563, %1564
  %1566 = load i32, ptr %5, align 4, !tbaa !9
  %1567 = mul nsw i32 %1565, %1566
  %1568 = load i32, ptr %13, align 4, !tbaa !9
  %1569 = sdiv i32 %1567, %1568
  store i32 %1569, ptr %88, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %1570 = load i32, ptr %88, align 4, !tbaa !9
  %1571 = load i32, ptr %17, align 4, !tbaa !9
  %1572 = sdiv i32 %1570, %1571
  %1573 = load i32, ptr %88, align 4, !tbaa !9
  %1574 = load i32, ptr %17, align 4, !tbaa !9
  %1575 = srem i32 %1573, %1574
  %1576 = icmp ne i32 %1575, 0
  %1577 = zext i1 %1576 to i32
  %1578 = add nsw i32 %1572, %1577
  %1579 = load i32, ptr %4, align 4, !tbaa !9
  %1580 = mul nsw i32 %1578, %1579
  %1581 = load i32, ptr %11, align 4, !tbaa !9
  %1582 = sdiv i32 %1580, %1581
  store i32 %1582, ptr %89, align 4, !tbaa !9
  %1583 = load i32, ptr %5, align 4, !tbaa !9
  %1584 = load i32, ptr %13, align 4, !tbaa !9
  %1585 = icmp eq i32 %1583, %1584
  br i1 %1585, label %1586, label %1595

1586:                                             ; preds = %1562
  store i32 0, ptr %89, align 4, !tbaa !9
  br label %1595

1587:                                             ; preds = %1546, %1543, %1541, %1538, %1530
  %1588 = landingpad { ptr, i32 }
          cleanup
  %1589 = extractvalue { ptr, i32 } %1588, 0
  store ptr %1589, ptr %27, align 8
  %1590 = extractvalue { ptr, i32 } %1588, 1
  store i32 %1590, ptr %28, align 4
  br label %1630

1591:                                             ; preds = %1560, %1557, %1548
  %1592 = landingpad { ptr, i32 }
          cleanup
  %1593 = extractvalue { ptr, i32 } %1592, 0
  store ptr %1593, ptr %27, align 8
  %1594 = extractvalue { ptr, i32 } %1592, 1
  store i32 %1594, ptr %28, align 4
  br label %1629

1595:                                             ; preds = %1586, %1562
  %1596 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %1597 unwind label %1620

1597:                                             ; preds = %1595
  %1598 = load i32, ptr %89, align 4, !tbaa !9
  %1599 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1596, i32 noundef %1598)
          to label %1600 unwind label %1620

1600:                                             ; preds = %1597
  %1601 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1599, ptr noundef @.str.6)
          to label %1602 unwind label %1620

1602:                                             ; preds = %1600
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %1603 = load i32, ptr %85, align 4, !tbaa !9
  %1604 = load i32, ptr %87, align 4, !tbaa !9
  %1605 = sub nsw i32 %1603, %1604
  %1606 = load i32, ptr %89, align 4, !tbaa !9
  %1607 = add nsw i32 %1605, %1606
  store i32 %1607, ptr %90, align 4, !tbaa !9
  %1608 = 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 %1609 unwind label %1624

1609:                                             ; preds = %1602
  %1610 = load i32, ptr %90, align 4, !tbaa !9
  %1611 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1608, i32 noundef %1610)
          to label %1612 unwind label %1624

1612:                                             ; preds = %1609
  %1613 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1611, ptr noundef @.str.21)
          to label %1614 unwind label %1624

1614:                                             ; preds = %1612
  %1615 = load i32, ptr %88, align 4, !tbaa !9
  %1616 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1613, i32 noundef %1615)
          to label %1617 unwind label %1624

1617:                                             ; preds = %1614
  %1618 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1616, ptr noundef @.str.6)
          to label %1619 unwind label %1624

1619:                                             ; preds = %1617
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #11
  call void @llvm.lifetime.end.p0(i64 160, ptr %44) #11
  call void @llvm.lifetime.end.p0(i64 160, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %1658

1620:                                             ; preds = %1600, %1597, %1595
  %1621 = landingpad { ptr, i32 }
          cleanup
  %1622 = extractvalue { ptr, i32 } %1621, 0
  store ptr %1622, ptr %27, align 8
  %1623 = extractvalue { ptr, i32 } %1621, 1
  store i32 %1623, ptr %28, align 4
  br label %1628

1624:                                             ; preds = %1617, %1614, %1612, %1609, %1602
  %1625 = landingpad { ptr, i32 }
          cleanup
  %1626 = extractvalue { ptr, i32 } %1625, 0
  store ptr %1626, ptr %27, align 8
  %1627 = extractvalue { ptr, i32 } %1625, 1
  store i32 %1627, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %1628

1628:                                             ; preds = %1624, %1620
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %1629

1629:                                             ; preds = %1628, %1591
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %1630

1630:                                             ; preds = %1629, %1587
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %1631

1631:                                             ; preds = %1630, %1505, %1320
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %1632

1632:                                             ; preds = %1631, %1225
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  br label %1633

1633:                                             ; preds = %1632, %954, %934
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %1634

1634:                                             ; preds = %1633, %865
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #11
  br label %1635

1635:                                             ; preds = %1634, %861, %857, %853
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #11
  br label %1636

1636:                                             ; preds = %1635, %812, %797, %785
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  br label %1637

1637:                                             ; preds = %1636, %781
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  br label %1638

1638:                                             ; preds = %1637, %777
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  br label %1639

1639:                                             ; preds = %1638, %707
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  br label %1640

1640:                                             ; preds = %1639, %703
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  br label %1641

1641:                                             ; preds = %1640, %664
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  br label %1642

1642:                                             ; preds = %1641, %660
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  br label %1643

1643:                                             ; preds = %1642, %592, %574
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %1644

1644:                                             ; preds = %1643, %570, %566, %562
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #11
  br label %1645

1645:                                             ; preds = %1644, %527, %512, %500
  call void @llvm.lifetime.end.p0(i64 160, ptr %44) #11
  br label %1646

1646:                                             ; preds = %1645, %496
  call void @llvm.lifetime.end.p0(i64 160, ptr %43) #11
  br label %1647

1647:                                             ; preds = %1646, %492
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  br label %1648

1648:                                             ; preds = %1647, %488
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #11
  br label %1649

1649:                                             ; preds = %1648, %484
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  br label %1650

1650:                                             ; preds = %1649, %412
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #11
  br label %1651

1651:                                             ; preds = %1650, %408
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #11
  br label %1652

1652:                                             ; preds = %1651, %404
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #11
  br label %1653

1653:                                             ; preds = %1652, %371, %354
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  br label %1654

1654:                                             ; preds = %1653, %350
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1655

1655:                                             ; preds = %1654, %315
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  br label %1656

1656:                                             ; preds = %1655, %311
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #11
  br label %1657

1657:                                             ; preds = %1656, %307
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #11
  br label %1683

1658:                                             ; preds = %1619, %267
  %1659 = load i32, ptr %2, align 4, !tbaa !12
  %1660 = icmp eq i32 %1659, 2
  br i1 %1660, label %1661, label %1681

1661:                                             ; preds = %1658
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  store i32 0, ptr %91, align 4, !tbaa !9
  %1662 = load i32, ptr %10, align 4, !tbaa !9
  %1663 = load i32, ptr %13, align 4, !tbaa !9
  %1664 = icmp sgt i32 %1662, %1663
  br i1 %1664, label %1665, label %1667

1665:                                             ; preds = %1661
  %1666 = load i32, ptr %10, align 4, !tbaa !9
  br label %1669

1667:                                             ; preds = %1661
  %1668 = load i32, ptr %13, align 4, !tbaa !9
  br label %1669

1669:                                             ; preds = %1667, %1665
  %1670 = phi i32 [ %1666, %1665 ], [ %1668, %1667 ]
  store i32 %1670, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %1671 = load i32, ptr %4, align 4, !tbaa !9
  %1672 = mul nsw i32 2, %1671
  %1673 = load i32, ptr %15, align 4, !tbaa !9
  %1674 = mul nsw i32 %1672, %1673
  store i32 %1674, ptr %92, align 4, !tbaa !9
  %1675 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.2)
  %1676 = load i32, ptr %91, align 4, !tbaa !9
  %1677 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1675, i32 noundef %1676)
  %1678 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1677, ptr noundef @.str.3)
  %1679 = load i32, ptr %92, align 4, !tbaa !9
  %1680 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1678, i32 noundef %1679)
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %1681

1681:                                             ; preds = %1669, %1658
  store i32 0, ptr %1, align 4
  store i32 1, ptr %73, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #11
  %1682 = load i32, ptr %1, align 4
  ret i32 %1682

1683:                                             ; preds = %1657
  %1684 = load ptr, ptr %27, align 8
  %1685 = load i32, ptr %28, align 4
  %1686 = insertvalue { ptr, i32 } poison, ptr %1684, 0
  %1687 = insertvalue { ptr, i32 } %1686, i32 %1685, 1
  resume { ptr, i32 } %1687
}

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 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 #6 align 2

declare i32 @__gxx_personality_v0(...)

declare noundef ptr @_Z26generateMatrixDenseSampledjji(i32 noundef, i32 noundef, i32 noundef) #4

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

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

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

declare noundef ptr @_Z29generateMajorPointerFromDensePfjj15GENERATION_TYPE(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #4

declare noundef ptr @_Z37generateMatrixSparseFromDenseNoBitmapPfjj15GENERATION_TYPE(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #4

declare noundef ptr @_Z19generateMatrixDensejjf(i32 noundef, i32 noundef, float noundef) #4

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

declare noundef i32 @_Z28get_type_reduce_network_typeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef) #4

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN6Stonne9getCyclesEv(ptr noundef nonnull align 8 dereferenceable(316)) #5 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #6 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 #10

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #6 align 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 @_ZN6Stonne12loadGEMMTileEjjj(ptr noundef nonnull align 8 dereferenceable(316), i32 noundef, i32 noundef, i32 noundef) #4

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

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

!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 = !{!"_ZTS11KERNELORDER", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"_ZTS4GRAN", !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"float", !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"any pointer", !7, i64 0}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = distinct !{!20, !19}
!21 = distinct !{!21, !19}
!22 = !{!23, !10, i64 28}
!23 = !{!"_ZTS6Config", !10, i64 0, !24, i64 4, !25, i64 8, !26, i64 24, !28, i64 40, !29, i64 64, !31, i64 72, !32, i64 96, !33, i64 104}
!24 = !{!"_ZTS15DSNetworkConfig", !10, i64 0}
!25 = !{!"_ZTS13DSwitchConfig", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12}
!26 = !{!"_ZTS15MSNetworkConfig", !27, i64 0, !10, i64 4, !10, i64 8, !10, i64 12}
!27 = !{!"_ZTS19MultiplierNetwork_t", !7, i64 0}
!28 = !{!"_ZTS13MSwitchConfig", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20}
!29 = !{!"_ZTS15ASNetworkConfig", !30, i64 0, !10, i64 4}
!30 = !{!"_ZTS15ReduceNetwork_t", !7, i64 0}
!31 = !{!"_ZTS13ASwitchConfig", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20}
!32 = !{!"_ZTS17LookUpTableConfig", !10, i64 0, !10, i64 4}
!33 = !{!"_ZTS14SDMemoryConfig", !34, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !35, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52}
!34 = !{!"_ZTS18MemoryController_t", !7, i64 0}
!35 = !{!"_ZTS17MemoryHierarchy_t", !7, i64 0}
!36 = !{!23, !10, i64 112}
!37 = !{!23, !10, i64 116}
!38 = !{!23, !10, i64 68}
!39 = !{!23, !34, i64 104}
!40 = !{!23, !10, i64 0}
!41 = !{!23, !30, i64 64}
!42 = !{i64 0, i64 4, !9, i64 4, i64 4, !9, i64 8, i64 4, !9, i64 12, i64 4, !9, i64 16, i64 4, !9, i64 20, i64 4, !9, i64 24, i64 4, !43, i64 28, i64 4, !9, i64 32, i64 4, !9, i64 36, i64 4, !9, i64 40, i64 4, !9, i64 44, i64 4, !9, i64 48, i64 4, !9, i64 52, i64 4, !9, i64 56, i64 4, !9, i64 60, i64 4, !9, i64 64, i64 4, !44, i64 68, i64 4, !9, i64 72, i64 4, !9, i64 76, i64 4, !9, i64 80, i64 4, !9, i64 84, i64 4, !9, i64 88, i64 4, !9, i64 92, i64 4, !9, i64 96, i64 4, !9, i64 100, i64 4, !9, i64 104, i64 4, !45, i64 108, i64 4, !9, i64 112, i64 4, !9, i64 116, i64 4, !9, i64 120, i64 4, !9, i64 124, i64 4, !9, i64 128, i64 4, !9, i64 132, i64 4, !46, i64 136, i64 4, !9, i64 140, i64 4, !9, i64 144, i64 4, !9, i64 148, i64 4, !9, i64 152, i64 4, !9, i64 156, i64 4, !9}
!43 = !{!27, !27, i64 0}
!44 = !{!30, !30, i64 0}
!45 = !{!34, !34, i64 0}
!46 = !{!35, !35, i64 0}
!47 = distinct !{!47, !19}
!48 = distinct !{!48, !19}
!49 = distinct !{!49, !19}
!50 = distinct !{!50, !19}
!51 = distinct !{!51, !19}
!52 = distinct !{!52, !19}
!53 = distinct !{!53, !19}
!54 = distinct !{!54, !19}
!55 = distinct !{!55, !19}
!56 = distinct !{!56, !19}
!57 = distinct !{!57, !19}


; 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 }

@__const.main.loop_order_agg = external hidden unnamed_addr constant [4 x i8], align 1
@__const.main.loop_order_cmb = external hidden unnamed_addr constant [4 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [45 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca [4 x i8], align 4
  %2 = alloca [4 x i8], align 4
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator", align 1
  %5 = alloca i32, align 4
  %6 = alloca %class.Config, align 8
  %7 = alloca %class.Config, align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %1) #11
  %14 = load i32, ptr @__const.main.loop_order_agg, align 1
  store i32 %14, ptr %1, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #11
  %15 = load i32, ptr @__const.main.loop_order_cmb, align 1
  store i32 %15, ptr %2, align 4
  %16 = trunc i32 %14 to i8
  %17 = trunc i32 %15 to i8
  %18 = icmp eq i8 %16, %17
  br i1 %18, label %19, label %.thread

19:                                               ; preds = %0
  %20 = lshr i32 %15, 8
  %21 = trunc i32 %20 to i8
  %22 = lshr i32 %14, 8
  %23 = trunc i32 %22 to i8
  %24 = icmp eq i8 %23, %21
  %25 = and i8 %16, -17
  %or.cond = icmp eq i8 %25, 70
  %or.cond563 = and i1 %or.cond, %24
  br i1 %or.cond563, label %29, label %26

26:                                               ; preds = %19
  %27 = icmp eq i8 %16, 86
  br i1 %27, label %29, label %.thread

.thread:                                          ; preds = %0, %26
  %28 = icmp eq i8 %16, 70
  %or.cond11 = and i1 %28, %18
  %.564 = select i1 %or.cond11, i32 2, i32 3
  br label %29

29:                                               ; preds = %.thread, %26, %19
  %30 = phi i1 [ true, %19 ], [ false, %26 ], [ false, %.thread ]
  %31 = phi i1 [ false, %19 ], [ true, %26 ], [ false, %.thread ]
  %32 = phi i1 [ false, %19 ], [ false, %26 ], [ %or.cond11, %.thread ]
  %.0 = phi i32 [ 0, %19 ], [ 1, %26 ], [ %.564, %.thread ]
  %33 = tail call 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 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull %1)
  %35 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull @.str.1)
  %36 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull %2)
  %37 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull @.str.1)
  %38 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %37, i32 noundef %.0)
  %39 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull @.str)
  br i1 %30, label %40, label %45

40:                                               ; preds = %29
  %41 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.2)
  %42 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %41, i32 noundef 0)
  %43 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull @.str.3)
  %44 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %43, i32 noundef 272)
  br label %45

45:                                               ; preds = %40, %29
  br i1 %31, label %46, label %609

46:                                               ; preds = %45
  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.4, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %47 unwind label %75

47:                                               ; preds = %46
  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
  %48 = invoke noundef ptr @_Z26generateMatrixDenseSampledjji(i32 noundef 1313, i32 noundef 1313, i32 noundef 12)
          to label %49 unwind label %77

49:                                               ; preds = %47
  %50 = invoke noalias noundef nonnull dereferenceable(6895876) ptr @_Znam(i64 noundef 6895876) #12
          to label %vector.memcheck unwind label %79

vector.memcheck:                                  ; preds = %49
  %51 = ptrtoint ptr %48 to i64
  %52 = ptrtoint ptr %50 to i64
  %53 = sub i64 %52, %51
  %diff.check = icmp ugt i64 %53, 31
  br i1 %diff.check, label %vector.body, label %.preheader575.prol.preheader

.preheader575.prol.preheader:                     ; preds = %vector.memcheck, %vector.body
  %indvars.iv.ph = phi i64 [ 0, %vector.memcheck ], [ 1723968, %vector.body ]
  br label %.preheader575.prol

.preheader575.prol:                               ; preds = %.preheader575.prol, %.preheader575.prol.preheader
  %indvars.iv.prol = phi i64 [ %indvars.iv.next.prol, %.preheader575.prol ], [ %indvars.iv.ph, %.preheader575.prol.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %.preheader575.prol ], [ 0, %.preheader575.prol.preheader ]
  %54 = getelementptr inbounds float, ptr %48, i64 %indvars.iv.prol
  %55 = load float, ptr %54, align 4, !tbaa !5
  %56 = getelementptr inbounds float, ptr %50, i64 %indvars.iv.prol
  store float %55, ptr %56, align 4, !tbaa !5
  %indvars.iv.next.prol = add nuw nsw i64 %indvars.iv.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter, 0
  br i1 %prol.iter.cmp.not, label %.preheader575.prol.loopexit, label %.preheader575.prol, !llvm.loop !9

.preheader575.prol.loopexit:                      ; preds = %.preheader575.prol
  br i1 %diff.check, label %.loopexit693, label %.preheader575

vector.body:                                      ; preds = %vector.memcheck, %vector.body
  %index = phi i64 [ %index.next.3, %vector.body ], [ 0, %vector.memcheck ]
  %57 = getelementptr inbounds float, ptr %48, i64 %index
  %58 = getelementptr inbounds i8, ptr %57, i64 16
  %wide.load = load <4 x float>, ptr %57, align 4, !tbaa !5
  %wide.load643 = load <4 x float>, ptr %58, align 4, !tbaa !5
  %59 = getelementptr inbounds float, ptr %50, i64 %index
  %60 = getelementptr inbounds i8, ptr %59, i64 16
  store <4 x float> %wide.load, ptr %59, align 4, !tbaa !5
  store <4 x float> %wide.load643, ptr %60, align 4, !tbaa !5
  %index.next = or disjoint i64 %index, 8
  %61 = getelementptr inbounds float, ptr %48, i64 %index.next
  %62 = getelementptr inbounds i8, ptr %61, i64 16
  %wide.load.1 = load <4 x float>, ptr %61, align 4, !tbaa !5
  %wide.load643.1 = load <4 x float>, ptr %62, align 4, !tbaa !5
  %63 = getelementptr inbounds float, ptr %50, i64 %index.next
  %64 = getelementptr inbounds i8, ptr %63, i64 16
  store <4 x float> %wide.load.1, ptr %63, align 4, !tbaa !5
  store <4 x float> %wide.load643.1, ptr %64, align 4, !tbaa !5
  %index.next.1 = or disjoint i64 %index, 16
  %65 = getelementptr inbounds float, ptr %48, i64 %index.next.1
  %66 = getelementptr inbounds i8, ptr %65, i64 16
  %wide.load.2 = load <4 x float>, ptr %65, align 4, !tbaa !5
  %wide.load643.2 = load <4 x float>, ptr %66, align 4, !tbaa !5
  %67 = getelementptr inbounds float, ptr %50, i64 %index.next.1
  %68 = getelementptr inbounds i8, ptr %67, i64 16
  store <4 x float> %wide.load.2, ptr %67, align 4, !tbaa !5
  store <4 x float> %wide.load643.2, ptr %68, align 4, !tbaa !5
  %index.next.2 = or disjoint i64 %index, 24
  %69 = getelementptr inbounds float, ptr %48, i64 %index.next.2
  %70 = getelementptr inbounds i8, ptr %69, i64 16
  %wide.load.3 = load <4 x float>, ptr %69, align 4, !tbaa !5
  %wide.load643.3 = load <4 x float>, ptr %70, align 4, !tbaa !5
  %71 = getelementptr inbounds float, ptr %50, i64 %index.next.2
  %72 = getelementptr inbounds i8, ptr %71, i64 16
  store <4 x float> %wide.load.3, ptr %71, align 4, !tbaa !5
  store <4 x float> %wide.load643.3, ptr %72, align 4, !tbaa !5
  %index.next.3 = add nuw nsw i64 %index, 32
  %73 = icmp eq i64 %index.next.3, 1723968
  br i1 %73, label %.preheader575.prol.preheader, label %vector.body, !llvm.loop !11

.loopexit693:                                     ; preds = %.preheader575, %.preheader575.prol.loopexit
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #11
  store i32 0, ptr %5, align 4, !tbaa !15
  %74 = invoke noundef ptr @_Z24generateMinorIDFromDensePfjjRi15GENERATION_TYPE(ptr noundef nonnull %50, i32 noundef 1313, i32 noundef 1313, ptr noundef nonnull align 4 dereferenceable(4) %5, i32 noundef 0)
          to label %93 unwind label %99

75:                                               ; preds = %46
  %76 = 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 %608

77:                                               ; preds = %47
  %78 = landingpad { ptr, i32 }
          cleanup
  br label %607

79:                                               ; preds = %49
  %80 = landingpad { ptr, i32 }
          cleanup
  br label %607

.preheader575:                                    ; preds = %.preheader575.prol.loopexit, %.preheader575
  %indvars.iv = phi i64 [ %indvars.iv.next.3, %.preheader575 ], [ %indvars.iv.next.prol, %.preheader575.prol.loopexit ]
  %81 = getelementptr inbounds float, ptr %48, i64 %indvars.iv
  %82 = load float, ptr %81, align 4, !tbaa !5
  %83 = getelementptr inbounds float, ptr %50, i64 %indvars.iv
  store float %82, ptr %83, align 4, !tbaa !5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %84 = getelementptr inbounds float, ptr %48, i64 %indvars.iv.next
  %85 = load float, ptr %84, align 4, !tbaa !5
  %86 = getelementptr inbounds float, ptr %50, i64 %indvars.iv.next
  store float %85, ptr %86, align 4, !tbaa !5
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %87 = getelementptr inbounds float, ptr %48, i64 %indvars.iv.next.1
  %88 = load float, ptr %87, align 4, !tbaa !5
  %89 = getelementptr inbounds float, ptr %50, i64 %indvars.iv.next.1
  store float %88, ptr %89, align 4, !tbaa !5
  %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 3
  %90 = getelementptr inbounds float, ptr %48, i64 %indvars.iv.next.2
  %91 = load float, ptr %90, align 4, !tbaa !5
  %92 = getelementptr inbounds float, ptr %50, i64 %indvars.iv.next.2
  store float %91, ptr %92, align 4, !tbaa !5
  %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv, 4
  %exitcond.not.3 = icmp eq i64 %indvars.iv.next.3, 1723969
  br i1 %exitcond.not.3, label %.loopexit693, label %.preheader575, !llvm.loop !17

93:                                               ; preds = %.loopexit693
  %94 = invoke noundef ptr @_Z29generateMajorPointerFromDensePfjj15GENERATION_TYPE(ptr noundef nonnull %50, i32 noundef 1313, i32 noundef 1313, i32 noundef 0)
          to label %95 unwind label %101

95:                                               ; preds = %93
  %96 = 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.5)
          to label %.preheader574 unwind label %101

97:                                               ; preds = %108
  %98 = 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.6)
          to label %111 unwind label %101

99:                                               ; preds = %.loopexit693
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %606

101:                                              ; preds = %97, %95, %93
  %102 = landingpad { ptr, i32 }
          cleanup
  br label %606

.preheader574:                                    ; preds = %95, %108
  %indvars.iv598 = phi i64 [ %indvars.iv.next599, %108 ], [ 0, %95 ]
  %103 = getelementptr inbounds i32, ptr %94, i64 %indvars.iv598
  %104 = load i32, ptr %103, align 4, !tbaa !15
  %105 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %104)
          to label %106 unwind label %109

106:                                              ; preds = %.preheader574
  %107 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef nonnull @.str.1)
          to label %108 unwind label %109

108:                                              ; preds = %106
  %indvars.iv.next599 = add nuw nsw i64 %indvars.iv598, 1
  %exitcond601.not = icmp eq i64 %indvars.iv.next599, 1314
  br i1 %exitcond601.not, label %97, label %.preheader574, !llvm.loop !18

109:                                              ; preds = %106, %.preheader574
  %110 = landingpad { ptr, i32 }
          cleanup
  br label %606

111:                                              ; preds = %97
  %112 = invoke noundef ptr @_Z37generateMatrixSparseFromDenseNoBitmapPfjj15GENERATION_TYPE(ptr noundef nonnull %50, i32 noundef 1313, i32 noundef 1313, i32 noundef 0)
          to label %113 unwind label %138

113:                                              ; preds = %111
  %114 = invoke noundef ptr @_Z19generateMatrixDensejjf(i32 noundef 1313, i32 noundef 136, float noundef 0.000000e+00)
          to label %115 unwind label %140

115:                                              ; preds = %113
  %116 = invoke noalias noundef nonnull dereferenceable(714272) ptr @_Znam(i64 noundef 714272) #12
          to label %vector.memcheck644 unwind label %142

vector.memcheck644:                               ; preds = %115
  %117 = ptrtoint ptr %114 to i64
  %118 = ptrtoint ptr %116 to i64
  %119 = sub i64 %118, %117
  %diff.check645 = icmp ult i64 %119, 32
  br i1 %diff.check645, label %.preheader573, label %vector.body650

vector.body650:                                   ; preds = %vector.memcheck644, %vector.body650.1
  %index651 = phi i64 [ %index.next654.3, %vector.body650.1 ], [ 0, %vector.memcheck644 ]
  %120 = getelementptr inbounds float, ptr %114, i64 %index651
  %121 = getelementptr inbounds i8, ptr %120, i64 16
  %wide.load652 = load <4 x float>, ptr %120, align 4, !tbaa !5
  %wide.load653 = load <4 x float>, ptr %121, align 4, !tbaa !5
  %122 = getelementptr inbounds float, ptr %116, i64 %index651
  %123 = getelementptr inbounds i8, ptr %122, i64 16
  store <4 x float> %wide.load652, ptr %122, align 4, !tbaa !5
  store <4 x float> %wide.load653, ptr %123, align 4, !tbaa !5
  %124 = icmp eq i64 %index651, 178560
  br i1 %124, label %middle.block646, label %vector.body650.1, !llvm.loop !19

vector.body650.1:                                 ; preds = %vector.body650
  %index.next654 = or disjoint i64 %index651, 8
  %125 = getelementptr inbounds float, ptr %114, i64 %index.next654
  %126 = getelementptr inbounds i8, ptr %125, i64 16
  %wide.load652.1 = load <4 x float>, ptr %125, align 4, !tbaa !5
  %wide.load653.1 = load <4 x float>, ptr %126, align 4, !tbaa !5
  %127 = getelementptr inbounds float, ptr %116, i64 %index.next654
  %128 = getelementptr inbounds i8, ptr %127, i64 16
  store <4 x float> %wide.load652.1, ptr %127, align 4, !tbaa !5
  store <4 x float> %wide.load653.1, ptr %128, align 4, !tbaa !5
  %index.next654.1 = or disjoint i64 %index651, 16
  %129 = getelementptr inbounds float, ptr %114, i64 %index.next654.1
  %130 = getelementptr inbounds i8, ptr %129, i64 16
  %wide.load652.2 = load <4 x float>, ptr %129, align 4, !tbaa !5
  %wide.load653.2 = load <4 x float>, ptr %130, align 4, !tbaa !5
  %131 = getelementptr inbounds float, ptr %116, i64 %index.next654.1
  %132 = getelementptr inbounds i8, ptr %131, i64 16
  store <4 x float> %wide.load652.2, ptr %131, align 4, !tbaa !5
  store <4 x float> %wide.load653.2, ptr %132, align 4, !tbaa !5
  %index.next654.2 = or disjoint i64 %index651, 24
  %133 = getelementptr inbounds float, ptr %114, i64 %index.next654.2
  %134 = getelementptr inbounds i8, ptr %133, i64 16
  %wide.load652.3 = load <4 x float>, ptr %133, align 4, !tbaa !5
  %wide.load653.3 = load <4 x float>, ptr %134, align 4, !tbaa !5
  %135 = getelementptr inbounds float, ptr %116, i64 %index.next654.2
  %136 = getelementptr inbounds i8, ptr %135, i64 16
  store <4 x float> %wide.load652.3, ptr %135, align 4, !tbaa !5
  store <4 x float> %wide.load653.3, ptr %136, align 4, !tbaa !5
  %index.next654.3 = add nuw nsw i64 %index651, 32
  br label %vector.body650

middle.block646:                                  ; preds = %vector.body650, %.preheader573
  %137 = invoke noalias noundef nonnull dereferenceable(714272) ptr @_Znam(i64 noundef 714272) #12
          to label %156 unwind label %167

138:                                              ; preds = %111
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %606

140:                                              ; preds = %113
  %141 = landingpad { ptr, i32 }
          cleanup
  br label %606

142:                                              ; preds = %115
  %143 = landingpad { ptr, i32 }
          cleanup
  br label %606

.preheader573:                                    ; preds = %vector.memcheck644, %.preheader573
  %indvars.iv602 = phi i64 [ %indvars.iv.next603.3, %.preheader573 ], [ 0, %vector.memcheck644 ]
  %144 = getelementptr inbounds float, ptr %114, i64 %indvars.iv602
  %145 = load float, ptr %144, align 4, !tbaa !5
  %146 = getelementptr inbounds float, ptr %116, i64 %indvars.iv602
  store float %145, ptr %146, align 4, !tbaa !5
  %indvars.iv.next603 = or disjoint i64 %indvars.iv602, 1
  %147 = getelementptr inbounds float, ptr %114, i64 %indvars.iv.next603
  %148 = load float, ptr %147, align 4, !tbaa !5
  %149 = getelementptr inbounds float, ptr %116, i64 %indvars.iv.next603
  store float %148, ptr %149, align 4, !tbaa !5
  %indvars.iv.next603.1 = or disjoint i64 %indvars.iv602, 2
  %150 = getelementptr inbounds float, ptr %114, i64 %indvars.iv.next603.1
  %151 = load float, ptr %150, align 4, !tbaa !5
  %152 = getelementptr inbounds float, ptr %116, i64 %indvars.iv.next603.1
  store float %151, ptr %152, align 4, !tbaa !5
  %indvars.iv.next603.2 = or disjoint i64 %indvars.iv602, 3
  %153 = getelementptr inbounds float, ptr %114, i64 %indvars.iv.next603.2
  %154 = load float, ptr %153, align 4, !tbaa !5
  %155 = getelementptr inbounds float, ptr %116, i64 %indvars.iv.next603.2
  store float %154, ptr %155, align 4, !tbaa !5
  %indvars.iv.next603.3 = add nuw nsw i64 %indvars.iv602, 4
  %exitcond605.not.3 = icmp eq i64 %indvars.iv.next603.3, 178568
  br i1 %exitcond605.not.3, label %middle.block646, label %.preheader573, !llvm.loop !20

156:                                              ; preds = %middle.block646
  %157 = invoke noalias noundef nonnull dereferenceable(714272) ptr @_Znam(i64 noundef 714272) #12
          to label %158 unwind label %169

158:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %6) #11
  invoke void @_ZN6ConfigC1Ev(ptr noundef nonnull align 4 dereferenceable(160) %6)
          to label %159 unwind label %171

159:                                              ; preds = %158
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %7) #11
  invoke void @_ZN6ConfigC1Ev(ptr noundef nonnull align 4 dereferenceable(160) %7)
          to label %160 unwind label %173

160:                                              ; preds = %159
  %161 = getelementptr inbounds i8, ptr %6, i64 28
  store i32 512, ptr %161, align 4, !tbaa !21
  %162 = getelementptr inbounds i8, ptr %6, i64 104
  %163 = getelementptr inbounds i8, ptr %6, i64 112
  store i32 512, ptr %163, align 8, !tbaa !35
  %164 = getelementptr inbounds i8, ptr %6, i64 116
  store i32 512, ptr %164, align 4, !tbaa !36
  %165 = getelementptr inbounds i8, ptr %6, i64 64
  %166 = getelementptr inbounds i8, ptr %6, i64 68
  store i32 1, ptr %166, align 4, !tbaa !37
  store i32 2, ptr %162, align 8, !tbaa !38
  store i32 0, ptr %6, align 8, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %175 unwind label %179

167:                                              ; preds = %middle.block646
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %606

169:                                              ; preds = %156
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %606

171:                                              ; preds = %158
  %172 = landingpad { ptr, i32 }
          cleanup
  br label %605

173:                                              ; preds = %159
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %604

175:                                              ; preds = %160
  %176 = invoke noundef i32 @_Z28get_type_reduce_network_typeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %8)
          to label %177 unwind label %181

177:                                              ; preds = %175
  store i32 %176, ptr %165, align 8, !tbaa !40
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #11
  %178 = invoke noalias noundef nonnull dereferenceable(320) ptr @_Znwm(i64 noundef 320) #12
          to label %184 unwind label %193

179:                                              ; preds = %160
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %183

181:                                              ; preds = %175
  %182 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  br label %183

183:                                              ; preds = %181, %179
  %.pn = phi { ptr, i32 } [ %182, %181 ], [ %180, %179 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #11
  br label %604

184:                                              ; preds = %177
  invoke void @_ZN6StonneC1E6Config(ptr noundef nonnull align 8 dereferenceable(316) %178, ptr noundef nonnull byval(%class.Config) align 8 %6)
          to label %185 unwind label %195

185:                                              ; preds = %184
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %186 unwind label %193

186:                                              ; preds = %185
  invoke void @_ZN6Stonne15loadSparseDenseENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjjjPfS6_PjS7_S6_jj(ptr noundef nonnull align 8 dereferenceable(316) %178, ptr noundef nonnull %10, i32 noundef 136, i32 noundef 1313, i32 noundef 1313, ptr noundef %112, ptr noundef nonnull %116, ptr noundef %74, ptr noundef %94, ptr noundef nonnull %157, i32 noundef 136, i32 noundef 1)
          to label %187 unwind label %197

187:                                              ; preds = %186
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #11
  invoke void @_ZN6Stonne12loadClockingEPj(ptr noundef nonnull align 8 dereferenceable(316) %178, ptr noundef nonnull %137)
          to label %188 unwind label %193

188:                                              ; preds = %187
  invoke void @_ZN6Stonne3runEv(ptr noundef nonnull align 8 dereferenceable(316) %178)
          to label %189 unwind label %193

189:                                              ; preds = %188
  %190 = call noundef i32 @_ZN6Stonne9getCyclesEv(ptr noundef nonnull align 8 dereferenceable(316) %178)
  br label %201

191:                                              ; preds = %207
  %192 = icmp eq ptr %48, null
  br i1 %192, label %212, label %211

193:                                              ; preds = %188, %187, %185, %177
  %194 = landingpad { ptr, i32 }
          cleanup
  br label %604

195:                                              ; preds = %184
  %196 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %178, i64 noundef 320) #13
  br label %604

197:                                              ; preds = %186
  %198 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #11
  br label %604

199:                                              ; preds = %224
  %200 = landingpad { ptr, i32 }
          cleanup
  br label %604

201:                                              ; preds = %189, %207
  %indvars.iv606 = phi i64 [ 135, %189 ], [ %indvars.iv.next607, %207 ]
  %202 = getelementptr inbounds i32, ptr %137, i64 %indvars.iv606
  %203 = load i32, ptr %202, align 4, !tbaa !15
  %204 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %203)
          to label %205 unwind label %209

205:                                              ; preds = %201
  %206 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %204, ptr noundef nonnull @.str.1)
          to label %207 unwind label %209

207:                                              ; preds = %205
  %indvars.iv.next607 = add nuw nsw i64 %indvars.iv606, 136
  %208 = icmp ult i64 %indvars.iv606, 178432
  br i1 %208, label %201, label %191, !llvm.loop !41

209:                                              ; preds = %205, %201
  %210 = landingpad { ptr, i32 }
          cleanup
  br label %604

211:                                              ; preds = %191
  call void @_ZdaPv(ptr noundef nonnull %48) #13
  br label %212

212:                                              ; preds = %211, %191
  %213 = icmp eq ptr %114, null
  br i1 %213, label %215, label %214

214:                                              ; preds = %212
  call void @_ZdaPv(ptr noundef nonnull %114) #13
  br label %215

215:                                              ; preds = %212, %214
  call void @_ZdaPv(ptr noundef nonnull %50) #13
  call void @_ZdaPv(ptr noundef nonnull %116) #13
  %216 = icmp eq ptr %74, null
  br i1 %216, label %218, label %217

217:                                              ; preds = %215
  call void @_ZdaPv(ptr noundef nonnull %74) #13
  br label %218

218:                                              ; preds = %217, %215
  %219 = icmp eq ptr %94, null
  br i1 %219, label %221, label %220

220:                                              ; preds = %218
  call void @_ZdaPv(ptr noundef nonnull %94) #13
  br label %221

221:                                              ; preds = %220, %218
  %222 = icmp eq ptr %112, null
  br i1 %222, label %224, label %223

223:                                              ; preds = %221
  call void @_ZdaPv(ptr noundef nonnull %112) #13
  br label %224

224:                                              ; preds = %221, %223
  call void @_ZdaPv(ptr noundef nonnull %157) #13
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %178) #11
  call void @_ZdlPvm(ptr noundef nonnull %178, i64 noundef 320) #13
  %225 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @.str.9)
          to label %226 unwind label %199

226:                                              ; preds = %224
  %227 = invoke noundef ptr @_Z19generateMatrixDensejjf(i32 noundef 1313, i32 noundef 136, float noundef 0.000000e+00)
          to label %228 unwind label %251

228:                                              ; preds = %226
  %229 = invoke noalias noundef nonnull dereferenceable(714272) ptr @_Znam(i64 noundef 714272) #12
          to label %vector.memcheck655 unwind label %253

vector.memcheck655:                               ; preds = %228
  %230 = ptrtoint ptr %227 to i64
  %231 = ptrtoint ptr %229 to i64
  %232 = sub i64 %231, %230
  %diff.check656 = icmp ult i64 %232, 32
  br i1 %diff.check656, label %.preheader572, label %vector.body661

vector.body661:                                   ; preds = %vector.memcheck655, %vector.body661.1
  %index662 = phi i64 [ %index.next665.3, %vector.body661.1 ], [ 0, %vector.memcheck655 ]
  %233 = getelementptr inbounds float, ptr %227, i64 %index662
  %234 = getelementptr inbounds i8, ptr %233, i64 16
  %wide.load663 = load <4 x float>, ptr %233, align 4, !tbaa !5
  %wide.load664 = load <4 x float>, ptr %234, align 4, !tbaa !5
  %235 = getelementptr inbounds float, ptr %229, i64 %index662
  %236 = getelementptr inbounds i8, ptr %235, i64 16
  store <4 x float> %wide.load663, ptr %235, align 4, !tbaa !5
  store <4 x float> %wide.load664, ptr %236, align 4, !tbaa !5
  %237 = icmp eq i64 %index662, 178560
  br i1 %237, label %middle.block657, label %vector.body661.1, !llvm.loop !42

vector.body661.1:                                 ; preds = %vector.body661
  %index.next665 = or disjoint i64 %index662, 8
  %238 = getelementptr inbounds float, ptr %227, i64 %index.next665
  %239 = getelementptr inbounds i8, ptr %238, i64 16
  %wide.load663.1 = load <4 x float>, ptr %238, align 4, !tbaa !5
  %wide.load664.1 = load <4 x float>, ptr %239, align 4, !tbaa !5
  %240 = getelementptr inbounds float, ptr %229, i64 %index.next665
  %241 = getelementptr inbounds i8, ptr %240, i64 16
  store <4 x float> %wide.load663.1, ptr %240, align 4, !tbaa !5
  store <4 x float> %wide.load664.1, ptr %241, align 4, !tbaa !5
  %index.next665.1 = or disjoint i64 %index662, 16
  %242 = getelementptr inbounds float, ptr %227, i64 %index.next665.1
  %243 = getelementptr inbounds i8, ptr %242, i64 16
  %wide.load663.2 = load <4 x float>, ptr %242, align 4, !tbaa !5
  %wide.load664.2 = load <4 x float>, ptr %243, align 4, !tbaa !5
  %244 = getelementptr inbounds float, ptr %229, i64 %index.next665.1
  %245 = getelementptr inbounds i8, ptr %244, i64 16
  store <4 x float> %wide.load663.2, ptr %244, align 4, !tbaa !5
  store <4 x float> %wide.load664.2, ptr %245, align 4, !tbaa !5
  %index.next665.2 = or disjoint i64 %index662, 24
  %246 = getelementptr inbounds float, ptr %227, i64 %index.next665.2
  %247 = getelementptr inbounds i8, ptr %246, i64 16
  %wide.load663.3 = load <4 x float>, ptr %246, align 4, !tbaa !5
  %wide.load664.3 = load <4 x float>, ptr %247, align 4, !tbaa !5
  %248 = getelementptr inbounds float, ptr %229, i64 %index.next665.2
  %249 = getelementptr inbounds i8, ptr %248, i64 16
  store <4 x float> %wide.load663.3, ptr %248, align 4, !tbaa !5
  store <4 x float> %wide.load664.3, ptr %249, align 4, !tbaa !5
  %index.next665.3 = add nuw nsw i64 %index662, 32
  br label %vector.body661

middle.block657:                                  ; preds = %vector.body661, %.preheader572
  %250 = invoke noundef ptr @_Z19generateMatrixDensejjf(i32 noundef 136, i32 noundef 2, float noundef 0.000000e+00)
          to label %267 unwind label %407

251:                                              ; preds = %226
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %604

253:                                              ; preds = %228
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %604

.preheader572:                                    ; preds = %vector.memcheck655, %.preheader572
  %indvars.iv609 = phi i64 [ %indvars.iv.next610.3, %.preheader572 ], [ 0, %vector.memcheck655 ]
  %255 = getelementptr inbounds float, ptr %227, i64 %indvars.iv609
  %256 = load float, ptr %255, align 4, !tbaa !5
  %257 = getelementptr inbounds float, ptr %229, i64 %indvars.iv609
  store float %256, ptr %257, align 4, !tbaa !5
  %indvars.iv.next610 = or disjoint i64 %indvars.iv609, 1
  %258 = getelementptr inbounds float, ptr %227, i64 %indvars.iv.next610
  %259 = load float, ptr %258, align 4, !tbaa !5
  %260 = getelementptr inbounds float, ptr %229, i64 %indvars.iv.next610
  store float %259, ptr %260, align 4, !tbaa !5
  %indvars.iv.next610.1 = or disjoint i64 %indvars.iv609, 2
  %261 = getelementptr inbounds float, ptr %227, i64 %indvars.iv.next610.1
  %262 = load float, ptr %261, align 4, !tbaa !5
  %263 = getelementptr inbounds float, ptr %229, i64 %indvars.iv.next610.1
  store float %262, ptr %263, align 4, !tbaa !5
  %indvars.iv.next610.2 = or disjoint i64 %indvars.iv609, 3
  %264 = getelementptr inbounds float, ptr %227, i64 %indvars.iv.next610.2
  %265 = load float, ptr %264, align 4, !tbaa !5
  %266 = getelementptr inbounds float, ptr %229, i64 %indvars.iv.next610.2
  store float %265, ptr %266, align 4, !tbaa !5
  %indvars.iv.next610.3 = add nuw nsw i64 %indvars.iv609, 4
  %exitcond612.not.3 = icmp eq i64 %indvars.iv.next610.3, 178568
  br i1 %exitcond612.not.3, label %middle.block657, label %.preheader572, !llvm.loop !43

267:                                              ; preds = %middle.block657
  %268 = invoke noalias noundef nonnull dereferenceable(1088) ptr @_Znam(i64 noundef 1088) #12
          to label %vector.memcheck666 unwind label %409

vector.memcheck666:                               ; preds = %267
  %269 = ptrtoint ptr %250 to i64
  %270 = ptrtoint ptr %268 to i64
  %271 = sub i64 %270, %269
  %diff.check667 = icmp ult i64 %271, 32
  br i1 %diff.check667, label %.preheader571, label %vector.body672

vector.body672:                                   ; preds = %vector.memcheck666
  %272 = getelementptr inbounds i8, ptr %250, i64 16
  %wide.load674 = load <4 x float>, ptr %250, align 4, !tbaa !5
  %wide.load675 = load <4 x float>, ptr %272, align 4, !tbaa !5
  %273 = getelementptr inbounds i8, ptr %268, i64 16
  store <4 x float> %wide.load674, ptr %268, align 4, !tbaa !5
  store <4 x float> %wide.load675, ptr %273, align 4, !tbaa !5
  %274 = getelementptr inbounds i8, ptr %250, i64 32
  %275 = getelementptr inbounds i8, ptr %250, i64 48
  %wide.load674.1 = load <4 x float>, ptr %274, align 4, !tbaa !5
  %wide.load675.1 = load <4 x float>, ptr %275, align 4, !tbaa !5
  %276 = getelementptr inbounds i8, ptr %268, i64 32
  %277 = getelementptr inbounds i8, ptr %268, i64 48
  store <4 x float> %wide.load674.1, ptr %276, align 4, !tbaa !5
  store <4 x float> %wide.load675.1, ptr %277, align 4, !tbaa !5
  %278 = getelementptr inbounds i8, ptr %250, i64 64
  %279 = getelementptr inbounds i8, ptr %250, i64 80
  %wide.load674.2 = load <4 x float>, ptr %278, align 4, !tbaa !5
  %wide.load675.2 = load <4 x float>, ptr %279, align 4, !tbaa !5
  %280 = getelementptr inbounds i8, ptr %268, i64 64
  %281 = getelementptr inbounds i8, ptr %268, i64 80
  store <4 x float> %wide.load674.2, ptr %280, align 4, !tbaa !5
  store <4 x float> %wide.load675.2, ptr %281, align 4, !tbaa !5
  %282 = getelementptr inbounds i8, ptr %250, i64 96
  %283 = getelementptr inbounds i8, ptr %250, i64 112
  %wide.load674.3 = load <4 x float>, ptr %282, align 4, !tbaa !5
  %wide.load675.3 = load <4 x float>, ptr %283, align 4, !tbaa !5
  %284 = getelementptr inbounds i8, ptr %268, i64 96
  %285 = getelementptr inbounds i8, ptr %268, i64 112
  store <4 x float> %wide.load674.3, ptr %284, align 4, !tbaa !5
  store <4 x float> %wide.load675.3, ptr %285, align 4, !tbaa !5
  %286 = getelementptr inbounds i8, ptr %250, i64 128
  %287 = getelementptr inbounds i8, ptr %250, i64 144
  %wide.load674.4 = load <4 x float>, ptr %286, align 4, !tbaa !5
  %wide.load675.4 = load <4 x float>, ptr %287, align 4, !tbaa !5
  %288 = getelementptr inbounds i8, ptr %268, i64 128
  %289 = getelementptr inbounds i8, ptr %268, i64 144
  store <4 x float> %wide.load674.4, ptr %288, align 4, !tbaa !5
  store <4 x float> %wide.load675.4, ptr %289, align 4, !tbaa !5
  %290 = getelementptr inbounds i8, ptr %250, i64 160
  %291 = getelementptr inbounds i8, ptr %250, i64 176
  %wide.load674.5 = load <4 x float>, ptr %290, align 4, !tbaa !5
  %wide.load675.5 = load <4 x float>, ptr %291, align 4, !tbaa !5
  %292 = getelementptr inbounds i8, ptr %268, i64 160
  %293 = getelementptr inbounds i8, ptr %268, i64 176
  store <4 x float> %wide.load674.5, ptr %292, align 4, !tbaa !5
  store <4 x float> %wide.load675.5, ptr %293, align 4, !tbaa !5
  %294 = getelementptr inbounds i8, ptr %250, i64 192
  %295 = getelementptr inbounds i8, ptr %250, i64 208
  %wide.load674.6 = load <4 x float>, ptr %294, align 4, !tbaa !5
  %wide.load675.6 = load <4 x float>, ptr %295, align 4, !tbaa !5
  %296 = getelementptr inbounds i8, ptr %268, i64 192
  %297 = getelementptr inbounds i8, ptr %268, i64 208
  store <4 x float> %wide.load674.6, ptr %296, align 4, !tbaa !5
  store <4 x float> %wide.load675.6, ptr %297, align 4, !tbaa !5
  %298 = getelementptr inbounds i8, ptr %250, i64 224
  %299 = getelementptr inbounds i8, ptr %250, i64 240
  %wide.load674.7 = load <4 x float>, ptr %298, align 4, !tbaa !5
  %wide.load675.7 = load <4 x float>, ptr %299, align 4, !tbaa !5
  %300 = getelementptr inbounds i8, ptr %268, i64 224
  %301 = getelementptr inbounds i8, ptr %268, i64 240
  store <4 x float> %wide.load674.7, ptr %300, align 4, !tbaa !5
  store <4 x float> %wide.load675.7, ptr %301, align 4, !tbaa !5
  %302 = getelementptr inbounds i8, ptr %250, i64 256
  %303 = getelementptr inbounds i8, ptr %250, i64 272
  %wide.load674.8 = load <4 x float>, ptr %302, align 4, !tbaa !5
  %wide.load675.8 = load <4 x float>, ptr %303, align 4, !tbaa !5
  %304 = getelementptr inbounds i8, ptr %268, i64 256
  %305 = getelementptr inbounds i8, ptr %268, i64 272
  store <4 x float> %wide.load674.8, ptr %304, align 4, !tbaa !5
  store <4 x float> %wide.load675.8, ptr %305, align 4, !tbaa !5
  %306 = getelementptr inbounds i8, ptr %250, i64 288
  %307 = getelementptr inbounds i8, ptr %250, i64 304
  %wide.load674.9 = load <4 x float>, ptr %306, align 4, !tbaa !5
  %wide.load675.9 = load <4 x float>, ptr %307, align 4, !tbaa !5
  %308 = getelementptr inbounds i8, ptr %268, i64 288
  %309 = getelementptr inbounds i8, ptr %268, i64 304
  store <4 x float> %wide.load674.9, ptr %308, align 4, !tbaa !5
  store <4 x float> %wide.load675.9, ptr %309, align 4, !tbaa !5
  %310 = getelementptr inbounds i8, ptr %250, i64 320
  %311 = getelementptr inbounds i8, ptr %250, i64 336
  %wide.load674.10 = load <4 x float>, ptr %310, align 4, !tbaa !5
  %wide.load675.10 = load <4 x float>, ptr %311, align 4, !tbaa !5
  %312 = getelementptr inbounds i8, ptr %268, i64 320
  %313 = getelementptr inbounds i8, ptr %268, i64 336
  store <4 x float> %wide.load674.10, ptr %312, align 4, !tbaa !5
  store <4 x float> %wide.load675.10, ptr %313, align 4, !tbaa !5
  %314 = getelementptr inbounds i8, ptr %250, i64 352
  %315 = getelementptr inbounds i8, ptr %250, i64 368
  %wide.load674.11 = load <4 x float>, ptr %314, align 4, !tbaa !5
  %wide.load675.11 = load <4 x float>, ptr %315, align 4, !tbaa !5
  %316 = getelementptr inbounds i8, ptr %268, i64 352
  %317 = getelementptr inbounds i8, ptr %268, i64 368
  store <4 x float> %wide.load674.11, ptr %316, align 4, !tbaa !5
  store <4 x float> %wide.load675.11, ptr %317, align 4, !tbaa !5
  %318 = getelementptr inbounds i8, ptr %250, i64 384
  %319 = getelementptr inbounds i8, ptr %250, i64 400
  %wide.load674.12 = load <4 x float>, ptr %318, align 4, !tbaa !5
  %wide.load675.12 = load <4 x float>, ptr %319, align 4, !tbaa !5
  %320 = getelementptr inbounds i8, ptr %268, i64 384
  %321 = getelementptr inbounds i8, ptr %268, i64 400
  store <4 x float> %wide.load674.12, ptr %320, align 4, !tbaa !5
  store <4 x float> %wide.load675.12, ptr %321, align 4, !tbaa !5
  %322 = getelementptr inbounds i8, ptr %250, i64 416
  %323 = getelementptr inbounds i8, ptr %250, i64 432
  %wide.load674.13 = load <4 x float>, ptr %322, align 4, !tbaa !5
  %wide.load675.13 = load <4 x float>, ptr %323, align 4, !tbaa !5
  %324 = getelementptr inbounds i8, ptr %268, i64 416
  %325 = getelementptr inbounds i8, ptr %268, i64 432
  store <4 x float> %wide.load674.13, ptr %324, align 4, !tbaa !5
  store <4 x float> %wide.load675.13, ptr %325, align 4, !tbaa !5
  %326 = getelementptr inbounds i8, ptr %250, i64 448
  %327 = getelementptr inbounds i8, ptr %250, i64 464
  %wide.load674.14 = load <4 x float>, ptr %326, align 4, !tbaa !5
  %wide.load675.14 = load <4 x float>, ptr %327, align 4, !tbaa !5
  %328 = getelementptr inbounds i8, ptr %268, i64 448
  %329 = getelementptr inbounds i8, ptr %268, i64 464
  store <4 x float> %wide.load674.14, ptr %328, align 4, !tbaa !5
  store <4 x float> %wide.load675.14, ptr %329, align 4, !tbaa !5
  %330 = getelementptr inbounds i8, ptr %250, i64 480
  %331 = getelementptr inbounds i8, ptr %250, i64 496
  %wide.load674.15 = load <4 x float>, ptr %330, align 4, !tbaa !5
  %wide.load675.15 = load <4 x float>, ptr %331, align 4, !tbaa !5
  %332 = getelementptr inbounds i8, ptr %268, i64 480
  %333 = getelementptr inbounds i8, ptr %268, i64 496
  store <4 x float> %wide.load674.15, ptr %332, align 4, !tbaa !5
  store <4 x float> %wide.load675.15, ptr %333, align 4, !tbaa !5
  %334 = getelementptr inbounds i8, ptr %250, i64 512
  %335 = getelementptr inbounds i8, ptr %250, i64 528
  %wide.load674.16 = load <4 x float>, ptr %334, align 4, !tbaa !5
  %wide.load675.16 = load <4 x float>, ptr %335, align 4, !tbaa !5
  %336 = getelementptr inbounds i8, ptr %268, i64 512
  %337 = getelementptr inbounds i8, ptr %268, i64 528
  store <4 x float> %wide.load674.16, ptr %336, align 4, !tbaa !5
  store <4 x float> %wide.load675.16, ptr %337, align 4, !tbaa !5
  %338 = getelementptr inbounds i8, ptr %250, i64 544
  %339 = getelementptr inbounds i8, ptr %250, i64 560
  %wide.load674.17 = load <4 x float>, ptr %338, align 4, !tbaa !5
  %wide.load675.17 = load <4 x float>, ptr %339, align 4, !tbaa !5
  %340 = getelementptr inbounds i8, ptr %268, i64 544
  %341 = getelementptr inbounds i8, ptr %268, i64 560
  store <4 x float> %wide.load674.17, ptr %340, align 4, !tbaa !5
  store <4 x float> %wide.load675.17, ptr %341, align 4, !tbaa !5
  %342 = getelementptr inbounds i8, ptr %250, i64 576
  %343 = getelementptr inbounds i8, ptr %250, i64 592
  %wide.load674.18 = load <4 x float>, ptr %342, align 4, !tbaa !5
  %wide.load675.18 = load <4 x float>, ptr %343, align 4, !tbaa !5
  %344 = getelementptr inbounds i8, ptr %268, i64 576
  %345 = getelementptr inbounds i8, ptr %268, i64 592
  store <4 x float> %wide.load674.18, ptr %344, align 4, !tbaa !5
  store <4 x float> %wide.load675.18, ptr %345, align 4, !tbaa !5
  %346 = getelementptr inbounds i8, ptr %250, i64 608
  %347 = getelementptr inbounds i8, ptr %250, i64 624
  %wide.load674.19 = load <4 x float>, ptr %346, align 4, !tbaa !5
  %wide.load675.19 = load <4 x float>, ptr %347, align 4, !tbaa !5
  %348 = getelementptr inbounds i8, ptr %268, i64 608
  %349 = getelementptr inbounds i8, ptr %268, i64 624
  store <4 x float> %wide.load674.19, ptr %348, align 4, !tbaa !5
  store <4 x float> %wide.load675.19, ptr %349, align 4, !tbaa !5
  %350 = getelementptr inbounds i8, ptr %250, i64 640
  %351 = getelementptr inbounds i8, ptr %250, i64 656
  %wide.load674.20 = load <4 x float>, ptr %350, align 4, !tbaa !5
  %wide.load675.20 = load <4 x float>, ptr %351, align 4, !tbaa !5
  %352 = getelementptr inbounds i8, ptr %268, i64 640
  %353 = getelementptr inbounds i8, ptr %268, i64 656
  store <4 x float> %wide.load674.20, ptr %352, align 4, !tbaa !5
  store <4 x float> %wide.load675.20, ptr %353, align 4, !tbaa !5
  %354 = getelementptr inbounds i8, ptr %250, i64 672
  %355 = getelementptr inbounds i8, ptr %250, i64 688
  %wide.load674.21 = load <4 x float>, ptr %354, align 4, !tbaa !5
  %wide.load675.21 = load <4 x float>, ptr %355, align 4, !tbaa !5
  %356 = getelementptr inbounds i8, ptr %268, i64 672
  %357 = getelementptr inbounds i8, ptr %268, i64 688
  store <4 x float> %wide.load674.21, ptr %356, align 4, !tbaa !5
  store <4 x float> %wide.load675.21, ptr %357, align 4, !tbaa !5
  %358 = getelementptr inbounds i8, ptr %250, i64 704
  %359 = getelementptr inbounds i8, ptr %250, i64 720
  %wide.load674.22 = load <4 x float>, ptr %358, align 4, !tbaa !5
  %wide.load675.22 = load <4 x float>, ptr %359, align 4, !tbaa !5
  %360 = getelementptr inbounds i8, ptr %268, i64 704
  %361 = getelementptr inbounds i8, ptr %268, i64 720
  store <4 x float> %wide.load674.22, ptr %360, align 4, !tbaa !5
  store <4 x float> %wide.load675.22, ptr %361, align 4, !tbaa !5
  %362 = getelementptr inbounds i8, ptr %250, i64 736
  %363 = getelementptr inbounds i8, ptr %250, i64 752
  %wide.load674.23 = load <4 x float>, ptr %362, align 4, !tbaa !5
  %wide.load675.23 = load <4 x float>, ptr %363, align 4, !tbaa !5
  %364 = getelementptr inbounds i8, ptr %268, i64 736
  %365 = getelementptr inbounds i8, ptr %268, i64 752
  store <4 x float> %wide.load674.23, ptr %364, align 4, !tbaa !5
  store <4 x float> %wide.load675.23, ptr %365, align 4, !tbaa !5
  %366 = getelementptr inbounds i8, ptr %250, i64 768
  %367 = getelementptr inbounds i8, ptr %250, i64 784
  %wide.load674.24 = load <4 x float>, ptr %366, align 4, !tbaa !5
  %wide.load675.24 = load <4 x float>, ptr %367, align 4, !tbaa !5
  %368 = getelementptr inbounds i8, ptr %268, i64 768
  %369 = getelementptr inbounds i8, ptr %268, i64 784
  store <4 x float> %wide.load674.24, ptr %368, align 4, !tbaa !5
  store <4 x float> %wide.load675.24, ptr %369, align 4, !tbaa !5
  %370 = getelementptr inbounds i8, ptr %250, i64 800
  %371 = getelementptr inbounds i8, ptr %250, i64 816
  %wide.load674.25 = load <4 x float>, ptr %370, align 4, !tbaa !5
  %wide.load675.25 = load <4 x float>, ptr %371, align 4, !tbaa !5
  %372 = getelementptr inbounds i8, ptr %268, i64 800
  %373 = getelementptr inbounds i8, ptr %268, i64 816
  store <4 x float> %wide.load674.25, ptr %372, align 4, !tbaa !5
  store <4 x float> %wide.load675.25, ptr %373, align 4, !tbaa !5
  %374 = getelementptr inbounds i8, ptr %250, i64 832
  %375 = getelementptr inbounds i8, ptr %250, i64 848
  %wide.load674.26 = load <4 x float>, ptr %374, align 4, !tbaa !5
  %wide.load675.26 = load <4 x float>, ptr %375, align 4, !tbaa !5
  %376 = getelementptr inbounds i8, ptr %268, i64 832
  %377 = getelementptr inbounds i8, ptr %268, i64 848
  store <4 x float> %wide.load674.26, ptr %376, align 4, !tbaa !5
  store <4 x float> %wide.load675.26, ptr %377, align 4, !tbaa !5
  %378 = getelementptr inbounds i8, ptr %250, i64 864
  %379 = getelementptr inbounds i8, ptr %250, i64 880
  %wide.load674.27 = load <4 x float>, ptr %378, align 4, !tbaa !5
  %wide.load675.27 = load <4 x float>, ptr %379, align 4, !tbaa !5
  %380 = getelementptr inbounds i8, ptr %268, i64 864
  %381 = getelementptr inbounds i8, ptr %268, i64 880
  store <4 x float> %wide.load674.27, ptr %380, align 4, !tbaa !5
  store <4 x float> %wide.load675.27, ptr %381, align 4, !tbaa !5
  %382 = getelementptr inbounds i8, ptr %250, i64 896
  %383 = getelementptr inbounds i8, ptr %250, i64 912
  %wide.load674.28 = load <4 x float>, ptr %382, align 4, !tbaa !5
  %wide.load675.28 = load <4 x float>, ptr %383, align 4, !tbaa !5
  %384 = getelementptr inbounds i8, ptr %268, i64 896
  %385 = getelementptr inbounds i8, ptr %268, i64 912
  store <4 x float> %wide.load674.28, ptr %384, align 4, !tbaa !5
  store <4 x float> %wide.load675.28, ptr %385, align 4, !tbaa !5
  %386 = getelementptr inbounds i8, ptr %250, i64 928
  %387 = getelementptr inbounds i8, ptr %250, i64 944
  %wide.load674.29 = load <4 x float>, ptr %386, align 4, !tbaa !5
  %wide.load675.29 = load <4 x float>, ptr %387, align 4, !tbaa !5
  %388 = getelementptr inbounds i8, ptr %268, i64 928
  %389 = getelementptr inbounds i8, ptr %268, i64 944
  store <4 x float> %wide.load674.29, ptr %388, align 4, !tbaa !5
  store <4 x float> %wide.load675.29, ptr %389, align 4, !tbaa !5
  %390 = getelementptr inbounds i8, ptr %250, i64 960
  %391 = getelementptr inbounds i8, ptr %250, i64 976
  %wide.load674.30 = load <4 x float>, ptr %390, align 4, !tbaa !5
  %wide.load675.30 = load <4 x float>, ptr %391, align 4, !tbaa !5
  %392 = getelementptr inbounds i8, ptr %268, i64 960
  %393 = getelementptr inbounds i8, ptr %268, i64 976
  store <4 x float> %wide.load674.30, ptr %392, align 4, !tbaa !5
  store <4 x float> %wide.load675.30, ptr %393, align 4, !tbaa !5
  %394 = getelementptr inbounds i8, ptr %250, i64 992
  %395 = getelementptr inbounds i8, ptr %250, i64 1008
  %wide.load674.31 = load <4 x float>, ptr %394, align 4, !tbaa !5
  %wide.load675.31 = load <4 x float>, ptr %395, align 4, !tbaa !5
  %396 = getelementptr inbounds i8, ptr %268, i64 992
  %397 = getelementptr inbounds i8, ptr %268, i64 1008
  store <4 x float> %wide.load674.31, ptr %396, align 4, !tbaa !5
  store <4 x float> %wide.load675.31, ptr %397, align 4, !tbaa !5
  %398 = getelementptr inbounds i8, ptr %250, i64 1024
  %399 = getelementptr inbounds i8, ptr %250, i64 1040
  %wide.load674.32 = load <4 x float>, ptr %398, align 4, !tbaa !5
  %wide.load675.32 = load <4 x float>, ptr %399, align 4, !tbaa !5
  %400 = getelementptr inbounds i8, ptr %268, i64 1024
  %401 = getelementptr inbounds i8, ptr %268, i64 1040
  store <4 x float> %wide.load674.32, ptr %400, align 4, !tbaa !5
  store <4 x float> %wide.load675.32, ptr %401, align 4, !tbaa !5
  %402 = getelementptr inbounds i8, ptr %250, i64 1056
  %403 = getelementptr inbounds i8, ptr %250, i64 1072
  %wide.load674.33 = load <4 x float>, ptr %402, align 4, !tbaa !5
  %wide.load675.33 = load <4 x float>, ptr %403, align 4, !tbaa !5
  %404 = getelementptr inbounds i8, ptr %268, i64 1056
  %405 = getelementptr inbounds i8, ptr %268, i64 1072
  store <4 x float> %wide.load674.33, ptr %404, align 4, !tbaa !5
  store <4 x float> %wide.load675.33, ptr %405, align 4, !tbaa !5
  br label %middle.block668

middle.block668:                                  ; preds = %.preheader571, %vector.body672
  %406 = invoke noalias noundef nonnull dereferenceable(10504) ptr @_Znam(i64 noundef 10504) #12
          to label %423 unwind label %436

407:                                              ; preds = %middle.block657
  %408 = landingpad { ptr, i32 }
          cleanup
  br label %604

409:                                              ; preds = %267
  %410 = landingpad { ptr, i32 }
          cleanup
  br label %604

.preheader571:                                    ; preds = %vector.memcheck666, %.preheader571
  %indvars.iv613 = phi i64 [ %indvars.iv.next614.3, %.preheader571 ], [ 0, %vector.memcheck666 ]
  %411 = getelementptr inbounds float, ptr %250, i64 %indvars.iv613
  %412 = load float, ptr %411, align 4, !tbaa !5
  %413 = getelementptr inbounds float, ptr %268, i64 %indvars.iv613
  store float %412, ptr %413, align 4, !tbaa !5
  %indvars.iv.next614 = or disjoint i64 %indvars.iv613, 1
  %414 = getelementptr inbounds float, ptr %250, i64 %indvars.iv.next614
  %415 = load float, ptr %414, align 4, !tbaa !5
  %416 = getelementptr inbounds float, ptr %268, i64 %indvars.iv.next614
  store float %415, ptr %416, align 4, !tbaa !5
  %indvars.iv.next614.1 = or disjoint i64 %indvars.iv613, 2
  %417 = getelementptr inbounds float, ptr %250, i64 %indvars.iv.next614.1
  %418 = load float, ptr %417, align 4, !tbaa !5
  %419 = getelementptr inbounds float, ptr %268, i64 %indvars.iv.next614.1
  store float %418, ptr %419, align 4, !tbaa !5
  %indvars.iv.next614.2 = or disjoint i64 %indvars.iv613, 3
  %420 = getelementptr inbounds float, ptr %250, i64 %indvars.iv.next614.2
  %421 = load float, ptr %420, align 4, !tbaa !5
  %422 = getelementptr inbounds float, ptr %268, i64 %indvars.iv.next614.2
  store float %421, ptr %422, align 4, !tbaa !5
  %indvars.iv.next614.3 = add nuw nsw i64 %indvars.iv613, 4
  %exitcond616.not.3 = icmp eq i64 %indvars.iv.next614.3, 272
  br i1 %exitcond616.not.3, label %middle.block668, label %.preheader571, !llvm.loop !44

423:                                              ; preds = %middle.block668
  %424 = invoke noalias noundef nonnull dereferenceable(10504) ptr @_Znam(i64 noundef 10504) #12
          to label %425 unwind label %438

425:                                              ; preds = %423
  %426 = getelementptr inbounds i8, ptr %7, i64 28
  store i32 512, ptr %426, align 4, !tbaa !21
  %427 = getelementptr inbounds i8, ptr %7, i64 104
  %428 = getelementptr inbounds i8, ptr %7, i64 112
  store i32 512, ptr %428, align 8, !tbaa !35
  %429 = getelementptr inbounds i8, ptr %7, i64 116
  store i32 512, ptr %429, align 4, !tbaa !36
  %430 = getelementptr inbounds i8, ptr %7, i64 64
  %431 = getelementptr inbounds i8, ptr %7, i64 68
  store i32 1, ptr %431, align 4, !tbaa !37
  store i32 0, ptr %427, align 8, !tbaa !38
  store i32 0, ptr %7, align 8, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %432 unwind label %440

432:                                              ; preds = %425
  %433 = invoke noundef i32 @_Z28get_type_reduce_network_typeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %11)
          to label %434 unwind label %442

434:                                              ; preds = %432
  store i32 %433, ptr %430, align 8, !tbaa !40
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #11
  %435 = invoke noalias noundef nonnull dereferenceable(320) ptr @_Znwm(i64 noundef 320) #12
          to label %445 unwind label %462

436:                                              ; preds = %middle.block668
  %437 = landingpad { ptr, i32 }
          cleanup
  br label %604

438:                                              ; preds = %423
  %439 = landingpad { ptr, i32 }
          cleanup
  br label %604

440:                                              ; preds = %425
  %441 = landingpad { ptr, i32 }
          cleanup
  br label %444

442:                                              ; preds = %432
  %443 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  br label %444

444:                                              ; preds = %442, %440
  %.pn526 = phi { ptr, i32 } [ %443, %442 ], [ %441, %440 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #11
  br label %604

445:                                              ; preds = %434
  invoke void @_ZN6StonneC1E6Config(ptr noundef nonnull align 8 dereferenceable(316) %435, ptr noundef nonnull byval(%class.Config) align 8 %7)
          to label %446 unwind label %464

446:                                              ; preds = %445
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %447 unwind label %462

447:                                              ; preds = %446
  invoke void @_ZN6Stonne13loadDenseGEMMENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjjjPfS6_S6_8Dataflow(ptr noundef nonnull align 8 dereferenceable(316) %435, ptr noundef nonnull %13, i32 noundef 2, i32 noundef 136, i32 noundef 1313, ptr noundef nonnull %229, ptr noundef nonnull %268, ptr noundef nonnull %424, i32 noundef 0)
          to label %448 unwind label %466

448:                                              ; preds = %447
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  invoke void @_ZN6Stonne12loadClockingEPj(ptr noundef nonnull align 8 dereferenceable(316) %435, ptr noundef nonnull %406)
          to label %449 unwind label %462

449:                                              ; preds = %448
  invoke void @_ZN6Stonne12loadGEMMTileEjjj(ptr noundef nonnull align 8 dereferenceable(316) %435, i32 noundef 1, i32 noundef 136, i32 noundef 1)
          to label %450 unwind label %462

450:                                              ; preds = %449
  invoke void @_ZN6Stonne3runEv(ptr noundef nonnull align 8 dereferenceable(316) %435)
          to label %451 unwind label %462

451:                                              ; preds = %450
  %452 = invoke noalias noundef nonnull dereferenceable(10504) ptr @_Znam(i64 noundef 10504) #12
          to label %.preheader570.preheader unwind label %468

.preheader570.preheader:                          ; preds = %451
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(10504) %452, ptr noundef nonnull align 4 dereferenceable(10504) %406, i64 10504, i1 false), !tbaa !15
  %invariant.gep = getelementptr inbounds i8, ptr %452, i64 5252
  %invariant.gep699 = getelementptr i8, ptr %406, i64 -4
  %invariant.gep701 = getelementptr i8, ptr %406, i64 -4
  br label %vector.body681

vector.body681:                                   ; preds = %vector.body681, %.preheader570.preheader
  %index682 = phi i64 [ 0, %.preheader570.preheader ], [ %index.next688, %vector.body681 ]
  %453 = shl nuw nsw i64 %index682, 1
  %454 = shl i64 %index682, 1
  %455 = getelementptr inbounds i32, ptr %452, i64 %index682
  %456 = getelementptr inbounds i8, ptr %455, i64 8
  %wide.load683 = load <2 x i32>, ptr %455, align 4, !tbaa !15
  %wide.load684 = load <2 x i32>, ptr %456, align 4, !tbaa !15
  %457 = getelementptr inbounds i32, ptr %invariant.gep, i64 %index682
  %458 = getelementptr inbounds i8, ptr %457, i64 8
  %wide.load685 = load <2 x i32>, ptr %457, align 4, !tbaa !15
  %wide.load686 = load <2 x i32>, ptr %458, align 4, !tbaa !15
  %459 = or disjoint i64 %453, 1
  %460 = or disjoint i64 %454, 5
  %gep700 = getelementptr i32, ptr %invariant.gep699, i64 %459
  %gep702 = getelementptr i32, ptr %invariant.gep701, i64 %460
  %interleaved.vec = shufflevector <2 x i32> %wide.load683, <2 x i32> %wide.load685, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x i32> %interleaved.vec, ptr %gep700, align 4, !tbaa !15
  %interleaved.vec687 = shufflevector <2 x i32> %wide.load684, <2 x i32> %wide.load686, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x i32> %interleaved.vec687, ptr %gep702, align 4, !tbaa !15
  %index.next688 = add nuw i64 %index682, 4
  %461 = icmp eq i64 %index.next688, 1312
  br i1 %461, label %.preheader568, label %vector.body681, !llvm.loop !45

462:                                              ; preds = %450, %449, %448, %446, %434
  %463 = landingpad { ptr, i32 }
          cleanup
  br label %604

464:                                              ; preds = %445
  %465 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %435, i64 noundef 320) #13
  br label %604

466:                                              ; preds = %447
  %467 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  br label %604

468:                                              ; preds = %451
  %469 = landingpad { ptr, i32 }
          cleanup
  br label %604

.preheader568:                                    ; preds = %vector.body681
  %470 = getelementptr inbounds i8, ptr %452, i64 5248
  %471 = load i32, ptr %470, align 4, !tbaa !15
  %472 = getelementptr inbounds i8, ptr %406, i64 10496
  store i32 %471, ptr %472, align 4, !tbaa !15
  %gep641 = getelementptr inbounds i8, ptr %452, i64 10500
  %473 = load i32, ptr %gep641, align 4, !tbaa !15
  %474 = getelementptr inbounds i8, ptr %406, i64 10500
  store i32 %473, ptr %474, align 4, !tbaa !15
  %475 = call noundef i32 @_ZN6Stonne9getCyclesEv(ptr noundef nonnull align 8 dereferenceable(316) %435)
  br label %478

476:                                              ; preds = %524, %522, %520, %516, %498
  %477 = landingpad { ptr, i32 }
          cleanup
  br label %604

478:                                              ; preds = %.preheader568, %484
  %indvars.iv627 = phi i64 [ 1, %.preheader568 ], [ %indvars.iv.next628, %484 ]
  %479 = getelementptr inbounds i32, ptr %406, i64 %indvars.iv627
  %480 = load i32, ptr %479, align 4, !tbaa !15
  %481 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %480)
          to label %482 unwind label %486

482:                                              ; preds = %478
  %483 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %481, ptr noundef nonnull @.str.1)
          to label %484 unwind label %486

484:                                              ; preds = %482
  %indvars.iv.next628 = add nuw nsw i64 %indvars.iv627, 2
  %485 = icmp ult i64 %indvars.iv627, 2624
  br i1 %485, label %478, label %488, !llvm.loop !46

486:                                              ; preds = %482, %478
  %487 = landingpad { ptr, i32 }
          cleanup
  br label %604

488:                                              ; preds = %484
  call void @_ZdaPv(ptr noundef nonnull %229) #13
  call void @_ZdaPv(ptr noundef nonnull %268) #13
  call void @_ZdaPv(ptr noundef nonnull %424) #13
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %435) #11
  call void @_ZdlPvm(ptr noundef nonnull %435, i64 noundef 320) #13
  %489 = getelementptr inbounds i8, ptr %137, i64 540
  %490 = load i32, ptr %489, align 4, !tbaa !15
  %491 = getelementptr inbounds i8, ptr %137, i64 1084
  %492 = load i32, ptr %491, align 4, !tbaa !15
  %493 = sub i32 %492, %490
  %494 = getelementptr inbounds i8, ptr %406, i64 4
  %495 = load i32, ptr %494, align 4, !tbaa !15
  %496 = call i32 @llvm.umax.i32(i32 %493, i32 %495)
  %497 = add i32 %496, %490
  %invariant.gep589 = getelementptr i8, ptr %406, i64 -12
  br label %504

498:                                              ; preds = %504
  %499 = getelementptr inbounds i8, ptr %406, i64 10500
  %500 = load i32, ptr %499, align 4, !tbaa !15
  %501 = getelementptr inbounds i8, ptr %406, i64 10492
  %502 = load i32, ptr %501, align 4, !tbaa !15
  %503 = 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.10)
          to label %516 unwind label %476

504:                                              ; preds = %488, %504
  %indvars.iv630 = phi i64 [ 2, %488 ], [ %indvars.iv.next631, %504 ]
  %.0455592 = phi i32 [ %497, %488 ], [ %515, %504 ]
  %gep.idx = mul i64 %indvars.iv630, 544
  %gep = getelementptr inbounds i8, ptr %489, i64 %gep.idx
  %505 = load i32, ptr %gep, align 4, !tbaa !15
  %506 = add nsw i64 %indvars.iv630, -1
  %gep588.idx = mul i64 %506, 544
  %gep588 = getelementptr i8, ptr %489, i64 %gep588.idx
  %507 = load i32, ptr %gep588, align 4, !tbaa !15
  %508 = sub i32 %505, %507
  %509 = shl nsw i64 %506, 1
  %510 = or disjoint i64 %509, 1
  %511 = getelementptr inbounds i32, ptr %406, i64 %510
  %512 = load i32, ptr %511, align 4, !tbaa !15
  %gep590.idx = shl i64 %indvars.iv630, 3
  %gep590 = getelementptr i8, ptr %invariant.gep589, i64 %gep590.idx
  %513 = load i32, ptr %gep590, align 4, !tbaa !15
  %514 = sub i32 %512, %513
  %.565 = call i32 @llvm.umax.i32(i32 %508, i32 %514)
  %515 = add i32 %.565, %.0455592
  %indvars.iv.next631 = add nuw nsw i64 %indvars.iv630, 1
  %exitcond633.not = icmp eq i64 %indvars.iv.next631, 1313
  br i1 %exitcond633.not, label %498, label %504, !llvm.loop !47

516:                                              ; preds = %498
  %517 = add i32 %500, %515
  %518 = sub i32 %517, %502
  %519 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %503, i32 noundef %518)
          to label %520 unwind label %476

520:                                              ; preds = %516
  %521 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %519, ptr noundef nonnull @.str.11)
          to label %522 unwind label %476

522:                                              ; preds = %520
  %523 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %521, i32 noundef 272)
          to label %524 unwind label %476

524:                                              ; preds = %522
  %525 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %523, ptr noundef nonnull @.str.12)
          to label %526 unwind label %476

526:                                              ; preds = %524
  %527 = load i32, ptr %489, align 4, !tbaa !15
  %528 = 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.1)
          to label %529 unwind label %.loopexit.split-lp

529:                                              ; preds = %526
  %530 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %528, i32 noundef %527)
          to label %.preheader.peel.next unwind label %.loopexit.split-lp

.preheader.peel.next:                             ; preds = %529, %541
  %indvars.iv634 = phi i64 [ %indvars.iv.next635, %541 ], [ 1, %529 ]
  %.0496594 = phi i32 [ %537, %541 ], [ %527, %529 ]
  %.idx = mul i64 %indvars.iv634, 544
  %531 = getelementptr inbounds i8, ptr %137, i64 %.idx
  %532 = getelementptr i8, ptr %531, i64 -4
  %533 = getelementptr inbounds i8, ptr %531, i64 540
  %534 = load i32, ptr %533, align 4, !tbaa !15
  %535 = load i32, ptr %532, align 4, !tbaa !15
  %536 = sub i32 %534, %535
  %537 = add nsw i32 %536, %.0496594
  %538 = 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.1)
          to label %539 unwind label %.loopexit

539:                                              ; preds = %.preheader.peel.next
  %540 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %538, i32 noundef %536)
          to label %541 unwind label %.loopexit

541:                                              ; preds = %539
  %indvars.iv.next635 = add nuw nsw i64 %indvars.iv634, 1
  %exitcond637.not = icmp eq i64 %indvars.iv.next635, 1313
  br i1 %exitcond637.not, label %.loopexit639, label %.preheader.peel.next, !llvm.loop !48

.loopexit:                                        ; preds = %.preheader.peel.next, %539
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %604

.loopexit.split-lp:                               ; preds = %526, %529
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %604

542:                                              ; preds = %559, %557, %555, %553, %551, %549, %547, %545, %.loopexit639
  %543 = landingpad { ptr, i32 }
          cleanup
  br label %604

.loopexit639:                                     ; preds = %541
  %544 = 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.13)
          to label %545 unwind label %542

545:                                              ; preds = %.loopexit639
  %546 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %544, i32 noundef %190)
          to label %547 unwind label %542

547:                                              ; preds = %545
  %548 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %546, ptr noundef nonnull @.str.6)
          to label %549 unwind label %542

549:                                              ; preds = %547
  %550 = 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 %551 unwind label %542

551:                                              ; preds = %549
  %552 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %550, i32 noundef %475)
          to label %553 unwind label %542

553:                                              ; preds = %551
  %554 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %552, ptr noundef nonnull @.str.6)
          to label %555 unwind label %542

555:                                              ; preds = %553
  %556 = 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.15)
          to label %557 unwind label %542

557:                                              ; preds = %555
  %558 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %556, i32 noundef %537)
          to label %559 unwind label %542

559:                                              ; preds = %557
  %560 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %558, ptr noundef nonnull @.str.6)
          to label %561 unwind label %542

561:                                              ; preds = %559
  %562 = add i32 %537, %475
  %563 = 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.16)
          to label %564 unwind label %580

564:                                              ; preds = %561
  %565 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %563, i32 noundef %562)
          to label %566 unwind label %580

566:                                              ; preds = %564
  %567 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %565, ptr noundef nonnull @.str.17)
          to label %568 unwind label %580

568:                                              ; preds = %566
  %569 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %567, i32 noundef 178568)
          to label %570 unwind label %580

570:                                              ; preds = %568
  %571 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %569, ptr noundef nonnull @.str.6)
          to label %572 unwind label %580

572:                                              ; preds = %570
  %573 = 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 %574 unwind label %582

574:                                              ; preds = %572
  %575 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %573, i32 noundef 1313)
          to label %576 unwind label %582

576:                                              ; preds = %574
  %577 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %575, ptr noundef nonnull @.str.6)
          to label %578 unwind label %582

578:                                              ; preds = %576
  %579 = 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.19)
          to label %584 unwind label %600

580:                                              ; preds = %570, %568, %566, %564, %561
  %581 = landingpad { ptr, i32 }
          cleanup
  br label %604

582:                                              ; preds = %576, %574, %572
  %583 = landingpad { ptr, i32 }
          cleanup
  br label %604

584:                                              ; preds = %578
  %585 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %579, i32 noundef 0)
          to label %586 unwind label %600

586:                                              ; preds = %584
  %587 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %585, ptr noundef nonnull @.str.6)
          to label %588 unwind label %600

588:                                              ; preds = %586
  %589 = 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 %590 unwind label %602

590:                                              ; preds = %588
  %591 = add nsw i32 %562, -1313
  %592 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %589, i32 noundef %591)
          to label %593 unwind label %602

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

595:                                              ; preds = %593
  %596 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %594, i32 noundef 2)
          to label %597 unwind label %602

597:                                              ; preds = %595
  %598 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %596, ptr noundef nonnull @.str.6)
          to label %599 unwind label %602

599:                                              ; preds = %597
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 160, 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
  br label %609

600:                                              ; preds = %586, %584, %578
  %601 = landingpad { ptr, i32 }
          cleanup
  br label %604

602:                                              ; preds = %597, %595, %593, %590, %588
  %603 = landingpad { ptr, i32 }
          cleanup
  br label %604

604:                                              ; preds = %.loopexit, %.loopexit.split-lp, %193, %195, %197, %251, %407, %436, %438, %444, %468, %580, %600, %602, %582, %542, %486, %476, %466, %464, %462, %409, %253, %209, %199, %183, %173
  %.pn546.pn.pn = phi { ptr, i32 } [ %.pn, %183 ], [ %174, %173 ], [ %194, %193 ], [ %198, %197 ], [ %196, %195 ], [ %210, %209 ], [ %200, %199 ], [ %252, %251 ], [ %254, %253 ], [ %408, %407 ], [ %410, %409 ], [ %437, %436 ], [ %.pn526, %444 ], [ %439, %438 ], [ %463, %462 ], [ %467, %466 ], [ %465, %464 ], [ %469, %468 ], [ %487, %486 ], [ %477, %476 ], [ %543, %542 ], [ %581, %580 ], [ %583, %582 ], [ %603, %602 ], [ %601, %600 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %7) #11
  br label %605

605:                                              ; preds = %604, %171
  %.pn546.pn.pn.pn = phi { ptr, i32 } [ %.pn546.pn.pn, %604 ], [ %172, %171 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %6) #11
  br label %606

606:                                              ; preds = %101, %109, %140, %167, %169, %605, %142, %138, %99
  %.pn557.pn = phi { ptr, i32 } [ %100, %99 ], [ %110, %109 ], [ %102, %101 ], [ %139, %138 ], [ %141, %140 ], [ %143, %142 ], [ %168, %167 ], [ %.pn546.pn.pn.pn, %605 ], [ %170, %169 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #11
  br label %607

607:                                              ; preds = %79, %606, %77
  %.pn557.pn.pn.pn = phi { ptr, i32 } [ %78, %77 ], [ %.pn557.pn, %606 ], [ %80, %79 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #11
  br label %608

608:                                              ; preds = %607, %75
  %.pn557.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn557.pn.pn.pn, %607 ], [ %76, %75 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1) #11
  resume { ptr, i32 } %.pn557.pn.pn.pn.pn

609:                                              ; preds = %599, %45
  br i1 %32, label %610, label %615

610:                                              ; preds = %609
  %611 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.2)
  %612 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %611, i32 noundef 0)
  %613 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %612, ptr noundef nonnull @.str.3)
  %614 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %613, i32 noundef 357136)
  br label %615

615:                                              ; preds = %610, %609
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1) #11
  ret i32 0
}

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

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

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

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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 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 #6 align 2

declare i32 @__gxx_personality_v0(...)

declare noundef ptr @_Z26generateMatrixDenseSampledjji(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

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

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

declare noundef ptr @_Z29generateMajorPointerFromDensePfjj15GENERATION_TYPE(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

declare noundef ptr @_Z37generateMatrixSparseFromDenseNoBitmapPfjj15GENERATION_TYPE(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

declare noundef ptr @_Z19generateMatrixDensejjf(i32 noundef, i32 noundef, float noundef) local_unnamed_addr #4

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

declare noundef i32 @_Z28get_type_reduce_network_typeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef) local_unnamed_addr #4

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN6Stonne9getCyclesEv(ptr noundef nonnull align 8 dereferenceable(316)) local_unnamed_addr #5 align 2

; 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 #6 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 #9

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #6 align 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 @_ZN6Stonne12loadGEMMTileEjjj(ptr noundef nonnull align 8 dereferenceable(316), i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #10

attributes #0 = { mustprogress norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
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 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #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 = { 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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #11 = { nounwind }
attributes #12 = { builtin allocsize(0) }
attributes #13 = { builtin 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 = !{!"float", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.unroll.disable"}
!11 = distinct !{!11, !12, !13, !14}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!"llvm.loop.isvectorized", i32 1}
!14 = !{!"llvm.loop.unroll.runtime.disable"}
!15 = !{!16, !16, i64 0}
!16 = !{!"int", !7, i64 0}
!17 = distinct !{!17, !12, !13}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12, !13, !14}
!20 = distinct !{!20, !12, !13}
!21 = !{!22, !16, i64 28}
!22 = !{!"_ZTS6Config", !16, i64 0, !23, i64 4, !24, i64 8, !25, i64 24, !27, i64 40, !28, i64 64, !30, i64 72, !31, i64 96, !32, i64 104}
!23 = !{!"_ZTS15DSNetworkConfig", !16, i64 0}
!24 = !{!"_ZTS13DSwitchConfig", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12}
!25 = !{!"_ZTS15MSNetworkConfig", !26, i64 0, !16, i64 4, !16, i64 8, !16, i64 12}
!26 = !{!"_ZTS19MultiplierNetwork_t", !7, i64 0}
!27 = !{!"_ZTS13MSwitchConfig", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20}
!28 = !{!"_ZTS15ASNetworkConfig", !29, i64 0, !16, i64 4}
!29 = !{!"_ZTS15ReduceNetwork_t", !7, i64 0}
!30 = !{!"_ZTS13ASwitchConfig", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20}
!31 = !{!"_ZTS17LookUpTableConfig", !16, i64 0, !16, i64 4}
!32 = !{!"_ZTS14SDMemoryConfig", !33, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !16, i64 24, !34, i64 28, !16, i64 32, !16, i64 36, !16, i64 40, !16, i64 44, !16, i64 48, !16, i64 52}
!33 = !{!"_ZTS18MemoryController_t", !7, i64 0}
!34 = !{!"_ZTS17MemoryHierarchy_t", !7, i64 0}
!35 = !{!22, !16, i64 112}
!36 = !{!22, !16, i64 116}
!37 = !{!22, !16, i64 68}
!38 = !{!22, !33, i64 104}
!39 = !{!22, !16, i64 0}
!40 = !{!22, !29, i64 64}
!41 = distinct !{!41, !12}
!42 = distinct !{!42, !12, !13, !14}
!43 = distinct !{!43, !12, !13}
!44 = distinct !{!44, !12, !13}
!45 = distinct !{!45, !12, !13, !14}
!46 = distinct !{!46, !12}
!47 = distinct !{!47, !12}
!48 = distinct !{!48, !12, !49}
!49 = !{!"llvm.loop.peeled.count", i32 1}


; Effective O3 passes: BDCEPass,ConstraintEliminationPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopFullUnrollPass,LoopIdiomRecognizePass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MemCpyOptPass,PromotePass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass