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

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

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

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.14 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [3 x i8], align 1
@__PRETTY_FUNCTION__._Z21runSparseDenseCommandiPPc = external hidden unnamed_addr constant [41 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z21runSparseDenseCommandiPPc(i32 noundef %0, ptr noundef %1) #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca float, align 4
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator", align 1
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca float, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca %class.Config, align 4
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca ptr, align 8
  %39 = alloca %class.Config, align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca i32, align 4
  %42 = alloca %class.MSNetworkStats, align 8
  %43 = alloca %class.ASNetworkStats, align 8
  %44 = alloca %class.DSNetworkStats, align 8
  %45 = alloca %class.SDMemoryStats, align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca float, align 4
  store i32 %0, ptr %3, align 4, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #12
  store float 0x3FA99999A0000000, ptr %5, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %49 unwind label %92

49:                                               ; preds = %2
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #12
  store i32 32, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #12
  store i32 16, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #12
  store i32 32, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #12
  store float 7.000000e+01, ptr %13, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #12
  store i32 4, ptr %14, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #12
  store i32 8, ptr %15, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 160, ptr %16) #12
  invoke void @_ZN6ConfigC1Ev(ptr noundef nonnull align 4 dereferenceable(160) %16)
          to label %50 unwind label %96

50:                                               ; preds = %49
  %51 = getelementptr inbounds %class.Config, ptr %16, i32 0, i32 8
  %52 = getelementptr inbounds %class.SDMemoryConfig, ptr %51, i32 0, i32 0
  store i32 2, ptr %52, align 4, !tbaa !13
  %53 = load i32, ptr %3, align 4, !tbaa !5
  %54 = load ptr, ptr %4, align 8, !tbaa !9
  invoke void @_Z27configSparseDenseParametersiPPcR6ConfigRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERjSA_SA_RfSA_SA_(i32 noundef %53, ptr noundef %54, ptr noundef nonnull align 4 dereferenceable(160) %16, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 4 dereferenceable(4) %15)
          to label %55 unwind label %96

55:                                               ; preds = %50
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #12
  %56 = load i32, ptr %10, align 4, !tbaa !5
  %57 = load i32, ptr %12, align 4, !tbaa !5
  %58 = load float, ptr %13, align 4, !tbaa !11
  %59 = invoke noundef ptr @_Z19generateMatrixDensejjf(i32 noundef %56, i32 noundef %57, float noundef %58)
          to label %60 unwind label %100

60:                                               ; preds = %55
  store ptr %59, ptr %17, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #12
  %61 = load i32, ptr %10, align 4, !tbaa !5
  %62 = load i32, ptr %12, align 4, !tbaa !5
  %63 = mul i32 %61, %62
  %64 = zext i32 %63 to i64
  %65 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %64, i64 4)
  %66 = extractvalue { i64, i1 } %65, 1
  %67 = extractvalue { i64, i1 } %65, 0
  %68 = select i1 %66, i64 -1, i64 %67
  %69 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %68) #13
          to label %70 unwind label %104

70:                                               ; preds = %60
  store ptr %69, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #12
  %71 = load i32, ptr %12, align 4, !tbaa !5
  %72 = load i32, ptr %11, align 4, !tbaa !5
  %73 = invoke noundef ptr @_Z19generateMatrixDensejjf(i32 noundef %71, i32 noundef %72, float noundef 0.000000e+00)
          to label %74 unwind label %108

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

84:                                               ; preds = %74
  store ptr %83, ptr %20, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #12
  store i32 0, ptr %21, align 4, !tbaa !5
  br label %85

85:                                               ; preds = %126, %84
  %86 = load i32, ptr %21, align 4, !tbaa !5
  %87 = load i32, ptr %10, align 4, !tbaa !5
  %88 = load i32, ptr %12, align 4, !tbaa !5
  %89 = mul i32 %87, %88
  %90 = icmp ult i32 %86, %89
  br i1 %90, label %116, label %91

91:                                               ; preds = %85
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #12
  br label %129

92:                                               ; preds = %2
  %93 = landingpad { ptr, i32 }
          cleanup
  %94 = extractvalue { ptr, i32 } %93, 0
  store ptr %94, ptr %8, align 8
  %95 = extractvalue { ptr, i32 } %93, 1
  store i32 %95, ptr %9, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #12
  br label %798

96:                                               ; preds = %50, %49
  %97 = landingpad { ptr, i32 }
          cleanup
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %8, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %9, align 4
  br label %797

100:                                              ; preds = %55
  %101 = landingpad { ptr, i32 }
          cleanup
  %102 = extractvalue { ptr, i32 } %101, 0
  store ptr %102, ptr %8, align 8
  %103 = extractvalue { ptr, i32 } %101, 1
  store i32 %103, ptr %9, align 4
  br label %796

104:                                              ; preds = %60
  %105 = landingpad { ptr, i32 }
          cleanup
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %8, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %9, align 4
  br label %795

108:                                              ; preds = %70
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %8, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %9, align 4
  br label %794

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

116:                                              ; preds = %85
  %117 = load ptr, ptr %17, align 8, !tbaa !9
  %118 = load i32, ptr %21, align 4, !tbaa !5
  %119 = sext i32 %118 to i64
  %120 = getelementptr inbounds float, ptr %117, i64 %119
  %121 = load float, ptr %120, align 4, !tbaa !11
  %122 = load ptr, ptr %18, align 8, !tbaa !9
  %123 = load i32, ptr %21, align 4, !tbaa !5
  %124 = sext i32 %123 to i64
  %125 = getelementptr inbounds float, ptr %122, i64 %124
  store float %121, ptr %125, align 4, !tbaa !11
  br label %126

126:                                              ; preds = %116
  %127 = load i32, ptr %21, align 4, !tbaa !5
  %128 = add nsw i32 %127, 1
  store i32 %128, ptr %21, align 4, !tbaa !5
  br label %85, !llvm.loop !27

129:                                              ; preds = %91
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #12
  store i32 0, ptr %22, align 4, !tbaa !5
  br label %130

130:                                              ; preds = %147, %129
  %131 = load i32, ptr %22, align 4, !tbaa !5
  %132 = load i32, ptr %12, align 4, !tbaa !5
  %133 = load i32, ptr %11, align 4, !tbaa !5
  %134 = mul i32 %132, %133
  %135 = icmp ult i32 %131, %134
  br i1 %135, label %137, label %136

136:                                              ; preds = %130
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #12
  br label %150

137:                                              ; preds = %130
  %138 = load ptr, ptr %19, align 8, !tbaa !9
  %139 = load i32, ptr %22, align 4, !tbaa !5
  %140 = sext i32 %139 to i64
  %141 = getelementptr inbounds float, ptr %138, i64 %140
  %142 = load float, ptr %141, align 4, !tbaa !11
  %143 = load ptr, ptr %20, align 8, !tbaa !9
  %144 = load i32, ptr %22, align 4, !tbaa !5
  %145 = sext i32 %144 to i64
  %146 = getelementptr inbounds float, ptr %143, i64 %145
  store float %142, ptr %146, align 4, !tbaa !11
  br label %147

147:                                              ; preds = %137
  %148 = load i32, ptr %22, align 4, !tbaa !5
  %149 = add nsw i32 %148, 1
  store i32 %149, ptr %22, align 4, !tbaa !5
  br label %130, !llvm.loop !29

150:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #12
  %151 = load i32, ptr %10, align 4, !tbaa !5
  %152 = load i32, ptr %11, align 4, !tbaa !5
  %153 = mul i32 %151, %152
  %154 = zext i32 %153 to i64
  %155 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %154, i64 4)
  %156 = extractvalue { i64, i1 } %155, 1
  %157 = extractvalue { i64, i1 } %155, 0
  %158 = select i1 %156, i64 -1, i64 %157
  %159 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %158) #13
          to label %160 unwind label %203

160:                                              ; preds = %150
  store ptr %159, ptr %23, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #12
  %161 = load i32, ptr %10, align 4, !tbaa !5
  %162 = load i32, ptr %11, align 4, !tbaa !5
  %163 = mul i32 %161, %162
  %164 = zext i32 %163 to i64
  %165 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %164, i64 4)
  %166 = extractvalue { i64, i1 } %165, 1
  %167 = extractvalue { i64, i1 } %165, 0
  %168 = select i1 %166, i64 -1, i64 %167
  %169 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %168) #13
          to label %170 unwind label %207

170:                                              ; preds = %160
  store ptr %169, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #12
  store i32 0, ptr %25, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #12
  %171 = load ptr, ptr %18, align 8, !tbaa !9
  %172 = load i32, ptr %10, align 4, !tbaa !5
  %173 = load i32, ptr %12, align 4, !tbaa !5
  %174 = invoke noundef ptr @_Z24generateMinorIDFromDensePfjjRi15GENERATION_TYPE(ptr noundef %171, i32 noundef %172, i32 noundef %173, ptr noundef nonnull align 4 dereferenceable(4) %25, i32 noundef 0)
          to label %175 unwind label %211

175:                                              ; preds = %170
  store ptr %174, ptr %26, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #12
  %176 = load ptr, ptr %18, align 8, !tbaa !9
  %177 = load i32, ptr %10, align 4, !tbaa !5
  %178 = load i32, ptr %12, align 4, !tbaa !5
  %179 = invoke noundef ptr @_Z29generateMajorPointerFromDensePfjj15GENERATION_TYPE(ptr noundef %176, i32 noundef %177, i32 noundef %178, i32 noundef 0)
          to label %180 unwind label %215

180:                                              ; preds = %175
  store ptr %179, ptr %27, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #12
  %181 = load ptr, ptr %18, align 8, !tbaa !9
  %182 = load i32, ptr %10, align 4, !tbaa !5
  %183 = load i32, ptr %12, align 4, !tbaa !5
  %184 = invoke noundef ptr @_Z37generateMatrixSparseFromDenseNoBitmapPfjj15GENERATION_TYPE(ptr noundef %181, i32 noundef %182, i32 noundef %183, i32 noundef 0)
          to label %185 unwind label %219

185:                                              ; preds = %180
  store ptr %184, ptr %28, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #12
  %186 = load i32, ptr %10, align 4, !tbaa !5
  %187 = load i32, ptr %11, align 4, !tbaa !5
  %188 = mul i32 %186, %187
  %189 = zext i32 %188 to i64
  %190 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %189, i64 4)
  %191 = extractvalue { i64, i1 } %190, 1
  %192 = extractvalue { i64, i1 } %190, 0
  %193 = select i1 %191, i64 -1, i64 %192
  %194 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %193) #13
          to label %195 unwind label %223

195:                                              ; preds = %185
  store ptr %194, ptr %29, align 8, !tbaa !9
  %196 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.46)
          to label %197 unwind label %223

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

198:                                              ; preds = %257, %197
  %199 = load i32, ptr %30, align 4, !tbaa !5
  %200 = load i32, ptr %12, align 4, !tbaa !5
  %201 = icmp ult i32 %199, %200
  br i1 %201, label %227, label %202

202:                                              ; preds = %198
  store i32 8, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #12
  br label %265

203:                                              ; preds = %150
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %8, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %9, align 4
  br label %792

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

211:                                              ; preds = %170
  %212 = landingpad { ptr, i32 }
          cleanup
  %213 = extractvalue { ptr, i32 } %212, 0
  store ptr %213, ptr %8, align 8
  %214 = extractvalue { ptr, i32 } %212, 1
  store i32 %214, ptr %9, align 4
  br label %790

215:                                              ; preds = %175
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %8, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %9, align 4
  br label %789

219:                                              ; preds = %180
  %220 = landingpad { ptr, i32 }
          cleanup
  %221 = extractvalue { ptr, i32 } %220, 0
  store ptr %221, ptr %8, align 8
  %222 = extractvalue { ptr, i32 } %220, 1
  store i32 %222, ptr %9, align 4
  br label %788

223:                                              ; preds = %388, %363, %338, %313, %267, %265, %195, %185
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %8, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %9, align 4
  br label %787

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

228:                                              ; preds = %247, %227
  %229 = load i32, ptr %32, align 4, !tbaa !5
  %230 = load i32, ptr %11, align 4, !tbaa !5
  %231 = icmp ult i32 %229, %230
  br i1 %231, label %233, label %232

232:                                              ; preds = %228
  store i32 11, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #12
  br label %254

233:                                              ; preds = %228
  %234 = load ptr, ptr %20, align 8, !tbaa !9
  %235 = load i32, ptr %30, align 4, !tbaa !5
  %236 = load i32, ptr %11, align 4, !tbaa !5
  %237 = mul i32 %235, %236
  %238 = load i32, ptr %32, align 4, !tbaa !5
  %239 = add i32 %237, %238
  %240 = zext i32 %239 to i64
  %241 = getelementptr inbounds float, ptr %234, i64 %240
  %242 = load float, ptr %241, align 4, !tbaa !11
  %243 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %242)
          to label %244 unwind label %250

244:                                              ; preds = %233
  %245 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %243, ptr noundef @.str.21)
          to label %246 unwind label %250

246:                                              ; preds = %244
  br label %247

247:                                              ; preds = %246
  %248 = load i32, ptr %32, align 4, !tbaa !5
  %249 = add nsw i32 %248, 1
  store i32 %249, ptr %32, align 4, !tbaa !5
  br label %228, !llvm.loop !30

250:                                              ; preds = %244, %233
  %251 = landingpad { ptr, i32 }
          cleanup
  %252 = extractvalue { ptr, i32 } %251, 0
  store ptr %252, ptr %8, align 8
  %253 = extractvalue { ptr, i32 } %251, 1
  store i32 %253, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #12
  br label %264

254:                                              ; preds = %232
  %255 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.24)
          to label %256 unwind label %260

256:                                              ; preds = %254
  br label %257

257:                                              ; preds = %256
  %258 = load i32, ptr %30, align 4, !tbaa !5
  %259 = add nsw i32 %258, 1
  store i32 %259, ptr %30, align 4, !tbaa !5
  br label %198, !llvm.loop !31

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

264:                                              ; preds = %260, %250
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #12
  br label %787

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

267:                                              ; preds = %265
  %268 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.47)
          to label %269 unwind label %223

269:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #12
  store i32 0, ptr %33, align 4, !tbaa !5
  br label %270

270:                                              ; preds = %305, %269
  %271 = load i32, ptr %33, align 4, !tbaa !5
  %272 = load i32, ptr %10, align 4, !tbaa !5
  %273 = icmp ult i32 %271, %272
  br i1 %273, label %275, label %274

274:                                              ; preds = %270
  store i32 14, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #12
  br label %313

275:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #12
  store i32 0, ptr %34, align 4, !tbaa !5
  br label %276

276:                                              ; preds = %295, %275
  %277 = load i32, ptr %34, align 4, !tbaa !5
  %278 = load i32, ptr %12, align 4, !tbaa !5
  %279 = icmp ult i32 %277, %278
  br i1 %279, label %281, label %280

280:                                              ; preds = %276
  store i32 17, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #12
  br label %302

281:                                              ; preds = %276
  %282 = load ptr, ptr %18, align 8, !tbaa !9
  %283 = load i32, ptr %33, align 4, !tbaa !5
  %284 = load i32, ptr %12, align 4, !tbaa !5
  %285 = mul i32 %283, %284
  %286 = load i32, ptr %34, align 4, !tbaa !5
  %287 = add i32 %285, %286
  %288 = zext i32 %287 to i64
  %289 = getelementptr inbounds float, ptr %282, i64 %288
  %290 = load float, ptr %289, align 4, !tbaa !11
  %291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %290)
          to label %292 unwind label %298

292:                                              ; preds = %281
  %293 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef @.str.21)
          to label %294 unwind label %298

294:                                              ; preds = %292
  br label %295

295:                                              ; preds = %294
  %296 = load i32, ptr %34, align 4, !tbaa !5
  %297 = add nsw i32 %296, 1
  store i32 %297, ptr %34, align 4, !tbaa !5
  br label %276, !llvm.loop !32

298:                                              ; preds = %292, %281
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %8, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #12
  br label %312

302:                                              ; preds = %280
  %303 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.24)
          to label %304 unwind label %308

304:                                              ; preds = %302
  br label %305

305:                                              ; preds = %304
  %306 = load i32, ptr %33, align 4, !tbaa !5
  %307 = add nsw i32 %306, 1
  store i32 %307, ptr %33, align 4, !tbaa !5
  br label %270, !llvm.loop !33

308:                                              ; preds = %302
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %8, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %9, align 4
  br label %312

312:                                              ; preds = %308, %298
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #12
  br label %787

313:                                              ; preds = %274
  %314 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.48)
          to label %315 unwind label %223

315:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #12
  store i32 0, ptr %35, align 4, !tbaa !5
  br label %316

316:                                              ; preds = %331, %315
  %317 = load i32, ptr %35, align 4, !tbaa !5
  %318 = load i32, ptr %25, align 4, !tbaa !5
  %319 = icmp slt i32 %317, %318
  br i1 %319, label %321, label %320

320:                                              ; preds = %316
  store i32 20, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #12
  br label %338

321:                                              ; preds = %316
  %322 = load ptr, ptr %28, align 8, !tbaa !9
  %323 = load i32, ptr %35, align 4, !tbaa !5
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds float, ptr %322, i64 %324
  %326 = load float, ptr %325, align 4, !tbaa !11
  %327 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %326)
          to label %328 unwind label %334

328:                                              ; preds = %321
  %329 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %327, ptr noundef @.str.21)
          to label %330 unwind label %334

330:                                              ; preds = %328
  br label %331

331:                                              ; preds = %330
  %332 = load i32, ptr %35, align 4, !tbaa !5
  %333 = add nsw i32 %332, 1
  store i32 %333, ptr %35, align 4, !tbaa !5
  br label %316, !llvm.loop !34

334:                                              ; preds = %328, %321
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %8, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #12
  br label %787

338:                                              ; preds = %320
  %339 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.49)
          to label %340 unwind label %223

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

341:                                              ; preds = %356, %340
  %342 = load i32, ptr %36, align 4, !tbaa !5
  %343 = load i32, ptr %25, align 4, !tbaa !5
  %344 = icmp slt i32 %342, %343
  br i1 %344, label %346, label %345

345:                                              ; preds = %341
  store i32 23, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #12
  br label %363

346:                                              ; preds = %341
  %347 = load ptr, ptr %26, align 8, !tbaa !9
  %348 = load i32, ptr %36, align 4, !tbaa !5
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds i32, ptr %347, i64 %349
  %351 = load i32, ptr %350, align 4, !tbaa !5
  %352 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %351)
          to label %353 unwind label %359

353:                                              ; preds = %346
  %354 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %352, ptr noundef @.str.21)
          to label %355 unwind label %359

355:                                              ; preds = %353
  br label %356

356:                                              ; preds = %355
  %357 = load i32, ptr %36, align 4, !tbaa !5
  %358 = add nsw i32 %357, 1
  store i32 %358, ptr %36, align 4, !tbaa !5
  br label %341, !llvm.loop !35

359:                                              ; preds = %353, %346
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %8, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #12
  br label %787

363:                                              ; preds = %345
  %364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.50)
          to label %365 unwind label %223

365:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #12
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %366

366:                                              ; preds = %381, %365
  %367 = load i32, ptr %37, align 4, !tbaa !5
  %368 = load i32, ptr %10, align 4, !tbaa !5
  %369 = icmp ule i32 %367, %368
  br i1 %369, label %371, label %370

370:                                              ; preds = %366
  store i32 26, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #12
  br label %388

371:                                              ; preds = %366
  %372 = load ptr, ptr %27, align 8, !tbaa !9
  %373 = load i32, ptr %37, align 4, !tbaa !5
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds i32, ptr %372, i64 %374
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %376)
          to label %378 unwind label %384

378:                                              ; preds = %371
  %379 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %377, ptr noundef @.str.21)
          to label %380 unwind label %384

380:                                              ; preds = %378
  br label %381

381:                                              ; preds = %380
  %382 = load i32, ptr %37, align 4, !tbaa !5
  %383 = add nsw i32 %382, 1
  store i32 %383, ptr %37, align 4, !tbaa !5
  br label %366, !llvm.loop !36

384:                                              ; preds = %378, %371
  %385 = landingpad { ptr, i32 }
          cleanup
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %8, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #12
  br label %787

388:                                              ; preds = %370
  %389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.51)
          to label %390 unwind label %223

390:                                              ; preds = %388
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #12
  %391 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 320) #13
          to label %392 unwind label %421

392:                                              ; preds = %390
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %39, ptr align 4 %16, i64 160, i1 false), !tbaa.struct !37
  invoke void @_ZN6StonneC1E6Config(ptr noundef nonnull align 8 dereferenceable(316) %391, ptr noundef byval(%class.Config) align 8 %39)
          to label %393 unwind label %425

393:                                              ; preds = %392
  store ptr %391, ptr %38, align 8, !tbaa !9
  %394 = load ptr, ptr %38, align 8, !tbaa !9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %395 unwind label %421

395:                                              ; preds = %393
  %396 = load i32, ptr %11, align 4, !tbaa !5
  %397 = load i32, ptr %12, align 4, !tbaa !5
  %398 = load i32, ptr %10, align 4, !tbaa !5
  %399 = load ptr, ptr %28, align 8, !tbaa !9
  %400 = load ptr, ptr %20, align 8, !tbaa !9
  %401 = load ptr, ptr %26, align 8, !tbaa !9
  %402 = load ptr, ptr %27, align 8, !tbaa !9
  %403 = load ptr, ptr %24, align 8, !tbaa !9
  %404 = load i32, ptr %14, align 4, !tbaa !5
  %405 = load i32, ptr %15, align 4, !tbaa !5
  invoke void @_ZN6Stonne15loadSparseDenseENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjjjPfS6_PjS7_S6_jj(ptr noundef nonnull align 8 dereferenceable(316) %394, ptr noundef %40, i32 noundef %396, i32 noundef %397, i32 noundef %398, ptr noundef %399, ptr noundef %400, ptr noundef %401, ptr noundef %402, ptr noundef %403, i32 noundef %404, i32 noundef %405)
          to label %406 unwind label %429

406:                                              ; preds = %395
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #12
  %407 = load ptr, ptr %38, align 8, !tbaa !9
  %408 = load ptr, ptr %29, align 8, !tbaa !9
  invoke void @_ZN6Stonne12loadClockingEPj(ptr noundef nonnull align 8 dereferenceable(316) %407, ptr noundef %408)
          to label %409 unwind label %421

409:                                              ; preds = %406
  %410 = load ptr, ptr %38, align 8, !tbaa !9
  invoke void @_ZN6Stonne3runEv(ptr noundef nonnull align 8 dereferenceable(316) %410)
          to label %411 unwind label %421

411:                                              ; preds = %409
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #12
  %412 = load i32, ptr %11, align 4, !tbaa !5
  %413 = sub i32 %412, 1
  store i32 %413, ptr %41, align 4, !tbaa !5
  br label %414

414:                                              ; preds = %443, %411
  %415 = load i32, ptr %41, align 4, !tbaa !5
  %416 = load i32, ptr %10, align 4, !tbaa !5
  %417 = load i32, ptr %11, align 4, !tbaa !5
  %418 = mul i32 %416, %417
  %419 = icmp ult i32 %415, %418
  br i1 %419, label %433, label %420

420:                                              ; preds = %414
  store i32 29, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #12
  br label %451

421:                                              ; preds = %409, %406, %393, %390
  %422 = landingpad { ptr, i32 }
          cleanup
  %423 = extractvalue { ptr, i32 } %422, 0
  store ptr %423, ptr %8, align 8
  %424 = extractvalue { ptr, i32 } %422, 1
  store i32 %424, ptr %9, align 4
  br label %786

425:                                              ; preds = %392
  %426 = landingpad { ptr, i32 }
          cleanup
  %427 = extractvalue { ptr, i32 } %426, 0
  store ptr %427, ptr %8, align 8
  %428 = extractvalue { ptr, i32 } %426, 1
  store i32 %428, ptr %9, align 4
  call void @_ZdlPvm(ptr noundef %391, i64 noundef 320) #14
  br label %786

429:                                              ; preds = %395
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %8, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #12
  br label %786

433:                                              ; preds = %414
  %434 = load ptr, ptr %29, align 8, !tbaa !9
  %435 = load i32, ptr %41, align 4, !tbaa !5
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds i32, ptr %434, i64 %436
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %438)
          to label %440 unwind label %447

440:                                              ; preds = %433
  %441 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %439, ptr noundef @.str.21)
          to label %442 unwind label %447

442:                                              ; preds = %440
  br label %443

443:                                              ; preds = %442
  %444 = load i32, ptr %11, align 4, !tbaa !5
  %445 = load i32, ptr %41, align 4, !tbaa !5
  %446 = add i32 %445, %444
  store i32 %446, ptr %41, align 4, !tbaa !5
  br label %414, !llvm.loop !42

447:                                              ; preds = %440, %433
  %448 = landingpad { ptr, i32 }
          cleanup
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %8, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #12
  br label %786

451:                                              ; preds = %420
  call void @llvm.lifetime.start.p0(i64 40, ptr %42) #12
  %452 = load ptr, ptr %38, align 8, !tbaa !9
  invoke void @_ZN6Stonne25getMultiplierNetworkStatsEv(ptr dead_on_unwind writable sret(%class.MSNetworkStats) align 8 %42, ptr noundef nonnull align 8 dereferenceable(316) %452)
          to label %453 unwind label %588

453:                                              ; preds = %451
  %454 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.22)
          to label %455 unwind label %588

