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

; 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.Config = type { i64, i32 }
%"class.NAMESPACE_MAIN::BoosterCore" = type { %"struct.std::atomic", i64, i32, i64, ptr, i64, ptr, i64, ptr, ptr, double, i64, i64, i64, i64, %"struct.NAMESPACE_MAIN::DataSetBoosting", %"struct.NAMESPACE_MAIN::DataSetBoosting", %struct.ObjectiveWrapper, %struct.ObjectiveWrapper }
%"struct.std::atomic" = type { %"struct.std::__atomic_base" }
%"struct.std::__atomic_base" = type { i64 }
%"struct.NAMESPACE_MAIN::DataSetBoosting" = type { i64, i64, 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 }
%"class.NAMESPACE_MAIN::FeatureBoosting" = type <{ i64, i8, i8, i8, [5 x i8] }>
%"struct.NAMESPACE_MAIN::TermFeature" = type { ptr, i64, i64 }
%"struct.NAMESPACE_MAIN::DataSubsetBoosting" = type { i64, ptr, ptr, ptr, ptr, ptr, ptr }

@g_traceLevel = external global i32, align 4
@.str = external hidden unnamed_addr constant [85 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage = external hidden constant [28 x i8], align 16
@__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_ = external hidden unnamed_addr constant [7 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [31 x i8], align 1
@__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_ = external hidden unnamed_addr constant [338 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [29 x i8], align 1
@_ZTISt9bad_alloc = external constant ptr
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_0 = external hidden constant [42 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_1 = external hidden constant [65 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_2 = external hidden constant [52 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_3 = external hidden constant [63 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_4 = external hidden constant [65 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_5 = external hidden constant [52 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_6 = external hidden constant [42 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_7 = external hidden constant [48 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_8 = external hidden constant [72 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_9 = external hidden constant [49 x i8], align 16
@.str.19 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__10_ = external hidden constant [60 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__11_ = external hidden constant [63 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__12_ = external hidden constant [81 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__13_ = external hidden constant [47 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__14_ = external hidden constant [46 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__15_ = external hidden constant [44 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__16_ = external hidden constant [45 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__17_ = external hidden constant [66 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__18_ = external hidden constant [61 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__19_ = external hidden constant [94 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__20_ = external hidden constant [45 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__21_ = external hidden constant [36 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__22_ = external hidden constant [111 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__23_ = external hidden constant [66 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__24_ = external hidden constant [75 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__25_ = external hidden constant [88 x i8], align 16
@.str.21 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [40 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__26_ = external hidden constant [66 x i8], align 16
@.str.25 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [62 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__27_ = external hidden constant [54 x i8], align 16
@.str.29 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [42 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__28_ = external hidden constant [68 x i8], align 16
@.str.35 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [24 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__29_ = external hidden constant [45 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__30_ = external hidden constant [63 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__31_ = external hidden constant [47 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__32_ = external hidden constant [46 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__33_ = external hidden constant [65 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__34_ = external hidden constant [65 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__35_ = external hidden constant [49 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__36_ = external hidden constant [42 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__37_ = external hidden constant [63 x i8], align 16
@.str.37 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [69 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__38_ = external hidden constant [81 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__39_ = external hidden constant [46 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__40_ = external hidden constant [76 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__41_ = external hidden constant [72 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__42_ = external hidden constant [95 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__43_ = external hidden constant [55 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__44_ = external hidden constant [95 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__45_ = external hidden constant [91 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__46_ = external hidden constant [75 x i8], align 16
@.str.41 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [40 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__47_ = external hidden constant [27 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

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none)
declare i64 @llvm.expect.i64(i64, i64) #2

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) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14NAMESPACE_MAIN11BoosterCore17InitializeTensorsEmPKPKNS_4TermEmPPPNS_6TensorE(i64 noundef, ptr noundef, i64 noundef, ptr noundef) #4 align 2

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #7

declare ptr @__cxa_begin_catch(ptr)

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZL29FreeObjectiveWrapperInternalsP16ObjectiveWrapper(ptr noundef) #8

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_(ptr noundef %0, i64 noundef %1, i64 noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, i32 noundef %10, i32 noundef %11, ptr noundef %12, ptr noundef %13) #4 align 2 personality ptr @__gxx_personality_v0 {
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i64, align 8
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca ptr, align 8
  %52 = alloca i32, align 4
  %53 = alloca i64, align 8
  %54 = alloca i8, align 1
  %55 = alloca i8, align 1
  %56 = alloca i8, align 1
  %57 = alloca i8, align 1
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i64, align 8
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i64, align 8
  %69 = alloca i64, align 8
  %70 = alloca i64, align 8
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca ptr, align 8
  %74 = alloca i64, align 8
  %75 = alloca i64, align 8
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i64, align 8
  %79 = alloca ptr, align 8
  %80 = alloca i32, align 4
  %81 = alloca i64, align 8
  %82 = alloca i64, align 8
  %83 = alloca i32, align 4
  %84 = alloca i64, align 8
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i64, align 8
  %88 = alloca ptr, align 8
  %89 = alloca ptr, align 8
  %90 = alloca i64, align 8
  %91 = alloca i64, align 8
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i64, align 8
  %95 = alloca i32, align 4
  %96 = alloca ptr, align 8
  %97 = alloca i64, align 8
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i64, align 8
  %101 = alloca i64, align 8
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i64, align 8
  %105 = alloca ptr, align 8
  %106 = alloca i32, align 4
  %107 = alloca i64, align 8
  %108 = alloca i32, align 4
  %109 = alloca %struct.Config, align 8
  %110 = alloca i32, align 4
  %111 = alloca i64, align 8
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i64, align 8
  %118 = alloca i64, align 8
  %119 = alloca i8, align 1
  %120 = alloca i8, align 1
  %121 = alloca i64, align 8
  %122 = alloca i64, align 8
  %123 = alloca i64, align 8
  %124 = alloca ptr, align 8
  %125 = alloca ptr, align 8
  %126 = alloca i64, align 8
  %127 = alloca i64, align 8
  %128 = alloca ptr, align 8
  %129 = alloca ptr, align 8
  %130 = alloca i64, align 8
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i64, align 8
  %134 = alloca i32, align 4
  %135 = alloca i64, align 8
  %136 = alloca i32, align 4
  %137 = alloca i64, align 8
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i64, align 8
  %141 = alloca i64, align 8
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i64, align 8
  %145 = alloca i64, align 8
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  store ptr %0, ptr %16, align 8, !tbaa !5
  store i64 %1, ptr %17, align 8, !tbaa !9
  store i64 %2, ptr %18, align 8, !tbaa !9
  store ptr %3, ptr %19, align 8, !tbaa !5
  store ptr %4, ptr %20, align 8, !tbaa !5
  store ptr %5, ptr %21, align 8, !tbaa !5
  store ptr %6, ptr %22, align 8, !tbaa !5
  store ptr %7, ptr %23, align 8, !tbaa !5
  store ptr %8, ptr %24, align 8, !tbaa !5
  store ptr %9, ptr %25, align 8, !tbaa !5
  store i32 %10, ptr %26, align 4, !tbaa !11
  store i32 %11, ptr %27, align 4, !tbaa !11
  store ptr %12, ptr %28, align 8, !tbaa !5
  store ptr %13, ptr %29, align 8, !tbaa !5
  br label %148

148:                                              ; preds = %14
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #13
  store i32 3, ptr %30, align 4, !tbaa !11
  %149 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %150 = icmp sle i32 3, %149
  br i1 %150, label %151, label %152

151:                                              ; preds = %148
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage)
  br label %152

152:                                              ; preds = %151, %148
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #13
  br label %153

153:                                              ; preds = %152
  %154 = load ptr, ptr %29, align 8, !tbaa !5
  %155 = icmp ne ptr null, %154
  br i1 %155, label %158, label %156

156:                                              ; preds = %153
  call void @LogAssertFailure(i64 noundef 284, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.13)
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str, i32 noundef 284, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

157:                                              ; No predecessors!
  br label %158

158:                                              ; preds = %157, %153
  %159 = phi i1 [ true, %153 ], [ false, %157 ]
  %160 = load ptr, ptr %29, align 8, !tbaa !5
  %161 = load ptr, ptr %160, align 8, !tbaa !5
  %162 = icmp eq ptr null, %161
  br i1 %162, label %165, label %163

163:                                              ; preds = %158
  call void @LogAssertFailure(i64 noundef 285, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.15)
  call void @__assert_fail(ptr noundef @.str.16, ptr noundef @.str, i32 noundef 285, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

164:                                              ; No predecessors!
  br label %165

165:                                              ; preds = %164, %158
  %166 = phi i1 [ true, %158 ], [ false, %164 ]
  %167 = load ptr, ptr %22, align 8, !tbaa !5
  %168 = icmp ne ptr null, %167
  br i1 %168, label %171, label %169

169:                                              ; preds = %165
  call void @LogAssertFailure(i64 noundef 286, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.17)
  call void @__assert_fail(ptr noundef @.str.18, ptr noundef @.str, i32 noundef 286, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

170:                                              ; No predecessors!
  br label %171

171:                                              ; preds = %170, %165
  %172 = phi i1 [ true, %165 ], [ false, %170 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #13
  %173 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 520) #15
          to label %174 unwind label %175

174:                                              ; preds = %171
  call void @_ZN14NAMESPACE_MAIN11BoosterCoreC2Ev(ptr noundef nonnull align 8 dereferenceable(520) %173) #13
  store ptr %173, ptr %32, align 8, !tbaa !5
  br label %215

175:                                              ; preds = %171
  %176 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9bad_alloc
          catch ptr null
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %33, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %34, align 4
  br label %179

179:                                              ; preds = %175
  %180 = load i32, ptr %34, align 4
  %181 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9bad_alloc) #13
  %182 = icmp eq i32 %180, %181
  br i1 %182, label %183, label %191

183:                                              ; preds = %179
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #13
  %184 = load ptr, ptr %33, align 8
  %185 = call ptr @__cxa_begin_catch(ptr %184) #13
  store ptr %185, ptr %37, align 8
  br label %186

186:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #13
  store i32 2, ptr %38, align 4, !tbaa !11
  %187 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %188 = icmp sle i32 2, %187
  br i1 %188, label %189, label %211

189:                                              ; preds = %186
  invoke void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_1)
          to label %190 unwind label %207

190:                                              ; preds = %189
  br label %211

191:                                              ; preds = %179
  %192 = load ptr, ptr %33, align 8
  %193 = call ptr @__cxa_begin_catch(ptr %192) #13
  br label %194

194:                                              ; preds = %191
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #13
  store i32 2, ptr %35, align 4, !tbaa !11
  %195 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %196 = icmp sle i32 2, %195
  br i1 %196, label %197, label %203

197:                                              ; preds = %194
  invoke void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_0)
          to label %198 unwind label %199

198:                                              ; preds = %197
  br label %203

199:                                              ; preds = %197
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %33, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #13
  invoke void @__cxa_end_catch()
          to label %206 unwind label %1566

203:                                              ; preds = %198, %194
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #13
  br label %204

204:                                              ; preds = %203
  br label %205

205:                                              ; preds = %204
  store i32 -2, ptr %15, align 4
  store i32 1, ptr %36, align 4
  call void @__cxa_end_catch()
  br label %1558

206:                                              ; preds = %199
  br label %1560

207:                                              ; preds = %189
  %208 = landingpad { ptr, i32 }
          cleanup
  %209 = extractvalue { ptr, i32 } %208, 0
  store ptr %209, ptr %33, align 8
  %210 = extractvalue { ptr, i32 } %208, 1
  store i32 %210, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #13
  invoke void @__cxa_end_catch()
          to label %214 unwind label %1566

211:                                              ; preds = %190, %186
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #13
  br label %212

212:                                              ; preds = %211
  br label %213

213:                                              ; preds = %212
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  call void @__cxa_end_catch()
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #13
  br label %1558

214:                                              ; preds = %207
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #13
  br label %1560

215:                                              ; preds = %174
  %216 = load ptr, ptr %32, align 8, !tbaa !5
  %217 = icmp eq ptr null, %216
  br i1 %217, label %218, label %226

218:                                              ; preds = %215
  br label %219

219:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #13
  store i32 2, ptr %39, align 4, !tbaa !11
  %220 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %221 = icmp sle i32 2, %220
  br i1 %221, label %222, label %223

222:                                              ; preds = %219
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_2)
  br label %223

223:                                              ; preds = %222, %219
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #13
  br label %224

224:                                              ; preds = %223
  br label %225

225:                                              ; preds = %224
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1558

226:                                              ; preds = %215
  %227 = load ptr, ptr %32, align 8, !tbaa !5
  %228 = load ptr, ptr %29, align 8, !tbaa !5
  store ptr %227, ptr %228, align 8, !tbaa !5
  %229 = load i32, ptr %26, align 4, !tbaa !11
  %230 = and i32 2, %229
  %231 = icmp ne i32 %230, 0
  %232 = zext i1 %231 to i64
  %233 = select i1 %231, i32 1, i32 0
  %234 = load ptr, ptr %32, align 8, !tbaa !5
  %235 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %234, i32 0, i32 2
  store i32 %233, ptr %235, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #13
  %236 = load ptr, ptr %22, align 8, !tbaa !5
  %237 = call noundef i32 @_ZN14NAMESPACE_MAIN22GetDataSetSharedHeaderEPKhPmS2_S2_S2_(ptr noundef %236, ptr noundef %40, ptr noundef %41, ptr noundef %42, ptr noundef %43)
  store i32 %237, ptr %31, align 4, !tbaa !11
  %238 = load i32, ptr %31, align 4, !tbaa !11
  %239 = icmp ne i32 0, %238
  br i1 %239, label %240, label %242

240:                                              ; preds = %226
  %241 = load i32, ptr %31, align 4, !tbaa !11
  store i32 %241, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1557

242:                                              ; preds = %226
  %243 = load i64, ptr %40, align 8, !tbaa !9
  %244 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %243) #13
  br i1 %244, label %245, label %253

245:                                              ; preds = %242
  br label %246

246:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #13
  store i32 1, ptr %44, align 4, !tbaa !11
  %247 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %248 = icmp sle i32 1, %247
  br i1 %248, label %249, label %250

249:                                              ; preds = %246
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_3)
  br label %250

250:                                              ; preds = %249, %246
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #13
  br label %251

251:                                              ; preds = %250
  br label %252

252:                                              ; preds = %251
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1557

253:                                              ; preds = %242
  %254 = load i64, ptr %40, align 8, !tbaa !9
  %255 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %254) #13
  br i1 %255, label %256, label %264

256:                                              ; preds = %253
  br label %257

257:                                              ; preds = %256
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #13
  store i32 1, ptr %45, align 4, !tbaa !11
  %258 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %259 = icmp sle i32 1, %258
  br i1 %259, label %260, label %261

260:                                              ; preds = %257
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_4)
  br label %261

261:                                              ; preds = %260, %257
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #13
  br label %262

262:                                              ; preds = %261
  br label %263

263:                                              ; preds = %262
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1557

264:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #13
  %265 = load i64, ptr %40, align 8, !tbaa !9
  store i64 %265, ptr %46, align 8, !tbaa !9
  %266 = load i64, ptr %42, align 8, !tbaa !9
  %267 = icmp ult i64 1, %266
  br i1 %267, label %268, label %276

268:                                              ; preds = %264
  br label %269

269:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #13
  store i32 2, ptr %47, align 4, !tbaa !11
  %270 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %271 = icmp sle i32 2, %270
  br i1 %271, label %272, label %273

272:                                              ; preds = %269
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_5)
  br label %273

273:                                              ; preds = %272, %269
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #13
  br label %274

274:                                              ; preds = %273
  br label %275

275:                                              ; preds = %274
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1556

276:                                              ; preds = %264
  %277 = load i64, ptr %43, align 8, !tbaa !9
  %278 = icmp ne i64 1, %277
  br i1 %278, label %279, label %287

279:                                              ; preds = %276
  br label %280

280:                                              ; preds = %279
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #13
  store i32 2, ptr %48, align 4, !tbaa !11
  %281 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %282 = icmp sle i32 2, %281
  br i1 %282, label %283, label %284

283:                                              ; preds = %280
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_6)
  br label %284

284:                                              ; preds = %283, %280
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #13
  br label %285

285:                                              ; preds = %284
  br label %286

286:                                              ; preds = %285
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1556

287:                                              ; preds = %276
  br label %288

288:                                              ; preds = %287
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #13
  store i32 3, ptr %49, align 4, !tbaa !11
  %289 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %290 = icmp sle i32 3, %289
  br i1 %290, label %291, label %292

291:                                              ; preds = %288
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_7)
  br label %292

292:                                              ; preds = %291, %288
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #13
  br label %293

293:                                              ; preds = %292
  br label %294

294:                                              ; preds = %293
  %295 = load i64, ptr %41, align 8, !tbaa !9
  %296 = icmp ne i64 0, %295
  br i1 %296, label %297, label %421

297:                                              ; preds = %294
  %298 = load i64, ptr %41, align 8, !tbaa !9
  %299 = load ptr, ptr %32, align 8, !tbaa !5
  %300 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %299, i32 0, i32 3
  store i64 %298, ptr %300, align 8, !tbaa !20
  %301 = load i64, ptr %41, align 8, !tbaa !9
  %302 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef 16, i64 noundef %301) #13
  br i1 %302, label %303, label %311

303:                                              ; preds = %297
  br label %304

304:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #13
  store i32 2, ptr %50, align 4, !tbaa !11
  %305 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %306 = icmp sle i32 2, %305
  br i1 %306, label %307, label %308

307:                                              ; preds = %304
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_8)
  br label %308

308:                                              ; preds = %307, %304
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #13
  br label %309

309:                                              ; preds = %308
  br label %310

310:                                              ; preds = %309
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1556

311:                                              ; preds = %297
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #13
  %312 = load i64, ptr %41, align 8, !tbaa !9
  %313 = mul i64 16, %312
  %314 = call noalias ptr @malloc(i64 noundef %313) #16
  store ptr %314, ptr %51, align 8, !tbaa !5
  %315 = load ptr, ptr %51, align 8, !tbaa !5
  %316 = icmp eq ptr null, %315
  br i1 %316, label %317, label %325

317:                                              ; preds = %311
  br label %318

318:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #13
  store i32 2, ptr %52, align 4, !tbaa !11
  %319 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %320 = icmp sle i32 2, %319
  br i1 %320, label %321, label %322

321:                                              ; preds = %318
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_9)
  br label %322

322:                                              ; preds = %321, %318
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #13
  br label %323

323:                                              ; preds = %322
  br label %324

324:                                              ; preds = %323
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %418

325:                                              ; preds = %311
  %326 = load ptr, ptr %51, align 8, !tbaa !5
  %327 = load ptr, ptr %32, align 8, !tbaa !5
  %328 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %327, i32 0, i32 4
  store ptr %326, ptr %328, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #13
  store i64 0, ptr %53, align 8, !tbaa !9
  br label %329

329:                                              ; preds = %412, %325
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #13
  %330 = load ptr, ptr %22, align 8, !tbaa !5
  %331 = load i64, ptr %53, align 8, !tbaa !9
  %332 = call noundef ptr @_ZN14NAMESPACE_MAIN23GetDataSetSharedFeatureEPKhmPbS2_S2_S2_PmS3_S3_(ptr noundef %330, i64 noundef %331, ptr noundef %54, ptr noundef %55, ptr noundef %56, ptr noundef %57, ptr noundef %58, ptr noundef %59, ptr noundef %60)
  %333 = load i8, ptr %57, align 1, !tbaa !22, !range !24, !noundef !25
  %334 = trunc i8 %333 to i1
  br i1 %334, label %335, label %337

335:                                              ; preds = %329
  call void @LogAssertFailure(i64 noundef 391, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.19)
  call void @__assert_fail(ptr noundef @.str.20, ptr noundef @.str, i32 noundef 391, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

336:                                              ; No predecessors!
  br label %337

337:                                              ; preds = %336, %329
  %338 = phi i1 [ true, %329 ], [ false, %336 ]
  %339 = load i64, ptr %58, align 8, !tbaa !9
  %340 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %339) #13
  br i1 %340, label %341, label %349

341:                                              ; preds = %337
  br label %342

342:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #13
  store i32 1, ptr %61, align 4, !tbaa !11
  %343 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %344 = icmp sle i32 1, %343
  br i1 %344, label %345, label %346

345:                                              ; preds = %342
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__10_)
  br label %346

346:                                              ; preds = %345, %342
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #13
  br label %347

347:                                              ; preds = %346
  br label %348

348:                                              ; preds = %347
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %409

349:                                              ; preds = %337
  %350 = load i64, ptr %58, align 8, !tbaa !9
  %351 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %350) #13
  br i1 %351, label %352, label %360

352:                                              ; preds = %349
  br label %353

353:                                              ; preds = %352
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #13
  store i32 1, ptr %62, align 4, !tbaa !11
  %354 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %355 = icmp sle i32 1, %354
  br i1 %355, label %356, label %357

356:                                              ; preds = %353
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__11_)
  br label %357

357:                                              ; preds = %356, %353
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #13
  br label %358

358:                                              ; preds = %357
  br label %359

359:                                              ; preds = %358
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %409

360:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #13
  %361 = load i64, ptr %58, align 8, !tbaa !9
  store i64 %361, ptr %63, align 8, !tbaa !9
  %362 = load i64, ptr %63, align 8, !tbaa !9
  %363 = icmp eq i64 0, %362
  br i1 %363, label %364, label %383

364:                                              ; preds = %360
  %365 = load i64, ptr %46, align 8, !tbaa !9
  %366 = icmp ne i64 0, %365
  br i1 %366, label %367, label %375

367:                                              ; preds = %364
  br label %368

368:                                              ; preds = %367
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #13
  store i32 1, ptr %64, align 4, !tbaa !11
  %369 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %370 = icmp sle i32 1, %369
  br i1 %370, label %371, label %372

371:                                              ; preds = %368
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__12_)
  br label %372

372:                                              ; preds = %371, %368
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #13
  br label %373

373:                                              ; preds = %372
  br label %374

374:                                              ; preds = %373
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %408

375:                                              ; preds = %364
  br label %376

376:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #13
  store i32 3, ptr %65, align 4, !tbaa !11
  %377 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %378 = icmp sle i32 3, %377
  br i1 %378, label %379, label %380

379:                                              ; preds = %376
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__13_)
  br label %380

380:                                              ; preds = %379, %376
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #13
  br label %381

381:                                              ; preds = %380
  br label %382

382:                                              ; preds = %381
  br label %395

383:                                              ; preds = %360
  %384 = load i64, ptr %63, align 8, !tbaa !9
  %385 = icmp eq i64 1, %384
  br i1 %385, label %386, label %394

386:                                              ; preds = %383
  br label %387

387:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #13
  store i32 3, ptr %66, align 4, !tbaa !11
  %388 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %389 = icmp sle i32 3, %388
  br i1 %389, label %390, label %391

390:                                              ; preds = %387
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__14_)
  br label %391

391:                                              ; preds = %390, %387
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #13
  br label %392

392:                                              ; preds = %391
  br label %393

393:                                              ; preds = %392
  br label %394

394:                                              ; preds = %393, %383
  br label %395

395:                                              ; preds = %394, %382
  %396 = load ptr, ptr %51, align 8, !tbaa !5
  %397 = load i64, ptr %53, align 8, !tbaa !9
  %398 = getelementptr inbounds %"class.NAMESPACE_MAIN::FeatureBoosting", ptr %396, i64 %397
  %399 = load i64, ptr %63, align 8, !tbaa !9
  %400 = load i8, ptr %54, align 1, !tbaa !22, !range !24, !noundef !25
  %401 = trunc i8 %400 to i1
  %402 = load i8, ptr %55, align 1, !tbaa !22, !range !24, !noundef !25
  %403 = trunc i8 %402 to i1
  %404 = load i8, ptr %56, align 1, !tbaa !22, !range !24, !noundef !25
  %405 = trunc i8 %404 to i1
  call void @_ZN14NAMESPACE_MAIN15FeatureBoosting10InitializeEmbbb(ptr noundef nonnull align 8 dereferenceable(16) %398, i64 noundef %399, i1 noundef zeroext %401, i1 noundef zeroext %403, i1 noundef zeroext %405) #13
  %406 = load i64, ptr %53, align 8, !tbaa !9
  %407 = add i64 %406, 1
  store i64 %407, ptr %53, align 8, !tbaa !9
  store i32 0, ptr %36, align 4
  br label %408

408:                                              ; preds = %395, %374
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #13
  br label %409

409:                                              ; preds = %408, %359, %348
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #13
  %410 = load i32, ptr %36, align 4
  switch i32 %410, label %417 [
    i32 0, label %411
  ]

411:                                              ; preds = %409
  br label %412

412:                                              ; preds = %411
  %413 = load i64, ptr %41, align 8, !tbaa !9
  %414 = load i64, ptr %53, align 8, !tbaa !9
  %415 = icmp ne i64 %413, %414
  br i1 %415, label %329, label %416, !llvm.loop !26

416:                                              ; preds = %412
  store i32 0, ptr %36, align 4
  br label %417

417:                                              ; preds = %416, %409
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #13
  br label %418

418:                                              ; preds = %417, %324
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #13
  %419 = load i32, ptr %36, align 4
  switch i32 %419, label %1556 [
    i32 0, label %420
  ]

420:                                              ; preds = %418
  br label %421

421:                                              ; preds = %420, %294
  br label %422

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

425:                                              ; preds = %422
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__15_)
  br label %426

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

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #13
  store i64 1, ptr %68, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #13
  store i64 1, ptr %69, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #13
  store i64 0, ptr %70, align 8, !tbaa !9
  br label %429

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

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

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

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434
  %436 = load i64, ptr %17, align 8, !tbaa !9
  %437 = icmp ne i64 0, %436
  br i1 %437, label %438, label %796

438:                                              ; preds = %435
  %439 = load i64, ptr %17, align 8, !tbaa !9
  %440 = load ptr, ptr %32, align 8, !tbaa !5
  %441 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %440, i32 0, i32 5
  store i64 %439, ptr %441, align 8, !tbaa !28
  %442 = load i64, ptr %17, align 8, !tbaa !9
  %443 = call noundef ptr @_ZN14NAMESPACE_MAIN4Term13AllocateTermsEm(i64 noundef %442) #13
  %444 = load ptr, ptr %32, align 8, !tbaa !5
  %445 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %444, i32 0, i32 6
  store ptr %443, ptr %445, align 8, !tbaa !29
  %446 = load ptr, ptr %32, align 8, !tbaa !5
  %447 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %446, i32 0, i32 6
  %448 = load ptr, ptr %447, align 8, !tbaa !29
  %449 = icmp eq ptr null, %448
  %450 = xor i1 %449, true
  %451 = xor i1 %450, true
  %452 = zext i1 %451 to i64
  %453 = call i64 @llvm.expect.i64(i64 %452, i64 0)
  %454 = icmp ne i64 %453, 0
  br i1 %454, label %455, label %463

455:                                              ; preds = %438
  br label %456

456:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #13
  store i32 2, ptr %72, align 4, !tbaa !11
  %457 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %458 = icmp sle i32 2, %457
  br i1 %458, label %459, label %460

459:                                              ; preds = %456
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__17_)
  br label %460

460:                                              ; preds = %459, %456
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #13
  br label %461

461:                                              ; preds = %460
  br label %462

462:                                              ; preds = %461
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1555

463:                                              ; preds = %438
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #13
  %464 = load ptr, ptr %21, align 8, !tbaa !5
  store ptr %464, ptr %73, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #13
  store i64 0, ptr %74, align 8, !tbaa !9
  br label %465

465:                                              ; preds = %788, %463
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #13
  %466 = load ptr, ptr %20, align 8, !tbaa !5
  %467 = load i64, ptr %74, align 8, !tbaa !9
  %468 = getelementptr inbounds i64, ptr %466, i64 %467
  %469 = load i64, ptr %468, align 8, !tbaa !9
  store i64 %469, ptr %75, align 8, !tbaa !9
  %470 = load i64, ptr %75, align 8, !tbaa !9
  %471 = icmp slt i64 %470, 0
  br i1 %471, label %472, label %480

472:                                              ; preds = %465
  br label %473

473:                                              ; preds = %472
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #13
  store i32 1, ptr %76, align 4, !tbaa !11
  %474 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %475 = icmp sle i32 1, %474
  br i1 %475, label %476, label %477

476:                                              ; preds = %473
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__18_)
  br label %477

477:                                              ; preds = %476, %473
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #13
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %785

480:                                              ; preds = %465
  %481 = load i64, ptr %75, align 8, !tbaa !9
  %482 = icmp slt i64 30, %481
  br i1 %482, label %483, label %491

483:                                              ; preds = %480
  br label %484

484:                                              ; preds = %483
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #13
  store i32 2, ptr %77, align 4, !tbaa !11
  %485 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %486 = icmp sle i32 2, %485
  br i1 %486, label %487, label %488

487:                                              ; preds = %484
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__19_)
  br label %488

488:                                              ; preds = %487, %484
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #13
  br label %489

489:                                              ; preds = %488
  br label %490

490:                                              ; preds = %489
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %785

491:                                              ; preds = %480
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #13
  %492 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %492, ptr %78, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #13
  %493 = load i64, ptr %78, align 8, !tbaa !9
  %494 = call noundef ptr @_ZN14NAMESPACE_MAIN4Term8AllocateEm(i64 noundef %493) #13
  store ptr %494, ptr %79, align 8, !tbaa !5
  %495 = load ptr, ptr %79, align 8, !tbaa !5
  %496 = icmp eq ptr null, %495
  br i1 %496, label %497, label %505

497:                                              ; preds = %491
  br label %498

498:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #13
  store i32 2, ptr %80, align 4, !tbaa !11
  %499 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %500 = icmp sle i32 2, %499
  br i1 %500, label %501, label %502

501:                                              ; preds = %498
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__20_)
  br label %502

502:                                              ; preds = %501, %498
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #13
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %784

505:                                              ; preds = %491
  %506 = load ptr, ptr %79, align 8, !tbaa !5
  %507 = load ptr, ptr %32, align 8, !tbaa !5
  %508 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %507, i32 0, i32 6
  %509 = load ptr, ptr %508, align 8, !tbaa !29
  %510 = load i64, ptr %74, align 8, !tbaa !9
  %511 = getelementptr inbounds ptr, ptr %509, i64 %510
  store ptr %506, ptr %511, align 8, !tbaa !5
  %512 = load ptr, ptr %79, align 8, !tbaa !5
  call void @_ZN14NAMESPACE_MAIN4Term21SetCountAuxillaryBinsEm(ptr noundef nonnull align 8 dereferenceable(776) %512, i64 noundef 0) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #13
  store i64 0, ptr %81, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #13
  store i64 0, ptr %82, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #13
  store i32 0, ptr %83, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #13
  store i64 1, ptr %84, align 8, !tbaa !9
  %513 = load i64, ptr %78, align 8, !tbaa !9
  %514 = icmp eq i64 0, %513
  %515 = xor i1 %514, true
  %516 = xor i1 %515, true
  %517 = zext i1 %516 to i64
  %518 = call i64 @llvm.expect.i64(i64 %517, i64 0)
  %519 = icmp ne i64 %518, 0
  br i1 %519, label %520, label %528

520:                                              ; preds = %505
  br label %521

521:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #13
  store i32 3, ptr %85, align 4, !tbaa !11
  %522 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %523 = icmp sle i32 3, %522
  br i1 %523, label %524, label %525

524:                                              ; preds = %521
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__21_)
  br label %525

525:                                              ; preds = %524, %521
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #13
  br label %526

526:                                              ; preds = %525
  br label %527

527:                                              ; preds = %526
  br label %774

528:                                              ; preds = %505
  %529 = load ptr, ptr %73, align 8, !tbaa !5
  %530 = icmp eq ptr null, %529
  br i1 %530, label %531, label %539

531:                                              ; preds = %528
  br label %532

532:                                              ; preds = %531
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #13
  store i32 1, ptr %86, align 4, !tbaa !11
  %533 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %534 = icmp sle i32 1, %533
  br i1 %534, label %535, label %536

535:                                              ; preds = %532
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__22_)
  br label %536

536:                                              ; preds = %535, %532
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #13
  br label %537

537:                                              ; preds = %536
  br label %538

538:                                              ; preds = %537
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %783

539:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #13
  store i64 0, ptr %87, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #13
  %540 = load ptr, ptr %79, align 8, !tbaa !5
  %541 = call noundef ptr @_ZN14NAMESPACE_MAIN4Term15GetTermFeaturesEv(ptr noundef nonnull align 8 dereferenceable(776) %540) #13
  store ptr %541, ptr %88, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #13
  %542 = load ptr, ptr %88, align 8, !tbaa !5
  %543 = load i64, ptr %78, align 8, !tbaa !9
  %544 = getelementptr inbounds %"struct.NAMESPACE_MAIN::TermFeature", ptr %542, i64 %543
  store ptr %544, ptr %89, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #13
  %545 = load i64, ptr %78, align 8, !tbaa !9
  %546 = sub i64 %545, 1
  store i64 %546, ptr %90, align 8, !tbaa !9
  br label %547

547:                                              ; preds = %691, %539
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #13
  %548 = load ptr, ptr %73, align 8, !tbaa !5
  %549 = load i64, ptr %548, align 8, !tbaa !9
  store i64 %549, ptr %91, align 8, !tbaa !9
  %550 = load i64, ptr %91, align 8, !tbaa !9
  %551 = icmp slt i64 %550, 0
  br i1 %551, label %552, label %560

552:                                              ; preds = %547
  br label %553

553:                                              ; preds = %552
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #13
  store i32 1, ptr %92, align 4, !tbaa !11
  %554 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %555 = icmp sle i32 1, %554
  br i1 %555, label %556, label %557

556:                                              ; preds = %553
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__23_)
  br label %557

557:                                              ; preds = %556, %553
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #13
  br label %558

558:                                              ; preds = %557
  br label %559

559:                                              ; preds = %558
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %688

560:                                              ; preds = %547
  %561 = load i64, ptr %91, align 8, !tbaa !9
  %562 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImlEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuesr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %561) #13
  br i1 %562, label %563, label %571

563:                                              ; preds = %560
  br label %564

564:                                              ; preds = %563
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #13
  store i32 1, ptr %93, align 4, !tbaa !11
  %565 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %566 = icmp sle i32 1, %565
  br i1 %566, label %567, label %568

567:                                              ; preds = %564
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__24_)
  br label %568

568:                                              ; preds = %567, %564
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #13
  br label %569

569:                                              ; preds = %568
  br label %570

570:                                              ; preds = %569
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %688

571:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #13
  %572 = load i64, ptr %91, align 8, !tbaa !9
  store i64 %572, ptr %94, align 8, !tbaa !9
  %573 = load i64, ptr %41, align 8, !tbaa !9
  %574 = load i64, ptr %94, align 8, !tbaa !9
  %575 = icmp ule i64 %573, %574
  br i1 %575, label %576, label %584

576:                                              ; preds = %571
  br label %577

577:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #13
  store i32 1, ptr %95, align 4, !tbaa !11
  %578 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %579 = icmp sle i32 1, %578
  br i1 %579, label %580, label %581

580:                                              ; preds = %577
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__25_)
  br label %581

581:                                              ; preds = %580, %577
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #13
  br label %582

582:                                              ; preds = %581
  br label %583

583:                                              ; preds = %582
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %687

584:                                              ; preds = %571
  %585 = load i64, ptr %41, align 8, !tbaa !9
  %586 = icmp ule i64 1, %585
  br i1 %586, label %589, label %587

587:                                              ; preds = %584
  call void @LogAssertFailure(i64 noundef 500, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.21)
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

588:                                              ; No predecessors!
  br label %589

589:                                              ; preds = %588, %584
  %590 = phi i1 [ true, %584 ], [ false, %588 ]
  %591 = load ptr, ptr %32, align 8, !tbaa !5
  %592 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %591, i32 0, i32 4
  %593 = load ptr, ptr %592, align 8, !tbaa !21
  %594 = icmp ne ptr null, %593
  br i1 %594, label %597, label %595

595:                                              ; preds = %589
  call void @LogAssertFailure(i64 noundef 501, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.23)
  call void @__assert_fail(ptr noundef @.str.24, ptr noundef @.str, i32 noundef 501, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

596:                                              ; No predecessors!
  br label %597

597:                                              ; preds = %596, %589
  %598 = phi i1 [ true, %589 ], [ false, %596 ]
  call void @_ZL17StopClangAnalysisv() #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #13
  %599 = load ptr, ptr %32, align 8, !tbaa !5
  %600 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %599, i32 0, i32 4
  %601 = load ptr, ptr %600, align 8, !tbaa !21
  %602 = load i64, ptr %94, align 8, !tbaa !9
  %603 = getelementptr inbounds %"class.NAMESPACE_MAIN::FeatureBoosting", ptr %601, i64 %602
  store ptr %603, ptr %96, align 8, !tbaa !5
  %604 = load ptr, ptr %96, align 8, !tbaa !5
  %605 = load ptr, ptr %88, align 8, !tbaa !5
  %606 = getelementptr inbounds %"struct.NAMESPACE_MAIN::TermFeature", ptr %605, i32 0, i32 0
  store ptr %604, ptr %606, align 8, !tbaa !30
  %607 = load i64, ptr %84, align 8, !tbaa !9
  %608 = load ptr, ptr %88, align 8, !tbaa !5
  %609 = getelementptr inbounds %"struct.NAMESPACE_MAIN::TermFeature", ptr %608, i32 0, i32 1
  store i64 %607, ptr %609, align 8, !tbaa !32
  %610 = load i64, ptr %90, align 8, !tbaa !9
  %611 = load ptr, ptr %88, align 8, !tbaa !5
  %612 = getelementptr inbounds %"struct.NAMESPACE_MAIN::TermFeature", ptr %611, i32 0, i32 2
  store i64 %610, ptr %612, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #13
  %613 = load ptr, ptr %96, align 8, !tbaa !5
  %614 = call noundef i64 @_ZNK14NAMESPACE_MAIN15FeatureBoosting12GetCountBinsEv(ptr noundef nonnull align 8 dereferenceable(16) %613) #13
  store i64 %614, ptr %97, align 8, !tbaa !9
  %615 = load i64, ptr %97, align 8, !tbaa !9
  %616 = icmp ult i64 1, %615
  %617 = xor i1 %616, true
  %618 = xor i1 %617, true
  %619 = zext i1 %618 to i64
  %620 = call i64 @llvm.expect.i64(i64 %619, i64 1)
  %621 = icmp ne i64 %620, 0
  br i1 %621, label %622, label %658

622:                                              ; preds = %597
  %623 = load i64, ptr %82, align 8, !tbaa !9
  %624 = add i64 %623, 1
  store i64 %624, ptr %82, align 8, !tbaa !9
  %625 = load i64, ptr %97, align 8, !tbaa !9
  store i64 %625, ptr %87, align 8, !tbaa !9
  %626 = load i64, ptr %84, align 8, !tbaa !9
  %627 = load i64, ptr %97, align 8, !tbaa !9
  %628 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %626, i64 noundef %627) #13
  br i1 %628, label %629, label %637

629:                                              ; preds = %622
  br label %630

630:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #13
  store i32 2, ptr %98, align 4, !tbaa !11
  %631 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %632 = icmp sle i32 2, %631
  br i1 %632, label %633, label %634

633:                                              ; preds = %630
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__26_)
  br label %634

634:                                              ; preds = %633, %630
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #13
  br label %635

635:                                              ; preds = %634
  br label %636

636:                                              ; preds = %635
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %686

637:                                              ; preds = %622
  %638 = load i64, ptr %84, align 8, !tbaa !9
  %639 = icmp eq i64 0, %638
  br i1 %639, label %646, label %640

640:                                              ; preds = %637
  %641 = load i64, ptr %81, align 8, !tbaa !9
  %642 = load i64, ptr %84, align 8, !tbaa !9
  %643 = icmp ult i64 %641, %642
  br i1 %643, label %646, label %644

644:                                              ; preds = %640
  call void @LogAssertFailure(i64 noundef 527, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.25)
  call void @__assert_fail(ptr noundef @.str.26, ptr noundef @.str, i32 noundef 527, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

645:                                              ; No predecessors!
  br label %646

646:                                              ; preds = %645, %640, %637
  %647 = phi i1 [ true, %640 ], [ true, %637 ], [ false, %645 ]
  %648 = load i64, ptr %81, align 8, !tbaa !9
  %649 = load i64, ptr %84, align 8, !tbaa !9
  %650 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL10IsAddErrorImEEbT_S1_(i64 noundef %648, i64 noundef %649) #13
  br i1 %650, label %651, label %653

651:                                              ; preds = %646
  call void @LogAssertFailure(i64 noundef 531, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.27)
  call void @__assert_fail(ptr noundef @.str.28, ptr noundef @.str, i32 noundef 531, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

652:                                              ; No predecessors!
  br label %653

653:                                              ; preds = %652, %646
  %654 = phi i1 [ true, %646 ], [ false, %652 ]
  %655 = load i64, ptr %84, align 8, !tbaa !9
  %656 = load i64, ptr %81, align 8, !tbaa !9
  %657 = add i64 %656, %655
  store i64 %657, ptr %81, align 8, !tbaa !9
  br label %666

658:                                              ; preds = %597
  br label %659

659:                                              ; preds = %658
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #13
  store i32 3, ptr %99, align 4, !tbaa !11
  %660 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %661 = icmp sle i32 3, %660
  br i1 %661, label %662, label %663

662:                                              ; preds = %659
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__27_)
  br label %663

663:                                              ; preds = %662, %659
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #13
  br label %664

664:                                              ; preds = %663
  br label %665

665:                                              ; preds = %664
  br label %666

666:                                              ; preds = %665, %653
  %667 = load i64, ptr %97, align 8, !tbaa !9
  %668 = load i64, ptr %84, align 8, !tbaa !9
  %669 = mul i64 %668, %667
  store i64 %669, ptr %84, align 8, !tbaa !9
  %670 = load i64, ptr %84, align 8, !tbaa !9
  %671 = icmp eq i64 0, %670
  br i1 %671, label %678, label %672

672:                                              ; preds = %666
  %673 = load i64, ptr %81, align 8, !tbaa !9
  %674 = load i64, ptr %84, align 8, !tbaa !9
  %675 = icmp ult i64 %673, %674
  br i1 %675, label %678, label %676

676:                                              ; preds = %672
  call void @LogAssertFailure(i64 noundef 539, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.25)
  call void @__assert_fail(ptr noundef @.str.26, ptr noundef @.str, i32 noundef 539, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

677:                                              ; No predecessors!
  br label %678

678:                                              ; preds = %677, %672, %666
  %679 = phi i1 [ true, %672 ], [ true, %666 ], [ false, %677 ]
  %680 = load i64, ptr %90, align 8, !tbaa !9
  %681 = add i64 %680, -1
  store i64 %681, ptr %90, align 8, !tbaa !9
  %682 = load ptr, ptr %73, align 8, !tbaa !5
  %683 = getelementptr inbounds i64, ptr %682, i32 1
  store ptr %683, ptr %73, align 8, !tbaa !5
  %684 = load ptr, ptr %88, align 8, !tbaa !5
  %685 = getelementptr inbounds %"struct.NAMESPACE_MAIN::TermFeature", ptr %684, i32 1
  store ptr %685, ptr %88, align 8, !tbaa !5
  store i32 0, ptr %36, align 4
  br label %686

686:                                              ; preds = %678, %636
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #13
  br label %687

687:                                              ; preds = %686, %583
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #13
  br label %688

688:                                              ; preds = %687, %570, %559
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #13
  %689 = load i32, ptr %36, align 4
  switch i32 %689, label %771 [
    i32 0, label %690
  ]

690:                                              ; preds = %688
  br label %691

691:                                              ; preds = %690
  %692 = load ptr, ptr %89, align 8, !tbaa !5
  %693 = load ptr, ptr %88, align 8, !tbaa !5
  %694 = icmp ne ptr %692, %693
  br i1 %694, label %547, label %695, !llvm.loop !34

695:                                              ; preds = %691
  %696 = load i64, ptr %68, align 8, !tbaa !9
  %697 = load i64, ptr %84, align 8, !tbaa !9
  %698 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %696, i64 noundef %697) #13
  store i64 %698, ptr %68, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #13
  %699 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %699, ptr %100, align 8, !tbaa !9
  %700 = load i64, ptr %84, align 8, !tbaa !9
  %701 = icmp ult i64 1, %700
  %702 = xor i1 %701, true
  %703 = xor i1 %702, true
  %704 = zext i1 %703 to i64
  %705 = call i64 @llvm.expect.i64(i64 %704, i64 1)
  %706 = icmp ne i64 %705, 0
  br i1 %706, label %707, label %759

707:                                              ; preds = %695
  %708 = load i64, ptr %82, align 8, !tbaa !9
  %709 = icmp ule i64 1, %708
  br i1 %709, label %712, label %710

710:                                              ; preds = %707
  call void @LogAssertFailure(i64 noundef 549, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.29)
  call void @__assert_fail(ptr noundef @.str.30, ptr noundef @.str, i32 noundef 549, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

711:                                              ; No predecessors!
  br label %712

712:                                              ; preds = %711, %707
  %713 = phi i1 [ true, %707 ], [ false, %711 ]
  %714 = load i64, ptr %84, align 8, !tbaa !9
  %715 = sub i64 %714, 1
  %716 = call noundef i32 @_ZN14NAMESPACE_MAINL17CountBitsRequiredImEEiT_(i64 noundef %715) #13
  store i32 %716, ptr %83, align 4, !tbaa !11
  %717 = load i32, ptr %83, align 4, !tbaa !11
  %718 = icmp sle i32 1, %717
  br i1 %718, label %721, label %719

719:                                              ; preds = %712
  call void @LogAssertFailure(i64 noundef 552, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.31)
  call void @__assert_fail(ptr noundef @.str.32, ptr noundef @.str, i32 noundef 552, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

720:                                              ; No predecessors!
  br label %721

721:                                              ; preds = %720, %712
  %722 = phi i1 [ true, %712 ], [ false, %720 ]
  %723 = load i32, ptr %83, align 4, !tbaa !11
  %724 = icmp sle i32 %723, 64
  br i1 %724, label %727, label %725

725:                                              ; preds = %721
  call void @LogAssertFailure(i64 noundef 553, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.33)
  call void @__assert_fail(ptr noundef @.str.34, ptr noundef @.str, i32 noundef 553, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

726:                                              ; No predecessors!
  br label %727

727:                                              ; preds = %726, %721
  %728 = phi i1 [ true, %721 ], [ false, %726 ]
  %729 = load i64, ptr %82, align 8, !tbaa !9
  %730 = icmp eq i64 1, %729
  br i1 %730, label %731, label %735

731:                                              ; preds = %727
  %732 = load i64, ptr %70, align 8, !tbaa !9
  %733 = load i64, ptr %87, align 8, !tbaa !9
  %734 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %732, i64 noundef %733) #13
  store i64 %734, ptr %70, align 8, !tbaa !9
  br label %758

735:                                              ; preds = %727
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #13
  %736 = load i64, ptr %81, align 8, !tbaa !9
  %737 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %736, i64 noundef 24) #13
  store i64 %737, ptr %101, align 8, !tbaa !9
  %738 = load ptr, ptr %79, align 8, !tbaa !5
  %739 = load i64, ptr %101, align 8, !tbaa !9
  call void @_ZN14NAMESPACE_MAIN4Term21SetCountAuxillaryBinsEm(ptr noundef nonnull align 8 dereferenceable(776) %738, i64 noundef %739) #13
  %740 = load i64, ptr %84, align 8, !tbaa !9
  %741 = load i64, ptr %101, align 8, !tbaa !9
  %742 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL10IsAddErrorImEEbT_S1_(i64 noundef %740, i64 noundef %741) #13
  br i1 %742, label %743, label %751

743:                                              ; preds = %735
  br label %744

744:                                              ; preds = %743
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #13
  store i32 2, ptr %102, align 4, !tbaa !11
  %745 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %746 = icmp sle i32 2, %745
  br i1 %746, label %747, label %748

747:                                              ; preds = %744
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__28_)
  br label %748

748:                                              ; preds = %747, %744
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #13
  br label %749

749:                                              ; preds = %748
  br label %750

750:                                              ; preds = %749
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %755

751:                                              ; preds = %735
  %752 = load i64, ptr %101, align 8, !tbaa !9
  %753 = load i64, ptr %100, align 8, !tbaa !9
  %754 = add i64 %753, %752
  store i64 %754, ptr %100, align 8, !tbaa !9
  store i32 0, ptr %36, align 4
  br label %755

755:                                              ; preds = %751, %750
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #13
  %756 = load i32, ptr %36, align 4
  switch i32 %756, label %770 [
    i32 0, label %757
  ]

757:                                              ; preds = %755
  br label %758

758:                                              ; preds = %757, %731
  br label %766

759:                                              ; preds = %695
  %760 = load i64, ptr %82, align 8, !tbaa !9
  %761 = icmp eq i64 0, %760
  br i1 %761, label %764, label %762

762:                                              ; preds = %759
  call void @LogAssertFailure(i64 noundef 574, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.35)
  call void @__assert_fail(ptr noundef @.str.36, ptr noundef @.str, i32 noundef 574, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

763:                                              ; No predecessors!
  br label %764

764:                                              ; preds = %763, %759
  %765 = phi i1 [ true, %759 ], [ false, %763 ]
  br label %766

766:                                              ; preds = %764, %758
  %767 = load i64, ptr %69, align 8, !tbaa !9
  %768 = load i64, ptr %100, align 8, !tbaa !9
  %769 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %767, i64 noundef %768) #13
  store i64 %769, ptr %69, align 8, !tbaa !9
  store i32 0, ptr %36, align 4
  br label %770

770:                                              ; preds = %766, %755
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #13
  br label %771

771:                                              ; preds = %770, %688
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #13
  %772 = load i32, ptr %36, align 4
  switch i32 %772, label %783 [
    i32 0, label %773
  ]

773:                                              ; preds = %771
  br label %774

774:                                              ; preds = %773, %527
  %775 = load ptr, ptr %79, align 8, !tbaa !5
  %776 = load i64, ptr %82, align 8, !tbaa !9
  call void @_ZN14NAMESPACE_MAIN4Term22SetCountRealDimensionsEm(ptr noundef nonnull align 8 dereferenceable(776) %775, i64 noundef %776) #13
  %777 = load ptr, ptr %79, align 8, !tbaa !5
  %778 = load i32, ptr %83, align 4, !tbaa !11
  call void @_ZN14NAMESPACE_MAIN4Term18SetBitsRequiredMinEi(ptr noundef nonnull align 8 dereferenceable(776) %777, i32 noundef %778) #13
  %779 = load ptr, ptr %79, align 8, !tbaa !5
  %780 = load i64, ptr %84, align 8, !tbaa !9
  call void @_ZN14NAMESPACE_MAIN4Term18SetCountTensorBinsEm(ptr noundef nonnull align 8 dereferenceable(776) %779, i64 noundef %780) #13
  %781 = load i64, ptr %74, align 8, !tbaa !9
  %782 = add i64 %781, 1
  store i64 %782, ptr %74, align 8, !tbaa !9
  store i32 0, ptr %36, align 4
  br label %783

783:                                              ; preds = %774, %771, %538
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #13
  br label %784

784:                                              ; preds = %783, %504
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #13
  br label %785

785:                                              ; preds = %784, %490, %479
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #13
  %786 = load i32, ptr %36, align 4
  switch i32 %786, label %793 [
    i32 0, label %787
  ]

787:                                              ; preds = %785
  br label %788

788:                                              ; preds = %787
  %789 = load i64, ptr %74, align 8, !tbaa !9
  %790 = load i64, ptr %17, align 8, !tbaa !9
  %791 = icmp ult i64 %789, %790
  br i1 %791, label %465, label %792, !llvm.loop !35

792:                                              ; preds = %788
  store i32 0, ptr %36, align 4
  br label %793

793:                                              ; preds = %792, %785
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #13
  %794 = load i32, ptr %36, align 4
  switch i32 %794, label %1555 [
    i32 0, label %795
  ]

795:                                              ; preds = %793
  br label %796

796:                                              ; preds = %795, %435
  br label %797

797:                                              ; preds = %796
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #13
  store i32 3, ptr %103, align 4, !tbaa !11
  %798 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %799 = icmp sle i32 3, %798
  br i1 %799, label %800, label %801

800:                                              ; preds = %797
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__29_)
  br label %801

801:                                              ; preds = %800, %797
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #13
  br label %802

802:                                              ; preds = %801
  br label %803

803:                                              ; preds = %802
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #13
  %804 = load ptr, ptr %22, align 8, !tbaa !5
  %805 = call noundef ptr @_ZN14NAMESPACE_MAIN22GetDataSetSharedTargetEPKhmPl(ptr noundef %804, i64 noundef 0, ptr noundef %104)
  store ptr %805, ptr %105, align 8, !tbaa !5
  %806 = load ptr, ptr %105, align 8, !tbaa !5
  %807 = icmp eq ptr null, %806
  br i1 %807, label %808, label %816

808:                                              ; preds = %803
  br label %809

809:                                              ; preds = %808
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #13
  store i32 2, ptr %106, align 4, !tbaa !11
  %810 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %811 = icmp sle i32 2, %810
  br i1 %811, label %812, label %813

812:                                              ; preds = %809
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__30_)
  br label %813

813:                                              ; preds = %812, %809
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #13
  br label %814

814:                                              ; preds = %813
  br label %815

815:                                              ; preds = %814
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1554

816:                                              ; preds = %803
  %817 = load i64, ptr %104, align 8, !tbaa !9
  %818 = icmp ne i64 0, %817
  br i1 %818, label %819, label %1546

819:                                              ; preds = %816
  %820 = load i64, ptr %104, align 8, !tbaa !9
  %821 = icmp ne i64 1, %820
  br i1 %821, label %822, label %1546

822:                                              ; preds = %819
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #13
  %823 = load i32, ptr %26, align 4, !tbaa !11
  %824 = and i32 4, %823
  %825 = icmp ne i32 %824, 0
  br i1 %825, label %826, label %834

826:                                              ; preds = %822
  %827 = load i64, ptr %104, align 8, !tbaa !9
  %828 = icmp slt i64 %827, 2
  br i1 %828, label %829, label %830

829:                                              ; preds = %826
  br label %832

830:                                              ; preds = %826
  %831 = load i64, ptr %104, align 8, !tbaa !9
  br label %832

832:                                              ; preds = %830, %829
  %833 = phi i64 [ 1, %829 ], [ %831, %830 ]
  store i64 %833, ptr %107, align 8, !tbaa !9
  br label %842

834:                                              ; preds = %822
  %835 = load i64, ptr %104, align 8, !tbaa !9
  %836 = icmp sle i64 %835, 2
  br i1 %836, label %837, label %838

837:                                              ; preds = %834
  br label %840

838:                                              ; preds = %834
  %839 = load i64, ptr %104, align 8, !tbaa !9
  br label %840

840:                                              ; preds = %838, %837
  %841 = phi i64 [ 1, %837 ], [ %839, %838 ]
  store i64 %841, ptr %107, align 8, !tbaa !9
  br label %842

842:                                              ; preds = %840, %832
  %843 = load i64, ptr %107, align 8, !tbaa !9
  %844 = load ptr, ptr %32, align 8, !tbaa !5
  %845 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %844, i32 0, i32 1
  store i64 %843, ptr %845, align 8, !tbaa !36
  br label %846

846:                                              ; preds = %842
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #13
  store i32 3, ptr %108, align 4, !tbaa !11
  %847 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %848 = icmp sle i32 3, %847
  br i1 %848, label %849, label %850

849:                                              ; preds = %846
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__31_)
  br label %850

850:                                              ; preds = %849, %846
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #13
  br label %851

851:                                              ; preds = %850
  br label %852

852:                                              ; preds = %851
  call void @llvm.lifetime.start.p0(i64 16, ptr %109) #13
  %853 = load i64, ptr %107, align 8, !tbaa !9
  %854 = getelementptr inbounds %struct.Config, ptr %109, i32 0, i32 0
  store i64 %853, ptr %854, align 8, !tbaa !37
  %855 = load i32, ptr %26, align 4, !tbaa !11
  %856 = and i32 1, %855
  %857 = icmp ne i32 %856, 0
  %858 = zext i1 %857 to i64
  %859 = select i1 %857, i32 1, i32 0
  %860 = getelementptr inbounds %struct.Config, ptr %109, i32 0, i32 1
  store i32 %859, ptr %860, align 8, !tbaa !39
  %861 = load ptr, ptr %28, align 8, !tbaa !5
  %862 = load i32, ptr %27, align 4, !tbaa !11
  %863 = load ptr, ptr %32, align 8, !tbaa !5
  %864 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %863, i32 0, i32 17
  %865 = load ptr, ptr %32, align 8, !tbaa !5
  %866 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %865, i32 0, i32 18
  %867 = call noundef i32 @_ZN14NAMESPACE_MAIN12GetObjectiveEPK6ConfigPKciP16ObjectiveWrapperS6_(ptr noundef %109, ptr noundef %861, i32 noundef %862, ptr noundef %864, ptr noundef %866) #13
  store i32 %867, ptr %31, align 4, !tbaa !11
  %868 = load i32, ptr %31, align 4, !tbaa !11
  %869 = icmp ne i32 0, %868
  br i1 %869, label %870, label %872

870:                                              ; preds = %852
  %871 = load i32, ptr %31, align 4, !tbaa !11
  store i32 %871, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1543

872:                                              ; preds = %852
  br label %873

873:                                              ; preds = %872
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #13
  store i32 3, ptr %110, align 4, !tbaa !11
  %874 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %875 = icmp sle i32 3, %874
  br i1 %875, label %876, label %877

876:                                              ; preds = %873
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__32_)
  br label %877

877:                                              ; preds = %876, %873
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #13
  br label %878

878:                                              ; preds = %877
  br label %879

879:                                              ; preds = %878
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #13
  %880 = load ptr, ptr %32, align 8, !tbaa !5
  %881 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %880, i32 0, i32 17
  %882 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %881, i32 0, i32 6
  %883 = load i32, ptr %882, align 8, !tbaa !40
  %884 = call noundef i64 @_ZN14NAMESPACE_MAINL12IdentifyTaskEi(i32 noundef %883) #13
  store i64 %884, ptr %111, align 8, !tbaa !9
  %885 = load i64, ptr %104, align 8, !tbaa !9
  %886 = icmp sle i64 0, %885
  br i1 %886, label %887, label %899

887:                                              ; preds = %879
  %888 = load i64, ptr %111, align 8, !tbaa !9
  %889 = icmp slt i64 %888, 0
  br i1 %889, label %890, label %898

890:                                              ; preds = %887
  br label %891

891:                                              ; preds = %890
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #13
  store i32 1, ptr %112, align 4, !tbaa !11
  %892 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %893 = icmp sle i32 1, %892
  br i1 %893, label %894, label %895

894:                                              ; preds = %891
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__33_)
  br label %895

895:                                              ; preds = %894, %891
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #13
  br label %896

896:                                              ; preds = %895
  br label %897

897:                                              ; preds = %896
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1542

898:                                              ; preds = %887
  br label %911

899:                                              ; preds = %879
  %900 = load i64, ptr %111, align 8, !tbaa !9
  %901 = icmp ne i64 -2, %900
  br i1 %901, label %902, label %910

902:                                              ; preds = %899
  br label %903

903:                                              ; preds = %902
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #13
  store i32 1, ptr %113, align 4, !tbaa !11
  %904 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %905 = icmp sle i32 1, %904
  br i1 %905, label %906, label %907

906:                                              ; preds = %903
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__34_)
  br label %907

907:                                              ; preds = %906, %903
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #13
  br label %908

908:                                              ; preds = %907
  br label %909

909:                                              ; preds = %908
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1542

910:                                              ; preds = %899
  br label %911

911:                                              ; preds = %910, %898
  %912 = load i64, ptr %46, align 8, !tbaa !9
  %913 = icmp ne i64 0, %912
  br i1 %913, label %914, label %1511

914:                                              ; preds = %911
  %915 = load ptr, ptr %32, align 8, !tbaa !5
  %916 = load i64, ptr %46, align 8, !tbaa !9
  %917 = load ptr, ptr %105, align 8, !tbaa !5
  %918 = call noundef i32 @_ZNK14NAMESPACE_MAIN11BoosterCore12CheckTargetsEmPKv(ptr noundef nonnull align 8 dereferenceable(520) %915, i64 noundef %916, ptr noundef %917) #13
  %919 = icmp ne i32 0, %918
  br i1 %919, label %920, label %928

920:                                              ; preds = %914
  br label %921

921:                                              ; preds = %920
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #13
  store i32 2, ptr %114, align 4, !tbaa !11
  %922 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %923 = icmp sle i32 2, %922
  br i1 %923, label %924, label %925

924:                                              ; preds = %921
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__35_)
  br label %925

925:                                              ; preds = %924, %921
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #13
  br label %926

926:                                              ; preds = %925
  br label %927

927:                                              ; preds = %926
  store i32 -21, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1542

928:                                              ; preds = %914
  br label %929

929:                                              ; preds = %928
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #13
  store i32 3, ptr %115, align 4, !tbaa !11
  %930 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %931 = icmp sle i32 3, %930
  br i1 %931, label %932, label %933

932:                                              ; preds = %929
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__36_)
  br label %933

933:                                              ; preds = %932, %929
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #13
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934
  %936 = load ptr, ptr %32, align 8, !tbaa !5
  %937 = load ptr, ptr %32, align 8, !tbaa !5
  %938 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %937, i32 0, i32 17
  %939 = load i64, ptr %68, align 8, !tbaa !9
  %940 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL24CheckBoosterRestrictionsEPKNS_11BoosterCoreEPK16ObjectiveWrapperm(ptr noundef %936, ptr noundef %938, i64 noundef %939)
  br i1 %940, label %941, label %949

941:                                              ; preds = %935
  br label %942

942:                                              ; preds = %941
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #13
  store i32 2, ptr %116, align 4, !tbaa !11
  %943 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %944 = icmp sle i32 2, %943
  br i1 %944, label %945, label %946

945:                                              ; preds = %942
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__37_)
  br label %946

946:                                              ; preds = %945, %942
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #13
  br label %947

947:                                              ; preds = %946
  br label %948

948:                                              ; preds = %947
  store i32 -3, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1542

949:                                              ; preds = %935
  %950 = load ptr, ptr %32, align 8, !tbaa !5
  %951 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %950, i32 0, i32 18
  %952 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %951, i32 0, i32 18
  %953 = load i64, ptr %952, align 8, !tbaa !41
  %954 = icmp ne i64 0, %953
  br i1 %954, label %955, label %967

955:                                              ; preds = %949
  %956 = load ptr, ptr %32, align 8, !tbaa !5
  %957 = load ptr, ptr %32, align 8, !tbaa !5
  %958 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %957, i32 0, i32 18
  %959 = load i64, ptr %68, align 8, !tbaa !9
  %960 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL24CheckBoosterRestrictionsEPKNS_11BoosterCoreEPK16ObjectiveWrapperm(ptr noundef %956, ptr noundef %958, i64 noundef %959)
  br i1 %960, label %961, label %966

961:                                              ; preds = %955
  %962 = load ptr, ptr %32, align 8, !tbaa !5
  %963 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %962, i32 0, i32 18
  call void @_ZL29FreeObjectiveWrapperInternalsP16ObjectiveWrapper(ptr noundef %963)
  %964 = load ptr, ptr %32, align 8, !tbaa !5
  %965 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %964, i32 0, i32 18
  call void @_ZL35InitializeObjectiveWrapperUnfailingP16ObjectiveWrapper(ptr noundef %965)
  br label %966

966:                                              ; preds = %961, %955
  br label %967

967:                                              ; preds = %966, %949
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #13
  %968 = load i64, ptr %46, align 8, !tbaa !9
  %969 = load ptr, ptr %24, align 8, !tbaa !5
  %970 = call noundef i32 @_ZN14NAMESPACE_MAIN5UnbagEmPKaPmS2_(i64 noundef %968, ptr noundef %969, ptr noundef %117, ptr noundef %118)
  store i32 %970, ptr %31, align 4, !tbaa !11
  %971 = load i32, ptr %31, align 4, !tbaa !11
  %972 = icmp ne i32 0, %971
  br i1 %972, label %973, label %975

973:                                              ; preds = %967
  %974 = load i32, ptr %31, align 4, !tbaa !11
  store i32 %974, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1508

975:                                              ; preds = %967
  call void @llvm.lifetime.start.p0(i64 1, ptr %119) #13
  %976 = load ptr, ptr %32, align 8, !tbaa !5
  %977 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %976, i32 0, i32 17
  %978 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %977, i32 0, i32 18
  %979 = load i64, ptr %978, align 8, !tbaa !42
  %980 = icmp eq i64 4, %979
  br i1 %980, label %999, label %981

981:                                              ; preds = %975
  %982 = load ptr, ptr %32, align 8, !tbaa !5
  %983 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %982, i32 0, i32 17
  %984 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %983, i32 0, i32 17
  %985 = load i64, ptr %984, align 8, !tbaa !43
  %986 = icmp eq i64 4, %985
  br i1 %986, label %999, label %987

987:                                              ; preds = %981
  %988 = load ptr, ptr %32, align 8, !tbaa !5
  %989 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %988, i32 0, i32 18
  %990 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %989, i32 0, i32 18
  %991 = load i64, ptr %990, align 8, !tbaa !41
  %992 = icmp eq i64 4, %991
  br i1 %992, label %999, label %993

993:                                              ; preds = %987
  %994 = load ptr, ptr %32, align 8, !tbaa !5
  %995 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %994, i32 0, i32 18
  %996 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %995, i32 0, i32 17
  %997 = load i64, ptr %996, align 8, !tbaa !44
  %998 = icmp eq i64 4, %997
  br label %999

999:                                              ; preds = %993, %987, %981, %975
  %1000 = phi i1 [ true, %987 ], [ true, %981 ], [ true, %975 ], [ %998, %993 ]
  %1001 = zext i1 %1000 to i8
  store i8 %1001, ptr %119, align 1, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 1, ptr %120) #13
  %1002 = load ptr, ptr %32, align 8, !tbaa !5
  %1003 = call noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore9IsHessianEv(ptr noundef nonnull align 8 dereferenceable(520) %1002)
  %1004 = zext i1 %1003 to i8
  store i8 %1004, ptr %120, align 1, !tbaa !22
  %1005 = load i64, ptr %18, align 8, !tbaa !9
  %1006 = load ptr, ptr %32, align 8, !tbaa !5
  %1007 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1006, i32 0, i32 7
  store i64 %1005, ptr %1007, align 8, !tbaa !45
  %1008 = load ptr, ptr %32, align 8, !tbaa !5
  %1009 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1008, i32 0, i32 15
  %1010 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1011 = trunc i8 %1010 to i1
  %1012 = load ptr, ptr %32, align 8, !tbaa !5
  %1013 = call noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore6IsRmseEv(ptr noundef nonnull align 8 dereferenceable(520) %1012)
  %1014 = xor i1 %1013, true
  %1015 = load ptr, ptr %32, align 8, !tbaa !5
  %1016 = call noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore6IsRmseEv(ptr noundef nonnull align 8 dereferenceable(520) %1015)
  %1017 = xor i1 %1016, true
  %1018 = load ptr, ptr %16, align 8, !tbaa !5
  %1019 = load i64, ptr %107, align 8, !tbaa !9
  %1020 = load i8, ptr %119, align 1, !tbaa !22, !range !24, !noundef !25
  %1021 = trunc i8 %1020 to i1
  %1022 = zext i1 %1021 to i64
  %1023 = select i1 %1021, i64 131072, i64 -1
  %1024 = load ptr, ptr %32, align 8, !tbaa !5
  %1025 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1024, i32 0, i32 17
  %1026 = load ptr, ptr %32, align 8, !tbaa !5
  %1027 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1026, i32 0, i32 18
  %1028 = load ptr, ptr %22, align 8, !tbaa !5
  %1029 = load ptr, ptr %23, align 8, !tbaa !5
  %1030 = load i64, ptr %46, align 8, !tbaa !9
  %1031 = load ptr, ptr %24, align 8, !tbaa !5
  %1032 = load ptr, ptr %25, align 8, !tbaa !5
  %1033 = load i64, ptr %117, align 8, !tbaa !9
  %1034 = load i64, ptr %18, align 8, !tbaa !9
  %1035 = load i64, ptr %42, align 8, !tbaa !9
  %1036 = load i64, ptr %17, align 8, !tbaa !9
  %1037 = load ptr, ptr %32, align 8, !tbaa !5
  %1038 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1037, i32 0, i32 6
  %1039 = load ptr, ptr %1038, align 8, !tbaa !29
  %1040 = load ptr, ptr %21, align 8, !tbaa !5
  %1041 = call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl(ptr noundef nonnull align 8 dereferenceable(40) %1009, i1 noundef zeroext true, i1 noundef zeroext %1011, i1 noundef zeroext %1014, i1 noundef zeroext %1017, i1 noundef zeroext true, ptr noundef %1018, i64 noundef %1019, i64 noundef %1023, ptr noundef %1025, ptr noundef %1027, ptr noundef %1028, ptr noundef %1029, i8 noundef signext 1, i64 noundef %1030, ptr noundef %1031, ptr noundef %1032, i64 noundef %1033, i64 noundef %1034, i64 noundef %1035, i64 noundef %1036, ptr noundef %1039, ptr noundef %1040)
  store i32 %1041, ptr %31, align 4, !tbaa !11
  %1042 = load i32, ptr %31, align 4, !tbaa !11
  %1043 = icmp ne i32 0, %1042
  br i1 %1043, label %1044, label %1046

1044:                                             ; preds = %999
  %1045 = load i32, ptr %31, align 4, !tbaa !11
  store i32 %1045, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1507

1046:                                             ; preds = %999
  %1047 = load ptr, ptr %32, align 8, !tbaa !5
  %1048 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1047, i32 0, i32 16
  %1049 = load ptr, ptr %32, align 8, !tbaa !5
  %1050 = call noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore6IsRmseEv(ptr noundef nonnull align 8 dereferenceable(520) %1049)
  %1051 = load ptr, ptr %32, align 8, !tbaa !5
  %1052 = call noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore6IsRmseEv(ptr noundef nonnull align 8 dereferenceable(520) %1051)
  %1053 = xor i1 %1052, true
  %1054 = load ptr, ptr %32, align 8, !tbaa !5
  %1055 = call noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore6IsRmseEv(ptr noundef nonnull align 8 dereferenceable(520) %1054)
  %1056 = xor i1 %1055, true
  %1057 = load ptr, ptr %16, align 8, !tbaa !5
  %1058 = load i64, ptr %107, align 8, !tbaa !9
  %1059 = load i8, ptr %119, align 1, !tbaa !22, !range !24, !noundef !25
  %1060 = trunc i8 %1059 to i1
  %1061 = zext i1 %1060 to i64
  %1062 = select i1 %1060, i64 131072, i64 -1
  %1063 = load ptr, ptr %32, align 8, !tbaa !5
  %1064 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1063, i32 0, i32 17
  %1065 = load ptr, ptr %32, align 8, !tbaa !5
  %1066 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1065, i32 0, i32 18
  %1067 = load ptr, ptr %22, align 8, !tbaa !5
  %1068 = load ptr, ptr %23, align 8, !tbaa !5
  %1069 = load i64, ptr %46, align 8, !tbaa !9
  %1070 = load ptr, ptr %24, align 8, !tbaa !5
  %1071 = load ptr, ptr %25, align 8, !tbaa !5
  %1072 = load i64, ptr %118, align 8, !tbaa !9
  %1073 = load i64, ptr %42, align 8, !tbaa !9
  %1074 = load i64, ptr %17, align 8, !tbaa !9
  %1075 = load ptr, ptr %32, align 8, !tbaa !5
  %1076 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1075, i32 0, i32 6
  %1077 = load ptr, ptr %1076, align 8, !tbaa !29
  %1078 = load ptr, ptr %21, align 8, !tbaa !5
  %1079 = call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl(ptr noundef nonnull align 8 dereferenceable(40) %1048, i1 noundef zeroext %1050, i1 noundef zeroext false, i1 noundef zeroext %1053, i1 noundef zeroext %1056, i1 noundef zeroext false, ptr noundef %1057, i64 noundef %1058, i64 noundef %1062, ptr noundef %1064, ptr noundef %1066, ptr noundef %1067, ptr noundef %1068, i8 noundef signext -1, i64 noundef %1069, ptr noundef %1070, ptr noundef %1071, i64 noundef %1072, i64 noundef 0, i64 noundef %1073, i64 noundef %1074, ptr noundef %1077, ptr noundef %1078)
  store i32 %1079, ptr %31, align 4, !tbaa !11
  %1080 = load i32, ptr %31, align 4, !tbaa !11
  %1081 = icmp ne i32 0, %1080
  br i1 %1081, label %1082, label %1084

1082:                                             ; preds = %1046
  %1083 = load i32, ptr %31, align 4, !tbaa !11
  store i32 %1083, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1507

1084:                                             ; preds = %1046
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #13
  store i64 0, ptr %121, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #13
  %1085 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1086 = trunc i8 %1085 to i1
  br i1 %1086, label %1087, label %1095

1087:                                             ; preds = %1084
  %1088 = load i64, ptr %107, align 8, !tbaa !9
  %1089 = icmp eq i64 1, %1088
  br i1 %1089, label %1090, label %1093

1090:                                             ; preds = %1087
  %1091 = call noundef i32 @_ZN14NAMESPACE_MAINL6EbmMaxIiEET_S1_S1_(i32 noundef 32768, i32 noundef 1024) #13
  %1092 = sext i32 %1091 to i64
  store i64 %1092, ptr %122, align 8, !tbaa !9
  br label %1094

1093:                                             ; preds = %1087
  store i64 1024, ptr %122, align 8, !tbaa !9
  br label %1094

1094:                                             ; preds = %1093, %1090
  br label %1101

1095:                                             ; preds = %1084
  %1096 = load i64, ptr %107, align 8, !tbaa !9
  %1097 = icmp eq i64 1, %1096
  br i1 %1097, label %1098, label %1099

1098:                                             ; preds = %1095
  store i64 1024, ptr %122, align 8, !tbaa !9
  br label %1100

1099:                                             ; preds = %1095
  store i64 0, ptr %122, align 8, !tbaa !9
  br label %1100

1100:                                             ; preds = %1099, %1098
  br label %1101

1101:                                             ; preds = %1100, %1094
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #13
  store i64 0, ptr %123, align 8, !tbaa !9
  %1102 = load i64, ptr %117, align 8, !tbaa !9
  %1103 = icmp ne i64 0, %1102
  br i1 %1103, label %1104, label %1223

1104:                                             ; preds = %1101
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #13
  %1105 = load ptr, ptr %32, align 8, !tbaa !5
  %1106 = call noundef ptr @_ZN14NAMESPACE_MAIN11BoosterCore14GetTrainingSetEv(ptr noundef nonnull align 8 dereferenceable(520) %1105)
  %1107 = call noundef ptr @_ZN14NAMESPACE_MAIN15DataSetBoosting10GetSubsetsEv(ptr noundef nonnull align 8 dereferenceable(40) %1106)
  store ptr %1107, ptr %124, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #13
  %1108 = load ptr, ptr %124, align 8, !tbaa !5
  %1109 = load ptr, ptr %32, align 8, !tbaa !5
  %1110 = call noundef ptr @_ZN14NAMESPACE_MAIN11BoosterCore14GetTrainingSetEv(ptr noundef nonnull align 8 dereferenceable(520) %1109)
  %1111 = call noundef i64 @_ZNK14NAMESPACE_MAIN15DataSetBoosting15GetCountSubsetsEv(ptr noundef nonnull align 8 dereferenceable(40) %1110)
  %1112 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %1108, i64 %1111
  store ptr %1112, ptr %125, align 8, !tbaa !5
  br label %1113

1113:                                             ; preds = %1218, %1104
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #13
  %1114 = load ptr, ptr %124, align 8, !tbaa !5
  %1115 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1114)
  %1116 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1115, i32 0, i32 18
  %1117 = load i64, ptr %1116, align 8, !tbaa !46
  %1118 = icmp eq i64 8, %1117
  br i1 %1118, label %1119, label %1145

1119:                                             ; preds = %1113
  %1120 = load ptr, ptr %124, align 8, !tbaa !5
  %1121 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1120)
  %1122 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1121, i32 0, i32 17
  %1123 = load i64, ptr %1122, align 8, !tbaa !47
  %1124 = icmp eq i64 8, %1123
  br i1 %1124, label %1125, label %1130

1125:                                             ; preds = %1119
  %1126 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1127 = trunc i8 %1126 to i1
  %1128 = load i64, ptr %107, align 8, !tbaa !9
  %1129 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIdmEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %1127, i64 noundef %1128)
  store i64 %1129, ptr %126, align 8, !tbaa !9
  br label %1144

1130:                                             ; preds = %1119
  %1131 = load ptr, ptr %124, align 8, !tbaa !5
  %1132 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1131)
  %1133 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1132, i32 0, i32 17
  %1134 = load i64, ptr %1133, align 8, !tbaa !47
  %1135 = icmp eq i64 4, %1134
  br i1 %1135, label %1138, label %1136

1136:                                             ; preds = %1130
  call void @LogAssertFailure(i64 noundef 750, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.37)
  call void @__assert_fail(ptr noundef @.str.38, ptr noundef @.str, i32 noundef 750, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

1137:                                             ; No predecessors!
  br label %1138

1138:                                             ; preds = %1137, %1130
  %1139 = phi i1 [ true, %1130 ], [ false, %1137 ]
  %1140 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1141 = trunc i8 %1140 to i1
  %1142 = load i64, ptr %107, align 8, !tbaa !9
  %1143 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIfmEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %1141, i64 noundef %1142)
  store i64 %1143, ptr %126, align 8, !tbaa !9
  br label %1144

1144:                                             ; preds = %1138, %1125
  br label %1180

1145:                                             ; preds = %1113
  %1146 = load ptr, ptr %124, align 8, !tbaa !5
  %1147 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1146)
  %1148 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1147, i32 0, i32 18
  %1149 = load i64, ptr %1148, align 8, !tbaa !46
  %1150 = icmp eq i64 4, %1149
  br i1 %1150, label %1153, label %1151

1151:                                             ; preds = %1145
  call void @LogAssertFailure(i64 noundef 754, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.39)
  call void @__assert_fail(ptr noundef @.str.40, ptr noundef @.str, i32 noundef 754, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

1152:                                             ; No predecessors!
  br label %1153

1153:                                             ; preds = %1152, %1145
  %1154 = phi i1 [ true, %1145 ], [ false, %1152 ]
  %1155 = load ptr, ptr %124, align 8, !tbaa !5
  %1156 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1155)
  %1157 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1156, i32 0, i32 17
  %1158 = load i64, ptr %1157, align 8, !tbaa !47
  %1159 = icmp eq i64 8, %1158
  br i1 %1159, label %1160, label %1165

1160:                                             ; preds = %1153
  %1161 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1162 = trunc i8 %1161 to i1
  %1163 = load i64, ptr %107, align 8, !tbaa !9
  %1164 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIdjEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %1162, i64 noundef %1163)
  store i64 %1164, ptr %126, align 8, !tbaa !9
  br label %1179

1165:                                             ; preds = %1153
  %1166 = load ptr, ptr %124, align 8, !tbaa !5
  %1167 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1166)
  %1168 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1167, i32 0, i32 17
  %1169 = load i64, ptr %1168, align 8, !tbaa !47
  %1170 = icmp eq i64 4, %1169
  br i1 %1170, label %1173, label %1171

1171:                                             ; preds = %1165
  call void @LogAssertFailure(i64 noundef 758, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.37)
  call void @__assert_fail(ptr noundef @.str.38, ptr noundef @.str, i32 noundef 758, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

1172:                                             ; No predecessors!
  br label %1173

1173:                                             ; preds = %1172, %1165
  %1174 = phi i1 [ true, %1165 ], [ false, %1172 ]
  %1175 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1176 = trunc i8 %1175 to i1
  %1177 = load i64, ptr %107, align 8, !tbaa !9
  %1178 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIfjEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %1176, i64 noundef %1177)
  store i64 %1178, ptr %126, align 8, !tbaa !9
  br label %1179

1179:                                             ; preds = %1173, %1160
  br label %1180

1180:                                             ; preds = %1179, %1144
  %1181 = load i64, ptr %121, align 8, !tbaa !9
  %1182 = load i64, ptr %126, align 8, !tbaa !9
  %1183 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %1181, i64 noundef %1182) #13
  store i64 %1183, ptr %121, align 8, !tbaa !9
  %1184 = load ptr, ptr %124, align 8, !tbaa !5
  %1185 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1184)
  %1186 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1185, i32 0, i32 16
  %1187 = load i64, ptr %1186, align 8, !tbaa !48
  %1188 = icmp ne i64 1, %1187
  br i1 %1188, label %1189, label %1215

