; LLVM IR from stonne-simulator/omega :: omega-code/stonne/src/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.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 [87 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 [25 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [29 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.DSNetworkStats, align 8
  %44 = alloca %class.SDMemoryStats, align 8
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = 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.41, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %48 unwind label %91

48:                                               ; 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 %49 unwind label %95

49:                                               ; preds = %48
  %50 = getelementptr inbounds %class.Config, ptr %16, i32 0, i32 8
  %51 = getelementptr inbounds %class.SDMemoryConfig, ptr %50, i32 0, i32 0
  store i32 2, ptr %51, align 4, !tbaa !13
  %52 = load i32, ptr %3, align 4, !tbaa !5
  %53 = load ptr, ptr %4, align 8, !tbaa !9
  invoke void @_Z27configSparseDenseParametersiPPcR6ConfigRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERjSA_SA_RfSA_SA_(i32 noundef %52, ptr noundef %53, 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 %54 unwind label %95

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

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

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

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

83:                                               ; preds = %73
  store ptr %82, 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 %84

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

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

91:                                               ; preds = %2
  %92 = landingpad { ptr, i32 }
          cleanup
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %8, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, 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 %772

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

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

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

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

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

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

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

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

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

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

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

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

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

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

169:                                              ; preds = %159
  store ptr %168, 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
  %170 = load ptr, ptr %18, align 8, !tbaa !9
  %171 = load i32, ptr %10, align 4, !tbaa !5
  %172 = load i32, ptr %12, align 4, !tbaa !5
  %173 = invoke noundef ptr @_Z24generateMinorIDFromDensePfjjRi15GENERATION_TYPE(ptr noundef %170, i32 noundef %171, i32 noundef %172, ptr noundef nonnull align 4 dereferenceable(4) %25, i32 noundef 0)
          to label %174 unwind label %210

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

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

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

194:                                              ; preds = %184
  store ptr %193, ptr %29, align 8, !tbaa !9
  %195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.42)
          to label %196 unwind label %222

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

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

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

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

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

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

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

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

222:                                              ; preds = %387, %362, %337, %312, %266, %264, %194, %184
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %8, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %9, align 4
  br label %761

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

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

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

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

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

245:                                              ; preds = %243
  br label %246

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

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

253:                                              ; preds = %231
  %254 = 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 %255 unwind label %259

255:                                              ; preds = %253
  br label %256

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

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

263:                                              ; preds = %259, %249
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #12
  br label %761

264:                                              ; preds = %201
  %265 = 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 %266 unwind label %222

266:                                              ; preds = %264
  %267 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.43)
          to label %268 unwind label %222

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

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

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

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

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

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

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

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

293:                                              ; preds = %291
  br label %294

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

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

301:                                              ; preds = %279
  %302 = 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 %303 unwind label %307

303:                                              ; preds = %301
  br label %304

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

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

311:                                              ; preds = %307, %297
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #12
  br label %761

312:                                              ; preds = %273
  %313 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.44)
          to label %314 unwind label %222

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

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

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

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

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

329:                                              ; preds = %327
  br label %330

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

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

337:                                              ; preds = %319
  %338 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.45)
          to label %339 unwind label %222

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

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

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

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

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

354:                                              ; preds = %352
  br label %355

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

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

362:                                              ; preds = %344
  %363 = 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 %364 unwind label %222

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

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

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

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

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

379:                                              ; preds = %377
  br label %380

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

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

387:                                              ; preds = %369
  %388 = 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 %389 unwind label %222

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

391:                                              ; preds = %389
  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) %390, ptr noundef byval(%class.Config) align 8 %39)
          to label %392 unwind label %424

392:                                              ; preds = %391
  store ptr %390, ptr %38, align 8, !tbaa !9
  %393 = 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 %394 unwind label %420

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

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

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

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

413:                                              ; preds = %442, %410
  %414 = load i32, ptr %41, align 4, !tbaa !5
  %415 = load i32, ptr %10, align 4, !tbaa !5
  %416 = load i32, ptr %11, align 4, !tbaa !5
  %417 = mul i32 %415, %416
  %418 = icmp ult i32 %414, %417
  br i1 %418, label %432, label %419

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

420:                                              ; preds = %408, %405, %392, %389
  %421 = landingpad { ptr, i32 }
          cleanup
  %422 = extractvalue { ptr, i32 } %421, 0
  store ptr %422, ptr %8, align 8
  %423 = extractvalue { ptr, i32 } %421, 1
  store i32 %423, ptr %9, align 4
  br label %760

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

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

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

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

441:                                              ; preds = %439
  br label %442

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

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

450:                                              ; preds = %419
  call void @llvm.lifetime.start.p0(i64 40, ptr %42) #12
  %451 = 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) %451)
          to label %452 unwind label %567

452:                                              ; preds = %450
  %453 = 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 %454 unwind label %567

454:                                              ; preds = %452
  %455 = 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 %456 unwind label %567

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

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

462:                                              ; preds = %460
  %463 = 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 %464 unwind label %567

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

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

470:                                              ; preds = %468
  %471 = 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 %472 unwind label %567

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

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

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

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

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

486:                                              ; preds = %484
  %487 = 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 %488 unwind label %567

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

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

494:                                              ; preds = %492
  %495 = 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 %496 unwind label %567

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

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

502:                                              ; preds = %500
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #12
  %503 = load ptr, ptr %38, align 8, !tbaa !9
  invoke void @_ZN6Stonne17getDSNetworkStatsEv(ptr dead_on_unwind writable sret(%class.DSNetworkStats) align 8 %43, ptr noundef nonnull align 8 dereferenceable(316) %503)
          to label %504 unwind label %571

504:                                              ; preds = %502
  %505 = 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 %506 unwind label %571

506:                                              ; preds = %504
  %507 = 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 %508 unwind label %571

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

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

514:                                              ; preds = %512
  call void @llvm.lifetime.start.p0(i64 152, ptr %44) #12
  %515 = load ptr, ptr %38, align 8, !tbaa !9
  invoke void @_ZN6Stonne14getMemoryStatsEv(ptr dead_on_unwind writable sret(%class.SDMemoryStats) align 8 %44, ptr noundef nonnull align 8 dereferenceable(316) %515)
          to label %516 unwind label %575

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

518:                                              ; preds = %516
  %519 = 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 %520 unwind label %579

520:                                              ; preds = %518
  %521 = getelementptr inbounds %class.SDMemoryStats, ptr %44, i32 0, i32 2
  %522 = load i32, ptr %521, align 4, !tbaa !53
  %523 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %519, i32 noundef %522)
          to label %524 unwind label %579

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

526:                                              ; preds = %524
  %527 = 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 %528 unwind label %579

528:                                              ; preds = %526
  %529 = getelementptr inbounds %class.SDMemoryStats, ptr %44, i32 0, i32 3
  %530 = load i32, ptr %529, align 8, !tbaa !60
  %531 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %527, i32 noundef %530)
          to label %532 unwind label %579

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

534:                                              ; preds = %532
  %535 = 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 %536 unwind label %579

536:                                              ; preds = %534
  %537 = getelementptr inbounds %class.SDMemoryStats, ptr %44, i32 0, i32 4
  %538 = load i32, ptr %537, align 4, !tbaa !61
  %539 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %535, i32 noundef %538)
          to label %540 unwind label %579

540:                                              ; preds = %536
  %541 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %539, ptr noundef @.str.24)
          to label %542 unwind label %579

542:                                              ; preds = %540
  %543 = 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 %544 unwind label %579