455:                                              ; preds = %453
  %456 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.23)
          to label %457 unwind label %588

457:                                              ; preds = %455
  %458 = getelementptr inbounds %class.MSNetworkStats, ptr %42, i32 0, i32 3
  %459 = load i32, ptr %458, align 8, !tbaa !43
  %460 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %456, i32 noundef %459)
          to label %461 unwind label %588

461:                                              ; preds = %457
  %462 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %460, ptr noundef @.str.24)
          to label %463 unwind label %588

463:                                              ; preds = %461
  %464 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.25)
          to label %465 unwind label %588

465:                                              ; preds = %463
  %466 = getelementptr inbounds %class.MSNetworkStats, ptr %42, i32 0, i32 4
  %467 = load i32, ptr %466, align 4, !tbaa !46
  %468 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %464, i32 noundef %467)
          to label %469 unwind label %588

469:                                              ; preds = %465
  %470 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %468, ptr noundef @.str.24)
          to label %471 unwind label %588

471:                                              ; preds = %469
  %472 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.26)
          to label %473 unwind label %588

473:                                              ; preds = %471
  %474 = getelementptr inbounds %class.MSNetworkStats, ptr %42, i32 0, i32 5
  %475 = load i32, ptr %474, align 8, !tbaa !47
  %476 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %472, i32 noundef %475)
          to label %477 unwind label %588

477:                                              ; preds = %473
  %478 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %476, ptr noundef @.str.24)
          to label %479 unwind label %588

479:                                              ; preds = %477
  %480 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.27)
          to label %481 unwind label %588

481:                                              ; preds = %479
  %482 = getelementptr inbounds %class.MSNetworkStats, ptr %42, i32 0, i32 6
  %483 = load i32, ptr %482, align 4, !tbaa !48
  %484 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %480, i32 noundef %483)
          to label %485 unwind label %588

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

487:                                              ; preds = %485
  %488 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.28)
          to label %489 unwind label %588

489:                                              ; preds = %487
  %490 = getelementptr inbounds %class.MSNetworkStats, ptr %42, i32 0, i32 7
  %491 = load i32, ptr %490, align 8, !tbaa !49
  %492 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %488, i32 noundef %491)
          to label %493 unwind label %588

493:                                              ; preds = %489
  %494 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %492, ptr noundef @.str.24)
          to label %495 unwind label %588

495:                                              ; preds = %493
  %496 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.29)
          to label %497 unwind label %588

497:                                              ; preds = %495
  %498 = getelementptr inbounds %class.MSNetworkStats, ptr %42, i32 0, i32 8
  %499 = load i32, ptr %498, align 4, !tbaa !50
  %500 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %496, i32 noundef %499)
          to label %501 unwind label %588

501:                                              ; preds = %497
  %502 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %500, ptr noundef @.str.24)
          to label %503 unwind label %588

503:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 40, ptr %43) #12
  %504 = load ptr, ptr %38, align 8, !tbaa !9
  invoke void @_ZN6Stonne17getASNetworkStatsEv(ptr dead_on_unwind writable sret(%class.ASNetworkStats) align 8 %43, ptr noundef nonnull align 8 dereferenceable(316) %504)
          to label %505 unwind label %592

505:                                              ; preds = %503
  %506 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.30)
          to label %507 unwind label %592

507:                                              ; preds = %505
  %508 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.31)
          to label %509 unwind label %592

509:                                              ; preds = %507
  %510 = getelementptr inbounds %class.ASNetworkStats, ptr %43, i32 0, i32 6
  %511 = load i32, ptr %510, align 4, !tbaa !51
  %512 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %508, i32 noundef %511)
          to label %513 unwind label %592

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

515:                                              ; preds = %513
  %516 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.32)
          to label %517 unwind label %592

517:                                              ; preds = %515
  %518 = getelementptr inbounds %class.ASNetworkStats, ptr %43, i32 0, i32 5
  %519 = load i32, ptr %518, align 8, !tbaa !53
  %520 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %516, i32 noundef %519)
          to label %521 unwind label %592

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

523:                                              ; preds = %521
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #12
  %524 = load ptr, ptr %38, align 8, !tbaa !9
  invoke void @_ZN6Stonne17getDSNetworkStatsEv(ptr dead_on_unwind writable sret(%class.DSNetworkStats) align 8 %44, ptr noundef nonnull align 8 dereferenceable(316) %524)
          to label %525 unwind label %596

525:                                              ; preds = %523
  %526 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.33)
          to label %527 unwind label %596

527:                                              ; preds = %525
  %528 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.31)
          to label %529 unwind label %596

529:                                              ; preds = %527
  %530 = getelementptr inbounds %class.DSNetworkStats, ptr %44, i32 0, i32 5
  %531 = load i32, ptr %530, align 8, !tbaa !54
  %532 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %528, i32 noundef %531)
          to label %533 unwind label %596

533:                                              ; preds = %529
  %534 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %532, ptr noundef @.str.24)
          to label %535 unwind label %596

535:                                              ; preds = %533
  call void @llvm.lifetime.start.p0(i64 152, ptr %45) #12
  %536 = load ptr, ptr %38, align 8, !tbaa !9
  invoke void @_ZN6Stonne14getMemoryStatsEv(ptr dead_on_unwind writable sret(%class.SDMemoryStats) align 8 %45, ptr noundef nonnull align 8 dereferenceable(316) %536)
          to label %537 unwind label %600

537:                                              ; preds = %535
  %538 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.34)
          to label %539 unwind label %604

539:                                              ; preds = %537
  %540 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.35)
          to label %541 unwind label %604

541:                                              ; preds = %539
  %542 = getelementptr inbounds %class.SDMemoryStats, ptr %45, i32 0, i32 2
  %543 = load i32, ptr %542, align 4, !tbaa !56
  %544 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %540, i32 noundef %543)
          to label %545 unwind label %604

545:                                              ; preds = %541
  %546 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %544, ptr noundef @.str.24)
          to label %547 unwind label %604

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

549:                                              ; preds = %547
  %550 = getelementptr inbounds %class.SDMemoryStats, ptr %45, i32 0, i32 3
  %551 = load i32, ptr %550, align 8, !tbaa !63
  %552 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %548, i32 noundef %551)
          to label %553 unwind label %604

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

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 @.str.37)
          to label %557 unwind label %604

557:                                              ; preds = %555
  %558 = getelementptr inbounds %class.SDMemoryStats, ptr %45, i32 0, i32 4
  %559 = load i32, ptr %558, align 4, !tbaa !64
  %560 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %556, i32 noundef %559)
          to label %561 unwind label %604

561:                                              ; preds = %557
  %562 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %560, ptr noundef @.str.24)
          to label %563 unwind label %604

563:                                              ; preds = %561
  %564 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.38)
          to label %565 unwind label %604

565:                                              ; preds = %563
  %566 = getelementptr inbounds %class.SDMemoryStats, ptr %45, i32 0, i32 5
  %567 = load i32, ptr %566, align 8, !tbaa !65
  %568 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %564, i32 noundef %567)
          to label %569 unwind label %604

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

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

573:                                              ; preds = %571
  %574 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %572, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %575 unwind label %604

575:                                              ; preds = %573
  %576 = load ptr, ptr %17, align 8, !tbaa !9
  %577 = load ptr, ptr %19, align 8, !tbaa !9
  %578 = load ptr, ptr %23, align 8, !tbaa !9
  %579 = load i32, ptr %10, align 4, !tbaa !5
  %580 = load i32, ptr %11, align 4, !tbaa !5
  %581 = load i32, ptr %12, align 4, !tbaa !5
  invoke void @_Z8cpu_gemmPfS_S_jjj(ptr noundef %576, ptr noundef %577, ptr noundef %578, i32 noundef %579, i32 noundef %580, i32 noundef %581)
          to label %582 unwind label %604

582:                                              ; preds = %575
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #12
  store i32 0, ptr %46, align 4, !tbaa !5
  br label %583

583:                                              ; preds = %731, %582
  %584 = load i32, ptr %46, align 4, !tbaa !5
  %585 = load i32, ptr %10, align 4, !tbaa !5
  %586 = icmp ult i32 %584, %585
  br i1 %586, label %608, label %587

587:                                              ; preds = %583
  store i32 32, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #12
  br label %734

588:                                              ; preds = %501, %497, %495, %493, %489, %487, %485, %481, %479, %477, %473, %471, %469, %465, %463, %461, %457, %455, %453, %451
  %589 = landingpad { ptr, i32 }
          cleanup
  %590 = extractvalue { ptr, i32 } %589, 0
  store ptr %590, ptr %8, align 8
  %591 = extractvalue { ptr, i32 } %589, 1
  store i32 %591, ptr %9, align 4
  br label %785

592:                                              ; preds = %521, %517, %515, %513, %509, %507, %505, %503
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %8, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %9, align 4
  br label %784

596:                                              ; preds = %533, %529, %527, %525, %523
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %8, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %9, align 4
  br label %783

600:                                              ; preds = %535
  %601 = landingpad { ptr, i32 }
          cleanup
  %602 = extractvalue { ptr, i32 } %601, 0
  store ptr %602, ptr %8, align 8
  %603 = extractvalue { ptr, i32 } %601, 1
  store i32 %603, ptr %9, align 4
  br label %782

604:                                              ; preds = %738, %736, %734, %575, %573, %571, %569, %565, %563, %561, %557, %555, %553, %549, %547, %545, %541, %539, %537
  %605 = landingpad { ptr, i32 }
          cleanup
  %606 = extractvalue { ptr, i32 } %605, 0
  store ptr %606, ptr %8, align 8
  %607 = extractvalue { ptr, i32 } %605, 1
  store i32 %607, ptr %9, align 4
  br label %781

608:                                              ; preds = %583
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #12
  store i32 0, ptr %47, align 4, !tbaa !5
  br label %609

609:                                              ; preds = %727, %608
  %610 = load i32, ptr %47, align 4, !tbaa !5
  %611 = load i32, ptr %11, align 4, !tbaa !5
  %612 = icmp ult i32 %610, %611
  br i1 %612, label %614, label %613

613:                                              ; preds = %609
  store i32 35, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #12
  br label %730

614:                                              ; preds = %609
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #12
  %615 = load ptr, ptr %23, align 8, !tbaa !9
  %616 = load i32, ptr %46, align 4, !tbaa !5
  %617 = load i32, ptr %11, align 4, !tbaa !5
  %618 = mul i32 %616, %617
  %619 = load i32, ptr %47, align 4, !tbaa !5
  %620 = add i32 %618, %619
  %621 = zext i32 %620 to i64
  %622 = getelementptr inbounds float, ptr %615, i64 %621
  %623 = load float, ptr %622, align 4, !tbaa !11
  %624 = load ptr, ptr %24, align 8, !tbaa !9
  %625 = load i32, ptr %46, align 4, !tbaa !5
  %626 = load i32, ptr %11, align 4, !tbaa !5
  %627 = mul i32 %625, %626
  %628 = load i32, ptr %47, align 4, !tbaa !5
  %629 = add i32 %627, %628
  %630 = zext i32 %629 to i64
  %631 = getelementptr inbounds float, ptr %624, i64 %630
  %632 = load float, ptr %631, align 4, !tbaa !11
  %633 = fsub float %623, %632
  %634 = invoke noundef float @_ZSt4fabsf(float noundef %633)
          to label %635 unwind label %722

635:                                              ; preds = %614
  store float %634, ptr %48, align 4, !tbaa !11
  %636 = load float, ptr %48, align 4, !tbaa !11
  %637 = load float, ptr %5, align 4, !tbaa !11
  %638 = fcmp ogt float %636, %637
  br i1 %638, label %639, label %726

639:                                              ; preds = %635
  %640 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.41)
          to label %641 unwind label %722

641:                                              ; preds = %639
  %642 = load i32, ptr %46, align 4, !tbaa !5
  %643 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %640, i32 noundef %642)
          to label %644 unwind label %722

644:                                              ; preds = %641
  %645 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %643, ptr noundef @.str.42)
          to label %646 unwind label %722

646:                                              ; preds = %644
  %647 = load i32, ptr %47, align 4, !tbaa !5
  %648 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %645, i32 noundef %647)
          to label %649 unwind label %722

649:                                              ; preds = %646
  %650 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %648, ptr noundef @.str.43)
          to label %651 unwind label %722

651:                                              ; preds = %649
  %652 = load ptr, ptr %24, align 8, !tbaa !9
  %653 = load i32, ptr %46, align 4, !tbaa !5
  %654 = load i32, ptr %11, align 4, !tbaa !5
  %655 = mul i32 %653, %654
  %656 = load i32, ptr %47, align 4, !tbaa !5
  %657 = add i32 %655, %656
  %658 = zext i32 %657 to i64
  %659 = getelementptr inbounds float, ptr %652, i64 %658
  %660 = load float, ptr %659, align 4, !tbaa !11
  %661 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %650, float noundef %660)
          to label %662 unwind label %722

