; 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.NAMESPACE_MAIN::FeatureDimension" = type { ptr, i64, i64, i32, i32, i32 }
%"struct.NAMESPACE_MAIN::DataSetBoosting" = type { i64, i64, ptr, ptr, ptr }
%"struct.NAMESPACE_MAIN::DataSubsetBoosting" = type { i64, ptr, ptr, ptr, ptr, ptr, ptr }
%"struct.NAMESPACE_MAIN::TermFeature" = type { ptr, i64, i64 }
%struct.ObjectiveWrapper = type { ptr, ptr, ptr, ptr, i32, i32, i32, double, double, double, double, double, double, double, double, i32, i64, i64, i64, i32, ptr }

@g_traceLevel = external global i32, align 4
@.str = external hidden unnamed_addr constant [89 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [19 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.19 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [20 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.31 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [60 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage = external hidden constant [38 x i8], align 16
@__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl = external hidden unnamed_addr constant [13 x i8], align 1
@__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl = external hidden unnamed_addr constant [193 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
@.str.45 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [25 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_0 = external hidden constant [82 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_1 = external hidden constant [133 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_2 = external hidden constant [61 x i8], align 16
@.str.89 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_3 = external hidden constant [37 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: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef, i64 noundef) #3

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden void @_ZL17StopClangAnalysisv() #4

declare ptr @AlignedAlloc(i64 noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56)) #5 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef %1, i8 noundef signext %2, i64 noundef %3, ptr noundef %4, i64 noundef %5, ptr noundef %6, ptr noundef %7) #6 align 2 {
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i8, align 1
  %13 = alloca i64, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i64, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i8, align 1
  %21 = alloca ptr, align 8
  %22 = alloca i64, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca [30 x %"struct.NAMESPACE_MAIN::FeatureDimension"], align 16
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i8, align 1
  %33 = alloca i8, align 1
  %34 = alloca i8, align 1
  %35 = alloca i8, align 1
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca ptr, align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i64, align 8
  %44 = alloca ptr, align 8
  %45 = alloca i8, align 1
  %46 = alloca i64, 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 i32, align 4
  %57 = alloca i64, align 8
  %58 = alloca ptr, align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i64, align 8
  %63 = alloca ptr, align 8
  %64 = alloca i8, align 1
  %65 = alloca i64, align 8
  %66 = alloca ptr, align 8
  %67 = alloca i32, align 4
  %68 = alloca i64, align 8
  %69 = alloca i32, align 4
  %70 = alloca i64, align 8
  %71 = alloca ptr, align 8
  %72 = alloca ptr, align 8
  %73 = alloca i64, align 8
  %74 = alloca i32, align 4
  %75 = alloca i64, align 8
  %76 = alloca i32, align 4
  store ptr %0, ptr %10, align 8, !tbaa !5
  store ptr %1, ptr %11, align 8, !tbaa !5
  store i8 %2, ptr %12, align 1, !tbaa !9
  store i64 %3, ptr %13, align 8, !tbaa !10
  store ptr %4, ptr %14, align 8, !tbaa !5
  store i64 %5, ptr %15, align 8, !tbaa !10
  store ptr %6, ptr %16, align 8, !tbaa !5
  store ptr %7, ptr %17, align 8, !tbaa !5
  %77 = load ptr, ptr %10, align 8
  br label %78

78:                                               ; preds = %8
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  store i32 3, ptr %18, align 4, !tbaa !12
  %79 = load i32, ptr @g_traceLevel, align 4, !tbaa !12
  %80 = icmp sle i32 3, %79
  br i1 %80, label %81, label %82

81:                                               ; preds = %78
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage)
  br label %82

82:                                               ; preds = %81, %78
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %83

83:                                               ; preds = %82
  %84 = load ptr, ptr %11, align 8, !tbaa !5
  %85 = icmp ne ptr null, %84
  br i1 %85, label %88, label %86

86:                                               ; preds = %83
  call void @LogAssertFailure(i64 noundef 383, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.27)
  call void @__assert_fail(ptr noundef @.str.28, ptr noundef @.str, i32 noundef 383, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

87:                                               ; No predecessors!
  br label %88

88:                                               ; preds = %87, %83
  %89 = phi i1 [ true, %83 ], [ false, %87 ]
  %90 = load i8, ptr %12, align 1, !tbaa !9
  %91 = sext i8 %90 to i32
  %92 = icmp eq i32 -1, %91
  br i1 %92, label %99, label %93

93:                                               ; preds = %88
  %94 = load i8, ptr %12, align 1, !tbaa !9
  %95 = sext i8 %94 to i32
  %96 = icmp eq i32 1, %95
  br i1 %96, label %99, label %97

97:                                               ; preds = %93
  call void @LogAssertFailure(i64 noundef 384, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.13)
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str, i32 noundef 384, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

98:                                               ; No predecessors!
  br label %99

99:                                               ; preds = %98, %93, %88
  %100 = phi i1 [ true, %93 ], [ true, %88 ], [ false, %98 ]
  %101 = load i64, ptr %13, align 8, !tbaa !10
  %102 = icmp ule i64 1, %101
  br i1 %102, label %105, label %103

103:                                              ; preds = %99
  call void @LogAssertFailure(i64 noundef 385, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.43)
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str, i32 noundef 385, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

104:                                              ; No predecessors!
  br label %105

105:                                              ; preds = %104, %99
  %106 = phi i1 [ true, %99 ], [ false, %104 ]
  %107 = load i64, ptr %15, align 8, !tbaa !10
  %108 = icmp ule i64 1, %107
  br i1 %108, label %111, label %109

109:                                              ; preds = %105
  call void @LogAssertFailure(i64 noundef 386, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.1)
  call void @__assert_fail(ptr noundef @.str.2, ptr noundef @.str, i32 noundef 386, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

110:                                              ; No predecessors!
  br label %111

111:                                              ; preds = %110, %105
  %112 = phi i1 [ true, %105 ], [ false, %110 ]
  %113 = load ptr, ptr %16, 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 387, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.45)
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str, i32 noundef 387, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

116:                                              ; No predecessors!
  br label %117

117:                                              ; preds = %116, %111
  %118 = phi i1 [ true, %111 ], [ false, %116 ]
  %119 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %77, i32 0, i32 2
  %120 = load ptr, ptr %119, align 8, !tbaa !14
  %121 = icmp ne ptr null, %120
  br i1 %121, label %124, label %122

122:                                              ; preds = %117
  call void @LogAssertFailure(i64 noundef 389, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.5)
  call void @__assert_fail(ptr noundef @.str.6, ptr noundef @.str, i32 noundef 389, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

123:                                              ; No predecessors!
  br label %124

124:                                              ; preds = %123, %117
  %125 = phi i1 [ true, %117 ], [ false, %123 ]
  %126 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %77, i32 0, i32 1
  %127 = load i64, ptr %126, align 8, !tbaa !16
  %128 = icmp ule i64 1, %127
  br i1 %128, label %131, label %129

129:                                              ; preds = %124
  call void @LogAssertFailure(i64 noundef 390, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.7)
  call void @__assert_fail(ptr noundef @.str.8, ptr noundef @.str, i32 noundef 390, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

130:                                              ; No predecessors!
  br label %131

131:                                              ; preds = %130, %124
  %132 = phi i1 [ true, %124 ], [ false, %130 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %133 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %77, i32 0, i32 2
  %134 = load ptr, ptr %133, align 8, !tbaa !14
  %135 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %77, i32 0, i32 1
  %136 = load i64, ptr %135, align 8, !tbaa !16
  %137 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %134, i64 %136
  store ptr %137, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #8
  %138 = load i8, ptr %12, align 1, !tbaa !9
  %139 = sext i8 %138 to i32
  %140 = icmp slt i32 %139, 0
  %141 = zext i1 %140 to i8
  store i8 %141, ptr %20, align 1, !tbaa !17
  %142 = load ptr, ptr %14, align 8, !tbaa !5
  %143 = icmp ne ptr null, %142
  br i1 %143, label %149, label %144

144:                                              ; preds = %131
  %145 = load i8, ptr %20, align 1, !tbaa !17, !range !19, !noundef !20
  %146 = trunc i8 %145 to i1
  br i1 %146, label %147, label %149

147:                                              ; preds = %144
  call void @LogAssertFailure(i64 noundef 394, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.31)
  call void @__assert_fail(ptr noundef @.str.32, ptr noundef @.str, i32 noundef 394, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

148:                                              ; No predecessors!
  br label %149

149:                                              ; preds = %148, %144, %131
  %150 = phi i1 [ true, %144 ], [ true, %131 ], [ false, %148 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %151 = load ptr, ptr %17, align 8, !tbaa !5
  store ptr %151, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  store i64 0, ptr %22, align 8, !tbaa !10
  br label %152

152:                                              ; preds = %853, %149
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %153 = load ptr, ptr %16, align 8, !tbaa !5
  %154 = load i64, ptr %22, align 8, !tbaa !10
  %155 = getelementptr inbounds ptr, ptr %153, i64 %154
  %156 = load ptr, ptr %155, align 8, !tbaa !5
  store ptr %156, ptr %23, align 8, !tbaa !5
  %157 = load ptr, ptr %23, align 8, !tbaa !5
  %158 = icmp ne ptr null, %157
  br i1 %158, label %161, label %159

159:                                              ; preds = %152
  call void @LogAssertFailure(i64 noundef 399, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.47)
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str, i32 noundef 399, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

160:                                              ; No predecessors!
  br label %161

161:                                              ; preds = %160, %152
  %162 = phi i1 [ true, %152 ], [ false, %160 ]
  %163 = load ptr, ptr %23, align 8, !tbaa !5
  %164 = call noundef i64 @_ZNK14NAMESPACE_MAIN4Term22GetCountRealDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776) %163) #8
  %165 = icmp eq i64 0, %164
  br i1 %165, label %166, label %182

166:                                              ; preds = %161
  %167 = load ptr, ptr %23, align 8, !tbaa !5
  %168 = call noundef i64 @_ZNK14NAMESPACE_MAIN4Term18GetCountDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776) %167) #8
  %169 = icmp ne i64 0, %168
  br i1 %169, label %170, label %181

170:                                              ; preds = %166
  %171 = load ptr, ptr %21, align 8, !tbaa !5
  %172 = icmp ne ptr null, %171
  br i1 %172, label %175, label %173

173:                                              ; preds = %170
  call void @LogAssertFailure(i64 noundef 403, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.49)
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str, i32 noundef 403, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

174:                                              ; No predecessors!
  br label %175

175:                                              ; preds = %174, %170
  %176 = phi i1 [ true, %170 ], [ false, %174 ]
  %177 = load ptr, ptr %23, align 8, !tbaa !5
  %178 = call noundef i64 @_ZNK14NAMESPACE_MAIN4Term18GetCountDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776) %177) #8
  %179 = load ptr, ptr %21, align 8, !tbaa !5
  %180 = getelementptr inbounds i64, ptr %179, i64 %178
  store ptr %180, ptr %21, align 8, !tbaa !5
  br label %181

181:                                              ; preds = %175, %166
  br label %847

182:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  %183 = load ptr, ptr %23, align 8, !tbaa !5
  %184 = call noundef ptr @_ZNK14NAMESPACE_MAIN4Term15GetTermFeaturesEv(ptr noundef nonnull align 8 dereferenceable(776) %183) #8
  store ptr %184, ptr %24, align 8, !tbaa !5
  %185 = load ptr, ptr %23, align 8, !tbaa !5
  %186 = call noundef i64 @_ZNK14NAMESPACE_MAIN4Term18GetCountDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776) %185) #8
  %187 = icmp ule i64 1, %186
  br i1 %187, label %190, label %188

188:                                              ; preds = %182
  call void @LogAssertFailure(i64 noundef 408, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.51)
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str, i32 noundef 408, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

189:                                              ; No predecessors!
  br label %190

190:                                              ; preds = %189, %182
  %191 = phi i1 [ true, %182 ], [ false, %189 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %192 = load ptr, ptr %24, align 8, !tbaa !5
  %193 = load ptr, ptr %23, align 8, !tbaa !5
  %194 = call noundef i64 @_ZNK14NAMESPACE_MAIN4Term18GetCountDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776) %193) #8
  %195 = getelementptr inbounds %"struct.NAMESPACE_MAIN::TermFeature", ptr %192, i64 %194
  store ptr %195, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1200, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %196 = getelementptr inbounds [30 x %"struct.NAMESPACE_MAIN::FeatureDimension"], ptr %26, i64 0, i64 0
  store ptr %196, ptr %27, align 8, !tbaa !5
  br label %197

197:                                              ; preds = %330, %190
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  %198 = load ptr, ptr %24, align 8, !tbaa !5
  %199 = getelementptr inbounds %"struct.NAMESPACE_MAIN::TermFeature", ptr %198, i32 0, i32 0
  %200 = load ptr, ptr %199, align 8, !tbaa !21
  store ptr %200, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  %201 = load ptr, ptr %28, align 8, !tbaa !5
  %202 = call noundef i64 @_ZNK14NAMESPACE_MAIN15FeatureBoosting12GetCountBinsEv(ptr noundef nonnull align 8 dereferenceable(16) %201) #8
  store i64 %202, ptr %29, align 8, !tbaa !10
  %203 = load i64, ptr %29, align 8, !tbaa !10
  %204 = icmp ule i64 1, %203
  br i1 %204, label %207, label %205

205:                                              ; preds = %197
  call void @LogAssertFailure(i64 noundef 416, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.53)
  call void @__assert_fail(ptr noundef @.str.54, ptr noundef @.str, i32 noundef 416, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

206:                                              ; No predecessors!
  br label %207

207:                                              ; preds = %206, %197
  %208 = phi i1 [ true, %197 ], [ false, %206 ]
  %209 = load i64, ptr %29, align 8, !tbaa !10
  %210 = icmp ult i64 1, %209
  br i1 %210, label %211, label %325

211:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %212 = load ptr, ptr %21, align 8, !tbaa !5
  %213 = load i64, ptr %212, align 8, !tbaa !10
  store i64 %213, ptr %30, align 8, !tbaa !10
  %214 = load i64, ptr %30, align 8, !tbaa !10
  %215 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImlEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuesr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %214) #8
  br i1 %215, label %216, label %218

216:                                              ; preds = %211
  call void @LogAssertFailure(i64 noundef 419, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.55)
  call void @__assert_fail(ptr noundef @.str.56, ptr noundef @.str, i32 noundef 419, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

217:                                              ; No predecessors!
  br label %218

218:                                              ; preds = %217, %211
  %219 = phi i1 [ true, %211 ], [ false, %217 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %220 = load i64, ptr %30, align 8, !tbaa !10
  store i64 %220, ptr %31, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #8
  %221 = load ptr, ptr %11, align 8, !tbaa !5
  %222 = load i64, ptr %31, align 8, !tbaa !10
  %223 = call noundef ptr @_ZN14NAMESPACE_MAIN23GetDataSetSharedFeatureEPKhmPbS2_S2_S2_PmS3_S3_(ptr noundef %221, i64 noundef %222, ptr noundef %32, ptr noundef %33, ptr noundef %34, ptr noundef %35, ptr noundef %36, ptr noundef %37, ptr noundef %38)
  store ptr %223, ptr %39, align 8, !tbaa !5
  %224 = load ptr, ptr %39, align 8, !tbaa !5
  %225 = icmp ne ptr null, %224
  br i1 %225, label %228, label %226

226:                                              ; preds = %218
  call void @LogAssertFailure(i64 noundef 438, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.57)
  call void @__assert_fail(ptr noundef @.str.58, ptr noundef @.str, i32 noundef 438, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

227:                                              ; No predecessors!
  br label %228

228:                                              ; preds = %227, %218
  %229 = phi i1 [ true, %218 ], [ false, %227 ]
  %230 = load i8, ptr %35, align 1, !tbaa !17, !range !19, !noundef !20
  %231 = trunc i8 %230 to i1
  br i1 %231, label %232, label %234

232:                                              ; preds = %228
  call void @LogAssertFailure(i64 noundef 439, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.59)
  call void @__assert_fail(ptr noundef @.str.60, ptr noundef @.str, i32 noundef 439, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

233:                                              ; No predecessors!
  br label %234

234:                                              ; preds = %233, %228
  %235 = phi i1 [ true, %228 ], [ false, %233 ]
  %236 = load i64, ptr %36, align 8, !tbaa !10
  %237 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %236) #8
  br i1 %237, label %238, label %240

238:                                              ; preds = %234
  call void @LogAssertFailure(i64 noundef 441, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.61)
  call void @__assert_fail(ptr noundef @.str.62, ptr noundef @.str, i32 noundef 441, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

239:                                              ; No predecessors!
  br label %240

240:                                              ; preds = %239, %234
  %241 = phi i1 [ true, %234 ], [ false, %239 ]
  %242 = load i64, ptr %36, align 8, !tbaa !10
  %243 = load i64, ptr %29, align 8, !tbaa !10
  %244 = icmp eq i64 %242, %243
  br i1 %244, label %247, label %245

245:                                              ; preds = %240
  call void @LogAssertFailure(i64 noundef 442, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.63)
  call void @__assert_fail(ptr noundef @.str.64, ptr noundef @.str, i32 noundef 442, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

246:                                              ; No predecessors!
  br label %247

247:                                              ; preds = %246, %240
  %248 = phi i1 [ true, %240 ], [ false, %246 ]
  %249 = load ptr, ptr %39, align 8, !tbaa !5
  %250 = load ptr, ptr %27, align 8, !tbaa !5
  %251 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %250, i32 0, i32 0
  store ptr %249, ptr %251, align 8, !tbaa !23
  %252 = load i64, ptr %29, align 8, !tbaa !10
  %253 = load ptr, ptr %27, align 8, !tbaa !5
  %254 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %253, i32 0, i32 2
  store i64 %252, ptr %254, align 8, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %255 = load i64, ptr %29, align 8, !tbaa !10
  %256 = sub i64 %255, 1
  %257 = call noundef i32 @_ZN14NAMESPACE_MAINL17CountBitsRequiredImEEiT_(i64 noundef %256) #8
  store i32 %257, ptr %40, align 4, !tbaa !12
  %258 = load i32, ptr %40, align 4, !tbaa !12
  %259 = icmp sle i32 1, %258
  br i1 %259, label %262, label %260

260:                                              ; preds = %247
  call void @LogAssertFailure(i64 noundef 448, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.65)
  call void @__assert_fail(ptr noundef @.str.66, ptr noundef @.str, i32 noundef 448, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

261:                                              ; No predecessors!
  br label %262

262:                                              ; preds = %261, %247
  %263 = phi i1 [ true, %247 ], [ false, %261 ]
  %264 = load i32, ptr %40, align 4, !tbaa !12
  %265 = icmp sle i32 %264, 64
  br i1 %265, label %268, label %266

266:                                              ; preds = %262
  call void @LogAssertFailure(i64 noundef 449, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.67)
  call void @__assert_fail(ptr noundef @.str.68, ptr noundef @.str, i32 noundef 449, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

267:                                              ; No predecessors!
  br label %268

268:                                              ; preds = %267, %262
  %269 = phi i1 [ true, %262 ], [ false, %267 ]
  %270 = load i32, ptr %40, align 4, !tbaa !12
  %271 = icmp sle i32 %270, 64
  br i1 %271, label %274, label %272

272:                                              ; preds = %268
  call void @LogAssertFailure(i64 noundef 451, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.69)
  call void @__assert_fail(ptr noundef @.str.70, ptr noundef @.str, i32 noundef 451, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

273:                                              ; No predecessors!
  br label %274

274:                                              ; preds = %273, %268
  %275 = phi i1 [ true, %268 ], [ false, %273 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  %276 = load i32, ptr %40, align 4, !tbaa !12
  %277 = call noundef i32 @_ZN14NAMESPACE_MAINL22GetCountItemsBitPackedImEEii(i32 noundef %276) #8
  store i32 %277, ptr %41, align 4, !tbaa !12
  %278 = load i32, ptr %41, align 4, !tbaa !12
  %279 = icmp sle i32 1, %278
  br i1 %279, label %282, label %280

280:                                              ; preds = %274
  call void @LogAssertFailure(i64 noundef 454, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.71)
  call void @__assert_fail(ptr noundef @.str.72, ptr noundef @.str, i32 noundef 454, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

281:                                              ; No predecessors!
  br label %282

282:                                              ; preds = %281, %274
  %283 = phi i1 [ true, %274 ], [ false, %281 ]
  %284 = load i32, ptr %41, align 4, !tbaa !12
  %285 = icmp sle i32 %284, 64
  br i1 %285, label %288, label %286

286:                                              ; preds = %282
  call void @LogAssertFailure(i64 noundef 455, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.73)
  call void @__assert_fail(ptr noundef @.str.74, ptr noundef @.str, i32 noundef 455, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

287:                                              ; No predecessors!
  br label %288

288:                                              ; preds = %287, %282
  %289 = phi i1 [ true, %282 ], [ false, %287 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  %290 = load i32, ptr %41, align 4, !tbaa !12
  %291 = call noundef i32 @_ZN14NAMESPACE_MAINL12GetCountBitsImEEii(i32 noundef %290) #8
  store i32 %291, ptr %42, align 4, !tbaa !12
  %292 = load i32, ptr %42, align 4, !tbaa !12
  %293 = icmp sle i32 1, %292
  br i1 %293, label %296, label %294

294:                                              ; preds = %288
  call void @LogAssertFailure(i64 noundef 458, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.75)
  call void @__assert_fail(ptr noundef @.str.76, ptr noundef @.str, i32 noundef 458, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

295:                                              ; No predecessors!
  br label %296

296:                                              ; preds = %295, %288
  %297 = phi i1 [ true, %288 ], [ false, %295 ]
  %298 = load i32, ptr %42, align 4, !tbaa !12
  %299 = icmp sle i32 %298, 64
  br i1 %299, label %302, label %300

300:                                              ; preds = %296
  call void @LogAssertFailure(i64 noundef 459, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.77)
  call void @__assert_fail(ptr noundef @.str.78, ptr noundef @.str, i32 noundef 459, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

301:                                              ; No predecessors!
  br label %302

302:                                              ; preds = %301, %296
  %303 = phi i1 [ true, %296 ], [ false, %301 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  %304 = load i32, ptr %42, align 4, !tbaa !12
  %305 = call noundef i64 @_ZN14NAMESPACE_MAINL11MakeLowMaskImEET_i(i32 noundef %304) #8
  store i64 %305, ptr %43, align 8, !tbaa !10
  %306 = load i32, ptr %41, align 4, !tbaa !12
  %307 = load ptr, ptr %27, align 8, !tbaa !5
  %308 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %307, i32 0, i32 3
  store i32 %306, ptr %308, align 8, !tbaa !26
  %309 = load i32, ptr %42, align 4, !tbaa !12
  %310 = load ptr, ptr %27, align 8, !tbaa !5
  %311 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %310, i32 0, i32 4
  store i32 %309, ptr %311, align 4, !tbaa !27
  %312 = load i64, ptr %43, align 8, !tbaa !10
  %313 = load ptr, ptr %27, align 8, !tbaa !5
  %314 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %313, i32 0, i32 1
  store i64 %312, ptr %314, align 8, !tbaa !28
  %315 = load i64, ptr %13, align 8, !tbaa !10
  %316 = sub i64 %315, 1
  %317 = load i32, ptr %41, align 4, !tbaa !12
  %318 = sext i32 %317 to i64
  %319 = urem i64 %316, %318
  %320 = trunc i64 %319 to i32
  %321 = load ptr, ptr %27, align 8, !tbaa !5
  %322 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %321, i32 0, i32 5
  store i32 %320, ptr %322, align 8, !tbaa !29
  %323 = load ptr, ptr %27, align 8, !tbaa !5
  %324 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %323, i32 1
  store ptr %324, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %325

325:                                              ; preds = %302, %207
  %326 = load ptr, ptr %21, align 8, !tbaa !5
  %327 = getelementptr inbounds i64, ptr %326, i32 1
  store ptr %327, ptr %21, align 8, !tbaa !5
  %328 = load ptr, ptr %24, align 8, !tbaa !5
  %329 = getelementptr inbounds %"struct.NAMESPACE_MAIN::TermFeature", ptr %328, i32 1
  store ptr %329, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %330

330:                                              ; preds = %325
  %331 = load ptr, ptr %25, align 8, !tbaa !5
  %332 = load ptr, ptr %24, align 8, !tbaa !5
  %333 = icmp ne ptr %331, %332
  br i1 %333, label %197, label %334, !llvm.loop !30

334:                                              ; preds = %330
  %335 = load ptr, ptr %27, align 8, !tbaa !5
  %336 = load ptr, ptr %23, align 8, !tbaa !5
  %337 = call noundef i64 @_ZNK14NAMESPACE_MAIN4Term22GetCountRealDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776) %336) #8
  %338 = getelementptr inbounds [30 x %"struct.NAMESPACE_MAIN::FeatureDimension"], ptr %26, i64 0, i64 %337
  %339 = icmp eq ptr %335, %338
  br i1 %339, label %342, label %340

340:                                              ; preds = %334
  call void @LogAssertFailure(i64 noundef 479, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.79)
  call void @__assert_fail(ptr noundef @.str.80, ptr noundef @.str, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

341:                                              ; No predecessors!
  br label %342

342:                                              ; preds = %341, %334
  %343 = phi i1 [ true, %334 ], [ false, %341 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %344 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %344, ptr %44, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #8
  store i8 0, ptr %45, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  %345 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %77, i32 0, i32 2
  %346 = load ptr, ptr %345, align 8, !tbaa !14
  store ptr %346, ptr %47, align 8, !tbaa !5
  br label %347

347:                                              ; preds = %832, %342
  %348 = load ptr, ptr %23, align 8, !tbaa !5
  %349 = call noundef i32 @_ZNK14NAMESPACE_MAIN4Term18GetBitsRequiredMinEv(ptr noundef nonnull align 8 dereferenceable(776) %348) #8
  %350 = icmp sle i32 1, %349
  br i1 %350, label %353, label %351

351:                                              ; preds = %347
  call void @LogAssertFailure(i64 noundef 487, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.81)
  call void @__assert_fail(ptr noundef @.str.82, ptr noundef @.str, i32 noundef 487, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

352:                                              ; No predecessors!
  br label %353

353:                                              ; preds = %352, %347
  %354 = phi i1 [ true, %347 ], [ false, %352 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  %355 = load ptr, ptr %23, align 8, !tbaa !5
  %356 = call noundef i32 @_ZNK14NAMESPACE_MAIN4Term18GetBitsRequiredMinEv(ptr noundef nonnull align 8 dereferenceable(776) %355) #8
  %357 = load ptr, ptr %47, align 8, !tbaa !5
  %358 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %357)
  %359 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %358, i32 0, i32 18
  %360 = load i64, ptr %359, align 8, !tbaa !32
  %361 = call noundef i32 @_ZN14NAMESPACE_MAINL22GetCountItemsBitPackedEim(i32 noundef %356, i64 noundef %360) #8
  store i32 %361, ptr %48, align 4, !tbaa !12
  %362 = load i32, ptr %48, align 4, !tbaa !12
  %363 = icmp sle i32 1, %362
  br i1 %363, label %366, label %364

364:                                              ; preds = %353
  call void @LogAssertFailure(i64 noundef 490, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.83)
  call void @__assert_fail(ptr noundef @.str.84, ptr noundef @.str, i32 noundef 490, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

365:                                              ; No predecessors!
  br label %366

366:                                              ; preds = %365, %353
  %367 = phi i1 [ true, %353 ], [ false, %365 ]
  br label %368

368:                                              ; preds = %366
  %369 = load i32, ptr %48, align 4, !tbaa !12
  %370 = icmp ne i32 0, %369
  br i1 %370, label %372, label %371

371:                                              ; preds = %368
  call void @_ZL17StopClangAnalysisv() #8
  br label %372

372:                                              ; preds = %371, %368
  br label %373

373:                                              ; preds = %372
  br label %374

374:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #8
  %375 = load i32, ptr %48, align 4, !tbaa !12
  %376 = load ptr, ptr %47, align 8, !tbaa !5
  %377 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %376)
  %378 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %377, i32 0, i32 18
  %379 = load i64, ptr %378, align 8, !tbaa !32
  %380 = call noundef i32 @_ZN14NAMESPACE_MAINL12GetCountBitsEim(i32 noundef %375, i64 noundef %379) #8
  store i32 %380, ptr %49, align 4, !tbaa !12
  %381 = load i32, ptr %49, align 4, !tbaa !12
  %382 = icmp sle i32 1, %381
  br i1 %382, label %385, label %383

383:                                              ; preds = %374
  call void @LogAssertFailure(i64 noundef 495, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.85)
  call void @__assert_fail(ptr noundef @.str.86, ptr noundef @.str, i32 noundef 495, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

384:                                              ; No predecessors!
  br label %385

385:                                              ; preds = %384, %374
  %386 = phi i1 [ true, %374 ], [ false, %384 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  %387 = load ptr, ptr %47, align 8, !tbaa !5
  %388 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %387)
  %389 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %388, i32 0, i32 16
  %390 = load i64, ptr %389, align 8, !tbaa !35
  store i64 %390, ptr %50, align 8, !tbaa !10
  %391 = load i64, ptr %50, align 8, !tbaa !10
  %392 = icmp ule i64 1, %391
  br i1 %392, label %395, label %393

393:                                              ; preds = %385
  call void @LogAssertFailure(i64 noundef 498, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.19)
  call void @__assert_fail(ptr noundef @.str.20, ptr noundef @.str, i32 noundef 498, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

394:                                              ; No predecessors!
  br label %395

395:                                              ; preds = %394, %385
  %396 = phi i1 [ true, %385 ], [ false, %394 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #8
  %397 = load ptr, ptr %47, align 8, !tbaa !5
  %398 = call noundef i64 @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting15GetCountSamplesEv(ptr noundef nonnull align 8 dereferenceable(56) %397)
  store i64 %398, ptr %51, align 8, !tbaa !10
  %399 = load i64, ptr %51, align 8, !tbaa !10
  %400 = icmp ule i64 1, %399
  br i1 %400, label %403, label %401

401:                                              ; preds = %395
  call void @LogAssertFailure(i64 noundef 501, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.9)
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str, i32 noundef 501, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

402:                                              ; No predecessors!
  br label %403

403:                                              ; preds = %402, %395
  %404 = phi i1 [ true, %395 ], [ false, %402 ]
  %405 = load i64, ptr %51, align 8, !tbaa !10
  %406 = load i64, ptr %50, align 8, !tbaa !10
  %407 = urem i64 %405, %406
  %408 = icmp eq i64 0, %407
  br i1 %408, label %411, label %409

409:                                              ; preds = %403
  call void @LogAssertFailure(i64 noundef 502, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.21)
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str, i32 noundef 502, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

410:                                              ; No predecessors!
  br label %411

411:                                              ; preds = %410, %403
  %412 = phi i1 [ true, %403 ], [ false, %410 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #8
  %413 = load i64, ptr %51, align 8, !tbaa !10
  %414 = load i64, ptr %50, align 8, !tbaa !10
  %415 = udiv i64 %413, %414
  store i64 %415, ptr %52, align 8, !tbaa !10
  %416 = load i64, ptr %52, align 8, !tbaa !10
  %417 = icmp ule i64 1, %416
  br i1 %417, label %420, label %418

418:                                              ; preds = %411
  call void @LogAssertFailure(i64 noundef 505, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.87)
  call void @__assert_fail(ptr noundef @.str.88, ptr noundef @.str, i32 noundef 505, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

419:                                              ; No predecessors!
  br label %420

420:                                              ; preds = %419, %411
  %421 = phi i1 [ true, %411 ], [ false, %419 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  %422 = load i64, ptr %52, align 8, !tbaa !10
  %423 = load i32, ptr %48, align 4, !tbaa !12
  %424 = sext i32 %423 to i64
  %425 = udiv i64 %422, %424
  store i64 %425, ptr %53, align 8, !tbaa !10
  %426 = load i64, ptr %53, align 8, !tbaa !10
  %427 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL10IsAddErrorImEEbT_S1_(i64 noundef %426, i64 noundef 1) #8
  br i1 %427, label %428, label %436

428:                                              ; preds = %420
  br label %429

429:                                              ; preds = %428
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #8
  store i32 2, ptr %54, align 4, !tbaa !12
  %430 = load i32, ptr @g_traceLevel, align 4, !tbaa !12
  %431 = icmp sle i32 2, %430
  br i1 %431, label %432, label %433

432:                                              ; preds = %429
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_0)
  br label %433

433:                                              ; preds = %432, %429
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434
  store i32 -1, ptr %9, align 4
  store i32 1, ptr %55, align 4
  br label %829

436:                                              ; preds = %420
  %437 = load i64, ptr %53, align 8, !tbaa !10
  %438 = add i64 %437, 1
  store i64 %438, ptr %53, align 8, !tbaa !10
  %439 = load ptr, ptr %47, align 8, !tbaa !5
  %440 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %439)
  %441 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %440, i32 0, i32 18
  %442 = load i64, ptr %441, align 8, !tbaa !32
  %443 = load i64, ptr %53, align 8, !tbaa !10
  %444 = load i64, ptr %50, align 8, !tbaa !10
  %445 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImJmEEEbT_S1_DpKT0_(i64 noundef %442, i64 noundef %443, i64 noundef %444) #8
  br i1 %445, label %446, label %454

446:                                              ; preds = %436
  br label %447

447:                                              ; preds = %446
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  store i32 2, ptr %56, align 4, !tbaa !12
  %448 = load i32, ptr @g_traceLevel, align 4, !tbaa !12
  %449 = icmp sle i32 2, %448
  br i1 %449, label %450, label %451

450:                                              ; preds = %447
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_1)
  br label %451

451:                                              ; preds = %450, %447
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %452

452:                                              ; preds = %451
  br label %453

453:                                              ; preds = %452
  store i32 -1, ptr %9, align 4
  store i32 1, ptr %55, align 4
  br label %829

454:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  %455 = load ptr, ptr %47, align 8, !tbaa !5
  %456 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %455)
  %457 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %456, i32 0, i32 18
  %458 = load i64, ptr %457, align 8, !tbaa !32
  %459 = load i64, ptr %53, align 8, !tbaa !10
  %460 = mul i64 %458, %459
  %461 = load i64, ptr %50, align 8, !tbaa !10
  %462 = mul i64 %460, %461
  store i64 %462, ptr %57, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  %463 = load i64, ptr %57, align 8, !tbaa !10
  %464 = call ptr @AlignedAlloc(i64 noundef %463)
  store ptr %464, ptr %58, align 8, !tbaa !5
  %465 = load ptr, ptr %58, align 8, !tbaa !5
  %466 = icmp eq ptr null, %465
  br i1 %466, label %467, label %475

467:                                              ; preds = %454
  br label %468

468:                                              ; preds = %467
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #8
  store i32 2, ptr %59, align 4, !tbaa !12
  %469 = load i32, ptr @g_traceLevel, align 4, !tbaa !12
  %470 = icmp sle i32 2, %469
  br i1 %470, label %471, label %472

471:                                              ; preds = %468
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_2)
  br label %472

472:                                              ; preds = %471, %468
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  br label %473

473:                                              ; preds = %472
  br label %474

474:                                              ; preds = %473
  store i32 -1, ptr %9, align 4
  store i32 1, ptr %55, align 4
  br label %828

475:                                              ; preds = %454
  %476 = load ptr, ptr %47, align 8, !tbaa !5
  %477 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %476, i32 0, i32 5
  %478 = load ptr, ptr %477, align 8, !tbaa !36
  %479 = icmp ne ptr null, %478
  br i1 %479, label %482, label %480

480:                                              ; preds = %475
  call void @LogAssertFailure(i64 noundef 528, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.89)
  call void @__assert_fail(ptr noundef @.str.90, ptr noundef @.str, i32 noundef 528, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

481:                                              ; No predecessors!
  br label %482

482:                                              ; preds = %481, %475
  %483 = phi i1 [ true, %475 ], [ false, %481 ]
  %484 = load ptr, ptr %58, align 8, !tbaa !5
  %485 = load ptr, ptr %47, align 8, !tbaa !5
  %486 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %485, i32 0, i32 5
  %487 = load ptr, ptr %486, align 8, !tbaa !36
  %488 = load i64, ptr %22, align 8, !tbaa !10
  %489 = getelementptr inbounds ptr, ptr %487, i64 %488
  store ptr %484, ptr %489, align 8, !tbaa !5
  %490 = load ptr, ptr %58, align 8, !tbaa !5
  %491 = load i64, ptr %57, align 8, !tbaa !10
  call void @llvm.memset.p0.i64(ptr align 1 %490, i8 0, i64 %491, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #8
  %492 = load i64, ptr %52, align 8, !tbaa !10
  %493 = load i32, ptr %48, align 4, !tbaa !12
  %494 = sext i32 %493 to i64
  %495 = urem i64 %492, %494
  %496 = trunc i64 %495 to i32
  %497 = load i32, ptr %49, align 4, !tbaa !12
  %498 = mul nsw i32 %496, %497
  store i32 %498, ptr %60, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #8
  %499 = load i32, ptr %48, align 4, !tbaa !12
  %500 = sub nsw i32 %499, 1
  %501 = load i32, ptr %49, align 4, !tbaa !12
  %502 = mul nsw i32 %500, %501
  store i32 %502, ptr %61, align 4, !tbaa !12
  br label %503

503:                                              ; preds = %814, %482
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %811, %504
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #8
  store i64 0, ptr %62, align 8, !tbaa !10
  br label %506

506:                                              ; preds = %794, %505
  %507 = load i8, ptr %45, align 1, !tbaa !9
  %508 = sext i8 %507 to i32
  %509 = icmp eq i32 0, %508
  br i1 %509, label %510, label %716

510:                                              ; preds = %506
  store i8 1, ptr %45, align 1, !tbaa !9
  %511 = load ptr, ptr %44, align 8, !tbaa !5
  %512 = icmp ne ptr null, %511
  br i1 %512, label %513, label %608

513:                                              ; preds = %510
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #8
  %514 = load ptr, ptr %44, align 8, !tbaa !5
  store ptr %514, ptr %63, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #8
  br label %515

515:                                              ; preds = %530, %513
  br label %516

516:                                              ; preds = %521, %515
  %517 = load ptr, ptr %44, align 8, !tbaa !5
  %518 = load i8, ptr %517, align 1, !tbaa !9
  store i8 %518, ptr %45, align 1, !tbaa !9
  %519 = load ptr, ptr %44, align 8, !tbaa !5
  %520 = getelementptr inbounds i8, ptr %519, i32 1
  store ptr %520, ptr %44, align 8, !tbaa !5
  br label %521

521:                                              ; preds = %516
  %522 = load i8, ptr %45, align 1, !tbaa !9
  %523 = sext i8 %522 to i32
  %524 = icmp eq i32 0, %523
  br i1 %524, label %516, label %525, !llvm.loop !38

525:                                              ; preds = %521
  %526 = load i8, ptr %45, align 1, !tbaa !9
  %527 = sext i8 %526 to i32
  %528 = icmp slt i32 %527, 0
  %529 = zext i1 %528 to i8
  store i8 %529, ptr %64, align 1, !tbaa !17
  br label %530

530:                                              ; preds = %525
  %531 = load i8, ptr %20, align 1, !tbaa !17, !range !19, !noundef !20
  %532 = trunc i8 %531 to i1
  %533 = zext i1 %532 to i32
  %534 = load i8, ptr %64, align 1, !tbaa !17, !range !19, !noundef !20
  %535 = trunc i8 %534 to i1
  %536 = zext i1 %535 to i32
  %537 = icmp ne i32 %533, %536
  br i1 %537, label %515, label %538, !llvm.loop !39

538:                                              ; preds = %530
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #8
  %539 = load ptr, ptr %44, align 8, !tbaa !5
  %540 = load ptr, ptr %63, align 8, !tbaa !5
  %541 = ptrtoint ptr %539 to i64
  %542 = ptrtoint ptr %540 to i64
  %543 = sub i64 %541, %542
  %544 = sub nsw i64 %543, 1
  store i64 %544, ptr %65, align 8, !tbaa !10
  %545 = load i64, ptr %65, align 8, !tbaa !10
  %546 = icmp ne i64 0, %545
  br i1 %546, label %547, label %607

547:                                              ; preds = %538
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #8
  %548 = getelementptr inbounds [30 x %"struct.NAMESPACE_MAIN::FeatureDimension"], ptr %26, i64 0, i64 0
  store ptr %548, ptr %66, align 8, !tbaa !5
  br label %549

549:                                              ; preds = %602, %547
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #8
  %550 = load ptr, ptr %66, align 8, !tbaa !5
  %551 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %550, i32 0, i32 3
  %552 = load i32, ptr %551, align 8, !tbaa !26
  store i32 %552, ptr %67, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #8
  %553 = load i64, ptr %65, align 8, !tbaa !10
  %554 = load i32, ptr %67, align 4, !tbaa !12
  %555 = sext i32 %554 to i64
  %556 = udiv i64 %553, %555
  store i64 %556, ptr %68, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #8
  %557 = load ptr, ptr %66, align 8, !tbaa !5
  %558 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %557, i32 0, i32 5
  %559 = load i32, ptr %558, align 8, !tbaa !29
  store i32 %559, ptr %69, align 4, !tbaa !12
  %560 = load i32, ptr %69, align 4, !tbaa !12
  %561 = icmp sle i32 0, %560
  br i1 %561, label %564, label %562

562:                                              ; preds = %549
  call void @LogAssertFailure(i64 noundef 560, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.91)
  call void @__assert_fail(ptr noundef @.str.92, ptr noundef @.str, i32 noundef 560, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

563:                                              ; No predecessors!
  br label %564

564:                                              ; preds = %563, %549
  %565 = phi i1 [ true, %549 ], [ false, %563 ]
  %566 = load i64, ptr %65, align 8, !tbaa !10
  %567 = load i32, ptr %67, align 4, !tbaa !12
  %568 = sext i32 %567 to i64
  %569 = urem i64 %566, %568
  %570 = trunc i64 %569 to i32
  %571 = load i32, ptr %69, align 4, !tbaa !12
  %572 = sub nsw i32 %571, %570
  store i32 %572, ptr %69, align 4, !tbaa !12
  %573 = load i32, ptr %69, align 4, !tbaa !12
  %574 = load ptr, ptr %66, align 8, !tbaa !5
  %575 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %574, i32 0, i32 5
  store i32 %573, ptr %575, align 8, !tbaa !29
  %576 = load i32, ptr %69, align 4, !tbaa !12
  %577 = icmp slt i32 %576, 0
  br i1 %577, label %578, label %594

578:                                              ; preds = %564
  %579 = load i32, ptr %69, align 4, !tbaa !12
  %580 = load i32, ptr %67, align 4, !tbaa !12
  %581 = add nsw i32 %579, %580
  %582 = load ptr, ptr %66, align 8, !tbaa !5
  %583 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %582, i32 0, i32 5
  store i32 %581, ptr %583, align 8, !tbaa !29
  %584 = load ptr, ptr %66, align 8, !tbaa !5
  %585 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %584, i32 0, i32 5
  %586 = load i32, ptr %585, align 8, !tbaa !29
  %587 = icmp sle i32 0, %586
  br i1 %587, label %590, label %588

588:                                              ; preds = %578
  call void @LogAssertFailure(i64 noundef 565, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.93)
  call void @__assert_fail(ptr noundef @.str.94, ptr noundef @.str, i32 noundef 565, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

589:                                              ; No predecessors!
  br label %590

590:                                              ; preds = %589, %578
  %591 = phi i1 [ true, %578 ], [ false, %589 ]
  %592 = load i64, ptr %68, align 8, !tbaa !10
  %593 = add i64 %592, 1
  store i64 %593, ptr %68, align 8, !tbaa !10
  br label %594

594:                                              ; preds = %590, %564
  %595 = load i64, ptr %68, align 8, !tbaa !10
  %596 = load ptr, ptr %66, align 8, !tbaa !5
  %597 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %596, i32 0, i32 0
  %598 = load ptr, ptr %597, align 8, !tbaa !23
  %599 = getelementptr inbounds i64, ptr %598, i64 %595
  store ptr %599, ptr %597, align 8, !tbaa !23
  %600 = load ptr, ptr %66, align 8, !tbaa !5
  %601 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %600, i32 1
  store ptr %601, ptr %66, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #8
  br label %602

602:                                              ; preds = %594
  %603 = load ptr, ptr %27, align 8, !tbaa !5
  %604 = load ptr, ptr %66, align 8, !tbaa !5
  %605 = icmp ne ptr %603, %604
  br i1 %605, label %549, label %606, !llvm.loop !40

606:                                              ; preds = %602
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  br label %607

607:                                              ; preds = %606, %538
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  br label %608

608:                                              ; preds = %607, %510
  store i64 0, ptr %46, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #8
  store i64 1, ptr %70, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #8
  %609 = getelementptr inbounds [30 x %"struct.NAMESPACE_MAIN::FeatureDimension"], ptr %26, i64 0, i64 0
  store ptr %609, ptr %71, align 8, !tbaa !5
  br label %610

610:                                              ; preds = %703, %608
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #8
  %611 = load ptr, ptr %71, align 8, !tbaa !5
  %612 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %611, i32 0, i32 0
  %613 = load ptr, ptr %612, align 8, !tbaa !23
  store ptr %613, ptr %72, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #8
  %614 = load ptr, ptr %72, align 8, !tbaa !5
  %615 = load i64, ptr %614, align 8, !tbaa !10
  store i64 %615, ptr %73, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #8
  %616 = load ptr, ptr %71, align 8, !tbaa !5
  %617 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %616, i32 0, i32 5
  %618 = load i32, ptr %617, align 8, !tbaa !29
  store i32 %618, ptr %74, align 4, !tbaa !12
  %619 = load i32, ptr %74, align 4, !tbaa !12
  %620 = icmp sle i32 0, %619
  br i1 %620, label %623, label %621

621:                                              ; preds = %610
  call void @LogAssertFailure(i64 noundef 583, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.91)
  call void @__assert_fail(ptr noundef @.str.92, ptr noundef @.str, i32 noundef 583, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

622:                                              ; No predecessors!
  br label %623

623:                                              ; preds = %622, %610
  %624 = phi i1 [ true, %610 ], [ false, %622 ]
  %625 = load i32, ptr %74, align 4, !tbaa !12
  %626 = load ptr, ptr %71, align 8, !tbaa !5
  %627 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %626, i32 0, i32 4
  %628 = load i32, ptr %627, align 4, !tbaa !27
  %629 = mul nsw i32 %625, %628
  %630 = icmp slt i32 %629, 64
  br i1 %630, label %633, label %631

631:                                              ; preds = %623
  call void @LogAssertFailure(i64 noundef 584, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.95)
  call void @__assert_fail(ptr noundef @.str.96, ptr noundef @.str, i32 noundef 584, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

632:                                              ; No predecessors!
  br label %633

633:                                              ; preds = %632, %623
  %634 = phi i1 [ true, %623 ], [ false, %632 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #8
  %635 = load i64, ptr %73, align 8, !tbaa !10
  %636 = load i32, ptr %74, align 4, !tbaa !12
  %637 = load ptr, ptr %71, align 8, !tbaa !5
  %638 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %637, i32 0, i32 4
  %639 = load i32, ptr %638, align 4, !tbaa !27
  %640 = mul nsw i32 %636, %639
  %641 = zext i32 %640 to i64
  %642 = lshr i64 %635, %641
  %643 = load ptr, ptr %71, align 8, !tbaa !5
  %644 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %643, i32 0, i32 1
  %645 = load i64, ptr %644, align 8, !tbaa !28
  %646 = and i64 %642, %645
  store i64 %646, ptr %75, align 8, !tbaa !10
  %647 = load i64, ptr %75, align 8, !tbaa !10
  %648 = load ptr, ptr %71, align 8, !tbaa !5
  %649 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %648, i32 0, i32 2
  %650 = load i64, ptr %649, align 8, !tbaa !25
  %651 = icmp ult i64 %647, %650
  br i1 %651, label %654, label %652

652:                                              ; preds = %633
  call void @LogAssertFailure(i64 noundef 590, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.97)
  call void @__assert_fail(ptr noundef @.str.98, ptr noundef @.str, i32 noundef 590, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

653:                                              ; No predecessors!
  br label %654

654:                                              ; preds = %653, %633
  %655 = phi i1 [ true, %633 ], [ false, %653 ]
  %656 = load i32, ptr %74, align 4, !tbaa !12
  %657 = add nsw i32 %656, -1
  store i32 %657, ptr %74, align 4, !tbaa !12
  %658 = load i32, ptr %74, align 4, !tbaa !12
  %659 = load ptr, ptr %71, align 8, !tbaa !5
  %660 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %659, i32 0, i32 5
  store i32 %658, ptr %660, align 8, !tbaa !29
  %661 = load i32, ptr %74, align 4, !tbaa !12
  %662 = icmp slt i32 %661, 0
  br i1 %662, label %663, label %681

663:                                              ; preds = %654
  %664 = load i32, ptr %74, align 4, !tbaa !12
  %665 = icmp eq i32 -1, %664
  br i1 %665, label %668, label %666

666:                                              ; preds = %663
  call void @LogAssertFailure(i64 noundef 595, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.99)
  call void @__assert_fail(ptr noundef @.str.100, ptr noundef @.str, i32 noundef 595, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

667:                                              ; No predecessors!
  br label %668

668:                                              ; preds = %667, %663
  %669 = phi i1 [ true, %663 ], [ false, %667 ]
  %670 = load i32, ptr %74, align 4, !tbaa !12
  %671 = load ptr, ptr %71, align 8, !tbaa !5
  %672 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %671, i32 0, i32 3
  %673 = load i32, ptr %672, align 8, !tbaa !26
  %674 = add nsw i32 %670, %673
  %675 = load ptr, ptr %71, align 8, !tbaa !5
  %676 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %675, i32 0, i32 5
  store i32 %674, ptr %676, align 8, !tbaa !29
  %677 = load ptr, ptr %72, align 8, !tbaa !5
  %678 = getelementptr inbounds i64, ptr %677, i64 1
  %679 = load ptr, ptr %71, align 8, !tbaa !5
  %680 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %679, i32 0, i32 0
  store ptr %678, ptr %680, align 8, !tbaa !23
  br label %681

681:                                              ; preds = %668, %654
  %682 = load i64, ptr %70, align 8, !tbaa !10
  %683 = load ptr, ptr %71, align 8, !tbaa !5
  %684 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %683, i32 0, i32 2
  %685 = load i64, ptr %684, align 8, !tbaa !25
  %686 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %682, i64 noundef %685) #8
  br i1 %686, label %687, label %689

687:                                              ; preds = %681
  call void @LogAssertFailure(i64 noundef 601, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.101)
  call void @__assert_fail(ptr noundef @.str.102, ptr noundef @.str, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

688:                                              ; No predecessors!
  br label %689

689:                                              ; preds = %688, %681
  %690 = phi i1 [ true, %681 ], [ false, %688 ]
  %691 = load i64, ptr %70, align 8, !tbaa !10
  %692 = load i64, ptr %75, align 8, !tbaa !10
  %693 = mul i64 %691, %692
  %694 = load i64, ptr %46, align 8, !tbaa !10
  %695 = add i64 %694, %693
  store i64 %695, ptr %46, align 8, !tbaa !10
  %696 = load ptr, ptr %71, align 8, !tbaa !5
  %697 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %696, i32 0, i32 2
  %698 = load i64, ptr %697, align 8, !tbaa !25
  %699 = load i64, ptr %70, align 8, !tbaa !10
  %700 = mul i64 %699, %698
  store i64 %700, ptr %70, align 8, !tbaa !10
  %701 = load ptr, ptr %71, align 8, !tbaa !5
  %702 = getelementptr inbounds %"struct.NAMESPACE_MAIN::FeatureDimension", ptr %701, i32 1
  store ptr %702, ptr %71, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  br label %703

703:                                              ; preds = %689
  %704 = load ptr, ptr %27, align 8, !tbaa !5
  %705 = load ptr, ptr %71, align 8, !tbaa !5
  %706 = icmp ne ptr %704, %705
  br i1 %706, label %610, label %707, !llvm.loop !41

707:                                              ; preds = %703
  %708 = load i64, ptr %46, align 8, !tbaa !10
  %709 = load ptr, ptr %23, align 8, !tbaa !5
  %710 = call noundef i64 @_ZNK14NAMESPACE_MAIN4Term18GetCountTensorBinsEv(ptr noundef nonnull align 8 dereferenceable(776) %709) #8
  %711 = icmp ult i64 %708, %710
  br i1 %711, label %714, label %712

712:                                              ; preds = %707
  call void @LogAssertFailure(i64 noundef 611, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.103)
  call void @__assert_fail(ptr noundef @.str.104, ptr noundef @.str, i32 noundef 611, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

713:                                              ; No predecessors!
  br label %714

714:                                              ; preds = %713, %707
  %715 = phi i1 [ true, %707 ], [ false, %713 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  br label %716

716:                                              ; preds = %714, %506
  %717 = load i8, ptr %45, align 1, !tbaa !9
  %718 = sext i8 %717 to i32
  %719 = icmp ne i32 0, %718
  br i1 %719, label %722, label %720

720:                                              ; preds = %716
  call void @LogAssertFailure(i64 noundef 614, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.105)
  call void @__assert_fail(ptr noundef @.str.106, ptr noundef @.str, i32 noundef 614, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

721:                                              ; No predecessors!
  br label %722

722:                                              ; preds = %721, %716
  %723 = phi i1 [ true, %716 ], [ false, %721 ]
  %724 = load i8, ptr %45, align 1, !tbaa !9
  %725 = sext i8 %724 to i32
  %726 = icmp slt i32 0, %725
  br i1 %726, label %727, label %731

727:                                              ; preds = %722
  %728 = load i8, ptr %12, align 1, !tbaa !9
  %729 = sext i8 %728 to i32
  %730 = icmp slt i32 0, %729
  br i1 %730, label %741, label %731

731:                                              ; preds = %727, %722
  %732 = load i8, ptr %45, align 1, !tbaa !9
  %733 = sext i8 %732 to i32
  %734 = icmp slt i32 %733, 0
  br i1 %734, label %735, label %739

735:                                              ; preds = %731
  %736 = load i8, ptr %12, align 1, !tbaa !9
  %737 = sext i8 %736 to i32
  %738 = icmp slt i32 %737, 0
  br i1 %738, label %741, label %739

739:                                              ; preds = %735, %731
  call void @LogAssertFailure(i64 noundef 615, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.107)
  call void @__assert_fail(ptr noundef @.str.108, ptr noundef @.str, i32 noundef 615, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

740:                                              ; No predecessors!
  br label %741

741:                                              ; preds = %740, %735, %727
  %742 = phi i1 [ true, %735 ], [ true, %727 ], [ false, %740 ]
  %743 = load i8, ptr %12, align 1, !tbaa !9
  %744 = sext i8 %743 to i32
  %745 = load i8, ptr %45, align 1, !tbaa !9
  %746 = sext i8 %745 to i32
  %747 = sub nsw i32 %746, %744
  %748 = trunc i32 %747 to i8
  store i8 %748, ptr %45, align 1, !tbaa !9
  %749 = load i32, ptr %60, align 4, !tbaa !12
  %750 = icmp sle i32 0, %749
  br i1 %750, label %753, label %751

751:                                              ; preds = %741
  call void @LogAssertFailure(i64 noundef 618, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.109)
  call void @__assert_fail(ptr noundef @.str.110, ptr noundef @.str, i32 noundef 618, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

752:                                              ; No predecessors!
  br label %753

753:                                              ; preds = %752, %741
  %754 = phi i1 [ true, %741 ], [ false, %752 ]
  %755 = load ptr, ptr %47, align 8, !tbaa !5
  %756 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %755, i32 0, i32 1
  %757 = load ptr, ptr %756, align 8, !tbaa !42
  %758 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %757, i32 0, i32 18
  %759 = load i64, ptr %758, align 8, !tbaa !32
  %760 = icmp eq i64 8, %759
  br i1 %760, label %761, label %771

761:                                              ; preds = %753
  %762 = load i64, ptr %46, align 8, !tbaa !10
  %763 = load i32, ptr %60, align 4, !tbaa !12
  %764 = zext i32 %763 to i64
  %765 = shl i64 %762, %764
  %766 = load ptr, ptr %58, align 8, !tbaa !5
  %767 = load i64, ptr %62, align 8, !tbaa !10
  %768 = getelementptr inbounds i64, ptr %766, i64 %767
  %769 = load i64, ptr %768, align 8, !tbaa !10
  %770 = or i64 %769, %765
  store i64 %770, ptr %768, align 8, !tbaa !10
  br label %791

771:                                              ; preds = %753
  %772 = load ptr, ptr %47, align 8, !tbaa !5
  %773 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %772, i32 0, i32 1
  %774 = load ptr, ptr %773, align 8, !tbaa !42
  %775 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %774, i32 0, i32 18
  %776 = load i64, ptr %775, align 8, !tbaa !32
  %777 = icmp eq i64 4, %776
  br i1 %777, label %780, label %778

778:                                              ; preds = %771
  call void @LogAssertFailure(i64 noundef 623, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.39)
  call void @__assert_fail(ptr noundef @.str.40, ptr noundef @.str, i32 noundef 623, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

779:                                              ; No predecessors!
  br label %780

780:                                              ; preds = %779, %771
  %781 = phi i1 [ true, %771 ], [ false, %779 ]
  %782 = load i64, ptr %46, align 8, !tbaa !10
  %783 = trunc i64 %782 to i32
  %784 = load i32, ptr %60, align 4, !tbaa !12
  %785 = shl i32 %783, %784
  %786 = load ptr, ptr %58, align 8, !tbaa !5
  %787 = load i64, ptr %62, align 8, !tbaa !10
  %788 = getelementptr inbounds i32, ptr %786, i64 %787
  %789 = load i32, ptr %788, align 4, !tbaa !12
  %790 = or i32 %789, %785
  store i32 %790, ptr %788, align 4, !tbaa !12
  br label %791

791:                                              ; preds = %780, %761
  %792 = load i64, ptr %62, align 8, !tbaa !10
  %793 = add i64 %792, 1
  store i64 %793, ptr %62, align 8, !tbaa !10
  br label %794

794:                                              ; preds = %791
  %795 = load i64, ptr %50, align 8, !tbaa !10
  %796 = load i64, ptr %62, align 8, !tbaa !10
  %797 = icmp ne i64 %795, %796
  br i1 %797, label %506, label %798, !llvm.loop !43

798:                                              ; preds = %794
  %799 = load i64, ptr %52, align 8, !tbaa !10
  %800 = add i64 %799, -1
  store i64 %800, ptr %52, align 8, !tbaa !10
  %801 = load i64, ptr %52, align 8, !tbaa !10
  %802 = icmp eq i64 0, %801
  br i1 %802, label %803, label %804

803:                                              ; preds = %798
  store i32 32, ptr %55, align 4
  br label %808

804:                                              ; preds = %798
  %805 = load i32, ptr %49, align 4, !tbaa !12
  %806 = load i32, ptr %60, align 4, !tbaa !12
  %807 = sub nsw i32 %806, %805
  store i32 %807, ptr %60, align 4, !tbaa !12
  store i32 0, ptr %55, align 4
  br label %808

808:                                              ; preds = %804, %803
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  %809 = load i32, ptr %55, align 4
  switch i32 %809, label %867 [
    i32 0, label %810
    i32 32, label %825
  ]

810:                                              ; preds = %808
  br label %811

811:                                              ; preds = %810
  %812 = load i32, ptr %60, align 4, !tbaa !12
  %813 = icmp sle i32 0, %812
  br i1 %813, label %505, label %814, !llvm.loop !44

814:                                              ; preds = %811
  %815 = load i32, ptr %61, align 4, !tbaa !12
  store i32 %815, ptr %60, align 4, !tbaa !12
  %816 = load ptr, ptr %58, align 8, !tbaa !5
  %817 = load ptr, ptr %47, align 8, !tbaa !5
  %818 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %817, i32 0, i32 1
  %819 = load ptr, ptr %818, align 8, !tbaa !42
  %820 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %819, i32 0, i32 18
  %821 = load i64, ptr %820, align 8, !tbaa !32
  %822 = load i64, ptr %50, align 8, !tbaa !10
  %823 = mul i64 %821, %822
  %824 = call noundef ptr @_ZN14NAMESPACE_MAINL9IndexByteIvEEPT_S2_m(ptr noundef %816, i64 noundef %823) #8
  store ptr %824, ptr %58, align 8, !tbaa !5
  br label %503, !llvm.loop !45

825:                                              ; preds = %808
  %826 = load ptr, ptr %47, align 8, !tbaa !5
  %827 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %826, i32 1
  store ptr %827, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #8
  store i32 0, ptr %55, align 4
  br label %828

828:                                              ; preds = %825, %474
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  br label %829

829:                                              ; preds = %828, %453, %435
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  %830 = load i32, ptr %55, align 4
  switch i32 %830, label %844 [
    i32 0, label %831
  ]

831:                                              ; preds = %829
  br label %832

832:                                              ; preds = %831
  %833 = load ptr, ptr %19, align 8, !tbaa !5
  %834 = load ptr, ptr %47, align 8, !tbaa !5
  %835 = icmp ne ptr %833, %834
  br i1 %835, label %347, label %836, !llvm.loop !46

836:                                              ; preds = %832
  %837 = load i8, ptr %45, align 1, !tbaa !9
  %838 = sext i8 %837 to i32
  %839 = icmp eq i32 0, %838
  br i1 %839, label %842, label %840

840:                                              ; preds = %836
  call void @LogAssertFailure(i64 noundef 647, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef @.str.25)
  call void @__assert_fail(ptr noundef @.str.26, ptr noundef @.str, i32 noundef 647, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #9
  unreachable

841:                                              ; No predecessors!
  br label %842

842:                                              ; preds = %841, %836
  %843 = phi i1 [ true, %836 ], [ false, %841 ]
  store i32 0, ptr %55, align 4
  br label %844

844:                                              ; preds = %842, %829
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 1200, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  %845 = load i32, ptr %55, align 4
  switch i32 %845, label %850 [
    i32 0, label %846
  ]

846:                                              ; preds = %844
  br label %847

847:                                              ; preds = %846, %181
  %848 = load i64, ptr %22, align 8, !tbaa !10
  %849 = add i64 %848, 1
  store i64 %849, ptr %22, align 8, !tbaa !10
  store i32 0, ptr %55, align 4
  br label %850

850:                                              ; preds = %847, %844
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  %851 = load i32, ptr %55, align 4
  switch i32 %851, label %865 [
    i32 0, label %852
  ]

852:                                              ; preds = %850
  br label %853

853:                                              ; preds = %852
  %854 = load i64, ptr %15, align 8, !tbaa !10
  %855 = load i64, ptr %22, align 8, !tbaa !10
  %856 = icmp ne i64 %854, %855
  br i1 %856, label %152, label %857, !llvm.loop !47

857:                                              ; preds = %853
  br label %858

858:                                              ; preds = %857
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #8
  store i32 3, ptr %76, align 4, !tbaa !12
  %859 = load i32, ptr @g_traceLevel, align 4, !tbaa !12
  %860 = icmp sle i32 3, %859
  br i1 %860, label %861, label %862

861:                                              ; preds = %858
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_3)
  br label %862

862:                                              ; preds = %861, %858
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  br label %863

863:                                              ; preds = %862
  br label %864

864:                                              ; preds = %863
  store i32 0, ptr %9, align 4
  store i32 1, ptr %55, align 4
  br label %865

865:                                              ; preds = %864, %850
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  %866 = load i32, ptr %9, align 4
  ret i32 %866

867:                                              ; preds = %808
  unreachable
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK14NAMESPACE_MAIN4Term22GetCountRealDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK14NAMESPACE_MAIN4Term18GetCountDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK14NAMESPACE_MAIN4Term15GetTermFeaturesEv(ptr noundef nonnull align 8 dereferenceable(776)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK14NAMESPACE_MAIN15FeatureBoosting12GetCountBinsEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

declare noundef ptr @_ZN14NAMESPACE_MAIN23GetDataSetSharedFeatureEPKhmPbS2_S2_S2_PmS3_S3_(ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZN14NAMESPACE_MAINL17CountBitsRequiredImEEiT_(i64 noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZN14NAMESPACE_MAINL22GetCountItemsBitPackedImEEii(i32 noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZN14NAMESPACE_MAINL12GetCountBitsImEEii(i32 noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i64 @_ZN14NAMESPACE_MAINL11MakeLowMaskImEET_i(i32 noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK14NAMESPACE_MAIN4Term18GetBitsRequiredMinEv(ptr noundef nonnull align 8 dereferenceable(776)) #3 align 2

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK14NAMESPACE_MAIN4Term18GetCountTensorBinsEv(ptr noundef nonnull align 8 dereferenceable(776)) #3 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"long", !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = !{!15, !6, i64 16}
!15 = !{!"_ZTSN14NAMESPACE_MAIN15DataSetBoostingE", !11, i64 0, !11, i64 8, !6, i64 16, !6, i64 24, !6, i64 32}
!16 = !{!15, !11, i64 8}
!17 = !{!18, !18, i64 0}
!18 = !{!"bool", !7, i64 0}
!19 = !{i8 0, i8 2}
!20 = !{}
!21 = !{!22, !6, i64 0}
!22 = !{!"_ZTSN14NAMESPACE_MAIN11TermFeatureE", !6, i64 0, !11, i64 8, !11, i64 16}
!23 = !{!24, !6, i64 0}
!24 = !{!"_ZTSN14NAMESPACE_MAIN16FeatureDimensionE", !6, i64 0, !11, i64 8, !11, i64 16, !13, i64 24, !13, i64 28, !13, i64 32}
!25 = !{!24, !11, i64 16}
!26 = !{!24, !13, i64 24}
!27 = !{!24, !13, i64 28}
!28 = !{!24, !11, i64 8}
!29 = !{!24, !13, i64 32}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = !{!33, !11, i64 136}
!33 = !{!"_ZTS16ObjectiveWrapper", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !13, i64 32, !13, i64 36, !13, i64 40, !34, i64 48, !34, i64 56, !34, i64 64, !34, i64 72, !34, i64 80, !34, i64 88, !34, i64 96, !34, i64 104, !13, i64 112, !11, i64 120, !11, i64 128, !11, i64 136, !13, i64 144, !6, i64 152}
!34 = !{!"double", !7, i64 0}
!35 = !{!33, !11, i64 120}
!36 = !{!37, !6, i64 40}
!37 = !{!"_ZTSN14NAMESPACE_MAIN18DataSubsetBoostingE", !11, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48}
!38 = distinct !{!38, !31}
!39 = distinct !{!39, !31}
!40 = distinct !{!40, !31}
!41 = distinct !{!41, !31}
!42 = !{!37, !6, i64 8}
!43 = distinct !{!43, !31}
!44 = distinct !{!44, !31}
!45 = distinct !{!45, !31}
!46 = distinct !{!46, !31}
!47 = distinct !{!47, !31}


; 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::FeatureDimension" = type { ptr, i64, i64, i32, i32, i32 }
%"struct.NAMESPACE_MAIN::DataSubsetBoosting" = type { i64, ptr, ptr, ptr, ptr, ptr, ptr }
%"struct.NAMESPACE_MAIN::TermFeature" = type { ptr, i64, i64 }

@g_traceLevel = external local_unnamed_addr global i32, align 4
@.str = external hidden unnamed_addr constant [89 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [19 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.19 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [20 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.31 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [60 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage = external hidden constant [38 x i8], align 16
@__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl = external hidden unnamed_addr constant [13 x i8], align 1
@__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl = external hidden unnamed_addr constant [193 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
@.str.45 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [25 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_0 = external hidden constant [82 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_1 = external hidden constant [133 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_2 = external hidden constant [61 x i8], align 16
@.str.89 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [72 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_3 = external hidden constant [37 x i8], align 16

; Function Attrs: mustprogress 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) local_unnamed_addr #1

; Function Attrs: mustprogress 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) local_unnamed_addr #1

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #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: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImJmEEEbT_S1_DpKT0_(i64 noundef, i64 noundef, i64 noundef) local_unnamed_addr #3

declare ptr @AlignedAlloc(i64 noundef) local_unnamed_addr #1

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl(ptr nocapture noundef nonnull readonly align 8 dereferenceable(40) %0, ptr noundef %1, i8 noundef signext %2, i64 noundef %3, ptr noundef %4, i64 noundef %5, ptr noundef readonly %6, ptr noundef readonly %7) local_unnamed_addr #5 align 2 {
  %9 = alloca [30 x %"struct.NAMESPACE_MAIN::FeatureDimension"], align 16
  %10 = alloca i8, align 1
  %11 = alloca i8, align 1
  %12 = alloca i8, align 1
  %13 = alloca i8, align 1
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %18 = icmp sgt i32 %17, 2
  br i1 %18, label %19, label %20

19:                                               ; preds = %8
  tail call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage)
  br label %20

20:                                               ; preds = %19, %8
  %.not = icmp eq ptr %1, null
  br i1 %.not, label %21, label %22

21:                                               ; preds = %20
  tail call void @LogAssertFailure(i64 noundef 383, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.27)
  tail call void @__assert_fail(ptr noundef nonnull @.str.28, ptr noundef nonnull @.str, i32 noundef 383, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

22:                                               ; preds = %20
  switch i8 %2, label %23 [
    i8 -1, label %24
    i8 1, label %24
  ]

23:                                               ; preds = %22
  tail call void @LogAssertFailure(i64 noundef 384, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.13)
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str, i32 noundef 384, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

24:                                               ; preds = %22, %22
  %.not311 = icmp eq i64 %3, 0
  br i1 %.not311, label %25, label %26

25:                                               ; preds = %24
  tail call void @LogAssertFailure(i64 noundef 385, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.43)
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str, i32 noundef 385, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

26:                                               ; preds = %24
  %.not312 = icmp eq i64 %5, 0
  br i1 %.not312, label %27, label %28

27:                                               ; preds = %26
  tail call void @LogAssertFailure(i64 noundef 386, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.1)
  tail call void @__assert_fail(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str, i32 noundef 386, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

28:                                               ; preds = %26
  %.not313 = icmp eq ptr %6, null
  br i1 %.not313, label %29, label %30

29:                                               ; preds = %28
  tail call void @LogAssertFailure(i64 noundef 387, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.45)
  tail call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str, i32 noundef 387, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

30:                                               ; preds = %28
  %31 = getelementptr inbounds i8, ptr %0, i64 16
  %32 = load ptr, ptr %31, align 8, !tbaa !9
  %.not314 = icmp eq ptr %32, null
  br i1 %.not314, label %33, label %34

33:                                               ; preds = %30
  tail call void @LogAssertFailure(i64 noundef 389, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.5)
  tail call void @__assert_fail(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str, i32 noundef 389, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

34:                                               ; preds = %30
  %35 = getelementptr inbounds i8, ptr %0, i64 8
  %36 = load i64, ptr %35, align 8, !tbaa !13
  %.not315 = icmp eq i64 %36, 0
  br i1 %.not315, label %37, label %38

37:                                               ; preds = %34
  tail call void @LogAssertFailure(i64 noundef 390, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.7)
  tail call void @__assert_fail(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str, i32 noundef 390, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

38:                                               ; preds = %34
  %39 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %32, i64 %36
  %.not316 = icmp eq ptr %4, null
  %40 = icmp slt i8 %2, 0
  %or.cond = and i1 %40, %.not316
  br i1 %or.cond, label %43, label %.preheader367

.preheader367:                                    ; preds = %38
  %41 = add i64 %3, -1
  %42 = icmp slt i8 %2, 1
  br label %44

43:                                               ; preds = %38
  tail call void @LogAssertFailure(i64 noundef 394, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.31)
  tail call void @__assert_fail(ptr noundef nonnull @.str.32, ptr noundef nonnull @.str, i32 noundef 394, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

44:                                               ; preds = %.preheader367, %323
  %.0252 = phi i64 [ %.9261, %323 ], [ undef, %.preheader367 ]
  %.0228 = phi i64 [ %324, %323 ], [ 0, %.preheader367 ]
  %.0224 = phi ptr [ %.2226, %323 ], [ %7, %.preheader367 ]
  %45 = getelementptr inbounds ptr, ptr %6, i64 %.0228
  %46 = load ptr, ptr %45, align 8, !tbaa !14
  %.not317 = icmp eq ptr %46, null
  br i1 %.not317, label %47, label %48

47:                                               ; preds = %44
  call void @LogAssertFailure(i64 noundef 399, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.47)
  call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str, i32 noundef 399, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

48:                                               ; preds = %44
  %49 = call noundef i64 @_ZNK14NAMESPACE_MAIN4Term22GetCountRealDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776) %46) #8
  %50 = icmp eq i64 %49, 0
  br i1 %50, label %51, label %58

51:                                               ; preds = %48
  %52 = call noundef i64 @_ZNK14NAMESPACE_MAIN4Term18GetCountDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776) %46) #8
  %.not336 = icmp eq i64 %52, 0
  br i1 %.not336, label %323, label %53

53:                                               ; preds = %51
  %.not337 = icmp eq ptr %.0224, null
  br i1 %.not337, label %54, label %55

54:                                               ; preds = %53
  call void @LogAssertFailure(i64 noundef 403, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.49)
  call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str, i32 noundef 403, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

55:                                               ; preds = %53
  %56 = call noundef i64 @_ZNK14NAMESPACE_MAIN4Term18GetCountDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776) %46) #8
  %57 = getelementptr inbounds i64, ptr %.0224, i64 %56
  br label %323

58:                                               ; preds = %48
  %59 = call noundef ptr @_ZNK14NAMESPACE_MAIN4Term15GetTermFeaturesEv(ptr noundef nonnull align 8 dereferenceable(776) %46) #8
  %60 = call noundef i64 @_ZNK14NAMESPACE_MAIN4Term18GetCountDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776) %46) #8
  %.not318 = icmp eq i64 %60, 0
  br i1 %.not318, label %61, label %62

61:                                               ; preds = %58
  call void @LogAssertFailure(i64 noundef 408, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.51)
  call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str, i32 noundef 408, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

62:                                               ; preds = %58
  %63 = call noundef i64 @_ZNK14NAMESPACE_MAIN4Term18GetCountDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776) %46) #8
  %64 = getelementptr inbounds %"struct.NAMESPACE_MAIN::TermFeature", ptr %59, i64 %63
  call void @llvm.lifetime.start.p0(i64 1200, ptr nonnull %9) #8
  br label %65

65:                                               ; preds = %121, %62
  %.0234 = phi ptr [ %9, %62 ], [ %.1235, %121 ]
  %.0230 = phi ptr [ %59, %62 ], [ %123, %121 ]
  %.1225 = phi ptr [ %.0224, %62 ], [ %122, %121 ]
  %66 = load ptr, ptr %.0230, align 8, !tbaa !15
  %67 = call noundef i64 @_ZNK14NAMESPACE_MAIN15FeatureBoosting12GetCountBinsEv(ptr noundef nonnull align 8 dereferenceable(16) %66) #8
  switch i64 %67, label %69 [
    i64 0, label %68
    i64 1, label %121
  ]

68:                                               ; preds = %65
  call void @LogAssertFailure(i64 noundef 416, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.53)
  call void @__assert_fail(ptr noundef nonnull @.str.54, ptr noundef nonnull @.str, i32 noundef 416, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

69:                                               ; preds = %65
  %70 = load i64, ptr %.1225, align 8, !tbaa !17
  %71 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImlEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuesr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %70) #8
  br i1 %71, label %72, label %73

72:                                               ; preds = %69
  call void @LogAssertFailure(i64 noundef 419, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.55)
  call void @__assert_fail(ptr noundef nonnull @.str.56, ptr noundef nonnull @.str, i32 noundef 419, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

73:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #8
  %74 = call noundef ptr @_ZN14NAMESPACE_MAIN23GetDataSetSharedFeatureEPKhmPbS2_S2_S2_PmS3_S3_(ptr noundef nonnull %1, i64 noundef %70, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef nonnull %16)
  %.not321 = icmp eq ptr %74, null
  br i1 %.not321, label %75, label %76

75:                                               ; preds = %73
  call void @LogAssertFailure(i64 noundef 438, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.57)
  call void @__assert_fail(ptr noundef nonnull @.str.58, ptr noundef nonnull @.str, i32 noundef 438, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

76:                                               ; preds = %73
  %77 = load i8, ptr %13, align 1, !tbaa !18, !range !20, !noundef !21
  %78 = trunc nuw i8 %77 to i1
  br i1 %78, label %79, label %80

79:                                               ; preds = %76
  call void @LogAssertFailure(i64 noundef 439, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.59)
  call void @__assert_fail(ptr noundef nonnull @.str.60, ptr noundef nonnull @.str, i32 noundef 439, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

80:                                               ; preds = %76
  %81 = load i64, ptr %14, align 8, !tbaa !17
  %82 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %81) #8
  br i1 %82, label %83, label %84

83:                                               ; preds = %80
  call void @LogAssertFailure(i64 noundef 441, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.61)
  call void @__assert_fail(ptr noundef nonnull @.str.62, ptr noundef nonnull @.str, i32 noundef 441, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

84:                                               ; preds = %80
  %85 = load i64, ptr %14, align 8, !tbaa !17
  %86 = icmp eq i64 %85, %67
  br i1 %86, label %88, label %87

87:                                               ; preds = %84
  call void @LogAssertFailure(i64 noundef 442, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.63)
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str, i32 noundef 442, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

88:                                               ; preds = %84
  store ptr %74, ptr %.0234, align 8, !tbaa !22
  %89 = getelementptr inbounds i8, ptr %.0234, i64 16
  store i64 %67, ptr %89, align 8, !tbaa !24
  %90 = add i64 %67, -1
  %91 = call noundef i32 @_ZN14NAMESPACE_MAINL17CountBitsRequiredImEEiT_(i64 noundef %90) #8
  %92 = icmp sgt i32 %91, 0
  br i1 %92, label %94, label %93

93:                                               ; preds = %88
  call void @LogAssertFailure(i64 noundef 448, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.65)
  call void @__assert_fail(ptr noundef nonnull @.str.66, ptr noundef nonnull @.str, i32 noundef 448, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

94:                                               ; preds = %88
  %95 = icmp ult i32 %91, 65
  br i1 %95, label %97, label %96

96:                                               ; preds = %94
  call void @LogAssertFailure(i64 noundef 449, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.67)
  call void @__assert_fail(ptr noundef nonnull @.str.68, ptr noundef nonnull @.str, i32 noundef 449, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

97:                                               ; preds = %94
  %98 = call noundef i32 @_ZN14NAMESPACE_MAINL22GetCountItemsBitPackedImEEii(i32 noundef %91) #8
  %99 = icmp sgt i32 %98, 0
  br i1 %99, label %101, label %100

100:                                              ; preds = %97
  call void @LogAssertFailure(i64 noundef 454, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.71)
  call void @__assert_fail(ptr noundef nonnull @.str.72, ptr noundef nonnull @.str, i32 noundef 454, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

101:                                              ; preds = %97
  %102 = icmp ult i32 %98, 65
  br i1 %102, label %104, label %103

103:                                              ; preds = %101
  call void @LogAssertFailure(i64 noundef 455, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.73)
  call void @__assert_fail(ptr noundef nonnull @.str.74, ptr noundef nonnull @.str, i32 noundef 455, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

104:                                              ; preds = %101
  %105 = call noundef i32 @_ZN14NAMESPACE_MAINL12GetCountBitsImEEii(i32 noundef %98) #8
  %106 = icmp sgt i32 %105, 0
  br i1 %106, label %108, label %107

107:                                              ; preds = %104
  call void @LogAssertFailure(i64 noundef 458, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.75)
  call void @__assert_fail(ptr noundef nonnull @.str.76, ptr noundef nonnull @.str, i32 noundef 458, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

108:                                              ; preds = %104
  %109 = icmp ult i32 %105, 65
  br i1 %109, label %111, label %110

110:                                              ; preds = %108
  call void @LogAssertFailure(i64 noundef 459, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.77)
  call void @__assert_fail(ptr noundef nonnull @.str.78, ptr noundef nonnull @.str, i32 noundef 459, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

111:                                              ; preds = %108
  %112 = call noundef i64 @_ZN14NAMESPACE_MAINL11MakeLowMaskImEET_i(i32 noundef %105) #8
  %113 = getelementptr inbounds i8, ptr %.0234, i64 24
  store i32 %98, ptr %113, align 8, !tbaa !25
  %114 = getelementptr inbounds i8, ptr %.0234, i64 28
  store i32 %105, ptr %114, align 4, !tbaa !26
  %115 = getelementptr inbounds i8, ptr %.0234, i64 8
  store i64 %112, ptr %115, align 8, !tbaa !27
  %116 = zext nneg i32 %98 to i64
  %117 = urem i64 %41, %116
  %118 = trunc nuw nsw i64 %117 to i32
  %119 = getelementptr inbounds i8, ptr %.0234, i64 32
  store i32 %118, ptr %119, align 8, !tbaa !28
  %120 = getelementptr inbounds i8, ptr %.0234, i64 40
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #8
  br label %121

121:                                              ; preds = %65, %111
  %.1235 = phi ptr [ %120, %111 ], [ %.0234, %65 ]
  %122 = getelementptr inbounds i8, ptr %.1225, i64 8
  %123 = getelementptr inbounds i8, ptr %.0230, i64 24
  %.not322 = icmp eq ptr %64, %123
  br i1 %.not322, label %124, label %65, !llvm.loop !29

124:                                              ; preds = %121
  %125 = call noundef i64 @_ZNK14NAMESPACE_MAIN4Term22GetCountRealDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776) %46) #8
  %126 = getelementptr inbounds [30 x %"struct.NAMESPACE_MAIN::FeatureDimension"], ptr %9, i64 0, i64 %125
  %127 = icmp eq ptr %.1235, %126
  br i1 %127, label %129, label %128

128:                                              ; preds = %124
  call void @LogAssertFailure(i64 noundef 479, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.79)
  call void @__assert_fail(ptr noundef nonnull @.str.80, ptr noundef nonnull @.str, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

129:                                              ; preds = %124
  %130 = load ptr, ptr %31, align 8, !tbaa !9
  br label %131

131:                                              ; preds = %316, %129
  %.0263 = phi ptr [ %130, %129 ], [ %317, %316 ]
  %.1253 = phi i64 [ %.0252, %129 ], [ %.6258344, %316 ]
  %.0244 = phi i8 [ 0, %129 ], [ %287, %316 ]
  %.0237 = phi ptr [ %4, %129 ], [ %.7346, %316 ]
  %132 = call noundef i32 @_ZNK14NAMESPACE_MAIN4Term18GetBitsRequiredMinEv(ptr noundef nonnull align 8 dereferenceable(776) %46) #8
  %133 = icmp sgt i32 %132, 0
  br i1 %133, label %135, label %134

134:                                              ; preds = %131
  call void @LogAssertFailure(i64 noundef 487, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.81)
  call void @__assert_fail(ptr noundef nonnull @.str.82, ptr noundef nonnull @.str, i32 noundef 487, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

135:                                              ; preds = %131
  %136 = call noundef i32 @_ZNK14NAMESPACE_MAIN4Term18GetBitsRequiredMinEv(ptr noundef nonnull align 8 dereferenceable(776) %46) #8
  %137 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0263)
  %138 = getelementptr inbounds i8, ptr %137, i64 136
  %139 = load i64, ptr %138, align 8, !tbaa !31
  %140 = call noundef i32 @_ZN14NAMESPACE_MAINL22GetCountItemsBitPackedEim(i32 noundef %136, i64 noundef %139) #8
  %141 = icmp sgt i32 %140, 0
  br i1 %141, label %143, label %142

142:                                              ; preds = %135
  call void @LogAssertFailure(i64 noundef 490, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.83)
  call void @__assert_fail(ptr noundef nonnull @.str.84, ptr noundef nonnull @.str, i32 noundef 490, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

143:                                              ; preds = %135
  %144 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0263)
  %145 = getelementptr inbounds i8, ptr %144, i64 136
  %146 = load i64, ptr %145, align 8, !tbaa !31
  %147 = call noundef i32 @_ZN14NAMESPACE_MAINL12GetCountBitsEim(i32 noundef %140, i64 noundef %146) #8
  %148 = icmp sgt i32 %147, 0
  br i1 %148, label %150, label %149

149:                                              ; preds = %143
  call void @LogAssertFailure(i64 noundef 495, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.85)
  call void @__assert_fail(ptr noundef nonnull @.str.86, ptr noundef nonnull @.str, i32 noundef 495, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

150:                                              ; preds = %143
  %151 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0263)
  %152 = getelementptr inbounds i8, ptr %151, i64 120
  %153 = load i64, ptr %152, align 8, !tbaa !34
  %.not323 = icmp eq i64 %153, 0
  br i1 %.not323, label %154, label %155

154:                                              ; preds = %150
  call void @LogAssertFailure(i64 noundef 498, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.19)
  call void @__assert_fail(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str, i32 noundef 498, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

155:                                              ; preds = %150
  %156 = call noundef i64 @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting15GetCountSamplesEv(ptr noundef nonnull align 8 dereferenceable(56) %.0263)
  %.not324 = icmp eq i64 %156, 0
  br i1 %.not324, label %157, label %158

157:                                              ; preds = %155
  call void @LogAssertFailure(i64 noundef 501, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.9)
  call void @__assert_fail(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str, i32 noundef 501, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

158:                                              ; preds = %155
  %159 = urem i64 %156, %153
  %160 = udiv i64 %156, %153
  %161 = icmp eq i64 %159, 0
  br i1 %161, label %163, label %162

162:                                              ; preds = %158
  call void @LogAssertFailure(i64 noundef 502, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.21)
  call void @__assert_fail(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str, i32 noundef 502, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

163:                                              ; preds = %158
  %.not325 = icmp ugt i64 %153, %156
  br i1 %.not325, label %164, label %165

164:                                              ; preds = %163
  call void @LogAssertFailure(i64 noundef 505, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.87)
  call void @__assert_fail(ptr noundef nonnull @.str.88, ptr noundef nonnull @.str, i32 noundef 505, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

165:                                              ; preds = %163
  %166 = zext nneg i32 %140 to i64
  %167 = udiv i64 %160, %166
  %168 = urem i64 %160, %166
  %169 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL10IsAddErrorImEEbT_S1_(i64 noundef %167, i64 noundef 1) #8
  br i1 %169, label %170, label %173

170:                                              ; preds = %165
  %171 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %172 = icmp sgt i32 %171, 1
  br i1 %172, label %.sink.split, label %322

173:                                              ; preds = %165
  %174 = add i64 %167, 1
  %175 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0263)
  %176 = getelementptr inbounds i8, ptr %175, i64 136
  %177 = load i64, ptr %176, align 8, !tbaa !31
  %178 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImJmEEEbT_S1_DpKT0_(i64 noundef %177, i64 noundef %174, i64 noundef %153) #8
  br i1 %178, label %179, label %182

179:                                              ; preds = %173
  %180 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %181 = icmp sgt i32 %180, 1
  br i1 %181, label %.sink.split, label %322

182:                                              ; preds = %173
  %183 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0263)
  %184 = getelementptr inbounds i8, ptr %183, i64 136
  %185 = load i64, ptr %184, align 8, !tbaa !31
  %186 = mul i64 %174, %153
  %187 = mul i64 %186, %185
  %188 = call ptr @AlignedAlloc(i64 noundef %187)
  %189 = icmp eq ptr %188, null
  br i1 %189, label %190, label %193

190:                                              ; preds = %182
  %191 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %192 = icmp sgt i32 %191, 1
  br i1 %192, label %.sink.split, label %322

193:                                              ; preds = %182
  %194 = getelementptr inbounds i8, ptr %.0263, i64 40
  %195 = load ptr, ptr %194, align 8, !tbaa !35
  %.not326 = icmp eq ptr %195, null
  br i1 %.not326, label %196, label %197

196:                                              ; preds = %193
  call void @LogAssertFailure(i64 noundef 528, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.89)
  call void @__assert_fail(ptr noundef nonnull @.str.90, ptr noundef nonnull @.str, i32 noundef 528, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

197:                                              ; preds = %193
  %198 = getelementptr inbounds ptr, ptr %195, i64 %.0228
  store ptr %188, ptr %198, align 8, !tbaa !14
  call void @llvm.memset.p0.i64(ptr nonnull align 1 %188, i8 0, i64 %187, i1 false)
  %199 = trunc nuw nsw i64 %168 to i32
  %200 = add nsw i32 %140, -1
  %201 = getelementptr inbounds i8, ptr %.0263, i64 8
  br label %202

202:                                              ; preds = %311, %197
  %.0271 = phi ptr [ %188, %197 ], [ %315, %311 ]
  %.0269 = phi i64 [ %160, %197 ], [ %306, %311 ]
  %.pn = phi i32 [ %199, %197 ], [ %200, %311 ]
  %.2254 = phi i64 [ %.1253, %197 ], [ %.6258344, %311 ]
  %.1245 = phi i8 [ %.0244, %197 ], [ %287, %311 ]
  %.1238 = phi ptr [ %.0237, %197 ], [ %.7346, %311 ]
  %.0266 = mul nsw i32 %147, %.pn
  br label %203

203:                                              ; preds = %308, %202
  %.1270 = phi i64 [ %.0269, %202 ], [ %306, %308 ]
  %.1267 = phi i32 [ %.0266, %202 ], [ %309, %308 ]
  %.3255 = phi i64 [ %.2254, %202 ], [ %.6258344, %308 ]
  %.2246 = phi i8 [ %.1245, %202 ], [ %287, %308 ]
  %.2239 = phi ptr [ %.1238, %202 ], [ %.7346, %308 ]
  %204 = zext nneg i32 %.1267 to i64
  br label %205

205:                                              ; preds = %303, %203
  %.0262 = phi i64 [ 0, %203 ], [ %304, %303 ]
  %.4256 = phi i64 [ %.3255, %203 ], [ %.6258344, %303 ]
  %.3247 = phi i8 [ %.2246, %203 ], [ %287, %303 ]
  %.3240 = phi ptr [ %.2239, %203 ], [ %.7346, %303 ]
  %206 = icmp eq i8 %.3247, 0
  br i1 %206, label %207, label %.thread

207:                                              ; preds = %205
  %.not327 = icmp eq ptr %.3240, null
  br i1 %.not327, label %.loopexit, label %.preheader366

.preheader366:                                    ; preds = %207, %.preheader366
  %.5242 = phi ptr [ %209, %.preheader366 ], [ %.3240, %207 ]
  %208 = load i8, ptr %.5242, align 1, !tbaa !37
  %209 = getelementptr inbounds i8, ptr %.5242, i64 1
  %210 = icmp ne i8 %208, 0
  %.not329.unshifted = xor i8 %208, %2
  %.not329 = icmp sgt i8 %.not329.unshifted, -1
  %or.cond438 = and i1 %210, %.not329
  br i1 %or.cond438, label %211, label %.preheader366, !llvm.loop !38

211:                                              ; preds = %.preheader366
  %212 = ptrtoint ptr %209 to i64
  %213 = ptrtoint ptr %.3240 to i64
  %214 = xor i64 %213, -1
  %215 = add i64 %212, %214
  %.not330 = icmp eq i64 %215, 0
  br i1 %.not330, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %211, %235
  %.0236 = phi ptr [ %238, %235 ], [ %9, %211 ]
  %216 = getelementptr inbounds i8, ptr %.0236, i64 24
  %217 = load i32, ptr %216, align 8, !tbaa !25
  %218 = sext i32 %217 to i64
  %219 = udiv i64 %215, %218
  %220 = urem i64 %215, %218
  %221 = getelementptr inbounds i8, ptr %.0236, i64 32
  %222 = load i32, ptr %221, align 8, !tbaa !28
  %223 = icmp sgt i32 %222, -1
  br i1 %223, label %225, label %224

224:                                              ; preds = %.preheader
  call void @LogAssertFailure(i64 noundef 560, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.91)
  call void @__assert_fail(ptr noundef nonnull @.str.92, ptr noundef nonnull @.str, i32 noundef 560, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

225:                                              ; preds = %.preheader
  %226 = trunc i64 %220 to i32
  %227 = sub nsw i32 %222, %226
  store i32 %227, ptr %221, align 8, !tbaa !28
  %228 = icmp slt i32 %227, 0
  br i1 %228, label %229, label %235

229:                                              ; preds = %225
  %230 = add nsw i32 %227, %217
  store i32 %230, ptr %221, align 8, !tbaa !28
  %231 = icmp sgt i32 %230, -1
  br i1 %231, label %233, label %232

232:                                              ; preds = %229
  call void @LogAssertFailure(i64 noundef 565, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.93)
  call void @__assert_fail(ptr noundef nonnull @.str.94, ptr noundef nonnull @.str, i32 noundef 565, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

233:                                              ; preds = %229
  %234 = add i64 %219, 1
  br label %235

235:                                              ; preds = %233, %225
  %.0233 = phi i64 [ %234, %233 ], [ %219, %225 ]
  %236 = load ptr, ptr %.0236, align 8, !tbaa !22
  %237 = getelementptr inbounds i64, ptr %236, i64 %.0233
  store ptr %237, ptr %.0236, align 8, !tbaa !22
  %238 = getelementptr inbounds i8, ptr %.0236, i64 40
  %.not331 = icmp eq ptr %.1235, %238
  br i1 %.not331, label %.loopexit, label %.preheader, !llvm.loop !39

.loopexit:                                        ; preds = %235, %211, %207
  %.4248 = phi i8 [ 1, %207 ], [ %208, %211 ], [ %208, %235 ]
  %.6243 = phi ptr [ null, %207 ], [ %209, %211 ], [ %209, %235 ]
  br label %239

239:                                              ; preds = %273, %.loopexit
  %.5257 = phi i64 [ 0, %.loopexit ], [ %275, %273 ]
  %.0232 = phi i64 [ 1, %.loopexit ], [ %277, %273 ]
  %.0231 = phi ptr [ %9, %.loopexit ], [ %278, %273 ]
  %240 = load ptr, ptr %.0231, align 8, !tbaa !22
  %241 = load i64, ptr %240, align 8, !tbaa !17
  %242 = getelementptr inbounds i8, ptr %.0231, i64 32
  %243 = load i32, ptr %242, align 8, !tbaa !28
  %244 = icmp sgt i32 %243, -1
  br i1 %244, label %246, label %245

245:                                              ; preds = %239
  call void @LogAssertFailure(i64 noundef 583, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.91)
  call void @__assert_fail(ptr noundef nonnull @.str.92, ptr noundef nonnull @.str, i32 noundef 583, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

246:                                              ; preds = %239
  %247 = getelementptr inbounds i8, ptr %.0231, i64 28
  %248 = load i32, ptr %247, align 4, !tbaa !26
  %249 = mul nsw i32 %248, %243
  %250 = icmp slt i32 %249, 64
  br i1 %250, label %252, label %251

251:                                              ; preds = %246
  call void @LogAssertFailure(i64 noundef 584, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.95)
  call void @__assert_fail(ptr noundef nonnull @.str.96, ptr noundef nonnull @.str, i32 noundef 584, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

252:                                              ; preds = %246
  %253 = zext nneg i32 %249 to i64
  %254 = lshr i64 %241, %253
  %255 = getelementptr inbounds i8, ptr %.0231, i64 8
  %256 = load i64, ptr %255, align 8, !tbaa !27
  %257 = and i64 %256, %254
  %258 = getelementptr inbounds i8, ptr %.0231, i64 16
  %259 = load i64, ptr %258, align 8, !tbaa !24
  %260 = icmp ult i64 %257, %259
  br i1 %260, label %262, label %261

261:                                              ; preds = %252
  call void @LogAssertFailure(i64 noundef 590, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.97)
  call void @__assert_fail(ptr noundef nonnull @.str.98, ptr noundef nonnull @.str, i32 noundef 590, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

262:                                              ; preds = %252
  %263 = add nsw i32 %243, -1
  store i32 %263, ptr %242, align 8, !tbaa !28
  %264 = icmp eq i32 %243, 0
  br i1 %264, label %265, label %270

265:                                              ; preds = %262
  %266 = getelementptr inbounds i8, ptr %.0231, i64 24
  %267 = load i32, ptr %266, align 8, !tbaa !25
  %268 = add nsw i32 %267, -1
  store i32 %268, ptr %242, align 8, !tbaa !28
  %269 = getelementptr inbounds i8, ptr %240, i64 8
  store ptr %269, ptr %.0231, align 8, !tbaa !22
  br label %270

270:                                              ; preds = %265, %262
  %271 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %.0232, i64 noundef %259) #8
  br i1 %271, label %272, label %273

272:                                              ; preds = %270
  call void @LogAssertFailure(i64 noundef 601, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.101)
  call void @__assert_fail(ptr noundef nonnull @.str.102, ptr noundef nonnull @.str, i32 noundef 601, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

273:                                              ; preds = %270
  %274 = mul i64 %257, %.0232
  %275 = add i64 %274, %.5257
  %276 = load i64, ptr %258, align 8, !tbaa !24
  %277 = mul i64 %276, %.0232
  %278 = getelementptr inbounds i8, ptr %.0231, i64 40
  %.not332 = icmp eq ptr %.1235, %278
  br i1 %.not332, label %279, label %239, !llvm.loop !40

279:                                              ; preds = %273
  %280 = call noundef i64 @_ZNK14NAMESPACE_MAIN4Term18GetCountTensorBinsEv(ptr noundef nonnull align 8 dereferenceable(776) %46) #8
  %281 = icmp ult i64 %275, %280
  br i1 %281, label %.thread, label %282

282:                                              ; preds = %279
  call void @LogAssertFailure(i64 noundef 611, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.103)
  call void @__assert_fail(ptr noundef nonnull @.str.104, ptr noundef nonnull @.str, i32 noundef 611, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

.thread:                                          ; preds = %279, %205
  %.7346 = phi ptr [ %.3240, %205 ], [ %.6243, %279 ]
  %.5249345 = phi i8 [ %.3247, %205 ], [ %.4248, %279 ]
  %.6258344 = phi i64 [ %.4256, %205 ], [ %275, %279 ]
  %283 = icmp slt i8 %.5249345, 1
  %or.cond7.not365 = or i1 %42, %283
  %284 = and i8 %.5249345, %2
  %or.cond10.not = icmp sgt i8 %284, -1
  %or.cond339 = and i1 %or.cond7.not365, %or.cond10.not
  br i1 %or.cond339, label %285, label %286

285:                                              ; preds = %.thread
  call void @LogAssertFailure(i64 noundef 615, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.107)
  call void @__assert_fail(ptr noundef nonnull @.str.108, ptr noundef nonnull @.str, i32 noundef 615, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

286:                                              ; preds = %.thread
  %287 = sub i8 %.5249345, %2
  %288 = load ptr, ptr %201, align 8, !tbaa !41
  %289 = getelementptr inbounds i8, ptr %288, i64 136
  %290 = load i64, ptr %289, align 8, !tbaa !31
  switch i64 %290, label %296 [
    i64 8, label %291
    i64 4, label %297
  ]

291:                                              ; preds = %286
  %292 = shl i64 %.6258344, %204
  %293 = getelementptr inbounds i64, ptr %.0271, i64 %.0262
  %294 = load i64, ptr %293, align 8, !tbaa !17
  %295 = or i64 %294, %292
  store i64 %295, ptr %293, align 8, !tbaa !17
  br label %303

296:                                              ; preds = %286
  call void @LogAssertFailure(i64 noundef 623, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.39)
  call void @__assert_fail(ptr noundef nonnull @.str.40, ptr noundef nonnull @.str, i32 noundef 623, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

297:                                              ; preds = %286
  %298 = trunc i64 %.6258344 to i32
  %299 = shl i32 %298, %.1267
  %300 = getelementptr inbounds i32, ptr %.0271, i64 %.0262
  %301 = load i32, ptr %300, align 4, !tbaa !5
  %302 = or i32 %301, %299
  store i32 %302, ptr %300, align 4, !tbaa !5
  br label %303

303:                                              ; preds = %297, %291
  %304 = add nuw i64 %.0262, 1
  %.not334 = icmp eq i64 %153, %304
  br i1 %.not334, label %305, label %205, !llvm.loop !42

305:                                              ; preds = %303
  %306 = add i64 %.1270, -1
  %307 = icmp eq i64 %306, 0
  br i1 %307, label %316, label %308

308:                                              ; preds = %305
  %309 = sub nsw i32 %.1267, %147
  %310 = icmp sgt i32 %309, -1
  br i1 %310, label %203, label %311, !llvm.loop !43

311:                                              ; preds = %308
  %312 = getelementptr inbounds i8, ptr %288, i64 136
  %313 = load i64, ptr %312, align 8, !tbaa !31
  %314 = mul i64 %313, %153
  %315 = call noundef ptr @_ZN14NAMESPACE_MAINL9IndexByteIvEEPT_S2_m(ptr noundef nonnull %.0271, i64 noundef %314) #8
  br label %202, !llvm.loop !44

316:                                              ; preds = %305
  %317 = getelementptr inbounds i8, ptr %.0263, i64 56
  %.not335 = icmp eq ptr %39, %317
  br i1 %.not335, label %318, label %131, !llvm.loop !45

318:                                              ; preds = %316
  %319 = icmp eq i8 %287, 0
  br i1 %319, label %321, label %320

320:                                              ; preds = %318
  call void @LogAssertFailure(i64 noundef 647, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl, ptr noundef nonnull @.str.25)
  call void @__assert_fail(ptr noundef nonnull @.str.26, ptr noundef nonnull @.str, i32 noundef 647, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKl) #7
  unreachable

321:                                              ; preds = %318
  call void @llvm.lifetime.end.p0(i64 1200, ptr nonnull %9) #8
  br label %323

.sink.split:                                      ; preds = %190, %179, %170
  %_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_2.sink = phi ptr [ @_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_0, %170 ], [ @_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_1, %179 ], [ @_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_2, %190 ]
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull %_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_2.sink)
  br label %322

322:                                              ; preds = %.sink.split, %190, %179, %170
  call void @llvm.lifetime.end.p0(i64 1200, ptr nonnull %9) #8
  br label %329

323:                                              ; preds = %55, %51, %321
  %.9261 = phi i64 [ %.0252, %55 ], [ %.0252, %51 ], [ %.6258344, %321 ]
  %.2226 = phi ptr [ %57, %55 ], [ %.0224, %51 ], [ %122, %321 ]
  %324 = add nuw i64 %.0228, 1
  %.not338 = icmp eq i64 %324, %5
  br i1 %.not338, label %325, label %44, !llvm.loop !46

325:                                              ; preds = %323
  %326 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %327 = icmp sgt i32 %326, 2
  br i1 %327, label %328, label %329

328:                                              ; preds = %325
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting12InitTermDataEPKhamPKamPKPKNS_4TermEPKlE13LOG__sMessage_3)
  br label %329

329:                                              ; preds = %322, %325, %328
  %.6 = phi i32 [ -1, %322 ], [ 0, %328 ], [ 0, %325 ]
  ret i32 %.6
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK14NAMESPACE_MAIN4Term22GetCountRealDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK14NAMESPACE_MAIN4Term18GetCountDimensionsEv(ptr noundef nonnull align 8 dereferenceable(776)) local_unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK14NAMESPACE_MAIN15FeatureBoosting12GetCountBinsEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

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

declare noundef ptr @_ZN14NAMESPACE_MAIN23GetDataSetSharedFeatureEPKhmPbS2_S2_S2_PmS3_S3_(ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZN14NAMESPACE_MAINL22GetCountItemsBitPackedImEEii(i32 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZN14NAMESPACE_MAINL12GetCountBitsImEEii(i32 noundef) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK14NAMESPACE_MAIN4Term18GetBitsRequiredMinEv(ptr noundef nonnull align 8 dereferenceable(776)) local_unnamed_addr #3 align 2

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

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

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK14NAMESPACE_MAIN4Term18GetCountTensorBinsEv(ptr noundef nonnull align 8 dereferenceable(776)) local_unnamed_addr #3 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !12, i64 16}
!10 = !{!"_ZTSN14NAMESPACE_MAIN15DataSetBoostingE", !11, i64 0, !11, i64 8, !12, i64 16, !12, i64 24, !12, i64 32}
!11 = !{!"long", !7, i64 0}
!12 = !{!"any pointer", !7, i64 0}
!13 = !{!10, !11, i64 8}
!14 = !{!12, !12, i64 0}
!15 = !{!16, !12, i64 0}
!16 = !{!"_ZTSN14NAMESPACE_MAIN11TermFeatureE", !12, i64 0, !11, i64 8, !11, i64 16}
!17 = !{!11, !11, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{i8 0, i8 2}
!21 = !{}
!22 = !{!23, !12, i64 0}
!23 = !{!"_ZTSN14NAMESPACE_MAIN16FeatureDimensionE", !12, i64 0, !11, i64 8, !11, i64 16, !6, i64 24, !6, i64 28, !6, i64 32}
!24 = !{!23, !11, i64 16}
!25 = !{!23, !6, i64 24}
!26 = !{!23, !6, i64 28}
!27 = !{!23, !11, i64 8}
!28 = !{!23, !6, i64 32}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = !{!32, !11, i64 136}
!32 = !{!"_ZTS16ObjectiveWrapper", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !6, i64 32, !6, i64 36, !6, i64 40, !33, i64 48, !33, i64 56, !33, i64 64, !33, i64 72, !33, i64 80, !33, i64 88, !33, i64 96, !33, i64 104, !6, i64 112, !11, i64 120, !11, i64 128, !11, i64 136, !6, i64 144, !12, i64 152}
!33 = !{!"double", !7, i64 0}
!34 = !{!32, !11, i64 120}
!35 = !{!36, !12, i64 40}
!36 = !{!"_ZTSN14NAMESPACE_MAIN18DataSubsetBoostingE", !11, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48}
!37 = !{!7, !7, i64 0}
!38 = distinct !{!38, !30}
!39 = distinct !{!39, !30}
!40 = distinct !{!40, !30}
!41 = !{!36, !12, i64 8}
!42 = distinct !{!42, !30}
!43 = distinct !{!43, !30}
!44 = distinct !{!44, !30}
!45 = distinct !{!45, !30}
!46 = distinct !{!46, !30}


; Effective O3 passes: CorrelatedValuePropagationPass,DivRemPairsPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass