; 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::DataSetBoosting" = type { i64, i64, ptr, ptr, ptr }
%"struct.NAMESPACE_MAIN::DataSubsetBoosting" = type { i64, ptr, ptr, ptr, ptr, ptr, ptr }
%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.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.23 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [62 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
@_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage = external hidden constant [40 x i8], align 16
@__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa = external hidden unnamed_addr constant [15 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
@__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa = external hidden unnamed_addr constant [120 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [23 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
@_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_0 = external hidden constant [109 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_1 = external hidden constant [61 x i8], align 16
@.str.33 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [35 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
@.str.41 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [37 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_2 = external hidden constant [110 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_3 = external hidden constant [61 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_4 = external hidden constant [39 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

declare ptr @AlignedAlloc(i64 noundef) #1

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef %1, i8 noundef signext %2, ptr noundef %3) #4 align 2 {
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i8, align 1
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i64, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca ptr, align 8
  %19 = alloca i64, align 8
  %20 = alloca i64, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i64, align 8
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca i8, align 1
  %28 = alloca ptr, align 8
  %29 = alloca double, align 8
  %30 = alloca i64, align 8
  %31 = alloca i32, align 4
  %32 = alloca i64, align 8
  %33 = alloca ptr, align 8
  %34 = alloca i32, align 4
  %35 = alloca ptr, align 8
  %36 = alloca i8, align 1
  %37 = alloca i32, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store i8 %2, ptr %8, align 1, !tbaa !9
  store ptr %3, ptr %9, align 8, !tbaa !5
  %38 = load ptr, ptr %6, align 8
  br label %39

39:                                               ; preds = %4
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #5
  store i32 3, ptr %10, align 4, !tbaa !10
  %40 = load i32, ptr @g_traceLevel, align 4, !tbaa !10
  %41 = icmp sle i32 3, %40
  br i1 %41, label %42, label %43

42:                                               ; preds = %39
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage)
  br label %43

43:                                               ; preds = %42, %39
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #5
  br label %44

44:                                               ; preds = %43
  %45 = load ptr, ptr %7, align 8, !tbaa !5
  %46 = icmp ne ptr null, %45
  br i1 %46, label %49, label %47

47:                                               ; preds = %44
  call void @LogAssertFailure(i64 noundef 211, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.27)
  call void @__assert_fail(ptr noundef @.str.28, ptr noundef @.str, i32 noundef 211, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

48:                                               ; No predecessors!
  br label %49

49:                                               ; preds = %48, %44
  %50 = phi i1 [ true, %44 ], [ false, %48 ]
  %51 = load i8, ptr %8, align 1, !tbaa !9
  %52 = sext i8 %51 to i32
  %53 = icmp eq i32 -1, %52
  br i1 %53, label %60, label %54

54:                                               ; preds = %49
  %55 = load i8, ptr %8, align 1, !tbaa !9
  %56 = sext i8 %55 to i32
  %57 = icmp eq i32 1, %56
  br i1 %57, label %60, label %58

58:                                               ; preds = %54
  call void @LogAssertFailure(i64 noundef 212, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.13)
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str, i32 noundef 212, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

59:                                               ; No predecessors!
  br label %60

60:                                               ; preds = %59, %54, %49
  %61 = phi i1 [ true, %54 ], [ true, %49 ], [ false, %59 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #5
  %62 = load ptr, ptr %7, align 8, !tbaa !5
  %63 = call noundef ptr @_ZN14NAMESPACE_MAIN22GetDataSetSharedTargetEPKhmPl(ptr noundef %62, i64 noundef 0, ptr noundef %11)
  store ptr %63, ptr %12, align 8, !tbaa !5
  %64 = load ptr, ptr %12, align 8, !tbaa !5
  %65 = icmp ne ptr null, %64
  br i1 %65, label %68, label %66

66:                                               ; preds = %60
  call void @LogAssertFailure(i64 noundef 216, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.29)
  call void @__assert_fail(ptr noundef @.str.30, ptr noundef @.str, i32 noundef 216, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

67:                                               ; No predecessors!
  br label %68

68:                                               ; preds = %67, %60
  %69 = phi i1 [ true, %60 ], [ false, %67 ]
  %70 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %38, i32 0, i32 2
  %71 = load ptr, ptr %70, align 8, !tbaa !12
  %72 = icmp ne ptr null, %71
  br i1 %72, label %75, label %73

73:                                               ; preds = %68
  call void @LogAssertFailure(i64 noundef 218, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.5)
  call void @__assert_fail(ptr noundef @.str.6, ptr noundef @.str, i32 noundef 218, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

74:                                               ; No predecessors!
  br label %75

75:                                               ; preds = %74, %68
  %76 = phi i1 [ true, %68 ], [ false, %74 ]
  %77 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %38, i32 0, i32 1
  %78 = load i64, ptr %77, align 8, !tbaa !15
  %79 = icmp ule i64 1, %78
  br i1 %79, label %82, label %80

80:                                               ; preds = %75
  call void @LogAssertFailure(i64 noundef 219, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.7)
  call void @__assert_fail(ptr noundef @.str.8, ptr noundef @.str, i32 noundef 219, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

81:                                               ; No predecessors!
  br label %82

82:                                               ; preds = %81, %75
  %83 = phi i1 [ true, %75 ], [ false, %81 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  %84 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %38, i32 0, i32 2
  %85 = load ptr, ptr %84, align 8, !tbaa !12
  store ptr %85, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  %86 = load ptr, ptr %13, align 8, !tbaa !5
  %87 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSetBoosting", ptr %38, i32 0, i32 1
  %88 = load i64, ptr %87, align 8, !tbaa !15
  %89 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %86, i64 %88
  store ptr %89, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  %90 = load ptr, ptr %9, align 8, !tbaa !5
  store ptr %90, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #5
  %91 = load i8, ptr %8, align 1, !tbaa !9
  %92 = sext i8 %91 to i32
  %93 = icmp slt i32 %92, 0
  %94 = zext i1 %93 to i8
  store i8 %94, ptr %16, align 1, !tbaa !16
  %95 = load ptr, ptr %9, align 8, !tbaa !5
  %96 = icmp ne ptr null, %95
  br i1 %96, label %102, label %97

97:                                               ; preds = %82
  %98 = load i8, ptr %16, align 1, !tbaa !16, !range !18, !noundef !19
  %99 = trunc i8 %98 to i1
  br i1 %99, label %100, label %102

100:                                              ; preds = %97
  call void @LogAssertFailure(i64 noundef 225, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.31)
  call void @__assert_fail(ptr noundef @.str.32, ptr noundef @.str, i32 noundef 225, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

101:                                              ; No predecessors!
  br label %102

102:                                              ; preds = %101, %97, %82
  %103 = phi i1 [ true, %97 ], [ true, %82 ], [ false, %101 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #5
  store i8 0, ptr %17, align 1, !tbaa !9
  %104 = load i64, ptr %11, align 8, !tbaa !20
  %105 = icmp sle i64 0, %104
  br i1 %105, label %106, label %309

106:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  %107 = load ptr, ptr %12, align 8, !tbaa !5
  store ptr %107, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  br label %108

108:                                              ; preds = %294, %106
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  %109 = load ptr, ptr %13, align 8, !tbaa !5
  %110 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %109, i32 0, i32 0
  %111 = load i64, ptr %110, align 8, !tbaa !21
  store i64 %111, ptr %20, align 8, !tbaa !20
  %112 = load i64, ptr %20, align 8, !tbaa !20
  %113 = icmp ule i64 1, %112
  br i1 %113, label %116, label %114

114:                                              ; preds = %108
  call void @LogAssertFailure(i64 noundef 233, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.9)
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str, i32 noundef 233, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

115:                                              ; No predecessors!
  br label %116

116:                                              ; preds = %115, %108
  %117 = phi i1 [ true, %108 ], [ false, %115 ]
  %118 = load ptr, ptr %13, align 8, !tbaa !5
  %119 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %118, i32 0, i32 1
  %120 = load ptr, ptr %119, align 8, !tbaa !23
  %121 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %120, i32 0, i32 18
  %122 = load i64, ptr %121, align 8, !tbaa !24
  %123 = load i64, ptr %20, align 8, !tbaa !20
  %124 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %122, i64 noundef %123) #5
  br i1 %124, label %125, label %133

125:                                              ; preds = %116
  br label %126

126:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  store i32 2, ptr %21, align 4, !tbaa !10
  %127 = load i32, ptr @g_traceLevel, align 4, !tbaa !10
  %128 = icmp sle i32 2, %127
  br i1 %128, label %129, label %130

129:                                              ; preds = %126
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_0)
  br label %130

130:                                              ; preds = %129, %126
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  br label %131

131:                                              ; preds = %130
  br label %132

132:                                              ; preds = %131
  store i32 -1, ptr %5, align 4
  store i32 1, ptr %22, align 4
  br label %291

133:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  %134 = load ptr, ptr %13, align 8, !tbaa !5
  %135 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %134, i32 0, i32 1
  %136 = load ptr, ptr %135, align 8, !tbaa !23
  %137 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %136, i32 0, i32 18
  %138 = load i64, ptr %137, align 8, !tbaa !24
  %139 = load i64, ptr %20, align 8, !tbaa !20
  %140 = mul i64 %138, %139
  store i64 %140, ptr %23, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  %141 = load i64, ptr %23, align 8, !tbaa !20
  %142 = call ptr @AlignedAlloc(i64 noundef %141)
  store ptr %142, ptr %24, align 8, !tbaa !5
  %143 = load ptr, ptr %24, align 8, !tbaa !5
  %144 = icmp eq ptr null, %143
  br i1 %144, label %145, label %153

145:                                              ; preds = %133
  br label %146

146:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  store i32 2, ptr %25, align 4, !tbaa !10
  %147 = load i32, ptr @g_traceLevel, align 4, !tbaa !10
  %148 = icmp sle i32 2, %147
  br i1 %148, label %149, label %150

149:                                              ; preds = %146
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_1)
  br label %150

150:                                              ; preds = %149, %146
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  br label %151

151:                                              ; preds = %150
  br label %152

152:                                              ; preds = %151
  store i32 -1, ptr %5, align 4
  store i32 1, ptr %22, align 4
  br label %290

153:                                              ; preds = %133
  %154 = load ptr, ptr %24, align 8, !tbaa !5
  %155 = load ptr, ptr %13, align 8, !tbaa !5
  %156 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %155, i32 0, i32 4
  store ptr %154, ptr %156, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  %157 = load ptr, ptr %24, align 8, !tbaa !5
  %158 = load i64, ptr %23, align 8, !tbaa !20
  %159 = call noundef ptr @_ZN14NAMESPACE_MAINL9IndexByteIvEEPT_S2_m(ptr noundef %157, i64 noundef %158) #5
  store ptr %159, ptr %26, align 8, !tbaa !5
  br label %160

160:                                              ; preds = %283, %153
  %161 = load i8, ptr %17, align 1, !tbaa !9
  %162 = sext i8 %161 to i32
  %163 = icmp eq i32 0, %162
  br i1 %163, label %164, label %245

164:                                              ; preds = %160
  store i8 1, ptr %17, align 1, !tbaa !9
  %165 = load ptr, ptr %15, align 8, !tbaa !5
  %166 = icmp ne ptr null, %165
  br i1 %166, label %167, label %196

167:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #5
  br label %168

168:                                              ; preds = %185, %167
  br label %169

169:                                              ; preds = %176, %168
  %170 = load ptr, ptr %15, align 8, !tbaa !5
  %171 = load i8, ptr %170, align 1, !tbaa !9
  store i8 %171, ptr %17, align 1, !tbaa !9
  %172 = load ptr, ptr %15, align 8, !tbaa !5
  %173 = getelementptr inbounds i8, ptr %172, i32 1
  store ptr %173, ptr %15, align 8, !tbaa !5
  %174 = load ptr, ptr %18, align 8, !tbaa !5
  %175 = getelementptr inbounds i64, ptr %174, i32 1
  store ptr %175, ptr %18, align 8, !tbaa !5
  br label %176

176:                                              ; preds = %169
  %177 = load i8, ptr %17, align 1, !tbaa !9
  %178 = sext i8 %177 to i32
  %179 = icmp eq i32 0, %178
  br i1 %179, label %169, label %180, !llvm.loop !28

180:                                              ; preds = %176
  %181 = load i8, ptr %17, align 1, !tbaa !9
  %182 = sext i8 %181 to i32
  %183 = icmp slt i32 %182, 0
  %184 = zext i1 %183 to i8
  store i8 %184, ptr %27, align 1, !tbaa !16
  br label %185

185:                                              ; preds = %180
  %186 = load i8, ptr %16, align 1, !tbaa !16, !range !18, !noundef !19
  %187 = trunc i8 %186 to i1
  %188 = zext i1 %187 to i32
  %189 = load i8, ptr %27, align 1, !tbaa !16, !range !18, !noundef !19
  %190 = trunc i8 %189 to i1
  %191 = zext i1 %190 to i32
  %192 = icmp ne i32 %188, %191
  br i1 %192, label %168, label %193, !llvm.loop !30

193:                                              ; preds = %185
  %194 = load ptr, ptr %18, align 8, !tbaa !5
  %195 = getelementptr inbounds i64, ptr %194, i32 -1
  store ptr %195, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #5
  br label %196

196:                                              ; preds = %193, %164
  %197 = load ptr, ptr %18, align 8, !tbaa !5
  %198 = load i64, ptr %197, align 8, !tbaa !20
  store i64 %198, ptr %19, align 8, !tbaa !20
  %199 = load ptr, ptr %18, align 8, !tbaa !5
  %200 = getelementptr inbounds i64, ptr %199, i32 1
  store ptr %200, ptr %18, align 8, !tbaa !5
  %201 = load i64, ptr %19, align 8, !tbaa !20
  %202 = load i64, ptr %11, align 8, !tbaa !20
  %203 = icmp ult i64 %201, %202
  br i1 %203, label %206, label %204

204:                                              ; preds = %196
  call void @LogAssertFailure(i64 noundef 269, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.33)
  call void @__assert_fail(ptr noundef @.str.34, ptr noundef @.str, i32 noundef 269, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

205:                                              ; No predecessors!
  br label %206

206:                                              ; preds = %205, %196
  %207 = phi i1 [ true, %196 ], [ false, %205 ]
  %208 = load i64, ptr %19, align 8, !tbaa !20
  %209 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %208) #5
  br i1 %209, label %210, label %212

210:                                              ; preds = %206
  call void @LogAssertFailure(i64 noundef 270, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.35)
  call void @__assert_fail(ptr noundef @.str.36, ptr noundef @.str, i32 noundef 270, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

211:                                              ; No predecessors!
  br label %212

212:                                              ; preds = %211, %206
  %213 = phi i1 [ true, %206 ], [ false, %211 ]
  %214 = load ptr, ptr %13, align 8, !tbaa !5
  %215 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %214, i32 0, i32 1
  %216 = load ptr, ptr %215, align 8, !tbaa !23
  %217 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %216, i32 0, i32 18
  %218 = load i64, ptr %217, align 8, !tbaa !24
  %219 = icmp eq i64 8, %218
  br i1 %219, label %220, label %227

220:                                              ; preds = %212
  %221 = load i64, ptr %19, align 8, !tbaa !20
  %222 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %221) #5
  br i1 %222, label %223, label %225

223:                                              ; preds = %220
  call void @LogAssertFailure(i64 noundef 273, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.37)
  call void @__assert_fail(ptr noundef @.str.38, ptr noundef @.str, i32 noundef 273, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

224:                                              ; No predecessors!
  br label %225

225:                                              ; preds = %224, %220
  %226 = phi i1 [ true, %220 ], [ false, %224 ]
  br label %244

227:                                              ; preds = %212
  %228 = load ptr, ptr %13, align 8, !tbaa !5
  %229 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %228, i32 0, i32 1
  %230 = load ptr, ptr %229, align 8, !tbaa !23
  %231 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %230, i32 0, i32 18
  %232 = load i64, ptr %231, align 8, !tbaa !24
  %233 = icmp eq i64 4, %232
  br i1 %233, label %236, label %234

234:                                              ; preds = %227
  call void @LogAssertFailure(i64 noundef 275, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.39)
  call void @__assert_fail(ptr noundef @.str.40, ptr noundef @.str, i32 noundef 275, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

235:                                              ; No predecessors!
  br label %236

236:                                              ; preds = %235, %227
  %237 = phi i1 [ true, %227 ], [ false, %235 ]
  %238 = load i64, ptr %19, align 8, !tbaa !20
  %239 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorIjmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueltclsr3std14numeric_limitsIS2_EE3maxEclsr3std14numeric_limitsIS3_EE3maxEEbE4typeES3_(i64 noundef %238) #5
  br i1 %239, label %240, label %242

240:                                              ; preds = %236
  call void @LogAssertFailure(i64 noundef 277, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.41)
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str, i32 noundef 277, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

241:                                              ; No predecessors!
  br label %242

242:                                              ; preds = %241, %236
  %243 = phi i1 [ true, %236 ], [ false, %241 ]
  br label %244

244:                                              ; preds = %242, %225
  br label %245

245:                                              ; preds = %244, %160
  %246 = load ptr, ptr %13, align 8, !tbaa !5
  %247 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %246, i32 0, i32 1
  %248 = load ptr, ptr %247, align 8, !tbaa !23
  %249 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %248, i32 0, i32 18
  %250 = load i64, ptr %249, align 8, !tbaa !24
  %251 = icmp eq i64 8, %250
  br i1 %251, label %252, label %255

252:                                              ; preds = %245
  %253 = load i64, ptr %19, align 8, !tbaa !20
  %254 = load ptr, ptr %24, align 8, !tbaa !5
  store i64 %253, ptr %254, align 8, !tbaa !20
  br label %269

255:                                              ; preds = %245
  %256 = load ptr, ptr %13, align 8, !tbaa !5
  %257 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %256, i32 0, i32 1
  %258 = load ptr, ptr %257, align 8, !tbaa !23
  %259 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %258, i32 0, i32 18
  %260 = load i64, ptr %259, align 8, !tbaa !24
  %261 = icmp eq i64 4, %260
  br i1 %261, label %264, label %262

262:                                              ; preds = %255
  call void @LogAssertFailure(i64 noundef 284, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.39)
  call void @__assert_fail(ptr noundef @.str.40, ptr noundef @.str, i32 noundef 284, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

263:                                              ; No predecessors!
  br label %264

264:                                              ; preds = %263, %255
  %265 = phi i1 [ true, %255 ], [ false, %263 ]
  %266 = load i64, ptr %19, align 8, !tbaa !20
  %267 = trunc i64 %266 to i32
  %268 = load ptr, ptr %24, align 8, !tbaa !5
  store i32 %267, ptr %268, align 4, !tbaa !10
  br label %269

269:                                              ; preds = %264, %252
  %270 = load ptr, ptr %24, align 8, !tbaa !5
  %271 = load ptr, ptr %13, align 8, !tbaa !5
  %272 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %271, i32 0, i32 1
  %273 = load ptr, ptr %272, align 8, !tbaa !23
  %274 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %273, i32 0, i32 18
  %275 = load i64, ptr %274, align 8, !tbaa !24
  %276 = call noundef ptr @_ZN14NAMESPACE_MAINL9IndexByteIvEEPT_S2_m(ptr noundef %270, i64 noundef %275) #5
  store ptr %276, ptr %24, align 8, !tbaa !5
  %277 = load i8, ptr %8, align 1, !tbaa !9
  %278 = sext i8 %277 to i32
  %279 = load i8, ptr %17, align 1, !tbaa !9
  %280 = sext i8 %279 to i32
  %281 = sub nsw i32 %280, %278
  %282 = trunc i32 %281 to i8
  store i8 %282, ptr %17, align 1, !tbaa !9
  br label %283

283:                                              ; preds = %269
  %284 = load ptr, ptr %26, align 8, !tbaa !5
  %285 = load ptr, ptr %24, align 8, !tbaa !5
  %286 = icmp ne ptr %284, %285
  br i1 %286, label %160, label %287, !llvm.loop !31

287:                                              ; preds = %283
  %288 = load ptr, ptr %13, align 8, !tbaa !5
  %289 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %288, i32 1
  store ptr %289, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  store i32 0, ptr %22, align 4
  br label %290

290:                                              ; preds = %287, %152
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  br label %291

291:                                              ; preds = %290, %132
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  %292 = load i32, ptr %22, align 4
  switch i32 %292, label %306 [
    i32 0, label %293
  ]

293:                                              ; preds = %291
  br label %294

294:                                              ; preds = %293
  %295 = load ptr, ptr %14, align 8, !tbaa !5
  %296 = load ptr, ptr %13, align 8, !tbaa !5
  %297 = icmp ne ptr %295, %296
  br i1 %297, label %108, label %298, !llvm.loop !32

298:                                              ; preds = %294
  %299 = load i8, ptr %17, align 1, !tbaa !9
  %300 = sext i8 %299 to i32
  %301 = icmp eq i32 0, %300
  br i1 %301, label %304, label %302

302:                                              ; preds = %298
  call void @LogAssertFailure(i64 noundef 294, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.25)
  call void @__assert_fail(ptr noundef @.str.26, ptr noundef @.str, i32 noundef 294, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

303:                                              ; No predecessors!
  br label %304

304:                                              ; preds = %303, %298
  %305 = phi i1 [ true, %298 ], [ false, %303 ]
  store i32 0, ptr %22, align 4
  br label %306

306:                                              ; preds = %304, %291
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  %307 = load i32, ptr %22, align 4
  switch i32 %307, label %476 [
    i32 0, label %308
  ]

308:                                              ; preds = %306
  br label %468

309:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  %310 = load ptr, ptr %12, align 8, !tbaa !5
  store ptr %310, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  br label %311

311:                                              ; preds = %453, %309
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  %312 = load ptr, ptr %13, align 8, !tbaa !5
  %313 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %312, i32 0, i32 0
  %314 = load i64, ptr %313, align 8, !tbaa !21
  store i64 %314, ptr %30, align 8, !tbaa !20
  %315 = load i64, ptr %30, align 8, !tbaa !20
  %316 = icmp ule i64 1, %315
  br i1 %316, label %319, label %317

317:                                              ; preds = %311
  call void @LogAssertFailure(i64 noundef 300, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.9)
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str, i32 noundef 300, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

318:                                              ; No predecessors!
  br label %319

319:                                              ; preds = %318, %311
  %320 = phi i1 [ true, %311 ], [ false, %318 ]
  %321 = load ptr, ptr %13, align 8, !tbaa !5
  %322 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %321, i32 0, i32 1
  %323 = load ptr, ptr %322, align 8, !tbaa !23
  %324 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %323, i32 0, i32 17
  %325 = load i64, ptr %324, align 8, !tbaa !33
  %326 = load i64, ptr %30, align 8, !tbaa !20
  %327 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %325, i64 noundef %326) #5
  br i1 %327, label %328, label %336

328:                                              ; preds = %319
  br label %329

329:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  store i32 2, ptr %31, align 4, !tbaa !10
  %330 = load i32, ptr @g_traceLevel, align 4, !tbaa !10
  %331 = icmp sle i32 2, %330
  br i1 %331, label %332, label %333

332:                                              ; preds = %329
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_2)
  br label %333

333:                                              ; preds = %332, %329
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  br label %334

334:                                              ; preds = %333
  br label %335

335:                                              ; preds = %334
  store i32 -1, ptr %5, align 4
  store i32 1, ptr %22, align 4
  br label %450

336:                                              ; preds = %319
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  %337 = load ptr, ptr %13, align 8, !tbaa !5
  %338 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %337, i32 0, i32 1
  %339 = load ptr, ptr %338, align 8, !tbaa !23
  %340 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %339, i32 0, i32 17
  %341 = load i64, ptr %340, align 8, !tbaa !33
  %342 = load i64, ptr %30, align 8, !tbaa !20
  %343 = mul i64 %341, %342
  store i64 %343, ptr %32, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  %344 = load i64, ptr %32, align 8, !tbaa !20
  %345 = call ptr @AlignedAlloc(i64 noundef %344)
  store ptr %345, ptr %33, align 8, !tbaa !5
  %346 = load ptr, ptr %33, align 8, !tbaa !5
  %347 = icmp eq ptr null, %346
  br i1 %347, label %348, label %356

348:                                              ; preds = %336
  br label %349

349:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  store i32 2, ptr %34, align 4, !tbaa !10
  %350 = load i32, ptr @g_traceLevel, align 4, !tbaa !10
  %351 = icmp sle i32 2, %350
  br i1 %351, label %352, label %353

352:                                              ; preds = %349
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_3)
  br label %353

353:                                              ; preds = %352, %349
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  br label %354

354:                                              ; preds = %353
  br label %355

355:                                              ; preds = %354
  store i32 -1, ptr %5, align 4
  store i32 1, ptr %22, align 4
  br label %449

356:                                              ; preds = %336
  %357 = load ptr, ptr %33, align 8, !tbaa !5
  %358 = load ptr, ptr %13, align 8, !tbaa !5
  %359 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %358, i32 0, i32 4
  store ptr %357, ptr %359, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #5
  %360 = load ptr, ptr %33, align 8, !tbaa !5
  %361 = load i64, ptr %32, align 8, !tbaa !20
  %362 = call noundef ptr @_ZN14NAMESPACE_MAINL9IndexByteIvEEPT_S2_m(ptr noundef %360, i64 noundef %361) #5
  store ptr %362, ptr %35, align 8, !tbaa !5
  br label %363

363:                                              ; preds = %442, %356
  %364 = load i8, ptr %17, align 1, !tbaa !9
  %365 = sext i8 %364 to i32
  %366 = icmp eq i32 0, %365
  br i1 %366, label %367, label %404

367:                                              ; preds = %363
  store i8 1, ptr %17, align 1, !tbaa !9
  %368 = load ptr, ptr %15, align 8, !tbaa !5
  %369 = icmp ne ptr null, %368
  br i1 %369, label %370, label %399

370:                                              ; preds = %367
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #5
  br label %371

371:                                              ; preds = %388, %370
  br label %372

372:                                              ; preds = %379, %371
  %373 = load ptr, ptr %15, align 8, !tbaa !5
  %374 = load i8, ptr %373, align 1, !tbaa !9
  store i8 %374, ptr %17, align 1, !tbaa !9
  %375 = load ptr, ptr %15, align 8, !tbaa !5
  %376 = getelementptr inbounds i8, ptr %375, i32 1
  store ptr %376, ptr %15, align 8, !tbaa !5
  %377 = load ptr, ptr %28, align 8, !tbaa !5
  %378 = getelementptr inbounds double, ptr %377, i32 1
  store ptr %378, ptr %28, align 8, !tbaa !5
  br label %379

379:                                              ; preds = %372
  %380 = load i8, ptr %17, align 1, !tbaa !9
  %381 = sext i8 %380 to i32
  %382 = icmp eq i32 0, %381
  br i1 %382, label %372, label %383, !llvm.loop !34

383:                                              ; preds = %379
  %384 = load i8, ptr %17, align 1, !tbaa !9
  %385 = sext i8 %384 to i32
  %386 = icmp slt i32 %385, 0
  %387 = zext i1 %386 to i8
  store i8 %387, ptr %36, align 1, !tbaa !16
  br label %388

388:                                              ; preds = %383
  %389 = load i8, ptr %16, align 1, !tbaa !16, !range !18, !noundef !19
  %390 = trunc i8 %389 to i1
  %391 = zext i1 %390 to i32
  %392 = load i8, ptr %36, align 1, !tbaa !16, !range !18, !noundef !19
  %393 = trunc i8 %392 to i1
  %394 = zext i1 %393 to i32
  %395 = icmp ne i32 %391, %394
  br i1 %395, label %371, label %396, !llvm.loop !35

396:                                              ; preds = %388
  %397 = load ptr, ptr %28, align 8, !tbaa !5
  %398 = getelementptr inbounds double, ptr %397, i32 -1
  store ptr %398, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #5
  br label %399

399:                                              ; preds = %396, %367
  %400 = load ptr, ptr %28, align 8, !tbaa !5
  %401 = load double, ptr %400, align 8, !tbaa !36
  store double %401, ptr %29, align 8, !tbaa !36
  %402 = load ptr, ptr %28, align 8, !tbaa !5
  %403 = getelementptr inbounds double, ptr %402, i32 1
  store ptr %403, ptr %28, align 8, !tbaa !5
  br label %404

404:                                              ; preds = %399, %363
  %405 = load ptr, ptr %13, align 8, !tbaa !5
  %406 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %405, i32 0, i32 1
  %407 = load ptr, ptr %406, align 8, !tbaa !23
  %408 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %407, i32 0, i32 17
  %409 = load i64, ptr %408, align 8, !tbaa !33
  %410 = icmp eq i64 8, %409
  br i1 %410, label %411, label %414

411:                                              ; preds = %404
  %412 = load double, ptr %29, align 8, !tbaa !36
  %413 = load ptr, ptr %33, align 8, !tbaa !5
  store double %412, ptr %413, align 8, !tbaa !36
  br label %428

414:                                              ; preds = %404
  %415 = load ptr, ptr %13, align 8, !tbaa !5
  %416 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %415, i32 0, i32 1
  %417 = load ptr, ptr %416, align 8, !tbaa !23
  %418 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %417, i32 0, i32 17
  %419 = load i64, ptr %418, align 8, !tbaa !33
  %420 = icmp eq i64 4, %419
  br i1 %420, label %423, label %421

421:                                              ; preds = %414
  call void @LogAssertFailure(i64 noundef 337, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.23)
  call void @__assert_fail(ptr noundef @.str.24, ptr noundef @.str, i32 noundef 337, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

422:                                              ; No predecessors!
  br label %423

423:                                              ; preds = %422, %414
  %424 = phi i1 [ true, %414 ], [ false, %422 ]
  %425 = load double, ptr %29, align 8, !tbaa !36
  %426 = fptrunc double %425 to float
  %427 = load ptr, ptr %33, align 8, !tbaa !5
  store float %426, ptr %427, align 4, !tbaa !37
  br label %428

428:                                              ; preds = %423, %411
  %429 = load ptr, ptr %33, align 8, !tbaa !5
  %430 = load ptr, ptr %13, align 8, !tbaa !5
  %431 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %430, i32 0, i32 1
  %432 = load ptr, ptr %431, align 8, !tbaa !23
  %433 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %432, i32 0, i32 17
  %434 = load i64, ptr %433, align 8, !tbaa !33
  %435 = call noundef ptr @_ZN14NAMESPACE_MAINL9IndexByteIvEEPT_S2_m(ptr noundef %429, i64 noundef %434) #5
  store ptr %435, ptr %33, align 8, !tbaa !5
  %436 = load i8, ptr %8, align 1, !tbaa !9
  %437 = sext i8 %436 to i32
  %438 = load i8, ptr %17, align 1, !tbaa !9
  %439 = sext i8 %438 to i32
  %440 = sub nsw i32 %439, %437
  %441 = trunc i32 %440 to i8
  store i8 %441, ptr %17, align 1, !tbaa !9
  br label %442

442:                                              ; preds = %428
  %443 = load ptr, ptr %35, align 8, !tbaa !5
  %444 = load ptr, ptr %33, align 8, !tbaa !5
  %445 = icmp ne ptr %443, %444
  br i1 %445, label %363, label %446, !llvm.loop !39

446:                                              ; preds = %442
  %447 = load ptr, ptr %13, align 8, !tbaa !5
  %448 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %447, i32 1
  store ptr %448, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  store i32 0, ptr %22, align 4
  br label %449

449:                                              ; preds = %446, %355
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  br label %450

450:                                              ; preds = %449, %335
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  %451 = load i32, ptr %22, align 4
  switch i32 %451, label %465 [
    i32 0, label %452
  ]

452:                                              ; preds = %450
  br label %453

453:                                              ; preds = %452
  %454 = load ptr, ptr %14, align 8, !tbaa !5
  %455 = load ptr, ptr %13, align 8, !tbaa !5
  %456 = icmp ne ptr %454, %455
  br i1 %456, label %311, label %457, !llvm.loop !40

457:                                              ; preds = %453
  %458 = load i8, ptr %17, align 1, !tbaa !9
  %459 = sext i8 %458 to i32
  %460 = icmp eq i32 0, %459
  br i1 %460, label %463, label %461

461:                                              ; preds = %457
  call void @LogAssertFailure(i64 noundef 347, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef @.str.25)
  call void @__assert_fail(ptr noundef @.str.26, ptr noundef @.str, i32 noundef 347, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #6
  unreachable

462:                                              ; No predecessors!
  br label %463

463:                                              ; preds = %462, %457
  %464 = phi i1 [ true, %457 ], [ false, %462 ]
  store i32 0, ptr %22, align 4
  br label %465

465:                                              ; preds = %463, %450
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  %466 = load i32, ptr %22, align 4
  switch i32 %466, label %476 [
    i32 0, label %467
  ]

467:                                              ; preds = %465
  br label %468

468:                                              ; preds = %467, %308
  br label %469

469:                                              ; preds = %468
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  store i32 3, ptr %37, align 4, !tbaa !10
  %470 = load i32, ptr @g_traceLevel, align 4, !tbaa !10
  %471 = icmp sle i32 3, %470
  br i1 %471, label %472, label %473

472:                                              ; preds = %469
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_4)
  br label %473

473:                                              ; preds = %472, %469
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  br label %474

474:                                              ; preds = %473
  br label %475

475:                                              ; preds = %474
  store i32 0, ptr %5, align 4
  store i32 1, ptr %22, align 4
  br label %476

476:                                              ; preds = %475, %465, %306
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #5
  %477 = load i32, ptr %5, align 4
  ret i32 %477
}

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

; 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: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorIjmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueltclsr3std14numeric_limitsIS2_EE3maxEclsr3std14numeric_limitsIS3_EE3maxEEbE4typeES3_(i64 noundef) #3

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


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

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

@g_traceLevel = external local_unnamed_addr global i32, align 4
@.str = external hidden unnamed_addr constant [89 x i8], align 1
@.str.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.23 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [62 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
@_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage = external hidden constant [40 x i8], align 16
@__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa = external hidden unnamed_addr constant [15 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
@__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa = external hidden unnamed_addr constant [120 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [23 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
@_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_0 = external hidden constant [109 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_1 = external hidden constant [61 x i8], align 16
@.str.33 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [35 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
@.str.41 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [37 x i8], align 1
@_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_2 = external hidden constant [110 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_3 = external hidden constant [61 x i8], align 16
@_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_4 = external hidden constant [39 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

declare ptr @AlignedAlloc(i64 noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa(ptr nocapture noundef nonnull readonly align 8 dereferenceable(40) %0, ptr noundef %1, i8 noundef signext %2, ptr noundef readonly %3) local_unnamed_addr #4 align 2 {
  %5 = alloca i64, align 8
  %6 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %7 = icmp sgt i32 %6, 2
  br i1 %7, label %8, label %9

8:                                                ; preds = %4
  tail call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage)
  br label %9

9:                                                ; preds = %8, %4
  %.not = icmp eq ptr %1, null
  br i1 %.not, label %10, label %11

10:                                               ; preds = %9
  tail call void @LogAssertFailure(i64 noundef 211, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.27)
  tail call void @__assert_fail(ptr noundef nonnull @.str.28, ptr noundef nonnull @.str, i32 noundef 211, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

11:                                               ; preds = %9
  switch i8 %2, label %12 [
    i8 -1, label %13
    i8 1, label %13
  ]

12:                                               ; preds = %11
  tail call void @LogAssertFailure(i64 noundef 212, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.13)
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str, i32 noundef 212, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

13:                                               ; preds = %11, %11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #6
  %14 = call noundef ptr @_ZN14NAMESPACE_MAIN22GetDataSetSharedTargetEPKhmPl(ptr noundef nonnull %1, i64 noundef 0, ptr noundef nonnull %5)
  %.not183 = icmp eq ptr %14, null
  br i1 %.not183, label %15, label %16

15:                                               ; preds = %13
  call void @LogAssertFailure(i64 noundef 216, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.29)
  call void @__assert_fail(ptr noundef nonnull @.str.30, ptr noundef nonnull @.str, i32 noundef 216, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

16:                                               ; preds = %13
  %17 = getelementptr inbounds i8, ptr %0, i64 16
  %18 = load ptr, ptr %17, align 8, !tbaa !9
  %.not184 = icmp eq ptr %18, null
  br i1 %.not184, label %19, label %20

19:                                               ; preds = %16
  call void @LogAssertFailure(i64 noundef 218, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.5)
  call void @__assert_fail(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str, i32 noundef 218, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

20:                                               ; preds = %16
  %21 = getelementptr inbounds i8, ptr %0, i64 8
  %22 = load i64, ptr %21, align 8, !tbaa !13
  %.not185 = icmp eq i64 %22, 0
  br i1 %.not185, label %23, label %24

23:                                               ; preds = %20
  call void @LogAssertFailure(i64 noundef 219, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.7)
  call void @__assert_fail(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str, i32 noundef 219, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

24:                                               ; preds = %20
  %25 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %18, i64 %22
  %.not186 = icmp eq ptr %3, null
  %26 = icmp slt i8 %2, 0
  %or.cond = and i1 %26, %.not186
  br i1 %or.cond, label %27, label %28

27:                                               ; preds = %24
  call void @LogAssertFailure(i64 noundef 225, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.31)
  call void @__assert_fail(ptr noundef nonnull @.str.32, ptr noundef nonnull @.str, i32 noundef 225, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

28:                                               ; preds = %24
  %29 = load i64, ptr %5, align 8, !tbaa !14
  %30 = icmp sgt i64 %29, -1
  br i1 %30, label %.preheader217, label %.preheader220

.preheader217:                                    ; preds = %28, %95
  %.0142 = phi i64 [ %.2144, %95 ], [ undef, %28 ]
  %.0134 = phi ptr [ %.5139, %95 ], [ %14, %28 ]
  %.0121 = phi i8 [ %94, %95 ], [ 0, %28 ]
  %.0114 = phi ptr [ %.5119, %95 ], [ %3, %28 ]
  %.0108 = phi ptr [ %96, %95 ], [ %18, %28 ]
  %31 = load i64, ptr %.0108, align 8, !tbaa !15
  %.not193 = icmp eq i64 %31, 0
  br i1 %.not193, label %32, label %33

32:                                               ; preds = %.preheader217
  call void @LogAssertFailure(i64 noundef 233, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.9)
  call void @__assert_fail(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str, i32 noundef 233, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

33:                                               ; preds = %.preheader217
  %34 = getelementptr inbounds i8, ptr %.0108, i64 8
  %35 = load ptr, ptr %34, align 8, !tbaa !17
  %36 = getelementptr inbounds i8, ptr %35, i64 136
  %37 = load i64, ptr %36, align 8, !tbaa !18
  %38 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %37, i64 noundef %31) #6
  br i1 %38, label %39, label %43

39:                                               ; preds = %33
  %40 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %41 = icmp sgt i32 %40, 1
  br i1 %41, label %42, label %.critedge

42:                                               ; preds = %39
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_0)
  br label %.critedge

43:                                               ; preds = %33
  %44 = load ptr, ptr %34, align 8, !tbaa !17
  %45 = getelementptr inbounds i8, ptr %44, i64 136
  %46 = load i64, ptr %45, align 8, !tbaa !18
  %47 = mul i64 %46, %31
  %48 = call ptr @AlignedAlloc(i64 noundef %47)
  %49 = icmp eq ptr %48, null
  br i1 %49, label %50, label %54

50:                                               ; preds = %43
  %51 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %52 = icmp sgt i32 %51, 1
  br i1 %52, label %53, label %.critedge

53:                                               ; preds = %50
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_1)
  br label %.critedge

54:                                               ; preds = %43
  %55 = getelementptr inbounds i8, ptr %.0108, i64 32
  store ptr %48, ptr %55, align 8, !tbaa !21
  %56 = call noundef ptr @_ZN14NAMESPACE_MAINL9IndexByteIvEEPT_S2_m(ptr noundef nonnull %48, i64 noundef %47) #6
  br label %57

57:                                               ; preds = %91, %54
  %.0166 = phi ptr [ %48, %54 ], [ %93, %91 ]
  %.1143 = phi i64 [ %.0142, %54 ], [ %.2144, %91 ]
  %.1135 = phi ptr [ %.0134, %54 ], [ %.5139, %91 ]
  %.1122 = phi i8 [ %.0121, %54 ], [ %94, %91 ]
  %.1115 = phi ptr [ %.0114, %54 ], [ %.5119, %91 ]
  %58 = icmp eq i8 %.1122, 0
  br i1 %58, label %59, label %83

59:                                               ; preds = %57
  %.not194 = icmp eq ptr %.1115, null
  br i1 %.not194, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %59, %.preheader
  %.3137 = phi ptr [ %62, %.preheader ], [ %.1135, %59 ]
  %.3117 = phi ptr [ %61, %.preheader ], [ %.1115, %59 ]
  %60 = load i8, ptr %.3117, align 1, !tbaa !22
  %61 = getelementptr inbounds i8, ptr %.3117, i64 1
  %62 = getelementptr inbounds i8, ptr %.3137, i64 8
  %63 = icmp ne i8 %60, 0
  %.not196.unshifted = xor i8 %60, %2
  %.not196 = icmp sgt i8 %.not196.unshifted, -1
  %or.cond273 = and i1 %63, %.not196
  br i1 %or.cond273, label %.loopexit, label %.preheader, !llvm.loop !23

.loopexit:                                        ; preds = %.preheader, %59
  %.4138 = phi ptr [ %.1135, %59 ], [ %.3137, %.preheader ]
  %.2123 = phi i8 [ 1, %59 ], [ %60, %.preheader ]
  %.4118 = phi ptr [ null, %59 ], [ %61, %.preheader ]
  %64 = load i64, ptr %.4138, align 8, !tbaa !14
  %65 = getelementptr inbounds i8, ptr %.4138, i64 8
  %66 = load i64, ptr %5, align 8, !tbaa !14
  %67 = icmp ult i64 %64, %66
  br i1 %67, label %69, label %68

68:                                               ; preds = %.loopexit
  call void @LogAssertFailure(i64 noundef 269, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.33)
  call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str, i32 noundef 269, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

69:                                               ; preds = %.loopexit
  %70 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %64) #6
  br i1 %70, label %71, label %72

71:                                               ; preds = %69
  call void @LogAssertFailure(i64 noundef 270, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.35)
  call void @__assert_fail(ptr noundef nonnull @.str.36, ptr noundef nonnull @.str, i32 noundef 270, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

72:                                               ; preds = %69
  %73 = load ptr, ptr %34, align 8, !tbaa !17
  %74 = getelementptr inbounds i8, ptr %73, i64 136
  %75 = load i64, ptr %74, align 8, !tbaa !18
  switch i64 %75, label %79 [
    i64 8, label %76
    i64 4, label %80
  ]

76:                                               ; preds = %72
  %77 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %64) #6
  br i1 %77, label %78, label %83

78:                                               ; preds = %76
  call void @LogAssertFailure(i64 noundef 273, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.37)
  call void @__assert_fail(ptr noundef nonnull @.str.38, ptr noundef nonnull @.str, i32 noundef 273, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

79:                                               ; preds = %72
  call void @LogAssertFailure(i64 noundef 275, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.39)
  call void @__assert_fail(ptr noundef nonnull @.str.40, ptr noundef nonnull @.str, i32 noundef 275, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

80:                                               ; preds = %72
  %81 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorIjmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueltclsr3std14numeric_limitsIS2_EE3maxEclsr3std14numeric_limitsIS3_EE3maxEEbE4typeES3_(i64 noundef %64) #6
  br i1 %81, label %82, label %83

82:                                               ; preds = %80
  call void @LogAssertFailure(i64 noundef 277, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.41)
  call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str, i32 noundef 277, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

83:                                               ; preds = %76, %80, %57
  %.2144 = phi i64 [ %64, %76 ], [ %64, %80 ], [ %.1143, %57 ]
  %.5139 = phi ptr [ %65, %76 ], [ %65, %80 ], [ %.1135, %57 ]
  %.3124 = phi i8 [ %.2123, %76 ], [ %.2123, %80 ], [ %.1122, %57 ]
  %.5119 = phi ptr [ %.4118, %76 ], [ %.4118, %80 ], [ %.1115, %57 ]
  %84 = load ptr, ptr %34, align 8, !tbaa !17
  %85 = getelementptr inbounds i8, ptr %84, i64 136
  %86 = load i64, ptr %85, align 8, !tbaa !18
  switch i64 %86, label %88 [
    i64 8, label %87
    i64 4, label %89
  ]

87:                                               ; preds = %83
  store i64 %.2144, ptr %.0166, align 8, !tbaa !14
  %.pre = load i64, ptr %85, align 8, !tbaa !18
  br label %91

88:                                               ; preds = %83
  call void @LogAssertFailure(i64 noundef 284, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.39)
  call void @__assert_fail(ptr noundef nonnull @.str.40, ptr noundef nonnull @.str, i32 noundef 284, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

89:                                               ; preds = %83
  %90 = trunc i64 %.2144 to i32
  store i32 %90, ptr %.0166, align 4, !tbaa !5
  br label %91

91:                                               ; preds = %89, %87
  %92 = phi i64 [ 4, %89 ], [ %.pre, %87 ]
  %93 = call noundef ptr @_ZN14NAMESPACE_MAINL9IndexByteIvEEPT_S2_m(ptr noundef nonnull %.0166, i64 noundef %92) #6
  %94 = sub i8 %.3124, %2
  %.not197 = icmp eq ptr %56, %93
  br i1 %.not197, label %95, label %57, !llvm.loop !25

95:                                               ; preds = %91
  %96 = getelementptr inbounds i8, ptr %.0108, i64 56
  %.not198 = icmp eq ptr %25, %96
  br i1 %.not198, label %97, label %.preheader217, !llvm.loop !26

97:                                               ; preds = %95
  %98 = icmp eq i8 %94, 0
  br i1 %98, label %151, label %99

99:                                               ; preds = %97
  call void @LogAssertFailure(i64 noundef 294, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.25)
  call void @__assert_fail(ptr noundef nonnull @.str.26, ptr noundef nonnull @.str, i32 noundef 294, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

.preheader220:                                    ; preds = %28, %146
  %.0158 = phi ptr [ %.5163, %146 ], [ %14, %28 ]
  %.0153 = phi double [ %.2155, %146 ], [ undef, %28 ]
  %.6127 = phi i8 [ %145, %146 ], [ 0, %28 ]
  %.8 = phi ptr [ %.13, %146 ], [ %3, %28 ]
  %.3111 = phi ptr [ %147, %146 ], [ %18, %28 ]
  %100 = load i64, ptr %.3111, align 8, !tbaa !15
  %.not187 = icmp eq i64 %100, 0
  br i1 %.not187, label %101, label %102

101:                                              ; preds = %.preheader220
  call void @LogAssertFailure(i64 noundef 300, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.9)
  call void @__assert_fail(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str, i32 noundef 300, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

102:                                              ; preds = %.preheader220
  %103 = getelementptr inbounds i8, ptr %.3111, i64 8
  %104 = load ptr, ptr %103, align 8, !tbaa !17
  %105 = getelementptr inbounds i8, ptr %104, i64 128
  %106 = load i64, ptr %105, align 8, !tbaa !27
  %107 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %106, i64 noundef %100) #6
  br i1 %107, label %108, label %112

108:                                              ; preds = %102
  %109 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %110 = icmp sgt i32 %109, 1
  br i1 %110, label %111, label %.critedge

111:                                              ; preds = %108
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_2)
  br label %.critedge

112:                                              ; preds = %102
  %113 = load ptr, ptr %103, align 8, !tbaa !17
  %114 = getelementptr inbounds i8, ptr %113, i64 128
  %115 = load i64, ptr %114, align 8, !tbaa !27
  %116 = mul i64 %115, %100
  %117 = call ptr @AlignedAlloc(i64 noundef %116)
  %118 = icmp eq ptr %117, null
  br i1 %118, label %119, label %123

119:                                              ; preds = %112
  %120 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %121 = icmp sgt i32 %120, 1
  br i1 %121, label %122, label %.critedge

122:                                              ; preds = %119
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_3)
  br label %.critedge

123:                                              ; preds = %112
  %124 = getelementptr inbounds i8, ptr %.3111, i64 32
  store ptr %117, ptr %124, align 8, !tbaa !21
  %125 = call noundef ptr @_ZN14NAMESPACE_MAINL9IndexByteIvEEPT_S2_m(ptr noundef nonnull %117, i64 noundef %116) #6
  br label %126

126:                                              ; preds = %143, %123
  %.1159 = phi ptr [ %.0158, %123 ], [ %.5163, %143 ]
  %.1154 = phi double [ %.0153, %123 ], [ %.2155, %143 ]
  %.0133 = phi ptr [ %117, %123 ], [ %144, %143 ]
  %.7128 = phi i8 [ %.6127, %123 ], [ %145, %143 ]
  %.9 = phi ptr [ %.8, %123 ], [ %.13, %143 ]
  %127 = icmp eq i8 %.7128, 0
  br i1 %127, label %128, label %135

128:                                              ; preds = %126
  %.not188 = icmp eq ptr %.9, null
  br i1 %.not188, label %.loopexit219, label %.preheader218

.preheader218:                                    ; preds = %128, %.preheader218
  %.3161 = phi ptr [ %131, %.preheader218 ], [ %.1159, %128 ]
  %.11 = phi ptr [ %130, %.preheader218 ], [ %.9, %128 ]
  %129 = load i8, ptr %.11, align 1, !tbaa !22
  %130 = getelementptr inbounds i8, ptr %.11, i64 1
  %131 = getelementptr inbounds i8, ptr %.3161, i64 8
  %132 = icmp ne i8 %129, 0
  %.not190.unshifted = xor i8 %129, %2
  %.not190 = icmp sgt i8 %.not190.unshifted, -1
  %or.cond274 = and i1 %132, %.not190
  br i1 %or.cond274, label %.loopexit219, label %.preheader218, !llvm.loop !28

.loopexit219:                                     ; preds = %.preheader218, %128
  %.4162 = phi ptr [ %.1159, %128 ], [ %.3161, %.preheader218 ]
  %.8129 = phi i8 [ 1, %128 ], [ %129, %.preheader218 ]
  %.12 = phi ptr [ null, %128 ], [ %130, %.preheader218 ]
  %133 = load double, ptr %.4162, align 8, !tbaa !29
  %134 = getelementptr inbounds i8, ptr %.4162, i64 8
  br label %135

135:                                              ; preds = %.loopexit219, %126
  %.5163 = phi ptr [ %134, %.loopexit219 ], [ %.1159, %126 ]
  %.2155 = phi double [ %133, %.loopexit219 ], [ %.1154, %126 ]
  %.9130 = phi i8 [ %.8129, %.loopexit219 ], [ %.7128, %126 ]
  %.13 = phi ptr [ %.12, %.loopexit219 ], [ %.9, %126 ]
  %136 = load ptr, ptr %103, align 8, !tbaa !17
  %137 = getelementptr inbounds i8, ptr %136, i64 128
  %138 = load i64, ptr %137, align 8, !tbaa !27
  switch i64 %138, label %140 [
    i64 8, label %139
    i64 4, label %141
  ]

139:                                              ; preds = %135
  store double %.2155, ptr %.0133, align 8, !tbaa !29
  br label %143

140:                                              ; preds = %135
  call void @LogAssertFailure(i64 noundef 337, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.23)
  call void @__assert_fail(ptr noundef nonnull @.str.24, ptr noundef nonnull @.str, i32 noundef 337, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

141:                                              ; preds = %135
  %142 = fptrunc double %.2155 to float
  store float %142, ptr %.0133, align 4, !tbaa !30
  br label %143

143:                                              ; preds = %141, %139
  %144 = call noundef ptr @_ZN14NAMESPACE_MAINL9IndexByteIvEEPT_S2_m(ptr noundef nonnull %.0133, i64 noundef %138) #6
  %145 = sub i8 %.9130, %2
  %.not191 = icmp eq ptr %125, %144
  br i1 %.not191, label %146, label %126, !llvm.loop !32

146:                                              ; preds = %143
  %147 = getelementptr inbounds i8, ptr %.3111, i64 56
  %.not192 = icmp eq ptr %25, %147
  br i1 %.not192, label %148, label %.preheader220, !llvm.loop !33

148:                                              ; preds = %146
  %149 = icmp eq i8 %145, 0
  br i1 %149, label %151, label %150

150:                                              ; preds = %148
  call void @LogAssertFailure(i64 noundef 347, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa, ptr noundef nonnull @.str.25)
  call void @__assert_fail(ptr noundef nonnull @.str.26, ptr noundef nonnull @.str, i32 noundef 347, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKa) #5
  unreachable

151:                                              ; preds = %148, %97
  %152 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %153 = icmp sgt i32 %152, 2
  br i1 %153, label %154, label %.critedge

154:                                              ; preds = %151
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN15DataSetBoosting14InitTargetDataEPKhaPKaE13LOG__sMessage_4)
  br label %.critedge

.critedge:                                        ; preds = %119, %122, %108, %111, %50, %53, %39, %42, %151, %154
  %.6 = phi i32 [ 0, %154 ], [ 0, %151 ], [ -1, %42 ], [ -1, %39 ], [ -1, %53 ], [ -1, %50 ], [ -1, %111 ], [ -1, %108 ], [ -1, %122 ], [ -1, %119 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #6
  ret i32 %.6
}

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

; 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: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorIjmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueltclsr3std14numeric_limitsIS2_EE3maxEclsr3std14numeric_limitsIS3_EE3maxEEbE4typeES3_(i64 noundef) local_unnamed_addr #3

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 = { 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 = { noreturn nounwind }
attributes #6 = { 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 = !{!11, !11, i64 0}
!15 = !{!16, !11, i64 0}
!16 = !{!"_ZTSN14NAMESPACE_MAIN18DataSubsetBoostingE", !11, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48}
!17 = !{!16, !12, i64 8}
!18 = !{!19, !11, i64 136}
!19 = !{!"_ZTS16ObjectiveWrapper", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !6, i64 32, !6, i64 36, !6, i64 40, !20, i64 48, !20, i64 56, !20, i64 64, !20, i64 72, !20, i64 80, !20, i64 88, !20, i64 96, !20, i64 104, !6, i64 112, !11, i64 120, !11, i64 128, !11, i64 136, !6, i64 144, !12, i64 152}
!20 = !{!"double", !7, i64 0}
!21 = !{!16, !12, i64 32}
!22 = !{!7, !7, i64 0}
!23 = distinct !{!23, !24}
!24 = !{!"llvm.loop.mustprogress"}
!25 = distinct !{!25, !24}
!26 = distinct !{!26, !24}
!27 = !{!19, !11, i64 128}
!28 = distinct !{!28, !24}
!29 = !{!20, !20, i64 0}
!30 = !{!31, !31, i64 0}
!31 = !{!"float", !7, i64 0}
!32 = distinct !{!32, !24}
!33 = distinct !{!33, !24}


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