544:                                              ; preds = %542
  %545 = getelementptr inbounds %class.SDMemoryStats, ptr %44, i32 0, i32 5
  %546 = load i32, ptr %545, align 8, !tbaa !62
  %547 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %543, i32 noundef %546)
          to label %548 unwind label %579

548:                                              ; preds = %544
  %549 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %547, ptr noundef @.str.24)
          to label %550 unwind label %579

550:                                              ; preds = %548
  %551 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.36)
          to label %552 unwind label %579

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

554:                                              ; preds = %552
  %555 = load ptr, ptr %17, align 8, !tbaa !9
  %556 = load ptr, ptr %19, align 8, !tbaa !9
  %557 = load ptr, ptr %23, align 8, !tbaa !9
  %558 = load i32, ptr %10, align 4, !tbaa !5
  %559 = load i32, ptr %11, align 4, !tbaa !5
  %560 = load i32, ptr %12, align 4, !tbaa !5
  invoke void @_Z8cpu_gemmPfS_S_jjj(ptr noundef %555, ptr noundef %556, ptr noundef %557, i32 noundef %558, i32 noundef %559, i32 noundef %560)
          to label %561 unwind label %579

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

562:                                              ; preds = %706, %561
  %563 = load i32, ptr %45, align 4, !tbaa !5
  %564 = load i32, ptr %10, align 4, !tbaa !5
  %565 = icmp ult i32 %563, %564
  br i1 %565, label %583, label %566

566:                                              ; preds = %562
  store i32 32, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #12
  br label %709

567:                                              ; preds = %500, %496, %494, %492, %488, %486, %484, %480, %478, %476, %472, %470, %468, %464, %462, %460, %456, %454, %452, %450
  %568 = landingpad { ptr, i32 }
          cleanup
  %569 = extractvalue { ptr, i32 } %568, 0
  store ptr %569, ptr %8, align 8
  %570 = extractvalue { ptr, i32 } %568, 1
  store i32 %570, ptr %9, align 4
  br label %759

571:                                              ; preds = %512, %508, %506, %504, %502
  %572 = landingpad { ptr, i32 }
          cleanup
  %573 = extractvalue { ptr, i32 } %572, 0
  store ptr %573, ptr %8, align 8
  %574 = extractvalue { ptr, i32 } %572, 1
  store i32 %574, ptr %9, align 4
  br label %758

575:                                              ; preds = %514
  %576 = landingpad { ptr, i32 }
          cleanup
  %577 = extractvalue { ptr, i32 } %576, 0
  store ptr %577, ptr %8, align 8
  %578 = extractvalue { ptr, i32 } %576, 1
  store i32 %578, ptr %9, align 4
  br label %757

579:                                              ; preds = %713, %711, %709, %554, %552, %550, %548, %544, %542, %540, %536, %534, %532, %528, %526, %524, %520, %518, %516
  %580 = landingpad { ptr, i32 }
          cleanup
  %581 = extractvalue { ptr, i32 } %580, 0
  store ptr %581, ptr %8, align 8
  %582 = extractvalue { ptr, i32 } %580, 1
  store i32 %582, ptr %9, align 4
  br label %756

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

584:                                              ; preds = %702, %583
  %585 = load i32, ptr %46, align 4, !tbaa !5
  %586 = load i32, ptr %11, align 4, !tbaa !5
  %587 = icmp ult i32 %585, %586
  br i1 %587, label %589, label %588

588:                                              ; preds = %584
  store i32 35, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #12
  br label %705

589:                                              ; preds = %584
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #12
  %590 = load ptr, ptr %23, align 8, !tbaa !9
  %591 = load i32, ptr %45, align 4, !tbaa !5
  %592 = load i32, ptr %11, align 4, !tbaa !5
  %593 = mul i32 %591, %592
  %594 = load i32, ptr %46, align 4, !tbaa !5
  %595 = add i32 %593, %594
  %596 = zext i32 %595 to i64
  %597 = getelementptr inbounds float, ptr %590, i64 %596
  %598 = load float, ptr %597, align 4, !tbaa !11
  %599 = load ptr, ptr %24, align 8, !tbaa !9
  %600 = load i32, ptr %45, align 4, !tbaa !5
  %601 = load i32, ptr %11, align 4, !tbaa !5
  %602 = mul i32 %600, %601
  %603 = load i32, ptr %46, align 4, !tbaa !5
  %604 = add i32 %602, %603
  %605 = zext i32 %604 to i64
  %606 = getelementptr inbounds float, ptr %599, i64 %605
  %607 = load float, ptr %606, align 4, !tbaa !11
  %608 = fsub float %598, %607
  %609 = invoke noundef float @_ZSt4fabsf(float noundef %608)
          to label %610 unwind label %697

610:                                              ; preds = %589
  store float %609, ptr %47, align 4, !tbaa !11
  %611 = load float, ptr %47, align 4, !tbaa !11
  %612 = load float, ptr %5, align 4, !tbaa !11
  %613 = fcmp ogt float %611, %612
  br i1 %613, label %614, label %701

614:                                              ; preds = %610
  %615 = 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 %616 unwind label %697

616:                                              ; preds = %614
  %617 = load i32, ptr %45, align 4, !tbaa !5
  %618 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %615, i32 noundef %617)
          to label %619 unwind label %697

619:                                              ; preds = %616
  %620 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %618, ptr noundef @.str.38)
          to label %621 unwind label %697

621:                                              ; preds = %619
  %622 = load i32, ptr %46, align 4, !tbaa !5
  %623 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %620, i32 noundef %622)
          to label %624 unwind label %697

624:                                              ; preds = %621
  %625 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %623, ptr noundef @.str.39)
          to label %626 unwind label %697

626:                                              ; preds = %624
  %627 = load ptr, ptr %24, align 8, !tbaa !9
  %628 = load i32, ptr %45, align 4, !tbaa !5
  %629 = load i32, ptr %11, align 4, !tbaa !5
  %630 = mul i32 %628, %629
  %631 = load i32, ptr %46, align 4, !tbaa !5
  %632 = add i32 %630, %631
  %633 = zext i32 %632 to i64
  %634 = getelementptr inbounds float, ptr %627, i64 %633
  %635 = load float, ptr %634, align 4, !tbaa !11
  %636 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %625, float noundef %635)
          to label %637 unwind label %697

637:                                              ; preds = %626
  %638 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %636, ptr noundef @.str.40)
          to label %639 unwind label %697

639:                                              ; preds = %637
  %640 = load ptr, ptr %23, align 8, !tbaa !9
  %641 = load i32, ptr %45, align 4, !tbaa !5
  %642 = load i32, ptr %11, align 4, !tbaa !5
  %643 = mul i32 %641, %642
  %644 = load i32, ptr %46, align 4, !tbaa !5
  %645 = add i32 %643, %644
  %646 = zext i32 %645 to i64
  %647 = getelementptr inbounds float, ptr %640, i64 %646
  %648 = load float, ptr %647, align 4, !tbaa !11
  %649 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %638, float noundef %648)
          to label %650 unwind label %697

650:                                              ; preds = %639
  %651 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %649, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %652 unwind label %697

652:                                              ; preds = %650
  %653 = 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 %654 unwind label %697

654:                                              ; preds = %652
  %655 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %653, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %656 unwind label %697

656:                                              ; preds = %654
  %657 = load ptr, ptr %18, align 8, !tbaa !9
  %658 = icmp eq ptr %657, null
  br i1 %658, label %660, label %659

659:                                              ; preds = %656
  call void @_ZdaPv(ptr noundef %657) #14
  br label %660