1189:                                             ; preds = %1180
  %1190 = load i64, ptr %126, align 8, !tbaa !9
  %1191 = load i64, ptr %68, align 8, !tbaa !9
  %1192 = load ptr, ptr %124, align 8, !tbaa !5
  %1193 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1192)
  %1194 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1193, i32 0, i32 16
  %1195 = load i64, ptr %1194, align 8, !tbaa !48
  %1196 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImJmEEEbT_S1_DpKT0_(i64 noundef %1190, i64 noundef %1191, i64 noundef %1195) #13
  br i1 %1196, label %1197, label %1199

1197:                                             ; preds = %1189
  %1198 = load i64, ptr %122, align 8, !tbaa !9
  store i64 %1198, ptr %123, align 8, !tbaa !9
  br label %1214

1199:                                             ; preds = %1189
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #13
  %1200 = load i64, ptr %126, align 8, !tbaa !9
  %1201 = load i64, ptr %68, align 8, !tbaa !9
  %1202 = mul i64 %1200, %1201
  %1203 = load ptr, ptr %124, align 8, !tbaa !5
  %1204 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1203)
  %1205 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1204, i32 0, i32 16
  %1206 = load i64, ptr %1205, align 8, !tbaa !48
  %1207 = mul i64 %1202, %1206
  store i64 %1207, ptr %127, align 8, !tbaa !9
  %1208 = load i64, ptr %127, align 8, !tbaa !9
  %1209 = load i64, ptr %122, align 8, !tbaa !9
  %1210 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMinImEET_S1_S1_(i64 noundef %1208, i64 noundef %1209) #13
  store i64 %1210, ptr %127, align 8, !tbaa !9
  %1211 = load i64, ptr %123, align 8, !tbaa !9
  %1212 = load i64, ptr %127, align 8, !tbaa !9
  %1213 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %1211, i64 noundef %1212) #13
  store i64 %1213, ptr %123, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #13
  br label %1214