662:                                              ; preds = %651
  %663 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %661, ptr noundef @.str.44)
          to label %664 unwind label %722

664:                                              ; preds = %662
  %665 = load ptr, ptr %23, align 8, !tbaa !9
  %666 = load i32, ptr %46, align 4, !tbaa !5
  %667 = load i32, ptr %11, align 4, !tbaa !5
  %668 = mul i32 %666, %667
  %669 = load i32, ptr %47, align 4, !tbaa !5
  %670 = add i32 %668, %669
  %671 = zext i32 %670 to i64
  %672 = getelementptr inbounds float, ptr %665, i64 %671
  %673 = load float, ptr %672, align 4, !tbaa !11
  %674 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %663, float noundef %673)
          to label %675 unwind label %722

675:                                              ; preds = %664
  %676 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %674, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %677 unwind label %722

677:                                              ; preds = %675
  %678 = 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 %679 unwind label %722

679:                                              ; preds = %677
  %680 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %678, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %681 unwind label %722

681:                                              ; preds = %679
  %682 = load ptr, ptr %18, align 8, !tbaa !9
  %683 = icmp eq ptr %682, null
  br i1 %683, label %685, label %684

684:                                              ; preds = %681
  call void @_ZdaPv(ptr noundef %682) #14
  br label %685

685:                                              ; preds = %684, %681
  %686 = load ptr, ptr %20, align 8, !tbaa !9
  %687 = icmp eq ptr %686, null
  br i1 %687, label %689, label %688

688:                                              ; preds = %685
  call void @_ZdaPv(ptr noundef %686) #14
  br label %689

689:                                              ; preds = %688, %685
  %690 = load ptr, ptr %17, align 8, !tbaa !9
  %691 = icmp eq ptr %690, null
  br i1 %691, label %693, label %692

692:                                              ; preds = %689
  call void @_ZdaPv(ptr noundef %690) #14
  br label %693

693:                                              ; preds = %692, %689
  %694 = load ptr, ptr %19, align 8, !tbaa !9
  %695 = icmp eq ptr %694, null
  br i1 %695, label %697, label %696

696:                                              ; preds = %693
  call void @_ZdaPv(ptr noundef %694) #14
  br label %697

697:                                              ; preds = %696, %693
  %698 = load ptr, ptr %26, align 8, !tbaa !9
  %699 = icmp eq ptr %698, null
  br i1 %699, label %701, label %700

700:                                              ; preds = %697
  call void @_ZdaPv(ptr noundef %698) #14
  br label %701

701:                                              ; preds = %700, %697
  %702 = load ptr, ptr %27, align 8, !tbaa !9
  %703 = icmp eq ptr %702, null
  br i1 %703, label %705, label %704

704:                                              ; preds = %701
  call void @_ZdaPv(ptr noundef %702) #14
  br label %705

705:                                              ; preds = %704, %701
  %706 = load ptr, ptr %28, align 8, !tbaa !9
  %707 = icmp eq ptr %706, null
  br i1 %707, label %709, label %708

708:                                              ; preds = %705
  call void @_ZdaPv(ptr noundef %706) #14
  br label %709

709:                                              ; preds = %708, %705
  %710 = load ptr, ptr %23, align 8, !tbaa !9
  %711 = icmp eq ptr %710, null
  br i1 %711, label %713, label %712

712:                                              ; preds = %709
  call void @_ZdaPv(ptr noundef %710) #14
  br label %713

713:                                              ; preds = %712, %709
  %714 = load ptr, ptr %24, align 8, !tbaa !9
  %715 = icmp eq ptr %714, null
  br i1 %715, label %717, label %716

716:                                              ; preds = %713
  call void @_ZdaPv(ptr noundef %714) #14
  br label %717

717:                                              ; preds = %716, %713
  %718 = load ptr, ptr %38, align 8, !tbaa !9
  %719 = icmp eq ptr %718, null
  br i1 %719, label %721, label %720

720:                                              ; preds = %717
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %718) #12
  call void @_ZdlPvm(ptr noundef %718, i64 noundef 320) #14
  br label %721

721:                                              ; preds = %720, %717
  call void @__assert_fail(ptr noundef @.str.15, ptr noundef @.str.16, i32 noundef 629, ptr noundef @__PRETTY_FUNCTION__._Z21runSparseDenseCommandiPPc) #15
  unreachable

722:                                              ; preds = %679, %677, %675, %664, %662, %651, %649, %646, %644, %641, %639, %614
  %723 = landingpad { ptr, i32 }
          cleanup
  %724 = extractvalue { ptr, i32 } %723, 0
  store ptr %724, ptr %8, align 8
  %725 = extractvalue { ptr, i32 } %723, 1
  store i32 %725, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #12
  br label %781

726:                                              ; preds = %635
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #12
  br label %727

727:                                              ; preds = %726
  %728 = load i32, ptr %47, align 4, !tbaa !5
  %729 = add nsw i32 %728, 1
  store i32 %729, ptr %47, align 4, !tbaa !5
  br label %609, !llvm.loop !66

730:                                              ; preds = %613
  br label %731

731:                                              ; preds = %730
  %732 = load i32, ptr %46, align 4, !tbaa !5
  %733 = add nsw i32 %732, 1
  store i32 %733, ptr %46, align 4, !tbaa !5
  br label %583, !llvm.loop !67

734:                                              ; preds = %587
  %735 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.17)
          to label %736 unwind label %604

736:                                              ; preds = %734
  %737 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %735, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %738 unwind label %604

738:                                              ; preds = %736
  %739 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %737, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %740 unwind label %604

740:                                              ; preds = %738
  %741 = load ptr, ptr %17, align 8, !tbaa !9
  %742 = icmp eq ptr %741, null
  br i1 %742, label %744, label %743

743:                                              ; preds = %740
  call void @_ZdaPv(ptr noundef %741) #14
  br label %744

744:                                              ; preds = %743, %740
  %745 = load ptr, ptr %19, align 8, !tbaa !9
  %746 = icmp eq ptr %745, null
  br i1 %746, label %748, label %747

747:                                              ; preds = %744
  call void @_ZdaPv(ptr noundef %745) #14
  br label %748

748:                                              ; preds = %747, %744
  %749 = load ptr, ptr %18, align 8, !tbaa !9
  %750 = icmp eq ptr %749, null
  br i1 %750, label %752, label %751

751:                                              ; preds = %748
  call void @_ZdaPv(ptr noundef %749) #14
  br label %752

752:                                              ; preds = %751, %748
  %753 = load ptr, ptr %20, align 8, !tbaa !9
  %754 = icmp eq ptr %753, null
  br i1 %754, label %756, label %755

755:                                              ; preds = %752
  call void @_ZdaPv(ptr noundef %753) #14
  br label %756

756:                                              ; preds = %755, %752
  %757 = load ptr, ptr %26, align 8, !tbaa !9
  %758 = icmp eq ptr %757, null
  br i1 %758, label %760, label %759

759:                                              ; preds = %756
  call void @_ZdaPv(ptr noundef %757) #14
  br label %760

760:                                              ; preds = %759, %756
  %761 = load ptr, ptr %27, align 8, !tbaa !9
  %762 = icmp eq ptr %761, null
  br i1 %762, label %764, label %763

763:                                              ; preds = %760
  call void @_ZdaPv(ptr noundef %761) #14
  br label %764

764:                                              ; preds = %763, %760
  %765 = load ptr, ptr %28, align 8, !tbaa !9
  %766 = icmp eq ptr %765, null
  br i1 %766, label %768, label %767

767:                                              ; preds = %764
  call void @_ZdaPv(ptr noundef %765) #14
  br label %768

768:                                              ; preds = %767, %764
  %769 = load ptr, ptr %23, align 8, !tbaa !9
  %770 = icmp eq ptr %769, null
  br i1 %770, label %772, label %771

771:                                              ; preds = %768
  call void @_ZdaPv(ptr noundef %769) #14
  br label %772

772:                                              ; preds = %771, %768
  %773 = load ptr, ptr %24, align 8, !tbaa !9
  %774 = icmp eq ptr %773, null
  br i1 %774, label %776, label %775

775:                                              ; preds = %772
  call void @_ZdaPv(ptr noundef %773) #14
  br label %776

776:                                              ; preds = %775, %772
  %777 = load ptr, ptr %38, align 8, !tbaa !9
  %778 = icmp eq ptr %777, null
  br i1 %778, label %780, label %779

779:                                              ; preds = %776
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %777) #12
  call void @_ZdlPvm(ptr noundef %777, i64 noundef 320) #14
  br label %780

780:                                              ; preds = %779, %776
  store i32 1, ptr %31, align 4
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %45) #12
  call void @llvm.lifetime.end.p0(i64 152, ptr %45) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %43) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %42) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #12
  call void @llvm.lifetime.end.p0(i64 160, ptr %16) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #12
  ret i1 true

781:                                              ; preds = %722, %604
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %45) #12
  br label %782

782:                                              ; preds = %781, %600
  call void @llvm.lifetime.end.p0(i64 152, ptr %45) #12
  br label %783

783:                                              ; preds = %782, %596
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #12
  br label %784

784:                                              ; preds = %783, %592
  call void @llvm.lifetime.end.p0(i64 40, ptr %43) #12
  br label %785

785:                                              ; preds = %784, %588
  call void @llvm.lifetime.end.p0(i64 40, ptr %42) #12
  br label %786

786:                                              ; preds = %785, %447, %429, %425, %421
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #12
  br label %787

787:                                              ; preds = %786, %384, %359, %334, %312, %264, %223
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #12
  br label %788

788:                                              ; preds = %787, %219
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #12
  br label %789

789:                                              ; preds = %788, %215
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #12
  br label %790

790:                                              ; preds = %789, %211
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #12
  br label %791

791:                                              ; preds = %790, %207
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #12
  br label %792

792:                                              ; preds = %791, %203
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #12
  br label %793

793:                                              ; preds = %792, %112
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #12
  br label %794

794:                                              ; preds = %793, %108
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #12
  br label %795

795:                                              ; preds = %794, %104
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #12
  br label %796

796:                                              ; preds = %795, %100
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #12
  br label %797

797:                                              ; preds = %796, %96
  call void @llvm.lifetime.end.p0(i64 160, ptr %16) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #12
  br label %798

798:                                              ; preds = %797, %92
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #12
  br label %799

799:                                              ; preds = %798
  %800 = load ptr, ptr %8, align 8
  %801 = load i32, ptr %9, align 4
  %802 = insertvalue { ptr, i32 } poison, ptr %800, 0
  %803 = insertvalue { ptr, i32 } %802, i32 %801, 1
  resume { ptr, i32 } %803
}

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

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #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) #8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare 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 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 nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!14, !25, i64 104}
!14 = !{!"_ZTS6Config", !6, i64 0, !15, i64 4, !16, i64 8, !17, i64 24, !19, i64 40, !20, i64 64, !22, i64 72, !23, i64 96, !24, i64 104}
!15 = !{!"_ZTS15DSNetworkConfig", !6, i64 0}
!16 = !{!"_ZTS13DSwitchConfig", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12}
!17 = !{!"_ZTS15MSNetworkConfig", !18, i64 0, !6, i64 4, !6, i64 8, !6, i64 12}
!18 = !{!"_ZTS19MultiplierNetwork_t", !7, i64 0}
!19 = !{!"_ZTS13MSwitchConfig", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20}
!20 = !{!"_ZTS15ASNetworkConfig", !21, i64 0, !6, i64 4}
!21 = !{!"_ZTS15ReduceNetwork_t", !7, i64 0}
!22 = !{!"_ZTS13ASwitchConfig", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20}
!23 = !{!"_ZTS17LookUpTableConfig", !6, i64 0, !6, i64 4}
!24 = !{!"_ZTS14SDMemoryConfig", !25, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !26, i64 28, !6, i64 32, !6, i64 36, !6, i64 40, !6, i64 44, !6, i64 48, !6, i64 52}
!25 = !{!"_ZTS18MemoryController_t", !7, i64 0}
!26 = !{!"_ZTS17MemoryHierarchy_t", !7, i64 0}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}
!29 = distinct !{!29, !28}
!30 = distinct !{!30, !28}
!31 = distinct !{!31, !28}
!32 = distinct !{!32, !28}
!33 = distinct !{!33, !28}
!34 = distinct !{!34, !28}
!35 = distinct !{!35, !28}
!36 = distinct !{!36, !28}
!37 = !{i64 0, i64 4, !5, i64 4, i64 4, !5, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 4, !5, i64 20, i64 4, !5, i64 24, i64 4, !38, i64 28, i64 4, !5, i64 32, i64 4, !5, i64 36, i64 4, !5, i64 40, i64 4, !5, i64 44, i64 4, !5, i64 48, i64 4, !5, i64 52, i64 4, !5, i64 56, i64 4, !5, i64 60, i64 4, !5, i64 64, i64 4, !39, i64 68, i64 4, !5, i64 72, i64 4, !5, i64 76, i64 4, !5, i64 80, i64 4, !5, i64 84, i64 4, !5, i64 88, i64 4, !5, i64 92, i64 4, !5, i64 96, i64 4, !5, i64 100, i64 4, !5, i64 104, i64 4, !40, i64 108, i64 4, !5, i64 112, i64 4, !5, i64 116, i64 4, !5, i64 120, i64 4, !5, i64 124, i64 4, !5, i64 128, i64 4, !5, i64 132, i64 4, !41, i64 136, i64 4, !5, i64 140, i64 4, !5, i64 144, i64 4, !5, i64 148, i64 4, !5, i64 152, i64 4, !5, i64 156, i64 4, !5}
!38 = !{!18, !18, i64 0}
!39 = !{!21, !21, i64 0}
!40 = !{!25, !25, i64 0}
!41 = !{!26, !26, i64 0}
!42 = distinct !{!42, !28}
!43 = !{!44, !6, i64 16}
!44 = !{!"_ZTS14MSNetworkStats", !45, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36}
!45 = !{!"_ZTS5Stats"}
!46 = !{!44, !6, i64 20}
!47 = !{!44, !6, i64 24}
!48 = !{!44, !6, i64 28}
!49 = !{!44, !6, i64 32}
!50 = !{!44, !6, i64 36}
!51 = !{!52, !6, i64 28}
!52 = !{!"_ZTS14ASNetworkStats", !45, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32}
!53 = !{!52, !6, i64 24}
!54 = !{!55, !6, i64 24}
!55 = !{!"_ZTS14DSNetworkStats", !45, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24}
!56 = !{!57, !6, i64 12}
!57 = !{!"_ZTS13SDMemoryStats", !45, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 40, !6, i64 44, !58, i64 48, !59, i64 56, !59, i64 80, !59, i64 104, !59, i64 128}
!58 = !{!"_ZTS8Dataflow", !7, i64 0}
!59 = !{!"_ZTSSt6vectorIjSaIjEE", !60, i64 0}
!60 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !61, i64 0}
!61 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!63 = !{!57, !6, i64 16}
!64 = !{!57, !6, i64 20}
!65 = !{!57, !6, i64 24}
!66 = distinct !{!66, !28}
!67 = distinct !{!67, !28}


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

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

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.14 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [3 x i8], align 1
@__PRETTY_FUNCTION__._Z21runSparseDenseCommandiPPc = external hidden unnamed_addr constant [41 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

18:                                               ; preds = %2
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #10
  store i32 32, ptr %5, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #10
  store i32 16, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #10
  store i32 32, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #10
  store float 7.000000e+01, ptr %8, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #10
  store i32 4, ptr %9, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #10
  store i32 8, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %11) #10
  invoke void @_ZN6ConfigC1Ev(ptr noundef nonnull align 4 dereferenceable(160) %11)
          to label %19 unwind label %73

19:                                               ; preds = %18
  %20 = getelementptr inbounds i8, ptr %11, i64 104
  store i32 2, ptr %20, align 8, !tbaa !11
  invoke void @_Z27configSparseDenseParametersiPPcR6ConfigRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERjSA_SA_RfSA_SA_(i32 noundef %0, ptr noundef %1, ptr noundef nonnull align 4 dereferenceable(160) %11, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %10)
          to label %21 unwind label %73

21:                                               ; preds = %19
  %22 = load i32, ptr %5, align 4, !tbaa !5
  %23 = load i32, ptr %7, align 4, !tbaa !5
  %24 = load float, ptr %8, align 4, !tbaa !9
  %25 = invoke noundef ptr @_Z19generateMatrixDensejjf(i32 noundef %22, i32 noundef %23, float noundef %24)
          to label %26 unwind label %75

26:                                               ; preds = %21
  %27 = ptrtoint ptr %25 to i64
  %28 = load i32, ptr %5, align 4, !tbaa !5
  %29 = load i32, ptr %7, align 4, !tbaa !5
  %30 = mul i32 %29, %28
  %31 = zext i32 %30 to i64
  %32 = shl nuw nsw i64 %31, 2
  %33 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %32) #11
          to label %34 unwind label %77

34:                                               ; preds = %26
  %35 = ptrtoint ptr %33 to i64
  %36 = load i32, ptr %6, align 4, !tbaa !5
  %37 = invoke noundef ptr @_Z19generateMatrixDensejjf(i32 noundef %29, i32 noundef %36, float noundef 0.000000e+00)
          to label %38 unwind label %79

38:                                               ; preds = %34
  %39 = ptrtoint ptr %37 to i64
  %40 = load i32, ptr %7, align 4, !tbaa !5
  %41 = load i32, ptr %6, align 4, !tbaa !5
  %42 = mul i32 %41, %40
  %43 = zext i32 %42 to i64
  %44 = shl nuw nsw i64 %43, 2
  %45 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %44) #11
          to label %.preheader181 unwind label %81

.preheader181:                                    ; preds = %38
  %46 = ptrtoint ptr %45 to i64
  %47 = load i32, ptr %5, align 4, !tbaa !5
  %48 = mul i32 %47, %40
  %.not213 = icmp eq i32 %48, 0
  br i1 %.not213, label %.preheader180, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.preheader181
  %wide.trip.count = zext i32 %48 to i64
  %min.iters.check = icmp ult i32 %48, 8
  %49 = sub i64 %35, %27
  %diff.check = icmp ult i64 %49, 32
  %or.cond259 = or i1 %min.iters.check, %diff.check
  br i1 %or.cond259, label %.lr.ph.preheader264, label %vector.ph

.lr.ph.preheader264:                              ; preds = %middle.block, %.lr.ph.preheader
  %indvars.iv.ph = phi i64 [ 0, %.lr.ph.preheader ], [ %n.vec, %middle.block ]
  %xtraiter = and i64 %wide.trip.count, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol

.lr.ph.prol:                                      ; preds = %.lr.ph.preheader264, %.lr.ph.prol
  %indvars.iv.prol = phi i64 [ %indvars.iv.next.prol, %.lr.ph.prol ], [ %indvars.iv.ph, %.lr.ph.preheader264 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph.prol ], [ 0, %.lr.ph.preheader264 ]
  %50 = getelementptr inbounds float, ptr %25, i64 %indvars.iv.prol
  %51 = load float, ptr %50, align 4, !tbaa !9
  %52 = getelementptr inbounds float, ptr %33, i64 %indvars.iv.prol
  store float %51, ptr %52, align 4, !tbaa !9
  %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.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol, !llvm.loop !25

.lr.ph.prol.loopexit:                             ; preds = %.lr.ph.prol, %.lr.ph.preheader264
  %indvars.iv.unr = phi i64 [ %indvars.iv.ph, %.lr.ph.preheader264 ], [ %indvars.iv.next.prol, %.lr.ph.prol ]
  %53 = sub nsw i64 %indvars.iv.ph, %wide.trip.count
  %54 = icmp ugt i64 %53, -4
  br i1 %54, label %.preheader180, label %.lr.ph

vector.ph:                                        ; preds = %.lr.ph.preheader
  %n.vec = and i64 %wide.trip.count, 4294967288
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %55 = getelementptr inbounds float, ptr %25, i64 %index
  %56 = getelementptr inbounds i8, ptr %55, i64 16
  %wide.load = load <4 x float>, ptr %55, align 4, !tbaa !9
  %wide.load243 = load <4 x float>, ptr %56, align 4, !tbaa !9
  %57 = getelementptr inbounds float, ptr %33, i64 %index
  %58 = getelementptr inbounds i8, ptr %57, i64 16
  store <4 x float> %wide.load, ptr %57, align 4, !tbaa !9
  store <4 x float> %wide.load243, ptr %58, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %59 = icmp eq i64 %index.next, %n.vec
  br i1 %59, label %middle.block, label %vector.body, !llvm.loop !27

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %wide.trip.count
  br i1 %cmp.n, label %.preheader180, label %.lr.ph.preheader264

.preheader180:                                    ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block, %.preheader181
  %.not214 = icmp eq i32 %42, 0
  br i1 %.not214, label %._crit_edge, label %.lr.ph186.preheader

.lr.ph186.preheader:                              ; preds = %.preheader180
  %min.iters.check248 = icmp ult i32 %42, 8
  %60 = sub i64 %46, %39
  %diff.check245 = icmp ult i64 %60, 32
  %or.cond260 = or i1 %min.iters.check248, %diff.check245
  br i1 %or.cond260, label %.lr.ph186.preheader263, label %vector.ph249

.lr.ph186.preheader263:                           ; preds = %middle.block246, %.lr.ph186.preheader
  %indvars.iv225.ph = phi i64 [ 0, %.lr.ph186.preheader ], [ %n.vec251, %middle.block246 ]
  %xtraiter265 = and i64 %43, 3
  %lcmp.mod266.not = icmp eq i64 %xtraiter265, 0
  br i1 %lcmp.mod266.not, label %.lr.ph186.prol.loopexit, label %.lr.ph186.prol

.lr.ph186.prol:                                   ; preds = %.lr.ph186.preheader263, %.lr.ph186.prol
  %indvars.iv225.prol = phi i64 [ %indvars.iv.next226.prol, %.lr.ph186.prol ], [ %indvars.iv225.ph, %.lr.ph186.preheader263 ]
  %prol.iter267 = phi i64 [ %prol.iter267.next, %.lr.ph186.prol ], [ 0, %.lr.ph186.preheader263 ]
  %61 = getelementptr inbounds float, ptr %37, i64 %indvars.iv225.prol
  %62 = load float, ptr %61, align 4, !tbaa !9
  %63 = getelementptr inbounds float, ptr %45, i64 %indvars.iv225.prol
  store float %62, ptr %63, align 4, !tbaa !9
  %indvars.iv.next226.prol = add nuw nsw i64 %indvars.iv225.prol, 1
  %prol.iter267.next = add i64 %prol.iter267, 1
  %prol.iter267.cmp.not = icmp eq i64 %prol.iter267.next, %xtraiter265
  br i1 %prol.iter267.cmp.not, label %.lr.ph186.prol.loopexit, label %.lr.ph186.prol, !llvm.loop !31

.lr.ph186.prol.loopexit:                          ; preds = %.lr.ph186.prol, %.lr.ph186.preheader263
  %indvars.iv225.unr = phi i64 [ %indvars.iv225.ph, %.lr.ph186.preheader263 ], [ %indvars.iv.next226.prol, %.lr.ph186.prol ]
  %64 = sub nsw i64 %indvars.iv225.ph, %43
  %65 = icmp ugt i64 %64, -4
  br i1 %65, label %._crit_edge, label %.lr.ph186

vector.ph249:                                     ; preds = %.lr.ph186.preheader
  %n.vec251 = and i64 %43, 4294967288
  br label %vector.body253

vector.body253:                                   ; preds = %vector.body253, %vector.ph249
  %index254 = phi i64 [ 0, %vector.ph249 ], [ %index.next257, %vector.body253 ]
  %66 = getelementptr inbounds float, ptr %37, i64 %index254
  %67 = getelementptr inbounds i8, ptr %66, i64 16
  %wide.load255 = load <4 x float>, ptr %66, align 4, !tbaa !9
  %wide.load256 = load <4 x float>, ptr %67, align 4, !tbaa !9
  %68 = getelementptr inbounds float, ptr %45, i64 %index254
  %69 = getelementptr inbounds i8, ptr %68, i64 16
  store <4 x float> %wide.load255, ptr %68, align 4, !tbaa !9
  store <4 x float> %wide.load256, ptr %69, align 4, !tbaa !9
  %index.next257 = add nuw i64 %index254, 8
  %70 = icmp eq i64 %index.next257, %n.vec251
  br i1 %70, label %middle.block246, label %vector.body253, !llvm.loop !32

middle.block246:                                  ; preds = %vector.body253
  %cmp.n258 = icmp eq i64 %n.vec251, %43
  br i1 %cmp.n258, label %._crit_edge, label %.lr.ph186.preheader263

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

73:                                               ; preds = %19, %18
  %74 = landingpad { ptr, i32 }
          cleanup
  br label %509

75:                                               ; preds = %21
  %76 = landingpad { ptr, i32 }
          cleanup
  br label %509

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

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

81:                                               ; preds = %38
  %82 = landingpad { ptr, i32 }
          cleanup
  br label %509

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next.3, %.lr.ph ], [ %indvars.iv.unr, %.lr.ph.prol.loopexit ]
  %83 = getelementptr inbounds float, ptr %25, i64 %indvars.iv
  %84 = load float, ptr %83, align 4, !tbaa !9
  %85 = getelementptr inbounds float, ptr %33, i64 %indvars.iv
  store float %84, ptr %85, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %86 = getelementptr inbounds float, ptr %25, i64 %indvars.iv.next
  %87 = load float, ptr %86, align 4, !tbaa !9
  %88 = getelementptr inbounds float, ptr %33, i64 %indvars.iv.next
  store float %87, ptr %88, align 4, !tbaa !9
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %89 = getelementptr inbounds float, ptr %25, i64 %indvars.iv.next.1
  %90 = load float, ptr %89, align 4, !tbaa !9
  %91 = getelementptr inbounds float, ptr %33, i64 %indvars.iv.next.1
  store float %90, ptr %91, align 4, !tbaa !9
  %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 3
  %92 = getelementptr inbounds float, ptr %25, i64 %indvars.iv.next.2
  %93 = load float, ptr %92, align 4, !tbaa !9
  %94 = getelementptr inbounds float, ptr %33, i64 %indvars.iv.next.2
  store float %93, ptr %94, align 4, !tbaa !9
  %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv, 4
  %exitcond.not.3 = icmp eq i64 %indvars.iv.next.3, %wide.trip.count
  br i1 %exitcond.not.3, label %.preheader180, label %.lr.ph, !llvm.loop !33

._crit_edge:                                      ; preds = %.lr.ph186.prol.loopexit, %.lr.ph186, %middle.block246, %.preheader180
  %95 = mul i32 %47, %41
  %96 = zext i32 %95 to i64
  %97 = shl nuw nsw i64 %96, 2
  %98 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %97) #11
          to label %111 unwind label %135

.lr.ph186:                                        ; preds = %.lr.ph186.prol.loopexit, %.lr.ph186
  %indvars.iv225 = phi i64 [ %indvars.iv.next226.3, %.lr.ph186 ], [ %indvars.iv225.unr, %.lr.ph186.prol.loopexit ]
  %99 = getelementptr inbounds float, ptr %37, i64 %indvars.iv225
  %100 = load float, ptr %99, align 4, !tbaa !9
  %101 = getelementptr inbounds float, ptr %45, i64 %indvars.iv225
  store float %100, ptr %101, align 4, !tbaa !9
  %indvars.iv.next226 = add nuw nsw i64 %indvars.iv225, 1
  %102 = getelementptr inbounds float, ptr %37, i64 %indvars.iv.next226
  %103 = load float, ptr %102, align 4, !tbaa !9
  %104 = getelementptr inbounds float, ptr %45, i64 %indvars.iv.next226
  store float %103, ptr %104, align 4, !tbaa !9
  %indvars.iv.next226.1 = add nuw nsw i64 %indvars.iv225, 2
  %105 = getelementptr inbounds float, ptr %37, i64 %indvars.iv.next226.1
  %106 = load float, ptr %105, align 4, !tbaa !9
  %107 = getelementptr inbounds float, ptr %45, i64 %indvars.iv.next226.1
  store float %106, ptr %107, align 4, !tbaa !9
  %indvars.iv.next226.2 = add nuw nsw i64 %indvars.iv225, 3
  %108 = getelementptr inbounds float, ptr %37, i64 %indvars.iv.next226.2
  %109 = load float, ptr %108, align 4, !tbaa !9
  %110 = getelementptr inbounds float, ptr %45, i64 %indvars.iv.next226.2
  store float %109, ptr %110, align 4, !tbaa !9
  %indvars.iv.next226.3 = add nuw nsw i64 %indvars.iv225, 4
  %exitcond229.not.3 = icmp eq i64 %indvars.iv.next226.3, %43
  br i1 %exitcond229.not.3, label %._crit_edge, label %.lr.ph186, !llvm.loop !34

111:                                              ; preds = %._crit_edge
  %112 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %97) #11
          to label %113 unwind label %137

113:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #10
  store i32 0, ptr %12, align 4, !tbaa !5
  %114 = invoke noundef ptr @_Z24generateMinorIDFromDensePfjjRi15GENERATION_TYPE(ptr noundef nonnull %33, i32 noundef %47, i32 noundef %40, ptr noundef nonnull align 4 dereferenceable(4) %12, i32 noundef 0)
          to label %115 unwind label %139

115:                                              ; preds = %113
  %116 = load i32, ptr %5, align 4, !tbaa !5
  %117 = load i32, ptr %7, align 4, !tbaa !5
  %118 = invoke noundef ptr @_Z29generateMajorPointerFromDensePfjj15GENERATION_TYPE(ptr noundef nonnull %33, i32 noundef %116, i32 noundef %117, i32 noundef 0)
          to label %119 unwind label %141

119:                                              ; preds = %115
  %120 = load i32, ptr %5, align 4, !tbaa !5
  %121 = load i32, ptr %7, align 4, !tbaa !5
  %122 = invoke noundef ptr @_Z37generateMatrixSparseFromDenseNoBitmapPfjj15GENERATION_TYPE(ptr noundef nonnull %33, i32 noundef %120, i32 noundef %121, i32 noundef 0)
          to label %123 unwind label %143

123:                                              ; preds = %119
  %124 = load i32, ptr %5, align 4, !tbaa !5
  %125 = load i32, ptr %6, align 4, !tbaa !5
  %126 = mul i32 %125, %124
  %127 = zext i32 %126 to i64
  %128 = shl nuw nsw i64 %127, 2
  %129 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %128) #11
          to label %130 unwind label %145

130:                                              ; preds = %123
  %131 = 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.46)
          to label %.preheader179 unwind label %145

.preheader179:                                    ; preds = %130
  %132 = load i32, ptr %7, align 4, !tbaa !5
  %.not215 = icmp eq i32 %132, 0
  br i1 %.not215, label %._crit_edge191, label %.preheader178

.preheader178:                                    ; preds = %.preheader179, %163
  %.0133190 = phi i32 [ %164, %163 ], [ 0, %.preheader179 ]
  %133 = load i32, ptr %6, align 4, !tbaa !5
  %.not216 = icmp eq i32 %133, 0
  br i1 %.not216, label %._crit_edge189, label %.lr.ph188

._crit_edge191:                                   ; preds = %163, %.preheader179
  %134 = 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.24)
          to label %169 unwind label %145

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

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

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

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

143:                                              ; preds = %119
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %508

145:                                              ; preds = %224, %._crit_edge202, %._crit_edge199, %._crit_edge196, %169, %._crit_edge191, %130, %123
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %508

._crit_edge189:                                   ; preds = %157, %.preheader178
  %147 = 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.24)
          to label %163 unwind label %167

.lr.ph188:                                        ; preds = %.preheader178, %157
  %148 = phi i32 [ %159, %157 ], [ %133, %.preheader178 ]
  %.0132187 = phi i32 [ %158, %157 ], [ 0, %.preheader178 ]
  %149 = mul i32 %148, %.0133190
  %150 = add i32 %149, %.0132187
  %151 = zext i32 %150 to i64
  %152 = getelementptr inbounds float, ptr %45, i64 %151
  %153 = load float, ptr %152, align 4, !tbaa !9
  %154 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %153)
          to label %155 unwind label %161

155:                                              ; preds = %.lr.ph188
  %156 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %154, ptr noundef nonnull @.str.21)
          to label %157 unwind label %161

157:                                              ; preds = %155
  %158 = add nuw nsw i32 %.0132187, 1
  %159 = load i32, ptr %6, align 4, !tbaa !5
  %160 = icmp ult i32 %158, %159
  br i1 %160, label %.lr.ph188, label %._crit_edge189, !llvm.loop !35

161:                                              ; preds = %155, %.lr.ph188
  %162 = landingpad { ptr, i32 }
          cleanup
  br label %508

163:                                              ; preds = %._crit_edge189
  %164 = add nuw nsw i32 %.0133190, 1
  %165 = load i32, ptr %7, align 4, !tbaa !5
  %166 = icmp ult i32 %164, %165
  br i1 %166, label %.preheader178, label %._crit_edge191, !llvm.loop !36

167:                                              ; preds = %._crit_edge189
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %508

169:                                              ; preds = %._crit_edge191
  %170 = 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.47)
          to label %.preheader177 unwind label %145

.preheader177:                                    ; preds = %169
  %171 = load i32, ptr %5, align 4, !tbaa !5
  %.not217 = icmp eq i32 %171, 0
  br i1 %.not217, label %._crit_edge196, label %.preheader176

.preheader176:                                    ; preds = %.preheader177, %192
  %.0131195 = phi i32 [ %193, %192 ], [ 0, %.preheader177 ]
  %172 = load i32, ptr %7, align 4, !tbaa !5
  %.not218 = icmp eq i32 %172, 0
  br i1 %.not218, label %._crit_edge194, label %.lr.ph193

._crit_edge196:                                   ; preds = %192, %.preheader177
  %173 = 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.48)
          to label %.preheader175 unwind label %145

.preheader175:                                    ; preds = %._crit_edge196
  %174 = load i32, ptr %12, align 4, !tbaa !5
  %175 = icmp sgt i32 %174, 0
  br i1 %175, label %.lr.ph198, label %._crit_edge199

._crit_edge194:                                   ; preds = %186, %.preheader176
  %176 = 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.24)
          to label %192 unwind label %196

.lr.ph193:                                        ; preds = %.preheader176, %186
  %177 = phi i32 [ %188, %186 ], [ %172, %.preheader176 ]
  %.0130192 = phi i32 [ %187, %186 ], [ 0, %.preheader176 ]
  %178 = mul i32 %177, %.0131195
  %179 = add i32 %178, %.0130192
  %180 = zext i32 %179 to i64
  %181 = getelementptr inbounds float, ptr %33, i64 %180
  %182 = load float, ptr %181, align 4, !tbaa !9
  %183 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %182)
          to label %184 unwind label %190

184:                                              ; preds = %.lr.ph193
  %185 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %183, ptr noundef nonnull @.str.21)
          to label %186 unwind label %190

186:                                              ; preds = %184
  %187 = add nuw nsw i32 %.0130192, 1
  %188 = load i32, ptr %7, align 4, !tbaa !5
  %189 = icmp ult i32 %187, %188
  br i1 %189, label %.lr.ph193, label %._crit_edge194, !llvm.loop !37

190:                                              ; preds = %184, %.lr.ph193
  %191 = landingpad { ptr, i32 }
          cleanup
  br label %508

192:                                              ; preds = %._crit_edge194
  %193 = add nuw nsw i32 %.0131195, 1
  %194 = load i32, ptr %5, align 4, !tbaa !5
  %195 = icmp ult i32 %193, %194
  br i1 %195, label %.preheader176, label %._crit_edge196, !llvm.loop !38

196:                                              ; preds = %._crit_edge194
  %197 = landingpad { ptr, i32 }
          cleanup
  br label %508

._crit_edge199:                                   ; preds = %206, %.preheader175
  %198 = 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.49)
          to label %.preheader174 unwind label %145

.preheader174:                                    ; preds = %._crit_edge199
  %199 = load i32, ptr %12, align 4, !tbaa !5
  %200 = icmp sgt i32 %199, 0
  br i1 %200, label %.lr.ph201, label %._crit_edge202

.lr.ph198:                                        ; preds = %.preheader175, %206
  %indvars.iv230 = phi i64 [ %indvars.iv.next231, %206 ], [ 0, %.preheader175 ]
  %201 = getelementptr inbounds float, ptr %122, i64 %indvars.iv230
  %202 = load float, ptr %201, align 4, !tbaa !9
  %203 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %202)
          to label %204 unwind label %210

204:                                              ; preds = %.lr.ph198
  %205 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %203, ptr noundef nonnull @.str.21)
          to label %206 unwind label %210

206:                                              ; preds = %204
  %indvars.iv.next231 = add nuw nsw i64 %indvars.iv230, 1
  %207 = load i32, ptr %12, align 4, !tbaa !5
  %208 = sext i32 %207 to i64
  %209 = icmp slt i64 %indvars.iv.next231, %208
  br i1 %209, label %.lr.ph198, label %._crit_edge199, !llvm.loop !39

210:                                              ; preds = %204, %.lr.ph198
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %508

._crit_edge202:                                   ; preds = %218, %.preheader174
  %212 = 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.50)
          to label %.preheader173 unwind label %145

.lr.ph201:                                        ; preds = %.preheader174, %218
  %indvars.iv233 = phi i64 [ %indvars.iv.next234, %218 ], [ 0, %.preheader174 ]
  %213 = getelementptr inbounds i32, ptr %114, i64 %indvars.iv233
  %214 = load i32, ptr %213, align 4, !tbaa !5
  %215 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %214)
          to label %216 unwind label %222

216:                                              ; preds = %.lr.ph201
  %217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %215, ptr noundef nonnull @.str.21)
          to label %218 unwind label %222

218:                                              ; preds = %216
  %indvars.iv.next234 = add nuw nsw i64 %indvars.iv233, 1
  %219 = load i32, ptr %12, align 4, !tbaa !5
  %220 = sext i32 %219 to i64
  %221 = icmp slt i64 %indvars.iv.next234, %220
  br i1 %221, label %.lr.ph201, label %._crit_edge202, !llvm.loop !40