660:                                              ; preds = %659, %656
  %661 = load ptr, ptr %20, align 8, !tbaa !9
  %662 = icmp eq ptr %661, null
  br i1 %662, label %664, label %663

663:                                              ; preds = %660
  call void @_ZdaPv(ptr noundef %661) #14
  br label %664

664:                                              ; preds = %663, %660
  %665 = load ptr, ptr %17, align 8, !tbaa !9
  %666 = icmp eq ptr %665, null
  br i1 %666, label %668, label %667

667:                                              ; preds = %664
  call void @_ZdaPv(ptr noundef %665) #14
  br label %668

668:                                              ; preds = %667, %664
  %669 = load ptr, ptr %19, align 8, !tbaa !9
  %670 = icmp eq ptr %669, null
  br i1 %670, label %672, label %671

671:                                              ; preds = %668
  call void @_ZdaPv(ptr noundef %669) #14
  br label %672

672:                                              ; preds = %671, %668
  %673 = load ptr, ptr %26, align 8, !tbaa !9
  %674 = icmp eq ptr %673, null
  br i1 %674, label %676, label %675

675:                                              ; preds = %672
  call void @_ZdaPv(ptr noundef %673) #14
  br label %676

676:                                              ; preds = %675, %672
  %677 = load ptr, ptr %27, align 8, !tbaa !9
  %678 = icmp eq ptr %677, null
  br i1 %678, label %680, label %679

679:                                              ; preds = %676
  call void @_ZdaPv(ptr noundef %677) #14
  br label %680

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

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

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

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

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

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

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

695:                                              ; preds = %692
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %693) #12
  call void @_ZdlPvm(ptr noundef %693, i64 noundef 320) #14
  br label %696

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

697:                                              ; preds = %654, %652, %650, %639, %637, %626, %624, %621, %619, %616, %614, %589
  %698 = landingpad { ptr, i32 }
          cleanup
  %699 = extractvalue { ptr, i32 } %698, 0
  store ptr %699, ptr %8, align 8
  %700 = extractvalue { ptr, i32 } %698, 1
  store i32 %700, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #12
  br label %756

701:                                              ; preds = %610
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #12
  br label %702

702:                                              ; preds = %701
  %703 = load i32, ptr %46, align 4, !tbaa !5
  %704 = add nsw i32 %703, 1
  store i32 %704, ptr %46, align 4, !tbaa !5
  br label %584, !llvm.loop !63

705:                                              ; preds = %588
  br label %706

706:                                              ; preds = %705
  %707 = load i32, ptr %45, align 4, !tbaa !5
  %708 = add nsw i32 %707, 1
  store i32 %708, ptr %45, align 4, !tbaa !5
  br label %562, !llvm.loop !64

709:                                              ; preds = %566
  %710 = 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 %711 unwind label %579

711:                                              ; preds = %709
  %712 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %710, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %713 unwind label %579

713:                                              ; preds = %711
  %714 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %712, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %715 unwind label %579

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

718:                                              ; preds = %715
  call void @_ZdaPv(ptr noundef %716) #14
  br label %719

719:                                              ; preds = %718, %715
  %720 = load ptr, ptr %19, align 8, !tbaa !9
  %721 = icmp eq ptr %720, null
  br i1 %721, label %723, label %722

722:                                              ; preds = %719
  call void @_ZdaPv(ptr noundef %720) #14
  br label %723

723:                                              ; preds = %722, %719
  %724 = load ptr, ptr %18, align 8, !tbaa !9
  %725 = icmp eq ptr %724, null
  br i1 %725, label %727, label %726

726:                                              ; preds = %723
  call void @_ZdaPv(ptr noundef %724) #14
  br label %727

727:                                              ; preds = %726, %723
  %728 = load ptr, ptr %20, align 8, !tbaa !9
  %729 = icmp eq ptr %728, null
  br i1 %729, label %731, label %730

730:                                              ; preds = %727
  call void @_ZdaPv(ptr noundef %728) #14
  br label %731

731:                                              ; preds = %730, %727
  %732 = load ptr, ptr %26, align 8, !tbaa !9
  %733 = icmp eq ptr %732, null
  br i1 %733, label %735, label %734

734:                                              ; preds = %731
  call void @_ZdaPv(ptr noundef %732) #14
  br label %735

735:                                              ; preds = %734, %731
  %736 = load ptr, ptr %27, align 8, !tbaa !9
  %737 = icmp eq ptr %736, null
  br i1 %737, label %739, label %738

738:                                              ; preds = %735
  call void @_ZdaPv(ptr noundef %736) #14
  br label %739

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

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

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

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

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

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

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

754:                                              ; preds = %751
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %752) #12
  call void @_ZdlPvm(ptr noundef %752, i64 noundef 320) #14
  br label %755

755:                                              ; preds = %754, %751
  store i32 1, ptr %31, align 4
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %44) #12
  call void @llvm.lifetime.end.p0(i64 152, ptr %44) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %42) #12
  call void @llvm.lifetime.end.p0(i64 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

756:                                              ; preds = %697, %579
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %44) #12
  br label %757

757:                                              ; preds = %756, %575
  call void @llvm.lifetime.end.p0(i64 152, ptr %44) #12
  br label %758

758:                                              ; preds = %757, %571
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #12
  br label %759

759:                                              ; preds = %758, %567
  call void @llvm.lifetime.end.p0(i64 40, ptr %42) #12
  br label %760

760:                                              ; preds = %759, %446, %428, %424, %420
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #12
  br label %761

761:                                              ; preds = %760, %383, %358, %333, %311, %263, %222
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #12
  br label %762

762:                                              ; preds = %761, %218
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #12
  br label %763

763:                                              ; preds = %762, %214
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #12
  br label %764

764:                                              ; preds = %763, %210
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #12
  br label %765

765:                                              ; preds = %764, %206
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #12
  br label %766

766:                                              ; preds = %765, %202
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #12
  br label %767

767:                                              ; preds = %766, %111
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #12
  br label %768

768:                                              ; preds = %767, %107
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #12
  br label %769

769:                                              ; preds = %768, %103
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #12
  br label %770

770:                                              ; preds = %769, %99
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #12
  br label %771

771:                                              ; preds = %770, %95
  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 %772

772:                                              ; preds = %771, %91
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #12
  br label %773

773:                                              ; preds = %772
  %774 = load ptr, ptr %8, align 8
  %775 = load i32, ptr %9, align 4
  %776 = insertvalue { ptr, i32 } poison, ptr %774, 0
  %777 = insertvalue { ptr, i32 } %776, i32 %775, 1
  resume { ptr, i32 } %777
}

; 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 @_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