1214:                                             ; preds = %1199, %1197
  br label %1215

1215:                                             ; preds = %1214, %1180
  %1216 = load ptr, ptr %124, align 8, !tbaa !5
  %1217 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %1216, i32 1
  store ptr %1217, ptr %124, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #13
  br label %1218

1218:                                             ; preds = %1215
  %1219 = load ptr, ptr %125, align 8, !tbaa !5
  %1220 = load ptr, ptr %124, align 8, !tbaa !5
  %1221 = icmp ne ptr %1219, %1220
  br i1 %1221, label %1113, label %1222, !llvm.loop !49

1222:                                             ; preds = %1218
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #13
  br label %1223

1223:                                             ; preds = %1222, %1101
  %1224 = load i64, ptr %118, align 8, !tbaa !9
  %1225 = icmp ne i64 0, %1224
  br i1 %1225, label %1226, label %1313

1226:                                             ; preds = %1223
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #13
  %1227 = load ptr, ptr %32, align 8, !tbaa !5
  %1228 = call noundef ptr @_ZN14NAMESPACE_MAIN11BoosterCore16GetValidationSetEv(ptr noundef nonnull align 8 dereferenceable(520) %1227)
  %1229 = call noundef ptr @_ZN14NAMESPACE_MAIN15DataSetBoosting10GetSubsetsEv(ptr noundef nonnull align 8 dereferenceable(40) %1228)
  store ptr %1229, ptr %128, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #13
  %1230 = load ptr, ptr %128, align 8, !tbaa !5
  %1231 = load ptr, ptr %32, align 8, !tbaa !5
  %1232 = call noundef ptr @_ZN14NAMESPACE_MAIN11BoosterCore16GetValidationSetEv(ptr noundef nonnull align 8 dereferenceable(520) %1231)
  %1233 = call noundef i64 @_ZNK14NAMESPACE_MAIN15DataSetBoosting15GetCountSubsetsEv(ptr noundef nonnull align 8 dereferenceable(40) %1232)
  %1234 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %1230, i64 %1233
  store ptr %1234, ptr %129, align 8, !tbaa !5
  br label %1235

1235:                                             ; preds = %1308, %1226
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #13
  %1236 = load ptr, ptr %128, align 8, !tbaa !5
  %1237 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1236)
  %1238 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1237, i32 0, i32 18
  %1239 = load i64, ptr %1238, align 8, !tbaa !46
  %1240 = icmp eq i64 8, %1239
  br i1 %1240, label %1241, label %1267

1241:                                             ; preds = %1235
  %1242 = load ptr, ptr %128, align 8, !tbaa !5
  %1243 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1242)
  %1244 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1243, i32 0, i32 17
  %1245 = load i64, ptr %1244, align 8, !tbaa !47
  %1246 = icmp eq i64 8, %1245
  br i1 %1246, label %1247, label %1252

1247:                                             ; preds = %1241
  %1248 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1249 = trunc i8 %1248 to i1
  %1250 = load i64, ptr %107, align 8, !tbaa !9
  %1251 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIdmEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %1249, i64 noundef %1250)
  store i64 %1251, ptr %130, align 8, !tbaa !9
  br label %1266

1252:                                             ; preds = %1241
  %1253 = load ptr, ptr %128, align 8, !tbaa !5
  %1254 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1253)
  %1255 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1254, i32 0, i32 17
  %1256 = load i64, ptr %1255, align 8, !tbaa !47
  %1257 = icmp eq i64 4, %1256
  br i1 %1257, label %1260, label %1258

1258:                                             ; preds = %1252
  call void @LogAssertFailure(i64 noundef 793, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.37)
  call void @__assert_fail(ptr noundef @.str.38, ptr noundef @.str, i32 noundef 793, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

1259:                                             ; No predecessors!
  br label %1260

1260:                                             ; preds = %1259, %1252
  %1261 = phi i1 [ true, %1252 ], [ false, %1259 ]
  %1262 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1263 = trunc i8 %1262 to i1
  %1264 = load i64, ptr %107, align 8, !tbaa !9
  %1265 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIfmEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %1263, i64 noundef %1264)
  store i64 %1265, ptr %130, align 8, !tbaa !9
  br label %1266

1266:                                             ; preds = %1260, %1247
  br label %1302

1267:                                             ; preds = %1235
  %1268 = load ptr, ptr %128, align 8, !tbaa !5
  %1269 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1268)
  %1270 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1269, i32 0, i32 18
  %1271 = load i64, ptr %1270, align 8, !tbaa !46
  %1272 = icmp eq i64 4, %1271
  br i1 %1272, label %1275, label %1273

1273:                                             ; preds = %1267
  call void @LogAssertFailure(i64 noundef 797, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.39)
  call void @__assert_fail(ptr noundef @.str.40, ptr noundef @.str, i32 noundef 797, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

1274:                                             ; No predecessors!
  br label %1275

1275:                                             ; preds = %1274, %1267
  %1276 = phi i1 [ true, %1267 ], [ false, %1274 ]
  %1277 = load ptr, ptr %128, align 8, !tbaa !5
  %1278 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1277)
  %1279 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1278, i32 0, i32 17
  %1280 = load i64, ptr %1279, align 8, !tbaa !47
  %1281 = icmp eq i64 8, %1280
  br i1 %1281, label %1282, label %1287

1282:                                             ; preds = %1275
  %1283 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1284 = trunc i8 %1283 to i1
  %1285 = load i64, ptr %107, align 8, !tbaa !9
  %1286 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIdjEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %1284, i64 noundef %1285)
  store i64 %1286, ptr %130, align 8, !tbaa !9
  br label %1301

1287:                                             ; preds = %1275
  %1288 = load ptr, ptr %128, align 8, !tbaa !5
  %1289 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %1288)
  %1290 = getelementptr inbounds %struct.ObjectiveWrapper, ptr %1289, i32 0, i32 17
  %1291 = load i64, ptr %1290, align 8, !tbaa !47
  %1292 = icmp eq i64 4, %1291
  br i1 %1292, label %1295, label %1293

1293:                                             ; preds = %1287
  call void @LogAssertFailure(i64 noundef 801, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.37)
  call void @__assert_fail(ptr noundef @.str.38, ptr noundef @.str, i32 noundef 801, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

1294:                                             ; No predecessors!
  br label %1295

1295:                                             ; preds = %1294, %1287
  %1296 = phi i1 [ true, %1287 ], [ false, %1294 ]
  %1297 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1298 = trunc i8 %1297 to i1
  %1299 = load i64, ptr %107, align 8, !tbaa !9
  %1300 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIfjEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %1298, i64 noundef %1299)
  store i64 %1300, ptr %130, align 8, !tbaa !9
  br label %1301

1301:                                             ; preds = %1295, %1282
  br label %1302

1302:                                             ; preds = %1301, %1266
  %1303 = load i64, ptr %121, align 8, !tbaa !9
  %1304 = load i64, ptr %130, align 8, !tbaa !9
  %1305 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %1303, i64 noundef %1304) #13
  store i64 %1305, ptr %121, align 8, !tbaa !9
  %1306 = load ptr, ptr %128, align 8, !tbaa !5
  %1307 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %1306, i32 1
  store ptr %1307, ptr %128, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #13
  br label %1308

1308:                                             ; preds = %1302
  %1309 = load ptr, ptr %129, align 8, !tbaa !5
  %1310 = load ptr, ptr %128, align 8, !tbaa !5
  %1311 = icmp ne ptr %1309, %1310
  br i1 %1311, label %1235, label %1312, !llvm.loop !50

1312:                                             ; preds = %1308
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #13
  br label %1313

1313:                                             ; preds = %1312, %1223
  %1314 = load i64, ptr %121, align 8, !tbaa !9
  %1315 = load i64, ptr %68, align 8, !tbaa !9
  %1316 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %1314, i64 noundef %1315) #13
  br i1 %1316, label %1317, label %1325

1317:                                             ; preds = %1313
  br label %1318

1318:                                             ; preds = %1317
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #13
  store i32 2, ptr %131, align 4, !tbaa !11
  %1319 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %1320 = icmp sle i32 2, %1319
  br i1 %1320, label %1321, label %1322

1321:                                             ; preds = %1318
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__38_)
  br label %1322

1322:                                             ; preds = %1321, %1318
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #13
  br label %1323

1323:                                             ; preds = %1322
  br label %1324

1324:                                             ; preds = %1323
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1506

1325:                                             ; preds = %1313
  %1326 = load i64, ptr %68, align 8, !tbaa !9
  %1327 = load i64, ptr %121, align 8, !tbaa !9
  %1328 = mul i64 %1327, %1326
  store i64 %1328, ptr %121, align 8, !tbaa !9
  %1329 = load i64, ptr %123, align 8, !tbaa !9
  %1330 = load i64, ptr %121, align 8, !tbaa !9
  %1331 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %1329, i64 noundef %1330) #13
  store i64 %1331, ptr %121, align 8, !tbaa !9
  %1332 = load i64, ptr %121, align 8, !tbaa !9
  %1333 = load ptr, ptr %32, align 8, !tbaa !5
  %1334 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1333, i32 0, i32 11
  store i64 %1332, ptr %1334, align 8, !tbaa !51
  %1335 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1336 = trunc i8 %1335 to i1
  %1337 = load i64, ptr %107, align 8, !tbaa !9
  %1338 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL17IsOverflowBinSizeIdmEEbbbbm(i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext %1336, i64 noundef %1337)
  br i1 %1338, label %1339, label %1347

1339:                                             ; preds = %1325
  br label %1340

1340:                                             ; preds = %1339
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #13
  store i32 2, ptr %132, align 4, !tbaa !11
  %1341 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %1342 = icmp sle i32 2, %1341
  br i1 %1342, label %1343, label %1344

1343:                                             ; preds = %1340
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__39_)
  br label %1344

1344:                                             ; preds = %1343, %1340
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #13
  br label %1345

1345:                                             ; preds = %1344
  br label %1346

1346:                                             ; preds = %1345
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1506

1347:                                             ; preds = %1325
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #13
  %1348 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1349 = trunc i8 %1348 to i1
  %1350 = load i64, ptr %107, align 8, !tbaa !9
  %1351 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIdmEEmbbbm(i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext %1349, i64 noundef %1350)
  store i64 %1351, ptr %133, align 8, !tbaa !9
  %1352 = load i64, ptr %133, align 8, !tbaa !9
  %1353 = load i64, ptr %69, align 8, !tbaa !9
  %1354 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %1352, i64 noundef %1353) #13
  br i1 %1354, label %1355, label %1363

1355:                                             ; preds = %1347
  br label %1356

1356:                                             ; preds = %1355
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #13
  store i32 2, ptr %134, align 4, !tbaa !11
  %1357 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %1358 = icmp sle i32 2, %1357
  br i1 %1358, label %1359, label %1360

1359:                                             ; preds = %1356
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__40_)
  br label %1360

1360:                                             ; preds = %1359, %1356
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #13
  br label %1361

1361:                                             ; preds = %1360
  br label %1362

1362:                                             ; preds = %1361
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1505

1363:                                             ; preds = %1347
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #13
  %1364 = load i64, ptr %133, align 8, !tbaa !9
  %1365 = load i64, ptr %69, align 8, !tbaa !9
  %1366 = mul i64 %1364, %1365
  store i64 %1366, ptr %135, align 8, !tbaa !9
  %1367 = load i64, ptr %70, align 8, !tbaa !9
  %1368 = icmp ne i64 0, %1367
  br i1 %1368, label %1369, label %1483

1369:                                             ; preds = %1363
  %1370 = load i64, ptr %133, align 8, !tbaa !9
  %1371 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL10IsAddErrorImEEbT_S1_(i64 noundef %1370, i64 noundef 8) #13
  br i1 %1371, label %1372, label %1380

1372:                                             ; preds = %1369
  br label %1373

1373:                                             ; preds = %1372
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #13
  store i32 2, ptr %136, align 4, !tbaa !11
  %1374 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %1375 = icmp sle i32 2, %1374
  br i1 %1375, label %1376, label %1377

1376:                                             ; preds = %1373
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__41_)
  br label %1377

1377:                                             ; preds = %1376, %1373
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #13
  br label %1378

1378:                                             ; preds = %1377
  br label %1379

1379:                                             ; preds = %1378
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1504

1380:                                             ; preds = %1369
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #13
  %1381 = load i64, ptr %133, align 8, !tbaa !9
  %1382 = add i64 %1381, 8
  store i64 %1382, ptr %137, align 8, !tbaa !9
  %1383 = load i64, ptr %137, align 8, !tbaa !9
  %1384 = load i64, ptr %70, align 8, !tbaa !9
  %1385 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %1383, i64 noundef %1384) #13
  br i1 %1385, label %1386, label %1394

1386:                                             ; preds = %1380
  br label %1387

1387:                                             ; preds = %1386
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #13
  store i32 2, ptr %138, align 4, !tbaa !11
  %1388 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %1389 = icmp sle i32 2, %1388
  br i1 %1389, label %1390, label %1391

1390:                                             ; preds = %1387
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__42_)
  br label %1391

1391:                                             ; preds = %1390, %1387
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #13
  br label %1392

1392:                                             ; preds = %1391
  br label %1393

1393:                                             ; preds = %1392
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1480

1394:                                             ; preds = %1380
  %1395 = load i64, ptr %135, align 8, !tbaa !9
  %1396 = load i64, ptr %137, align 8, !tbaa !9
  %1397 = load i64, ptr %70, align 8, !tbaa !9
  %1398 = mul i64 %1396, %1397
  %1399 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %1395, i64 noundef %1398) #13
  store i64 %1399, ptr %135, align 8, !tbaa !9
  %1400 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1401 = trunc i8 %1400 to i1
  %1402 = load i64, ptr %107, align 8, !tbaa !9
  %1403 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL22IsOverflowTreeNodeSizeEbm(i1 noundef zeroext %1401, i64 noundef %1402)
  br i1 %1403, label %1409, label %1404

1404:                                             ; preds = %1394
  %1405 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1406 = trunc i8 %1405 to i1
  %1407 = load i64, ptr %107, align 8, !tbaa !9
  %1408 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL27IsOverflowSplitPositionSizeEbm(i1 noundef zeroext %1406, i64 noundef %1407)
  br i1 %1408, label %1409, label %1417

1409:                                             ; preds = %1404, %1394
  br label %1410

1410:                                             ; preds = %1409
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #13
  store i32 2, ptr %139, align 4, !tbaa !11
  %1411 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %1412 = icmp sle i32 2, %1411
  br i1 %1412, label %1413, label %1414

1413:                                             ; preds = %1410
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__43_)
  br label %1414

1414:                                             ; preds = %1413, %1410
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #13
  br label %1415

1415:                                             ; preds = %1414
  br label %1416

1416:                                             ; preds = %1415
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1480

1417:                                             ; preds = %1404
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #13
  %1418 = load i64, ptr %70, align 8, !tbaa !9
  %1419 = sub i64 %1418, 1
  store i64 %1419, ptr %140, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #13
  %1420 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1421 = trunc i8 %1420 to i1
  %1422 = load i64, ptr %107, align 8, !tbaa !9
  %1423 = call noundef i64 @_ZN14NAMESPACE_MAINL20GetSplitPositionSizeEbm(i1 noundef zeroext %1421, i64 noundef %1422)
  store i64 %1423, ptr %141, align 8, !tbaa !9
  %1424 = load i64, ptr %141, align 8, !tbaa !9
  %1425 = load i64, ptr %140, align 8, !tbaa !9
  %1426 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImJmEEEbT_S1_DpKT0_(i64 noundef 2, i64 noundef %1424, i64 noundef %1425) #13
  br i1 %1426, label %1427, label %1435

1427:                                             ; preds = %1417
  br label %1428

1428:                                             ; preds = %1427
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #13
  store i32 2, ptr %142, align 4, !tbaa !11
  %1429 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %1430 = icmp sle i32 2, %1429
  br i1 %1430, label %1431, label %1432

1431:                                             ; preds = %1428
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__44_)
  br label %1432

1432:                                             ; preds = %1431, %1428
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #13
  br label %1433

1433:                                             ; preds = %1432
  br label %1434

1434:                                             ; preds = %1433
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1479

1435:                                             ; preds = %1417
  %1436 = load i64, ptr %141, align 8, !tbaa !9
  %1437 = mul i64 2, %1436
  %1438 = load i64, ptr %140, align 8, !tbaa !9
  %1439 = mul i64 %1437, %1438
  %1440 = load ptr, ptr %32, align 8, !tbaa !5
  %1441 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1440, i32 0, i32 13
  store i64 %1439, ptr %1441, align 8, !tbaa !52
  %1442 = load i64, ptr %140, align 8, !tbaa !9
  %1443 = load i64, ptr %70, align 8, !tbaa !9
  %1444 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL10IsAddErrorImEEbT_S1_(i64 noundef %1442, i64 noundef %1443) #13
  br i1 %1444, label %1445, label %1453

1445:                                             ; preds = %1435
  br label %1446

1446:                                             ; preds = %1445
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #13
  store i32 2, ptr %143, align 4, !tbaa !11
  %1447 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %1448 = icmp sle i32 2, %1447
  br i1 %1448, label %1449, label %1450

1449:                                             ; preds = %1446
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__45_)
  br label %1450

1450:                                             ; preds = %1449, %1446
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #13
  br label %1451

1451:                                             ; preds = %1450
  br label %1452

1452:                                             ; preds = %1451
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1479

1453:                                             ; preds = %1435
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #13
  %1454 = load i64, ptr %140, align 8, !tbaa !9
  %1455 = load i64, ptr %70, align 8, !tbaa !9
  %1456 = add i64 %1454, %1455
  store i64 %1456, ptr %144, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #13
  %1457 = load i8, ptr %120, align 1, !tbaa !22, !range !24, !noundef !25
  %1458 = trunc i8 %1457 to i1
  %1459 = load i64, ptr %107, align 8, !tbaa !9
  %1460 = call noundef i64 @_ZN14NAMESPACE_MAINL15GetTreeNodeSizeEbm(i1 noundef zeroext %1458, i64 noundef %1459)
  store i64 %1460, ptr %145, align 8, !tbaa !9
  %1461 = load i64, ptr %145, align 8, !tbaa !9
  %1462 = load i64, ptr %144, align 8, !tbaa !9
  %1463 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %1461, i64 noundef %1462) #13
  br i1 %1463, label %1464, label %1472

1464:                                             ; preds = %1453
  br label %1465

1465:                                             ; preds = %1464
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #13
  store i32 2, ptr %146, align 4, !tbaa !11
  %1466 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %1467 = icmp sle i32 2, %1466
  br i1 %1467, label %1468, label %1469

1468:                                             ; preds = %1465
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__46_)
  br label %1469

1469:                                             ; preds = %1468, %1465
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #13
  br label %1470

1470:                                             ; preds = %1469
  br label %1471

1471:                                             ; preds = %1470
  store i32 -1, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1478

1472:                                             ; preds = %1453
  %1473 = load i64, ptr %144, align 8, !tbaa !9
  %1474 = load i64, ptr %145, align 8, !tbaa !9
  %1475 = mul i64 %1473, %1474
  %1476 = load ptr, ptr %32, align 8, !tbaa !5
  %1477 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1476, i32 0, i32 14
  store i64 %1475, ptr %1477, align 8, !tbaa !53
  store i32 0, ptr %36, align 4
  br label %1478

1478:                                             ; preds = %1472, %1471
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #13
  br label %1479

1479:                                             ; preds = %1478, %1452, %1434
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #13
  br label %1480

1480:                                             ; preds = %1479, %1416, %1393
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #13
  %1481 = load i32, ptr %36, align 4
  switch i32 %1481, label %1504 [
    i32 0, label %1482
  ]

1482:                                             ; preds = %1480
  br label %1500

1483:                                             ; preds = %1363
  %1484 = load ptr, ptr %32, align 8, !tbaa !5
  %1485 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1484, i32 0, i32 13
  %1486 = load i64, ptr %1485, align 8, !tbaa !52
  %1487 = icmp eq i64 0, %1486
  br i1 %1487, label %1490, label %1488

1488:                                             ; preds = %1483
  call void @LogAssertFailure(i64 noundef 887, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.41)
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str, i32 noundef 887, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

1489:                                             ; No predecessors!
  br label %1490

1490:                                             ; preds = %1489, %1483
  %1491 = phi i1 [ true, %1483 ], [ false, %1489 ]
  %1492 = load ptr, ptr %32, align 8, !tbaa !5
  %1493 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1492, i32 0, i32 14
  %1494 = load i64, ptr %1493, align 8, !tbaa !53
  %1495 = icmp eq i64 0, %1494
  br i1 %1495, label %1498, label %1496

1496:                                             ; preds = %1490
  call void @LogAssertFailure(i64 noundef 888, ptr noundef @.str, ptr noundef @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef @.str.43)
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str, i32 noundef 888, ptr noundef @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #14
  unreachable

1497:                                             ; No predecessors!
  br label %1498

1498:                                             ; preds = %1497, %1490
  %1499 = phi i1 [ true, %1490 ], [ false, %1497 ]
  br label %1500

1500:                                             ; preds = %1498, %1482
  %1501 = load i64, ptr %135, align 8, !tbaa !9
  %1502 = load ptr, ptr %32, align 8, !tbaa !5
  %1503 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1502, i32 0, i32 12
  store i64 %1501, ptr %1503, align 8, !tbaa !54
  store i32 0, ptr %36, align 4
  br label %1504

1504:                                             ; preds = %1500, %1480, %1379
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #13
  br label %1505

1505:                                             ; preds = %1504, %1362
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #13
  br label %1506

1506:                                             ; preds = %1505, %1346, %1324
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #13
  br label %1507

1507:                                             ; preds = %1506, %1082, %1044
  call void @llvm.lifetime.end.p0(i64 1, ptr %120) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #13
  br label %1508

1508:                                             ; preds = %1507, %973
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #13
  %1509 = load i32, ptr %36, align 4
  switch i32 %1509, label %1542 [
    i32 0, label %1510
  ]

1510:                                             ; preds = %1508
  br label %1511

1511:                                             ; preds = %1510, %911
  %1512 = load i64, ptr %17, align 8, !tbaa !9
  %1513 = icmp ne i64 0, %1512
  br i1 %1513, label %1514, label %1541

1514:                                             ; preds = %1511
  %1515 = load i64, ptr %17, align 8, !tbaa !9
  %1516 = load ptr, ptr %32, align 8, !tbaa !5
  %1517 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1516, i32 0, i32 6
  %1518 = load ptr, ptr %1517, align 8, !tbaa !29
  %1519 = load i64, ptr %107, align 8, !tbaa !9
  %1520 = load ptr, ptr %32, align 8, !tbaa !5
  %1521 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1520, i32 0, i32 8
  %1522 = call noundef i32 @_ZN14NAMESPACE_MAIN11BoosterCore17InitializeTensorsEmPKPKNS_4TermEmPPPNS_6TensorE(i64 noundef %1515, ptr noundef %1518, i64 noundef %1519, ptr noundef %1521)
  store i32 %1522, ptr %31, align 4, !tbaa !11
  %1523 = load i32, ptr %31, align 4, !tbaa !11
  %1524 = icmp ne i32 0, %1523
  br i1 %1524, label %1525, label %1527

1525:                                             ; preds = %1514
  %1526 = load i32, ptr %31, align 4, !tbaa !11
  store i32 %1526, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1542

1527:                                             ; preds = %1514
  %1528 = load i64, ptr %17, align 8, !tbaa !9
  %1529 = load ptr, ptr %32, align 8, !tbaa !5
  %1530 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1529, i32 0, i32 6
  %1531 = load ptr, ptr %1530, align 8, !tbaa !29
  %1532 = load i64, ptr %107, align 8, !tbaa !9
  %1533 = load ptr, ptr %32, align 8, !tbaa !5
  %1534 = getelementptr inbounds %"class.NAMESPACE_MAIN::BoosterCore", ptr %1533, i32 0, i32 9
  %1535 = call noundef i32 @_ZN14NAMESPACE_MAIN11BoosterCore17InitializeTensorsEmPKPKNS_4TermEmPPPNS_6TensorE(i64 noundef %1528, ptr noundef %1531, i64 noundef %1532, ptr noundef %1534)
  store i32 %1535, ptr %31, align 4, !tbaa !11
  %1536 = load i32, ptr %31, align 4, !tbaa !11
  %1537 = icmp ne i32 0, %1536
  br i1 %1537, label %1538, label %1540

1538:                                             ; preds = %1527
  %1539 = load i32, ptr %31, align 4, !tbaa !11
  store i32 %1539, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1542

1540:                                             ; preds = %1527
  br label %1541

1541:                                             ; preds = %1540, %1511
  store i32 0, ptr %36, align 4
  br label %1542

1542:                                             ; preds = %1541, %1538, %1525, %1508, %948, %927, %909, %897
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #13
  br label %1543

1543:                                             ; preds = %1542, %870
  call void @llvm.lifetime.end.p0(i64 16, ptr %109) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #13
  %1544 = load i32, ptr %36, align 4
  switch i32 %1544, label %1554 [
    i32 0, label %1545
  ]

1545:                                             ; preds = %1543
  br label %1546

1546:                                             ; preds = %1545, %819, %816
  br label %1547

1547:                                             ; preds = %1546
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #13
  store i32 3, ptr %147, align 4, !tbaa !11
  %1548 = load i32, ptr @g_traceLevel, align 4, !tbaa !11
  %1549 = icmp sle i32 3, %1548
  br i1 %1549, label %1550, label %1551

1550:                                             ; preds = %1547
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__47_)
  br label %1551

1551:                                             ; preds = %1550, %1547
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #13
  br label %1552

1552:                                             ; preds = %1551
  br label %1553

1553:                                             ; preds = %1552
  store i32 0, ptr %15, align 4
  store i32 1, ptr %36, align 4
  br label %1554

1554:                                             ; preds = %1553, %1543, %815
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #13
  br label %1555

1555:                                             ; preds = %1554, %793, %462
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #13
  br label %1556

1556:                                             ; preds = %1555, %418, %310, %286, %275
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #13
  br label %1557

1557:                                             ; preds = %1556, %263, %252, %240
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #13
  br label %1558

1558:                                             ; preds = %1557, %225, %213, %205
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #13
  %1559 = load i32, ptr %15, align 4
  ret i32 %1559

1560:                                             ; preds = %214, %206
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #13
  br label %1561

1561:                                             ; preds = %1560
  %1562 = load ptr, ptr %33, align 8
  %1563 = load i32, ptr %34, align 4
  %1564 = insertvalue { ptr, i32 } poison, ptr %1562, 0
  %1565 = insertvalue { ptr, i32 } %1564, i32 %1563, 1
  resume { ptr, i32 } %1565

1566:                                             ; preds = %207, %199
  %1567 = landingpad { ptr, i32 }
          catch ptr null
  %1568 = extractvalue { ptr, i32 } %1567, 0
  call void @__clang_call_terminate(ptr %1568) #14
  unreachable
}

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14NAMESPACE_MAIN11BoosterCoreC2Ev(ptr noundef nonnull align 8 dereferenceable(520)) unnamed_addr #5 align 2

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #10

declare void @__cxa_end_catch()

declare noundef i32 @_ZN14NAMESPACE_MAIN22GetDataSetSharedHeaderEPKhPmS2_S2_S2_(ptr noundef, ptr noundef, ptr noundef, ptr 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) #5

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 dso_local void @_ZN14NAMESPACE_MAIN15FeatureBoosting10InitializeEmbbb(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) #5 align 2

; Function Attrs: nounwind
declare noundef ptr @_ZN14NAMESPACE_MAIN4Term13AllocateTermsEm(i64 noundef) #11

; Function Attrs: nounwind
declare noundef ptr @_ZN14NAMESPACE_MAIN4Term8AllocateEm(i64 noundef) #11

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14NAMESPACE_MAIN4Term21SetCountAuxillaryBinsEm(ptr noundef nonnull align 8 dereferenceable(776), i64 noundef) #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN14NAMESPACE_MAIN4Term15GetTermFeaturesEv(ptr noundef nonnull align 8 dereferenceable(776)) #5 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) #5

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14NAMESPACE_MAIN4Term22SetCountRealDimensionsEm(ptr noundef nonnull align 8 dereferenceable(776), i64 noundef) #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14NAMESPACE_MAIN4Term18SetBitsRequiredMinEi(ptr noundef nonnull align 8 dereferenceable(776), i32 noundef) #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14NAMESPACE_MAIN4Term18SetCountTensorBinsEm(ptr noundef nonnull align 8 dereferenceable(776), i64 noundef) #5 align 2

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

; Function Attrs: nounwind
declare noundef i32 @_ZN14NAMESPACE_MAIN12GetObjectiveEPK6ConfigPKciP16ObjectiveWrapperS6_(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef) #11

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK14NAMESPACE_MAIN11BoosterCore12CheckTargetsEmPKv(ptr noundef nonnull align 8 dereferenceable(520), i64 noundef, ptr noundef) #5 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN14NAMESPACE_MAINL24CheckBoosterRestrictionsEPKNS_11BoosterCoreEPK16ObjectiveWrapperm(ptr noundef, ptr noundef, i64 noundef) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @_ZL35InitializeObjectiveWrapperUnfailingP16ObjectiveWrapper(ptr noundef) #5

declare noundef i32 @_ZN14NAMESPACE_MAIN5UnbagEmPKaPmS2_(i64 noundef, ptr noundef, ptr noundef, ptr noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore9IsHessianEv(ptr noundef nonnull align 8 dereferenceable(520)) #8 align 2

declare noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl(ptr noundef nonnull align 8 dereferenceable(40), i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, ptr noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i8 noundef signext, i64 noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore6IsRmseEv(ptr noundef nonnull align 8 dereferenceable(520)) #8 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZN14NAMESPACE_MAINL6EbmMaxIiEET_S1_S1_(i32 noundef, i32 noundef) #5

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK14NAMESPACE_MAIN15DataSetBoosting15GetCountSubsetsEv(ptr noundef nonnull align 8 dereferenceable(40)) #5 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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 = { nocallback nofree nosync nounwind willreturn memory(none) }
attributes #3 = { 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 #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 = { 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 #6 = { nounwind allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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 #9 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind memory(none) }
attributes #11 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { 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 #13 = { nounwind }
attributes #14 = { noreturn nounwind }
attributes #15 = { builtin allocsize(0) }
attributes #16 = { nounwind allocsize(0) }

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

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


; 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.Config = type { i64, i32 }
%"class.NAMESPACE_MAIN::FeatureBoosting" = type <{ i64, i8, i8, i8, [5 x i8] }>
%"struct.NAMESPACE_MAIN::TermFeature" = type { ptr, i64, i64 }
%"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 [85 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage = external hidden constant [28 x i8], align 16
@__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_ = external hidden unnamed_addr constant [7 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [31 x i8], align 1
@__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_ = external hidden unnamed_addr constant [338 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [29 x i8], align 1
@_ZTISt9bad_alloc = external constant ptr
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_0 = external hidden constant [42 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_1 = external hidden constant [65 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_3 = external hidden constant [63 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_4 = external hidden constant [65 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_5 = external hidden constant [52 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_6 = external hidden constant [42 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_7 = external hidden constant [48 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_8 = external hidden constant [72 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_9 = external hidden constant [49 x i8], align 16
@.str.19 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__10_ = external hidden constant [60 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__11_ = external hidden constant [63 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__12_ = external hidden constant [81 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__13_ = external hidden constant [47 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__14_ = external hidden constant [46 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__15_ = external hidden constant [44 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__16_ = external hidden constant [45 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__17_ = external hidden constant [66 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__18_ = external hidden constant [61 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__19_ = external hidden constant [94 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__20_ = external hidden constant [45 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__21_ = external hidden constant [36 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__22_ = external hidden constant [111 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__23_ = external hidden constant [66 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__24_ = external hidden constant [75 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__25_ = external hidden constant [88 x i8], align 16
@.str.23 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [40 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__26_ = external hidden constant [66 x i8], align 16
@.str.25 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [62 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__27_ = external hidden constant [54 x i8], align 16
@.str.29 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [42 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__28_ = external hidden constant [68 x i8], align 16
@.str.35 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [24 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__29_ = external hidden constant [45 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__30_ = external hidden constant [63 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__31_ = external hidden constant [47 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__32_ = external hidden constant [46 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__33_ = external hidden constant [65 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__34_ = external hidden constant [65 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__35_ = external hidden constant [49 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__36_ = external hidden constant [42 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__37_ = external hidden constant [63 x i8], align 16
@.str.37 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [69 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__38_ = external hidden constant [81 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__39_ = external hidden constant [46 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__40_ = external hidden constant [76 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__41_ = external hidden constant [72 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__42_ = external hidden constant [95 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__43_ = external hidden constant [55 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__44_ = external hidden constant [95 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__45_ = external hidden constant [91 x i8], align 16
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__46_ = external hidden constant [75 x i8], align 16
@.str.41 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [40 x i8], align 1
@_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__47_ = external hidden constant [27 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: mustprogress uwtable
declare dso_local noundef i32 @_ZN14NAMESPACE_MAIN11BoosterCore17InitializeTensorsEmPKPKNS_4TermEmPPPNS_6TensorE(i64 noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #3 align 2

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #6

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZL29FreeObjectiveWrapperInternalsP16ObjectiveWrapper(ptr noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_(ptr noundef %0, i64 noundef %1, i64 noundef %2, ptr nocapture noundef readnone %3, ptr nocapture noundef readonly %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, i32 noundef %10, i32 noundef %11, ptr noundef %12, ptr noundef %13) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca i8, align 1
  %20 = alloca i8, align 1
  %21 = alloca i8, align 1
  %22 = alloca i8, align 1
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca %struct.Config, align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %31 = icmp sgt i32 %30, 2
  br i1 %31, label %32, label %33

32:                                               ; preds = %14
  tail call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage)
  br label %33

33:                                               ; preds = %32, %14
  %.not = icmp eq ptr %13, null
  br i1 %.not, label %34, label %35

34:                                               ; preds = %33
  tail call void @LogAssertFailure(i64 noundef 284, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.13)
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str, i32 noundef 284, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

35:                                               ; preds = %33
  %36 = load ptr, ptr %13, align 8, !tbaa !9
  %37 = icmp eq ptr %36, null
  br i1 %37, label %39, label %38

38:                                               ; preds = %35
  tail call void @LogAssertFailure(i64 noundef 285, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.15)
  tail call void @__assert_fail(ptr noundef nonnull @.str.16, ptr noundef nonnull @.str, i32 noundef 285, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

39:                                               ; preds = %35
  %.not484 = icmp eq ptr %6, null
  br i1 %.not484, label %40, label %41

40:                                               ; preds = %39
  tail call void @LogAssertFailure(i64 noundef 286, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.17)
  tail call void @__assert_fail(ptr noundef nonnull @.str.18, ptr noundef nonnull @.str, i32 noundef 286, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

41:                                               ; preds = %39
  %42 = invoke noalias noundef nonnull dereferenceable(520) ptr @_Znwm(i64 noundef 520) #14
          to label %43 unwind label %47

43:                                               ; preds = %41
  tail call void @_ZN14NAMESPACE_MAIN11BoosterCoreC2Ev(ptr noundef nonnull align 8 dereferenceable(520) %42) #15
  store ptr %42, ptr %13, align 8, !tbaa !9
  %44 = lshr i32 %10, 1
  %.lobit = and i32 %44, 1
  %45 = getelementptr inbounds i8, ptr %42, i64 16
  store i32 %.lobit, ptr %45, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #15
  %46 = call noundef i32 @_ZN14NAMESPACE_MAIN22GetDataSetSharedHeaderEPKhPmS2_S2_S2_(ptr noundef nonnull %6, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %18)
  %.not487 = icmp eq i32 %46, 0
  br i1 %.not487, label %66, label %.critedge

47:                                               ; preds = %41
  %48 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9bad_alloc
          catch ptr null
  %49 = extractvalue { ptr, i32 } %48, 0
  %50 = extractvalue { ptr, i32 } %48, 1
  %51 = tail call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9bad_alloc) #15
  %52 = icmp eq i32 %50, %51
  %53 = tail call ptr @__cxa_begin_catch(ptr %49) #15
  %54 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %55 = icmp sgt i32 %54, 1
  br i1 %52, label %56, label %58

56:                                               ; preds = %47
  br i1 %55, label %57, label %65

57:                                               ; preds = %56
  invoke void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_1)
          to label %65 unwind label %63

58:                                               ; preds = %47
  br i1 %55, label %59, label %62

59:                                               ; preds = %58
  invoke void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_0)
          to label %62 unwind label %60

60:                                               ; preds = %59
  %61 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %629 unwind label %630

62:                                               ; preds = %59, %58
  tail call void @__cxa_end_catch()
  br label %628

63:                                               ; preds = %57
  %64 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %629 unwind label %630

65:                                               ; preds = %57, %56
  tail call void @__cxa_end_catch()
  br label %628

66:                                               ; preds = %43
  %67 = load i64, ptr %15, align 8, !tbaa !19
  %68 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %67) #15
  br i1 %68, label %69, label %73

69:                                               ; preds = %66
  %70 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %71 = icmp sgt i32 %70, 0
  br i1 %71, label %72, label %.critedge

72:                                               ; preds = %69
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_3)
  br label %.critedge

73:                                               ; preds = %66
  %74 = load i64, ptr %15, align 8, !tbaa !19
  %75 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %74) #15
  br i1 %75, label %76, label %80

76:                                               ; preds = %73
  %77 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %78 = icmp sgt i32 %77, 0
  br i1 %78, label %79, label %.critedge

79:                                               ; preds = %76
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_4)
  br label %.critedge

80:                                               ; preds = %73
  %81 = load i64, ptr %15, align 8, !tbaa !19
  %82 = load i64, ptr %17, align 8, !tbaa !19
  %83 = icmp ugt i64 %82, 1
  br i1 %83, label %84, label %88

84:                                               ; preds = %80
  %85 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %86 = icmp sgt i32 %85, 1
  br i1 %86, label %87, label %.critedge

87:                                               ; preds = %84
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_5)
  br label %.critedge

88:                                               ; preds = %80
  %89 = load i64, ptr %18, align 8, !tbaa !19
  %.not488 = icmp eq i64 %89, 1
  %90 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  br i1 %.not488, label %94, label %91

91:                                               ; preds = %88
  %92 = icmp sgt i32 %90, 1
  br i1 %92, label %93, label %.critedge

93:                                               ; preds = %91
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_6)
  br label %.critedge

94:                                               ; preds = %88
  %95 = icmp sgt i32 %90, 2
  br i1 %95, label %96, label %97

96:                                               ; preds = %94
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_7)
  br label %97

97:                                               ; preds = %96, %94
  %98 = load i64, ptr %16, align 8, !tbaa !19
  %.not489 = icmp eq i64 %98, 0
  br i1 %.not489, label %.loopexit586, label %99

99:                                               ; preds = %97
  %100 = getelementptr inbounds i8, ptr %42, i64 24
  store i64 %98, ptr %100, align 8, !tbaa !20
  %101 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef 16, i64 noundef %98) #15
  br i1 %101, label %102, label %106

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

105:                                              ; preds = %102
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage_8)
  br label %.critedge

106:                                              ; preds = %99
  %107 = load i64, ptr %16, align 8, !tbaa !19
  %108 = shl i64 %107, 4
  %109 = call noalias ptr @malloc(i64 noundef %108) #16
  %110 = icmp eq ptr %109, null
  br i1 %110, label %111, label %115

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

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

115:                                              ; preds = %106
  %116 = getelementptr inbounds i8, ptr %42, i64 32
  store ptr %109, ptr %116, align 8, !tbaa !21
  %.not490 = icmp eq i64 %81, 0
  br label %117

117:                                              ; preds = %145, %115
  %.0369 = phi i64 [ 0, %115 ], [ %153, %145 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #15
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #15
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #15
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #15
  %118 = call noundef ptr @_ZN14NAMESPACE_MAIN23GetDataSetSharedFeatureEPKhmPbS2_S2_S2_PmS3_S3_(ptr noundef nonnull %6, i64 noundef %.0369, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %25)
  %119 = load i8, ptr %22, align 1, !tbaa !22, !range !24, !noundef !25
  %120 = trunc nuw i8 %119 to i1
  br i1 %120, label %121, label %122

121:                                              ; preds = %117
  call void @LogAssertFailure(i64 noundef 391, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.19)
  call void @__assert_fail(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str, i32 noundef 391, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

122:                                              ; preds = %117
  %123 = load i64, ptr %23, align 8, !tbaa !19
  %124 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %123) #15
  br i1 %124, label %125, label %128

125:                                              ; preds = %122
  %126 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %127 = icmp sgt i32 %126, 0
  br i1 %127, label %.thread.sink.split, label %.thread

128:                                              ; preds = %122
  %129 = load i64, ptr %23, align 8, !tbaa !19
  %130 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImmEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuentsr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %129) #15
  br i1 %130, label %131, label %134

131:                                              ; preds = %128
  %132 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %133 = icmp sgt i32 %132, 0
  br i1 %133, label %.thread.sink.split, label %.thread

134:                                              ; preds = %128
  %135 = load i64, ptr %23, align 8, !tbaa !19
  switch i64 %135, label %145 [
    i64 0, label %136
    i64 1, label %142
  ]

136:                                              ; preds = %134
  %137 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  br i1 %.not490, label %140, label %138

138:                                              ; preds = %136
  %139 = icmp sgt i32 %137, 0
  br i1 %139, label %.thread.sink.split, label %.thread

140:                                              ; preds = %136
  %141 = icmp sgt i32 %137, 2
  br i1 %141, label %.sink.split, label %145

142:                                              ; preds = %134
  %143 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %144 = icmp sgt i32 %143, 2
  br i1 %144, label %.sink.split, label %145

.thread.sink.split:                               ; preds = %138, %131, %125
  %_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__10_.sink = phi ptr [ @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__10_, %125 ], [ @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__11_, %131 ], [ @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__12_, %138 ]
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef nonnull %_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__10_.sink)
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %125, %131, %138
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #15
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #15
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #15
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #15
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #15
  br label %.critedge

.sink.split:                                      ; preds = %142, %140
  %_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__14_.sink = phi ptr [ @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__13_, %140 ], [ @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__14_, %142 ]
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull %_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__14_.sink)
  br label %145

145:                                              ; preds = %.sink.split, %142, %134, %140
  %146 = getelementptr inbounds %"class.NAMESPACE_MAIN::FeatureBoosting", ptr %109, i64 %.0369
  %147 = load i8, ptr %19, align 1, !tbaa !22, !range !24, !noundef !25
  %148 = trunc nuw i8 %147 to i1
  %149 = load i8, ptr %20, align 1, !tbaa !22, !range !24, !noundef !25
  %150 = trunc nuw i8 %149 to i1
  %151 = load i8, ptr %21, align 1, !tbaa !22, !range !24, !noundef !25
  %152 = trunc nuw i8 %151 to i1
  call void @_ZN14NAMESPACE_MAIN15FeatureBoosting10InitializeEmbbb(ptr noundef nonnull align 8 dereferenceable(16) %146, i64 noundef %135, i1 noundef zeroext %148, i1 noundef zeroext %150, i1 noundef zeroext %152) #15
  %153 = add i64 %.0369, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #15
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #15
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #15
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #15
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #15
  %154 = load i64, ptr %16, align 8, !tbaa !19
  %.not491 = icmp eq i64 %154, %153
  br i1 %.not491, label %.loopexit586, label %117, !llvm.loop !26

.loopexit586:                                     ; preds = %145, %97
  %155 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %156 = icmp sgt i32 %155, 2
  br i1 %156, label %157, label %.thread525

157:                                              ; preds = %.loopexit586
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__15_)
  %.pr = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %158 = icmp sgt i32 %.pr, 2
  br i1 %158, label %159, label %.thread525

159:                                              ; preds = %157
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__16_)
  br label %.thread525

.thread525:                                       ; preds = %.loopexit586, %159, %157
  %.not492 = icmp eq i64 %1, 0
  br i1 %.not492, label %.loopexit585, label %160

160:                                              ; preds = %.thread525
  %161 = getelementptr inbounds i8, ptr %42, i64 40
  store i64 %1, ptr %161, align 8, !tbaa !28
  %162 = call noundef ptr @_ZN14NAMESPACE_MAIN4Term13AllocateTermsEm(i64 noundef %1) #15
  %163 = getelementptr inbounds i8, ptr %42, i64 48
  store ptr %162, ptr %163, align 8, !tbaa !29
  %164 = icmp eq ptr %162, null
  br i1 %164, label %166, label %.preheader, !prof !30

.preheader:                                       ; preds = %160
  %165 = getelementptr inbounds i8, ptr %42, i64 32
  br label %170

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

169:                                              ; preds = %166
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__17_)
  br label %.critedge

170:                                              ; preds = %.preheader, %293
  %.0405 = phi i64 [ %294, %293 ], [ 0, %.preheader ]
  %.0396 = phi ptr [ %.5401, %293 ], [ %5, %.preheader ]
  %.0387 = phi i64 [ %.4391, %293 ], [ 0, %.preheader ]
  %.0379 = phi i64 [ %.3382, %293 ], [ 1, %.preheader ]
  %.0372 = phi i64 [ %.2374, %293 ], [ 1, %.preheader ]
  %171 = getelementptr inbounds i64, ptr %4, i64 %.0405
  %172 = load i64, ptr %171, align 8, !tbaa !19
  %173 = icmp slt i64 %172, 0
  br i1 %173, label %174, label %178

174:                                              ; preds = %170
  %175 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %176 = icmp sgt i32 %175, 0
  br i1 %176, label %177, label %.critedge

177:                                              ; preds = %174
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__18_)
  br label %.critedge

178:                                              ; preds = %170
  %179 = icmp ugt i64 %172, 30
  br i1 %179, label %180, label %184

180:                                              ; preds = %178
  %181 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %182 = icmp sgt i32 %181, 1
  br i1 %182, label %183, label %.critedge

183:                                              ; preds = %180
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__19_)
  br label %.critedge

184:                                              ; preds = %178
  %185 = call noundef ptr @_ZN14NAMESPACE_MAIN4Term8AllocateEm(i64 noundef %172) #15
  %186 = icmp eq ptr %185, null
  br i1 %186, label %187, label %191

187:                                              ; preds = %184
  %188 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %189 = icmp sgt i32 %188, 1
  br i1 %189, label %190, label %.critedge

190:                                              ; preds = %187
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__20_)
  br label %.critedge

191:                                              ; preds = %184
  %192 = load ptr, ptr %163, align 8, !tbaa !29
  %193 = getelementptr inbounds ptr, ptr %192, i64 %.0405
  store ptr %185, ptr %193, align 8, !tbaa !9
  call void @_ZN14NAMESPACE_MAIN4Term21SetCountAuxillaryBinsEm(ptr noundef nonnull align 8 dereferenceable(776) %185, i64 noundef 0) #15
  %194 = icmp eq i64 %172, 0
  br i1 %194, label %195, label %199, !prof !30

195:                                              ; preds = %191
  %196 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %197 = icmp sgt i32 %196, 2
  br i1 %197, label %198, label %293

198:                                              ; preds = %195
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__21_)
  br label %293

199:                                              ; preds = %191
  %200 = icmp eq ptr %.0396, null
  br i1 %200, label %201, label %205

201:                                              ; preds = %199
  %202 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %203 = icmp sgt i32 %202, 0
  br i1 %203, label %204, label %.critedge

204:                                              ; preds = %201
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__22_)
  br label %.critedge

205:                                              ; preds = %199
  %206 = call noundef ptr @_ZN14NAMESPACE_MAIN4Term15GetTermFeaturesEv(ptr noundef nonnull align 8 dereferenceable(776) %185) #15
  %207 = getelementptr inbounds %"struct.NAMESPACE_MAIN::TermFeature", ptr %206, i64 %172
  br label %208

208:                                              ; preds = %261, %205
  %.0442.in = phi i64 [ %172, %205 ], [ %.0442, %261 ]
  %.0437 = phi ptr [ %206, %205 ], [ %263, %261 ]
  %.0431 = phi i64 [ 0, %205 ], [ %.1432, %261 ]
  %.0426 = phi i64 [ 1, %205 ], [ %258, %261 ]
  %.0416 = phi i64 [ 0, %205 ], [ %.1417, %261 ]
  %.0409 = phi i64 [ 0, %205 ], [ %257, %261 ]
  %.1397 = phi ptr [ %.0396, %205 ], [ %262, %261 ]
  %.0442 = add i64 %.0442.in, -1
  %209 = load i64, ptr %.1397, align 8, !tbaa !19
  %210 = icmp slt i64 %209, 0
  br i1 %210, label %211, label %215

211:                                              ; preds = %208
  %212 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %213 = icmp sgt i32 %212, 0
  br i1 %213, label %214, label %.critedge

214:                                              ; preds = %211
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__23_)
  br label %.critedge

215:                                              ; preds = %208
  %216 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL14IsConvertErrorImlEENSt9enable_ifIXaaaantsr3std9is_signedIT_EE5valuesr3std9is_signedIT0_EE5valueleclsr3std14numeric_limitsIS3_EE3maxEclsr3std14numeric_limitsIS2_EE3maxEEbE4typeES3_(i64 noundef %209) #15
  br i1 %216, label %217, label %221

217:                                              ; preds = %215
  %218 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %219 = icmp sgt i32 %218, 0
  br i1 %219, label %220, label %.critedge

220:                                              ; preds = %217
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__24_)
  br label %.critedge

221:                                              ; preds = %215
  %222 = load i64, ptr %16, align 8, !tbaa !19
  %.not493 = icmp ugt i64 %222, %209
  br i1 %.not493, label %227, label %223

223:                                              ; preds = %221
  %224 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %225 = icmp sgt i32 %224, 0
  br i1 %225, label %226, label %.critedge

226:                                              ; preds = %223
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__25_)
  br label %.critedge

227:                                              ; preds = %221
  %228 = load ptr, ptr %165, align 8, !tbaa !21
  %.not494 = icmp eq ptr %228, null
  br i1 %.not494, label %229, label %230

229:                                              ; preds = %227
  call void @LogAssertFailure(i64 noundef 501, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.23)
  call void @__assert_fail(ptr noundef nonnull @.str.24, ptr noundef nonnull @.str, i32 noundef 501, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

230:                                              ; preds = %227
  call void @_ZL17StopClangAnalysisv() #15
  %231 = load ptr, ptr %165, align 8, !tbaa !21
  %232 = getelementptr inbounds %"class.NAMESPACE_MAIN::FeatureBoosting", ptr %231, i64 %209
  store ptr %232, ptr %.0437, align 8, !tbaa !31
  %233 = getelementptr inbounds i8, ptr %.0437, i64 8
  store i64 %.0426, ptr %233, align 8, !tbaa !33
  %234 = getelementptr inbounds i8, ptr %.0437, i64 16
  store i64 %.0442, ptr %234, align 8, !tbaa !34
  %235 = call noundef i64 @_ZNK14NAMESPACE_MAIN15FeatureBoosting12GetCountBinsEv(ptr noundef nonnull align 8 dereferenceable(16) %232) #15
  %236 = icmp ugt i64 %235, 1
  br i1 %236, label %237, label %252, !prof !35

237:                                              ; preds = %230
  %238 = add i64 %.0416, 1
  %239 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %.0426, i64 noundef %235) #15
  br i1 %239, label %240, label %244

240:                                              ; preds = %237
  %241 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %242 = icmp sgt i32 %241, 1
  br i1 %242, label %243, label %.critedge

243:                                              ; preds = %240
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__26_)
  br label %.critedge

244:                                              ; preds = %237
  %245 = add i64 %.0426, -1
  %or.cond515.not = icmp ult i64 %245, %.0409
  br i1 %or.cond515.not, label %246, label %247

246:                                              ; preds = %244
  call void @LogAssertFailure(i64 noundef 527, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.25)
  call void @__assert_fail(ptr noundef nonnull @.str.26, ptr noundef nonnull @.str, i32 noundef 527, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

247:                                              ; preds = %244
  %248 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL10IsAddErrorImEEbT_S1_(i64 noundef %.0409, i64 noundef %.0426) #15
  br i1 %248, label %249, label %250

249:                                              ; preds = %247
  call void @LogAssertFailure(i64 noundef 531, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.27)
  call void @__assert_fail(ptr noundef nonnull @.str.28, ptr noundef nonnull @.str, i32 noundef 531, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

250:                                              ; preds = %247
  %251 = add i64 %.0409, %.0426
  br label %256

252:                                              ; preds = %230
  %253 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %254 = icmp sgt i32 %253, 2
  br i1 %254, label %255, label %256

255:                                              ; preds = %252
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__27_)
  br label %256

256:                                              ; preds = %252, %255, %250
  %.1432 = phi i64 [ %235, %250 ], [ %.0431, %255 ], [ %.0431, %252 ]
  %.1417 = phi i64 [ %238, %250 ], [ %.0416, %255 ], [ %.0416, %252 ]
  %.1410 = phi i64 [ %251, %250 ], [ %.0409, %255 ], [ %.0409, %252 ]
  %257 = freeze i64 %.1410
  %258 = mul i64 %235, %.0426
  %259 = add i64 %258, -1
  %or.cond516.not = icmp ult i64 %259, %257
  br i1 %or.cond516.not, label %260, label %261

260:                                              ; preds = %256
  call void @LogAssertFailure(i64 noundef 539, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.25)
  call void @__assert_fail(ptr noundef nonnull @.str.26, ptr noundef nonnull @.str, i32 noundef 539, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

261:                                              ; preds = %256
  %262 = getelementptr inbounds i8, ptr %.1397, i64 8
  %263 = getelementptr inbounds i8, ptr %.0437, i64 24
  %.not495 = icmp eq ptr %207, %263
  br i1 %.not495, label %264, label %208, !llvm.loop !36

264:                                              ; preds = %261
  %265 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %.0372, i64 noundef %258) #15
  %266 = icmp ugt i64 %258, 1
  %.not496 = icmp eq i64 %.1417, 0
  br i1 %266, label %267, label %289, !prof !35

267:                                              ; preds = %264
  br i1 %.not496, label %268, label %269

268:                                              ; preds = %267
  call void @LogAssertFailure(i64 noundef 549, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.29)
  call void @__assert_fail(ptr noundef nonnull @.str.30, ptr noundef nonnull @.str, i32 noundef 549, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

269:                                              ; preds = %267
  %270 = call noundef i32 @_ZN14NAMESPACE_MAINL17CountBitsRequiredImEEiT_(i64 noundef %259) #15
  %271 = icmp sgt i32 %270, 0
  br i1 %271, label %273, label %272

272:                                              ; preds = %269
  call void @LogAssertFailure(i64 noundef 552, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.31)
  call void @__assert_fail(ptr noundef nonnull @.str.32, ptr noundef nonnull @.str, i32 noundef 552, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

273:                                              ; preds = %269
  %274 = icmp ult i32 %270, 65
  br i1 %274, label %276, label %275

275:                                              ; preds = %273
  call void @LogAssertFailure(i64 noundef 553, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.33)
  call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str, i32 noundef 553, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

276:                                              ; preds = %273
  %277 = icmp eq i64 %.1417, 1
  br i1 %277, label %278, label %280

278:                                              ; preds = %276
  %279 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %.0387, i64 noundef %.1432) #15
  br label %291

280:                                              ; preds = %276
  %281 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %257, i64 noundef 24) #15
  call void @_ZN14NAMESPACE_MAIN4Term21SetCountAuxillaryBinsEm(ptr noundef nonnull align 8 dereferenceable(776) %185, i64 noundef %281) #15
  %282 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL10IsAddErrorImEEbT_S1_(i64 noundef %258, i64 noundef %281) #15
  br i1 %282, label %283, label %287

283:                                              ; preds = %280
  %284 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %285 = icmp sgt i32 %284, 1
  br i1 %285, label %286, label %.critedge

286:                                              ; preds = %283
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__28_)
  br label %.critedge

287:                                              ; preds = %280
  %288 = add i64 %281, %258
  br label %291

289:                                              ; preds = %264
  br i1 %.not496, label %291, label %290

290:                                              ; preds = %289
  call void @LogAssertFailure(i64 noundef 574, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.35)
  call void @__assert_fail(ptr noundef nonnull @.str.36, ptr noundef nonnull @.str, i32 noundef 574, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

291:                                              ; preds = %278, %289, %287
  %.1448 = phi i64 [ %258, %278 ], [ %288, %287 ], [ %258, %289 ]
  %.0422 = phi i32 [ %270, %278 ], [ %270, %287 ], [ 0, %289 ]
  %.1388 = phi i64 [ %279, %278 ], [ %.0387, %287 ], [ %.0387, %289 ]
  %292 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %.0379, i64 noundef %.1448) #15
  br label %293

293:                                              ; preds = %291, %195, %198
  %.4430 = phi i64 [ %258, %291 ], [ 1, %198 ], [ 1, %195 ]
  %.3425 = phi i32 [ %.0422, %291 ], [ 0, %198 ], [ 0, %195 ]
  %.5421 = phi i64 [ %.1417, %291 ], [ 0, %198 ], [ 0, %195 ]
  %.5401 = phi ptr [ %262, %291 ], [ %.0396, %198 ], [ %.0396, %195 ]
  %.4391 = phi i64 [ %.1388, %291 ], [ %.0387, %198 ], [ %.0387, %195 ]
  %.3382 = phi i64 [ %292, %291 ], [ %.0379, %198 ], [ %.0379, %195 ]
  %.2374 = phi i64 [ %265, %291 ], [ %.0372, %198 ], [ %.0372, %195 ]
  call void @_ZN14NAMESPACE_MAIN4Term22SetCountRealDimensionsEm(ptr noundef nonnull align 8 dereferenceable(776) %185, i64 noundef %.5421) #15
  call void @_ZN14NAMESPACE_MAIN4Term18SetBitsRequiredMinEi(ptr noundef nonnull align 8 dereferenceable(776) %185, i32 noundef %.3425) #15
  call void @_ZN14NAMESPACE_MAIN4Term18SetCountTensorBinsEm(ptr noundef nonnull align 8 dereferenceable(776) %185, i64 noundef %.4430) #15
  %294 = add nuw i64 %.0405, 1
  %exitcond.not = icmp eq i64 %294, %1
  br i1 %exitcond.not, label %.loopexit585, label %170, !llvm.loop !37

.loopexit585:                                     ; preds = %293, %.thread525
  %.8395 = phi i64 [ 0, %.thread525 ], [ %.4391, %293 ]
  %.7386 = phi i64 [ 1, %.thread525 ], [ %.3382, %293 ]
  %.6378 = phi i64 [ 1, %.thread525 ], [ %.2374, %293 ]
  %295 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %296 = icmp sgt i32 %295, 2
  br i1 %296, label %297, label %298

297:                                              ; preds = %.loopexit585
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__29_)
  br label %298

298:                                              ; preds = %297, %.loopexit585
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #15
  %299 = call noundef ptr @_ZN14NAMESPACE_MAIN22GetDataSetSharedTargetEPKhmPl(ptr noundef nonnull %6, i64 noundef 0, ptr noundef nonnull %26)
  %300 = icmp eq ptr %299, null
  br i1 %300, label %301, label %305

301:                                              ; preds = %298
  %302 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %303 = icmp sgt i32 %302, 1
  br i1 %303, label %304, label %627

304:                                              ; preds = %301
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__30_)
  br label %627

305:                                              ; preds = %298
  %306 = load i64, ptr %26, align 8
  %or.cond = icmp ugt i64 %306, 1
  br i1 %or.cond, label %307, label %623

307:                                              ; preds = %305
  %308 = and i32 %10, 4
  %.not497 = icmp eq i32 %308, 0
  br i1 %.not497, label %311, label %309

309:                                              ; preds = %307
  %310 = call i64 @llvm.smax.i64(i64 %306, i64 1)
  br label %314

311:                                              ; preds = %307
  %312 = icmp slt i64 %306, 3
  %313 = select i1 %312, i64 1, i64 %306
  br label %314

314:                                              ; preds = %311, %309
  %.0458 = phi i64 [ %310, %309 ], [ %313, %311 ]
  %315 = getelementptr inbounds i8, ptr %42, i64 8
  store i64 %.0458, ptr %315, align 8, !tbaa !38
  %316 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %317 = icmp sgt i32 %316, 2
  br i1 %317, label %318, label %319

318:                                              ; preds = %314
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__31_)
  br label %319

319:                                              ; preds = %318, %314
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #15
  store i64 %.0458, ptr %27, align 8, !tbaa !39
  %320 = and i32 %10, 1
  %321 = getelementptr inbounds i8, ptr %27, i64 8
  store i32 %320, ptr %321, align 8, !tbaa !41
  %322 = getelementptr inbounds i8, ptr %42, i64 200
  %323 = getelementptr inbounds i8, ptr %42, i64 360
  %324 = call noundef i32 @_ZN14NAMESPACE_MAIN12GetObjectiveEPK6ConfigPKciP16ObjectiveWrapperS6_(ptr noundef nonnull %27, ptr noundef %12, i32 noundef %11, ptr noundef nonnull %322, ptr noundef nonnull %323) #15
  %.not499 = icmp eq i32 %324, 0
  br i1 %.not499, label %325, label %.thread581

325:                                              ; preds = %319
  %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_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__32_)
  br label %329

329:                                              ; preds = %328, %325
  %330 = getelementptr inbounds i8, ptr %42, i64 240
  %331 = load i32, ptr %330, align 8, !tbaa !42
  %332 = call noundef i64 @_ZN14NAMESPACE_MAINL12IdentifyTaskEi(i32 noundef %331) #15
  %333 = load i64, ptr %26, align 8, !tbaa !19
  %334 = icmp sgt i64 %333, -1
  br i1 %334, label %335, label %341

335:                                              ; preds = %329
  %336 = icmp slt i64 %332, 0
  br i1 %336, label %337, label %346

337:                                              ; preds = %335
  %338 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %339 = icmp sgt i32 %338, 0
  br i1 %339, label %340, label %.thread581

340:                                              ; preds = %337
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__33_)
  br label %.thread581

341:                                              ; preds = %329
  %.not500 = icmp eq i64 %332, -2
  br i1 %.not500, label %346, label %342

342:                                              ; preds = %341
  %343 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %344 = icmp sgt i32 %343, 0
  br i1 %344, label %345, label %.thread581

345:                                              ; preds = %342
  call void @InteralLogWithoutArguments(i32 noundef 1, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__34_)
  br label %.thread581

346:                                              ; preds = %341, %335
  %.not501 = icmp eq i64 %81, 0
  br i1 %.not501, label %612, label %347

347:                                              ; preds = %346
  %348 = call noundef i32 @_ZNK14NAMESPACE_MAIN11BoosterCore12CheckTargetsEmPKv(ptr noundef nonnull align 8 dereferenceable(520) %42, i64 noundef %81, ptr noundef nonnull %299) #15
  %.not502 = icmp eq i32 %348, 0
  %349 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  br i1 %.not502, label %353, label %350

350:                                              ; preds = %347
  %351 = icmp sgt i32 %349, 1
  br i1 %351, label %352, label %.thread581

352:                                              ; preds = %350
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__35_)
  br label %.thread581

353:                                              ; preds = %347
  %354 = icmp sgt i32 %349, 2
  br i1 %354, label %355, label %356

355:                                              ; preds = %353
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__36_)
  br label %356

356:                                              ; preds = %355, %353
  %357 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL24CheckBoosterRestrictionsEPKNS_11BoosterCoreEPK16ObjectiveWrapperm(ptr noundef nonnull %42, ptr noundef nonnull %322, i64 noundef %.6378)
  br i1 %357, label %358, label %362

358:                                              ; preds = %356
  %359 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %360 = icmp sgt i32 %359, 1
  br i1 %360, label %361, label %.thread581

361:                                              ; preds = %358
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__37_)
  br label %.thread581

362:                                              ; preds = %356
  %363 = getelementptr inbounds i8, ptr %42, i64 496
  %364 = load i64, ptr %363, align 8, !tbaa !43
  %.not503 = icmp eq i64 %364, 0
  br i1 %.not503, label %368, label %365

365:                                              ; preds = %362
  %366 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL24CheckBoosterRestrictionsEPKNS_11BoosterCoreEPK16ObjectiveWrapperm(ptr noundef nonnull %42, ptr noundef nonnull %323, i64 noundef %.6378)
  br i1 %366, label %367, label %368

367:                                              ; preds = %365
  call void @_ZL29FreeObjectiveWrapperInternalsP16ObjectiveWrapper(ptr noundef nonnull %323)
  call void @_ZL35InitializeObjectiveWrapperUnfailingP16ObjectiveWrapper(ptr noundef nonnull %323)
  br label %368

368:                                              ; preds = %365, %367, %362
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #15
  %369 = call noundef i32 @_ZN14NAMESPACE_MAIN5UnbagEmPKaPmS2_(i64 noundef %81, ptr noundef %8, ptr noundef nonnull %28, ptr noundef nonnull %29)
  %.not504 = icmp eq i32 %369, 0
  br i1 %.not504, label %370, label %.thread577

370:                                              ; preds = %368
  %371 = getelementptr inbounds i8, ptr %42, i64 336
  %372 = load i64, ptr %371, align 8, !tbaa !44
  %373 = icmp eq i64 %372, 4
  br i1 %373, label %385, label %374

374:                                              ; preds = %370
  %375 = getelementptr inbounds i8, ptr %42, i64 328
  %376 = load i64, ptr %375, align 8, !tbaa !45
  %377 = icmp eq i64 %376, 4
  br i1 %377, label %385, label %378

378:                                              ; preds = %374
  %379 = load i64, ptr %363, align 8, !tbaa !43
  %380 = icmp eq i64 %379, 4
  br i1 %380, label %385, label %381

381:                                              ; preds = %378
  %382 = getelementptr inbounds i8, ptr %42, i64 488
  %383 = load i64, ptr %382, align 8, !tbaa !46
  %384 = icmp eq i64 %383, 4
  br label %385

385:                                              ; preds = %381, %378, %374, %370
  %386 = phi i1 [ true, %378 ], [ true, %374 ], [ true, %370 ], [ %384, %381 ]
  %387 = call noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore9IsHessianEv(ptr noundef nonnull align 8 dereferenceable(520) %42)
  %388 = getelementptr inbounds i8, ptr %42, i64 56
  store i64 %2, ptr %388, align 8, !tbaa !47
  %389 = getelementptr inbounds i8, ptr %42, i64 120
  %390 = call noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore6IsRmseEv(ptr noundef nonnull align 8 dereferenceable(520) %42)
  %391 = xor i1 %390, true
  %392 = call noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore6IsRmseEv(ptr noundef nonnull align 8 dereferenceable(520) %42)
  %393 = xor i1 %392, true
  %cond.fr = freeze i1 %386
  %spec.select = select i1 %cond.fr, i64 131072, i64 -1
  %394 = load i64, ptr %28, align 8, !tbaa !19
  %395 = load i64, ptr %17, align 8, !tbaa !19
  %396 = getelementptr inbounds i8, ptr %42, i64 48
  %397 = load ptr, ptr %396, align 8, !tbaa !29
  %398 = call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl(ptr noundef nonnull align 8 dereferenceable(40) %389, i1 noundef zeroext true, i1 noundef zeroext %387, i1 noundef zeroext %391, i1 noundef zeroext %393, i1 noundef zeroext true, ptr noundef %0, i64 noundef %.0458, i64 noundef %spec.select, ptr noundef nonnull %322, ptr noundef nonnull %323, ptr noundef nonnull %6, ptr noundef %7, i8 noundef signext 1, i64 noundef %81, ptr noundef %8, ptr noundef %9, i64 noundef %394, i64 noundef %2, i64 noundef %395, i64 noundef %1, ptr noundef %397, ptr noundef %5)
  %.not505 = icmp eq i32 %398, 0
  br i1 %.not505, label %399, label %.thread577

399:                                              ; preds = %385
  %400 = getelementptr inbounds i8, ptr %42, i64 160
  %401 = call noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore6IsRmseEv(ptr noundef nonnull align 8 dereferenceable(520) %42)
  %402 = call noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore6IsRmseEv(ptr noundef nonnull align 8 dereferenceable(520) %42)
  %403 = xor i1 %402, true
  %404 = call noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore6IsRmseEv(ptr noundef nonnull align 8 dereferenceable(520) %42)
  %405 = xor i1 %404, true
  %406 = load i64, ptr %29, align 8, !tbaa !19
  %407 = load i64, ptr %17, align 8, !tbaa !19
  %408 = load ptr, ptr %396, align 8, !tbaa !29
  %409 = call noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl(ptr noundef nonnull align 8 dereferenceable(40) %400, i1 noundef zeroext %401, i1 noundef zeroext false, i1 noundef zeroext %403, i1 noundef zeroext %405, i1 noundef zeroext false, ptr noundef %0, i64 noundef %.0458, i64 noundef %spec.select, ptr noundef nonnull %322, ptr noundef nonnull %323, ptr noundef nonnull %6, ptr noundef %7, i8 noundef signext -1, i64 noundef %81, ptr noundef %8, ptr noundef %9, i64 noundef %406, i64 noundef 0, i64 noundef %407, i64 noundef %1, ptr noundef %408, ptr noundef %5)
  %.not506 = icmp eq i32 %409, 0
  br i1 %.not506, label %410, label %.thread577

410:                                              ; preds = %399
  %411 = icmp eq i64 %.0458, 1
  br i1 %387, label %412, label %416

412:                                              ; preds = %410
  br i1 %411, label %413, label %417

413:                                              ; preds = %412
  %414 = call noundef i32 @_ZN14NAMESPACE_MAINL6EbmMaxIiEET_S1_S1_(i32 noundef 32768, i32 noundef 1024) #15
  %415 = sext i32 %414 to i64
  br label %417

416:                                              ; preds = %410
  %. = select i1 %411, i64 1024, i64 0
  br label %417

417:                                              ; preds = %416, %412, %413
  %.0453 = phi i64 [ %415, %413 ], [ 1024, %412 ], [ %., %416 ]
  %418 = load i64, ptr %28, align 8, !tbaa !19
  %.not507 = icmp eq i64 %418, 0
  br i1 %.not507, label %.loopexit584, label %419

419:                                              ; preds = %417
  %420 = call noundef ptr @_ZN14NAMESPACE_MAIN11BoosterCore14GetTrainingSetEv(ptr noundef nonnull align 8 dereferenceable(520) %42)
  %421 = call noundef ptr @_ZN14NAMESPACE_MAIN15DataSetBoosting10GetSubsetsEv(ptr noundef nonnull align 8 dereferenceable(40) %420)
  %422 = call noundef ptr @_ZN14NAMESPACE_MAIN11BoosterCore14GetTrainingSetEv(ptr noundef nonnull align 8 dereferenceable(520) %42)
  %423 = call noundef i64 @_ZNK14NAMESPACE_MAIN15DataSetBoosting15GetCountSubsetsEv(ptr noundef nonnull align 8 dereferenceable(40) %422)
  %424 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %421, i64 %423
  br label %425

425:                                              ; preds = %483, %419
  %.0454 = phi i64 [ 0, %419 ], [ %466, %483 ]
  %.0450 = phi i64 [ 0, %419 ], [ %.1451, %483 ]
  %.0449 = phi ptr [ %421, %419 ], [ %484, %483 ]
  %426 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0449)
  %427 = getelementptr inbounds i8, ptr %426, i64 136
  %428 = load i64, ptr %427, align 8, !tbaa !48
  %429 = icmp eq i64 %428, 8
  %430 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0449)
  br i1 %429, label %431, label %445

431:                                              ; preds = %425
  %432 = getelementptr inbounds i8, ptr %430, i64 128
  %433 = load i64, ptr %432, align 8, !tbaa !49
  %434 = icmp eq i64 %433, 8
  br i1 %434, label %435, label %437

435:                                              ; preds = %431
  %436 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIdmEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %387, i64 noundef %.0458)
  br label %465

437:                                              ; preds = %431
  %438 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0449)
  %439 = getelementptr inbounds i8, ptr %438, i64 128
  %440 = load i64, ptr %439, align 8, !tbaa !49
  %441 = icmp eq i64 %440, 4
  br i1 %441, label %443, label %442

442:                                              ; preds = %437
  call void @LogAssertFailure(i64 noundef 750, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.37)
  call void @__assert_fail(ptr noundef nonnull @.str.38, ptr noundef nonnull @.str, i32 noundef 750, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

443:                                              ; preds = %437
  %444 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIfmEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %387, i64 noundef %.0458)
  br label %465

445:                                              ; preds = %425
  %446 = getelementptr inbounds i8, ptr %430, i64 136
  %447 = load i64, ptr %446, align 8, !tbaa !48
  %448 = icmp eq i64 %447, 4
  br i1 %448, label %450, label %449

449:                                              ; preds = %445
  call void @LogAssertFailure(i64 noundef 754, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.39)
  call void @__assert_fail(ptr noundef nonnull @.str.40, ptr noundef nonnull @.str, i32 noundef 754, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

450:                                              ; preds = %445
  %451 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0449)
  %452 = getelementptr inbounds i8, ptr %451, i64 128
  %453 = load i64, ptr %452, align 8, !tbaa !49
  %454 = icmp eq i64 %453, 8
  br i1 %454, label %455, label %457

455:                                              ; preds = %450
  %456 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIdjEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %387, i64 noundef %.0458)
  br label %465

457:                                              ; preds = %450
  %458 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0449)
  %459 = getelementptr inbounds i8, ptr %458, i64 128
  %460 = load i64, ptr %459, align 8, !tbaa !49
  %461 = icmp eq i64 %460, 4
  br i1 %461, label %463, label %462

462:                                              ; preds = %457
  call void @LogAssertFailure(i64 noundef 758, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.37)
  call void @__assert_fail(ptr noundef nonnull @.str.38, ptr noundef nonnull @.str, i32 noundef 758, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

463:                                              ; preds = %457
  %464 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIfjEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %387, i64 noundef %.0458)
  br label %465

465:                                              ; preds = %455, %463, %435, %443
  %.0446 = phi i64 [ %436, %435 ], [ %444, %443 ], [ %456, %455 ], [ %464, %463 ]
  %466 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %.0454, i64 noundef %.0446) #15
  %467 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0449)
  %468 = getelementptr inbounds i8, ptr %467, i64 120
  %469 = load i64, ptr %468, align 8, !tbaa !50
  %.not508 = icmp eq i64 %469, 1
  br i1 %.not508, label %483, label %470

470:                                              ; preds = %465
  %471 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0449)
  %472 = getelementptr inbounds i8, ptr %471, i64 120
  %473 = load i64, ptr %472, align 8, !tbaa !50
  %474 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImJmEEEbT_S1_DpKT0_(i64 noundef %.0446, i64 noundef %.6378, i64 noundef %473) #15
  br i1 %474, label %483, label %475

475:                                              ; preds = %470
  %476 = mul i64 %.0446, %.6378
  %477 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0449)
  %478 = getelementptr inbounds i8, ptr %477, i64 120
  %479 = load i64, ptr %478, align 8, !tbaa !50
  %480 = mul i64 %476, %479
  %481 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMinImEET_S1_S1_(i64 noundef %480, i64 noundef %.0453) #15
  %482 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %.0450, i64 noundef %481) #15
  br label %483

483:                                              ; preds = %470, %475, %465
  %.1451 = phi i64 [ %482, %475 ], [ %.0450, %465 ], [ %.0453, %470 ]
  %484 = getelementptr inbounds i8, ptr %.0449, i64 56
  %.not509 = icmp eq ptr %424, %484
  br i1 %.not509, label %.loopexit584, label %425, !llvm.loop !51

.loopexit584:                                     ; preds = %483, %417
  %.1455 = phi i64 [ 0, %417 ], [ %466, %483 ]
  %.2452 = phi i64 [ 0, %417 ], [ %.1451, %483 ]
  %485 = load i64, ptr %29, align 8, !tbaa !19
  %.not510 = icmp eq i64 %485, 0
  br i1 %.not510, label %.loopexit, label %486

486:                                              ; preds = %.loopexit584
  %487 = call noundef ptr @_ZN14NAMESPACE_MAIN11BoosterCore16GetValidationSetEv(ptr noundef nonnull align 8 dereferenceable(520) %42)
  %488 = call noundef ptr @_ZN14NAMESPACE_MAIN15DataSetBoosting10GetSubsetsEv(ptr noundef nonnull align 8 dereferenceable(40) %487)
  %489 = call noundef ptr @_ZN14NAMESPACE_MAIN11BoosterCore16GetValidationSetEv(ptr noundef nonnull align 8 dereferenceable(520) %42)
  %490 = call noundef i64 @_ZNK14NAMESPACE_MAIN15DataSetBoosting15GetCountSubsetsEv(ptr noundef nonnull align 8 dereferenceable(40) %489)
  %491 = getelementptr inbounds %"struct.NAMESPACE_MAIN::DataSubsetBoosting", ptr %488, i64 %490
  br label %492

492:                                              ; preds = %532, %486
  %.2456 = phi i64 [ %.1455, %486 ], [ %533, %532 ]
  %.0441 = phi ptr [ %488, %486 ], [ %534, %532 ]
  %493 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0441)
  %494 = getelementptr inbounds i8, ptr %493, i64 136
  %495 = load i64, ptr %494, align 8, !tbaa !48
  %496 = icmp eq i64 %495, 8
  %497 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0441)
  br i1 %496, label %498, label %512

498:                                              ; preds = %492
  %499 = getelementptr inbounds i8, ptr %497, i64 128
  %500 = load i64, ptr %499, align 8, !tbaa !49
  %501 = icmp eq i64 %500, 8
  br i1 %501, label %502, label %504

502:                                              ; preds = %498
  %503 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIdmEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %387, i64 noundef %.0458)
  br label %532

504:                                              ; preds = %498
  %505 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0441)
  %506 = getelementptr inbounds i8, ptr %505, i64 128
  %507 = load i64, ptr %506, align 8, !tbaa !49
  %508 = icmp eq i64 %507, 4
  br i1 %508, label %510, label %509

509:                                              ; preds = %504
  call void @LogAssertFailure(i64 noundef 793, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.37)
  call void @__assert_fail(ptr noundef nonnull @.str.38, ptr noundef nonnull @.str, i32 noundef 793, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

510:                                              ; preds = %504
  %511 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIfmEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %387, i64 noundef %.0458)
  br label %532

512:                                              ; preds = %492
  %513 = getelementptr inbounds i8, ptr %497, i64 136
  %514 = load i64, ptr %513, align 8, !tbaa !48
  %515 = icmp eq i64 %514, 4
  br i1 %515, label %517, label %516

516:                                              ; preds = %512
  call void @LogAssertFailure(i64 noundef 797, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.39)
  call void @__assert_fail(ptr noundef nonnull @.str.40, ptr noundef nonnull @.str, i32 noundef 797, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

517:                                              ; preds = %512
  %518 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0441)
  %519 = getelementptr inbounds i8, ptr %518, i64 128
  %520 = load i64, ptr %519, align 8, !tbaa !49
  %521 = icmp eq i64 %520, 8
  br i1 %521, label %522, label %524

522:                                              ; preds = %517
  %523 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIdjEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %387, i64 noundef %.0458)
  br label %532

524:                                              ; preds = %517
  %525 = call noundef ptr @_ZNK14NAMESPACE_MAIN18DataSubsetBoosting19GetObjectiveWrapperEv(ptr noundef nonnull align 8 dereferenceable(56) %.0441)
  %526 = getelementptr inbounds i8, ptr %525, i64 128
  %527 = load i64, ptr %526, align 8, !tbaa !49
  %528 = icmp eq i64 %527, 4
  br i1 %528, label %530, label %529

529:                                              ; preds = %524
  call void @LogAssertFailure(i64 noundef 801, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.37)
  call void @__assert_fail(ptr noundef nonnull @.str.38, ptr noundef nonnull @.str, i32 noundef 801, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

530:                                              ; preds = %524
  %531 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIfjEEmbbbm(i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext %387, i64 noundef %.0458)
  br label %532

532:                                              ; preds = %522, %530, %502, %510
  %.0436 = phi i64 [ %503, %502 ], [ %511, %510 ], [ %523, %522 ], [ %531, %530 ]
  %533 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %.2456, i64 noundef %.0436) #15
  %534 = getelementptr inbounds i8, ptr %.0441, i64 56
  %.not511 = icmp eq ptr %491, %534
  br i1 %.not511, label %.loopexit, label %492, !llvm.loop !52

.loopexit:                                        ; preds = %532, %.loopexit584
  %.3457 = phi i64 [ %.1455, %.loopexit584 ], [ %533, %532 ]
  %535 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %.3457, i64 noundef %.6378) #15
  br i1 %535, label %536, label %539

536:                                              ; preds = %.loopexit
  %537 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %538 = icmp sgt i32 %537, 1
  br i1 %538, label %.thread577.sink.split, label %.thread577

539:                                              ; preds = %.loopexit
  %540 = mul i64 %.3457, %.6378
  %541 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %.2452, i64 noundef %540) #15
  %542 = getelementptr inbounds i8, ptr %42, i64 88
  store i64 %541, ptr %542, align 8, !tbaa !53
  %543 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL17IsOverflowBinSizeIdmEEbbbbm(i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext %387, i64 noundef %.0458)
  br i1 %543, label %544, label %547

544:                                              ; preds = %539
  %545 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %546 = icmp sgt i32 %545, 1
  br i1 %546, label %.thread577.sink.split, label %.thread577

547:                                              ; preds = %539
  %548 = call noundef i64 @_ZN14NAMESPACE_MAINL10GetBinSizeIdmEEmbbbm(i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext %387, i64 noundef %.0458)
  %549 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %548, i64 noundef %.7386) #15
  br i1 %549, label %550, label %553

550:                                              ; preds = %547
  %551 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %552 = icmp sgt i32 %551, 1
  br i1 %552, label %.thread577.sink.split, label %.thread577

553:                                              ; preds = %547
  %554 = mul i64 %548, %.7386
  %.not512 = icmp eq i64 %.8395, 0
  br i1 %.not512, label %600, label %555

555:                                              ; preds = %553
  %556 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL10IsAddErrorImEEbT_S1_(i64 noundef %548, i64 noundef 8) #15
  br i1 %556, label %557, label %560

557:                                              ; preds = %555
  %558 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %559 = icmp sgt i32 %558, 1
  br i1 %559, label %.thread577.sink.split, label %.thread577

560:                                              ; preds = %555
  %561 = add i64 %548, 8
  %562 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %561, i64 noundef %.8395) #15
  br i1 %562, label %563, label %566

563:                                              ; preds = %560
  %564 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %565 = icmp sgt i32 %564, 1
  br i1 %565, label %.thread577.sink.split, label %.thread577

566:                                              ; preds = %560
  %567 = mul i64 %561, %.8395
  %568 = call noundef i64 @_ZN14NAMESPACE_MAINL6EbmMaxImEET_S1_S1_(i64 noundef %554, i64 noundef %567) #15
  %569 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL22IsOverflowTreeNodeSizeEbm(i1 noundef zeroext %387, i64 noundef %.0458)
  br i1 %569, label %572, label %570

570:                                              ; preds = %566
  %571 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL27IsOverflowSplitPositionSizeEbm(i1 noundef zeroext %387, i64 noundef %.0458)
  br i1 %571, label %572, label %575

572:                                              ; preds = %566, %570
  %573 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %574 = icmp sgt i32 %573, 1
  br i1 %574, label %.thread577.sink.split, label %.thread577

575:                                              ; preds = %570
  %576 = add i64 %.8395, -1
  %577 = call noundef i64 @_ZN14NAMESPACE_MAINL20GetSplitPositionSizeEbm(i1 noundef zeroext %387, i64 noundef %.0458)
  %578 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImJmEEEbT_S1_DpKT0_(i64 noundef 2, i64 noundef %577, i64 noundef %576) #15
  br i1 %578, label %579, label %582

579:                                              ; preds = %575
  %580 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %581 = icmp sgt i32 %580, 1
  br i1 %581, label %.thread577.sink.split, label %.thread577

582:                                              ; preds = %575
  %583 = shl i64 %576, 1
  %584 = mul i64 %583, %577
  %585 = getelementptr inbounds i8, ptr %42, i64 104
  store i64 %584, ptr %585, align 8, !tbaa !54
  %586 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL10IsAddErrorImEEbT_S1_(i64 noundef %576, i64 noundef %.8395) #15
  br i1 %586, label %587, label %590

587:                                              ; preds = %582
  %588 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %589 = icmp sgt i32 %588, 1
  br i1 %589, label %.thread577.sink.split, label %.thread577

590:                                              ; preds = %582
  %591 = add i64 %576, %.8395
  %592 = call noundef i64 @_ZN14NAMESPACE_MAINL15GetTreeNodeSizeEbm(i1 noundef zeroext %387, i64 noundef %.0458)
  %593 = call noundef zeroext i1 @_ZN14NAMESPACE_MAINL15IsMultiplyErrorImEEbT_S1_(i64 noundef %592, i64 noundef %591) #15
  br i1 %593, label %594, label %597

594:                                              ; preds = %590
  %595 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %596 = icmp sgt i32 %595, 1
  br i1 %596, label %.thread577.sink.split, label %.thread577

597:                                              ; preds = %590
  %598 = mul i64 %592, %591
  %599 = getelementptr inbounds i8, ptr %42, i64 112
  store i64 %598, ptr %599, align 8, !tbaa !55
  br label %610

600:                                              ; preds = %553
  %601 = getelementptr inbounds i8, ptr %42, i64 104
  %602 = load i64, ptr %601, align 8, !tbaa !54
  %603 = icmp eq i64 %602, 0
  br i1 %603, label %605, label %604

604:                                              ; preds = %600
  call void @LogAssertFailure(i64 noundef 887, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.41)
  call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str, i32 noundef 887, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

605:                                              ; preds = %600
  %606 = getelementptr inbounds i8, ptr %42, i64 112
  %607 = load i64, ptr %606, align 8, !tbaa !55
  %608 = icmp eq i64 %607, 0
  br i1 %608, label %610, label %609

609:                                              ; preds = %605
  call void @LogAssertFailure(i64 noundef 888, ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_, ptr noundef nonnull @.str.43)
  call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str, i32 noundef 888, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_) #13
  unreachable

.thread577.sink.split:                            ; preds = %594, %587, %579, %572, %563, %557, %550, %544, %536
  %_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__38_.sink = phi ptr [ @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__38_, %536 ], [ @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__39_, %544 ], [ @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__40_, %550 ], [ @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__41_, %557 ], [ @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__42_, %563 ], [ @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__43_, %572 ], [ @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__44_, %579 ], [ @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__45_, %587 ], [ @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__46_, %594 ]
  call void @InteralLogWithoutArguments(i32 noundef 2, ptr noundef nonnull %_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__38_.sink)
  br label %.thread577

.thread577:                                       ; preds = %.thread577.sink.split, %368, %385, %399, %536, %544, %550, %557, %563, %572, %579, %587, %594
  %.27.ph = phi i32 [ -1, %557 ], [ -1, %550 ], [ -1, %544 ], [ -1, %536 ], [ %409, %399 ], [ %398, %385 ], [ %369, %368 ], [ -1, %563 ], [ -1, %572 ], [ -1, %579 ], [ -1, %587 ], [ -1, %594 ], [ -1, %.thread577.sink.split ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #15
  br label %.thread581

610:                                              ; preds = %605, %597
  %.1415 = phi i64 [ %568, %597 ], [ %554, %605 ]
  %611 = getelementptr inbounds i8, ptr %42, i64 96
  store i64 %.1415, ptr %611, align 8, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #15
  br label %612

612:                                              ; preds = %610, %346
  br i1 %.not492, label %622, label %613

613:                                              ; preds = %612
  %614 = getelementptr inbounds i8, ptr %42, i64 48
  %615 = load ptr, ptr %614, align 8, !tbaa !29
  %616 = getelementptr inbounds i8, ptr %42, i64 64
  %617 = call noundef i32 @_ZN14NAMESPACE_MAIN11BoosterCore17InitializeTensorsEmPKPKNS_4TermEmPPPNS_6TensorE(i64 noundef %1, ptr noundef %615, i64 noundef %.0458, ptr noundef nonnull %616)
  %.not513 = icmp eq i32 %617, 0
  br i1 %.not513, label %618, label %.thread581

618:                                              ; preds = %613
  %619 = load ptr, ptr %614, align 8, !tbaa !29
  %620 = getelementptr inbounds i8, ptr %42, i64 72
  %621 = call noundef i32 @_ZN14NAMESPACE_MAIN11BoosterCore17InitializeTensorsEmPKPKNS_4TermEmPPPNS_6TensorE(i64 noundef %1, ptr noundef %619, i64 noundef %.0458, ptr noundef nonnull %620)
  %.not514 = icmp eq i32 %621, 0
  br i1 %.not514, label %622, label %.thread581

.thread581:                                       ; preds = %319, %340, %337, %345, %342, %352, %350, %361, %358, %613, %618, %.thread577
  %.30.ph = phi i32 [ %.27.ph, %.thread577 ], [ %621, %618 ], [ %617, %613 ], [ -3, %358 ], [ -3, %361 ], [ -21, %350 ], [ -21, %352 ], [ -3, %342 ], [ -3, %345 ], [ -3, %337 ], [ -3, %340 ], [ %324, %319 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #15
  br label %627

622:                                              ; preds = %612, %618
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #15
  br label %623

623:                                              ; preds = %622, %305
  %624 = load i32, ptr @g_traceLevel, align 4, !tbaa !5
  %625 = icmp sgt i32 %624, 2
  br i1 %625, label %626, label %627

626:                                              ; preds = %623
  call void @InteralLogWithoutArguments(i32 noundef 3, ptr noundef nonnull @_ZZN14NAMESPACE_MAIN11BoosterCore6CreateEPvmmPKdPKlS5_PKhS3_PKaS3_iiPKcPPS0_E13LOG__sMessage__47_)
  br label %627

627:                                              ; preds = %.thread581, %623, %626, %301, %304
  %.31 = phi i32 [ -3, %304 ], [ -3, %301 ], [ 0, %626 ], [ 0, %623 ], [ %.30.ph, %.thread581 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #15
  br label %.critedge

.critedge:                                        ; preds = %286, %283, %240, %243, %223, %226, %217, %220, %211, %214, %201, %204, %187, %190, %180, %183, %174, %177, %.thread, %111, %114, %87, %84, %93, %91, %105, %102, %166, %169, %627, %76, %79, %69, %72, %43
  %.34 = phi i32 [ %46, %43 ], [ -3, %72 ], [ -3, %69 ], [ -3, %79 ], [ -3, %76 ], [ -3, %87 ], [ -3, %84 ], [ -3, %93 ], [ -3, %91 ], [ -1, %105 ], [ -1, %102 ], [ %.31, %627 ], [ -1, %169 ], [ -1, %166 ], [ -3, %.thread ], [ -1, %111 ], [ -1, %114 ], [ -3, %201 ], [ -3, %204 ], [ -1, %187 ], [ -1, %190 ], [ -1, %180 ], [ -1, %183 ], [ -3, %174 ], [ -3, %177 ], [ -1, %240 ], [ -1, %243 ], [ -3, %223 ], [ -3, %226 ], [ -3, %217 ], [ -3, %220 ], [ -3, %211 ], [ -3, %214 ], [ -1, %283 ], [ -1, %286 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #15
  br label %628

628:                                              ; preds = %.critedge, %65, %62
  %.35 = phi i32 [ %.34, %.critedge ], [ -1, %65 ], [ -2, %62 ]
  ret i32 %.35

629:                                              ; preds = %63, %60
  %.pn = phi { ptr, i32 } [ %61, %60 ], [ %64, %63 ]
  resume { ptr, i32 } %.pn

630:                                              ; preds = %63, %60
  %631 = landingpad { ptr, i32 }
          catch ptr null
  %632 = extractvalue { ptr, i32 } %631, 0
  tail call void @__clang_call_terminate(ptr %632) #13
  unreachable
}

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

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

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #9

declare void @__cxa_end_catch() local_unnamed_addr

declare noundef i32 @_ZN14NAMESPACE_MAIN22GetDataSetSharedHeaderEPKhPmS2_S2_S2_(ptr noundef, ptr noundef, ptr noundef, ptr 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 #4

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 dso_local void @_ZN14NAMESPACE_MAIN15FeatureBoosting10InitializeEmbbb(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #4 align 2

; Function Attrs: nounwind
declare noundef ptr @_ZN14NAMESPACE_MAIN4Term13AllocateTermsEm(i64 noundef) local_unnamed_addr #10

; Function Attrs: nounwind
declare noundef ptr @_ZN14NAMESPACE_MAIN4Term8AllocateEm(i64 noundef) local_unnamed_addr #10

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN14NAMESPACE_MAIN4Term15GetTermFeaturesEv(ptr noundef nonnull align 8 dereferenceable(776)) local_unnamed_addr #4 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 #4

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare noundef i32 @_ZN14NAMESPACE_MAIN12GetObjectiveEPK6ConfigPKciP16ObjectiveWrapperS6_(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #10

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK14NAMESPACE_MAIN11BoosterCore12CheckTargetsEmPKv(ptr noundef nonnull align 8 dereferenceable(520), i64 noundef, ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN14NAMESPACE_MAINL24CheckBoosterRestrictionsEPKNS_11BoosterCoreEPK16ObjectiveWrapperm(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @_ZL35InitializeObjectiveWrapperUnfailingP16ObjectiveWrapper(ptr noundef) local_unnamed_addr #4

declare noundef i32 @_ZN14NAMESPACE_MAIN5UnbagEmPKaPmS2_(i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore9IsHessianEv(ptr noundef nonnull align 8 dereferenceable(520)) local_unnamed_addr #7 align 2

declare noundef i32 @_ZN14NAMESPACE_MAIN15DataSetBoosting19InitDataSetBoostingEbbbbbPvmmPK16ObjectiveWrapperS4_PKhPKdamPKaS8_mmmmPKPKNS_4TermEPKl(ptr noundef nonnull align 8 dereferenceable(40), i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, ptr noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i8 noundef signext, i64 noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN14NAMESPACE_MAIN11BoosterCore6IsRmseEv(ptr noundef nonnull align 8 dereferenceable(520)) local_unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZN14NAMESPACE_MAINL6EbmMaxIiEET_S1_S1_(i32 noundef, i32 noundef) local_unnamed_addr #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN14NAMESPACE_MAIN15DataSetBoosting10GetSubsetsEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK14NAMESPACE_MAIN15DataSetBoosting15GetCountSubsetsEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #12

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

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

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


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