; LLVM IR from interpretml/interpret :: shared/libebm (DataSetBoosting)

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

%struct.ObjectiveWrapper = type { ptr, ptr, ptr, ptr, i32, i32, i32, double, double, double, double, double, double, double, double, i32, i64, i64, i64, i32, ptr }
%"struct.NAMESPACE_MAIN::DataSetBoosting" = type { i64, i64, ptr, ptr, ptr }
%"struct.NAMESPACE_MAIN::DataSubsetBoosting" = type { i64, ptr, ptr, ptr, ptr, ptr, ptr }

@g_traceLevel = external global i32, align 4
@.str = external hidden unnamed_addr constant [89 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [23 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage = external hidden constant [45 x i8], align 16
@__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl = external hidden unnamed_addr constant [20 x i8], align 1
@__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl = external hidden unnamed_addr constant [447 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [155 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_0 = external hidden constant [99 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_1 = external hidden constant [64 x i8], align 16
@.str.173 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.177 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [47 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_2 = external hidden constant [85 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_3 = external hidden constant [67 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_4 = external hidden constant [73 x i8], align 16
@.str.181 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [22 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_5 = external hidden constant [44 x i8], align 16

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

declare void @InteralLogWithoutArguments(i32 noundef, ptr noundef) #1

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

declare void @LogAssertFailure(i64 noundef, ptr noundef, ptr noundef, ptr noundef) #1

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting12InitGradHessEbm(ptr noundef nonnull align 8 dereferenceable(40), i1 noundef zeroext, i64 noundef) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef, i64 noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting16InitSampleScoresEmPKdaPKaS2_(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef, ptr noundef, i8 noundef signext, ptr noundef, ptr noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, i8 noundef signext, ptr noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, i8 noundef signext, i64 noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting11CopyWeightsEPKhaPKa(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, i8 noundef signext, ptr noundef) #3 align 2

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting8InitBagsEbPvmmPKPKNS_4TermE(ptr noundef nonnull align 8 dereferenceable(40), i1 noundef zeroext, ptr noundef, i64 noundef, i64 noundef, ptr noundef) #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl(ptr noundef nonnull align 8 dereferenceable(40) %0, i1 noundef zeroext %1, i1 noundef zeroext %2, i1 noundef zeroext %3, i1 noundef zeroext %4, i1 noundef zeroext %5, ptr noundef %6, i64 noundef %7, i64 noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, i8 noundef signext %13, i64 noundef %14, ptr noundef %15, ptr noundef %16, i64 noundef %17, i64 noundef %18, i64 noundef %19, i64 noundef %20, ptr noundef %21, ptr noundef %22) #3 align 2 {
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca i8, align 1
  %27 = alloca i8, align 1
  %28 = alloca i8, align 1
  %29 = alloca i8, align 1
  %30 = alloca i8, align 1
  %31 = alloca ptr, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca i8, align 1
  %39 = alloca i64, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i64, align 8
  %51 = alloca i64, align 8
  %52 = alloca i64, align 8
  %53 = alloca i64, align 8
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca i32, align 4
  %58 = alloca ptr, align 8
  %59 = alloca ptr, align 8
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  %62 = alloca i32, align 4
  %63 = alloca ptr, align 8
  %64 = alloca i32, align 4
  %65 = alloca ptr, align 8
  %66 = alloca ptr, align 8
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  store ptr %0, ptr %25, align 8, !tbaa !5
  %69 = zext i1 %1 to i8
  store i8 %69, ptr %26, align 1, !tbaa !9
  %70 = zext i1 %2 to i8
  store i8 %70, ptr %27, align 1, !tbaa !9
  %71 = zext i1 %3 to i8
  store i8 %71, ptr %28, align 1, !tbaa !9
  %72 = zext i1 %4 to i8
  store i8 %72, ptr %29, align 1, !tbaa !9
  %73 = zext i1 %5 to i8
  store i8 %73, ptr %30, align 1, !tbaa !9
  store ptr %6, ptr %31, align 8, !tbaa !5
  store i64 %7, ptr %32, align 8, !tbaa !11
  store i64 %8, ptr %33, align 8, !tbaa !11
  store ptr %9, ptr %34, align 8, !tbaa !5
  store ptr %10, ptr %35, align 8, !tbaa !5
  store ptr %11, ptr %36, align 8, !tbaa !5
  store ptr %12, ptr %37, align 8, !tbaa !5
  store i8 %13, ptr %38, align 1, !tbaa !13
  store i64 %14, ptr %39, align 8, !tbaa !11
  store ptr %15, ptr %40, align 8, !tbaa !5
  store ptr %16, ptr %41, align 8, !tbaa !5
  store i64 %17, ptr %42, align 8, !tbaa !11
  store i64 %18, ptr %43, align 8, !tbaa !11
  store i64 %19, ptr %44, align 8, !tbaa !11
  store i64 %20, ptr %45, align 8, !tbaa !11
  store ptr %21, ptr %46, align 8, !tbaa !5
  store ptr %22, ptr %47, align 8, !tbaa !5
  %74 = load ptr, ptr %25, align 8
  br label %75

75:                                               ; preds = %23
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #6
  store i32 3, ptr %48, align 4, !tbaa !14
  %76 = load i32, ptr @g_traceLevel, align 4, !tbaa !14
  %77 = icmp sle i32 3, %76
  br i1 %77, label %78, label %79

78:                                               ; preds = %75
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage)
  br label %79

79:                                               ; preds = %78, %75
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  br label %80

80:                                               ; preds = %79
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #6
  %81 = load i64, ptr %32, align 8, !tbaa !11
  %82 = icmp ule i64 1, %81
  br i1 %82, label %85, label %83

83:                                               ; preds = %80
  call void @LogAssertFailure(i64 noundef 1118, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.3)
  call void @__assert_fail(ptr noundef @.str.4, ptr noundef @.str, i32 noundef 1118, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

84:                                               ; No predecessors!
  br label %85

85:                                               ; preds = %84, %80
  %86 = phi i1 [ true, %80 ], [ false, %84 ]
  %87 = load i64, ptr %33, align 8, !tbaa !11
  %88 = icmp ule i64 1, %87
  br i1 %88, label %91, label %89

89:                                               ; preds = %85
  call void @LogAssertFailure(i64 noundef 1119, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.147)
  call void @__assert_fail(ptr noundef @.str.148, ptr noundef @.str, i32 noundef 1119, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

90:                                               ; No predecessors!
  br label %91

91:                                               ; preds = %90, %85
  %92 = phi i1 [ true, %85 ], [ false, %90 ]
  %93 = load ptr, ptr %34, align 8, !tbaa !5
  %94 = icmp ne ptr null, %93
  br i1 %94, label %97, label %95

95:                                               ; preds = %91
  call void @LogAssertFailure(i64 noundef 1120, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.149)
  call void @__assert_fail(ptr noundef @.str.150, ptr noundef @.str, i32 noundef 1120, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

96:                                               ; No predecessors!
  br label %97

97:                                               ; preds = %96, %91
  %98 = phi i1 [ true, %91 ], [ false, %96 ]
  %99 = load ptr, ptr %34, align 8, !tbaa !5
  %100 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %99, i32 0, i32 3
  %101 = load ptr, ptr %100, align 8, !tbaa !16
  %102 = icmp ne ptr null, %101
  br i1 %102, label %105, label %103

103:                                              ; preds = %97
  call void @LogAssertFailure(i64 noundef 1121, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.151)
  call void @__assert_fail(ptr noundef @.str.152, ptr noundef @.str, i32 noundef 1121, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

104:                                              ; No predecessors!
  br label %105

105:                                              ; preds = %104, %97
  %106 = phi i1 [ true, %97 ], [ false, %104 ]
  %107 = load ptr, ptr %35, align 8, !tbaa !5
  %108 = icmp ne ptr null, %107
  br i1 %108, label %111, label %109

109:                                              ; preds = %105
  call void @LogAssertFailure(i64 noundef 1122, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.153)
  call void @__assert_fail(ptr noundef @.str.154, ptr noundef @.str, i32 noundef 1122, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

110:                                              ; No predecessors!
  br label %111

111:                                              ; preds = %110, %105
  %112 = phi i1 [ true, %105 ], [ false, %110 ]
  %113 = load ptr, ptr %36, align 8, !tbaa !5
  %114 = icmp ne ptr null, %113
  br i1 %114, label %117, label %115

115:                                              ; preds = %111
  call void @LogAssertFailure(i64 noundef 1123, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.27)
  call void @__assert_fail(ptr noundef @.str.28, ptr noundef @.str, i32 noundef 1123, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

116:                                              ; No predecessors!
  br label %117

117:                                              ; preds = %116, %111
  %118 = phi i1 [ true, %111 ], [ false, %116 ]
  %119 = load i8, ptr %38, align 1, !tbaa !13
  %120 = sext i8 %119 to i32
  %121 = icmp eq i32 -1, %120
  br i1 %121, label %128, label %122

122:                                              ; preds = %117
  %123 = load i8, ptr %38, align 1, !tbaa !13
  %124 = sext i8 %123 to i32
  %125 = icmp eq i32 1, %124
  br i1 %125, label %128, label %126

126:                                              ; preds = %122
  call void @LogAssertFailure(i64 noundef 1124, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.13)
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str, i32 noundef 1124, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

127:                                              ; No predecessors!
  br label %128

128:                                              ; preds = %127, %122, %117
  %129 = phi i1 [ true, %122 ], [ true, %117 ], [ false, %127 ]
  %130 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %74, i32 0, i32 0
  %131 = load i64, ptr %130, align 8, !tbaa !19
  %132 = icmp eq i64 0, %131
  br i1 %132, label %135, label %133

133:                                              ; preds = %128
  call void @LogAssertFailure(i64 noundef 1126, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.155)
  call void @__assert_fail(ptr noundef @.str.156, ptr noundef @.str, i32 noundef 1126, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

134:                                              ; No predecessors!
  br label %135

135:                                              ; preds = %134, %128
  %136 = phi i1 [ true, %128 ], [ false, %134 ]
  %137 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %74, i32 0, i32 1
  %138 = load i64, ptr %137, align 8, !tbaa !21
  %139 = icmp eq i64 0, %138
  br i1 %139, label %142, label %140

140:                                              ; preds = %135
  call void @LogAssertFailure(i64 noundef 1127, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.157)
  call void @__assert_fail(ptr noundef @.str.158, ptr noundef @.str, i32 noundef 1127, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

141:                                              ; No predecessors!
  br label %142

142:                                              ; preds = %141, %135
  %143 = phi i1 [ true, %135 ], [ false, %141 ]
  %144 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %74, i32 0, i32 2
  %145 = load ptr, ptr %144, align 8, !tbaa !22
  %146 = icmp eq ptr null, %145
  br i1 %146, label %149, label %147

147:                                              ; preds = %142
  call void @LogAssertFailure(i64 noundef 1128, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.159)
  call void @__assert_fail(ptr noundef @.str.160, ptr noundef @.str, i32 noundef 1128, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

148:                                              ; No predecessors!
  br label %149

149:                                              ; preds = %148, %142
  %150 = phi i1 [ true, %142 ], [ false, %148 ]
  %151 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %74, i32 0, i32 3
  %152 = load ptr, ptr %151, align 8, !tbaa !23
  %153 = icmp eq ptr null, %152
  br i1 %153, label %156, label %154

154:                                              ; preds = %149
  call void @LogAssertFailure(i64 noundef 1129, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.161)
  call void @__assert_fail(ptr noundef @.str.162, ptr noundef @.str, i32 noundef 1129, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

155:                                              ; No predecessors!
  br label %156

156:                                              ; preds = %155, %149
  %157 = phi i1 [ true, %149 ], [ false, %155 ]
  %158 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %74, i32 0, i32 4
  %159 = load ptr, ptr %158, align 8, !tbaa !24
  %160 = icmp eq ptr null, %159
  br i1 %160, label %163, label %161

161:                                              ; preds = %156
  call void @LogAssertFailure(i64 noundef 1130, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.163)
  call void @__assert_fail(ptr noundef @.str.164, ptr noundef @.str, i32 noundef 1130, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

162:                                              ; No predecessors!
  br label %163

163:                                              ; preds = %162, %156
  %164 = phi i1 [ true, %156 ], [ false, %162 ]
  %165 = load i64, ptr %42, align 8, !tbaa !11
  %166 = icmp ne i64 0, %165
  br i1 %166, label %167, label %546

167:                                              ; preds = %163
  %168 = load i64, ptr %39, align 8, !tbaa !11
  %169 = icmp ule i64 1, %168
  br i1 %169, label %172, label %170

170:                                              ; preds = %167
  call void @LogAssertFailure(i64 noundef 1133, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.43)
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str, i32 noundef 1133, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

171:                                              ; No predecessors!
  br label %172

172:                                              ; preds = %171, %167
  %173 = phi i1 [ true, %167 ], [ false, %171 ]
  %174 = load i64, ptr %42, align 8, !tbaa !11
  %175 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %74, i32 0, i32 0
  store i64 %174, ptr %175, align 8, !tbaa !19
  %176 = load ptr, ptr %34, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %176, i32 0, i32 16
  %178 = load i64, ptr %177, align 8, !tbaa !25
  %179 = icmp eq i64 1, %178
  br i1 %179, label %182, label %180

180:                                              ; preds = %172
  call void @LogAssertFailure(i64 noundef 1137, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.165)
  call void @__assert_fail(ptr noundef @.str.166, ptr noundef @.str, i32 noundef 1137, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

181:                                              ; No predecessors!
  br label %182

182:                                              ; preds = %181, %172
  %183 = phi i1 [ true, %172 ], [ false, %181 ]
  %184 = load ptr, ptr %35, align 8, !tbaa !5
  %185 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %184, i32 0, i32 3
  %186 = load ptr, ptr %185, align 8, !tbaa !16
  %187 = icmp eq ptr null, %186
  br i1 %187, label %188, label %193

188:                                              ; preds = %182
  %189 = load ptr, ptr %35, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %189, i32 0, i32 16
  %191 = load i64, ptr %190, align 8, !tbaa !25
  %192 = icmp eq i64 0, %191
  br i1 %192, label %205, label %193

193:                                              ; preds = %188, %182
  %194 = load ptr, ptr %35, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %194, i32 0, i32 3
  %196 = load ptr, ptr %195, align 8, !tbaa !16
  %197 = icmp ne ptr null, %196
  br i1 %197, label %198, label %203

198:                                              ; preds = %193
  %199 = load ptr, ptr %35, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %199, i32 0, i32 16
  %201 = load i64, ptr %200, align 8, !tbaa !25
  %202 = icmp ule i64 2, %201
  br i1 %202, label %205, label %203

203:                                              ; preds = %198, %193
  call void @LogAssertFailure(i64 noundef 1139, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.167)
  call void @__assert_fail(ptr noundef @.str.168, ptr noundef @.str, i32 noundef 1139, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

204:                                              ; No predecessors!
  br label %205

205:                                              ; preds = %204, %198, %188
  %206 = phi i1 [ true, %198 ], [ true, %188 ], [ false, %204 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #6
  %207 = load ptr, ptr %35, align 8, !tbaa !5
  %208 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %207, i32 0, i32 16
  %209 = load i64, ptr %208, align 8, !tbaa !25
  store i64 %209, ptr %50, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #6
  store i64 0, ptr %51, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #6
  %210 = load i64, ptr %42, align 8, !tbaa !11
  store i64 %210, ptr %52, align 8, !tbaa !11
  br label %211

211:                                              ; preds = %247, %205
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #6
  %212 = load i64, ptr %52, align 8, !tbaa !11
  %213 = load i64, ptr %33, align 8, !tbaa !11
  %214 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMinImEET_S1_S1_(i64 noundef %212, i64 noundef %213) #6
  store i64 %214, ptr %53, align 8, !tbaa !11
  %215 = load i64, ptr %50, align 8, !tbaa !11
  %216 = icmp eq i64 0, %215
  br i1 %216, label %221, label %217

217:                                              ; preds = %211
  %218 = load i64, ptr %53, align 8, !tbaa !11
  %219 = load i64, ptr %50, align 8, !tbaa !11
  %220 = icmp ult i64 %218, %219
  br i1 %220, label %221, label %222

221:                                              ; preds = %217, %211
  br label %228

222:                                              ; preds = %217
  %223 = load i64, ptr %53, align 8, !tbaa !11
  %224 = load i64, ptr %53, align 8, !tbaa !11
  %225 = load i64, ptr %50, align 8, !tbaa !11
  %226 = urem i64 %224, %225
  %227 = sub i64 %223, %226
  store i64 %227, ptr %53, align 8, !tbaa !11
  br label %228

228:                                              ; preds = %222, %221
  %229 = load i64, ptr %51, align 8, !tbaa !11
  %230 = add i64 %229, 1
  store i64 %230, ptr %51, align 8, !tbaa !11
  %231 = load i64, ptr %53, align 8, !tbaa !11
  %232 = icmp ule i64 1, %231
  br i1 %232, label %235, label %233

233:                                              ; preds = %228
  call void @LogAssertFailure(i64 noundef 1154, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.9)
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str, i32 noundef 1154, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

234:                                              ; No predecessors!
  br label %235

235:                                              ; preds = %234, %228
  %236 = phi i1 [ true, %228 ], [ false, %234 ]
  %237 = load i64, ptr %53, align 8, !tbaa !11
  %238 = load i64, ptr %52, align 8, !tbaa !11
  %239 = icmp ule i64 %237, %238
  br i1 %239, label %242, label %240

240:                                              ; preds = %235
  call void @LogAssertFailure(i64 noundef 1155, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.169)
  call void @__assert_fail(ptr noundef @.str.170, ptr noundef @.str, i32 noundef 1155, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

241:                                              ; No predecessors!
  br label %242

242:                                              ; preds = %241, %235
  %243 = phi i1 [ true, %235 ], [ false, %241 ]
  %244 = load i64, ptr %53, align 8, !tbaa !11
  %245 = load i64, ptr %52, align 8, !tbaa !11
  %246 = sub i64 %245, %244
  store i64 %246, ptr %52, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #6
  br label %247

247:                                              ; preds = %242
  %248 = load i64, ptr %52, align 8, !tbaa !11
  %249 = icmp ne i64 0, %248
  br i1 %249, label %211, label %250, !llvm.loop !26

250:                                              ; preds = %247
  %251 = load i64, ptr %51, align 8, !tbaa !11
  %252 = icmp ule i64 1, %251
  br i1 %252, label %255, label %253

253:                                              ; preds = %250
  call void @LogAssertFailure(i64 noundef 1158, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.171)
  call void @__assert_fail(ptr noundef @.str.172, ptr noundef @.str, i32 noundef 1158, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

254:                                              ; No predecessors!
  br label %255

255:                                              ; preds = %254, %250
  %256 = phi i1 [ true, %250 ], [ false, %254 ]
  %257 = load i64, ptr %51, align 8, !tbaa !11
  %258 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef 56, i64 noundef %257) #6
  br i1 %258, label %259, label %267

259:                                              ; preds = %255
  br label %260

260:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #6
  store i32 2, ptr %54, align 4, !tbaa !14
  %261 = load i32, ptr @g_traceLevel, align 4, !tbaa !14
  %262 = icmp sle i32 2, %261
  br i1 %262, label %263, label %264

263:                                              ; preds = %260
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_0)
  br label %264

264:                                              ; preds = %263, %260
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  br label %265

265:                                              ; preds = %264
  br label %266

266:                                              ; preds = %265
  store i32 -1, ptr %24, align 4
  store i32 1, ptr %55, align 4
  br label %543

267:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #6
  %268 = load i64, ptr %51, align 8, !tbaa !11
  %269 = mul i64 56, %268
  %270 = call noalias ptr @malloc(i64 noundef %269) #8
  store ptr %270, ptr %56, align 8, !tbaa !5
  %271 = load ptr, ptr %56, align 8, !tbaa !5
  %272 = icmp eq ptr null, %271
  br i1 %272, label %273, label %281

273:                                              ; preds = %267
  br label %274

274:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #6
  store i32 2, ptr %57, align 4, !tbaa !14
  %275 = load i32, ptr @g_traceLevel, align 4, !tbaa !14
  %276 = icmp sle i32 2, %275
  br i1 %276, label %277, label %278

277:                                              ; preds = %274
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_1)
  br label %278

278:                                              ; preds = %277, %274
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #6
  br label %279

279:                                              ; preds = %278
  br label %280

280:                                              ; preds = %279
  store i32 -1, ptr %24, align 4
  store i32 1, ptr %55, align 4
  br label %542

281:                                              ; preds = %267
  %282 = load ptr, ptr %56, align 8, !tbaa !5
  %283 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %74, i32 0, i32 2
  store ptr %282, ptr %283, align 8, !tbaa !22
  %284 = load i64, ptr %51, align 8, !tbaa !11
  %285 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %74, i32 0, i32 1
  store i64 %284, ptr %285, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #6
  %286 = load ptr, ptr %56, align 8, !tbaa !5
  %287 = load i64, ptr %51, align 8, !tbaa !11
  %288 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %286, i64 %287
  store ptr %288, ptr %58, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #6
  %289 = load ptr, ptr %56, align 8, !tbaa !5
  store ptr %289, ptr %59, align 8, !tbaa !5
  br label %290

290:                                              ; preds = %294, %281
  %291 = load ptr, ptr %59, align 8, !tbaa !5
  call void @_ZN14NAMESPACE_MAIN18DataSubsetBoosting26SafeInitDataSubsetBoostingEv(ptr noundef nonnull align 8 dereferenceable(56) %291)
  %292 = load ptr, ptr %59, align 8, !tbaa !5
  %293 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %292, i32 1
  store ptr %293, ptr %59, align 8, !tbaa !5
  br label %294

294:                                              ; preds = %290
  %295 = load ptr, ptr %58, align 8, !tbaa !5
  %296 = load ptr, ptr %59, align 8, !tbaa !5
  %297 = icmp ne ptr %295, %296
  br i1 %297, label %290, label %298, !llvm.loop !28

298:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #6
  %299 = load i64, ptr %42, align 8, !tbaa !11
  store i64 %299, ptr %60, align 8, !tbaa !11
  br label %300

300:                                              ; preds = %440, %298
  %301 = load i64, ptr %60, align 8, !tbaa !11
  %302 = icmp ule i64 1, %301
  br i1 %302, label %305, label %303

303:                                              ; preds = %300
  call void @LogAssertFailure(i64 noundef 1183, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.173)
  call void @__assert_fail(ptr noundef @.str.174, ptr noundef @.str, i32 noundef 1183, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

304:                                              ; No predecessors!
  br label %305

305:                                              ; preds = %304, %300
  %306 = phi i1 [ true, %300 ], [ false, %304 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #6
  %307 = load i64, ptr %60, align 8, !tbaa !11
  %308 = load i64, ptr %33, align 8, !tbaa !11
  %309 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMinImEET_S1_S1_(i64 noundef %307, i64 noundef %308) #6
  store i64 %309, ptr %61, align 8, !tbaa !11
  %310 = load i64, ptr %50, align 8, !tbaa !11
  %311 = icmp eq i64 0, %310
  br i1 %311, label %316, label %312

312:                                              ; preds = %305
  %313 = load i64, ptr %61, align 8, !tbaa !11
  %314 = load i64, ptr %50, align 8, !tbaa !11
  %315 = icmp ult i64 %313, %314
  br i1 %315, label %316, label %320

316:                                              ; preds = %312, %305
  %317 = load ptr, ptr %34, align 8, !tbaa !5
  %318 = load ptr, ptr %56, align 8, !tbaa !5
  %319 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %318, i32 0, i32 1
  store ptr %317, ptr %319, align 8, !tbaa !29
  br label %329

320:                                              ; preds = %312
  %321 = load i64, ptr %61, align 8, !tbaa !11
  %322 = load i64, ptr %61, align 8, !tbaa !11
  %323 = load i64, ptr %50, align 8, !tbaa !11
  %324 = urem i64 %322, %323
  %325 = sub i64 %321, %324
  store i64 %325, ptr %61, align 8, !tbaa !11
  %326 = load ptr, ptr %35, align 8, !tbaa !5
  %327 = load ptr, ptr %56, align 8, !tbaa !5
  %328 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %327, i32 0, i32 1
  store ptr %326, ptr %328, align 8, !tbaa !29
  br label %329

329:                                              ; preds = %320, %316
  %330 = load ptr, ptr %56, align 8, !tbaa !5
  %331 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %330, i32 0, i32 1
  %332 = load ptr, ptr %331, align 8, !tbaa !29
  %333 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %332, i32 0, i32 3
  %334 = load ptr, ptr %333, align 8, !tbaa !16
  %335 = icmp ne ptr null, %334
  br i1 %335, label %338, label %336

336:                                              ; preds = %329
  call void @LogAssertFailure(i64 noundef 1195, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.175)
  call void @__assert_fail(ptr noundef @.str.176, ptr noundef @.str, i32 noundef 1195, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

337:                                              ; No predecessors!
  br label %338

338:                                              ; preds = %337, %329
  %339 = phi i1 [ true, %329 ], [ false, %337 ]
  %340 = load i64, ptr %61, align 8, !tbaa !11
  %341 = icmp ule i64 1, %340
  br i1 %341, label %344, label %342

342:                                              ; preds = %338
  call void @LogAssertFailure(i64 noundef 1196, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.9)
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str, i32 noundef 1196, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

343:                                              ; No predecessors!
  br label %344

344:                                              ; preds = %343, %338
  %345 = phi i1 [ true, %338 ], [ false, %343 ]
  %346 = load i64, ptr %61, align 8, !tbaa !11
  %347 = load ptr, ptr %56, align 8, !tbaa !5
  %348 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %347, i32 0, i32 1
  %349 = load ptr, ptr %348, align 8, !tbaa !29
  %350 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %349, i32 0, i32 16
  %351 = load i64, ptr %350, align 8, !tbaa !25
  %352 = urem i64 %346, %351
  %353 = icmp eq i64 0, %352
  br i1 %353, label %356, label %354

354:                                              ; preds = %344
  call void @LogAssertFailure(i64 noundef 1197, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.177)
  call void @__assert_fail(ptr noundef @.str.178, ptr noundef @.str, i32 noundef 1197, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

355:                                              ; No predecessors!
  br label %356

356:                                              ; preds = %355, %344
  %357 = phi i1 [ true, %344 ], [ false, %355 ]
  %358 = load i64, ptr %61, align 8, !tbaa !11
  %359 = load i64, ptr %60, align 8, !tbaa !11
  %360 = icmp ule i64 %358, %359
  br i1 %360, label %363, label %361

361:                                              ; preds = %356
  call void @LogAssertFailure(i64 noundef 1198, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.179)
  call void @__assert_fail(ptr noundef @.str.180, ptr noundef @.str, i32 noundef 1198, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

362:                                              ; No predecessors!
  br label %363

363:                                              ; preds = %362, %356
  %364 = phi i1 [ true, %356 ], [ false, %362 ]
  %365 = load i64, ptr %61, align 8, !tbaa !11
  %366 = load i64, ptr %60, align 8, !tbaa !11
  %367 = sub i64 %366, %365
  store i64 %367, ptr %60, align 8, !tbaa !11
  %368 = load i64, ptr %61, align 8, !tbaa !11
  %369 = load ptr, ptr %56, align 8, !tbaa !5
  %370 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %369, i32 0, i32 0
  store i64 %368, ptr %370, align 8, !tbaa !31
  %371 = load i64, ptr %45, align 8, !tbaa !11
  %372 = icmp ne i64 0, %371
  br i1 %372, label %373, label %417

373:                                              ; preds = %363
  %374 = load i64, ptr %45, align 8, !tbaa !11
  %375 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef 8, i64 noundef %374) #6
  br i1 %375, label %376, label %384

376:                                              ; preds = %373
  br label %377

377:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #6
  store i32 2, ptr %62, align 4, !tbaa !14
  %378 = load i32, ptr @g_traceLevel, align 4, !tbaa !14
  %379 = icmp sle i32 2, %378
  br i1 %379, label %380, label %381

380:                                              ; preds = %377
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_2)
  br label %381

381:                                              ; preds = %380, %377
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #6
  br label %382

382:                                              ; preds = %381
  br label %383

383:                                              ; preds = %382
  store i32 -1, ptr %24, align 4
  store i32 1, ptr %55, align 4
  br label %437

384:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #6
  %385 = load i64, ptr %45, align 8, !tbaa !11
  %386 = mul i64 8, %385
  %387 = call noalias ptr @malloc(i64 noundef %386) #8
  store ptr %387, ptr %63, align 8, !tbaa !5
  %388 = load ptr, ptr %63, align 8, !tbaa !5
  %389 = icmp eq ptr null, %388
  br i1 %389, label %390, label %398

390:                                              ; preds = %384
  br label %391

391:                                              ; preds = %390
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #6
  store i32 2, ptr %64, align 4, !tbaa !14
  %392 = load i32, ptr @g_traceLevel, align 4, !tbaa !14
  %393 = icmp sle i32 2, %392
  br i1 %393, label %394, label %395

394:                                              ; preds = %391
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_3)
  br label %395

395:                                              ; preds = %394, %391
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #6
  br label %396

396:                                              ; preds = %395
  br label %397

397:                                              ; preds = %396
  store i32 -1, ptr %24, align 4
  store i32 1, ptr %55, align 4
  br label %414

398:                                              ; preds = %384
  %399 = load ptr, ptr %63, align 8, !tbaa !5
  %400 = load ptr, ptr %56, align 8, !tbaa !5
  %401 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %400, i32 0, i32 5
  store ptr %399, ptr %401, align 8, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #6
  %402 = load ptr, ptr %63, align 8, !tbaa !5
  %403 = load i64, ptr %45, align 8, !tbaa !11
  %404 = getelementptr inbounds ptr, ptr %402, i64 %403
  store ptr %404, ptr %65, align 8, !tbaa !5
  br label %405

405:                                              ; preds = %409, %398
  %406 = load ptr, ptr %63, align 8, !tbaa !5
  store ptr null, ptr %406, align 8, !tbaa !5
  %407 = load ptr, ptr %63, align 8, !tbaa !5
  %408 = getelementptr inbounds ptr, ptr %407, i32 1
  store ptr %408, ptr %63, align 8, !tbaa !5
  br label %409

409:                                              ; preds = %405
  %410 = load ptr, ptr %65, align 8, !tbaa !5
  %411 = load ptr, ptr %63, align 8, !tbaa !5
  %412 = icmp ne ptr %410, %411
  br i1 %412, label %405, label %413, !llvm.loop !33

413:                                              ; preds = %409
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #6
  store i32 0, ptr %55, align 4
  br label %414

414:                                              ; preds = %413, %397
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #6
  %415 = load i32, ptr %55, align 4
  switch i32 %415, label %437 [
    i32 0, label %416
  ]

416:                                              ; preds = %414
  br label %417

417:                                              ; preds = %416, %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #6
  %418 = load i64, ptr %43, align 8, !tbaa !11
  %419 = call noundef ptr @_ZN14NAMESPACE_MAIN14SubsetInnerBag23AllocateSubsetInnerBagsEm(i64 noundef %418)
  store ptr %419, ptr %66, align 8, !tbaa !5
  %420 = load ptr, ptr %66, align 8, !tbaa !5
  %421 = icmp eq ptr null, %420
  br i1 %421, label %422, label %430

422:                                              ; preds = %417
  br label %423

423:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #6
  store i32 2, ptr %67, align 4, !tbaa !14
  %424 = load i32, ptr @g_traceLevel, align 4, !tbaa !14
  %425 = icmp sle i32 2, %424
  br i1 %425, label %426, label %427

426:                                              ; preds = %423
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_4)
  br label %427

427:                                              ; preds = %426, %423
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #6
  br label %428

428:                                              ; preds = %427
  br label %429

429:                                              ; preds = %428
  store i32 -1, ptr %24, align 4
  store i32 1, ptr %55, align 4
  br label %436

430:                                              ; preds = %417
  %431 = load ptr, ptr %66, align 8, !tbaa !5
  %432 = load ptr, ptr %56, align 8, !tbaa !5
  %433 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %432, i32 0, i32 6
  store ptr %431, ptr %433, align 8, !tbaa !34
  %434 = load ptr, ptr %56, align 8, !tbaa !5
  %435 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %434, i32 1
  store ptr %435, ptr %56, align 8, !tbaa !5
  store i32 0, ptr %55, align 4
  br label %436

436:                                              ; preds = %430, %429
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #6
  br label %437

437:                                              ; preds = %436, %414, %383
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  %438 = load i32, ptr %55, align 4
  switch i32 %438, label %541 [
    i32 0, label %439
  ]

439:                                              ; preds = %437
  br label %440

440:                                              ; preds = %439
  %441 = load ptr, ptr %58, align 8, !tbaa !5
  %442 = load ptr, ptr %56, align 8, !tbaa !5
  %443 = icmp ne ptr %441, %442
  br i1 %443, label %300, label %444, !llvm.loop !35

444:                                              ; preds = %440
  %445 = load i64, ptr %60, align 8, !tbaa !11
  %446 = icmp eq i64 0, %445
  br i1 %446, label %449, label %447

447:                                              ; preds = %444
  call void @LogAssertFailure(i64 noundef 1232, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.181)
  call void @__assert_fail(ptr noundef @.str.182, ptr noundef @.str, i32 noundef 1232, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

448:                                              ; No predecessors!
  br label %449

449:                                              ; preds = %448, %444
  %450 = phi i1 [ true, %444 ], [ false, %448 ]
  %451 = load i8, ptr %26, align 1, !tbaa !9, !range !36, !noundef !37
  %452 = trunc i8 %451 to i1
  br i1 %452, label %453, label %463

453:                                              ; preds = %449
  %454 = load i8, ptr %27, align 1, !tbaa !9, !range !36, !noundef !37
  %455 = trunc i8 %454 to i1
  %456 = load i64, ptr %32, align 8, !tbaa !11
  %457 = call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting12InitGradHessEbm(ptr noundef nonnull align 8 dereferenceable(40) %74, i1 noundef zeroext %455, i64 noundef %456)
  store i32 %457, ptr %49, align 4, !tbaa !14
  %458 = load i32, ptr %49, align 4, !tbaa !14
  %459 = icmp ne i32 0, %458
  br i1 %459, label %460, label %462

460:                                              ; preds = %453
  %461 = load i32, ptr %49, align 4, !tbaa !14
  store i32 %461, ptr %24, align 4
  store i32 1, ptr %55, align 4
  br label %541

462:                                              ; preds = %453
  br label %470

463:                                              ; preds = %449
  %464 = load i8, ptr %27, align 1, !tbaa !9, !range !36, !noundef !37
  %465 = trunc i8 %464 to i1
  br i1 %465, label %466, label %468

466:                                              ; preds = %463
  call void @LogAssertFailure(i64 noundef 1240, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef @.str.183)
  call void @__assert_fail(ptr noundef @.str.184, ptr noundef @.str, i32 noundef 1240, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #7
  unreachable

467:                                              ; No predecessors!
  br label %468

468:                                              ; preds = %467, %463
  %469 = phi i1 [ true, %463 ], [ false, %467 ]
  br label %470

470:                                              ; preds = %468, %462
  %471 = load i8, ptr %28, align 1, !tbaa !9, !range !36, !noundef !37
  %472 = trunc i8 %471 to i1
  br i1 %472, label %473, label %485

473:                                              ; preds = %470
  %474 = load i64, ptr %32, align 8, !tbaa !11
  %475 = load ptr, ptr %37, align 8, !tbaa !5
  %476 = load i8, ptr %38, align 1, !tbaa !13
  %477 = load ptr, ptr %40, align 8, !tbaa !5
  %478 = load ptr, ptr %41, align 8, !tbaa !5
  %479 = call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting16InitSampleScoresEmPKdaPKaS2_(ptr noundef nonnull align 8 dereferenceable(40) %74, i64 noundef %474, ptr noundef %475, i8 noundef signext %476, ptr noundef %477, ptr noundef %478)
  store i32 %479, ptr %49, align 4, !tbaa !14
  %480 = load i32, ptr %49, align 4, !tbaa !14
  %481 = icmp ne i32 0, %480
  br i1 %481, label %482, label %484

482:                                              ; preds = %473
  %483 = load i32, ptr %49, align 4, !tbaa !14
  store i32 %483, ptr %24, align 4
  store i32 1, ptr %55, align 4
  br label %541

484:                                              ; preds = %473
  br label %485

485:                                              ; preds = %484, %470
  %486 = load i8, ptr %29, align 1, !tbaa !9, !range !36, !noundef !37
  %487 = trunc i8 %486 to i1
  br i1 %487, label %488, label %498

488:                                              ; preds = %485
  %489 = load ptr, ptr %36, align 8, !tbaa !5
  %490 = load i8, ptr %38, align 1, !tbaa !13
  %491 = load ptr, ptr %40, align 8, !tbaa !5
  %492 = call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa(ptr noundef nonnull align 8 dereferenceable(40) %74, ptr noundef %489, i8 noundef signext %490, ptr noundef %491)
  store i32 %492, ptr %49, align 4, !tbaa !14
  %493 = load i32, ptr %49, align 4, !tbaa !14
  %494 = icmp ne i32 0, %493
  br i1 %494, label %495, label %497

495:                                              ; preds = %488
  %496 = load i32, ptr %49, align 4, !tbaa !14
  store i32 %496, ptr %24, align 4
  store i32 1, ptr %55, align 4
  br label %541

497:                                              ; preds = %488
  br label %498

498:                                              ; preds = %497, %485
  %499 = load i64, ptr %45, align 8, !tbaa !11
  %500 = icmp ne i64 0, %499
  br i1 %500, label %501, label %515

501:                                              ; preds = %498
  %502 = load ptr, ptr %36, align 8, !tbaa !5
  %503 = load i8, ptr %38, align 1, !tbaa !13
  %504 = load i64, ptr %39, align 8, !tbaa !11
  %505 = load ptr, ptr %40, align 8, !tbaa !5
  %506 = load i64, ptr %45, align 8, !tbaa !11
  %507 = load ptr, ptr %46, align 8, !tbaa !5
  %508 = load ptr, ptr %47, align 8, !tbaa !5
  %509 = call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl(ptr noundef nonnull align 8 dereferenceable(40) %74, ptr noundef %502, i8 noundef signext %503, i64 noundef %504, ptr noundef %505, i64 noundef %506, ptr noundef %507, ptr noundef %508)
  store i32 %509, ptr %49, align 4, !tbaa !14
  %510 = load i32, ptr %49, align 4, !tbaa !14
  %511 = icmp ne i32 0, %510
  br i1 %511, label %512, label %514

512:                                              ; preds = %501
  %513 = load i32, ptr %49, align 4, !tbaa !14
  store i32 %513, ptr %24, align 4
  store i32 1, ptr %55, align 4
  br label %541

514:                                              ; preds = %501
  br label %515

515:                                              ; preds = %514, %498
  %516 = load i64, ptr %44, align 8, !tbaa !11
  %517 = icmp ne i64 0, %516
  br i1 %517, label %518, label %528

518:                                              ; preds = %515
  %519 = load ptr, ptr %36, align 8, !tbaa !5
  %520 = load i8, ptr %38, align 1, !tbaa !13
  %521 = load ptr, ptr %40, align 8, !tbaa !5
  %522 = call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting11CopyWeightsEPKhaPKa(ptr noundef nonnull align 8 dereferenceable(40) %74, ptr noundef %519, i8 noundef signext %520, ptr noundef %521)
  store i32 %522, ptr %49, align 4, !tbaa !14
  %523 = load i32, ptr %49, align 4, !tbaa !14
  %524 = icmp ne i32 0, %523
  br i1 %524, label %525, label %527

525:                                              ; preds = %518
  %526 = load i32, ptr %49, align 4, !tbaa !14
  store i32 %526, ptr %24, align 4
  store i32 1, ptr %55, align 4
  br label %541

527:                                              ; preds = %518
  br label %528

528:                                              ; preds = %527, %515
  %529 = load i8, ptr %30, align 1, !tbaa !9, !range !36, !noundef !37
  %530 = trunc i8 %529 to i1
  %531 = load ptr, ptr %31, align 8, !tbaa !5
  %532 = load i64, ptr %43, align 8, !tbaa !11
  %533 = load i64, ptr %45, align 8, !tbaa !11
  %534 = load ptr, ptr %46, align 8, !tbaa !5
  %535 = call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting8InitBagsEbPvmmPKPKNS_4TermE(ptr noundef nonnull align 8 dereferenceable(40) %74, i1 noundef zeroext %530, ptr noundef %531, i64 noundef %532, i64 noundef %533, ptr noundef %534)
  store i32 %535, ptr %49, align 4, !tbaa !14
  %536 = load i32, ptr %49, align 4, !tbaa !14
  %537 = icmp ne i32 0, %536
  br i1 %537, label %538, label %540

538:                                              ; preds = %528
  %539 = load i32, ptr %49, align 4, !tbaa !14
  store i32 %539, ptr %24, align 4
  store i32 1, ptr %55, align 4
  br label %541

540:                                              ; preds = %528
  store i32 0, ptr %55, align 4
  br label %541

541:                                              ; preds = %540, %538, %525, %512, %495, %482, %460, %437
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  br label %542

542:                                              ; preds = %541, %280
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #6
  br label %543

543:                                              ; preds = %542, %266
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #6
  %544 = load i32, ptr %55, align 4
  switch i32 %544, label %554 [
    i32 0, label %545
  ]

545:                                              ; preds = %543
  br label %546

546:                                              ; preds = %545, %163
  br label %547

547:                                              ; preds = %546
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #6
  store i32 3, ptr %68, align 4, !tbaa !14
  %548 = load i32, ptr @g_traceLevel, align 4, !tbaa !14
  %549 = icmp sle i32 3, %548
  br i1 %549, label %550, label %551

550:                                              ; preds = %547
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_5)
  br label %551

551:                                              ; preds = %550, %547
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #6
  br label %552

552:                                              ; preds = %551
  br label %553

553:                                              ; preds = %552
  store i32 0, ptr %24, align 4
  store i32 1, ptr %55, align 4
  br label %554

554:                                              ; preds = %553, %543
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  %555 = load i32, ptr %24, align 4
  ret i32 %555
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i64 @_ZN14NAMESPACE_MAINL6EbmMinImEET_S1_S1_(i64 noundef, i64 noundef) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14NAMESPACE_MAIN18DataSubsetBoosting26SafeInitDataSubsetBoostingEv(ptr noundef nonnull align 8 dereferenceable(56)) #4 align 2

declare noundef ptr @_ZN14NAMESPACE_MAIN14SubsetInnerBag23AllocateSubsetInnerBagsEm(i64 noundef) #1

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "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 = { 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 #3 = { 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 = { 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 #5 = { nounwind allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }
attributes #7 = { noreturn nounwind }
attributes #8 = { nounwind allocsize(0) }

!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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"int", !7, i64 0}
!16 = !{!17, !6, i64 24}
!17 = !{!"_ZTS16ObjectiveWrapper", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !15, i64 32, !15, i64 36, !15, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !18, i64 80, !18, i64 88, !18, i64 96, !18, i64 104, !15, i64 112, !12, i64 120, !12, i64 128, !12, i64 136, !15, i64 144, !6, i64 152}
!18 = !{!"double", !7, i64 0}
!19 = !{!20, !12, i64 0}
!20 = !{!"_ZTSN14NAMESPACE_MAIN15DataSetBoostingE", !12, i64 0, !12, i64 8, !6, i64 16, !6, i64 24, !6, i64 32}
!21 = !{!20, !12, i64 8}
!22 = !{!20, !6, i64 16}
!23 = !{!20, !6, i64 24}
!24 = !{!20, !6, i64 32}
!25 = !{!17, !12, i64 120}
!26 = distinct !{!26, !27}
!27 = !{!"llvm.loop.mustprogress"}
!28 = distinct !{!28, !27}
!29 = !{!30, !6, i64 8}
!30 = !{!"_ZTSN14NAMESPACE_MAIN18DataSubsetBoostingE", !12, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48}
!31 = !{!30, !12, i64 0}
!32 = !{!30, !6, i64 40}
!33 = distinct !{!33, !27}
!34 = !{!30, !6, i64 48}
!35 = distinct !{!35, !27}
!36 = !{i8 0, i8 2}
!37 = !{}


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

%"struct.NAMESPACE_MAIN::DataSubsetBoosting" = type { i64, ptr, ptr, ptr, ptr, ptr, ptr }

@g_traceLevel = external local_unnamed_addr global i32, align 4
@.str = external hidden unnamed_addr constant [89 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [23 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage = external hidden constant [45 x i8], align 16
@__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl = external hidden unnamed_addr constant [20 x i8], align 1
@__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl = external hidden unnamed_addr constant [447 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [155 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_0 = external hidden constant [99 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_1 = external hidden constant [64 x i8], align 16
@.str.173 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.177 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [47 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_2 = external hidden constant [85 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_3 = external hidden constant [67 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_4 = external hidden constant [73 x i8], align 16
@.str.181 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [22 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_5 = external hidden constant [44 x i8], align 16

declare void @InteralLogWithoutArguments(i32 noundef, ptr noundef) local_unnamed_addr #0

declare void @LogAssertFailure(i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting12InitGradHessEbm(ptr noundef nonnull align 8 dereferenceable(40), i1 noundef zeroext, i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef, i64 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting16InitSampleScoresEmPKdaPKaS2_(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef, ptr noundef, i8 noundef signext, ptr noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, i8 noundef signext, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, i8 noundef signext, i64 noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting11CopyWeightsEPKhaPKa(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, i8 noundef signext, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting8InitBagsEbPvmmPKPKNS_4TermE(ptr noundef nonnull align 8 dereferenceable(40), i1 noundef zeroext, ptr noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl(ptr noundef nonnull align 8 dereferenceable(40) %0, i1 noundef zeroext %1, i1 noundef zeroext %2, i1 noundef zeroext %3, i1 noundef zeroext %4, i1 noundef zeroext %5, ptr noundef %6, i64 noundef %7, i64 noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, i8 noundef signext %13, i64 noundef %14, ptr noundef %15, ptr noundef %16, i64 noundef %17, i64 noundef %18, i64 noundef %19, i64 noundef %20, ptr noundef %21, ptr noundef %22) local_unnamed_addr #2 align 2 {
  %24 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %25 = icmp sgt i32 %24, 2
  br i1 %25, label %26, label %27

26:                                               ; preds = %23
  tail call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage)
  br label %27

27:                                               ; preds = %26, %23
  %.not = icmp eq i64 %7, 0
  br i1 %.not, label %28, label %29

28:                                               ; preds = %27
  tail call void @LogAssertFailure(i64 noundef 1118, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.3)
  tail call void @__assert_fail(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str, i32 noundef 1118, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

29:                                               ; preds = %27
  %.not183 = icmp eq i64 %8, 0
  br i1 %.not183, label %30, label %31

30:                                               ; preds = %29
  tail call void @LogAssertFailure(i64 noundef 1119, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.147)
  tail call void @__assert_fail(ptr noundef nonnull @.str.148, ptr noundef nonnull @.str, i32 noundef 1119, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

31:                                               ; preds = %29
  %.not184 = icmp eq ptr %9, null
  br i1 %.not184, label %32, label %33

32:                                               ; preds = %31
  tail call void @LogAssertFailure(i64 noundef 1120, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.149)
  tail call void @__assert_fail(ptr noundef nonnull @.str.150, ptr noundef nonnull @.str, i32 noundef 1120, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

33:                                               ; preds = %31
  %34 = getelementptr inbounds i8, ptr %9, i64 24
  %35 = load ptr, ptr %34, align 8, !tbaa !9
  %.not185 = icmp eq ptr %35, null
  br i1 %.not185, label %36, label %37

36:                                               ; preds = %33
  tail call void @LogAssertFailure(i64 noundef 1121, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.151)
  tail call void @__assert_fail(ptr noundef nonnull @.str.152, ptr noundef nonnull @.str, i32 noundef 1121, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

37:                                               ; preds = %33
  %.not186 = icmp eq ptr %10, null
  br i1 %.not186, label %38, label %39

38:                                               ; preds = %37
  tail call void @LogAssertFailure(i64 noundef 1122, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.153)
  tail call void @__assert_fail(ptr noundef nonnull @.str.154, ptr noundef nonnull @.str, i32 noundef 1122, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

39:                                               ; preds = %37
  %.not187 = icmp eq ptr %11, null
  br i1 %.not187, label %40, label %41

40:                                               ; preds = %39
  tail call void @LogAssertFailure(i64 noundef 1123, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.27)
  tail call void @__assert_fail(ptr noundef nonnull @.str.28, ptr noundef nonnull @.str, i32 noundef 1123, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

41:                                               ; preds = %39
  switch i8 %13, label %42 [
    i8 -1, label %43
    i8 1, label %43
  ]

42:                                               ; preds = %41
  tail call void @LogAssertFailure(i64 noundef 1124, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.13)
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str, i32 noundef 1124, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

43:                                               ; preds = %41, %41
  %44 = load i64, ptr %0, align 8, !tbaa !14
  %45 = icmp eq i64 %44, 0
  br i1 %45, label %47, label %46

46:                                               ; preds = %43
  tail call void @LogAssertFailure(i64 noundef 1126, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.155)
  tail call void @__assert_fail(ptr noundef nonnull @.str.156, ptr noundef nonnull @.str, i32 noundef 1126, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

47:                                               ; preds = %43
  %48 = getelementptr inbounds i8, ptr %0, i64 8
  %49 = load i64, ptr %48, align 8, !tbaa !16
  %50 = icmp eq i64 %49, 0
  br i1 %50, label %52, label %51

51:                                               ; preds = %47
  tail call void @LogAssertFailure(i64 noundef 1127, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.157)
  tail call void @__assert_fail(ptr noundef nonnull @.str.158, ptr noundef nonnull @.str, i32 noundef 1127, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

52:                                               ; preds = %47
  %53 = getelementptr inbounds i8, ptr %0, i64 16
  %54 = load ptr, ptr %53, align 8, !tbaa !17
  %55 = icmp eq ptr %54, null
  br i1 %55, label %57, label %56

56:                                               ; preds = %52
  tail call void @LogAssertFailure(i64 noundef 1128, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.159)
  tail call void @__assert_fail(ptr noundef nonnull @.str.160, ptr noundef nonnull @.str, i32 noundef 1128, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

57:                                               ; preds = %52
  %58 = getelementptr inbounds i8, ptr %0, i64 24
  %59 = load ptr, ptr %58, align 8, !tbaa !18
  %60 = icmp eq ptr %59, null
  br i1 %60, label %62, label %61

61:                                               ; preds = %57
  tail call void @LogAssertFailure(i64 noundef 1129, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.161)
  tail call void @__assert_fail(ptr noundef nonnull @.str.162, ptr noundef nonnull @.str, i32 noundef 1129, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

62:                                               ; preds = %57
  %63 = getelementptr inbounds i8, ptr %0, i64 32
  %64 = load ptr, ptr %63, align 8, !tbaa !19
  %65 = icmp eq ptr %64, null
  br i1 %65, label %67, label %66

66:                                               ; preds = %62
  tail call void @LogAssertFailure(i64 noundef 1130, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.163)
  tail call void @__assert_fail(ptr noundef nonnull @.str.164, ptr noundef nonnull @.str, i32 noundef 1130, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

67:                                               ; preds = %62
  %.not188 = icmp eq i64 %17, 0
  br i1 %.not188, label %203, label %68

68:                                               ; preds = %67
  %.not189 = icmp eq i64 %14, 0
  br i1 %.not189, label %69, label %70

69:                                               ; preds = %68
  tail call void @LogAssertFailure(i64 noundef 1133, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.43)
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str, i32 noundef 1133, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

70:                                               ; preds = %68
  store i64 %17, ptr %0, align 8, !tbaa !14
  %71 = getelementptr inbounds i8, ptr %9, i64 120
  %72 = load i64, ptr %71, align 8, !tbaa !20
  %73 = icmp eq i64 %72, 1
  br i1 %73, label %75, label %74

74:                                               ; preds = %70
  tail call void @LogAssertFailure(i64 noundef 1137, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.165)
  tail call void @__assert_fail(ptr noundef nonnull @.str.166, ptr noundef nonnull @.str, i32 noundef 1137, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

75:                                               ; preds = %70
  %76 = getelementptr inbounds i8, ptr %10, i64 24
  %77 = load ptr, ptr %76, align 8, !tbaa !9
  %78 = icmp eq ptr %77, null
  %79 = getelementptr inbounds i8, ptr %10, i64 120
  %80 = load i64, ptr %79, align 8, !tbaa !20
  br i1 %78, label %81, label %83

81:                                               ; preds = %75
  %82 = icmp eq i64 %80, 0
  br i1 %82, label %85, label %.thread

83:                                               ; preds = %75
  %84 = icmp ugt i64 %80, 1
  br i1 %84, label %85, label %.thread

.thread:                                          ; preds = %81, %83
  tail call void @LogAssertFailure(i64 noundef 1139, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.167)
  tail call void @__assert_fail(ptr noundef nonnull @.str.168, ptr noundef nonnull @.str, i32 noundef 1139, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

85:                                               ; preds = %83, %81
  %86 = phi i64 [ %80, %83 ], [ 0, %81 ]
  %87 = add i64 %86, -1
  br label %88

88:                                               ; preds = %98, %85
  %.0142 = phi i64 [ %17, %85 ], [ %99, %98 ]
  %.0141 = phi i64 [ 0, %85 ], [ %94, %98 ]
  %89 = tail call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMinImEET_S1_S1_(i64 noundef %.0142, i64 noundef %8) #7
  %or.cond.not = icmp ult i64 %87, %89
  br i1 %or.cond.not, label %90, label %93

90:                                               ; preds = %88
  %91 = urem i64 %89, %86
  %92 = sub nuw i64 %89, %91
  br label %93

93:                                               ; preds = %88, %90
  %.0143 = phi i64 [ %89, %88 ], [ %92, %90 ]
  %94 = add i64 %.0141, 1
  %.not191 = icmp eq i64 %.0143, 0
  br i1 %.not191, label %95, label %96

95:                                               ; preds = %93
  tail call void @LogAssertFailure(i64 noundef 1154, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.9)
  tail call void @__assert_fail(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str, i32 noundef 1154, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

96:                                               ; preds = %93
  %.not192 = icmp ugt i64 %.0143, %.0142
  br i1 %.not192, label %97, label %98

97:                                               ; preds = %96
  tail call void @LogAssertFailure(i64 noundef 1155, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.169)
  tail call void @__assert_fail(ptr noundef nonnull @.str.170, ptr noundef nonnull @.str, i32 noundef 1155, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

98:                                               ; preds = %96
  %99 = sub i64 %.0142, %.0143
  %.not193 = icmp eq i64 %99, 0
  br i1 %.not193, label %100, label %88, !llvm.loop !21

100:                                              ; preds = %98
  %.not194 = icmp eq i64 %94, 0
  br i1 %.not194, label %101, label %102

101:                                              ; preds = %100
  tail call void @LogAssertFailure(i64 noundef 1158, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.171)
  tail call void @__assert_fail(ptr noundef nonnull @.str.172, ptr noundef nonnull @.str, i32 noundef 1158, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

102:                                              ; preds = %100
  %103 = tail call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef 56, i64 noundef %94) #7
  br i1 %103, label %104, label %108

104:                                              ; preds = %102
  %105 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %106 = icmp sgt i32 %105, 1
  br i1 %106, label %107, label %.thread220

107:                                              ; preds = %104
  tail call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_0)
  br label %.thread220

108:                                              ; preds = %102
  %109 = mul i64 %94, 56
  %110 = tail call noalias ptr @malloc(i64 noundef %109) #8
  %111 = icmp eq ptr %110, null
  br i1 %111, label %112, label %116

112:                                              ; preds = %108
  %113 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %114 = icmp sgt i32 %113, 1
  br i1 %114, label %115, label %.thread220

115:                                              ; preds = %112
  tail call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_1)
  br label %.thread220

116:                                              ; preds = %108
  store ptr %110, ptr %53, align 8, !tbaa !17
  store i64 %94, ptr %48, align 8, !tbaa !16
  %117 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %110, i64 %94
  br label %118

118:                                              ; preds = %118, %116
  %.0153 = phi ptr [ %110, %116 ], [ %119, %118 ]
  tail call void @_ZN14NAMESPACE_MAIN18DataSubsetBoosting26SafeInitDataSubsetBoostingEv(ptr noundef nonnull align 8 dereferenceable(56) %.0153)
  %119 = getelementptr inbounds i8, ptr %.0153, i64 56
  %.not195 = icmp eq ptr %117, %119
  br i1 %.not195, label %.preheader.split, label %118, !llvm.loop !23

.preheader.split:                                 ; preds = %118
  %.not200 = icmp eq i64 %20, 0
  %120 = shl i64 %20, 3
  br i1 %.not200, label %.preheader.split.split.us, label %.preheader.split.split

.preheader.split.split.us:                        ; preds = %.preheader.split, %140
  %.0154.us = phi ptr [ %143, %140 ], [ %110, %.preheader.split ]
  %.0152.us = phi i64 [ %141, %140 ], [ %17, %.preheader.split ]
  %.not196.us = icmp eq i64 %.0152.us, 0
  br i1 %.not196.us, label %.split.us, label %121

121:                                              ; preds = %.preheader.split.split.us
  %122 = tail call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMinImEET_S1_S1_(i64 noundef %.0152.us, i64 noundef %8) #7
  %or.cond211.not.us = icmp ult i64 %87, %122
  br i1 %or.cond211.not.us, label %123, label %126

123:                                              ; preds = %121
  %124 = urem i64 %122, %86
  %125 = sub nuw i64 %122, %124
  br label %126

126:                                              ; preds = %121, %123
  %.sink = phi ptr [ %10, %123 ], [ %9, %121 ]
  %.0151.us = phi i64 [ %125, %123 ], [ %122, %121 ]
  %127 = getelementptr inbounds i8, ptr %.0154.us, i64 8
  store ptr %.sink, ptr %127, align 8
  %128 = getelementptr inbounds i8, ptr %.sink, i64 24
  %129 = load ptr, ptr %128, align 8, !tbaa !9
  %.not197.us = icmp eq ptr %129, null
  br i1 %.not197.us, label %.split234.us, label %130

130:                                              ; preds = %126
  %.not198.us = icmp eq i64 %.0151.us, 0
  br i1 %.not198.us, label %.split236.us, label %131

131:                                              ; preds = %130
  %132 = getelementptr inbounds i8, ptr %.sink, i64 120
  %133 = load i64, ptr %132, align 8, !tbaa !20
  %134 = urem i64 %.0151.us, %133
  %135 = icmp eq i64 %134, 0
  br i1 %135, label %136, label %.split238.us

136:                                              ; preds = %131
  %.not199.us = icmp ugt i64 %.0151.us, %.0152.us
  br i1 %.not199.us, label %.split240.us, label %137

137:                                              ; preds = %136
  store i64 %.0151.us, ptr %.0154.us, align 8, !tbaa !24
  %138 = tail call noundef ptr @_ZN14NAMESPACE_MAIN14SubsetInnerBag23AllocateSubsetInnerBagsEm(i64 noundef %18)
  %139 = icmp eq ptr %138, null
  br i1 %139, label %.split242.us, label %140

140:                                              ; preds = %137
  %141 = sub i64 %.0152.us, %.0151.us
  %142 = getelementptr inbounds i8, ptr %.0154.us, i64 48
  store ptr %138, ptr %142, align 8, !tbaa !26
  %143 = getelementptr inbounds i8, ptr %.0154.us, i64 56
  %.not203.us = icmp eq ptr %117, %143
  br i1 %.not203.us, label %.split244.us, label %.preheader.split.split.us, !llvm.loop !27

.preheader.split.split:                           ; preds = %.preheader.split, %179
  %.0154 = phi ptr [ %181, %179 ], [ %110, %.preheader.split ]
  %.0152 = phi i64 [ %161, %179 ], [ %17, %.preheader.split ]
  %.not196 = icmp eq i64 %.0152, 0
  br i1 %.not196, label %.split.us, label %144

.split.us:                                        ; preds = %.preheader.split.split, %.preheader.split.split.us
  tail call void @LogAssertFailure(i64 noundef 1183, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.173)
  tail call void @__assert_fail(ptr noundef nonnull @.str.174, ptr noundef nonnull @.str, i32 noundef 1183, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

144:                                              ; preds = %.preheader.split.split
  %145 = tail call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMinImEET_S1_S1_(i64 noundef %.0152, i64 noundef %8) #7
  %or.cond211.not = icmp ult i64 %87, %145
  br i1 %or.cond211.not, label %146, label %149

146:                                              ; preds = %144
  %147 = urem i64 %145, %86
  %148 = sub nuw i64 %145, %147
  br label %149

149:                                              ; preds = %144, %146
  %.sink260 = phi ptr [ %10, %146 ], [ %9, %144 ]
  %.0151 = phi i64 [ %148, %146 ], [ %145, %144 ]
  %150 = getelementptr inbounds i8, ptr %.0154, i64 8
  store ptr %.sink260, ptr %150, align 8
  %151 = getelementptr inbounds i8, ptr %.sink260, i64 24
  %152 = load ptr, ptr %151, align 8, !tbaa !9
  %.not197 = icmp eq ptr %152, null
  br i1 %.not197, label %.split234.us, label %153

.split234.us:                                     ; preds = %149, %126
  tail call void @LogAssertFailure(i64 noundef 1195, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.175)
  tail call void @__assert_fail(ptr noundef nonnull @.str.176, ptr noundef nonnull @.str, i32 noundef 1195, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

153:                                              ; preds = %149
  %.not198 = icmp eq i64 %.0151, 0
  br i1 %.not198, label %.split236.us, label %154

.split236.us:                                     ; preds = %153, %130
  tail call void @LogAssertFailure(i64 noundef 1196, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.9)
  tail call void @__assert_fail(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str, i32 noundef 1196, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

154:                                              ; preds = %153
  %155 = getelementptr inbounds i8, ptr %.sink260, i64 120
  %156 = load i64, ptr %155, align 8, !tbaa !20
  %157 = urem i64 %.0151, %156
  %158 = icmp eq i64 %157, 0
  br i1 %158, label %159, label %.split238.us

.split238.us:                                     ; preds = %154, %131
  tail call void @LogAssertFailure(i64 noundef 1197, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.177)
  tail call void @__assert_fail(ptr noundef nonnull @.str.178, ptr noundef nonnull @.str, i32 noundef 1197, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

159:                                              ; preds = %154
  %.not199 = icmp ugt i64 %.0151, %.0152
  br i1 %.not199, label %.split240.us, label %160

.split240.us:                                     ; preds = %159, %136
  tail call void @LogAssertFailure(i64 noundef 1198, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.179)
  tail call void @__assert_fail(ptr noundef nonnull @.str.180, ptr noundef nonnull @.str, i32 noundef 1198, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

160:                                              ; preds = %159
  %161 = sub i64 %.0152, %.0151
  store i64 %.0151, ptr %.0154, align 8, !tbaa !24
  %162 = tail call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef 8, i64 noundef %20) #7
  br i1 %162, label %163, label %167

163:                                              ; preds = %160
  %164 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %165 = icmp sgt i32 %164, 1
  br i1 %165, label %166, label %.thread220

166:                                              ; preds = %163
  tail call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_2)
  br label %.thread220

167:                                              ; preds = %160
  %calloc = tail call ptr @calloc(i64 1, i64 %120)
  %.not202 = icmp eq ptr %calloc, null
  br i1 %.not202, label %168, label %172

168:                                              ; preds = %167
  %169 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %170 = icmp sgt i32 %169, 1
  br i1 %170, label %171, label %.thread220

171:                                              ; preds = %168
  tail call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_3)
  br label %.thread220

172:                                              ; preds = %167
  %173 = getelementptr inbounds i8, ptr %.0154, i64 40
  store ptr %calloc, ptr %173, align 8, !tbaa !28
  %174 = tail call noundef ptr @_ZN14NAMESPACE_MAIN14SubsetInnerBag23AllocateSubsetInnerBagsEm(i64 noundef %18)
  %175 = icmp eq ptr %174, null
  br i1 %175, label %.split242.us, label %179

.split242.us:                                     ; preds = %172, %137
  %176 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %177 = icmp sgt i32 %176, 1
  br i1 %177, label %178, label %.thread220

178:                                              ; preds = %.split242.us
  tail call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_4)
  br label %.thread220

179:                                              ; preds = %172
  %180 = getelementptr inbounds i8, ptr %.0154, i64 48
  store ptr %174, ptr %180, align 8, !tbaa !26
  %181 = getelementptr inbounds i8, ptr %.0154, i64 56
  %.not203 = icmp eq ptr %117, %181
  br i1 %.not203, label %.split244.us, label %.preheader.split.split, !llvm.loop !27

.split244.us:                                     ; preds = %179, %140
  %.us-phi = phi i64 [ %141, %140 ], [ %161, %179 ]
  %182 = icmp eq i64 %.us-phi, 0
  br i1 %182, label %184, label %183

183:                                              ; preds = %.split244.us
  tail call void @LogAssertFailure(i64 noundef 1232, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.181)
  tail call void @__assert_fail(ptr noundef nonnull @.str.182, ptr noundef nonnull @.str, i32 noundef 1232, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

184:                                              ; preds = %.split244.us
  br i1 %1, label %185, label %187

185:                                              ; preds = %184
  %186 = tail call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting12InitGradHessEbm(ptr noundef nonnull align 8 dereferenceable(40) %0, i1 noundef zeroext %2, i64 noundef %7)
  %.not204 = icmp eq i32 %186, 0
  br i1 %.not204, label %189, label %.thread220

187:                                              ; preds = %184
  br i1 %2, label %188, label %189

188:                                              ; preds = %187
  tail call void @LogAssertFailure(i64 noundef 1240, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl, ptr noundef nonnull @.str.183)
  tail call void @__assert_fail(ptr noundef nonnull @.str.184, ptr noundef nonnull @.str, i32 noundef 1240, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl) #6
  unreachable

189:                                              ; preds = %187, %185
  br i1 %3, label %190, label %192

190:                                              ; preds = %189
  %191 = tail call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting16InitSampleScoresEmPKdaPKaS2_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %7, ptr noundef %12, i8 noundef signext %13, ptr noundef %15, ptr noundef %16)
  %.not205 = icmp eq i32 %191, 0
  br i1 %.not205, label %192, label %.thread220

192:                                              ; preds = %190, %189
  br i1 %4, label %193, label %195

193:                                              ; preds = %192
  %194 = tail call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef nonnull %11, i8 noundef signext %13, ptr noundef %15)
  %.not206 = icmp eq i32 %194, 0
  br i1 %.not206, label %195, label %.thread220

195:                                              ; preds = %193, %192
  br i1 %.not200, label %198, label %196

196:                                              ; preds = %195
  %197 = tail call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef nonnull %11, i8 noundef signext %13, i64 noundef %14, ptr noundef %15, i64 noundef %20, ptr noundef %21, ptr noundef %22)
  %.not207 = icmp eq i32 %197, 0
  br i1 %.not207, label %198, label %.thread220

198:                                              ; preds = %196, %195
  %.not208 = icmp eq i64 %19, 0
  br i1 %.not208, label %201, label %199

199:                                              ; preds = %198
  %200 = tail call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting11CopyWeightsEPKhaPKa(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef nonnull %11, i8 noundef signext %13, ptr noundef %15)
  %.not209 = icmp eq i32 %200, 0
  br i1 %.not209, label %201, label %.thread220

201:                                              ; preds = %198, %199
  %202 = tail call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting8InitBagsEbPvmmPKPKNS_4TermE(ptr noundef nonnull align 8 dereferenceable(40) %0, i1 noundef zeroext %5, ptr noundef %6, i64 noundef %18, i64 noundef %20, ptr noundef %21)
  %.not210 = icmp eq i32 %202, 0
  br i1 %.not210, label %203, label %.thread220

203:                                              ; preds = %67, %201
  %204 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %205 = icmp sgt i32 %204, 2
  br i1 %205, label %206, label %.thread220

206:                                              ; preds = %203
  tail call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKlE13LOG__sMessage_5)
  br label %.thread220

.thread220:                                       ; preds = %171, %168, %.split242.us, %178, %163, %166, %199, %196, %193, %190, %185, %112, %115, %104, %107, %203, %206, %201
  %.8 = phi i32 [ %202, %201 ], [ 0, %206 ], [ 0, %203 ], [ %200, %199 ], [ %197, %196 ], [ %194, %193 ], [ %191, %190 ], [ %186, %185 ], [ -1, %112 ], [ -1, %115 ], [ -1, %104 ], [ -1, %107 ], [ -1, %166 ], [ -1, %163 ], [ -1, %178 ], [ -1, %.split242.us ], [ -1, %168 ], [ -1, %171 ]
  ret i32 %.8
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i64 @_ZN14NAMESPACE_MAINL6EbmMinImEET_S1_S1_(i64 noundef, i64 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14NAMESPACE_MAIN18DataSubsetBoosting26SafeInitDataSubsetBoostingEv(ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #3 align 2

declare noundef ptr @_ZN14NAMESPACE_MAIN14SubsetInnerBag23AllocateSubsetInnerBagsEm(i64 noundef) local_unnamed_addr #0

; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #5

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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 #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 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 #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" }
attributes #6 = { noreturn nounwind }
attributes #7 = { nounwind }
attributes #8 = { nounwind allocsize(0) }

!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, !11, i64 24}
!10 = !{!"_ZTS16ObjectiveWrapper", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !6, i64 32, !6, i64 36, !6, i64 40, !12, i64 48, !12, i64 56, !12, i64 64, !12, i64 72, !12, i64 80, !12, i64 88, !12, i64 96, !12, i64 104, !6, i64 112, !13, i64 120, !13, i64 128, !13, i64 136, !6, i64 144, !11, i64 152}
!11 = !{!"any pointer", !7, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!15, !13, i64 0}
!15 = !{!"_ZTSN14NAMESPACE_MAIN15DataSetBoostingE", !13, i64 0, !13, i64 8, !11, i64 16, !11, i64 24, !11, i64 32}
!16 = !{!15, !13, i64 8}
!17 = !{!15, !11, i64 16}
!18 = !{!15, !11, i64 24}
!19 = !{!15, !11, i64 32}
!20 = !{!10, !13, i64 120}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.mustprogress"}
!23 = distinct !{!23, !22}
!24 = !{!25, !13, i64 0}
!25 = !{!"_ZTSN14NAMESPACE_MAIN18DataSubsetBoostingE", !13, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48}
!26 = !{!25, !11, i64 48}
!27 = distinct !{!27, !22}
!28 = !{!25, !11, i64 40}


; Effective O3 passes: BDCEPass,ConstraintEliminationPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,MergedLoadStoreMotionPass,SROAPass,SimplifyCFGPass,TailCallElimPass