declare void @_ZN6Stonne17getDSNetworkStatsEv(ptr dead_on_unwind writable sret(%class.DSNetworkStats) align 8, ptr noundef nonnull align 8 dereferenceable(316)) #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 24}
!52 = !{!"_ZTS14DSNetworkStats", !45, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24}
!53 = !{!54, !6, i64 12}
!54 = !{!"_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, !55, i64 48, !56, i64 56, !56, i64 80, !56, i64 104, !56, i64 128}
!55 = !{!"_ZTS8Dataflow", !7, i64 0}
!56 = !{!"_ZTSSt6vectorIjSaIjEE", !57, i64 0}
!57 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !58, i64 0}
!58 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !59, i64 0}
!59 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!60 = !{!54, !6, i64 16}
!61 = !{!54, !6, i64 20}
!62 = !{!54, !6, i64 24}
!63 = distinct !{!63, !28}
!64 = distinct !{!64, !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.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 [87 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 [25 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [29 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.DSNetworkStats, align 8
  %16 = 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.41, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %17 unwind label %70

17:                                               ; 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 %18 unwind label %72

18:                                               ; preds = %17
  %19 = getelementptr inbounds i8, ptr %11, i64 104
  store i32 2, ptr %19, 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 %20 unwind label %72

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

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

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

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

.preheader178:                                    ; preds = %37
  %45 = ptrtoint ptr %44 to i64
  %46 = load i32, ptr %5, align 4, !tbaa !5
  %47 = mul i32 %46, %39
  %.not210 = icmp eq i32 %47, 0
  br i1 %.not210, label %.preheader177, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.preheader178
  %wide.trip.count = zext i32 %47 to i64
  %min.iters.check = icmp ult i32 %47, 8
  %48 = sub i64 %34, %26
  %diff.check = icmp ult i64 %48, 32
  %or.cond256 = or i1 %min.iters.check, %diff.check
  br i1 %or.cond256, label %.lr.ph.preheader261, label %vector.ph

.lr.ph.preheader261:                              ; 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.preheader261, %.lr.ph.prol
  %indvars.iv.prol = phi i64 [ %indvars.iv.next.prol, %.lr.ph.prol ], [ %indvars.iv.ph, %.lr.ph.preheader261 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph.prol ], [ 0, %.lr.ph.preheader261 ]
  %49 = getelementptr inbounds float, ptr %24, i64 %indvars.iv.prol
  %50 = load float, ptr %49, align 4, !tbaa !9
  %51 = getelementptr inbounds float, ptr %32, i64 %indvars.iv.prol
  store float %50, ptr %51, 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.preheader261
  %indvars.iv.unr = phi i64 [ %indvars.iv.ph, %.lr.ph.preheader261 ], [ %indvars.iv.next.prol, %.lr.ph.prol ]
  %52 = sub nsw i64 %indvars.iv.ph, %wide.trip.count
  %53 = icmp ugt i64 %52, -4
  br i1 %53, label %.preheader177, 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 ]
  %54 = getelementptr inbounds float, ptr %24, i64 %index
  %55 = getelementptr inbounds i8, ptr %54, i64 16
  %wide.load = load <4 x float>, ptr %54, align 4, !tbaa !9
  %wide.load240 = load <4 x float>, ptr %55, align 4, !tbaa !9
  %56 = getelementptr inbounds float, ptr %32, i64 %index
  %57 = getelementptr inbounds i8, ptr %56, i64 16
  store <4 x float> %wide.load, ptr %56, align 4, !tbaa !9
  store <4 x float> %wide.load240, ptr %57, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %58 = icmp eq i64 %index.next, %n.vec
  br i1 %58, 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 %.preheader177, label %.lr.ph.preheader261

.preheader177:                                    ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block, %.preheader178
  %.not211 = icmp eq i32 %41, 0
  br i1 %.not211, label %._crit_edge, label %.lr.ph183.preheader

.lr.ph183.preheader:                              ; preds = %.preheader177
  %min.iters.check245 = icmp ult i32 %41, 8
  %59 = sub i64 %45, %38
  %diff.check242 = icmp ult i64 %59, 32
  %or.cond257 = or i1 %min.iters.check245, %diff.check242
  br i1 %or.cond257, label %.lr.ph183.preheader260, label %vector.ph246

.lr.ph183.preheader260:                           ; preds = %middle.block243, %.lr.ph183.preheader
  %indvars.iv222.ph = phi i64 [ 0, %.lr.ph183.preheader ], [ %n.vec248, %middle.block243 ]
  %xtraiter262 = and i64 %42, 3
  %lcmp.mod263.not = icmp eq i64 %xtraiter262, 0
  br i1 %lcmp.mod263.not, label %.lr.ph183.prol.loopexit, label %.lr.ph183.prol

.lr.ph183.prol:                                   ; preds = %.lr.ph183.preheader260, %.lr.ph183.prol
  %indvars.iv222.prol = phi i64 [ %indvars.iv.next223.prol, %.lr.ph183.prol ], [ %indvars.iv222.ph, %.lr.ph183.preheader260 ]
  %prol.iter264 = phi i64 [ %prol.iter264.next, %.lr.ph183.prol ], [ 0, %.lr.ph183.preheader260 ]
  %60 = getelementptr inbounds float, ptr %36, i64 %indvars.iv222.prol
  %61 = load float, ptr %60, align 4, !tbaa !9
  %62 = getelementptr inbounds float, ptr %44, i64 %indvars.iv222.prol
  store float %61, ptr %62, align 4, !tbaa !9
  %indvars.iv.next223.prol = add nuw nsw i64 %indvars.iv222.prol, 1
  %prol.iter264.next = add i64 %prol.iter264, 1
  %prol.iter264.cmp.not = icmp eq i64 %prol.iter264.next, %xtraiter262
  br i1 %prol.iter264.cmp.not, label %.lr.ph183.prol.loopexit, label %.lr.ph183.prol, !llvm.loop !31

.lr.ph183.prol.loopexit:                          ; preds = %.lr.ph183.prol, %.lr.ph183.preheader260
  %indvars.iv222.unr = phi i64 [ %indvars.iv222.ph, %.lr.ph183.preheader260 ], [ %indvars.iv.next223.prol, %.lr.ph183.prol ]
  %63 = sub nsw i64 %indvars.iv222.ph, %42
  %64 = icmp ugt i64 %63, -4
  br i1 %64, label %._crit_edge, label %.lr.ph183

vector.ph246:                                     ; preds = %.lr.ph183.preheader
  %n.vec248 = and i64 %42, 4294967288
  br label %vector.body250

vector.body250:                                   ; preds = %vector.body250, %vector.ph246
  %index251 = phi i64 [ 0, %vector.ph246 ], [ %index.next254, %vector.body250 ]
  %65 = getelementptr inbounds float, ptr %36, i64 %index251
  %66 = getelementptr inbounds i8, ptr %65, i64 16
  %wide.load252 = load <4 x float>, ptr %65, align 4, !tbaa !9
  %wide.load253 = load <4 x float>, ptr %66, align 4, !tbaa !9
  %67 = getelementptr inbounds float, ptr %44, i64 %index251
  %68 = getelementptr inbounds i8, ptr %67, i64 16
  store <4 x float> %wide.load252, ptr %67, align 4, !tbaa !9
  store <4 x float> %wide.load253, ptr %68, align 4, !tbaa !9
  %index.next254 = add nuw i64 %index251, 8
  %69 = icmp eq i64 %index.next254, %n.vec248
  br i1 %69, label %middle.block243, label %vector.body250, !llvm.loop !32

middle.block243:                                  ; preds = %vector.body250
  %cmp.n255 = icmp eq i64 %n.vec248, %42
  br i1 %cmp.n255, label %._crit_edge, label %.lr.ph183.preheader260

70:                                               ; preds = %2
  %71 = 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 %487

72:                                               ; preds = %18, %17
  %73 = landingpad { ptr, i32 }
          cleanup
  br label %486

74:                                               ; preds = %20
  %75 = landingpad { ptr, i32 }
          cleanup
  br label %486

76:                                               ; preds = %25
  %77 = landingpad { ptr, i32 }
          cleanup
  br label %486

78:                                               ; preds = %33
  %79 = landingpad { ptr, i32 }
          cleanup
  br label %486

80:                                               ; preds = %37
  %81 = landingpad { ptr, i32 }
          cleanup
  br label %486

.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 ]
  %82 = getelementptr inbounds float, ptr %24, i64 %indvars.iv
  %83 = load float, ptr %82, align 4, !tbaa !9
  %84 = getelementptr inbounds float, ptr %32, i64 %indvars.iv
  store float %83, ptr %84, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %85 = getelementptr inbounds float, ptr %24, i64 %indvars.iv.next
  %86 = load float, ptr %85, align 4, !tbaa !9
  %87 = getelementptr inbounds float, ptr %32, i64 %indvars.iv.next
  store float %86, ptr %87, align 4, !tbaa !9
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %88 = getelementptr inbounds float, ptr %24, i64 %indvars.iv.next.1
  %89 = load float, ptr %88, align 4, !tbaa !9
  %90 = getelementptr inbounds float, ptr %32, i64 %indvars.iv.next.1
  store float %89, ptr %90, align 4, !tbaa !9
  %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 3
  %91 = getelementptr inbounds float, ptr %24, i64 %indvars.iv.next.2
  %92 = load float, ptr %91, align 4, !tbaa !9
  %93 = getelementptr inbounds float, ptr %32, i64 %indvars.iv.next.2
  store float %92, ptr %93, 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 %.preheader177, label %.lr.ph, !llvm.loop !33

._crit_edge:                                      ; preds = %.lr.ph183.prol.loopexit, %.lr.ph183, %middle.block243, %.preheader177
  %94 = mul i32 %46, %40
  %95 = zext i32 %94 to i64
  %96 = shl nuw nsw i64 %95, 2
  %97 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %96) #11
          to label %110 unwind label %134

.lr.ph183:                                        ; preds = %.lr.ph183.prol.loopexit, %.lr.ph183
  %indvars.iv222 = phi i64 [ %indvars.iv.next223.3, %.lr.ph183 ], [ %indvars.iv222.unr, %.lr.ph183.prol.loopexit ]
  %98 = getelementptr inbounds float, ptr %36, i64 %indvars.iv222
  %99 = load float, ptr %98, align 4, !tbaa !9
  %100 = getelementptr inbounds float, ptr %44, i64 %indvars.iv222
  store float %99, ptr %100, align 4, !tbaa !9
  %indvars.iv.next223 = add nuw nsw i64 %indvars.iv222, 1
  %101 = getelementptr inbounds float, ptr %36, i64 %indvars.iv.next223
  %102 = load float, ptr %101, align 4, !tbaa !9
  %103 = getelementptr inbounds float, ptr %44, i64 %indvars.iv.next223
  store float %102, ptr %103, align 4, !tbaa !9
  %indvars.iv.next223.1 = add nuw nsw i64 %indvars.iv222, 2
  %104 = getelementptr inbounds float, ptr %36, i64 %indvars.iv.next223.1
  %105 = load float, ptr %104, align 4, !tbaa !9
  %106 = getelementptr inbounds float, ptr %44, i64 %indvars.iv.next223.1
  store float %105, ptr %106, align 4, !tbaa !9
  %indvars.iv.next223.2 = add nuw nsw i64 %indvars.iv222, 3
  %107 = getelementptr inbounds float, ptr %36, i64 %indvars.iv.next223.2
  %108 = load float, ptr %107, align 4, !tbaa !9
  %109 = getelementptr inbounds float, ptr %44, i64 %indvars.iv.next223.2
  store float %108, ptr %109, align 4, !tbaa !9
  %indvars.iv.next223.3 = add nuw nsw i64 %indvars.iv222, 4
  %exitcond226.not.3 = icmp eq i64 %indvars.iv.next223.3, %42
  br i1 %exitcond226.not.3, label %._crit_edge, label %.lr.ph183, !llvm.loop !34

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

112:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #10
  store i32 0, ptr %12, align 4, !tbaa !5
  %113 = invoke noundef ptr @_Z24generateMinorIDFromDensePfjjRi15GENERATION_TYPE(ptr noundef nonnull %32, i32 noundef %46, i32 noundef %39, ptr noundef nonnull align 4 dereferenceable(4) %12, i32 noundef 0)
          to label %114 unwind label %138

114:                                              ; preds = %112
  %115 = load i32, ptr %5, align 4, !tbaa !5
  %116 = load i32, ptr %7, align 4, !tbaa !5
  %117 = invoke noundef ptr @_Z29generateMajorPointerFromDensePfjj15GENERATION_TYPE(ptr noundef nonnull %32, i32 noundef %115, i32 noundef %116, i32 noundef 0)
          to label %118 unwind label %140

118:                                              ; preds = %114
  %119 = load i32, ptr %5, align 4, !tbaa !5
  %120 = load i32, ptr %7, align 4, !tbaa !5
  %121 = invoke noundef ptr @_Z37generateMatrixSparseFromDenseNoBitmapPfjj15GENERATION_TYPE(ptr noundef nonnull %32, i32 noundef %119, i32 noundef %120, i32 noundef 0)
          to label %122 unwind label %142

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

129:                                              ; preds = %122
  %130 = 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.42)
          to label %.preheader176 unwind label %144