222:                                              ; preds = %216, %.lr.ph201
  %223 = landingpad { ptr, i32 }
          cleanup
  br label %508

224:                                              ; preds = %231
  %225 = 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.51)
          to label %236 unwind label %145

.preheader173:                                    ; preds = %._crit_edge202, %231
  %indvars.iv236 = phi i64 [ %indvars.iv.next237, %231 ], [ 0, %._crit_edge202 ]
  %226 = getelementptr inbounds i32, ptr %118, i64 %indvars.iv236
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %227)
          to label %229 unwind label %234

229:                                              ; preds = %.preheader173
  %230 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %228, ptr noundef nonnull @.str.21)
          to label %231 unwind label %234

231:                                              ; preds = %229
  %indvars.iv.next237 = add nuw nsw i64 %indvars.iv236, 1
  %232 = load i32, ptr %5, align 4, !tbaa !5
  %233 = zext i32 %232 to i64
  %.not.not = icmp ult i64 %indvars.iv236, %233
  br i1 %.not.not, label %.preheader173, label %224, !llvm.loop !41

234:                                              ; preds = %229, %.preheader173
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %508

236:                                              ; preds = %224
  %237 = invoke noalias noundef nonnull dereferenceable(320) ptr @_Znwm(i64 noundef 320) #11
          to label %238 unwind label %254

238:                                              ; preds = %236
  invoke void @_ZN6StonneC1E6Config(ptr noundef nonnull align 8 dereferenceable(316) %237, ptr noundef nonnull byval(%class.Config) align 8 %11)
          to label %239 unwind label %256

239:                                              ; preds = %238
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %240 unwind label %254

240:                                              ; preds = %239
  %241 = load i32, ptr %6, align 4, !tbaa !5
  %242 = load i32, ptr %7, align 4, !tbaa !5
  %243 = load i32, ptr %5, align 4, !tbaa !5
  %244 = load i32, ptr %9, align 4, !tbaa !5
  %245 = load i32, ptr %10, align 4, !tbaa !5
  invoke void @_ZN6Stonne15loadSparseDenseENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjjjPfS6_PjS7_S6_jj(ptr noundef nonnull align 8 dereferenceable(316) %237, ptr noundef nonnull %13, i32 noundef %241, i32 noundef %242, i32 noundef %243, ptr noundef %122, ptr noundef nonnull %45, ptr noundef %114, ptr noundef nonnull %118, ptr noundef nonnull %112, i32 noundef %244, i32 noundef %245)
          to label %246 unwind label %258

246:                                              ; preds = %240
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  invoke void @_ZN6Stonne12loadClockingEPj(ptr noundef nonnull align 8 dereferenceable(316) %237, ptr noundef nonnull %129)
          to label %247 unwind label %254

247:                                              ; preds = %246
  invoke void @_ZN6Stonne3runEv(ptr noundef nonnull align 8 dereferenceable(316) %237)
          to label %248 unwind label %254

248:                                              ; preds = %247
  %249 = load i32, ptr %6, align 4, !tbaa !5
  %250 = add i32 %249, -1
  %251 = load i32, ptr %5, align 4, !tbaa !5
  %252 = mul i32 %249, %251
  %253 = icmp ult i32 %250, %252
  br i1 %253, label %.lr.ph206, label %._crit_edge207

._crit_edge207:                                   ; preds = %266, %248
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %14) #10
  invoke void @_ZN6Stonne25getMultiplierNetworkStatsEv(ptr dead_on_unwind nonnull writable sret(%class.MSNetworkStats) align 8 %14, ptr noundef nonnull align 8 dereferenceable(316) %237)
          to label %274 unwind label %402

254:                                              ; preds = %247, %246, %239, %236
  %255 = landingpad { ptr, i32 }
          cleanup
  br label %508

256:                                              ; preds = %238
  %257 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %237, i64 noundef 320) #12
  br label %508

258:                                              ; preds = %240
  %259 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  br label %508

.lr.ph206:                                        ; preds = %248, %266
  %.0106204 = phi i32 [ %268, %266 ], [ %250, %248 ]
  %260 = sext i32 %.0106204 to i64
  %261 = getelementptr inbounds i32, ptr %129, i64 %260
  %262 = load i32, ptr %261, align 4, !tbaa !5
  %263 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %262)
          to label %264 unwind label %272

264:                                              ; preds = %.lr.ph206
  %265 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %263, ptr noundef nonnull @.str.21)
          to label %266 unwind label %272

266:                                              ; preds = %264
  %267 = load i32, ptr %6, align 4, !tbaa !5
  %268 = add i32 %267, %.0106204
  %269 = load i32, ptr %5, align 4, !tbaa !5
  %270 = mul i32 %267, %269
  %271 = icmp ult i32 %268, %270
  br i1 %271, label %.lr.ph206, label %._crit_edge207, !llvm.loop !42

272:                                              ; preds = %264, %.lr.ph206
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %508

274:                                              ; preds = %._crit_edge207
  %275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.22)
          to label %276 unwind label %402

276:                                              ; preds = %274
  %277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.23)
          to label %278 unwind label %402

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

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

284:                                              ; preds = %282
  %285 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.25)
          to label %286 unwind label %402

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

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

292:                                              ; preds = %290
  %293 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.26)
          to label %294 unwind label %402

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

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

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

302:                                              ; preds = %300
  %303 = getelementptr inbounds i8, ptr %14, i64 28
  %304 = load i32, ptr %303, align 4, !tbaa !48
  %305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %301, i32 noundef %304)
          to label %306 unwind label %402

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

308:                                              ; preds = %306
  %309 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.28)
          to label %310 unwind label %402

310:                                              ; preds = %308
  %311 = getelementptr inbounds i8, ptr %14, i64 32
  %312 = load i32, ptr %311, align 8, !tbaa !49
  %313 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %309, i32 noundef %312)
          to label %314 unwind label %402

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

316:                                              ; preds = %314
  %317 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.29)
          to label %318 unwind label %402

318:                                              ; preds = %316
  %319 = getelementptr inbounds i8, ptr %14, i64 36
  %320 = load i32, ptr %319, align 4, !tbaa !50
  %321 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %317, i32 noundef %320)
          to label %322 unwind label %402

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

324:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %15) #10
  invoke void @_ZN6Stonne17getASNetworkStatsEv(ptr dead_on_unwind nonnull writable sret(%class.ASNetworkStats) align 8 %15, ptr noundef nonnull align 8 dereferenceable(316) %237)
          to label %325 unwind label %404

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

327:                                              ; preds = %325
  %328 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.31)
          to label %329 unwind label %404

329:                                              ; preds = %327
  %330 = getelementptr inbounds i8, ptr %15, i64 28
  %331 = load i32, ptr %330, align 4, !tbaa !51
  %332 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %328, i32 noundef %331)
          to label %333 unwind label %404

333:                                              ; preds = %329
  %334 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %332, ptr noundef nonnull @.str.24)
          to label %335 unwind label %404

335:                                              ; preds = %333
  %336 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.32)
          to label %337 unwind label %404

337:                                              ; preds = %335
  %338 = getelementptr inbounds i8, ptr %15, i64 24
  %339 = load i32, ptr %338, align 8, !tbaa !53
  %340 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %336, i32 noundef %339)
          to label %341 unwind label %404

341:                                              ; preds = %337
  %342 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %340, ptr noundef nonnull @.str.24)
          to label %343 unwind label %404

343:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #10
  invoke void @_ZN6Stonne17getDSNetworkStatsEv(ptr dead_on_unwind nonnull writable sret(%class.DSNetworkStats) align 8 %16, ptr noundef nonnull align 8 dereferenceable(316) %237)
          to label %344 unwind label %406

344:                                              ; preds = %343
  %345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.33)
          to label %346 unwind label %406

346:                                              ; preds = %344
  %347 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.31)
          to label %348 unwind label %406

348:                                              ; preds = %346
  %349 = getelementptr inbounds i8, ptr %16, i64 24
  %350 = load i32, ptr %349, align 8, !tbaa !54
  %351 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %347, i32 noundef %350)
          to label %352 unwind label %406

352:                                              ; preds = %348
  %353 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %351, ptr noundef nonnull @.str.24)
          to label %354 unwind label %406

354:                                              ; preds = %352
  call void @llvm.lifetime.start.p0(i64 152, ptr nonnull %17) #10
  invoke void @_ZN6Stonne14getMemoryStatsEv(ptr dead_on_unwind nonnull writable sret(%class.SDMemoryStats) align 8 %17, ptr noundef nonnull align 8 dereferenceable(316) %237)
          to label %355 unwind label %408

355:                                              ; preds = %354
  %356 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.34)
          to label %357 unwind label %410

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

359:                                              ; preds = %357
  %360 = getelementptr inbounds i8, ptr %17, i64 12
  %361 = load i32, ptr %360, align 4, !tbaa !56
  %362 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %358, i32 noundef %361)
          to label %363 unwind label %410

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

365:                                              ; preds = %363
  %366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.36)
          to label %367 unwind label %410

367:                                              ; preds = %365
  %368 = getelementptr inbounds i8, ptr %17, i64 16
  %369 = load i32, ptr %368, align 8, !tbaa !64
  %370 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %366, i32 noundef %369)
          to label %371 unwind label %410

371:                                              ; preds = %367
  %372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %370, ptr noundef nonnull @.str.24)
          to label %373 unwind label %410

373:                                              ; preds = %371
  %374 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.37)
          to label %375 unwind label %410

375:                                              ; preds = %373
  %376 = getelementptr inbounds i8, ptr %17, i64 20
  %377 = load i32, ptr %376, align 4, !tbaa !65
  %378 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %374, i32 noundef %377)
          to label %379 unwind label %410

379:                                              ; preds = %375
  %380 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %378, ptr noundef nonnull @.str.24)
          to label %381 unwind label %410

381:                                              ; preds = %379
  %382 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.38)
          to label %383 unwind label %410

383:                                              ; preds = %381
  %384 = getelementptr inbounds i8, ptr %17, i64 24
  %385 = load i32, ptr %384, align 8, !tbaa !66
  %386 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %382, i32 noundef %385)
          to label %387 unwind label %410

387:                                              ; preds = %383
  %388 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %386, ptr noundef nonnull @.str.24)
          to label %389 unwind label %410

389:                                              ; preds = %387
  %390 = 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.40)
          to label %391 unwind label %410

391:                                              ; preds = %389
  %392 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %390, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %393 unwind label %410

393:                                              ; preds = %391
  %394 = load i32, ptr %5, align 4, !tbaa !5
  %395 = load i32, ptr %6, align 4, !tbaa !5
  %396 = load i32, ptr %7, align 4, !tbaa !5
  invoke void @_Z8cpu_gemmPfS_S_jjj(ptr noundef %25, ptr noundef %37, ptr noundef nonnull %98, i32 noundef %394, i32 noundef %395, i32 noundef %396)
          to label %.preheader172 unwind label %410

.preheader172:                                    ; preds = %393
  %397 = load i32, ptr %5, align 4, !tbaa !5
  %.not = icmp eq i32 %397, 0
  %398 = load i32, ptr %6, align 4
  %.not219 = icmp eq i32 %398, 0
  %or.cond = select i1 %.not, i1 true, i1 %.not219
  br i1 %or.cond, label %._crit_edge212, label %.preheader

.preheader:                                       ; preds = %.preheader172, %._crit_edge210
  %399 = phi i32 [ %412, %._crit_edge210 ], [ %397, %.preheader172 ]
  %400 = phi i32 [ %413, %._crit_edge210 ], [ %398, %.preheader172 ]
  %.0105211 = phi i32 [ %414, %._crit_edge210 ], [ 0, %.preheader172 ]
  %.not220 = icmp eq i32 %400, 0
  br i1 %.not220, label %._crit_edge210, label %.lr.ph209

._crit_edge212:                                   ; preds = %._crit_edge210, %.preheader172
  %401 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.17)
          to label %483 unwind label %410

402:                                              ; preds = %322, %318, %316, %314, %310, %308, %306, %302, %300, %298, %294, %292, %290, %286, %284, %282, %278, %276, %274, %._crit_edge207
  %403 = landingpad { ptr, i32 }
          cleanup
  br label %507

404:                                              ; preds = %341, %337, %335, %333, %329, %327, %325, %324
  %405 = landingpad { ptr, i32 }
          cleanup
  br label %506

406:                                              ; preds = %352, %348, %346, %344, %343
  %407 = landingpad { ptr, i32 }
          cleanup
  br label %505

408:                                              ; preds = %354
  %409 = landingpad { ptr, i32 }
          cleanup
  br label %504

410:                                              ; preds = %485, %483, %._crit_edge212, %393, %391, %389, %387, %383, %381, %379, %375, %373, %371, %367, %365, %363, %359, %357, %355
  %411 = landingpad { ptr, i32 }
          cleanup
  br label %503