.preheader176:                                    ; preds = %129
  %131 = load i32, ptr %7, align 4, !tbaa !5
  %.not212 = icmp eq i32 %131, 0
  br i1 %.not212, label %._crit_edge188, label %.preheader175

.preheader175:                                    ; preds = %.preheader176, %162
  %.0131187 = phi i32 [ %163, %162 ], [ 0, %.preheader176 ]
  %132 = load i32, ptr %6, align 4, !tbaa !5
  %.not213 = icmp eq i32 %132, 0
  br i1 %.not213, label %._crit_edge186, label %.lr.ph185

._crit_edge188:                                   ; preds = %162, %.preheader176
  %133 = 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 %168 unwind label %144

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

136:                                              ; preds = %110
  %137 = landingpad { ptr, i32 }
          cleanup
  br label %486

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

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

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

144:                                              ; preds = %223, %._crit_edge199, %._crit_edge196, %._crit_edge193, %168, %._crit_edge188, %129, %122
  %145 = landingpad { ptr, i32 }
          cleanup
  br label %485

._crit_edge186:                                   ; preds = %156, %.preheader175
  %146 = 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 %162 unwind label %166

.lr.ph185:                                        ; preds = %.preheader175, %156
  %147 = phi i32 [ %158, %156 ], [ %132, %.preheader175 ]
  %.0130184 = phi i32 [ %157, %156 ], [ 0, %.preheader175 ]
  %148 = mul i32 %147, %.0131187
  %149 = add i32 %148, %.0130184
  %150 = zext i32 %149 to i64
  %151 = getelementptr inbounds float, ptr %44, i64 %150
  %152 = load float, ptr %151, align 4, !tbaa !9
  %153 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %152)
          to label %154 unwind label %160

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

156:                                              ; preds = %154
  %157 = add nuw nsw i32 %.0130184, 1
  %158 = load i32, ptr %6, align 4, !tbaa !5
  %159 = icmp ult i32 %157, %158
  br i1 %159, label %.lr.ph185, label %._crit_edge186, !llvm.loop !35

160:                                              ; preds = %154, %.lr.ph185
  %161 = landingpad { ptr, i32 }
          cleanup
  br label %485

162:                                              ; preds = %._crit_edge186
  %163 = add nuw nsw i32 %.0131187, 1
  %164 = load i32, ptr %7, align 4, !tbaa !5
  %165 = icmp ult i32 %163, %164
  br i1 %165, label %.preheader175, label %._crit_edge188, !llvm.loop !36

166:                                              ; preds = %._crit_edge186
  %167 = landingpad { ptr, i32 }
          cleanup
  br label %485

168:                                              ; preds = %._crit_edge188
  %169 = 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.43)
          to label %.preheader174 unwind label %144

.preheader174:                                    ; preds = %168
  %170 = load i32, ptr %5, align 4, !tbaa !5
  %.not214 = icmp eq i32 %170, 0
  br i1 %.not214, label %._crit_edge193, label %.preheader173

.preheader173:                                    ; preds = %.preheader174, %191
  %.0129192 = phi i32 [ %192, %191 ], [ 0, %.preheader174 ]
  %171 = load i32, ptr %7, align 4, !tbaa !5
  %.not215 = icmp eq i32 %171, 0
  br i1 %.not215, label %._crit_edge191, label %.lr.ph190

._crit_edge193:                                   ; preds = %191, %.preheader174
  %172 = 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.44)
          to label %.preheader172 unwind label %144

.preheader172:                                    ; preds = %._crit_edge193
  %173 = load i32, ptr %12, align 4, !tbaa !5
  %174 = icmp sgt i32 %173, 0
  br i1 %174, label %.lr.ph195, label %._crit_edge196

._crit_edge191:                                   ; preds = %185, %.preheader173
  %175 = 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 %191 unwind label %195

.lr.ph190:                                        ; preds = %.preheader173, %185
  %176 = phi i32 [ %187, %185 ], [ %171, %.preheader173 ]
  %.0128189 = phi i32 [ %186, %185 ], [ 0, %.preheader173 ]
  %177 = mul i32 %176, %.0129192
  %178 = add i32 %177, %.0128189
  %179 = zext i32 %178 to i64
  %180 = getelementptr inbounds float, ptr %32, i64 %179
  %181 = load float, ptr %180, align 4, !tbaa !9
  %182 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %181)
          to label %183 unwind label %189

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

185:                                              ; preds = %183
  %186 = add nuw nsw i32 %.0128189, 1
  %187 = load i32, ptr %7, align 4, !tbaa !5
  %188 = icmp ult i32 %186, %187
  br i1 %188, label %.lr.ph190, label %._crit_edge191, !llvm.loop !37

189:                                              ; preds = %183, %.lr.ph190
  %190 = landingpad { ptr, i32 }
          cleanup
  br label %485

191:                                              ; preds = %._crit_edge191
  %192 = add nuw nsw i32 %.0129192, 1
  %193 = load i32, ptr %5, align 4, !tbaa !5
  %194 = icmp ult i32 %192, %193
  br i1 %194, label %.preheader173, label %._crit_edge193, !llvm.loop !38

195:                                              ; preds = %._crit_edge191
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %485

._crit_edge196:                                   ; preds = %205, %.preheader172
  %197 = 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.45)
          to label %.preheader171 unwind label %144

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

.lr.ph195:                                        ; preds = %.preheader172, %205
  %indvars.iv227 = phi i64 [ %indvars.iv.next228, %205 ], [ 0, %.preheader172 ]
  %200 = getelementptr inbounds float, ptr %121, i64 %indvars.iv227
  %201 = load float, ptr %200, align 4, !tbaa !9
  %202 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, float noundef %201)
          to label %203 unwind label %209

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

205:                                              ; preds = %203
  %indvars.iv.next228 = add nuw nsw i64 %indvars.iv227, 1
  %206 = load i32, ptr %12, align 4, !tbaa !5
  %207 = sext i32 %206 to i64
  %208 = icmp slt i64 %indvars.iv.next228, %207
  br i1 %208, label %.lr.ph195, label %._crit_edge196, !llvm.loop !39

209:                                              ; preds = %203, %.lr.ph195
  %210 = landingpad { ptr, i32 }
          cleanup
  br label %485

._crit_edge199:                                   ; preds = %217, %.preheader171
  %211 = 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 %.preheader170 unwind label %144

.lr.ph198:                                        ; preds = %.preheader171, %217
  %indvars.iv230 = phi i64 [ %indvars.iv.next231, %217 ], [ 0, %.preheader171 ]
  %212 = getelementptr inbounds i32, ptr %113, i64 %indvars.iv230
  %213 = load i32, ptr %212, align 4, !tbaa !5
  %214 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %213)
          to label %215 unwind label %221

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

217:                                              ; preds = %215
  %indvars.iv.next231 = add nuw nsw i64 %indvars.iv230, 1
  %218 = load i32, ptr %12, align 4, !tbaa !5
  %219 = sext i32 %218 to i64
  %220 = icmp slt i64 %indvars.iv.next231, %219
  br i1 %220, label %.lr.ph198, label %._crit_edge199, !llvm.loop !40

221:                                              ; preds = %215, %.lr.ph198
  %222 = landingpad { ptr, i32 }
          cleanup
  br label %485

223:                                              ; preds = %230
  %224 = 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 %235 unwind label %144

.preheader170:                                    ; preds = %._crit_edge199, %230
  %indvars.iv233 = phi i64 [ %indvars.iv.next234, %230 ], [ 0, %._crit_edge199 ]
  %225 = getelementptr inbounds i32, ptr %117, i64 %indvars.iv233
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %226)
          to label %228 unwind label %233

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

230:                                              ; preds = %228
  %indvars.iv.next234 = add nuw nsw i64 %indvars.iv233, 1
  %231 = load i32, ptr %5, align 4, !tbaa !5
  %232 = zext i32 %231 to i64
  %.not.not = icmp ult i64 %indvars.iv233, %232
  br i1 %.not.not, label %.preheader170, label %223, !llvm.loop !41

233:                                              ; preds = %228, %.preheader170
  %234 = landingpad { ptr, i32 }
          cleanup
  br label %485

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

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

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

239:                                              ; preds = %238
  %240 = load i32, ptr %6, align 4, !tbaa !5
  %241 = load i32, ptr %7, align 4, !tbaa !5
  %242 = load i32, ptr %5, align 4, !tbaa !5
  %243 = load i32, ptr %9, align 4, !tbaa !5
  %244 = load i32, ptr %10, align 4, !tbaa !5
  invoke void @_ZN6Stonne15loadSparseDenseENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjjjPfS6_PjS7_S6_jj(ptr noundef nonnull align 8 dereferenceable(316) %236, ptr noundef nonnull %13, i32 noundef %240, i32 noundef %241, i32 noundef %242, ptr noundef %121, ptr noundef nonnull %44, ptr noundef %113, ptr noundef nonnull %117, ptr noundef nonnull %111, i32 noundef %243, i32 noundef %244)
          to label %245 unwind label %257

245:                                              ; preds = %239
  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) %236, ptr noundef nonnull %128)
          to label %246 unwind label %253

246:                                              ; preds = %245
  invoke void @_ZN6Stonne3runEv(ptr noundef nonnull align 8 dereferenceable(316) %236)
          to label %247 unwind label %253

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

._crit_edge204:                                   ; preds = %265, %247
  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) %236)
          to label %273 unwind label %382

253:                                              ; preds = %246, %245, %238, %235
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %485

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

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

.lr.ph203:                                        ; preds = %247, %265
  %.0105201 = phi i32 [ %267, %265 ], [ %249, %247 ]
  %259 = sext i32 %.0105201 to i64
  %260 = getelementptr inbounds i32, ptr %128, i64 %259
  %261 = load i32, ptr %260, align 4, !tbaa !5
  %262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %261)
          to label %263 unwind label %271

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

265:                                              ; preds = %263
  %266 = load i32, ptr %6, align 4, !tbaa !5
  %267 = add i32 %266, %.0105201
  %268 = load i32, ptr %5, align 4, !tbaa !5
  %269 = mul i32 %266, %268
  %270 = icmp ult i32 %267, %269
  br i1 %270, label %.lr.ph203, label %._crit_edge204, !llvm.loop !42