._crit_edge210.loopexit:                          ; preds = %479
  %.pre = load i32, ptr %5, align 4, !tbaa !5
  br label %._crit_edge210

._crit_edge210:                                   ; preds = %._crit_edge210.loopexit, %.preheader
  %412 = phi i32 [ %.pre, %._crit_edge210.loopexit ], [ %399, %.preheader ]
  %413 = phi i32 [ %481, %._crit_edge210.loopexit ], [ 0, %.preheader ]
  %414 = add nuw nsw i32 %.0105211, 1
  %415 = icmp ult i32 %414, %412
  br i1 %415, label %.preheader, label %._crit_edge212, !llvm.loop !67

.lr.ph209:                                        ; preds = %.preheader, %479
  %416 = phi i32 [ %481, %479 ], [ %400, %.preheader ]
  %.0104208 = phi i32 [ %480, %479 ], [ 0, %.preheader ]
  %417 = mul i32 %416, %.0105211
  %418 = add i32 %417, %.0104208
  %419 = zext i32 %418 to i64
  %420 = getelementptr inbounds float, ptr %98, i64 %419
  %421 = load float, ptr %420, align 4, !tbaa !9
  %422 = getelementptr inbounds float, ptr %112, i64 %419
  %423 = load float, ptr %422, align 4, !tbaa !9
  %424 = fsub float %421, %423
  %425 = call noundef float @_ZSt4fabsf(float noundef %424)
  %426 = fcmp ogt float %425, 0x3FA99999A0000000
  br i1 %426, label %427, label %479

427:                                              ; preds = %.lr.ph209
  %428 = 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.41)
          to label %429 unwind label %477

429:                                              ; preds = %427
  %430 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %428, i32 noundef %.0105211)
          to label %431 unwind label %477

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

433:                                              ; preds = %431
  %434 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %432, i32 noundef %.0104208)
          to label %435 unwind label %477

435:                                              ; preds = %433
  %436 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %434, ptr noundef nonnull @.str.43)
          to label %437 unwind label %477

437:                                              ; preds = %435
  %438 = load i32, ptr %6, align 4, !tbaa !5
  %439 = mul i32 %438, %.0105211
  %440 = add i32 %439, %.0104208
  %441 = zext i32 %440 to i64
  %442 = getelementptr inbounds float, ptr %112, i64 %441
  %443 = load float, ptr %442, align 4, !tbaa !9
  %444 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %436, float noundef %443)
          to label %445 unwind label %477

445:                                              ; preds = %437
  %446 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %444, ptr noundef nonnull @.str.44)
          to label %447 unwind label %477

447:                                              ; preds = %445
  %448 = load i32, ptr %6, align 4, !tbaa !5
  %449 = mul i32 %448, %.0105211
  %450 = add i32 %449, %.0104208
  %451 = zext i32 %450 to i64
  %452 = getelementptr inbounds float, ptr %98, i64 %451
  %453 = load float, ptr %452, align 4, !tbaa !9
  %454 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %446, float noundef %453)
          to label %455 unwind label %477

455:                                              ; preds = %447
  %456 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %454, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %457 unwind label %477

457:                                              ; preds = %455
  %458 = 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 %459 unwind label %477

459:                                              ; preds = %457
  %460 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %458, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %461 unwind label %477

461:                                              ; preds = %459
  call void @_ZdaPv(ptr noundef nonnull %33) #12
  call void @_ZdaPv(ptr noundef nonnull %45) #12
  %462 = icmp eq ptr %25, null
  br i1 %462, label %464, label %463

463:                                              ; preds = %461
  call void @_ZdaPv(ptr noundef nonnull %25) #12
  br label %464

464:                                              ; preds = %463, %461
  %465 = icmp eq ptr %37, null
  br i1 %465, label %467, label %466

466:                                              ; preds = %464
  call void @_ZdaPv(ptr noundef nonnull %37) #12
  br label %467

467:                                              ; preds = %466, %464
  %468 = icmp eq ptr %114, null
  br i1 %468, label %470, label %469

469:                                              ; preds = %467
  call void @_ZdaPv(ptr noundef nonnull %114) #12
  br label %470

470:                                              ; preds = %469, %467
  %471 = icmp eq ptr %118, null
  br i1 %471, label %473, label %472

472:                                              ; preds = %470
  call void @_ZdaPv(ptr noundef nonnull %118) #12
  br label %473

473:                                              ; preds = %472, %470
  %474 = icmp eq ptr %122, null
  br i1 %474, label %476, label %475

475:                                              ; preds = %473
  call void @_ZdaPv(ptr noundef nonnull %122) #12
  br label %476

476:                                              ; preds = %473, %475
  call void @_ZdaPv(ptr noundef nonnull %98) #12
  call void @_ZdaPv(ptr noundef nonnull %112) #12
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %237) #10
  call void @_ZdlPvm(ptr noundef nonnull %237, i64 noundef 320) #12
  call void @__assert_fail(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 629, ptr noundef nonnull @__PRETTY_FUNCTION__._Z21runSparseDenseCommandiPPc) #13
  unreachable

477:                                              ; preds = %459, %457, %455, %447, %445, %437, %435, %433, %431, %429, %427
  %478 = landingpad { ptr, i32 }
          cleanup
  br label %503

479:                                              ; preds = %.lr.ph209
  %480 = add nuw nsw i32 %.0104208, 1
  %481 = load i32, ptr %6, align 4, !tbaa !5
  %482 = icmp ult i32 %480, %481
  br i1 %482, label %.lr.ph209, label %._crit_edge210.loopexit, !llvm.loop !69

483:                                              ; preds = %._crit_edge212
  %484 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %401, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %485 unwind label %410

485:                                              ; preds = %483
  %486 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %484, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %487 unwind label %410

487:                                              ; preds = %485
  %488 = icmp eq ptr %25, null
  br i1 %488, label %490, label %489

489:                                              ; preds = %487
  call void @_ZdaPv(ptr noundef nonnull %25) #12
  br label %490

490:                                              ; preds = %489, %487
  %491 = icmp eq ptr %37, null
  br i1 %491, label %493, label %492

492:                                              ; preds = %490
  call void @_ZdaPv(ptr noundef nonnull %37) #12
  br label %493

493:                                              ; preds = %490, %492
  call void @_ZdaPv(ptr noundef nonnull %33) #12
  call void @_ZdaPv(ptr noundef nonnull %45) #12
  %494 = icmp eq ptr %114, null
  br i1 %494, label %496, label %495

495:                                              ; preds = %493
  call void @_ZdaPv(ptr noundef nonnull %114) #12
  br label %496

496:                                              ; preds = %495, %493
  %497 = icmp eq ptr %118, null
  br i1 %497, label %499, label %498

498:                                              ; preds = %496
  call void @_ZdaPv(ptr noundef nonnull %118) #12
  br label %499

499:                                              ; preds = %498, %496
  %500 = icmp eq ptr %122, null
  br i1 %500, label %502, label %501

501:                                              ; preds = %499
  call void @_ZdaPv(ptr noundef nonnull %122) #12
  br label %502

502:                                              ; preds = %499, %501
  call void @_ZdaPv(ptr noundef nonnull %98) #12
  call void @_ZdaPv(ptr noundef nonnull %112) #12
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %237) #10
  call void @_ZdlPvm(ptr noundef nonnull %237, i64 noundef 320) #12
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %17) #10
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #10
  ret i1 true

503:                                              ; preds = %477, %410
  %.pn = phi { ptr, i32 } [ %478, %477 ], [ %411, %410 ]
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %17) #10
  br label %504

504:                                              ; preds = %503, %408
  %.pn.pn = phi { ptr, i32 } [ %.pn, %503 ], [ %409, %408 ]
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %17) #10
  br label %505

505:                                              ; preds = %504, %406
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %504 ], [ %407, %406 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #10
  br label %506

506:                                              ; preds = %505, %404
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %505 ], [ %405, %404 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #10
  br label %507

507:                                              ; preds = %506, %402
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %506 ], [ %403, %402 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #10
  br label %508

508:                                              ; preds = %141, %145, %210, %222, %234, %167, %161, %196, %190, %507, %272, %258, %256, %254, %143, %139
  %.pn158.pn.pn.pn.pn = phi { ptr, i32 } [ %140, %139 ], [ %142, %141 ], [ %144, %143 ], [ %211, %210 ], [ %223, %222 ], [ %235, %234 ], [ %146, %145 ], [ %162, %161 ], [ %168, %167 ], [ %191, %190 ], [ %197, %196 ], [ %273, %272 ], [ %.pn.pn.pn.pn.pn, %507 ], [ %255, %254 ], [ %259, %258 ], [ %257, %256 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #10
  br label %509

509:                                              ; preds = %75, %79, %135, %508, %137, %81, %77, %73
  %.pn158.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %74, %73 ], [ %76, %75 ], [ %78, %77 ], [ %80, %79 ], [ %82, %81 ], [ %136, %135 ], [ %.pn158.pn.pn.pn.pn, %508 ], [ %138, %137 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #10
  br label %510

510:                                              ; preds = %509, %71
  %.pn158.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn158.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %509 ], [ %72, %71 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #10
  resume { ptr, i32 } %.pn158.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare 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 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 nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!12, !23, i64 104}
!12 = !{!"_ZTS6Config", !6, i64 0, !13, i64 4, !14, i64 8, !15, i64 24, !17, i64 40, !18, i64 64, !20, i64 72, !21, i64 96, !22, i64 104}
!13 = !{!"_ZTS15DSNetworkConfig", !6, i64 0}
!14 = !{!"_ZTS13DSwitchConfig", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12}
!15 = !{!"_ZTS15MSNetworkConfig", !16, i64 0, !6, i64 4, !6, i64 8, !6, i64 12}
!16 = !{!"_ZTS19MultiplierNetwork_t", !7, i64 0}
!17 = !{!"_ZTS13MSwitchConfig", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20}
!18 = !{!"_ZTS15ASNetworkConfig", !19, i64 0, !6, i64 4}
!19 = !{!"_ZTS15ReduceNetwork_t", !7, i64 0}
!20 = !{!"_ZTS13ASwitchConfig", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20}
!21 = !{!"_ZTS17LookUpTableConfig", !6, i64 0, !6, i64 4}
!22 = !{!"_ZTS14SDMemoryConfig", !23, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !24, i64 28, !6, i64 32, !6, i64 36, !6, i64 40, !6, i64 44, !6, i64 48, !6, i64 52}
!23 = !{!"_ZTS18MemoryController_t", !7, i64 0}
!24 = !{!"_ZTS17MemoryHierarchy_t", !7, i64 0}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.unroll.disable"}
!27 = distinct !{!27, !28, !29, !30}
!28 = !{!"llvm.loop.mustprogress"}
!29 = !{!"llvm.loop.isvectorized", i32 1}
!30 = !{!"llvm.loop.unroll.runtime.disable"}
!31 = distinct !{!31, !26}
!32 = distinct !{!32, !28, !29, !30}
!33 = distinct !{!33, !28, !29}
!34 = distinct !{!34, !28, !29}
!35 = distinct !{!35, !28}
!36 = distinct !{!36, !28}
!37 = distinct !{!37, !28}
!38 = distinct !{!38, !28}
!39 = distinct !{!39, !28}
!40 = distinct !{!40, !28}
!41 = distinct !{!41, !28}
!42 = distinct !{!42, !28}
!43 = !{!44, !6, i64 16}
!44 = !{!"_ZTS14MSNetworkStats", !45, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36}
!45 = !{!"_ZTS5Stats"}
!46 = !{!44, !6, i64 20}
!47 = !{!44, !6, i64 24}
!48 = !{!44, !6, i64 28}
!49 = !{!44, !6, i64 32}
!50 = !{!44, !6, i64 36}
!51 = !{!52, !6, i64 28}
!52 = !{!"_ZTS14ASNetworkStats", !45, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32}
!53 = !{!52, !6, i64 24}
!54 = !{!55, !6, i64 24}
!55 = !{!"_ZTS14DSNetworkStats", !45, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24}
!56 = !{!57, !6, i64 12}
!57 = !{!"_ZTS13SDMemoryStats", !45, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 40, !6, i64 44, !58, i64 48, !59, i64 56, !59, i64 80, !59, i64 104, !59, i64 128}
!58 = !{!"_ZTS8Dataflow", !7, i64 0}
!59 = !{!"_ZTSSt6vectorIjSaIjEE", !60, i64 0}
!60 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !61, i64 0}
!61 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !63, i64 0, !63, i64 8, !63, i64 16}
!63 = !{!"any pointer", !7, i64 0}
!64 = !{!57, !6, i64 16}
!65 = !{!57, !6, i64 20}
!66 = !{!57, !6, i64 24}
!67 = distinct !{!67, !28, !68}
!68 = !{!"llvm.loop.unswitch.partial.disable"}
!69 = distinct !{!69, !28}


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