271:                                              ; preds = %263, %.lr.ph203
  %272 = landingpad { ptr, i32 }
          cleanup
  br label %485

273:                                              ; preds = %._crit_edge204
  %274 = 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 %275 unwind label %382

275:                                              ; preds = %273
  %276 = 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 %277 unwind label %382

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

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

283:                                              ; preds = %281
  %284 = 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 %285 unwind label %382

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

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

291:                                              ; preds = %289
  %292 = 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 %293 unwind label %382

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

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

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

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

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

307:                                              ; preds = %305
  %308 = 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 %309 unwind label %382

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

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

315:                                              ; preds = %313
  %316 = 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 %317 unwind label %382

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

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

323:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #10
  invoke void @_ZN6Stonne17getDSNetworkStatsEv(ptr dead_on_unwind nonnull writable sret(%class.DSNetworkStats) align 8 %15, ptr noundef nonnull align 8 dereferenceable(316) %236)
          to label %324 unwind label %384

324:                                              ; preds = %323
  %325 = 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 %326 unwind label %384

326:                                              ; preds = %324
  %327 = 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 %328 unwind label %384

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

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

334:                                              ; preds = %332
  call void @llvm.lifetime.start.p0(i64 152, ptr nonnull %16) #10
  invoke void @_ZN6Stonne14getMemoryStatsEv(ptr dead_on_unwind nonnull writable sret(%class.SDMemoryStats) align 8 %16, ptr noundef nonnull align 8 dereferenceable(316) %236)
          to label %335 unwind label %386

335:                                              ; preds = %334
  %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.30)
          to label %337 unwind label %388

337:                                              ; preds = %335
  %338 = 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 %339 unwind label %388

339:                                              ; preds = %337
  %340 = getelementptr inbounds i8, ptr %16, i64 12
  %341 = load i32, ptr %340, align 4, !tbaa !53
  %342 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %338, i32 noundef %341)
          to label %343 unwind label %388

343:                                              ; preds = %339
  %344 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %342, ptr noundef nonnull @.str.24)
          to label %345 unwind label %388

345:                                              ; preds = %343
  %346 = 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 %347 unwind label %388

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

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

353:                                              ; preds = %351
  %354 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.33)
          to label %355 unwind label %388

355:                                              ; preds = %353
  %356 = getelementptr inbounds i8, ptr %16, i64 20
  %357 = load i32, ptr %356, align 4, !tbaa !62
  %358 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %354, i32 noundef %357)
          to label %359 unwind label %388

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

361:                                              ; preds = %359
  %362 = 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 %363 unwind label %388

363:                                              ; preds = %361
  %364 = getelementptr inbounds i8, ptr %16, i64 24
  %365 = load i32, ptr %364, align 8, !tbaa !63
  %366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %362, i32 noundef %365)
          to label %367 unwind label %388

367:                                              ; preds = %363
  %368 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %366, ptr noundef nonnull @.str.24)
          to label %369 unwind label %388

369:                                              ; preds = %367
  %370 = 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 %371 unwind label %388

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

373:                                              ; preds = %371
  %374 = load i32, ptr %5, align 4, !tbaa !5
  %375 = load i32, ptr %6, align 4, !tbaa !5
  %376 = load i32, ptr %7, align 4, !tbaa !5
  invoke void @_Z8cpu_gemmPfS_S_jjj(ptr noundef %24, ptr noundef %36, ptr noundef nonnull %97, i32 noundef %374, i32 noundef %375, i32 noundef %376)
          to label %.preheader169 unwind label %388

.preheader169:                                    ; preds = %373
  %377 = load i32, ptr %5, align 4, !tbaa !5
  %.not = icmp eq i32 %377, 0
  %378 = load i32, ptr %6, align 4
  %.not216 = icmp eq i32 %378, 0
  %or.cond = select i1 %.not, i1 true, i1 %.not216
  br i1 %or.cond, label %._crit_edge209, label %.preheader

.preheader:                                       ; preds = %.preheader169, %._crit_edge207
  %379 = phi i32 [ %390, %._crit_edge207 ], [ %377, %.preheader169 ]
  %380 = phi i32 [ %391, %._crit_edge207 ], [ %378, %.preheader169 ]
  %.0104208 = phi i32 [ %392, %._crit_edge207 ], [ 0, %.preheader169 ]
  %.not217 = icmp eq i32 %380, 0
  br i1 %.not217, label %._crit_edge207, label %.lr.ph206

._crit_edge209:                                   ; preds = %._crit_edge207, %.preheader169
  %381 = 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 %461 unwind label %388

382:                                              ; preds = %321, %317, %315, %313, %309, %307, %305, %301, %299, %297, %293, %291, %289, %285, %283, %281, %277, %275, %273, %._crit_edge204
  %383 = landingpad { ptr, i32 }
          cleanup
  br label %484

384:                                              ; preds = %332, %328, %326, %324, %323
  %385 = landingpad { ptr, i32 }
          cleanup
  br label %483

386:                                              ; preds = %334
  %387 = landingpad { ptr, i32 }
          cleanup
  br label %482

388:                                              ; preds = %463, %461, %._crit_edge209, %373, %371, %369, %367, %363, %361, %359, %355, %353, %351, %347, %345, %343, %339, %337, %335
  %389 = landingpad { ptr, i32 }
          cleanup
  br label %481

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

._crit_edge207:                                   ; preds = %._crit_edge207.loopexit, %.preheader
  %390 = phi i32 [ %.pre, %._crit_edge207.loopexit ], [ %379, %.preheader ]
  %391 = phi i32 [ %459, %._crit_edge207.loopexit ], [ 0, %.preheader ]
  %392 = add nuw nsw i32 %.0104208, 1
  %393 = icmp ult i32 %392, %390
  br i1 %393, label %.preheader, label %._crit_edge209, !llvm.loop !64

.lr.ph206:                                        ; preds = %.preheader, %457
  %394 = phi i32 [ %459, %457 ], [ %380, %.preheader ]
  %.0103205 = phi i32 [ %458, %457 ], [ 0, %.preheader ]
  %395 = mul i32 %394, %.0104208
  %396 = add i32 %395, %.0103205
  %397 = zext i32 %396 to i64
  %398 = getelementptr inbounds float, ptr %97, i64 %397
  %399 = load float, ptr %398, align 4, !tbaa !9
  %400 = getelementptr inbounds float, ptr %111, i64 %397
  %401 = load float, ptr %400, align 4, !tbaa !9
  %402 = fsub float %399, %401
  %403 = call noundef float @_ZSt4fabsf(float noundef %402)
  %404 = fcmp ogt float %403, 0x3FA99999A0000000
  br i1 %404, label %405, label %457

405:                                              ; preds = %.lr.ph206
  %406 = 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 %407 unwind label %455

407:                                              ; preds = %405
  %408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %406, i32 noundef %.0104208)
          to label %409 unwind label %455

409:                                              ; preds = %407
  %410 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %408, ptr noundef nonnull @.str.38)
          to label %411 unwind label %455

411:                                              ; preds = %409
  %412 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %410, i32 noundef %.0103205)
          to label %413 unwind label %455

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

415:                                              ; preds = %413
  %416 = load i32, ptr %6, align 4, !tbaa !5
  %417 = mul i32 %416, %.0104208
  %418 = add i32 %417, %.0103205
  %419 = zext i32 %418 to i64
  %420 = getelementptr inbounds float, ptr %111, i64 %419
  %421 = load float, ptr %420, align 4, !tbaa !9
  %422 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %414, float noundef %421)
          to label %423 unwind label %455

423:                                              ; preds = %415
  %424 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %422, ptr noundef nonnull @.str.40)
          to label %425 unwind label %455

425:                                              ; preds = %423
  %426 = load i32, ptr %6, align 4, !tbaa !5
  %427 = mul i32 %426, %.0104208
  %428 = add i32 %427, %.0103205
  %429 = zext i32 %428 to i64
  %430 = getelementptr inbounds float, ptr %97, i64 %429
  %431 = load float, ptr %430, align 4, !tbaa !9
  %432 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %424, float noundef %431)
          to label %433 unwind label %455

433:                                              ; preds = %425
  %434 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %432, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %435 unwind label %455

435:                                              ; preds = %433
  %436 = 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 %437 unwind label %455

437:                                              ; preds = %435
  %438 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %436, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %439 unwind label %455

439:                                              ; preds = %437
  call void @_ZdaPv(ptr noundef nonnull %32) #12
  call void @_ZdaPv(ptr noundef nonnull %44) #12
  %440 = icmp eq ptr %24, null
  br i1 %440, label %442, label %441

441:                                              ; preds = %439
  call void @_ZdaPv(ptr noundef nonnull %24) #12
  br label %442

442:                                              ; preds = %441, %439
  %443 = icmp eq ptr %36, null
  br i1 %443, label %445, label %444

444:                                              ; preds = %442
  call void @_ZdaPv(ptr noundef nonnull %36) #12
  br label %445

445:                                              ; preds = %444, %442
  %446 = icmp eq ptr %113, null
  br i1 %446, label %448, label %447

447:                                              ; preds = %445
  call void @_ZdaPv(ptr noundef nonnull %113) #12
  br label %448

448:                                              ; preds = %447, %445
  %449 = icmp eq ptr %117, null
  br i1 %449, label %451, label %450

450:                                              ; preds = %448
  call void @_ZdaPv(ptr noundef nonnull %117) #12
  br label %451

451:                                              ; preds = %450, %448
  %452 = icmp eq ptr %121, null
  br i1 %452, label %454, label %453

453:                                              ; preds = %451
  call void @_ZdaPv(ptr noundef nonnull %121) #12
  br label %454

454:                                              ; preds = %451, %453
  call void @_ZdaPv(ptr noundef nonnull %97) #12
  call void @_ZdaPv(ptr noundef nonnull %111) #12
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %236) #10
  call void @_ZdlPvm(ptr noundef nonnull %236, 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

455:                                              ; preds = %437, %435, %433, %425, %423, %415, %413, %411, %409, %407, %405
  %456 = landingpad { ptr, i32 }
          cleanup
  br label %481

457:                                              ; preds = %.lr.ph206
  %458 = add nuw nsw i32 %.0103205, 1
  %459 = load i32, ptr %6, align 4, !tbaa !5
  %460 = icmp ult i32 %458, %459
  br i1 %460, label %.lr.ph206, label %._crit_edge207.loopexit, !llvm.loop !66

461:                                              ; preds = %._crit_edge209
  %462 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %381, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %463 unwind label %388

463:                                              ; preds = %461
  %464 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %462, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %465 unwind label %388

465:                                              ; preds = %463
  %466 = icmp eq ptr %24, null
  br i1 %466, label %468, label %467

467:                                              ; preds = %465
  call void @_ZdaPv(ptr noundef nonnull %24) #12
  br label %468

468:                                              ; preds = %467, %465
  %469 = icmp eq ptr %36, null
  br i1 %469, label %471, label %470

470:                                              ; preds = %468
  call void @_ZdaPv(ptr noundef nonnull %36) #12
  br label %471

471:                                              ; preds = %468, %470
  call void @_ZdaPv(ptr noundef nonnull %32) #12
  call void @_ZdaPv(ptr noundef nonnull %44) #12
  %472 = icmp eq ptr %113, null
  br i1 %472, label %474, label %473

473:                                              ; preds = %471
  call void @_ZdaPv(ptr noundef nonnull %113) #12
  br label %474

474:                                              ; preds = %473, %471
  %475 = icmp eq ptr %117, null
  br i1 %475, label %477, label %476

476:                                              ; preds = %474
  call void @_ZdaPv(ptr noundef nonnull %117) #12
  br label %477

477:                                              ; preds = %476, %474
  %478 = icmp eq ptr %121, null
  br i1 %478, label %480, label %479

479:                                              ; preds = %477
  call void @_ZdaPv(ptr noundef nonnull %121) #12
  br label %480

480:                                              ; preds = %477, %479
  call void @_ZdaPv(ptr noundef nonnull %97) #12
  call void @_ZdaPv(ptr noundef nonnull %111) #12
  call void @_ZN6StonneD1Ev(ptr noundef nonnull align 8 dereferenceable(316) %236) #10
  call void @_ZdlPvm(ptr noundef nonnull %236, i64 noundef 320) #12
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %16) #10
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 32, 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

481:                                              ; preds = %455, %388
  %.pn = phi { ptr, i32 } [ %456, %455 ], [ %389, %388 ]
  call void @_ZN13SDMemoryStatsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %16) #10
  br label %482

482:                                              ; preds = %481, %386
  %.pn.pn = phi { ptr, i32 } [ %.pn, %481 ], [ %387, %386 ]
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %16) #10
  br label %483

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

484:                                              ; preds = %483, %382
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %483 ], [ %383, %382 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #10
  br label %485

485:                                              ; preds = %140, %144, %209, %221, %233, %166, %160, %195, %189, %484, %271, %257, %255, %253, %142, %138
  %.pn155.pn.pn.pn.pn = phi { ptr, i32 } [ %139, %138 ], [ %141, %140 ], [ %143, %142 ], [ %210, %209 ], [ %222, %221 ], [ %234, %233 ], [ %145, %144 ], [ %161, %160 ], [ %167, %166 ], [ %190, %189 ], [ %196, %195 ], [ %272, %271 ], [ %.pn.pn.pn.pn, %484 ], [ %254, %253 ], [ %258, %257 ], [ %256, %255 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #10
  br label %486

486:                                              ; preds = %74, %78, %134, %485, %136, %80, %76, %72
  %.pn155.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %73, %72 ], [ %75, %74 ], [ %77, %76 ], [ %79, %78 ], [ %81, %80 ], [ %135, %134 ], [ %.pn155.pn.pn.pn.pn, %485 ], [ %137, %136 ]
  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 %487

487:                                              ; preds = %486, %70
  %.pn155.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn155.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %486 ], [ %71, %70 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #10
  resume { ptr, i32 } %.pn155.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 @_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

declare void @_ZN6Stonne17getDSNetworkStatsEv(ptr dead_on_unwind writable sret(%class.DSNetworkStats) align 8, ptr noundef nonnull align 8 dereferenceable(316)) 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 24}
!52 = !{!"_ZTS14DSNetworkStats", !45, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24}
!53 = !{!54, !6, i64 12}
!54 = !{!"_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, !55, i64 48, !56, i64 56, !56, i64 80, !56, i64 104, !56, i64 128}
!55 = !{!"_ZTS8Dataflow", !7, i64 0}
!56 = !{!"_ZTSSt6vectorIjSaIjEE", !57, i64 0}
!57 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !58, i64 0}
!58 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !59, i64 0}
!59 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !60, i64 0, !60, i64 8, !60, i64 16}
!60 = !{!"any pointer", !7, i64 0}
!61 = !{!54, !6, i64 16}
!62 = !{!54, !6, i64 20}
!63 = !{!54, !6, i64 24}
!64 = distinct !{!64, !28, !65}
!65 = !{!"llvm.loop.unswitch.partial.disable"}
!66 = distinct !{!66, !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