; LLVM IR from buresjan/optim_lbm :: nomad/src/Algos/SgtelibModel (SgtelibModelEvaluator)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.NOMAD_4_3::EvalPoint" = type { %"class.NOMAD_4_3::Point", [3 x %"class.std::unique_ptr"], i32, i32, i16, %"class.std::shared_ptr.8", %"class.std::vector.11", %"class.std::shared_ptr.16", %"class.NOMAD_4_3::Double", %"class.std::shared_ptr.19" }
%"class.NOMAD_4_3::Point" = type { %"class.NOMAD_4_3::ArrayOfDouble" }
%"class.NOMAD_4_3::ArrayOfDouble" = type { ptr, i64, ptr }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.7" }
%"struct.std::_Head_base.7" = type { ptr }
%"class.std::shared_ptr.8" = type { %"class.std::__shared_ptr.9" }
%"class.std::__shared_ptr.9" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<NOMAD_4_3::StepType, std::allocator<NOMAD_4_3::StepType>>::_Vector_impl" }
%"struct.std::_Vector_base<NOMAD_4_3::StepType, std::allocator<NOMAD_4_3::StepType>>::_Vector_impl" = type { %"struct.std::_Vector_base<NOMAD_4_3::StepType, std::allocator<NOMAD_4_3::StepType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<NOMAD_4_3::StepType, std::allocator<NOMAD_4_3::StepType>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::shared_ptr.16" = type { %"class.std::__shared_ptr.17" }
%"class.std::__shared_ptr.17" = type { ptr, %"class.std::__shared_count" }
%"class.NOMAD_4_3::Double" = type <{ ptr, double, i8, [7 x i8] }>
%"class.std::shared_ptr.19" = type { %"class.std::__shared_ptr.20" }
%"class.std::__shared_ptr.20" = type { ptr, %"class.std::__shared_count" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.SGTELIB::Matrix" = type { ptr, %"class.std::__cxx11::basic_string", i32, i32, ptr }
%"class.std::allocator" = type { i8 }
%"class.NOMAD_4_3::ArrayOfString" = type { ptr, %"class.std::vector.75" }
%"class.std::vector.75" = type { %"struct.std::_Vector_base.76" }
%"struct.std::_Vector_base.76" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::shared_ptr.69" = type { %"class.std::__shared_ptr.70" }
%"class.std::__shared_ptr.70" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.72" = type { %"class.std::__shared_ptr.73" }
%"class.std::__shared_ptr.73" = type { ptr, %"class.std::__shared_count" }
%"class.NOMAD_4_3::SgtelibModelEvaluator" = type { %"class.NOMAD_4_3::Evaluator", ptr, %"class.std::__cxx11::basic_string", %"class.NOMAD_4_3::Double", i32, double, i32, %"class.NOMAD_4_3::Point" }
%"class.NOMAD_4_3::Evaluator" = type { ptr, %"class.std::shared_ptr", i32, %"class.std::vector", i32, %"class.std::__cxx11::basic_string", %"class.NOMAD_4_3::ArrayOfDouble" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<NOMAD_4_3::BBOutputType, std::allocator<NOMAD_4_3::BBOutputType>>::_Vector_impl" }
%"struct.std::_Vector_base<NOMAD_4_3::BBOutputType, std::allocator<NOMAD_4_3::BBOutputType>>::_Vector_impl" = type { %"struct.std::_Vector_base<NOMAD_4_3::BBOutputType, std::allocator<NOMAD_4_3::BBOutputType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<NOMAD_4_3::BBOutputType, std::allocator<NOMAD_4_3::BBOutputType>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE = external hidden constant i32, align 4
@.str.11 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [21 x i8], align 1
@_ZTIN7SGTELIB9ExceptionE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.19 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [12 x i8], align 1
@__FUNCTION__._ZNK9NOMAD_4_321SgtelibModelEvaluator6eval_xERNS_9EvalPointERKNS_6DoubleERb = external hidden unnamed_addr constant [7 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [55 x i8], align 1

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

; Function Attrs: nounwind
declare void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #3

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZNK9NOMAD_4_321SgtelibModelEvaluator6eval_xERNS_9EvalPointERKNS_6DoubleERb(ptr noundef nonnull align 8 dereferenceable(232) %0, ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(17) %2, ptr noundef nonnull align 1 dereferenceable(1) %3) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %"class.NOMAD_4_3::EvalPoint", align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca i32, align 4
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %17 = alloca %"class.NOMAD_4_3::Double", align 8
  %18 = alloca i64, align 8
  %19 = alloca i64, align 8
  %20 = alloca i64, align 8
  %21 = alloca %"class.SGTELIB::Matrix", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.SGTELIB::Matrix", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.SGTELIB::Matrix", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca %"class.SGTELIB::Matrix", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.NOMAD_4_3::Double", align 8
  %34 = alloca double, align 8
  %35 = alloca %"class.NOMAD_4_3::Double", align 8
  %36 = alloca double, align 8
  %37 = alloca %"class.NOMAD_4_3::Double", align 8
  %38 = alloca double, align 8
  %39 = alloca %"class.NOMAD_4_3::Double", align 8
  %40 = alloca double, align 8
  %41 = alloca %"class.NOMAD_4_3::Double", align 8
  %42 = alloca double, align 8
  %43 = alloca %"class.NOMAD_4_3::Double", align 8
  %44 = alloca double, align 8
  %45 = alloca %"class.NOMAD_4_3::Double", align 8
  %46 = alloca double, align 8
  %47 = alloca %"class.NOMAD_4_3::Double", align 8
  %48 = alloca double, align 8
  %49 = alloca %"class.NOMAD_4_3::Double", align 8
  %50 = alloca double, align 8
  %51 = alloca %"class.NOMAD_4_3::Double", align 8
  %52 = alloca double, align 8
  %53 = alloca %"class.NOMAD_4_3::Double", align 8
  %54 = alloca double, align 8
  %55 = alloca %"class.SGTELIB::Matrix", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::allocator", align 1
  %58 = alloca i8, align 1
  %59 = alloca i32, align 4
  %60 = alloca i64, align 8
  %61 = alloca %"class.NOMAD_4_3::ArrayOfString", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.NOMAD_4_3::Double", align 8
  %66 = alloca double, align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator", align 1
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::allocator", align 1
  %71 = alloca i1, align 1
  %72 = alloca i32, align 4
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca i32, align 4
  %80 = alloca %"class.SGTELIB::Matrix", align 8
  %81 = alloca %"class.std::shared_ptr.69", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::allocator", align 1
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::allocator", align 1
  %88 = alloca i1, align 1
  %89 = alloca i32, align 4
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::allocator", align 1
  %92 = alloca %"class.std::shared_ptr.72", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::allocator", align 1
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::allocator", align 1
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::allocator", align 1
  %101 = alloca i32, align 4
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca i32, align 4
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca i32, align 4
  %111 = alloca i64, align 8
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::__cxx11::basic_string", align 8
  %121 = alloca %"class.std::__cxx11::basic_string", align 8
  %122 = alloca i64, align 8
  %123 = alloca %"class.std::__cxx11::basic_string", align 8
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::__cxx11::basic_string", align 8
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::__cxx11::basic_string", align 8
  %138 = alloca %"class.std::__cxx11::basic_string", align 8
  %139 = alloca %"class.std::__cxx11::basic_string", align 8
  %140 = alloca %"class.std::__cxx11::basic_string", align 8
  %141 = alloca %"class.std::__cxx11::basic_string", align 8
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.std::__cxx11::basic_string", align 8
  %144 = alloca %"class.NOMAD_4_3::Double", align 8
  %145 = alloca %"class.NOMAD_4_3::Double", align 8
  %146 = alloca double, align 8
  %147 = alloca i64, align 8
  %148 = alloca %"class.NOMAD_4_3::Double", align 8
  %149 = alloca %"class.NOMAD_4_3::Double", align 8
  %150 = alloca %"class.NOMAD_4_3::Double", align 8
  %151 = alloca double, align 8
  %152 = alloca %"class.NOMAD_4_3::Double", align 8
  %153 = alloca double, align 8
  %154 = alloca %"class.NOMAD_4_3::Double", align 8
  %155 = alloca i1, align 1
  %156 = alloca double, align 8
  %157 = alloca i1, align 1
  %158 = alloca %"class.NOMAD_4_3::Double", align 8
  %159 = alloca %"class.NOMAD_4_3::Double", align 8
  %160 = alloca double, align 8
  %161 = alloca %"class.NOMAD_4_3::Double", align 8
  %162 = alloca %"class.NOMAD_4_3::Double", align 8
  %163 = alloca double, align 8
  %164 = alloca i32, align 4
  %165 = alloca %"class.std::__cxx11::basic_string", align 8
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca %"class.std::__cxx11::basic_string", align 8
  %168 = alloca %"class.std::__cxx11::basic_string", align 8
  %169 = alloca %"class.std::__cxx11::basic_string", align 8
  %170 = alloca %"class.NOMAD_4_3::Double", align 8
  %171 = alloca %"class.NOMAD_4_3::Double", align 8
  %172 = alloca %"class.NOMAD_4_3::Double", align 8
  %173 = alloca %"class.NOMAD_4_3::Double", align 8
  %174 = alloca %"class.NOMAD_4_3::Double", align 8
  %175 = alloca double, align 8
  %176 = alloca %"class.NOMAD_4_3::Double", align 8
  %177 = alloca %"class.NOMAD_4_3::Double", align 8
  %178 = alloca double, align 8
  %179 = alloca %"class.NOMAD_4_3::Double", align 8
  %180 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %181 = alloca %"class.NOMAD_4_3::Double", align 8
  %182 = alloca double, align 8
  %183 = alloca i32, align 4
  %184 = alloca %"class.NOMAD_4_3::Double", align 8
  %185 = alloca %"class.NOMAD_4_3::Double", align 8
  %186 = alloca i64, align 8
  %187 = alloca %"class.NOMAD_4_3::Double", align 8
  %188 = alloca %"class.NOMAD_4_3::Double", align 8
  %189 = alloca double, align 8
  %190 = alloca %"class.NOMAD_4_3::Double", align 8
  %191 = alloca %"class.NOMAD_4_3::Double", align 8
  %192 = alloca double, align 8
  %193 = alloca %"class.NOMAD_4_3::Double", align 8
  %194 = alloca %"class.NOMAD_4_3::Double", align 8
  %195 = alloca i64, align 8
  %196 = alloca %"class.NOMAD_4_3::Double", align 8
  %197 = alloca %"class.NOMAD_4_3::Double", align 8
  %198 = alloca double, align 8
  %199 = alloca %"class.NOMAD_4_3::Double", align 8
  %200 = alloca %"class.NOMAD_4_3::Double", align 8
  %201 = alloca %"class.NOMAD_4_3::Double", align 8
  %202 = alloca i64, align 8
  %203 = alloca %"class.NOMAD_4_3::Double", align 8
  %204 = alloca %"class.NOMAD_4_3::Double", align 8
  %205 = alloca double, align 8
  %206 = alloca %"class.NOMAD_4_3::Double", align 8
  %207 = alloca %"class.NOMAD_4_3::Double", align 8
  %208 = alloca double, align 8
  %209 = alloca %"class.NOMAD_4_3::Double", align 8
  %210 = alloca %"class.NOMAD_4_3::Double", align 8
  %211 = alloca %"class.NOMAD_4_3::Double", align 8
  %212 = alloca %"class.NOMAD_4_3::Double", align 8
  %213 = alloca %"class.NOMAD_4_3::Double", align 8
  %214 = alloca %"class.NOMAD_4_3::Double", align 8
  %215 = alloca %"class.NOMAD_4_3::Double", align 8
  %216 = alloca %"class.NOMAD_4_3::Double", align 8
  %217 = alloca %"class.NOMAD_4_3::Double", align 8
  %218 = alloca %"class.NOMAD_4_3::Double", align 8
  %219 = alloca %"class.NOMAD_4_3::Double", align 8
  %220 = alloca %"class.NOMAD_4_3::Double", align 8
  %221 = alloca %"class.NOMAD_4_3::Double", align 8
  %222 = alloca %"class.NOMAD_4_3::Double", align 8
  %223 = alloca %"class.NOMAD_4_3::Double", align 8
  %224 = alloca %"class.NOMAD_4_3::Double", align 8
  %225 = alloca i32, align 4
  %226 = alloca %"class.std::__cxx11::basic_string", align 8
  %227 = alloca %"class.std::__cxx11::basic_string", align 8
  %228 = alloca i32, align 4
  %229 = alloca %"class.std::__cxx11::basic_string", align 8
  %230 = alloca %"class.std::__cxx11::basic_string", align 8
  %231 = alloca %"class.SGTELIB::Matrix", align 8
  %232 = alloca %"class.std::shared_ptr.72", align 8
  %233 = alloca i64, align 8
  %234 = alloca %"class.std::__cxx11::basic_string", align 8
  %235 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %236 = alloca %"class.NOMAD_4_3::Double", align 8
  %237 = alloca %"class.std::__cxx11::basic_string", align 8
  %238 = alloca i32, align 4
  %239 = alloca %"class.std::__cxx11::basic_string", align 8
  %240 = alloca %"class.std::__cxx11::basic_string", align 8
  %241 = alloca %"class.std::shared_ptr.69", align 8
  %242 = alloca %"class.std::__cxx11::basic_string", align 8
  %243 = alloca %"class.std::__cxx11::basic_string", align 8
  %244 = alloca %"class.std::__cxx11::basic_string", align 8
  %245 = alloca %"class.std::__cxx11::basic_string", align 8
  %246 = alloca %"class.std::__cxx11::basic_string", align 8
  %247 = alloca %"class.std::__cxx11::basic_string", align 8
  %248 = alloca %"class.std::__cxx11::basic_string", align 8
  %249 = alloca %"class.std::__cxx11::basic_string", align 8
  %250 = alloca %"class.std::__cxx11::basic_string", align 8
  %251 = alloca %"class.std::__cxx11::basic_string", align 8
  %252 = alloca %"class.std::__cxx11::basic_string", align 8
  %253 = alloca %"class.std::__cxx11::basic_string", align 8
  %254 = alloca %"class.std::__cxx11::basic_string", align 8
  %255 = alloca %"class.std::__cxx11::basic_string", align 8
  %256 = alloca %"class.std::__cxx11::basic_string", align 8
  %257 = alloca %"class.std::__cxx11::basic_string", align 8
  %258 = alloca %"class.std::__cxx11::basic_string", align 8
  %259 = alloca %"class.std::__cxx11::basic_string", align 8
  %260 = alloca %"class.std::allocator", align 1
  %261 = alloca %"class.std::__cxx11::basic_string", align 8
  %262 = alloca %"class.std::allocator", align 1
  %263 = alloca i1, align 1
  %264 = alloca %"class.NOMAD_4_3::EvalPoint", align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  %265 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 160, ptr %9) #7
  %266 = load ptr, ptr %6, align 8, !tbaa !5
  %267 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 7
  call void @_ZNK9NOMAD_4_39EvalPoint26makeSubSpacePointFromFixedERKNS_5PointE(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::EvalPoint") align 8 %9, ptr noundef nonnull align 8 dereferenceable(160) %266, ptr noundef nonnull align 8 dereferenceable(24) %267)
  %268 = load ptr, ptr %6, align 8, !tbaa !5
  %269 = invoke noundef nonnull align 8 dereferenceable(160) ptr @_ZN9NOMAD_4_39EvalPointaSERKS0_(ptr noundef nonnull align 8 dereferenceable(160) %268, ptr noundef nonnull align 8 dereferenceable(160) %9)
          to label %270 unwind label %283

270:                                              ; preds = %4
  call void @_ZN9NOMAD_4_39EvalPointD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %9) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr %9) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  store i32 7, ptr %13, align 4, !tbaa !9
  %271 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %272 unwind label %287

272:                                              ; preds = %270
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br i1 %271, label %273, label %314

273:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #7
  %274 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %17)
          to label %275 unwind label %291

275:                                              ; preds = %273
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %17)
          to label %276 unwind label %295

276:                                              ; preds = %275
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(160) %274, ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %277 unwind label %299

277:                                              ; preds = %276
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef @.str.10, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %278 unwind label %303

278:                                              ; preds = %277
  %279 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %17) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  %280 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %281 = load i32, ptr %280, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %281)
          to label %282 unwind label %310

282:                                              ; preds = %278
  br label %314

283:                                              ; preds = %4
  %284 = landingpad { ptr, i32 }
          cleanup
  %285 = extractvalue { ptr, i32 } %284, 0
  store ptr %285, ptr %10, align 8
  %286 = extractvalue { ptr, i32 } %284, 1
  store i32 %286, ptr %11, align 4
  call void @_ZN9NOMAD_4_39EvalPointD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %9) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr %9) #7
  br label %2254

287:                                              ; preds = %270
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %10, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %2253

291:                                              ; preds = %273
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %10, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %11, align 4
  br label %309

295:                                              ; preds = %275
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %10, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %11, align 4
  br label %308

299:                                              ; preds = %276
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %10, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %11, align 4
  br label %307

303:                                              ; preds = %277
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %10, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %307

307:                                              ; preds = %303, %299
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  br label %308

308:                                              ; preds = %307, %295
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %17) #7
  br label %309

309:                                              ; preds = %308, %291
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  br label %2253

310:                                              ; preds = %278
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %10, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %11, align 4
  br label %2253

314:                                              ; preds = %282, %272
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %315 = load ptr, ptr %6, align 8, !tbaa !5
  %316 = invoke noundef i64 @_ZNK9NOMAD_4_313ArrayOfDouble4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %315)
          to label %317 unwind label %366

317:                                              ; preds = %314
  store i64 %316, ptr %18, align 8, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %318 = getelementptr inbounds %"class.NOMAD_4_3::Evaluator", ptr %265, i32 0, i32 3
  %319 = invoke noundef i64 @_ZN9NOMAD_4_316getNbConstraintsERKSt6vectorINS_12BBOutputTypeESaIS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %318)
          to label %320 unwind label %370

320:                                              ; preds = %317
  store i64 %319, ptr %19, align 8, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %321 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 4
  %322 = load i32, ptr %321, align 8, !tbaa !33
  %323 = load i64, ptr %19, align 8, !tbaa !32
  %324 = invoke noundef i64 @_ZN9NOMAD_4_312SgtelibModel11getNbModelsENS_27SgtelibModelFeasibilityTypeEm(i32 noundef %322, i64 noundef %323)
          to label %325 unwind label %374

325:                                              ; preds = %320
  store i64 %324, ptr %20, align 8, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 56, ptr %21) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %326 unwind label %378

326:                                              ; preds = %325
  %327 = load i64, ptr %20, align 8, !tbaa !32
  %328 = trunc i64 %327 to i32
  invoke void @_ZN7SGTELIB6MatrixC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(56) %21, ptr noundef nonnull align 8 dereferenceable(32) %22, i32 noundef 1, i32 noundef %328)
          to label %329 unwind label %382

329:                                              ; preds = %326
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr %24) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %330 unwind label %387

330:                                              ; preds = %329
  %331 = load i64, ptr %20, align 8, !tbaa !32
  %332 = trunc i64 %331 to i32
  invoke void @_ZN7SGTELIB6MatrixC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(56) %24, ptr noundef nonnull align 8 dereferenceable(32) %25, i32 noundef 1, i32 noundef %332)
          to label %333 unwind label %391

333:                                              ; preds = %330
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr %27) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %334 unwind label %396

334:                                              ; preds = %333
  %335 = load i64, ptr %20, align 8, !tbaa !32
  %336 = trunc i64 %335 to i32
  invoke void @_ZN7SGTELIB6MatrixC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(56) %27, ptr noundef nonnull align 8 dereferenceable(32) %28, i32 noundef 1, i32 noundef %336)
          to label %337 unwind label %400

337:                                              ; preds = %334
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr %30) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %338 unwind label %405

338:                                              ; preds = %337
  %339 = load i64, ptr %20, align 8, !tbaa !32
  %340 = trunc i64 %339 to i32
  invoke void @_ZN7SGTELIB6MatrixC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(56) %30, ptr noundef nonnull align 8 dereferenceable(32) %31, i32 noundef 1, i32 noundef %340)
          to label %341 unwind label %409

341:                                              ; preds = %338
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %33) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  store double 1.000000e+00, ptr %34, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %33, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %342 unwind label %414

342:                                              ; preds = %341
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  store double 0.000000e+00, ptr %36, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %35, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %343 unwind label %418

343:                                              ; preds = %342
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %37) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  store double 0.000000e+00, ptr %38, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %37, ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %344 unwind label %422

344:                                              ; preds = %343
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  store double 0.000000e+00, ptr %40, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %39, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %345 unwind label %426

345:                                              ; preds = %344
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %41) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  store double 0.000000e+00, ptr %42, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %41, ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %346 unwind label %430

346:                                              ; preds = %345
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %43) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  store double 0.000000e+00, ptr %44, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %43, ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %347 unwind label %434

347:                                              ; preds = %346
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %45) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  store double 0.000000e+00, ptr %46, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %45, ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %348 unwind label %438

348:                                              ; preds = %347
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  store double 0.000000e+00, ptr %48, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %47, ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %349 unwind label %442

349:                                              ; preds = %348
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %49) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  store double 0.000000e+00, ptr %50, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %49, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %350 unwind label %446

350:                                              ; preds = %349
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %51) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #7
  store double 0.000000e+00, ptr %52, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %51, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %351 unwind label %450

351:                                              ; preds = %350
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  store double 0.000000e+00, ptr %54, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %53, ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %352 unwind label %454

352:                                              ; preds = %351
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %353 unwind label %458

353:                                              ; preds = %352
  %354 = load i64, ptr %18, align 8, !tbaa !32
  %355 = trunc i64 %354 to i32
  invoke void @_ZN7SGTELIB6MatrixC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(56) %55, ptr noundef nonnull align 8 dereferenceable(32) %56, i32 noundef 1, i32 noundef %355)
          to label %356 unwind label %462

356:                                              ; preds = %353
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #7
  store i8 0, ptr %58, align 1, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #7
  %357 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 1
  %358 = load ptr, ptr %357, align 8, !tbaa !36
  %359 = invoke noundef i32 @_ZNK9NOMAD_4_312SgtelibModel14getFormulationEv(ptr noundef nonnull align 8 dereferenceable(552) %358)
          to label %360 unwind label %467

360:                                              ; preds = %356
  store i32 %359, ptr %59, align 4, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #7
  store i64 0, ptr %60, align 8, !tbaa !32
  br label %361

361:                                              ; preds = %482, %360
  %362 = load i64, ptr %60, align 8, !tbaa !32
  %363 = load i64, ptr %18, align 8, !tbaa !32
  %364 = icmp ult i64 %362, %363
  br i1 %364, label %471, label %365

365:                                              ; preds = %361
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  br label %489

366:                                              ; preds = %314
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %10, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %11, align 4
  br label %2252

370:                                              ; preds = %317
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %10, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %11, align 4
  br label %2251

374:                                              ; preds = %320
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %10, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %11, align 4
  br label %2250

378:                                              ; preds = %325
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %10, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %11, align 4
  br label %386

382:                                              ; preds = %326
  %383 = landingpad { ptr, i32 }
          cleanup
  %384 = extractvalue { ptr, i32 } %383, 0
  store ptr %384, ptr %10, align 8
  %385 = extractvalue { ptr, i32 } %383, 1
  store i32 %385, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %386

386:                                              ; preds = %382, %378
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  br label %2249

387:                                              ; preds = %329
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %10, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %11, align 4
  br label %395

391:                                              ; preds = %330
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %10, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %395

395:                                              ; preds = %391, %387
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  br label %2248

396:                                              ; preds = %333
  %397 = landingpad { ptr, i32 }
          cleanup
  %398 = extractvalue { ptr, i32 } %397, 0
  store ptr %398, ptr %10, align 8
  %399 = extractvalue { ptr, i32 } %397, 1
  store i32 %399, ptr %11, align 4
  br label %404

400:                                              ; preds = %334
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %10, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %404

404:                                              ; preds = %400, %396
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #7
  br label %2247

405:                                              ; preds = %337
  %406 = landingpad { ptr, i32 }
          cleanup
  %407 = extractvalue { ptr, i32 } %406, 0
  store ptr %407, ptr %10, align 8
  %408 = extractvalue { ptr, i32 } %406, 1
  store i32 %408, ptr %11, align 4
  br label %413

409:                                              ; preds = %338
  %410 = landingpad { ptr, i32 }
          cleanup
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %10, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %413

413:                                              ; preds = %409, %405
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #7
  br label %2246

414:                                              ; preds = %341
  %415 = landingpad { ptr, i32 }
          cleanup
  %416 = extractvalue { ptr, i32 } %415, 0
  store ptr %416, ptr %10, align 8
  %417 = extractvalue { ptr, i32 } %415, 1
  store i32 %417, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %2245

418:                                              ; preds = %342
  %419 = landingpad { ptr, i32 }
          cleanup
  %420 = extractvalue { ptr, i32 } %419, 0
  store ptr %420, ptr %10, align 8
  %421 = extractvalue { ptr, i32 } %419, 1
  store i32 %421, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  br label %2244

422:                                              ; preds = %343
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %10, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  br label %2243

426:                                              ; preds = %344
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %10, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  br label %2242

430:                                              ; preds = %345
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %10, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  br label %2241

434:                                              ; preds = %346
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %10, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  br label %2240

438:                                              ; preds = %347
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %10, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %2239

442:                                              ; preds = %348
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %10, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  br label %2238

446:                                              ; preds = %349
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %10, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  br label %2237

450:                                              ; preds = %350
  %451 = landingpad { ptr, i32 }
          cleanup
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %10, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  br label %2236

454:                                              ; preds = %351
  %455 = landingpad { ptr, i32 }
          cleanup
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %10, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  br label %2235

458:                                              ; preds = %352
  %459 = landingpad { ptr, i32 }
          cleanup
  %460 = extractvalue { ptr, i32 } %459, 0
  store ptr %460, ptr %10, align 8
  %461 = extractvalue { ptr, i32 } %459, 1
  store i32 %461, ptr %11, align 4
  br label %466

462:                                              ; preds = %353
  %463 = landingpad { ptr, i32 }
          cleanup
  %464 = extractvalue { ptr, i32 } %463, 0
  store ptr %464, ptr %10, align 8
  %465 = extractvalue { ptr, i32 } %463, 1
  store i32 %465, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  br label %466

466:                                              ; preds = %462, %458
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  br label %2234

467:                                              ; preds = %356
  %468 = landingpad { ptr, i32 }
          cleanup
  %469 = extractvalue { ptr, i32 } %468, 0
  store ptr %469, ptr %10, align 8
  %470 = extractvalue { ptr, i32 } %468, 1
  store i32 %470, ptr %11, align 4
  br label %2233

471:                                              ; preds = %361
  %472 = load i64, ptr %60, align 8, !tbaa !32
  %473 = trunc i64 %472 to i32
  %474 = load ptr, ptr %6, align 8, !tbaa !5
  %475 = load i64, ptr %60, align 8, !tbaa !32
  %476 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9NOMAD_4_313ArrayOfDoubleixEm(ptr noundef nonnull align 8 dereferenceable(24) %474, i64 noundef %475)
          to label %477 unwind label %485

477:                                              ; preds = %471
  %478 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9NOMAD_4_36Double8todoubleEv(ptr noundef nonnull align 8 dereferenceable(17) %476)
          to label %479 unwind label %485

479:                                              ; preds = %477
  %480 = load double, ptr %478, align 8, !tbaa !34
  invoke void @_ZN7SGTELIB6Matrix3setEiid(ptr noundef nonnull align 8 dereferenceable(56) %55, i32 noundef 0, i32 noundef %473, double noundef %480)
          to label %481 unwind label %485

481:                                              ; preds = %479
  br label %482

482:                                              ; preds = %481
  %483 = load i64, ptr %60, align 8, !tbaa !32
  %484 = add i64 %483, 1
  store i64 %484, ptr %60, align 8, !tbaa !32
  br label %361, !llvm.loop !39

485:                                              ; preds = %479, %477, %471
  %486 = landingpad { ptr, i32 }
          cleanup
  %487 = extractvalue { ptr, i32 } %486, 0
  store ptr %487, ptr %10, align 8
  %488 = extractvalue { ptr, i32 } %486, 1
  store i32 %488, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  br label %2233

489:                                              ; preds = %365
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #7
  %490 = getelementptr inbounds %"class.NOMAD_4_3::Evaluator", ptr %265, i32 0, i32 3
  %491 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %490) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %492 unwind label %501

492:                                              ; preds = %489
  invoke void @_ZN9NOMAD_4_313ArrayOfStringC1EmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %61, i64 noundef %491, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %493 unwind label %505

493:                                              ; preds = %492
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  %494 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #7
  invoke void @_ZNK9NOMAD_4_313ArrayOfString7displayB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %495 unwind label %510

495:                                              ; preds = %493
  %496 = getelementptr inbounds %"class.NOMAD_4_3::Evaluator", ptr %265, i32 0, i32 3
  %497 = getelementptr inbounds %"class.NOMAD_4_3::Evaluator", ptr %265, i32 0, i32 2
  %498 = load i32, ptr %497, align 8, !tbaa !41
  invoke void @_ZN9NOMAD_4_39EvalPoint6setBBOERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorINS_12BBOutputTypeESaISA_EENS_8EvalTypeEb(ptr noundef nonnull align 8 dereferenceable(160) %494, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(24) %496, i32 noundef %498, i1 noundef zeroext true)
          to label %499 unwind label %514

499:                                              ; preds = %495
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #7
  %500 = load i32, ptr %59, align 4, !tbaa !37
  switch i32 %500, label %537 [
    i32 0, label %519
    i32 1, label %534
    i32 2, label %534
    i32 3, label %534
    i32 4, label %534
    i32 5, label %534
    i32 6, label %534
    i32 7, label %534
    i32 8, label %535
    i32 9, label %536
    i32 10, label %536
  ]

501:                                              ; preds = %489
  %502 = landingpad { ptr, i32 }
          cleanup
  %503 = extractvalue { ptr, i32 } %502, 0
  store ptr %503, ptr %10, align 8
  %504 = extractvalue { ptr, i32 } %502, 1
  store i32 %504, ptr %11, align 4
  br label %509

505:                                              ; preds = %492
  %506 = landingpad { ptr, i32 }
          cleanup
  %507 = extractvalue { ptr, i32 } %506, 0
  store ptr %507, ptr %10, align 8
  %508 = extractvalue { ptr, i32 } %506, 1
  store i32 %508, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  br label %509

509:                                              ; preds = %505, %501
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  br label %1497

510:                                              ; preds = %493
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %10, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %11, align 4
  br label %518

514:                                              ; preds = %495
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %10, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  br label %518

518:                                              ; preds = %514, %510
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #7
  br label %1496

519:                                              ; preds = %499
  %520 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 24, ptr %65) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  store double 0.000000e+00, ptr %66, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %65, ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %521 unwind label %525

521:                                              ; preds = %519
  %522 = invoke noundef zeroext i1 @_ZN9NOMAD_4_3neERKNS_6DoubleES2_(ptr noundef nonnull align 8 dereferenceable(17) %520, ptr noundef nonnull align 8 dereferenceable(17) %65)
          to label %523 unwind label %529

523:                                              ; preds = %521
  %524 = zext i1 %522 to i8
  store i8 %524, ptr %58, align 1, !tbaa !35
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %65) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %65) #7
  br label %559

525:                                              ; preds = %519
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %10, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %11, align 4
  br label %533

529:                                              ; preds = %521
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %10, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %65) #7
  br label %533

533:                                              ; preds = %529, %525
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %65) #7
  br label %1496

534:                                              ; preds = %499, %499, %499, %499, %499, %499, %499
  store i8 1, ptr %58, align 1, !tbaa !35
  br label %559

535:                                              ; preds = %499
  store i8 0, ptr %58, align 1, !tbaa !35
  br label %559

536:                                              ; preds = %499, %499
  br label %537

537:                                              ; preds = %536, %499
  store i1 true, ptr %71, align 1
  %538 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %539 unwind label %542

539:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %540 unwind label %546

540:                                              ; preds = %539
  invoke void @_ZN7SGTELIB9ExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiS8_(ptr noundef nonnull align 8 dereferenceable(112) %538, ptr noundef nonnull align 8 dereferenceable(32) %67, i32 noundef 187, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %541 unwind label %550

541:                                              ; preds = %540
  store i1 false, ptr %71, align 1
  invoke void @__cxa_throw(ptr %538, ptr @_ZTIN7SGTELIB9ExceptionE, ptr @_ZN7SGTELIB9ExceptionD2Ev) #8
          to label %2259 unwind label %550

542:                                              ; preds = %537
  %543 = landingpad { ptr, i32 }
          cleanup
  %544 = extractvalue { ptr, i32 } %543, 0
  store ptr %544, ptr %10, align 8
  %545 = extractvalue { ptr, i32 } %543, 1
  store i32 %545, ptr %11, align 4
  br label %555

546:                                              ; preds = %539
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %10, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %11, align 4
  br label %554

550:                                              ; preds = %541, %540
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %10, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %554

554:                                              ; preds = %550, %546
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  br label %555

555:                                              ; preds = %554, %542
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #7
  %556 = load i1, ptr %71, align 1
  br i1 %556, label %557, label %558

557:                                              ; preds = %555
  call void @__cxa_free_exception(ptr %538) #7
  br label %558

558:                                              ; preds = %557, %555
  br label %1496

559:                                              ; preds = %535, %534, %523
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #7
  store i32 7, ptr %72, align 4, !tbaa !9
  %560 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %72)
          to label %561 unwind label %583

561:                                              ; preds = %559
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #7
  br i1 %560, label %562, label %628

562:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #7
  invoke void @_ZN9NOMAD_4_335SgtelibModelFormulationTypeToStringB5cxx11ERKNS_27SgtelibModelFormulationTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 4 dereferenceable(4) %59)
          to label %563 unwind label %587

563:                                              ; preds = %562
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef @.str.19, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %564 unwind label %591

564:                                              ; preds = %563
  %565 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #7
  %566 = load i8, ptr %58, align 1, !tbaa !35, !range !42, !noundef !43
  %567 = trunc i8 %566 to i1
  invoke void @_ZN9NOMAD_4_312boolToStringB5cxx11Eb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, i1 noundef zeroext %567)
          to label %568 unwind label %596

568:                                              ; preds = %564
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %569 unwind label %600

569:                                              ; preds = %568
  %570 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %571 unwind label %604

571:                                              ; preds = %569
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #7
  %572 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 1
  %573 = load ptr, ptr %572, align 8, !tbaa !36
  %574 = invoke noundef zeroext i1 @_ZNK9NOMAD_4_312SgtelibModel16getFoundFeasibleEv(ptr noundef nonnull align 8 dereferenceable(552) %573)
          to label %575 unwind label %610

575:                                              ; preds = %571
  invoke void @_ZN9NOMAD_4_312boolToStringB5cxx11Eb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, i1 noundef zeroext %574)
          to label %576 unwind label %610

576:                                              ; preds = %575
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef @.str.21, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %577 unwind label %614

577:                                              ; preds = %576
  %578 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %579 unwind label %618

579:                                              ; preds = %577
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #7
  %580 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %581 = load i32, ptr %580, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %581)
          to label %582 unwind label %624

582:                                              ; preds = %579
  br label %628

583:                                              ; preds = %559
  %584 = landingpad { ptr, i32 }
          cleanup
  %585 = extractvalue { ptr, i32 } %584, 0
  store ptr %585, ptr %10, align 8
  %586 = extractvalue { ptr, i32 } %584, 1
  store i32 %586, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #7
  br label %1496

587:                                              ; preds = %562
  %588 = landingpad { ptr, i32 }
          cleanup
  %589 = extractvalue { ptr, i32 } %588, 0
  store ptr %589, ptr %10, align 8
  %590 = extractvalue { ptr, i32 } %588, 1
  store i32 %590, ptr %11, align 4
  br label %595

591:                                              ; preds = %563
  %592 = landingpad { ptr, i32 }
          cleanup
  %593 = extractvalue { ptr, i32 } %592, 0
  store ptr %593, ptr %10, align 8
  %594 = extractvalue { ptr, i32 } %592, 1
  store i32 %594, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  br label %595

595:                                              ; preds = %591, %587
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #7
  br label %1496

596:                                              ; preds = %564
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %10, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %11, align 4
  br label %609

600:                                              ; preds = %568
  %601 = landingpad { ptr, i32 }
          cleanup
  %602 = extractvalue { ptr, i32 } %601, 0
  store ptr %602, ptr %10, align 8
  %603 = extractvalue { ptr, i32 } %601, 1
  store i32 %603, ptr %11, align 4
  br label %608

604:                                              ; preds = %569
  %605 = landingpad { ptr, i32 }
          cleanup
  %606 = extractvalue { ptr, i32 } %605, 0
  store ptr %606, ptr %10, align 8
  %607 = extractvalue { ptr, i32 } %605, 1
  store i32 %607, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  br label %608

608:                                              ; preds = %604, %600
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  br label %609

609:                                              ; preds = %608, %596
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #7
  br label %1496

610:                                              ; preds = %575, %571
  %611 = landingpad { ptr, i32 }
          cleanup
  %612 = extractvalue { ptr, i32 } %611, 0
  store ptr %612, ptr %10, align 8
  %613 = extractvalue { ptr, i32 } %611, 1
  store i32 %613, ptr %11, align 4
  br label %623

614:                                              ; preds = %576
  %615 = landingpad { ptr, i32 }
          cleanup
  %616 = extractvalue { ptr, i32 } %615, 0
  store ptr %616, ptr %10, align 8
  %617 = extractvalue { ptr, i32 } %615, 1
  store i32 %617, ptr %11, align 4
  br label %622

618:                                              ; preds = %577
  %619 = landingpad { ptr, i32 }
          cleanup
  %620 = extractvalue { ptr, i32 } %619, 0
  store ptr %620, ptr %10, align 8
  %621 = extractvalue { ptr, i32 } %619, 1
  store i32 %621, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %622

622:                                              ; preds = %618, %614
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  br label %623

623:                                              ; preds = %622, %610
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #7
  br label %1496

624:                                              ; preds = %1244, %1236, %1234, %1164, %1115, %1046, %1003, %888, %866, %827, %816, %814, %812, %809, %807, %805, %803, %801, %799, %794, %789, %787, %645, %579
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %10, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %11, align 4
  br label %1496

628:                                              ; preds = %582, %561
  %629 = load i32, ptr %59, align 4, !tbaa !37
  %630 = icmp eq i32 %629, 8
  br i1 %630, label %631, label %678

631:                                              ; preds = %628
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #7
  store i32 7, ptr %79, align 4, !tbaa !9
  %632 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %79)
          to label %633 unwind label %650

633:                                              ; preds = %631
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #7
  br i1 %632, label %634, label %677

634:                                              ; preds = %633
  call void @llvm.lifetime.start.p0(i64 56, ptr %80) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %81) #7
  %635 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 1
  %636 = load ptr, ptr %635, align 8, !tbaa !36
  invoke void @_ZNK9NOMAD_4_312SgtelibModel14getTrainingSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.69") align 8 %81, ptr noundef nonnull align 8 dereferenceable(552) %636)
          to label %637 unwind label %654

637:                                              ; preds = %634
  %638 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %81) #7
  invoke void @_ZNK7SGTELIB11TrainingSet23get_distance_to_closestERKNS_6MatrixE(ptr dead_on_unwind writable sret(%"class.SGTELIB::Matrix") align 8 %80, ptr noundef nonnull align 8 dereferenceable(504) %638, ptr noundef nonnull align 8 dereferenceable(56) %55)
          to label %639 unwind label %658

639:                                              ; preds = %637
  %640 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %80, i32 noundef 0, i32 noundef 0)
          to label %641 unwind label %662

641:                                              ; preds = %639
  %642 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %51, double noundef %640)
          to label %643 unwind label %662

643:                                              ; preds = %641
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %80) #7
  call void @_ZNSt12__shared_ptrIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %80) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %83, ptr noundef nonnull align 8 dereferenceable(17) %51, i32 noundef 6, i64 noundef 0)
          to label %644 unwind label %668

644:                                              ; preds = %643
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef @.str.22, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %645 unwind label %672

645:                                              ; preds = %644
  %646 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #7
  %647 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %648 = load i32, ptr %647, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %648)
          to label %649 unwind label %624

649:                                              ; preds = %645
  br label %677

650:                                              ; preds = %631
  %651 = landingpad { ptr, i32 }
          cleanup
  %652 = extractvalue { ptr, i32 } %651, 0
  store ptr %652, ptr %10, align 8
  %653 = extractvalue { ptr, i32 } %651, 1
  store i32 %653, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #7
  br label %1496

654:                                              ; preds = %634
  %655 = landingpad { ptr, i32 }
          cleanup
  %656 = extractvalue { ptr, i32 } %655, 0
  store ptr %656, ptr %10, align 8
  %657 = extractvalue { ptr, i32 } %655, 1
  store i32 %657, ptr %11, align 4
  br label %667

658:                                              ; preds = %637
  %659 = landingpad { ptr, i32 }
          cleanup
  %660 = extractvalue { ptr, i32 } %659, 0
  store ptr %660, ptr %10, align 8
  %661 = extractvalue { ptr, i32 } %659, 1
  store i32 %661, ptr %11, align 4
  br label %666

662:                                              ; preds = %641, %639
  %663 = landingpad { ptr, i32 }
          cleanup
  %664 = extractvalue { ptr, i32 } %663, 0
  store ptr %664, ptr %10, align 8
  %665 = extractvalue { ptr, i32 } %663, 1
  store i32 %665, ptr %11, align 4
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %80) #7
  br label %666

666:                                              ; preds = %662, %658
  call void @_ZNSt12__shared_ptrIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #7
  br label %667

667:                                              ; preds = %666, %654
  call void @llvm.lifetime.end.p0(i64 16, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %80) #7
  br label %1496

668:                                              ; preds = %643
  %669 = landingpad { ptr, i32 }
          cleanup
  %670 = extractvalue { ptr, i32 } %669, 0
  store ptr %670, ptr %10, align 8
  %671 = extractvalue { ptr, i32 } %669, 1
  store i32 %671, ptr %11, align 4
  br label %676

672:                                              ; preds = %644
  %673 = landingpad { ptr, i32 }
          cleanup
  %674 = extractvalue { ptr, i32 } %673, 0
  store ptr %674, ptr %10, align 8
  %675 = extractvalue { ptr, i32 } %673, 1
  store i32 %675, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  br label %676

676:                                              ; preds = %672, %668
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #7
  br label %1496

677:                                              ; preds = %649, %633
  br label %787

678:                                              ; preds = %628
  %679 = load i32, ptr %59, align 4, !tbaa !37
  %680 = icmp eq i32 %679, 9
  br i1 %680, label %681, label %703

681:                                              ; preds = %678
  store i1 true, ptr %88, align 1
  %682 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %683 unwind label %686

683:                                              ; preds = %681
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %684 unwind label %690

684:                                              ; preds = %683
  invoke void @_ZN7SGTELIB9ExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiS8_(ptr noundef nonnull align 8 dereferenceable(112) %682, ptr noundef nonnull align 8 dereferenceable(32) %84, i32 noundef 209, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %685 unwind label %694

685:                                              ; preds = %684
  store i1 false, ptr %88, align 1
  invoke void @__cxa_throw(ptr %682, ptr @_ZTIN7SGTELIB9ExceptionE, ptr @_ZN7SGTELIB9ExceptionD2Ev) #8
          to label %2259 unwind label %694

686:                                              ; preds = %681
  %687 = landingpad { ptr, i32 }
          cleanup
  %688 = extractvalue { ptr, i32 } %687, 0
  store ptr %688, ptr %10, align 8
  %689 = extractvalue { ptr, i32 } %687, 1
  store i32 %689, ptr %11, align 4
  br label %699

690:                                              ; preds = %683
  %691 = landingpad { ptr, i32 }
          cleanup
  %692 = extractvalue { ptr, i32 } %691, 0
  store ptr %692, ptr %10, align 8
  %693 = extractvalue { ptr, i32 } %691, 1
  store i32 %693, ptr %11, align 4
  br label %698

694:                                              ; preds = %685, %684
  %695 = landingpad { ptr, i32 }
          cleanup
  %696 = extractvalue { ptr, i32 } %695, 0
  store ptr %696, ptr %10, align 8
  %697 = extractvalue { ptr, i32 } %695, 1
  store i32 %697, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  br label %698

698:                                              ; preds = %694, %690
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  br label %699

699:                                              ; preds = %698, %686
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #7
  %700 = load i1, ptr %88, align 1
  br i1 %700, label %701, label %702

701:                                              ; preds = %699
  call void @__cxa_free_exception(ptr %682) #7
  br label %702

702:                                              ; preds = %701, %699
  br label %1496

703:                                              ; preds = %678
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #7
  store i32 7, ptr %89, align 4, !tbaa !9
  %704 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %89)
          to label %705 unwind label %711

705:                                              ; preds = %703
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #7
  br i1 %704, label %706, label %724

706:                                              ; preds = %705
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %707 unwind label %715

707:                                              ; preds = %706
  %708 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %709 = load i32, ptr %708, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %90, i32 noundef %709)
          to label %710 unwind label %719

710:                                              ; preds = %707
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #7
  br label %724

711:                                              ; preds = %703
  %712 = landingpad { ptr, i32 }
          cleanup
  %713 = extractvalue { ptr, i32 } %712, 0
  store ptr %713, ptr %10, align 8
  %714 = extractvalue { ptr, i32 } %712, 1
  store i32 %714, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #7
  br label %1496

715:                                              ; preds = %706
  %716 = landingpad { ptr, i32 }
          cleanup
  %717 = extractvalue { ptr, i32 } %716, 0
  store ptr %717, ptr %10, align 8
  %718 = extractvalue { ptr, i32 } %716, 1
  store i32 %718, ptr %11, align 4
  br label %723

719:                                              ; preds = %707
  %720 = landingpad { ptr, i32 }
          cleanup
  %721 = extractvalue { ptr, i32 } %720, 0
  store ptr %721, ptr %10, align 8
  %722 = extractvalue { ptr, i32 } %720, 1
  store i32 %722, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #7
  br label %723

723:                                              ; preds = %719, %715
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #7
  br label %1496

724:                                              ; preds = %710, %705
  call void @llvm.lifetime.start.p0(i64 16, ptr %92) #7
  %725 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 1
  %726 = load ptr, ptr %725, align 8, !tbaa !36
  invoke void @_ZNK9NOMAD_4_312SgtelibModel8getModelEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.72") align 8 %92, ptr noundef nonnull align 8 dereferenceable(552) %726)
          to label %727 unwind label %737

727:                                              ; preds = %724
  %728 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %94)
          to label %729 unwind label %741

729:                                              ; preds = %727
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %96) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef @__FUNCTION__._ZNK9NOMAD_4_321SgtelibModelEvaluator6eval_xERNS_9EvalPointERKNS_6DoubleERb, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %730 unwind label %745

730:                                              ; preds = %729
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #7
  store i32 219, ptr %97, align 4, !tbaa !44
  invoke void @_ZNK7SGTELIB9Surrogate11check_readyERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_RKi(ptr noundef nonnull align 8 dereferenceable(985) %728, ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 4 dereferenceable(4) %97)
          to label %731 unwind label %749

731:                                              ; preds = %730
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #7
  %732 = load i8, ptr %58, align 1, !tbaa !35, !range !42, !noundef !43
  %733 = trunc i8 %732 to i1
  br i1 %733, label %734, label %759

734:                                              ; preds = %731
  %735 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  invoke void @_ZN7SGTELIB9Surrogate7predictERKNS_6MatrixEPS1_S4_S4_S4_(ptr noundef nonnull align 8 dereferenceable(985) %735, ptr noundef nonnull align 8 dereferenceable(56) %55, ptr noundef %21, ptr noundef %24, ptr noundef %30, ptr noundef %27)
          to label %736 unwind label %755

736:                                              ; preds = %734
  br label %762

737:                                              ; preds = %724
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %10, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %11, align 4
  br label %785

741:                                              ; preds = %727
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %10, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %11, align 4
  br label %754

745:                                              ; preds = %729
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %10, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %11, align 4
  br label %753

749:                                              ; preds = %730
  %750 = landingpad { ptr, i32 }
          cleanup
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %10, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  br label %753

753:                                              ; preds = %749, %745
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %754

754:                                              ; preds = %753, %741
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #7
  br label %784

755:                                              ; preds = %759, %734
  %756 = landingpad { ptr, i32 }
          cleanup
  %757 = extractvalue { ptr, i32 } %756, 0
  store ptr %757, ptr %10, align 8
  %758 = extractvalue { ptr, i32 } %756, 1
  store i32 %758, ptr %11, align 4
  br label %784

759:                                              ; preds = %731
  %760 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  invoke void @_ZN7SGTELIB9Surrogate7predictERKNS_6MatrixEPS1_(ptr noundef nonnull align 8 dereferenceable(985) %760, ptr noundef nonnull align 8 dereferenceable(56) %55, ptr noundef %21)
          to label %761 unwind label %755

761:                                              ; preds = %759
  br label %762

762:                                              ; preds = %761, %736
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #7
  store i32 7, ptr %98, align 4, !tbaa !9
  %763 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %98)
          to label %764 unwind label %770

764:                                              ; preds = %762
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #7
  br i1 %763, label %765, label %783

765:                                              ; preds = %764
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %100) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %100)
          to label %766 unwind label %774

766:                                              ; preds = %765
  %767 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %768 = load i32, ptr %767, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %99, i32 noundef %768)
          to label %769 unwind label %778

769:                                              ; preds = %766
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #7
  br label %783

770:                                              ; preds = %762
  %771 = landingpad { ptr, i32 }
          cleanup
  %772 = extractvalue { ptr, i32 } %771, 0
  store ptr %772, ptr %10, align 8
  %773 = extractvalue { ptr, i32 } %771, 1
  store i32 %773, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #7
  br label %784

774:                                              ; preds = %765
  %775 = landingpad { ptr, i32 }
          cleanup
  %776 = extractvalue { ptr, i32 } %775, 0
  store ptr %776, ptr %10, align 8
  %777 = extractvalue { ptr, i32 } %775, 1
  store i32 %777, ptr %11, align 4
  br label %782

778:                                              ; preds = %766
  %779 = landingpad { ptr, i32 }
          cleanup
  %780 = extractvalue { ptr, i32 } %779, 0
  store ptr %780, ptr %10, align 8
  %781 = extractvalue { ptr, i32 } %779, 1
  store i32 %781, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  br label %782

782:                                              ; preds = %778, %774
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #7
  br label %784

783:                                              ; preds = %769, %764
  call void @_ZNSt12__shared_ptrIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %92) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #7
  br label %786

784:                                              ; preds = %782, %770, %755, %754
  call void @_ZNSt12__shared_ptrIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %92) #7
  br label %785

785:                                              ; preds = %784, %737
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #7
  br label %1496

786:                                              ; preds = %783
  br label %787

787:                                              ; preds = %786, %677
  %788 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %21, i32 noundef 0, i32 noundef 0)
          to label %789 unwind label %624

789:                                              ; preds = %787
  %790 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %35, double noundef %788)
          to label %791 unwind label %624

791:                                              ; preds = %789
  %792 = load i8, ptr %58, align 1, !tbaa !35, !range !42, !noundef !43
  %793 = trunc i8 %792 to i1
  br i1 %793, label %794, label %861

794:                                              ; preds = %791
  %795 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 1
  %796 = load ptr, ptr %795, align 8, !tbaa !36
  %797 = invoke noundef zeroext i1 @_ZNK9NOMAD_4_312SgtelibModel16getFoundFeasibleEv(ptr noundef nonnull align 8 dereferenceable(552) %796)
          to label %798 unwind label %624

798:                                              ; preds = %794
  br i1 %797, label %799, label %812

799:                                              ; preds = %798
  %800 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %24, i32 noundef 0, i32 noundef 0)
          to label %801 unwind label %624

801:                                              ; preds = %799
  %802 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %37, double noundef %800)
          to label %803 unwind label %624

803:                                              ; preds = %801
  %804 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %27, i32 noundef 0, i32 noundef 0)
          to label %805 unwind label %624

805:                                              ; preds = %803
  %806 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %39, double noundef %804)
          to label %807 unwind label %624

807:                                              ; preds = %805
  %808 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %30, i32 noundef 0, i32 noundef 0)
          to label %809 unwind label %624

809:                                              ; preds = %807
  %810 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %41, double noundef %808)
          to label %811 unwind label %624

811:                                              ; preds = %809
  br label %819

812:                                              ; preds = %798
  %813 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %37, double noundef 1.000000e+00)
          to label %814 unwind label %624

814:                                              ; preds = %812
  %815 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %39, double noundef 1.000000e+00)
          to label %816 unwind label %624

816:                                              ; preds = %814
  %817 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %41, double noundef 1.000000e+00)
          to label %818 unwind label %624

818:                                              ; preds = %816
  br label %819

819:                                              ; preds = %818, %811
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #7
  store i32 7, ptr %101, align 4, !tbaa !9
  %820 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %101)
          to label %821 unwind label %832

821:                                              ; preds = %819
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #7
  br i1 %820, label %822, label %860

822:                                              ; preds = %821
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %104) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %105, ptr noundef nonnull align 8 dereferenceable(17) %35, i32 noundef 6, i64 noundef 0)
          to label %823 unwind label %836

823:                                              ; preds = %822
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %104, ptr noundef @.str.26, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %824 unwind label %840

824:                                              ; preds = %823
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %103, ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef @.str.27)
          to label %825 unwind label %844

825:                                              ; preds = %824
  call void @llvm.lifetime.start.p0(i64 32, ptr %106) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr noundef nonnull align 8 dereferenceable(17) %37, i32 noundef 6, i64 noundef 0)
          to label %826 unwind label %848

826:                                              ; preds = %825
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %827 unwind label %852

827:                                              ; preds = %826
  %828 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #7
  %829 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %830 = load i32, ptr %829, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %830)
          to label %831 unwind label %624

831:                                              ; preds = %827
  br label %860

832:                                              ; preds = %819
  %833 = landingpad { ptr, i32 }
          cleanup
  %834 = extractvalue { ptr, i32 } %833, 0
  store ptr %834, ptr %10, align 8
  %835 = extractvalue { ptr, i32 } %833, 1
  store i32 %835, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #7
  br label %1496

836:                                              ; preds = %822
  %837 = landingpad { ptr, i32 }
          cleanup
  %838 = extractvalue { ptr, i32 } %837, 0
  store ptr %838, ptr %10, align 8
  %839 = extractvalue { ptr, i32 } %837, 1
  store i32 %839, ptr %11, align 4
  br label %859

840:                                              ; preds = %823
  %841 = landingpad { ptr, i32 }
          cleanup
  %842 = extractvalue { ptr, i32 } %841, 0
  store ptr %842, ptr %10, align 8
  %843 = extractvalue { ptr, i32 } %841, 1
  store i32 %843, ptr %11, align 4
  br label %858

844:                                              ; preds = %824
  %845 = landingpad { ptr, i32 }
          cleanup
  %846 = extractvalue { ptr, i32 } %845, 0
  store ptr %846, ptr %10, align 8
  %847 = extractvalue { ptr, i32 } %845, 1
  store i32 %847, ptr %11, align 4
  br label %857

848:                                              ; preds = %825
  %849 = landingpad { ptr, i32 }
          cleanup
  %850 = extractvalue { ptr, i32 } %849, 0
  store ptr %850, ptr %10, align 8
  %851 = extractvalue { ptr, i32 } %849, 1
  store i32 %851, ptr %11, align 4
  br label %856

852:                                              ; preds = %826
  %853 = landingpad { ptr, i32 }
          cleanup
  %854 = extractvalue { ptr, i32 } %853, 0
  store ptr %854, ptr %10, align 8
  %855 = extractvalue { ptr, i32 } %853, 1
  store i32 %855, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #7
  br label %856

856:                                              ; preds = %852, %848
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  br label %857

857:                                              ; preds = %856, %844
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #7
  br label %858

858:                                              ; preds = %857, %840
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #7
  br label %859

859:                                              ; preds = %858, %836
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #7
  br label %1496

860:                                              ; preds = %831, %821
  br label %885

861:                                              ; preds = %791
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #7
  store i32 7, ptr %107, align 4, !tbaa !9
  %862 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %107)
          to label %863 unwind label %871

863:                                              ; preds = %861
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #7
  br i1 %862, label %864, label %884

864:                                              ; preds = %863
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %109, ptr noundef nonnull align 8 dereferenceable(17) %35, i32 noundef 6, i64 noundef 0)
          to label %865 unwind label %875

865:                                              ; preds = %864
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %108, ptr noundef @.str.26, ptr noundef nonnull align 8 dereferenceable(32) %109)
          to label %866 unwind label %879

866:                                              ; preds = %865
  %867 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #7
  %868 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %869 = load i32, ptr %868, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %869)
          to label %870 unwind label %624

870:                                              ; preds = %866
  br label %884

871:                                              ; preds = %861
  %872 = landingpad { ptr, i32 }
          cleanup
  %873 = extractvalue { ptr, i32 } %872, 0
  store ptr %873, ptr %10, align 8
  %874 = extractvalue { ptr, i32 } %872, 1
  store i32 %874, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #7
  br label %1496

875:                                              ; preds = %864
  %876 = landingpad { ptr, i32 }
          cleanup
  %877 = extractvalue { ptr, i32 } %876, 0
  store ptr %877, ptr %10, align 8
  %878 = extractvalue { ptr, i32 } %876, 1
  store i32 %878, ptr %11, align 4
  br label %883

879:                                              ; preds = %865
  %880 = landingpad { ptr, i32 }
          cleanup
  %881 = extractvalue { ptr, i32 } %880, 0
  store ptr %881, ptr %10, align 8
  %882 = extractvalue { ptr, i32 } %880, 1
  store i32 %882, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  br label %883

883:                                              ; preds = %879, %875
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #7
  br label %1496

884:                                              ; preds = %870, %863
  br label %885

885:                                              ; preds = %884, %860
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #7
  store i32 7, ptr %110, align 4, !tbaa !9
  %886 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %110)
          to label %887 unwind label %893

887:                                              ; preds = %885
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #7
  br i1 %886, label %888, label %1241

888:                                              ; preds = %887
  %889 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.28)
          to label %890 unwind label %624

890:                                              ; preds = %888
  %891 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 4
  %892 = load i32, ptr %891, align 8, !tbaa !33
  switch i32 %892, label %1234 [
    i32 0, label %897
    i32 1, label %1046
    i32 2, label %1115
    i32 3, label %1164
    i32 4, label %1233
  ]

893:                                              ; preds = %885
  %894 = landingpad { ptr, i32 }
          cleanup
  %895 = extractvalue { ptr, i32 } %894, 0
  store ptr %895, ptr %10, align 8
  %896 = extractvalue { ptr, i32 } %894, 1
  store i32 %896, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #7
  br label %1496

897:                                              ; preds = %890
  %898 = load i8, ptr %58, align 1, !tbaa !35, !range !42, !noundef !43
  %899 = trunc i8 %898 to i1
  br i1 %899, label %900, label %1003

900:                                              ; preds = %897
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #7
  store i64 1, ptr %111, align 8, !tbaa !32
  br label %901

901:                                              ; preds = %936, %900
  %902 = load i64, ptr %111, align 8, !tbaa !32
  %903 = load i64, ptr %20, align 8, !tbaa !32
  %904 = icmp ult i64 %902, %903
  br i1 %904, label %906, label %905

905:                                              ; preds = %901
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #7
  br label %1002

906:                                              ; preds = %901
  call void @llvm.lifetime.start.p0(i64 32, ptr %112) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %114) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %115) #7
  %907 = load i64, ptr %111, align 8, !tbaa !32
  invoke void @_ZNSt7__cxx119to_stringEm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %115, i64 noundef %907)
          to label %908 unwind label %939

908:                                              ; preds = %906
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %114, ptr noundef @.str.29, ptr noundef nonnull align 8 dereferenceable(32) %115)
          to label %909 unwind label %943

909:                                              ; preds = %908
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %113, ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef @.str.30)
          to label %910 unwind label %947

910:                                              ; preds = %909
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #7
  %911 = load i64, ptr %111, align 8, !tbaa !32
  %912 = trunc i64 %911 to i32
  %913 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %21, i32 noundef 0, i32 noundef %912)
          to label %914 unwind label %951

914:                                              ; preds = %910
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %116, double noundef %913)
          to label %915 unwind label %951

915:                                              ; preds = %914
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %112, ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull align 8 dereferenceable(32) %116)
          to label %916 unwind label %955

916:                                              ; preds = %915
  %917 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %112)
          to label %918 unwind label %959

918:                                              ; preds = %916
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %117) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #7
  %919 = load i64, ptr %111, align 8, !tbaa !32
  %920 = trunc i64 %919 to i32
  %921 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %24, i32 noundef 0, i32 noundef %920)
          to label %922 unwind label %968

922:                                              ; preds = %918
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %118, double noundef %921)
          to label %923 unwind label %968

923:                                              ; preds = %922
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %117, ptr noundef @.str.27, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %924 unwind label %972

924:                                              ; preds = %923
  %925 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %117)
          to label %926 unwind label %976

926:                                              ; preds = %924
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %119) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %120) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %121) #7
  %927 = load i64, ptr %111, align 8, !tbaa !32
  %928 = trunc i64 %927 to i32
  %929 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %27, i32 noundef 0, i32 noundef %928)
          to label %930 unwind label %982

930:                                              ; preds = %926
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %121, double noundef %929)
          to label %931 unwind label %982

931:                                              ; preds = %930
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %120, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(32) %121)
          to label %932 unwind label %986

932:                                              ; preds = %931
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %119, ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef @.str.32)
          to label %933 unwind label %990

933:                                              ; preds = %932
  %934 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %119)
          to label %935 unwind label %994

935:                                              ; preds = %933
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #7
  br label %936

936:                                              ; preds = %935
  %937 = load i64, ptr %111, align 8, !tbaa !32
  %938 = add i64 %937, 1
  store i64 %938, ptr %111, align 8, !tbaa !32
  br label %901, !llvm.loop !46

939:                                              ; preds = %906
  %940 = landingpad { ptr, i32 }
          cleanup
  %941 = extractvalue { ptr, i32 } %940, 0
  store ptr %941, ptr %10, align 8
  %942 = extractvalue { ptr, i32 } %940, 1
  store i32 %942, ptr %11, align 4
  br label %967

943:                                              ; preds = %908
  %944 = landingpad { ptr, i32 }
          cleanup
  %945 = extractvalue { ptr, i32 } %944, 0
  store ptr %945, ptr %10, align 8
  %946 = extractvalue { ptr, i32 } %944, 1
  store i32 %946, ptr %11, align 4
  br label %966

947:                                              ; preds = %909
  %948 = landingpad { ptr, i32 }
          cleanup
  %949 = extractvalue { ptr, i32 } %948, 0
  store ptr %949, ptr %10, align 8
  %950 = extractvalue { ptr, i32 } %948, 1
  store i32 %950, ptr %11, align 4
  br label %965

951:                                              ; preds = %914, %910
  %952 = landingpad { ptr, i32 }
          cleanup
  %953 = extractvalue { ptr, i32 } %952, 0
  store ptr %953, ptr %10, align 8
  %954 = extractvalue { ptr, i32 } %952, 1
  store i32 %954, ptr %11, align 4
  br label %964

955:                                              ; preds = %915
  %956 = landingpad { ptr, i32 }
          cleanup
  %957 = extractvalue { ptr, i32 } %956, 0
  store ptr %957, ptr %10, align 8
  %958 = extractvalue { ptr, i32 } %956, 1
  store i32 %958, ptr %11, align 4
  br label %963

959:                                              ; preds = %916
  %960 = landingpad { ptr, i32 }
          cleanup
  %961 = extractvalue { ptr, i32 } %960, 0
  store ptr %961, ptr %10, align 8
  %962 = extractvalue { ptr, i32 } %960, 1
  store i32 %962, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #7
  br label %963

963:                                              ; preds = %959, %955
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  br label %964

964:                                              ; preds = %963, %951
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #7
  br label %965

965:                                              ; preds = %964, %947
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #7
  br label %966

966:                                              ; preds = %965, %943
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #7
  br label %967

967:                                              ; preds = %966, %939
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #7
  br label %1001

968:                                              ; preds = %922, %918
  %969 = landingpad { ptr, i32 }
          cleanup
  %970 = extractvalue { ptr, i32 } %969, 0
  store ptr %970, ptr %10, align 8
  %971 = extractvalue { ptr, i32 } %969, 1
  store i32 %971, ptr %11, align 4
  br label %981

972:                                              ; preds = %923
  %973 = landingpad { ptr, i32 }
          cleanup
  %974 = extractvalue { ptr, i32 } %973, 0
  store ptr %974, ptr %10, align 8
  %975 = extractvalue { ptr, i32 } %973, 1
  store i32 %975, ptr %11, align 4
  br label %980

976:                                              ; preds = %924
  %977 = landingpad { ptr, i32 }
          cleanup
  %978 = extractvalue { ptr, i32 } %977, 0
  store ptr %978, ptr %10, align 8
  %979 = extractvalue { ptr, i32 } %977, 1
  store i32 %979, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  br label %980

980:                                              ; preds = %976, %972
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  br label %981

981:                                              ; preds = %980, %968
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #7
  br label %1001

982:                                              ; preds = %930, %926
  %983 = landingpad { ptr, i32 }
          cleanup
  %984 = extractvalue { ptr, i32 } %983, 0
  store ptr %984, ptr %10, align 8
  %985 = extractvalue { ptr, i32 } %983, 1
  store i32 %985, ptr %11, align 4
  br label %1000

986:                                              ; preds = %931
  %987 = landingpad { ptr, i32 }
          cleanup
  %988 = extractvalue { ptr, i32 } %987, 0
  store ptr %988, ptr %10, align 8
  %989 = extractvalue { ptr, i32 } %987, 1
  store i32 %989, ptr %11, align 4
  br label %999

990:                                              ; preds = %932
  %991 = landingpad { ptr, i32 }
          cleanup
  %992 = extractvalue { ptr, i32 } %991, 0
  store ptr %992, ptr %10, align 8
  %993 = extractvalue { ptr, i32 } %991, 1
  store i32 %993, ptr %11, align 4
  br label %998

994:                                              ; preds = %933
  %995 = landingpad { ptr, i32 }
          cleanup
  %996 = extractvalue { ptr, i32 } %995, 0
  store ptr %996, ptr %10, align 8
  %997 = extractvalue { ptr, i32 } %995, 1
  store i32 %997, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #7
  br label %998

998:                                              ; preds = %994, %990
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #7
  br label %999

999:                                              ; preds = %998, %986
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #7
  br label %1000

1000:                                             ; preds = %999, %982
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #7
  br label %1001

1001:                                             ; preds = %1000, %981, %967
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #7
  br label %1496

1002:                                             ; preds = %905
  br label %1045

1003:                                             ; preds = %897
  %1004 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.33)
          to label %1005 unwind label %624

1005:                                             ; preds = %1003
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #7
  store i64 1, ptr %122, align 8, !tbaa !32
  br label %1006

1006:                                             ; preds = %1022, %1005
  %1007 = load i64, ptr %122, align 8, !tbaa !32
  %1008 = load i64, ptr %20, align 8, !tbaa !32
  %1009 = icmp ult i64 %1007, %1008
  br i1 %1009, label %1011, label %1010

1010:                                             ; preds = %1006
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #7
  br label %1044

1011:                                             ; preds = %1006
  call void @llvm.lifetime.start.p0(i64 32, ptr %123) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %124) #7
  %1012 = load i64, ptr %122, align 8, !tbaa !32
  %1013 = trunc i64 %1012 to i32
  %1014 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %21, i32 noundef 0, i32 noundef %1013)
          to label %1015 unwind label %1025

1015:                                             ; preds = %1011
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %124, double noundef %1014)
          to label %1016 unwind label %1025

1016:                                             ; preds = %1015
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %123, ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef @.str.34)
          to label %1017 unwind label %1029

1017:                                             ; preds = %1016
  %1018 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %123)
          to label %1019 unwind label %1033

1019:                                             ; preds = %1017
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #7
  %1020 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.35)
          to label %1021 unwind label %1039

1021:                                             ; preds = %1019
  br label %1022

1022:                                             ; preds = %1021
  %1023 = load i64, ptr %122, align 8, !tbaa !32
  %1024 = add i64 %1023, 1
  store i64 %1024, ptr %122, align 8, !tbaa !32
  br label %1006, !llvm.loop !47

1025:                                             ; preds = %1015, %1011
  %1026 = landingpad { ptr, i32 }
          cleanup
  %1027 = extractvalue { ptr, i32 } %1026, 0
  store ptr %1027, ptr %10, align 8
  %1028 = extractvalue { ptr, i32 } %1026, 1
  store i32 %1028, ptr %11, align 4
  br label %1038

1029:                                             ; preds = %1016
  %1030 = landingpad { ptr, i32 }
          cleanup
  %1031 = extractvalue { ptr, i32 } %1030, 0
  store ptr %1031, ptr %10, align 8
  %1032 = extractvalue { ptr, i32 } %1030, 1
  store i32 %1032, ptr %11, align 4
  br label %1037

1033:                                             ; preds = %1017
  %1034 = landingpad { ptr, i32 }
          cleanup
  %1035 = extractvalue { ptr, i32 } %1034, 0
  store ptr %1035, ptr %10, align 8
  %1036 = extractvalue { ptr, i32 } %1034, 1
  store i32 %1036, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #7
  br label %1037

1037:                                             ; preds = %1033, %1029
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  br label %1038

1038:                                             ; preds = %1037, %1025
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #7
  br label %1043

1039:                                             ; preds = %1019
  %1040 = landingpad { ptr, i32 }
          cleanup
  %1041 = extractvalue { ptr, i32 } %1040, 0
  store ptr %1041, ptr %10, align 8
  %1042 = extractvalue { ptr, i32 } %1040, 1
  store i32 %1042, ptr %11, align 4
  br label %1043

1043:                                             ; preds = %1039, %1038
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #7
  br label %1496

1044:                                             ; preds = %1010
  br label %1045

1045:                                             ; preds = %1044, %1002
  br label %1240

1046:                                             ; preds = %890
  %1047 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.36)
          to label %1048 unwind label %624

1048:                                             ; preds = %1046
  call void @llvm.lifetime.start.p0(i64 32, ptr %125) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %126) #7
  %1049 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %21, i32 noundef 0, i32 noundef 1)
          to label %1050 unwind label %1068

1050:                                             ; preds = %1048
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %126, double noundef %1049)
          to label %1051 unwind label %1068

1051:                                             ; preds = %1050
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %125, ptr noundef @.str.37, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1052 unwind label %1072

1052:                                             ; preds = %1051
  %1053 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %125)
          to label %1054 unwind label %1076

1054:                                             ; preds = %1052
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %127) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %128) #7
  %1055 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %24, i32 noundef 0, i32 noundef 1)
          to label %1056 unwind label %1082

1056:                                             ; preds = %1054
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %128, double noundef %1055)
          to label %1057 unwind label %1082

1057:                                             ; preds = %1056
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %127, ptr noundef @.str.27, ptr noundef nonnull align 8 dereferenceable(32) %128)
          to label %1058 unwind label %1086

1058:                                             ; preds = %1057
  %1059 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %127)
          to label %1060 unwind label %1090

1060:                                             ; preds = %1058
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %129) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %130) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %131) #7
  %1061 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %27, i32 noundef 0, i32 noundef 1)
          to label %1062 unwind label %1096

1062:                                             ; preds = %1060
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %131, double noundef %1061)
          to label %1063 unwind label %1096

1063:                                             ; preds = %1062
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %130, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(32) %131)
          to label %1064 unwind label %1100

1064:                                             ; preds = %1063
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %129, ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef @.str.32)
          to label %1065 unwind label %1104

1065:                                             ; preds = %1064
  %1066 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %129)
          to label %1067 unwind label %1108

1067:                                             ; preds = %1065
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #7
  br label %1240

1068:                                             ; preds = %1050, %1048
  %1069 = landingpad { ptr, i32 }
          cleanup
  %1070 = extractvalue { ptr, i32 } %1069, 0
  store ptr %1070, ptr %10, align 8
  %1071 = extractvalue { ptr, i32 } %1069, 1
  store i32 %1071, ptr %11, align 4
  br label %1081

1072:                                             ; preds = %1051
  %1073 = landingpad { ptr, i32 }
          cleanup
  %1074 = extractvalue { ptr, i32 } %1073, 0
  store ptr %1074, ptr %10, align 8
  %1075 = extractvalue { ptr, i32 } %1073, 1
  store i32 %1075, ptr %11, align 4
  br label %1080

1076:                                             ; preds = %1052
  %1077 = landingpad { ptr, i32 }
          cleanup
  %1078 = extractvalue { ptr, i32 } %1077, 0
  store ptr %1078, ptr %10, align 8
  %1079 = extractvalue { ptr, i32 } %1077, 1
  store i32 %1079, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  br label %1080

1080:                                             ; preds = %1076, %1072
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #7
  br label %1081

1081:                                             ; preds = %1080, %1068
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #7
  br label %1496

1082:                                             ; preds = %1056, %1054
  %1083 = landingpad { ptr, i32 }
          cleanup
  %1084 = extractvalue { ptr, i32 } %1083, 0
  store ptr %1084, ptr %10, align 8
  %1085 = extractvalue { ptr, i32 } %1083, 1
  store i32 %1085, ptr %11, align 4
  br label %1095

1086:                                             ; preds = %1057
  %1087 = landingpad { ptr, i32 }
          cleanup
  %1088 = extractvalue { ptr, i32 } %1087, 0
  store ptr %1088, ptr %10, align 8
  %1089 = extractvalue { ptr, i32 } %1087, 1
  store i32 %1089, ptr %11, align 4
  br label %1094

1090:                                             ; preds = %1058
  %1091 = landingpad { ptr, i32 }
          cleanup
  %1092 = extractvalue { ptr, i32 } %1091, 0
  store ptr %1092, ptr %10, align 8
  %1093 = extractvalue { ptr, i32 } %1091, 1
  store i32 %1093, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  br label %1094

1094:                                             ; preds = %1090, %1086
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #7
  br label %1095

1095:                                             ; preds = %1094, %1082
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #7
  br label %1496

1096:                                             ; preds = %1062, %1060
  %1097 = landingpad { ptr, i32 }
          cleanup
  %1098 = extractvalue { ptr, i32 } %1097, 0
  store ptr %1098, ptr %10, align 8
  %1099 = extractvalue { ptr, i32 } %1097, 1
  store i32 %1099, ptr %11, align 4
  br label %1114

1100:                                             ; preds = %1063
  %1101 = landingpad { ptr, i32 }
          cleanup
  %1102 = extractvalue { ptr, i32 } %1101, 0
  store ptr %1102, ptr %10, align 8
  %1103 = extractvalue { ptr, i32 } %1101, 1
  store i32 %1103, ptr %11, align 4
  br label %1113

1104:                                             ; preds = %1064
  %1105 = landingpad { ptr, i32 }
          cleanup
  %1106 = extractvalue { ptr, i32 } %1105, 0
  store ptr %1106, ptr %10, align 8
  %1107 = extractvalue { ptr, i32 } %1105, 1
  store i32 %1107, ptr %11, align 4
  br label %1112

1108:                                             ; preds = %1065
  %1109 = landingpad { ptr, i32 }
          cleanup
  %1110 = extractvalue { ptr, i32 } %1109, 0
  store ptr %1110, ptr %10, align 8
  %1111 = extractvalue { ptr, i32 } %1109, 1
  store i32 %1111, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #7
  br label %1112

1112:                                             ; preds = %1108, %1104
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #7
  br label %1113

1113:                                             ; preds = %1112, %1100
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #7
  br label %1114

1114:                                             ; preds = %1113, %1096
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #7
  br label %1496

1115:                                             ; preds = %890
  %1116 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.38)
          to label %1117 unwind label %624

1117:                                             ; preds = %1115
  call void @llvm.lifetime.start.p0(i64 32, ptr %132) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #7
  %1118 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %21, i32 noundef 0, i32 noundef 1)
          to label %1119 unwind label %1131

1119:                                             ; preds = %1117
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %133, double noundef %1118)
          to label %1120 unwind label %1131

1120:                                             ; preds = %1119
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %132, ptr noundef @.str.39, ptr noundef nonnull align 8 dereferenceable(32) %133)
          to label %1121 unwind label %1135

1121:                                             ; preds = %1120
  %1122 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %132)
          to label %1123 unwind label %1139

1123:                                             ; preds = %1121
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %134) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %135) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %136) #7
  %1124 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %27, i32 noundef 0, i32 noundef 1)
          to label %1125 unwind label %1145

1125:                                             ; preds = %1123
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %136, double noundef %1124)
          to label %1126 unwind label %1145

1126:                                             ; preds = %1125
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %135, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(32) %136)
          to label %1127 unwind label %1149

1127:                                             ; preds = %1126
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %134, ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef @.str.32)
          to label %1128 unwind label %1153

1128:                                             ; preds = %1127
  %1129 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %1130 unwind label %1157

1130:                                             ; preds = %1128
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #7
  br label %1240

1131:                                             ; preds = %1119, %1117
  %1132 = landingpad { ptr, i32 }
          cleanup
  %1133 = extractvalue { ptr, i32 } %1132, 0
  store ptr %1133, ptr %10, align 8
  %1134 = extractvalue { ptr, i32 } %1132, 1
  store i32 %1134, ptr %11, align 4
  br label %1144

1135:                                             ; preds = %1120
  %1136 = landingpad { ptr, i32 }
          cleanup
  %1137 = extractvalue { ptr, i32 } %1136, 0
  store ptr %1137, ptr %10, align 8
  %1138 = extractvalue { ptr, i32 } %1136, 1
  store i32 %1138, ptr %11, align 4
  br label %1143

1139:                                             ; preds = %1121
  %1140 = landingpad { ptr, i32 }
          cleanup
  %1141 = extractvalue { ptr, i32 } %1140, 0
  store ptr %1141, ptr %10, align 8
  %1142 = extractvalue { ptr, i32 } %1140, 1
  store i32 %1142, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #7
  br label %1143

1143:                                             ; preds = %1139, %1135
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  br label %1144

1144:                                             ; preds = %1143, %1131
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #7
  br label %1496

1145:                                             ; preds = %1125, %1123
  %1146 = landingpad { ptr, i32 }
          cleanup
  %1147 = extractvalue { ptr, i32 } %1146, 0
  store ptr %1147, ptr %10, align 8
  %1148 = extractvalue { ptr, i32 } %1146, 1
  store i32 %1148, ptr %11, align 4
  br label %1163

1149:                                             ; preds = %1126
  %1150 = landingpad { ptr, i32 }
          cleanup
  %1151 = extractvalue { ptr, i32 } %1150, 0
  store ptr %1151, ptr %10, align 8
  %1152 = extractvalue { ptr, i32 } %1150, 1
  store i32 %1152, ptr %11, align 4
  br label %1162

1153:                                             ; preds = %1127
  %1154 = landingpad { ptr, i32 }
          cleanup
  %1155 = extractvalue { ptr, i32 } %1154, 0
  store ptr %1155, ptr %10, align 8
  %1156 = extractvalue { ptr, i32 } %1154, 1
  store i32 %1156, ptr %11, align 4
  br label %1161

1157:                                             ; preds = %1128
  %1158 = landingpad { ptr, i32 }
          cleanup
  %1159 = extractvalue { ptr, i32 } %1158, 0
  store ptr %1159, ptr %10, align 8
  %1160 = extractvalue { ptr, i32 } %1158, 1
  store i32 %1160, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #7
  br label %1161

1161:                                             ; preds = %1157, %1153
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #7
  br label %1162

1162:                                             ; preds = %1161, %1149
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #7
  br label %1163

1163:                                             ; preds = %1162, %1145
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #7
  br label %1496

1164:                                             ; preds = %890
  %1165 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.40)
          to label %1166 unwind label %624

1166:                                             ; preds = %1164
  call void @llvm.lifetime.start.p0(i64 32, ptr %137) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %138) #7
  %1167 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %21, i32 noundef 0, i32 noundef 1)
          to label %1168 unwind label %1186

1168:                                             ; preds = %1166
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %138, double noundef %1167)
          to label %1169 unwind label %1186

1169:                                             ; preds = %1168
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %137, ptr noundef @.str.41, ptr noundef nonnull align 8 dereferenceable(32) %138)
          to label %1170 unwind label %1190

1170:                                             ; preds = %1169
  %1171 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %137)
          to label %1172 unwind label %1194

1172:                                             ; preds = %1170
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %139) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %140) #7
  %1173 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %24, i32 noundef 0, i32 noundef 1)
          to label %1174 unwind label %1200

1174:                                             ; preds = %1172
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %140, double noundef %1173)
          to label %1175 unwind label %1200

1175:                                             ; preds = %1174
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %139, ptr noundef @.str.27, ptr noundef nonnull align 8 dereferenceable(32) %140)
          to label %1176 unwind label %1204

1176:                                             ; preds = %1175
  %1177 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %139)
          to label %1178 unwind label %1208

1178:                                             ; preds = %1176
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %141) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %142) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %143) #7
  %1179 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %27, i32 noundef 0, i32 noundef 1)
          to label %1180 unwind label %1214

1180:                                             ; preds = %1178
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %143, double noundef %1179)
          to label %1181 unwind label %1214

1181:                                             ; preds = %1180
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %142, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(32) %143)
          to label %1182 unwind label %1218

1182:                                             ; preds = %1181
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %141, ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef @.str.32)
          to label %1183 unwind label %1222

1183:                                             ; preds = %1182
  %1184 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %141)
          to label %1185 unwind label %1226

1185:                                             ; preds = %1183
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %143) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #7
  br label %1240

1186:                                             ; preds = %1168, %1166
  %1187 = landingpad { ptr, i32 }
          cleanup
  %1188 = extractvalue { ptr, i32 } %1187, 0
  store ptr %1188, ptr %10, align 8
  %1189 = extractvalue { ptr, i32 } %1187, 1
  store i32 %1189, ptr %11, align 4
  br label %1199

1190:                                             ; preds = %1169
  %1191 = landingpad { ptr, i32 }
          cleanup
  %1192 = extractvalue { ptr, i32 } %1191, 0
  store ptr %1192, ptr %10, align 8
  %1193 = extractvalue { ptr, i32 } %1191, 1
  store i32 %1193, ptr %11, align 4
  br label %1198

1194:                                             ; preds = %1170
  %1195 = landingpad { ptr, i32 }
          cleanup
  %1196 = extractvalue { ptr, i32 } %1195, 0
  store ptr %1196, ptr %10, align 8
  %1197 = extractvalue { ptr, i32 } %1195, 1
  store i32 %1197, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #7
  br label %1198

1198:                                             ; preds = %1194, %1190
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #7
  br label %1199

1199:                                             ; preds = %1198, %1186
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #7
  br label %1496

1200:                                             ; preds = %1174, %1172
  %1201 = landingpad { ptr, i32 }
          cleanup
  %1202 = extractvalue { ptr, i32 } %1201, 0
  store ptr %1202, ptr %10, align 8
  %1203 = extractvalue { ptr, i32 } %1201, 1
  store i32 %1203, ptr %11, align 4
  br label %1213

1204:                                             ; preds = %1175
  %1205 = landingpad { ptr, i32 }
          cleanup
  %1206 = extractvalue { ptr, i32 } %1205, 0
  store ptr %1206, ptr %10, align 8
  %1207 = extractvalue { ptr, i32 } %1205, 1
  store i32 %1207, ptr %11, align 4
  br label %1212

1208:                                             ; preds = %1176
  %1209 = landingpad { ptr, i32 }
          cleanup
  %1210 = extractvalue { ptr, i32 } %1209, 0
  store ptr %1210, ptr %10, align 8
  %1211 = extractvalue { ptr, i32 } %1209, 1
  store i32 %1211, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #7
  br label %1212

1212:                                             ; preds = %1208, %1204
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #7
  br label %1213

1213:                                             ; preds = %1212, %1200
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #7
  br label %1496

1214:                                             ; preds = %1180, %1178
  %1215 = landingpad { ptr, i32 }
          cleanup
  %1216 = extractvalue { ptr, i32 } %1215, 0
  store ptr %1216, ptr %10, align 8
  %1217 = extractvalue { ptr, i32 } %1215, 1
  store i32 %1217, ptr %11, align 4
  br label %1232

1218:                                             ; preds = %1181
  %1219 = landingpad { ptr, i32 }
          cleanup
  %1220 = extractvalue { ptr, i32 } %1219, 0
  store ptr %1220, ptr %10, align 8
  %1221 = extractvalue { ptr, i32 } %1219, 1
  store i32 %1221, ptr %11, align 4
  br label %1231

1222:                                             ; preds = %1182
  %1223 = landingpad { ptr, i32 }
          cleanup
  %1224 = extractvalue { ptr, i32 } %1223, 0
  store ptr %1224, ptr %10, align 8
  %1225 = extractvalue { ptr, i32 } %1223, 1
  store i32 %1225, ptr %11, align 4
  br label %1230

1226:                                             ; preds = %1183
  %1227 = landingpad { ptr, i32 }
          cleanup
  %1228 = extractvalue { ptr, i32 } %1227, 0
  store ptr %1228, ptr %10, align 8
  %1229 = extractvalue { ptr, i32 } %1227, 1
  store i32 %1229, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #7
  br label %1230

1230:                                             ; preds = %1226, %1222
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #7
  br label %1231

1231:                                             ; preds = %1230, %1218
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #7
  br label %1232

1232:                                             ; preds = %1231, %1214
  call void @llvm.lifetime.end.p0(i64 32, ptr %143) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #7
  br label %1496

1233:                                             ; preds = %890
  br label %1234

1234:                                             ; preds = %1233, %890
  %1235 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.42)
          to label %1236 unwind label %624

1236:                                             ; preds = %1234
  %1237 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %1238 = load i32, ptr %1237, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %1238)
          to label %1239 unwind label %624

1239:                                             ; preds = %1236
  br label %1240

1240:                                             ; preds = %1239, %1185, %1130, %1067, %1045
  br label %1241

1241:                                             ; preds = %1240, %887
  %1242 = load i8, ptr %58, align 1, !tbaa !35, !range !42, !noundef !43
  %1243 = trunc i8 %1242 to i1
  br i1 %1243, label %1244, label %1489

1244:                                             ; preds = %1241
  %1245 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %33, double noundef 1.000000e+00)
          to label %1246 unwind label %624

1246:                                             ; preds = %1244
  call void @llvm.lifetime.start.p0(i64 24, ptr %144) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %144)
          to label %1247 unwind label %1257

1247:                                             ; preds = %1246
  call void @llvm.lifetime.start.p0(i64 24, ptr %145) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #7
  store double 0.000000e+00, ptr %146, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %145, ptr noundef nonnull align 8 dereferenceable(8) %146)
          to label %1248 unwind label %1261

1248:                                             ; preds = %1247
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #7
  %1249 = load i64, ptr %19, align 8, !tbaa !32
  %1250 = icmp ugt i64 %1249, 0
  br i1 %1250, label %1251, label %1317

1251:                                             ; preds = %1248
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #7
  store i64 1, ptr %147, align 8, !tbaa !32
  br label %1252

1252:                                             ; preds = %1284, %1251
  %1253 = load i64, ptr %147, align 8, !tbaa !32
  %1254 = load i64, ptr %20, align 8, !tbaa !32
  %1255 = icmp ult i64 %1253, %1254
  br i1 %1255, label %1265, label %1256

1256:                                             ; preds = %1252
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #7
  br label %1316

1257:                                             ; preds = %1246
  %1258 = landingpad { ptr, i32 }
          cleanup
  %1259 = extractvalue { ptr, i32 } %1258, 0
  store ptr %1259, ptr %10, align 8
  %1260 = extractvalue { ptr, i32 } %1258, 1
  store i32 %1260, ptr %11, align 4
  br label %1488

1261:                                             ; preds = %1247
  %1262 = landingpad { ptr, i32 }
          cleanup
  %1263 = extractvalue { ptr, i32 } %1262, 0
  store ptr %1263, ptr %10, align 8
  %1264 = extractvalue { ptr, i32 } %1262, 1
  store i32 %1264, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #7
  br label %1487

1265:                                             ; preds = %1252
  %1266 = load i64, ptr %147, align 8, !tbaa !32
  %1267 = trunc i64 %1266 to i32
  %1268 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %27, i32 noundef 0, i32 noundef %1267)
          to label %1269 unwind label %1287

1269:                                             ; preds = %1265
  %1270 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %144, double noundef %1268)
          to label %1271 unwind label %1287

1271:                                             ; preds = %1269
  call void @llvm.lifetime.start.p0(i64 24, ptr %148) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %149) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #7
  store double 0.000000e+00, ptr %151, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %150, ptr noundef nonnull align 8 dereferenceable(8) %151)
          to label %1272 unwind label %1291

1272:                                             ; preds = %1271
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #7
  %1273 = load i64, ptr %147, align 8, !tbaa !32
  %1274 = trunc i64 %1273 to i32
  %1275 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %21, i32 noundef 0, i32 noundef %1274)
          to label %1276 unwind label %1295

1276:                                             ; preds = %1272
  store double %1275, ptr %153, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %152, ptr noundef nonnull align 8 dereferenceable(8) %153)
          to label %1277 unwind label %1295

1277:                                             ; preds = %1276
  invoke void @_ZN9NOMAD_4_33maxENS_6DoubleES0_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %149, ptr noundef %150, ptr noundef %152)
          to label %1278 unwind label %1299

1278:                                             ; preds = %1277
  invoke void @_ZNK9NOMAD_4_36Double4pow2Ev(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %148, ptr noundef nonnull align 8 dereferenceable(17) %149)
          to label %1279 unwind label %1303

1279:                                             ; preds = %1278
  %1280 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoublepLERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %145, ptr noundef nonnull align 8 dereferenceable(17) %148)
          to label %1281 unwind label %1307

1281:                                             ; preds = %1279
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %148) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %149) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %152) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %150) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %149) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %148) #7
  %1282 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoublemLERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %33, ptr noundef nonnull align 8 dereferenceable(17) %144)
          to label %1283 unwind label %1287

1283:                                             ; preds = %1281
  br label %1284

1284:                                             ; preds = %1283
  %1285 = load i64, ptr %147, align 8, !tbaa !32
  %1286 = add i64 %1285, 1
  store i64 %1286, ptr %147, align 8, !tbaa !32
  br label %1252, !llvm.loop !48

1287:                                             ; preds = %1281, %1269, %1265
  %1288 = landingpad { ptr, i32 }
          cleanup
  %1289 = extractvalue { ptr, i32 } %1288, 0
  store ptr %1289, ptr %10, align 8
  %1290 = extractvalue { ptr, i32 } %1288, 1
  store i32 %1290, ptr %11, align 4
  br label %1315

1291:                                             ; preds = %1271
  %1292 = landingpad { ptr, i32 }
          cleanup
  %1293 = extractvalue { ptr, i32 } %1292, 0
  store ptr %1293, ptr %10, align 8
  %1294 = extractvalue { ptr, i32 } %1292, 1
  store i32 %1294, ptr %11, align 4
  br label %1314

1295:                                             ; preds = %1276, %1272
  %1296 = landingpad { ptr, i32 }
          cleanup
  %1297 = extractvalue { ptr, i32 } %1296, 0
  store ptr %1297, ptr %10, align 8
  %1298 = extractvalue { ptr, i32 } %1296, 1
  store i32 %1298, ptr %11, align 4
  br label %1313

1299:                                             ; preds = %1277
  %1300 = landingpad { ptr, i32 }
          cleanup
  %1301 = extractvalue { ptr, i32 } %1300, 0
  store ptr %1301, ptr %10, align 8
  %1302 = extractvalue { ptr, i32 } %1300, 1
  store i32 %1302, ptr %11, align 4
  br label %1312

1303:                                             ; preds = %1278
  %1304 = landingpad { ptr, i32 }
          cleanup
  %1305 = extractvalue { ptr, i32 } %1304, 0
  store ptr %1305, ptr %10, align 8
  %1306 = extractvalue { ptr, i32 } %1304, 1
  store i32 %1306, ptr %11, align 4
  br label %1311

1307:                                             ; preds = %1279
  %1308 = landingpad { ptr, i32 }
          cleanup
  %1309 = extractvalue { ptr, i32 } %1308, 0
  store ptr %1309, ptr %10, align 8
  %1310 = extractvalue { ptr, i32 } %1308, 1
  store i32 %1310, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %148) #7
  br label %1311

1311:                                             ; preds = %1307, %1303
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %149) #7
  br label %1312

1312:                                             ; preds = %1311, %1299
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %152) #7
  br label %1313

1313:                                             ; preds = %1312, %1295
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %150) #7
  br label %1314

1314:                                             ; preds = %1313, %1291
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %149) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %148) #7
  br label %1315

1315:                                             ; preds = %1314, %1287
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #7
  br label %1486

1316:                                             ; preds = %1256
  br label %1317

1317:                                             ; preds = %1316, %1248
  %1318 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 1
  %1319 = load ptr, ptr %1318, align 8, !tbaa !36
  store i1 false, ptr %155, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #7
  store i1 false, ptr %157, align 1
  %1320 = invoke noundef zeroext i1 @_ZNK9NOMAD_4_312SgtelibModel16getFoundFeasibleEv(ptr noundef nonnull align 8 dereferenceable(552) %1319)
          to label %1321 unwind label %1353

1321:                                             ; preds = %1317
  br i1 %1320, label %1326, label %1322

1322:                                             ; preds = %1321
  call void @llvm.lifetime.start.p0(i64 24, ptr %154) #7
  store i1 true, ptr %155, align 1
  store double 0.000000e+00, ptr %156, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %154, ptr noundef nonnull align 8 dereferenceable(8) %156)
          to label %1323 unwind label %1357

1323:                                             ; preds = %1322
  store i1 true, ptr %157, align 1
  %1324 = invoke noundef zeroext i1 @_ZN9NOMAD_4_3eqERKNS_6DoubleES2_(ptr noundef nonnull align 8 dereferenceable(17) %33, ptr noundef nonnull align 8 dereferenceable(17) %154)
          to label %1325 unwind label %1361

1325:                                             ; preds = %1323
  br label %1326

1326:                                             ; preds = %1325, %1321
  %1327 = phi i1 [ false, %1321 ], [ %1324, %1325 ]
  %1328 = load i1, ptr %157, align 1
  br i1 %1328, label %1329, label %1330

1329:                                             ; preds = %1326
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %154) #7
  br label %1330

1330:                                             ; preds = %1329, %1326
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #7
  %1331 = load i1, ptr %155, align 1
  br i1 %1331, label %1332, label %1333

1332:                                             ; preds = %1330
  call void @llvm.lifetime.end.p0(i64 24, ptr %154) #7
  br label %1333

1333:                                             ; preds = %1332, %1330
  br i1 %1327, label %1334, label %1425

1334:                                             ; preds = %1333
  call void @llvm.lifetime.start.p0(i64 24, ptr %158) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %159) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #7
  store double 1.000000e+00, ptr %160, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %159, ptr noundef nonnull align 8 dereferenceable(8) %160)
          to label %1335 unwind label %1372

1335:                                             ; preds = %1334
  call void @llvm.lifetime.start.p0(i64 24, ptr %161) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %162) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #7
  store double 1.000000e+00, ptr %163, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %162, ptr noundef nonnull align 8 dereferenceable(8) %163)
          to label %1336 unwind label %1376

1336:                                             ; preds = %1335
  invoke void @_ZN9NOMAD_4_3plERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %161, ptr noundef nonnull align 8 dereferenceable(17) %162, ptr noundef nonnull align 8 dereferenceable(17) %145)
          to label %1337 unwind label %1380

1337:                                             ; preds = %1336
  invoke void @_ZN9NOMAD_4_3dvERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %158, ptr noundef nonnull align 8 dereferenceable(17) %159, ptr noundef nonnull align 8 dereferenceable(17) %161)
          to label %1338 unwind label %1384

1338:                                             ; preds = %1337
  %1339 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %33, ptr noundef nonnull align 8 dereferenceable(17) %158)
          to label %1340 unwind label %1388

1340:                                             ; preds = %1338
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %158) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %161) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %162) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %162) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %161) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %159) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %159) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %158) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #7
  store i32 7, ptr %164, align 4, !tbaa !9
  %1341 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %164)
          to label %1342 unwind label %1396

1342:                                             ; preds = %1340
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #7
  br i1 %1341, label %1343, label %1424

1343:                                             ; preds = %1342
  call void @llvm.lifetime.start.p0(i64 32, ptr %165) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %166) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %167) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %168) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %168, ptr noundef nonnull align 8 dereferenceable(17) %145, i32 noundef 6, i64 noundef 0)
          to label %1344 unwind label %1400

1344:                                             ; preds = %1343
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %167, ptr noundef @.str.43, ptr noundef nonnull align 8 dereferenceable(32) %168)
          to label %1345 unwind label %1404

1345:                                             ; preds = %1344
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %166, ptr noundef nonnull align 8 dereferenceable(32) %167, ptr noundef @.str.44)
          to label %1346 unwind label %1408

1346:                                             ; preds = %1345
  call void @llvm.lifetime.start.p0(i64 32, ptr %169) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %169, ptr noundef nonnull align 8 dereferenceable(17) %33, i32 noundef 6, i64 noundef 0)
          to label %1347 unwind label %1412

1347:                                             ; preds = %1346
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %165, ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef nonnull align 8 dereferenceable(32) %169)
          to label %1348 unwind label %1416

1348:                                             ; preds = %1347
  %1349 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %165) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %169) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %167) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %165) #7
  %1350 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %1351 = load i32, ptr %1350, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %1351)
          to label %1352 unwind label %1353

1352:                                             ; preds = %1348
  br label %1424

1353:                                             ; preds = %1348, %1317
  %1354 = landingpad { ptr, i32 }
          cleanup
  %1355 = extractvalue { ptr, i32 } %1354, 0
  store ptr %1355, ptr %10, align 8
  %1356 = extractvalue { ptr, i32 } %1354, 1
  store i32 %1356, ptr %11, align 4
  br label %1486

1357:                                             ; preds = %1322
  %1358 = landingpad { ptr, i32 }
          cleanup
  %1359 = extractvalue { ptr, i32 } %1358, 0
  store ptr %1359, ptr %10, align 8
  %1360 = extractvalue { ptr, i32 } %1358, 1
  store i32 %1360, ptr %11, align 4
  br label %1368

1361:                                             ; preds = %1323
  %1362 = landingpad { ptr, i32 }
          cleanup
  %1363 = extractvalue { ptr, i32 } %1362, 0
  store ptr %1363, ptr %10, align 8
  %1364 = extractvalue { ptr, i32 } %1362, 1
  store i32 %1364, ptr %11, align 4
  %1365 = load i1, ptr %157, align 1
  br i1 %1365, label %1366, label %1367

1366:                                             ; preds = %1361
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %154) #7
  br label %1367

1367:                                             ; preds = %1366, %1361
  br label %1368

1368:                                             ; preds = %1367, %1357
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #7
  %1369 = load i1, ptr %155, align 1
  br i1 %1369, label %1370, label %1371

1370:                                             ; preds = %1368
  call void @llvm.lifetime.end.p0(i64 24, ptr %154) #7
  br label %1371

1371:                                             ; preds = %1370, %1368
  br label %1486

1372:                                             ; preds = %1334
  %1373 = landingpad { ptr, i32 }
          cleanup
  %1374 = extractvalue { ptr, i32 } %1373, 0
  store ptr %1374, ptr %10, align 8
  %1375 = extractvalue { ptr, i32 } %1373, 1
  store i32 %1375, ptr %11, align 4
  br label %1395

1376:                                             ; preds = %1335
  %1377 = landingpad { ptr, i32 }
          cleanup
  %1378 = extractvalue { ptr, i32 } %1377, 0
  store ptr %1378, ptr %10, align 8
  %1379 = extractvalue { ptr, i32 } %1377, 1
  store i32 %1379, ptr %11, align 4
  br label %1394

1380:                                             ; preds = %1336
  %1381 = landingpad { ptr, i32 }
          cleanup
  %1382 = extractvalue { ptr, i32 } %1381, 0
  store ptr %1382, ptr %10, align 8
  %1383 = extractvalue { ptr, i32 } %1381, 1
  store i32 %1383, ptr %11, align 4
  br label %1393

1384:                                             ; preds = %1337
  %1385 = landingpad { ptr, i32 }
          cleanup
  %1386 = extractvalue { ptr, i32 } %1385, 0
  store ptr %1386, ptr %10, align 8
  %1387 = extractvalue { ptr, i32 } %1385, 1
  store i32 %1387, ptr %11, align 4
  br label %1392

1388:                                             ; preds = %1338
  %1389 = landingpad { ptr, i32 }
          cleanup
  %1390 = extractvalue { ptr, i32 } %1389, 0
  store ptr %1390, ptr %10, align 8
  %1391 = extractvalue { ptr, i32 } %1389, 1
  store i32 %1391, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %158) #7
  br label %1392

1392:                                             ; preds = %1388, %1384
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %161) #7
  br label %1393

1393:                                             ; preds = %1392, %1380
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %162) #7
  br label %1394

1394:                                             ; preds = %1393, %1376
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %162) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %161) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %159) #7
  br label %1395

1395:                                             ; preds = %1394, %1372
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %159) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %158) #7
  br label %1486

1396:                                             ; preds = %1340
  %1397 = landingpad { ptr, i32 }
          cleanup
  %1398 = extractvalue { ptr, i32 } %1397, 0
  store ptr %1398, ptr %10, align 8
  %1399 = extractvalue { ptr, i32 } %1397, 1
  store i32 %1399, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #7
  br label %1486

1400:                                             ; preds = %1343
  %1401 = landingpad { ptr, i32 }
          cleanup
  %1402 = extractvalue { ptr, i32 } %1401, 0
  store ptr %1402, ptr %10, align 8
  %1403 = extractvalue { ptr, i32 } %1401, 1
  store i32 %1403, ptr %11, align 4
  br label %1423

1404:                                             ; preds = %1344
  %1405 = landingpad { ptr, i32 }
          cleanup
  %1406 = extractvalue { ptr, i32 } %1405, 0
  store ptr %1406, ptr %10, align 8
  %1407 = extractvalue { ptr, i32 } %1405, 1
  store i32 %1407, ptr %11, align 4
  br label %1422

1408:                                             ; preds = %1345
  %1409 = landingpad { ptr, i32 }
          cleanup
  %1410 = extractvalue { ptr, i32 } %1409, 0
  store ptr %1410, ptr %10, align 8
  %1411 = extractvalue { ptr, i32 } %1409, 1
  store i32 %1411, ptr %11, align 4
  br label %1421

1412:                                             ; preds = %1346
  %1413 = landingpad { ptr, i32 }
          cleanup
  %1414 = extractvalue { ptr, i32 } %1413, 0
  store ptr %1414, ptr %10, align 8
  %1415 = extractvalue { ptr, i32 } %1413, 1
  store i32 %1415, ptr %11, align 4
  br label %1420

1416:                                             ; preds = %1347
  %1417 = landingpad { ptr, i32 }
          cleanup
  %1418 = extractvalue { ptr, i32 } %1417, 0
  store ptr %1418, ptr %10, align 8
  %1419 = extractvalue { ptr, i32 } %1417, 1
  store i32 %1419, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #7
  br label %1420

1420:                                             ; preds = %1416, %1412
  call void @llvm.lifetime.end.p0(i64 32, ptr %169) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  br label %1421

1421:                                             ; preds = %1420, %1408
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #7
  br label %1422

1422:                                             ; preds = %1421, %1404
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #7
  br label %1423

1423:                                             ; preds = %1422, %1400
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %167) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %165) #7
  br label %1486

1424:                                             ; preds = %1352, %1342
  br label %1425

1425:                                             ; preds = %1424, %1333
  call void @llvm.lifetime.start.p0(i64 24, ptr %170) #7
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %170, ptr noundef nonnull align 8 dereferenceable(17) %39, ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %1426 unwind label %1439

1426:                                             ; preds = %1425
  %1427 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %45, ptr noundef nonnull align 8 dereferenceable(17) %170)
          to label %1428 unwind label %1443

1428:                                             ; preds = %1426
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %170) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %170) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %171) #7
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %171, ptr noundef nonnull align 8 dereferenceable(17) %41, ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %1429 unwind label %1448

1429:                                             ; preds = %1428
  %1430 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %43, ptr noundef nonnull align 8 dereferenceable(17) %171)
          to label %1431 unwind label %1452

1431:                                             ; preds = %1429
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %171) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %171) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %172) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %173) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %174) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #7
  store double 4.000000e+00, ptr %175, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %174, ptr noundef nonnull align 8 dereferenceable(8) %175)
          to label %1432 unwind label %1457

1432:                                             ; preds = %1431
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %173, ptr noundef nonnull align 8 dereferenceable(17) %174, ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %1433 unwind label %1461

1433:                                             ; preds = %1432
  call void @llvm.lifetime.start.p0(i64 24, ptr %176) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %177) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #7
  store double 1.000000e+00, ptr %178, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %177, ptr noundef nonnull align 8 dereferenceable(8) %178)
          to label %1434 unwind label %1465

1434:                                             ; preds = %1433
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %176, ptr noundef nonnull align 8 dereferenceable(17) %177, ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %1435 unwind label %1469

1435:                                             ; preds = %1434
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %172, ptr noundef nonnull align 8 dereferenceable(17) %173, ptr noundef nonnull align 8 dereferenceable(17) %176)
          to label %1436 unwind label %1473

1436:                                             ; preds = %1435
  %1437 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %47, ptr noundef nonnull align 8 dereferenceable(17) %172)
          to label %1438 unwind label %1477

1438:                                             ; preds = %1436
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %172) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %176) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %177) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %177) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %176) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %173) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %174) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %174) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %173) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %172) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %145) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %145) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %144) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %144) #7
  br label %1489

1439:                                             ; preds = %1425
  %1440 = landingpad { ptr, i32 }
          cleanup
  %1441 = extractvalue { ptr, i32 } %1440, 0
  store ptr %1441, ptr %10, align 8
  %1442 = extractvalue { ptr, i32 } %1440, 1
  store i32 %1442, ptr %11, align 4
  br label %1447

1443:                                             ; preds = %1426
  %1444 = landingpad { ptr, i32 }
          cleanup
  %1445 = extractvalue { ptr, i32 } %1444, 0
  store ptr %1445, ptr %10, align 8
  %1446 = extractvalue { ptr, i32 } %1444, 1
  store i32 %1446, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %170) #7
  br label %1447

1447:                                             ; preds = %1443, %1439
  call void @llvm.lifetime.end.p0(i64 24, ptr %170) #7
  br label %1486

1448:                                             ; preds = %1428
  %1449 = landingpad { ptr, i32 }
          cleanup
  %1450 = extractvalue { ptr, i32 } %1449, 0
  store ptr %1450, ptr %10, align 8
  %1451 = extractvalue { ptr, i32 } %1449, 1
  store i32 %1451, ptr %11, align 4
  br label %1456

1452:                                             ; preds = %1429
  %1453 = landingpad { ptr, i32 }
          cleanup
  %1454 = extractvalue { ptr, i32 } %1453, 0
  store ptr %1454, ptr %10, align 8
  %1455 = extractvalue { ptr, i32 } %1453, 1
  store i32 %1455, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %171) #7
  br label %1456

1456:                                             ; preds = %1452, %1448
  call void @llvm.lifetime.end.p0(i64 24, ptr %171) #7
  br label %1486

1457:                                             ; preds = %1431
  %1458 = landingpad { ptr, i32 }
          cleanup
  %1459 = extractvalue { ptr, i32 } %1458, 0
  store ptr %1459, ptr %10, align 8
  %1460 = extractvalue { ptr, i32 } %1458, 1
  store i32 %1460, ptr %11, align 4
  br label %1485

1461:                                             ; preds = %1432
  %1462 = landingpad { ptr, i32 }
          cleanup
  %1463 = extractvalue { ptr, i32 } %1462, 0
  store ptr %1463, ptr %10, align 8
  %1464 = extractvalue { ptr, i32 } %1462, 1
  store i32 %1464, ptr %11, align 4
  br label %1484

1465:                                             ; preds = %1433
  %1466 = landingpad { ptr, i32 }
          cleanup
  %1467 = extractvalue { ptr, i32 } %1466, 0
  store ptr %1467, ptr %10, align 8
  %1468 = extractvalue { ptr, i32 } %1466, 1
  store i32 %1468, ptr %11, align 4
  br label %1483

1469:                                             ; preds = %1434
  %1470 = landingpad { ptr, i32 }
          cleanup
  %1471 = extractvalue { ptr, i32 } %1470, 0
  store ptr %1471, ptr %10, align 8
  %1472 = extractvalue { ptr, i32 } %1470, 1
  store i32 %1472, ptr %11, align 4
  br label %1482

1473:                                             ; preds = %1435
  %1474 = landingpad { ptr, i32 }
          cleanup
  %1475 = extractvalue { ptr, i32 } %1474, 0
  store ptr %1475, ptr %10, align 8
  %1476 = extractvalue { ptr, i32 } %1474, 1
  store i32 %1476, ptr %11, align 4
  br label %1481

1477:                                             ; preds = %1436
  %1478 = landingpad { ptr, i32 }
          cleanup
  %1479 = extractvalue { ptr, i32 } %1478, 0
  store ptr %1479, ptr %10, align 8
  %1480 = extractvalue { ptr, i32 } %1478, 1
  store i32 %1480, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %172) #7
  br label %1481

1481:                                             ; preds = %1477, %1473
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %176) #7
  br label %1482

1482:                                             ; preds = %1481, %1469
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %177) #7
  br label %1483

1483:                                             ; preds = %1482, %1465
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %177) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %176) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %173) #7
  br label %1484

1484:                                             ; preds = %1483, %1461
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %174) #7
  br label %1485

1485:                                             ; preds = %1484, %1457
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %174) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %173) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %172) #7
  br label %1486

1486:                                             ; preds = %1485, %1456, %1447, %1423, %1396, %1395, %1371, %1353, %1315
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %145) #7
  br label %1487

1487:                                             ; preds = %1486, %1261
  call void @llvm.lifetime.end.p0(i64 24, ptr %145) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %144) #7
  br label %1488

1488:                                             ; preds = %1487, %1257
  call void @llvm.lifetime.end.p0(i64 24, ptr %144) #7
  br label %1496

1489:                                             ; preds = %1438, %1241
  call void @_ZN9NOMAD_4_313ArrayOfStringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %179) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %179)
          to label %1490 unwind label %1498

1490:                                             ; preds = %1489
  call void @llvm.lifetime.start.p0(i64 24, ptr %180) #7
  %1491 = getelementptr inbounds %"class.NOMAD_4_3::Evaluator", ptr %265, i32 0, i32 3
  %1492 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1491) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %181) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #7
  store double -1.000000e+00, ptr %182, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %181, ptr noundef nonnull align 8 dereferenceable(8) %182)
          to label %1493 unwind label %1502

1493:                                             ; preds = %1490
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %180, i64 noundef %1492, ptr noundef nonnull align 8 dereferenceable(17) %181)
          to label %1494 unwind label %1506

1494:                                             ; preds = %1493
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %181) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %181) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #7
  store i32 0, ptr %183, align 4, !tbaa !44
  %1495 = load i32, ptr %59, align 4, !tbaa !37
  switch i32 %1495, label %1910 [
    i32 0, label %1511
    i32 1, label %1593
    i32 2, label %1652
    i32 3, label %1740
    i32 4, label %1753
    i32 5, label %1779
    i32 6, label %1811
    i32 7, label %1855
    i32 8, label %1868
    i32 9, label %1881
    i32 10, label %1909
  ]

1496:                                             ; preds = %1488, %1232, %1213, %1199, %1163, %1144, %1114, %1095, %1081, %1043, %1001, %893, %883, %871, %859, %832, %785, %723, %711, %702, %676, %667, %650, %624, %623, %609, %595, %583, %558, %533, %518
  call void @_ZN9NOMAD_4_313ArrayOfStringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %1497

1497:                                             ; preds = %1496, %509
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #7
  br label %2233

1498:                                             ; preds = %1489
  %1499 = landingpad { ptr, i32 }
          cleanup
  %1500 = extractvalue { ptr, i32 } %1499, 0
  store ptr %1500, ptr %10, align 8
  %1501 = extractvalue { ptr, i32 } %1499, 1
  store i32 %1501, ptr %11, align 4
  br label %2232

1502:                                             ; preds = %1490
  %1503 = landingpad { ptr, i32 }
          cleanup
  %1504 = extractvalue { ptr, i32 } %1503, 0
  store ptr %1504, ptr %10, align 8
  %1505 = extractvalue { ptr, i32 } %1503, 1
  store i32 %1505, ptr %11, align 4
  br label %1510

1506:                                             ; preds = %1493
  %1507 = landingpad { ptr, i32 }
          cleanup
  %1508 = extractvalue { ptr, i32 } %1507, 0
  store ptr %1508, ptr %10, align 8
  %1509 = extractvalue { ptr, i32 } %1507, 1
  store i32 %1509, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %181) #7
  br label %1510

1510:                                             ; preds = %1506, %1502
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %181) #7
  br label %2231

1511:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 24, ptr %184) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %185) #7
  %1512 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 3
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %185, ptr noundef nonnull align 8 dereferenceable(17) %1512, ptr noundef nonnull align 8 dereferenceable(17) %37)
          to label %1513 unwind label %1523

1513:                                             ; preds = %1511
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %184, ptr noundef nonnull align 8 dereferenceable(17) %35, ptr noundef nonnull align 8 dereferenceable(17) %185)
          to label %1514 unwind label %1527

1514:                                             ; preds = %1513
  %1515 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %179, ptr noundef nonnull align 8 dereferenceable(17) %184)
          to label %1516 unwind label %1531

1516:                                             ; preds = %1514
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %184) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %185) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %185) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %184) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #7
  store i64 0, ptr %186, align 8, !tbaa !32
  br label %1517

1517:                                             ; preds = %1589, %1516
  %1518 = load i64, ptr %186, align 8, !tbaa !32
  %1519 = getelementptr inbounds %"class.NOMAD_4_3::Evaluator", ptr %265, i32 0, i32 3
  %1520 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1519) #7
  %1521 = icmp ult i64 %1518, %1520
  br i1 %1521, label %1537, label %1522

1522:                                             ; preds = %1517
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #7
  br label %1592

1523:                                             ; preds = %1511
  %1524 = landingpad { ptr, i32 }
          cleanup
  %1525 = extractvalue { ptr, i32 } %1524, 0
  store ptr %1525, ptr %10, align 8
  %1526 = extractvalue { ptr, i32 } %1524, 1
  store i32 %1526, ptr %11, align 4
  br label %1536

1527:                                             ; preds = %1513
  %1528 = landingpad { ptr, i32 }
          cleanup
  %1529 = extractvalue { ptr, i32 } %1528, 0
  store ptr %1529, ptr %10, align 8
  %1530 = extractvalue { ptr, i32 } %1528, 1
  store i32 %1530, ptr %11, align 4
  br label %1535

1531:                                             ; preds = %1514
  %1532 = landingpad { ptr, i32 }
          cleanup
  %1533 = extractvalue { ptr, i32 } %1532, 0
  store ptr %1533, ptr %10, align 8
  %1534 = extractvalue { ptr, i32 } %1532, 1
  store i32 %1534, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %184) #7
  br label %1535

1535:                                             ; preds = %1531, %1527
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %185) #7
  br label %1536

1536:                                             ; preds = %1535, %1523
  call void @llvm.lifetime.end.p0(i64 24, ptr %185) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %184) #7
  br label %2230

1537:                                             ; preds = %1517
  %1538 = getelementptr inbounds %"class.NOMAD_4_3::Evaluator", ptr %265, i32 0, i32 3
  %1539 = load i64, ptr %186, align 8, !tbaa !32
  %1540 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1538, i64 noundef %1539) #7
  %1541 = load i32, ptr %1540, align 4, !tbaa !49
  %1542 = icmp ne i32 %1541, 0
  br i1 %1542, label %1543, label %1588

1543:                                             ; preds = %1537
  call void @llvm.lifetime.start.p0(i64 24, ptr %187) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %188) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %189) #7
  %1544 = load i32, ptr %183, align 4, !tbaa !44
  %1545 = add nsw i32 %1544, 1
  %1546 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %21, i32 noundef 0, i32 noundef %1545)
          to label %1547 unwind label %1564

1547:                                             ; preds = %1543
  store double %1546, ptr %189, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %188, ptr noundef nonnull align 8 dereferenceable(8) %189)
          to label %1548 unwind label %1564

1548:                                             ; preds = %1547
  call void @llvm.lifetime.start.p0(i64 24, ptr %190) #7
  %1549 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 24, ptr %191) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %192) #7
  %1550 = load i32, ptr %183, align 4, !tbaa !44
  %1551 = add nsw i32 %1550, 1
  %1552 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %24, i32 noundef 0, i32 noundef %1551)
          to label %1553 unwind label %1568

1553:                                             ; preds = %1548
  store double %1552, ptr %192, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %191, ptr noundef nonnull align 8 dereferenceable(8) %192)
          to label %1554 unwind label %1568

1554:                                             ; preds = %1553
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %190, ptr noundef nonnull align 8 dereferenceable(17) %1549, ptr noundef nonnull align 8 dereferenceable(17) %191)
          to label %1555 unwind label %1572

1555:                                             ; preds = %1554
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %187, ptr noundef nonnull align 8 dereferenceable(17) %188, ptr noundef nonnull align 8 dereferenceable(17) %190)
          to label %1556 unwind label %1576

1556:                                             ; preds = %1555
  %1557 = load i64, ptr %186, align 8, !tbaa !32
  %1558 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9NOMAD_4_313ArrayOfDoubleixEm(ptr noundef nonnull align 8 dereferenceable(24) %180, i64 noundef %1557)
          to label %1559 unwind label %1580

1559:                                             ; preds = %1556
  %1560 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %1558, ptr noundef nonnull align 8 dereferenceable(17) %187)
          to label %1561 unwind label %1580

1561:                                             ; preds = %1559
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %187) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %190) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %191) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %192) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %191) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %190) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %188) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %188) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %187) #7
  %1562 = load i32, ptr %183, align 4, !tbaa !44
  %1563 = add nsw i32 %1562, 1
  store i32 %1563, ptr %183, align 4, !tbaa !44
  br label %1588

1564:                                             ; preds = %1547, %1543
  %1565 = landingpad { ptr, i32 }
          cleanup
  %1566 = extractvalue { ptr, i32 } %1565, 0
  store ptr %1566, ptr %10, align 8
  %1567 = extractvalue { ptr, i32 } %1565, 1
  store i32 %1567, ptr %11, align 4
  br label %1587

1568:                                             ; preds = %1553, %1548
  %1569 = landingpad { ptr, i32 }
          cleanup
  %1570 = extractvalue { ptr, i32 } %1569, 0
  store ptr %1570, ptr %10, align 8
  %1571 = extractvalue { ptr, i32 } %1569, 1
  store i32 %1571, ptr %11, align 4
  br label %1586

1572:                                             ; preds = %1554
  %1573 = landingpad { ptr, i32 }
          cleanup
  %1574 = extractvalue { ptr, i32 } %1573, 0
  store ptr %1574, ptr %10, align 8
  %1575 = extractvalue { ptr, i32 } %1573, 1
  store i32 %1575, ptr %11, align 4
  br label %1585

1576:                                             ; preds = %1555
  %1577 = landingpad { ptr, i32 }
          cleanup
  %1578 = extractvalue { ptr, i32 } %1577, 0
  store ptr %1578, ptr %10, align 8
  %1579 = extractvalue { ptr, i32 } %1577, 1
  store i32 %1579, ptr %11, align 4
  br label %1584

1580:                                             ; preds = %1559, %1556
  %1581 = landingpad { ptr, i32 }
          cleanup
  %1582 = extractvalue { ptr, i32 } %1581, 0
  store ptr %1582, ptr %10, align 8
  %1583 = extractvalue { ptr, i32 } %1581, 1
  store i32 %1583, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %187) #7
  br label %1584

1584:                                             ; preds = %1580, %1576
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %190) #7
  br label %1585

1585:                                             ; preds = %1584, %1572
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %191) #7
  br label %1586

1586:                                             ; preds = %1585, %1568
  call void @llvm.lifetime.end.p0(i64 8, ptr %192) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %191) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %190) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %188) #7
  br label %1587

1587:                                             ; preds = %1586, %1564
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %188) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %187) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #7
  br label %2230

1588:                                             ; preds = %1561, %1537
  br label %1589

1589:                                             ; preds = %1588
  %1590 = load i64, ptr %186, align 8, !tbaa !32
  %1591 = add i64 %1590, 1
  store i64 %1591, ptr %186, align 8, !tbaa !32
  br label %1517, !llvm.loop !51

1592:                                             ; preds = %1522
  br label %1934

1593:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 24, ptr %193) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %194) #7
  %1594 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 3
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %194, ptr noundef nonnull align 8 dereferenceable(17) %1594, ptr noundef nonnull align 8 dereferenceable(17) %37)
          to label %1595 unwind label %1605

1595:                                             ; preds = %1593
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %193, ptr noundef nonnull align 8 dereferenceable(17) %35, ptr noundef nonnull align 8 dereferenceable(17) %194)
          to label %1596 unwind label %1609

1596:                                             ; preds = %1595
  %1597 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %179, ptr noundef nonnull align 8 dereferenceable(17) %193)
          to label %1598 unwind label %1613

1598:                                             ; preds = %1596
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %193) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %194) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %194) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %193) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %195) #7
  store i64 0, ptr %195, align 8, !tbaa !32
  br label %1599

1599:                                             ; preds = %1648, %1598
  %1600 = load i64, ptr %195, align 8, !tbaa !32
  %1601 = getelementptr inbounds %"class.NOMAD_4_3::Evaluator", ptr %265, i32 0, i32 3
  %1602 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1601) #7
  %1603 = icmp ult i64 %1600, %1602
  br i1 %1603, label %1619, label %1604

1604:                                             ; preds = %1599
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #7
  br label %1651

1605:                                             ; preds = %1593
  %1606 = landingpad { ptr, i32 }
          cleanup
  %1607 = extractvalue { ptr, i32 } %1606, 0
  store ptr %1607, ptr %10, align 8
  %1608 = extractvalue { ptr, i32 } %1606, 1
  store i32 %1608, ptr %11, align 4
  br label %1618

1609:                                             ; preds = %1595
  %1610 = landingpad { ptr, i32 }
          cleanup
  %1611 = extractvalue { ptr, i32 } %1610, 0
  store ptr %1611, ptr %10, align 8
  %1612 = extractvalue { ptr, i32 } %1610, 1
  store i32 %1612, ptr %11, align 4
  br label %1617

1613:                                             ; preds = %1596
  %1614 = landingpad { ptr, i32 }
          cleanup
  %1615 = extractvalue { ptr, i32 } %1614, 0
  store ptr %1615, ptr %10, align 8
  %1616 = extractvalue { ptr, i32 } %1614, 1
  store i32 %1616, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %193) #7
  br label %1617

1617:                                             ; preds = %1613, %1609
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %194) #7
  br label %1618

1618:                                             ; preds = %1617, %1605
  call void @llvm.lifetime.end.p0(i64 24, ptr %194) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %193) #7
  br label %2230

1619:                                             ; preds = %1599
  %1620 = getelementptr inbounds %"class.NOMAD_4_3::Evaluator", ptr %265, i32 0, i32 3
  %1621 = load i64, ptr %195, align 8, !tbaa !32
  %1622 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1620, i64 noundef %1621) #7
  %1623 = load i32, ptr %1622, align 4, !tbaa !49
  %1624 = icmp ne i32 %1623, 0
  br i1 %1624, label %1625, label %1647

1625:                                             ; preds = %1619
  call void @llvm.lifetime.start.p0(i64 24, ptr %196) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %197) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %198) #7
  store double 5.000000e-01, ptr %198, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %197, ptr noundef nonnull align 8 dereferenceable(8) %198)
          to label %1626 unwind label %1633

1626:                                             ; preds = %1625
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %196, ptr noundef nonnull align 8 dereferenceable(17) %197, ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %1627 unwind label %1637

1627:                                             ; preds = %1626
  %1628 = load i64, ptr %195, align 8, !tbaa !32
  %1629 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9NOMAD_4_313ArrayOfDoubleixEm(ptr noundef nonnull align 8 dereferenceable(24) %180, i64 noundef %1628)
          to label %1630 unwind label %1641

1630:                                             ; preds = %1627
  %1631 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %1629, ptr noundef nonnull align 8 dereferenceable(17) %196)
          to label %1632 unwind label %1641

1632:                                             ; preds = %1630
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %196) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %197) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %197) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %196) #7
  br label %1647

1633:                                             ; preds = %1625
  %1634 = landingpad { ptr, i32 }
          cleanup
  %1635 = extractvalue { ptr, i32 } %1634, 0
  store ptr %1635, ptr %10, align 8
  %1636 = extractvalue { ptr, i32 } %1634, 1
  store i32 %1636, ptr %11, align 4
  br label %1646

1637:                                             ; preds = %1626
  %1638 = landingpad { ptr, i32 }
          cleanup
  %1639 = extractvalue { ptr, i32 } %1638, 0
  store ptr %1639, ptr %10, align 8
  %1640 = extractvalue { ptr, i32 } %1638, 1
  store i32 %1640, ptr %11, align 4
  br label %1645

1641:                                             ; preds = %1630, %1627
  %1642 = landingpad { ptr, i32 }
          cleanup
  %1643 = extractvalue { ptr, i32 } %1642, 0
  store ptr %1643, ptr %10, align 8
  %1644 = extractvalue { ptr, i32 } %1642, 1
  store i32 %1644, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %196) #7
  br label %1645

1645:                                             ; preds = %1641, %1637
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %197) #7
  br label %1646

1646:                                             ; preds = %1645, %1633
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %197) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %196) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #7
  br label %2230

1647:                                             ; preds = %1632, %1619
  br label %1648

1648:                                             ; preds = %1647
  %1649 = load i64, ptr %195, align 8, !tbaa !32
  %1650 = add i64 %1649, 1
  store i64 %1650, ptr %195, align 8, !tbaa !32
  br label %1599, !llvm.loop !52

1651:                                             ; preds = %1604
  br label %1934

1652:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 24, ptr %199) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %200) #7
  invoke void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %200, ptr noundef nonnull align 8 dereferenceable(17) %41)
          to label %1653 unwind label %1665

1653:                                             ; preds = %1652
  call void @llvm.lifetime.start.p0(i64 24, ptr %201) #7
  %1654 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 3
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %201, ptr noundef nonnull align 8 dereferenceable(17) %1654, ptr noundef nonnull align 8 dereferenceable(17) %37)
          to label %1655 unwind label %1669

1655:                                             ; preds = %1653
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %199, ptr noundef nonnull align 8 dereferenceable(17) %200, ptr noundef nonnull align 8 dereferenceable(17) %201)
          to label %1656 unwind label %1673

1656:                                             ; preds = %1655
  %1657 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %179, ptr noundef nonnull align 8 dereferenceable(17) %199)
          to label %1658 unwind label %1677

1658:                                             ; preds = %1656
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %199) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %201) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %201) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %200) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %200) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %199) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %202) #7
  store i64 0, ptr %202, align 8, !tbaa !32
  br label %1659

1659:                                             ; preds = %1736, %1658
  %1660 = load i64, ptr %202, align 8, !tbaa !32
  %1661 = getelementptr inbounds %"class.NOMAD_4_3::Evaluator", ptr %265, i32 0, i32 3
  %1662 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1661) #7
  %1663 = icmp ult i64 %1660, %1662
  br i1 %1663, label %1684, label %1664

1664:                                             ; preds = %1659
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #7
  br label %1739

1665:                                             ; preds = %1652
  %1666 = landingpad { ptr, i32 }
          cleanup
  %1667 = extractvalue { ptr, i32 } %1666, 0
  store ptr %1667, ptr %10, align 8
  %1668 = extractvalue { ptr, i32 } %1666, 1
  store i32 %1668, ptr %11, align 4
  br label %1683

1669:                                             ; preds = %1653
  %1670 = landingpad { ptr, i32 }
          cleanup
  %1671 = extractvalue { ptr, i32 } %1670, 0
  store ptr %1671, ptr %10, align 8
  %1672 = extractvalue { ptr, i32 } %1670, 1
  store i32 %1672, ptr %11, align 4
  br label %1682

1673:                                             ; preds = %1655
  %1674 = landingpad { ptr, i32 }
          cleanup
  %1675 = extractvalue { ptr, i32 } %1674, 0
  store ptr %1675, ptr %10, align 8
  %1676 = extractvalue { ptr, i32 } %1674, 1
  store i32 %1676, ptr %11, align 4
  br label %1681

1677:                                             ; preds = %1656
  %1678 = landingpad { ptr, i32 }
          cleanup
  %1679 = extractvalue { ptr, i32 } %1678, 0
  store ptr %1679, ptr %10, align 8
  %1680 = extractvalue { ptr, i32 } %1678, 1
  store i32 %1680, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %199) #7
  br label %1681

1681:                                             ; preds = %1677, %1673
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %201) #7
  br label %1682

1682:                                             ; preds = %1681, %1669
  call void @llvm.lifetime.end.p0(i64 24, ptr %201) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %200) #7
  br label %1683

1683:                                             ; preds = %1682, %1665
  call void @llvm.lifetime.end.p0(i64 24, ptr %200) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %199) #7
  br label %2230

1684:                                             ; preds = %1659
  %1685 = getelementptr inbounds %"class.NOMAD_4_3::Evaluator", ptr %265, i32 0, i32 3
  %1686 = load i64, ptr %202, align 8, !tbaa !32
  %1687 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1685, i64 noundef %1686) #7
  %1688 = load i32, ptr %1687, align 4, !tbaa !49
  %1689 = icmp ne i32 %1688, 0
  br i1 %1689, label %1690, label %1735

1690:                                             ; preds = %1684
  call void @llvm.lifetime.start.p0(i64 24, ptr %203) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %204) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %205) #7
  %1691 = load i32, ptr %183, align 4, !tbaa !44
  %1692 = add nsw i32 %1691, 1
  %1693 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %21, i32 noundef 0, i32 noundef %1692)
          to label %1694 unwind label %1711

1694:                                             ; preds = %1690
  store double %1693, ptr %205, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %204, ptr noundef nonnull align 8 dereferenceable(8) %205)
          to label %1695 unwind label %1711

1695:                                             ; preds = %1694
  call void @llvm.lifetime.start.p0(i64 24, ptr %206) #7
  %1696 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 24, ptr %207) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #7
  %1697 = load i32, ptr %183, align 4, !tbaa !44
  %1698 = add nsw i32 %1697, 1
  %1699 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %24, i32 noundef 0, i32 noundef %1698)
          to label %1700 unwind label %1715

1700:                                             ; preds = %1695
  store double %1699, ptr %208, align 8, !tbaa !34
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %207, ptr noundef nonnull align 8 dereferenceable(8) %208)
          to label %1701 unwind label %1715

1701:                                             ; preds = %1700
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %206, ptr noundef nonnull align 8 dereferenceable(17) %1696, ptr noundef nonnull align 8 dereferenceable(17) %207)
          to label %1702 unwind label %1719

1702:                                             ; preds = %1701
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %203, ptr noundef nonnull align 8 dereferenceable(17) %204, ptr noundef nonnull align 8 dereferenceable(17) %206)
          to label %1703 unwind label %1723

1703:                                             ; preds = %1702
  %1704 = load i64, ptr %202, align 8, !tbaa !32
  %1705 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9NOMAD_4_313ArrayOfDoubleixEm(ptr noundef nonnull align 8 dereferenceable(24) %180, i64 noundef %1704)
          to label %1706 unwind label %1727

1706:                                             ; preds = %1703
  %1707 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %1705, ptr noundef nonnull align 8 dereferenceable(17) %203)
          to label %1708 unwind label %1727

1708:                                             ; preds = %1706
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %203) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %206) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %207) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %207) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %206) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %204) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %204) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %203) #7
  %1709 = load i32, ptr %183, align 4, !tbaa !44
  %1710 = add nsw i32 %1709, 1
  store i32 %1710, ptr %183, align 4, !tbaa !44
  br label %1735

1711:                                             ; preds = %1694, %1690
  %1712 = landingpad { ptr, i32 }
          cleanup
  %1713 = extractvalue { ptr, i32 } %1712, 0
  store ptr %1713, ptr %10, align 8
  %1714 = extractvalue { ptr, i32 } %1712, 1
  store i32 %1714, ptr %11, align 4
  br label %1734

1715:                                             ; preds = %1700, %1695
  %1716 = landingpad { ptr, i32 }
          cleanup
  %1717 = extractvalue { ptr, i32 } %1716, 0
  store ptr %1717, ptr %10, align 8
  %1718 = extractvalue { ptr, i32 } %1716, 1
  store i32 %1718, ptr %11, align 4
  br label %1733

1719:                                             ; preds = %1701
  %1720 = landingpad { ptr, i32 }
          cleanup
  %1721 = extractvalue { ptr, i32 } %1720, 0
  store ptr %1721, ptr %10, align 8
  %1722 = extractvalue { ptr, i32 } %1720, 1
  store i32 %1722, ptr %11, align 4
  br label %1732

1723:                                             ; preds = %1702
  %1724 = landingpad { ptr, i32 }
          cleanup
  %1725 = extractvalue { ptr, i32 } %1724, 0
  store ptr %1725, ptr %10, align 8
  %1726 = extractvalue { ptr, i32 } %1724, 1
  store i32 %1726, ptr %11, align 4
  br label %1731

1727:                                             ; preds = %1706, %1703
  %1728 = landingpad { ptr, i32 }
          cleanup
  %1729 = extractvalue { ptr, i32 } %1728, 0
  store ptr %1729, ptr %10, align 8
  %1730 = extractvalue { ptr, i32 } %1728, 1
  store i32 %1730, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %203) #7
  br label %1731

1731:                                             ; preds = %1727, %1723
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %206) #7
  br label %1732

1732:                                             ; preds = %1731, %1719
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %207) #7
  br label %1733

1733:                                             ; preds = %1732, %1715
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %207) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %206) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %204) #7
  br label %1734

1734:                                             ; preds = %1733, %1711
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %204) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %203) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #7
  br label %2230

1735:                                             ; preds = %1708, %1684
  br label %1736

1736:                                             ; preds = %1735
  %1737 = load i64, ptr %202, align 8, !tbaa !32
  %1738 = add i64 %1737, 1
  store i64 %1738, ptr %202, align 8, !tbaa !32
  br label %1659, !llvm.loop !53

1739:                                             ; preds = %1664
  br label %1934

1740:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 24, ptr %209) #7
  invoke void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %209, ptr noundef nonnull align 8 dereferenceable(17) %43)
          to label %1741 unwind label %1744

1741:                                             ; preds = %1740
  %1742 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %179, ptr noundef nonnull align 8 dereferenceable(17) %209)
          to label %1743 unwind label %1748

1743:                                             ; preds = %1741
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %209) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %209) #7
  br label %1934

1744:                                             ; preds = %1740
  %1745 = landingpad { ptr, i32 }
          cleanup
  %1746 = extractvalue { ptr, i32 } %1745, 0
  store ptr %1746, ptr %10, align 8
  %1747 = extractvalue { ptr, i32 } %1745, 1
  store i32 %1747, ptr %11, align 4
  br label %1752

1748:                                             ; preds = %1741
  %1749 = landingpad { ptr, i32 }
          cleanup
  %1750 = extractvalue { ptr, i32 } %1749, 0
  store ptr %1750, ptr %10, align 8
  %1751 = extractvalue { ptr, i32 } %1749, 1
  store i32 %1751, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %209) #7
  br label %1752

1752:                                             ; preds = %1748, %1744
  call void @llvm.lifetime.end.p0(i64 24, ptr %209) #7
  br label %2230

1753:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 24, ptr %210) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %211) #7
  invoke void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %211, ptr noundef nonnull align 8 dereferenceable(17) %43)
          to label %1754 unwind label %1760

1754:                                             ; preds = %1753
  call void @llvm.lifetime.start.p0(i64 24, ptr %212) #7
  %1755 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 3
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %212, ptr noundef nonnull align 8 dereferenceable(17) %1755, ptr noundef nonnull align 8 dereferenceable(17) %37)
          to label %1756 unwind label %1764

1756:                                             ; preds = %1754
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %210, ptr noundef nonnull align 8 dereferenceable(17) %211, ptr noundef nonnull align 8 dereferenceable(17) %212)
          to label %1757 unwind label %1768

1757:                                             ; preds = %1756
  %1758 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %179, ptr noundef nonnull align 8 dereferenceable(17) %210)
          to label %1759 unwind label %1772

1759:                                             ; preds = %1757
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %210) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %212) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %212) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %211) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %211) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %210) #7
  br label %1934

1760:                                             ; preds = %1753
  %1761 = landingpad { ptr, i32 }
          cleanup
  %1762 = extractvalue { ptr, i32 } %1761, 0
  store ptr %1762, ptr %10, align 8
  %1763 = extractvalue { ptr, i32 } %1761, 1
  store i32 %1763, ptr %11, align 4
  br label %1778

1764:                                             ; preds = %1754
  %1765 = landingpad { ptr, i32 }
          cleanup
  %1766 = extractvalue { ptr, i32 } %1765, 0
  store ptr %1766, ptr %10, align 8
  %1767 = extractvalue { ptr, i32 } %1765, 1
  store i32 %1767, ptr %11, align 4
  br label %1777

1768:                                             ; preds = %1756
  %1769 = landingpad { ptr, i32 }
          cleanup
  %1770 = extractvalue { ptr, i32 } %1769, 0
  store ptr %1770, ptr %10, align 8
  %1771 = extractvalue { ptr, i32 } %1769, 1
  store i32 %1771, ptr %11, align 4
  br label %1776

1772:                                             ; preds = %1757
  %1773 = landingpad { ptr, i32 }
          cleanup
  %1774 = extractvalue { ptr, i32 } %1773, 0
  store ptr %1774, ptr %10, align 8
  %1775 = extractvalue { ptr, i32 } %1773, 1
  store i32 %1775, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %210) #7
  br label %1776

1776:                                             ; preds = %1772, %1768
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %212) #7
  br label %1777

1777:                                             ; preds = %1776, %1764
  call void @llvm.lifetime.end.p0(i64 24, ptr %212) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %211) #7
  br label %1778

1778:                                             ; preds = %1777, %1760
  call void @llvm.lifetime.end.p0(i64 24, ptr %211) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %210) #7
  br label %2230

1779:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 24, ptr %213) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %214) #7
  invoke void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %214, ptr noundef nonnull align 8 dereferenceable(17) %43)
          to label %1780 unwind label %1787

1780:                                             ; preds = %1779
  call void @llvm.lifetime.start.p0(i64 24, ptr %215) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %216) #7
  %1781 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 3
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %216, ptr noundef nonnull align 8 dereferenceable(17) %1781, ptr noundef nonnull align 8 dereferenceable(17) %37)
          to label %1782 unwind label %1791

1782:                                             ; preds = %1780
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %215, ptr noundef nonnull align 8 dereferenceable(17) %216, ptr noundef nonnull align 8 dereferenceable(17) %47)
          to label %1783 unwind label %1795

1783:                                             ; preds = %1782
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %213, ptr noundef nonnull align 8 dereferenceable(17) %214, ptr noundef nonnull align 8 dereferenceable(17) %215)
          to label %1784 unwind label %1799

1784:                                             ; preds = %1783
  %1785 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %179, ptr noundef nonnull align 8 dereferenceable(17) %213)
          to label %1786 unwind label %1803

1786:                                             ; preds = %1784
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %213) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %215) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %216) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %216) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %215) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %214) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %214) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %213) #7
  br label %1934

1787:                                             ; preds = %1779
  %1788 = landingpad { ptr, i32 }
          cleanup
  %1789 = extractvalue { ptr, i32 } %1788, 0
  store ptr %1789, ptr %10, align 8
  %1790 = extractvalue { ptr, i32 } %1788, 1
  store i32 %1790, ptr %11, align 4
  br label %1810

1791:                                             ; preds = %1780
  %1792 = landingpad { ptr, i32 }
          cleanup
  %1793 = extractvalue { ptr, i32 } %1792, 0
  store ptr %1793, ptr %10, align 8
  %1794 = extractvalue { ptr, i32 } %1792, 1
  store i32 %1794, ptr %11, align 4
  br label %1809

1795:                                             ; preds = %1782
  %1796 = landingpad { ptr, i32 }
          cleanup
  %1797 = extractvalue { ptr, i32 } %1796, 0
  store ptr %1797, ptr %10, align 8
  %1798 = extractvalue { ptr, i32 } %1796, 1
  store i32 %1798, ptr %11, align 4
  br label %1808

1799:                                             ; preds = %1783
  %1800 = landingpad { ptr, i32 }
          cleanup
  %1801 = extractvalue { ptr, i32 } %1800, 0
  store ptr %1801, ptr %10, align 8
  %1802 = extractvalue { ptr, i32 } %1800, 1
  store i32 %1802, ptr %11, align 4
  br label %1807

1803:                                             ; preds = %1784
  %1804 = landingpad { ptr, i32 }
          cleanup
  %1805 = extractvalue { ptr, i32 } %1804, 0
  store ptr %1805, ptr %10, align 8
  %1806 = extractvalue { ptr, i32 } %1804, 1
  store i32 %1806, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %213) #7
  br label %1807

1807:                                             ; preds = %1803, %1799
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %215) #7
  br label %1808

1808:                                             ; preds = %1807, %1795
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %216) #7
  br label %1809

1809:                                             ; preds = %1808, %1791
  call void @llvm.lifetime.end.p0(i64 24, ptr %216) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %215) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %214) #7
  br label %1810

1810:                                             ; preds = %1809, %1787
  call void @llvm.lifetime.end.p0(i64 24, ptr %214) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %213) #7
  br label %2230

1811:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 24, ptr %217) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %218) #7
  invoke void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %218, ptr noundef nonnull align 8 dereferenceable(17) %43)
          to label %1812 unwind label %1821

1812:                                             ; preds = %1811
  call void @llvm.lifetime.start.p0(i64 24, ptr %219) #7
  %1813 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 24, ptr %220) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %221) #7
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %221, ptr noundef nonnull align 8 dereferenceable(17) %41, ptr noundef nonnull align 8 dereferenceable(17) %47)
          to label %1814 unwind label %1825

1814:                                             ; preds = %1812
  call void @llvm.lifetime.start.p0(i64 24, ptr %222) #7
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %222, ptr noundef nonnull align 8 dereferenceable(17) %33, ptr noundef nonnull align 8 dereferenceable(17) %37)
          to label %1815 unwind label %1829

1815:                                             ; preds = %1814
  invoke void @_ZN9NOMAD_4_3plERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %220, ptr noundef nonnull align 8 dereferenceable(17) %221, ptr noundef nonnull align 8 dereferenceable(17) %222)
          to label %1816 unwind label %1833

1816:                                             ; preds = %1815
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %219, ptr noundef nonnull align 8 dereferenceable(17) %1813, ptr noundef nonnull align 8 dereferenceable(17) %220)
          to label %1817 unwind label %1837

1817:                                             ; preds = %1816
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %217, ptr noundef nonnull align 8 dereferenceable(17) %218, ptr noundef nonnull align 8 dereferenceable(17) %219)
          to label %1818 unwind label %1841

1818:                                             ; preds = %1817
  %1819 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %179, ptr noundef nonnull align 8 dereferenceable(17) %217)
          to label %1820 unwind label %1845

1820:                                             ; preds = %1818
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %217) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %219) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %220) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %222) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %222) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %221) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %221) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %220) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %219) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %218) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %218) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %217) #7
  br label %1934

1821:                                             ; preds = %1811
  %1822 = landingpad { ptr, i32 }
          cleanup
  %1823 = extractvalue { ptr, i32 } %1822, 0
  store ptr %1823, ptr %10, align 8
  %1824 = extractvalue { ptr, i32 } %1822, 1
  store i32 %1824, ptr %11, align 4
  br label %1854

1825:                                             ; preds = %1812
  %1826 = landingpad { ptr, i32 }
          cleanup
  %1827 = extractvalue { ptr, i32 } %1826, 0
  store ptr %1827, ptr %10, align 8
  %1828 = extractvalue { ptr, i32 } %1826, 1
  store i32 %1828, ptr %11, align 4
  br label %1853

1829:                                             ; preds = %1814
  %1830 = landingpad { ptr, i32 }
          cleanup
  %1831 = extractvalue { ptr, i32 } %1830, 0
  store ptr %1831, ptr %10, align 8
  %1832 = extractvalue { ptr, i32 } %1830, 1
  store i32 %1832, ptr %11, align 4
  br label %1852

1833:                                             ; preds = %1815
  %1834 = landingpad { ptr, i32 }
          cleanup
  %1835 = extractvalue { ptr, i32 } %1834, 0
  store ptr %1835, ptr %10, align 8
  %1836 = extractvalue { ptr, i32 } %1834, 1
  store i32 %1836, ptr %11, align 4
  br label %1851

1837:                                             ; preds = %1816
  %1838 = landingpad { ptr, i32 }
          cleanup
  %1839 = extractvalue { ptr, i32 } %1838, 0
  store ptr %1839, ptr %10, align 8
  %1840 = extractvalue { ptr, i32 } %1838, 1
  store i32 %1840, ptr %11, align 4
  br label %1850

1841:                                             ; preds = %1817
  %1842 = landingpad { ptr, i32 }
          cleanup
  %1843 = extractvalue { ptr, i32 } %1842, 0
  store ptr %1843, ptr %10, align 8
  %1844 = extractvalue { ptr, i32 } %1842, 1
  store i32 %1844, ptr %11, align 4
  br label %1849

1845:                                             ; preds = %1818
  %1846 = landingpad { ptr, i32 }
          cleanup
  %1847 = extractvalue { ptr, i32 } %1846, 0
  store ptr %1847, ptr %10, align 8
  %1848 = extractvalue { ptr, i32 } %1846, 1
  store i32 %1848, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %217) #7
  br label %1849

1849:                                             ; preds = %1845, %1841
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %219) #7
  br label %1850

1850:                                             ; preds = %1849, %1837
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %220) #7
  br label %1851

1851:                                             ; preds = %1850, %1833
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %222) #7
  br label %1852

1852:                                             ; preds = %1851, %1829
  call void @llvm.lifetime.end.p0(i64 24, ptr %222) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %221) #7
  br label %1853

1853:                                             ; preds = %1852, %1825
  call void @llvm.lifetime.end.p0(i64 24, ptr %221) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %220) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %219) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %218) #7
  br label %1854

1854:                                             ; preds = %1853, %1821
  call void @llvm.lifetime.end.p0(i64 24, ptr %218) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %217) #7
  br label %2230

1855:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 24, ptr %223) #7
  invoke void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %223, ptr noundef nonnull align 8 dereferenceable(17) %45)
          to label %1856 unwind label %1859

1856:                                             ; preds = %1855
  %1857 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %179, ptr noundef nonnull align 8 dereferenceable(17) %223)
          to label %1858 unwind label %1863

1858:                                             ; preds = %1856
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %223) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %223) #7
  br label %1934

1859:                                             ; preds = %1855
  %1860 = landingpad { ptr, i32 }
          cleanup
  %1861 = extractvalue { ptr, i32 } %1860, 0
  store ptr %1861, ptr %10, align 8
  %1862 = extractvalue { ptr, i32 } %1860, 1
  store i32 %1862, ptr %11, align 4
  br label %1867

1863:                                             ; preds = %1856
  %1864 = landingpad { ptr, i32 }
          cleanup
  %1865 = extractvalue { ptr, i32 } %1864, 0
  store ptr %1865, ptr %10, align 8
  %1866 = extractvalue { ptr, i32 } %1864, 1
  store i32 %1866, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %223) #7
  br label %1867

1867:                                             ; preds = %1863, %1859
  call void @llvm.lifetime.end.p0(i64 24, ptr %223) #7
  br label %2230

1868:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 24, ptr %224) #7
  invoke void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8 %224, ptr noundef nonnull align 8 dereferenceable(17) %51)
          to label %1869 unwind label %1872

1869:                                             ; preds = %1868
  %1870 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %179, ptr noundef nonnull align 8 dereferenceable(17) %224)
          to label %1871 unwind label %1876

1871:                                             ; preds = %1869
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %224) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %224) #7
  br label %1934

1872:                                             ; preds = %1868
  %1873 = landingpad { ptr, i32 }
          cleanup
  %1874 = extractvalue { ptr, i32 } %1873, 0
  store ptr %1874, ptr %10, align 8
  %1875 = extractvalue { ptr, i32 } %1873, 1
  store i32 %1875, ptr %11, align 4
  br label %1880

1876:                                             ; preds = %1869
  %1877 = landingpad { ptr, i32 }
          cleanup
  %1878 = extractvalue { ptr, i32 } %1877, 0
  store ptr %1878, ptr %10, align 8
  %1879 = extractvalue { ptr, i32 } %1877, 1
  store i32 %1879, ptr %11, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %224) #7
  br label %1880

1880:                                             ; preds = %1876, %1872
  call void @llvm.lifetime.end.p0(i64 24, ptr %224) #7
  br label %2230

1881:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #7
  store i32 7, ptr %225, align 4, !tbaa !9
  %1882 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %225)
          to label %1883 unwind label %1891

1883:                                             ; preds = %1881
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #7
  br i1 %1882, label %1884, label %1908

1884:                                             ; preds = %1883
  call void @llvm.lifetime.start.p0(i64 32, ptr %226) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %227) #7
  invoke void @_ZN9NOMAD_4_335SgtelibModelFormulationTypeToStringB5cxx11ERKNS_27SgtelibModelFormulationTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %227, ptr noundef nonnull align 4 dereferenceable(4) %59)
          to label %1885 unwind label %1895

1885:                                             ; preds = %1884
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %226, ptr noundef @.str.45, ptr noundef nonnull align 8 dereferenceable(32) %227)
          to label %1886 unwind label %1899

1886:                                             ; preds = %1885
  %1887 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %226) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %227) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #7
  %1888 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %1889 = load i32, ptr %1888, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %1889)
          to label %1890 unwind label %1904

1890:                                             ; preds = %1886
  br label %1908

1891:                                             ; preds = %1881
  %1892 = landingpad { ptr, i32 }
          cleanup
  %1893 = extractvalue { ptr, i32 } %1892, 0
  store ptr %1893, ptr %10, align 8
  %1894 = extractvalue { ptr, i32 } %1892, 1
  store i32 %1894, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #7
  br label %2230

1895:                                             ; preds = %1884
  %1896 = landingpad { ptr, i32 }
          cleanup
  %1897 = extractvalue { ptr, i32 } %1896, 0
  store ptr %1897, ptr %10, align 8
  %1898 = extractvalue { ptr, i32 } %1896, 1
  store i32 %1898, ptr %11, align 4
  br label %1903

1899:                                             ; preds = %1885
  %1900 = landingpad { ptr, i32 }
          cleanup
  %1901 = extractvalue { ptr, i32 } %1900, 0
  store ptr %1901, ptr %10, align 8
  %1902 = extractvalue { ptr, i32 } %1900, 1
  store i32 %1902, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #7
  br label %1903

1903:                                             ; preds = %1899, %1895
  call void @llvm.lifetime.end.p0(i64 32, ptr %227) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #7
  br label %2230

1904:                                             ; preds = %2211, %2186, %2183, %2155, %2147, %2049, %2043, %2037, %2031, %2025, %2019, %2013, %1949, %1915, %1886
  %1905 = landingpad { ptr, i32 }
          cleanup
  %1906 = extractvalue { ptr, i32 } %1905, 0
  store ptr %1906, ptr %10, align 8
  %1907 = extractvalue { ptr, i32 } %1905, 1
  store i32 %1907, ptr %11, align 4
  br label %2230

1908:                                             ; preds = %1890, %1883
  br label %1934

1909:                                             ; preds = %1494
  br label %1910

1910:                                             ; preds = %1909, %1494
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #7
  store i32 7, ptr %228, align 4, !tbaa !9
  %1911 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %228)
          to label %1912 unwind label %1920

1912:                                             ; preds = %1910
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #7
  br i1 %1911, label %1913, label %1933

1913:                                             ; preds = %1912
  call void @llvm.lifetime.start.p0(i64 32, ptr %229) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %230) #7
  invoke void @_ZN9NOMAD_4_335SgtelibModelFormulationTypeToStringB5cxx11ERKNS_27SgtelibModelFormulationTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %230, ptr noundef nonnull align 4 dereferenceable(4) %59)
          to label %1914 unwind label %1924

1914:                                             ; preds = %1913
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %229, ptr noundef @.str.45, ptr noundef nonnull align 8 dereferenceable(32) %230)
          to label %1915 unwind label %1928

1915:                                             ; preds = %1914
  %1916 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #7
  %1917 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %1918 = load i32, ptr %1917, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %1918)
          to label %1919 unwind label %1904

1919:                                             ; preds = %1915
  br label %1933

1920:                                             ; preds = %1910
  %1921 = landingpad { ptr, i32 }
          cleanup
  %1922 = extractvalue { ptr, i32 } %1921, 0
  store ptr %1922, ptr %10, align 8
  %1923 = extractvalue { ptr, i32 } %1921, 1
  store i32 %1923, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #7
  br label %2230

1924:                                             ; preds = %1913
  %1925 = landingpad { ptr, i32 }
          cleanup
  %1926 = extractvalue { ptr, i32 } %1925, 0
  store ptr %1926, ptr %10, align 8
  %1927 = extractvalue { ptr, i32 } %1925, 1
  store i32 %1927, ptr %11, align 4
  br label %1932

1928:                                             ; preds = %1914
  %1929 = landingpad { ptr, i32 }
          cleanup
  %1930 = extractvalue { ptr, i32 } %1929, 0
  store ptr %1930, ptr %10, align 8
  %1931 = extractvalue { ptr, i32 } %1929, 1
  store i32 %1931, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #7
  br label %1932

1932:                                             ; preds = %1928, %1924
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #7
  br label %2230

1933:                                             ; preds = %1919, %1912
  br label %1934

1934:                                             ; preds = %1933, %1908, %1871, %1858, %1820, %1786, %1759, %1743, %1739, %1651, %1592
  %1935 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 5
  %1936 = load double, ptr %1935, align 8, !tbaa !54
  %1937 = fcmp ogt double %1936, 0.000000e+00
  br i1 %1937, label %1938, label %1966

1938:                                             ; preds = %1934
  call void @llvm.lifetime.start.p0(i64 56, ptr %231) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %232) #7
  %1939 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 1
  %1940 = load ptr, ptr %1939, align 8, !tbaa !36
  invoke void @_ZNK9NOMAD_4_312SgtelibModel8getModelEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.72") align 8 %232, ptr noundef nonnull align 8 dereferenceable(552) %1940)
          to label %1941 unwind label %1952

1941:                                             ; preds = %1938
  %1942 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %232) #7
  %1943 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 5
  %1944 = load double, ptr %1943, align 8, !tbaa !54
  invoke void @_ZNK7SGTELIB9Surrogate26get_exclusion_area_penaltyERKNS_6MatrixEd(ptr dead_on_unwind writable sret(%"class.SGTELIB::Matrix") align 8 %231, ptr noundef nonnull align 8 dereferenceable(985) %1942, ptr noundef nonnull align 8 dereferenceable(56) %55, double noundef %1944)
          to label %1945 unwind label %1956

1945:                                             ; preds = %1941
  %1946 = invoke noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %231, i32 noundef 0, i32 noundef 0)
          to label %1947 unwind label %1960

1947:                                             ; preds = %1945
  %1948 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %49, double noundef %1946)
          to label %1949 unwind label %1960

1949:                                             ; preds = %1947
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %231) #7
  call void @_ZNSt12__shared_ptrIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %232) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %232) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %231) #7
  %1950 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoublepLERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %179, ptr noundef nonnull align 8 dereferenceable(17) %49)
          to label %1951 unwind label %1904

1951:                                             ; preds = %1949
  br label %1966

1952:                                             ; preds = %1938
  %1953 = landingpad { ptr, i32 }
          cleanup
  %1954 = extractvalue { ptr, i32 } %1953, 0
  store ptr %1954, ptr %10, align 8
  %1955 = extractvalue { ptr, i32 } %1953, 1
  store i32 %1955, ptr %11, align 4
  br label %1965

1956:                                             ; preds = %1941
  %1957 = landingpad { ptr, i32 }
          cleanup
  %1958 = extractvalue { ptr, i32 } %1957, 0
  store ptr %1958, ptr %10, align 8
  %1959 = extractvalue { ptr, i32 } %1957, 1
  store i32 %1959, ptr %11, align 4
  br label %1964

1960:                                             ; preds = %1947, %1945
  %1961 = landingpad { ptr, i32 }
          cleanup
  %1962 = extractvalue { ptr, i32 } %1961, 0
  store ptr %1962, ptr %10, align 8
  %1963 = extractvalue { ptr, i32 } %1961, 1
  store i32 %1963, ptr %11, align 4
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %231) #7
  br label %1964

1964:                                             ; preds = %1960, %1956
  call void @_ZNSt12__shared_ptrIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %232) #7
  br label %1965

1965:                                             ; preds = %1964, %1952
  call void @llvm.lifetime.end.p0(i64 16, ptr %232) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %231) #7
  br label %2230

1966:                                             ; preds = %1951, %1934
  call void @llvm.lifetime.start.p0(i64 8, ptr %233) #7
  store i64 0, ptr %233, align 8, !tbaa !32
  br label %1967

1967:                                             ; preds = %1990, %1966
  %1968 = load i64, ptr %233, align 8, !tbaa !32
  %1969 = getelementptr inbounds %"class.NOMAD_4_3::Evaluator", ptr %265, i32 0, i32 3
  %1970 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1969) #7
  %1971 = icmp ult i64 %1968, %1970
  br i1 %1971, label %1973, label %1972

1972:                                             ; preds = %1967
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #7
  br label %1993

1973:                                             ; preds = %1967
  %1974 = getelementptr inbounds %"class.NOMAD_4_3::Evaluator", ptr %265, i32 0, i32 3
  %1975 = load i64, ptr %233, align 8, !tbaa !32
  %1976 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1974, i64 noundef %1975) #7
  %1977 = load i32, ptr %1976, align 4, !tbaa !49
  %1978 = icmp eq i32 %1977, 0
  br i1 %1978, label %1979, label %1989

1979:                                             ; preds = %1973
  %1980 = load i64, ptr %233, align 8, !tbaa !32
  %1981 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9NOMAD_4_313ArrayOfDoubleixEm(ptr noundef nonnull align 8 dereferenceable(24) %180, i64 noundef %1980)
          to label %1982 unwind label %1985

1982:                                             ; preds = %1979
  %1983 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %1981, ptr noundef nonnull align 8 dereferenceable(17) %179)
          to label %1984 unwind label %1985

1984:                                             ; preds = %1982
  br label %1989

1985:                                             ; preds = %1982, %1979
  %1986 = landingpad { ptr, i32 }
          cleanup
  %1987 = extractvalue { ptr, i32 } %1986, 0
  store ptr %1987, ptr %10, align 8
  %1988 = extractvalue { ptr, i32 } %1986, 1
  store i32 %1988, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #7
  br label %2230

1989:                                             ; preds = %1984, %1973
  br label %1990

1990:                                             ; preds = %1989
  %1991 = load i64, ptr %233, align 8, !tbaa !32
  %1992 = add i64 %1991, 1
  store i64 %1992, ptr %233, align 8, !tbaa !32
  br label %1967, !llvm.loop !55

1993:                                             ; preds = %1972
  %1994 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %234) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %235) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %236) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %236)
          to label %1995 unwind label %2054

1995:                                             ; preds = %1993
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %235, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %236)
          to label %1996 unwind label %2058

1996:                                             ; preds = %1995
  call void @llvm.lifetime.start.p0(i64 32, ptr %237) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #7
  invoke void @_ZNK9NOMAD_4_313ArrayOfDouble7displayERKS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %234, ptr noundef nonnull align 8 dereferenceable(24) %180, ptr noundef nonnull align 8 dereferenceable(24) %235, ptr noundef nonnull align 8 dereferenceable(32) %237)
          to label %1997 unwind label %2062

1997:                                             ; preds = %1996
  %1998 = getelementptr inbounds %"class.NOMAD_4_3::Evaluator", ptr %265, i32 0, i32 3
  invoke void @_ZN9NOMAD_4_39EvalPoint6setBBOERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorINS_12BBOutputTypeESaISA_EENS_8EvalTypeEb(ptr noundef nonnull align 8 dereferenceable(160) %1994, ptr noundef nonnull align 8 dereferenceable(32) %234, ptr noundef nonnull align 8 dereferenceable(24) %1998, i32 noundef 1, i1 noundef zeroext true)
          to label %1999 unwind label %2066

1999:                                             ; preds = %1997
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %237) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %235) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %236) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %236) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %235) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %234) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #7
  store i32 7, ptr %238, align 4, !tbaa !9
  %2000 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %238)
          to label %2001 unwind label %2073

2001:                                             ; preds = %1999
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #7
  br i1 %2000, label %2002, label %2183

2002:                                             ; preds = %2001
  %2003 = load i8, ptr %58, align 1, !tbaa !35, !range !42, !noundef !43
  %2004 = trunc i8 %2003 to i1
  br i1 %2004, label %2005, label %2145

2005:                                             ; preds = %2002
  call void @llvm.lifetime.start.p0(i64 32, ptr %239) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %240) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %241) #7
  %2006 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 1
  %2007 = load ptr, ptr %2006, align 8, !tbaa !36
  invoke void @_ZNK9NOMAD_4_312SgtelibModel14getTrainingSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.69") align 8 %241, ptr noundef nonnull align 8 dereferenceable(552) %2007)
          to label %2008 unwind label %2077

2008:                                             ; preds = %2005
  %2009 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %241) #7
  %2010 = invoke noundef double @_ZNK7SGTELIB11TrainingSet9get_f_minEv(ptr noundef nonnull align 8 dereferenceable(504) %2009)
          to label %2011 unwind label %2081

2011:                                             ; preds = %2008
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %240, double noundef %2010)
          to label %2012 unwind label %2081

2012:                                             ; preds = %2011
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %239, ptr noundef @.str.46, ptr noundef nonnull align 8 dereferenceable(32) %240)
          to label %2013 unwind label %2085

2013:                                             ; preds = %2012
  %2014 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %239) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #7
  call void @_ZNSt12__shared_ptrIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %241) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %241) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %240) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %239) #7
  %2015 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %2016 = load i32, ptr %2015, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %2016)
          to label %2017 unwind label %1904

2017:                                             ; preds = %2013
  call void @llvm.lifetime.start.p0(i64 32, ptr %242) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %243) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %243, ptr noundef nonnull align 8 dereferenceable(17) %33, i32 noundef 6, i64 noundef 0)
          to label %2018 unwind label %2091

2018:                                             ; preds = %2017
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %242, ptr noundef @.str.47, ptr noundef nonnull align 8 dereferenceable(32) %243)
          to label %2019 unwind label %2095

2019:                                             ; preds = %2018
  %2020 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %242) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %243) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %242) #7
  %2021 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %2022 = load i32, ptr %2021, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %2022)
          to label %2023 unwind label %1904

2023:                                             ; preds = %2019
  call void @llvm.lifetime.start.p0(i64 32, ptr %244) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %245) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %245, ptr noundef nonnull align 8 dereferenceable(17) %47, i32 noundef 6, i64 noundef 0)
          to label %2024 unwind label %2100

2024:                                             ; preds = %2023
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %244, ptr noundef @.str.48, ptr noundef nonnull align 8 dereferenceable(32) %245)
          to label %2025 unwind label %2104

2025:                                             ; preds = %2024
  %2026 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %244) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %244) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %245) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %244) #7
  %2027 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %2028 = load i32, ptr %2027, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %2028)
          to label %2029 unwind label %1904

2029:                                             ; preds = %2025
  call void @llvm.lifetime.start.p0(i64 32, ptr %246) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %247) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %247, ptr noundef nonnull align 8 dereferenceable(17) %39, i32 noundef 6, i64 noundef 0)
          to label %2030 unwind label %2109

2030:                                             ; preds = %2029
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %246, ptr noundef @.str.49, ptr noundef nonnull align 8 dereferenceable(32) %247)
          to label %2031 unwind label %2113

2031:                                             ; preds = %2030
  %2032 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %246) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %247) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %247) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %246) #7
  %2033 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %2034 = load i32, ptr %2033, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %2034)
          to label %2035 unwind label %1904

2035:                                             ; preds = %2031
  call void @llvm.lifetime.start.p0(i64 32, ptr %248) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %249) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %249, ptr noundef nonnull align 8 dereferenceable(17) %41, i32 noundef 6, i64 noundef 0)
          to label %2036 unwind label %2118

2036:                                             ; preds = %2035
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %248, ptr noundef @.str.50, ptr noundef nonnull align 8 dereferenceable(32) %249)
          to label %2037 unwind label %2122

2037:                                             ; preds = %2036
  %2038 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %248) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %249) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %248) #7
  %2039 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %2040 = load i32, ptr %2039, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %2040)
          to label %2041 unwind label %1904

2041:                                             ; preds = %2037
  call void @llvm.lifetime.start.p0(i64 32, ptr %250) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %251) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %251, ptr noundef nonnull align 8 dereferenceable(17) %45, i32 noundef 6, i64 noundef 0)
          to label %2042 unwind label %2127

2042:                                             ; preds = %2041
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %250, ptr noundef @.str.51, ptr noundef nonnull align 8 dereferenceable(32) %251)
          to label %2043 unwind label %2131

2043:                                             ; preds = %2042
  %2044 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %250) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %251) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %250) #7
  %2045 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %2046 = load i32, ptr %2045, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %2046)
          to label %2047 unwind label %1904

2047:                                             ; preds = %2043
  call void @llvm.lifetime.start.p0(i64 32, ptr %252) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %253) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %253, ptr noundef nonnull align 8 dereferenceable(17) %43, i32 noundef 6, i64 noundef 0)
          to label %2048 unwind label %2136

2048:                                             ; preds = %2047
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %252, ptr noundef @.str.52, ptr noundef nonnull align 8 dereferenceable(32) %253)
          to label %2049 unwind label %2140

2049:                                             ; preds = %2048
  %2050 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %252) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %253) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %252) #7
  %2051 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %2052 = load i32, ptr %2051, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %2052)
          to label %2053 unwind label %1904

2053:                                             ; preds = %2049
  br label %2145

2054:                                             ; preds = %1993
  %2055 = landingpad { ptr, i32 }
          cleanup
  %2056 = extractvalue { ptr, i32 } %2055, 0
  store ptr %2056, ptr %10, align 8
  %2057 = extractvalue { ptr, i32 } %2055, 1
  store i32 %2057, ptr %11, align 4
  br label %2072

2058:                                             ; preds = %1995
  %2059 = landingpad { ptr, i32 }
          cleanup
  %2060 = extractvalue { ptr, i32 } %2059, 0
  store ptr %2060, ptr %10, align 8
  %2061 = extractvalue { ptr, i32 } %2059, 1
  store i32 %2061, ptr %11, align 4
  br label %2071

2062:                                             ; preds = %1996
  %2063 = landingpad { ptr, i32 }
          cleanup
  %2064 = extractvalue { ptr, i32 } %2063, 0
  store ptr %2064, ptr %10, align 8
  %2065 = extractvalue { ptr, i32 } %2063, 1
  store i32 %2065, ptr %11, align 4
  br label %2070

2066:                                             ; preds = %1997
  %2067 = landingpad { ptr, i32 }
          cleanup
  %2068 = extractvalue { ptr, i32 } %2067, 0
  store ptr %2068, ptr %10, align 8
  %2069 = extractvalue { ptr, i32 } %2067, 1
  store i32 %2069, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #7
  br label %2070

2070:                                             ; preds = %2066, %2062
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %237) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %235) #7
  br label %2071

2071:                                             ; preds = %2070, %2058
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %236) #7
  br label %2072

2072:                                             ; preds = %2071, %2054
  call void @llvm.lifetime.end.p0(i64 24, ptr %236) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %235) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %234) #7
  br label %2230

2073:                                             ; preds = %1999
  %2074 = landingpad { ptr, i32 }
          cleanup
  %2075 = extractvalue { ptr, i32 } %2074, 0
  store ptr %2075, ptr %10, align 8
  %2076 = extractvalue { ptr, i32 } %2074, 1
  store i32 %2076, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #7
  br label %2230

2077:                                             ; preds = %2005
  %2078 = landingpad { ptr, i32 }
          cleanup
  %2079 = extractvalue { ptr, i32 } %2078, 0
  store ptr %2079, ptr %10, align 8
  %2080 = extractvalue { ptr, i32 } %2078, 1
  store i32 %2080, ptr %11, align 4
  br label %2090

2081:                                             ; preds = %2011, %2008
  %2082 = landingpad { ptr, i32 }
          cleanup
  %2083 = extractvalue { ptr, i32 } %2082, 0
  store ptr %2083, ptr %10, align 8
  %2084 = extractvalue { ptr, i32 } %2082, 1
  store i32 %2084, ptr %11, align 4
  br label %2089

2085:                                             ; preds = %2012
  %2086 = landingpad { ptr, i32 }
          cleanup
  %2087 = extractvalue { ptr, i32 } %2086, 0
  store ptr %2087, ptr %10, align 8
  %2088 = extractvalue { ptr, i32 } %2086, 1
  store i32 %2088, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #7
  br label %2089

2089:                                             ; preds = %2085, %2081
  call void @_ZNSt12__shared_ptrIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %241) #7
  br label %2090

2090:                                             ; preds = %2089, %2077
  call void @llvm.lifetime.end.p0(i64 16, ptr %241) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %240) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %239) #7
  br label %2230

2091:                                             ; preds = %2017
  %2092 = landingpad { ptr, i32 }
          cleanup
  %2093 = extractvalue { ptr, i32 } %2092, 0
  store ptr %2093, ptr %10, align 8
  %2094 = extractvalue { ptr, i32 } %2092, 1
  store i32 %2094, ptr %11, align 4
  br label %2099

2095:                                             ; preds = %2018
  %2096 = landingpad { ptr, i32 }
          cleanup
  %2097 = extractvalue { ptr, i32 } %2096, 0
  store ptr %2097, ptr %10, align 8
  %2098 = extractvalue { ptr, i32 } %2096, 1
  store i32 %2098, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #7
  br label %2099

2099:                                             ; preds = %2095, %2091
  call void @llvm.lifetime.end.p0(i64 32, ptr %243) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %242) #7
  br label %2230

2100:                                             ; preds = %2023
  %2101 = landingpad { ptr, i32 }
          cleanup
  %2102 = extractvalue { ptr, i32 } %2101, 0
  store ptr %2102, ptr %10, align 8
  %2103 = extractvalue { ptr, i32 } %2101, 1
  store i32 %2103, ptr %11, align 4
  br label %2108

2104:                                             ; preds = %2024
  %2105 = landingpad { ptr, i32 }
          cleanup
  %2106 = extractvalue { ptr, i32 } %2105, 0
  store ptr %2106, ptr %10, align 8
  %2107 = extractvalue { ptr, i32 } %2105, 1
  store i32 %2107, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #7
  br label %2108

2108:                                             ; preds = %2104, %2100
  call void @llvm.lifetime.end.p0(i64 32, ptr %245) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %244) #7
  br label %2230

2109:                                             ; preds = %2029
  %2110 = landingpad { ptr, i32 }
          cleanup
  %2111 = extractvalue { ptr, i32 } %2110, 0
  store ptr %2111, ptr %10, align 8
  %2112 = extractvalue { ptr, i32 } %2110, 1
  store i32 %2112, ptr %11, align 4
  br label %2117

2113:                                             ; preds = %2030
  %2114 = landingpad { ptr, i32 }
          cleanup
  %2115 = extractvalue { ptr, i32 } %2114, 0
  store ptr %2115, ptr %10, align 8
  %2116 = extractvalue { ptr, i32 } %2114, 1
  store i32 %2116, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %247) #7
  br label %2117

2117:                                             ; preds = %2113, %2109
  call void @llvm.lifetime.end.p0(i64 32, ptr %247) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %246) #7
  br label %2230

2118:                                             ; preds = %2035
  %2119 = landingpad { ptr, i32 }
          cleanup
  %2120 = extractvalue { ptr, i32 } %2119, 0
  store ptr %2120, ptr %10, align 8
  %2121 = extractvalue { ptr, i32 } %2119, 1
  store i32 %2121, ptr %11, align 4
  br label %2126

2122:                                             ; preds = %2036
  %2123 = landingpad { ptr, i32 }
          cleanup
  %2124 = extractvalue { ptr, i32 } %2123, 0
  store ptr %2124, ptr %10, align 8
  %2125 = extractvalue { ptr, i32 } %2123, 1
  store i32 %2125, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #7
  br label %2126

2126:                                             ; preds = %2122, %2118
  call void @llvm.lifetime.end.p0(i64 32, ptr %249) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %248) #7
  br label %2230

2127:                                             ; preds = %2041
  %2128 = landingpad { ptr, i32 }
          cleanup
  %2129 = extractvalue { ptr, i32 } %2128, 0
  store ptr %2129, ptr %10, align 8
  %2130 = extractvalue { ptr, i32 } %2128, 1
  store i32 %2130, ptr %11, align 4
  br label %2135

2131:                                             ; preds = %2042
  %2132 = landingpad { ptr, i32 }
          cleanup
  %2133 = extractvalue { ptr, i32 } %2132, 0
  store ptr %2133, ptr %10, align 8
  %2134 = extractvalue { ptr, i32 } %2132, 1
  store i32 %2134, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #7
  br label %2135

2135:                                             ; preds = %2131, %2127
  call void @llvm.lifetime.end.p0(i64 32, ptr %251) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %250) #7
  br label %2230

2136:                                             ; preds = %2047
  %2137 = landingpad { ptr, i32 }
          cleanup
  %2138 = extractvalue { ptr, i32 } %2137, 0
  store ptr %2138, ptr %10, align 8
  %2139 = extractvalue { ptr, i32 } %2137, 1
  store i32 %2139, ptr %11, align 4
  br label %2144

2140:                                             ; preds = %2048
  %2141 = landingpad { ptr, i32 }
          cleanup
  %2142 = extractvalue { ptr, i32 } %2141, 0
  store ptr %2142, ptr %10, align 8
  %2143 = extractvalue { ptr, i32 } %2141, 1
  store i32 %2143, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #7
  br label %2144

2144:                                             ; preds = %2140, %2136
  call void @llvm.lifetime.end.p0(i64 32, ptr %253) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %252) #7
  br label %2230

2145:                                             ; preds = %2053, %2002
  call void @llvm.lifetime.start.p0(i64 32, ptr %254) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %255) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %255, ptr noundef nonnull align 8 dereferenceable(17) %49, i32 noundef 6, i64 noundef 0)
          to label %2146 unwind label %2160

2146:                                             ; preds = %2145
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %254, ptr noundef @.str.53, ptr noundef nonnull align 8 dereferenceable(32) %255)
          to label %2147 unwind label %2164

2147:                                             ; preds = %2146
  %2148 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %254) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %254) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %255) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %254) #7
  %2149 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %2150 = load i32, ptr %2149, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %2150)
          to label %2151 unwind label %1904

2151:                                             ; preds = %2147
  call void @llvm.lifetime.start.p0(i64 32, ptr %256) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %257) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %258) #7
  %2152 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZNK9NOMAD_4_39EvalPoint6getBBOB5cxx11ENS_8EvalTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %258, ptr noundef nonnull align 8 dereferenceable(160) %2152, i32 noundef 1)
          to label %2153 unwind label %2169

2153:                                             ; preds = %2151
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %257, ptr noundef @.str.54, ptr noundef nonnull align 8 dereferenceable(32) %258)
          to label %2154 unwind label %2173

2154:                                             ; preds = %2153
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %256, ptr noundef nonnull align 8 dereferenceable(32) %257, ptr noundef @.str.32)
          to label %2155 unwind label %2177

2155:                                             ; preds = %2154
  %2156 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %256) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %258) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %258) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %257) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %256) #7
  %2157 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 6
  %2158 = load i32, ptr %2157, align 8, !tbaa !11
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef %2158)
          to label %2159 unwind label %1904

2159:                                             ; preds = %2155
  br label %2183

2160:                                             ; preds = %2145
  %2161 = landingpad { ptr, i32 }
          cleanup
  %2162 = extractvalue { ptr, i32 } %2161, 0
  store ptr %2162, ptr %10, align 8
  %2163 = extractvalue { ptr, i32 } %2161, 1
  store i32 %2163, ptr %11, align 4
  br label %2168

2164:                                             ; preds = %2146
  %2165 = landingpad { ptr, i32 }
          cleanup
  %2166 = extractvalue { ptr, i32 } %2165, 0
  store ptr %2166, ptr %10, align 8
  %2167 = extractvalue { ptr, i32 } %2165, 1
  store i32 %2167, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #7
  br label %2168

2168:                                             ; preds = %2164, %2160
  call void @llvm.lifetime.end.p0(i64 32, ptr %255) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %254) #7
  br label %2230

2169:                                             ; preds = %2151
  %2170 = landingpad { ptr, i32 }
          cleanup
  %2171 = extractvalue { ptr, i32 } %2170, 0
  store ptr %2171, ptr %10, align 8
  %2172 = extractvalue { ptr, i32 } %2170, 1
  store i32 %2172, ptr %11, align 4
  br label %2182

2173:                                             ; preds = %2153
  %2174 = landingpad { ptr, i32 }
          cleanup
  %2175 = extractvalue { ptr, i32 } %2174, 0
  store ptr %2175, ptr %10, align 8
  %2176 = extractvalue { ptr, i32 } %2174, 1
  store i32 %2176, ptr %11, align 4
  br label %2181

2177:                                             ; preds = %2154
  %2178 = landingpad { ptr, i32 }
          cleanup
  %2179 = extractvalue { ptr, i32 } %2178, 0
  store ptr %2179, ptr %10, align 8
  %2180 = extractvalue { ptr, i32 } %2178, 1
  store i32 %2180, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #7
  br label %2181

2181:                                             ; preds = %2177, %2173
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %258) #7
  br label %2182

2182:                                             ; preds = %2181, %2169
  call void @llvm.lifetime.end.p0(i64 32, ptr %258) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %257) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %256) #7
  br label %2230

2183:                                             ; preds = %2159, %2001
  %2184 = invoke noundef zeroext i1 @_ZNK9NOMAD_4_36Double9isDefinedEv(ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %2185 unwind label %1904

2185:                                             ; preds = %2183
  br i1 %2184, label %2186, label %2189

2186:                                             ; preds = %2185
  %2187 = invoke noundef zeroext i1 @_ZNK9NOMAD_4_36Double9isDefinedEv(ptr noundef nonnull align 8 dereferenceable(17) %39)
          to label %2188 unwind label %1904

2188:                                             ; preds = %2186
  br i1 %2187, label %2211, label %2189

2189:                                             ; preds = %2188, %2185
  store i1 true, ptr %263, align 1
  %2190 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %259) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %260) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %260)
          to label %2191 unwind label %2194

2191:                                             ; preds = %2189
  call void @llvm.lifetime.start.p0(i64 32, ptr %261) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %262) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %261, ptr noundef @.str.55, ptr noundef nonnull align 1 dereferenceable(1) %262)
          to label %2192 unwind label %2198

2192:                                             ; preds = %2191
  invoke void @_ZN7SGTELIB9ExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiS8_(ptr noundef nonnull align 8 dereferenceable(112) %2190, ptr noundef nonnull align 8 dereferenceable(32) %259, i32 noundef 493, ptr noundef nonnull align 8 dereferenceable(32) %261)
          to label %2193 unwind label %2202

2193:                                             ; preds = %2192
  store i1 false, ptr %263, align 1
  invoke void @__cxa_throw(ptr %2190, ptr @_ZTIN7SGTELIB9ExceptionE, ptr @_ZN7SGTELIB9ExceptionD2Ev) #8
          to label %2259 unwind label %2202

2194:                                             ; preds = %2189
  %2195 = landingpad { ptr, i32 }
          cleanup
  %2196 = extractvalue { ptr, i32 } %2195, 0
  store ptr %2196, ptr %10, align 8
  %2197 = extractvalue { ptr, i32 } %2195, 1
  store i32 %2197, ptr %11, align 4
  br label %2207

2198:                                             ; preds = %2191
  %2199 = landingpad { ptr, i32 }
          cleanup
  %2200 = extractvalue { ptr, i32 } %2199, 0
  store ptr %2200, ptr %10, align 8
  %2201 = extractvalue { ptr, i32 } %2199, 1
  store i32 %2201, ptr %11, align 4
  br label %2206

2202:                                             ; preds = %2193, %2192
  %2203 = landingpad { ptr, i32 }
          cleanup
  %2204 = extractvalue { ptr, i32 } %2203, 0
  store ptr %2204, ptr %10, align 8
  %2205 = extractvalue { ptr, i32 } %2203, 1
  store i32 %2205, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %261) #7
  br label %2206

2206:                                             ; preds = %2202, %2198
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %262) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %261) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %259) #7
  br label %2207

2207:                                             ; preds = %2206, %2194
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %260) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %259) #7
  %2208 = load i1, ptr %263, align 1
  br i1 %2208, label %2209, label %2210

2209:                                             ; preds = %2207
  call void @__cxa_free_exception(ptr %2190) #7
  br label %2210

2210:                                             ; preds = %2209, %2207
  br label %2230

2211:                                             ; preds = %2188
  %2212 = load ptr, ptr %8, align 8, !tbaa !5
  store i8 1, ptr %2212, align 1, !tbaa !35
  %2213 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN9NOMAD_4_39EvalPoint13setEvalStatusENS_14EvalStatusTypeENS_8EvalTypeE(ptr noundef nonnull align 8 dereferenceable(160) %2213, i32 noundef 4, i32 noundef 1)
          to label %2214 unwind label %1904

2214:                                             ; preds = %2211
  call void @llvm.lifetime.start.p0(i64 160, ptr %264) #7
  %2215 = load ptr, ptr %6, align 8, !tbaa !5
  %2216 = getelementptr inbounds %"class.NOMAD_4_3::SgtelibModelEvaluator", ptr %265, i32 0, i32 7
  invoke void @_ZNK9NOMAD_4_39EvalPoint27makeFullSpacePointFromFixedERKNS_5PointE(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::EvalPoint") align 8 %264, ptr noundef nonnull align 8 dereferenceable(160) %2215, ptr noundef nonnull align 8 dereferenceable(24) %2216)
          to label %2217 unwind label %2221

2217:                                             ; preds = %2214
  %2218 = load ptr, ptr %6, align 8, !tbaa !5
  %2219 = invoke noundef nonnull align 8 dereferenceable(160) ptr @_ZN9NOMAD_4_39EvalPointaSERKS0_(ptr noundef nonnull align 8 dereferenceable(160) %2218, ptr noundef nonnull align 8 dereferenceable(160) %264)
          to label %2220 unwind label %2225

2220:                                             ; preds = %2217
  call void @_ZN9NOMAD_4_39EvalPointD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %264) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr %264) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %180) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %180) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %179) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %179) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %55) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %55) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %53) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %51) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %49) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %47) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %45) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %43) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %41) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %41) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %39) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %39) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %37) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %35) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %33) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %30) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %30) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %27) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %27) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %24) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %24) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %21) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #7
  ret i1 true

2221:                                             ; preds = %2214
  %2222 = landingpad { ptr, i32 }
          cleanup
  %2223 = extractvalue { ptr, i32 } %2222, 0
  store ptr %2223, ptr %10, align 8
  %2224 = extractvalue { ptr, i32 } %2222, 1
  store i32 %2224, ptr %11, align 4
  br label %2229

2225:                                             ; preds = %2217
  %2226 = landingpad { ptr, i32 }
          cleanup
  %2227 = extractvalue { ptr, i32 } %2226, 0
  store ptr %2227, ptr %10, align 8
  %2228 = extractvalue { ptr, i32 } %2226, 1
  store i32 %2228, ptr %11, align 4
  call void @_ZN9NOMAD_4_39EvalPointD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %264) #7
  br label %2229

2229:                                             ; preds = %2225, %2221
  call void @llvm.lifetime.end.p0(i64 160, ptr %264) #7
  br label %2230

2230:                                             ; preds = %2229, %2210, %2182, %2168, %2144, %2135, %2126, %2117, %2108, %2099, %2090, %2073, %2072, %1985, %1965, %1932, %1920, %1904, %1903, %1891, %1880, %1867, %1854, %1810, %1778, %1752, %1734, %1683, %1646, %1618, %1587, %1536
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %180) #7
  br label %2231

2231:                                             ; preds = %2230, %1510
  call void @llvm.lifetime.end.p0(i64 24, ptr %180) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %179) #7
  br label %2232

2232:                                             ; preds = %2231, %1498
  call void @llvm.lifetime.end.p0(i64 24, ptr %179) #7
  br label %2233

2233:                                             ; preds = %2232, %1497, %485, %467
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %55) #7
  br label %2234

2234:                                             ; preds = %2233, %466
  call void @llvm.lifetime.end.p0(i64 56, ptr %55) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %53) #7
  br label %2235

2235:                                             ; preds = %2234, %454
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %51) #7
  br label %2236

2236:                                             ; preds = %2235, %450
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %49) #7
  br label %2237

2237:                                             ; preds = %2236, %446
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %47) #7
  br label %2238

2238:                                             ; preds = %2237, %442
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %45) #7
  br label %2239

2239:                                             ; preds = %2238, %438
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %43) #7
  br label %2240

2240:                                             ; preds = %2239, %434
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %41) #7
  br label %2241

2241:                                             ; preds = %2240, %430
  call void @llvm.lifetime.end.p0(i64 24, ptr %41) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %39) #7
  br label %2242

2242:                                             ; preds = %2241, %426
  call void @llvm.lifetime.end.p0(i64 24, ptr %39) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %37) #7
  br label %2243

2243:                                             ; preds = %2242, %422
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %35) #7
  br label %2244

2244:                                             ; preds = %2243, %418
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %33) #7
  br label %2245

2245:                                             ; preds = %2244, %414
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %30) #7
  br label %2246

2246:                                             ; preds = %2245, %413
  call void @llvm.lifetime.end.p0(i64 56, ptr %30) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %27) #7
  br label %2247

2247:                                             ; preds = %2246, %404
  call void @llvm.lifetime.end.p0(i64 56, ptr %27) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %24) #7
  br label %2248

2248:                                             ; preds = %2247, %395
  call void @llvm.lifetime.end.p0(i64 56, ptr %24) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %21) #7
  br label %2249

2249:                                             ; preds = %2248, %386
  call void @llvm.lifetime.end.p0(i64 56, ptr %21) #7
  br label %2250

2250:                                             ; preds = %2249, %374
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %2251

2251:                                             ; preds = %2250, %370
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  br label %2252

2252:                                             ; preds = %2251, %366
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  br label %2253

2253:                                             ; preds = %2252, %310, %309, %287
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #7
  br label %2254

2254:                                             ; preds = %2253, %283
  %2255 = load ptr, ptr %10, align 8
  %2256 = load i32, ptr %11, align 4
  %2257 = insertvalue { ptr, i32 } poison, ptr %2255, 0
  %2258 = insertvalue { ptr, i32 } %2257, i32 %2256, 1
  resume { ptr, i32 } %2258

2259:                                             ; preds = %2193, %685, %541
  unreachable
}

declare void @_ZNK9NOMAD_4_39EvalPoint26makeSubSpacePointFromFixedERKNS_5PointE(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::EvalPoint") align 8, ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(24)) #4

declare noundef nonnull align 8 dereferenceable(160) ptr @_ZN9NOMAD_4_39EvalPointaSERKS0_(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(160)) #4

; Function Attrs: nounwind
declare void @_ZN9NOMAD_4_39EvalPointD1Ev(ptr noundef nonnull align 8 dereferenceable(160)) unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #5

declare void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #4

declare void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #4

declare void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

; Function Attrs: nounwind
declare void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK9NOMAD_4_313ArrayOfDouble4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

declare noundef i64 @_ZN9NOMAD_4_316getNbConstraintsERKSt6vectorINS_12BBOutputTypeESaIS1_EE(ptr noundef nonnull align 8 dereferenceable(24)) #4

declare noundef i64 @_ZN9NOMAD_4_312SgtelibModel11getNbModelsENS_27SgtelibModelFeasibilityTypeEm(i32 noundef, i64 noundef) #4

declare void @_ZN7SGTELIB6MatrixC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef) unnamed_addr #4

declare void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

declare noundef i32 @_ZNK9NOMAD_4_312SgtelibModel14getFormulationEv(ptr noundef nonnull align 8 dereferenceable(552)) #4

declare void @_ZN7SGTELIB6Matrix3setEiid(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef, double noundef) #4

declare noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9NOMAD_4_313ArrayOfDoubleixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #4

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9NOMAD_4_36Double8todoubleEv(ptr noundef nonnull align 8 dereferenceable(17)) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

declare void @_ZN9NOMAD_4_313ArrayOfStringC1EmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4

declare void @_ZN9NOMAD_4_39EvalPoint6setBBOERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorINS_12BBOutputTypeESaISA_EENS_8EvalTypeEb(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i1 noundef zeroext) #4

declare void @_ZNK9NOMAD_4_313ArrayOfString7displayB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN9NOMAD_4_3neERKNS_6DoubleES2_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) #5

declare ptr @__cxa_allocate_exception(i64)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7SGTELIB9ExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiS8_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7SGTELIB9ExceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #1 align 2

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @__cxa_free_exception(ptr)

declare void @_ZN9NOMAD_4_335SgtelibModelFormulationTypeToStringB5cxx11ERKNS_27SgtelibModelFormulationTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #4

declare void @_ZN9NOMAD_4_312boolToStringB5cxx11Eb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, i1 noundef zeroext) #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9NOMAD_4_312SgtelibModel16getFoundFeasibleEv(ptr noundef nonnull align 8 dereferenceable(552)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK9NOMAD_4_312SgtelibModel14getTrainingSetEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.69") align 8, ptr noundef nonnull align 8 dereferenceable(552)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) #1 align 2

declare void @_ZNK7SGTELIB11TrainingSet23get_distance_to_closestERKNS_6MatrixE(ptr dead_on_unwind writable sret(%"class.SGTELIB::Matrix") align 8, ptr noundef nonnull align 8 dereferenceable(504), ptr noundef nonnull align 8 dereferenceable(56)) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef) #6 align 2

declare noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17), double noundef) #4

; Function Attrs: nounwind
declare void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt12__shared_ptrIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

declare void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(17), i32 noundef, i64 noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK9NOMAD_4_312SgtelibModel8getModelEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.72") align 8, ptr noundef nonnull align 8 dereferenceable(552)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) #1 align 2

declare void @_ZNK7SGTELIB9Surrogate11check_readyERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_RKi(ptr noundef nonnull align 8 dereferenceable(985), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) #4

declare void @_ZN7SGTELIB9Surrogate7predictERKNS_6MatrixEPS1_S4_S4_S4_(ptr noundef nonnull align 8 dereferenceable(985), ptr noundef nonnull align 8 dereferenceable(56), ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4

declare void @_ZN7SGTELIB9Surrogate7predictERKNS_6MatrixEPS1_(ptr noundef nonnull align 8 dereferenceable(985), ptr noundef nonnull align 8 dereferenceable(56), ptr noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt12__shared_ptrIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #5

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEm(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i64 noundef) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, double noundef) #5

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN9NOMAD_4_33maxENS_6DoubleES0_(ptr dead_on_unwind noalias writable sret(%"class.NOMAD_4_3::Double") align 8, ptr noundef, ptr noundef) #5

declare void @_ZNK9NOMAD_4_36Double4pow2Ev(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8, ptr noundef nonnull align 8 dereferenceable(17)) #4

declare noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoublepLERKS0_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) #4

declare noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoublemLERKS0_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN9NOMAD_4_3eqERKNS_6DoubleES2_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) #5

declare void @_ZN9NOMAD_4_3dvERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8, ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN9NOMAD_4_3plERKNS_6DoubleES2_(ptr dead_on_unwind noalias writable sret(%"class.NOMAD_4_3::Double") align 8, ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) #5

declare noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind noalias writable sret(%"class.NOMAD_4_3::Double") align 8, ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind noalias writable sret(%"class.NOMAD_4_3::Double") align 8, ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) #5

; Function Attrs: nounwind
declare void @_ZN9NOMAD_4_313ArrayOfStringD1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind noalias writable sret(%"class.NOMAD_4_3::Double") align 8, ptr noundef nonnull align 8 dereferenceable(17)) #5

declare void @_ZNK7SGTELIB9Surrogate26get_exclusion_area_penaltyERKNS_6MatrixEd(ptr dead_on_unwind writable sret(%"class.SGTELIB::Matrix") align 8, ptr noundef nonnull align 8 dereferenceable(985), ptr noundef nonnull align 8 dereferenceable(56), double noundef) #4

declare void @_ZNK9NOMAD_4_313ArrayOfDouble7displayERKS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK7SGTELIB11TrainingSet9get_f_minEv(ptr noundef nonnull align 8 dereferenceable(504)) #2 align 2

declare void @_ZNK9NOMAD_4_39EvalPoint6getBBOB5cxx11ENS_8EvalTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(160), i32 noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9NOMAD_4_36Double9isDefinedEv(ptr noundef nonnull align 8 dereferenceable(17)) #1 align 2

declare void @_ZN9NOMAD_4_39EvalPoint13setEvalStatusENS_14EvalStatusTypeENS_8EvalTypeE(ptr noundef nonnull align 8 dereferenceable(160), i32 noundef, i32 noundef) #4

declare void @_ZNK9NOMAD_4_39EvalPoint27makeFullSpacePointFromFixedERKNS_5PointE(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::EvalPoint") align 8, ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(24)) #4

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

!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 = !{!"_ZTSN9NOMAD_4_311OutputLevelE", !7, i64 0}
!11 = !{!12, !10, i64 200}
!12 = !{!"_ZTSN9NOMAD_4_321SgtelibModelEvaluatorE", !13, i64 0, !6, i64 120, !23, i64 128, !27, i64 160, !30, i64 184, !28, i64 192, !10, i64 200, !31, i64 208}
!13 = !{!"_ZTSN9NOMAD_4_39EvaluatorE", !14, i64 8, !17, i64 24, !18, i64 32, !22, i64 56, !23, i64 64, !26, i64 96}
!14 = !{!"_ZTSSt10shared_ptrIN9NOMAD_4_314EvalParametersEE", !15, i64 0}
!15 = !{!"_ZTSSt12__shared_ptrIN9NOMAD_4_314EvalParametersELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !16, i64 8}
!16 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!17 = !{!"_ZTSN9NOMAD_4_38EvalTypeE", !7, i64 0}
!18 = !{!"_ZTSSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseIN9NOMAD_4_312BBOutputTypeESaIS1_EE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIN9NOMAD_4_312BBOutputTypeESaIS1_EE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIN9NOMAD_4_312BBOutputTypeESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!22 = !{!"_ZTSN9NOMAD_4_312EvalXDefinedE", !7, i64 0}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !25, i64 8, !7, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!25 = !{!"long", !7, i64 0}
!26 = !{!"_ZTSN9NOMAD_4_313ArrayOfDoubleE", !25, i64 8, !6, i64 16}
!27 = !{!"_ZTSN9NOMAD_4_36DoubleE", !28, i64 8, !29, i64 16}
!28 = !{!"double", !7, i64 0}
!29 = !{!"bool", !7, i64 0}
!30 = !{!"_ZTSN9NOMAD_4_327SgtelibModelFeasibilityTypeE", !7, i64 0}
!31 = !{!"_ZTSN9NOMAD_4_35PointE", !26, i64 0}
!32 = !{!25, !25, i64 0}
!33 = !{!12, !30, i64 184}
!34 = !{!28, !28, i64 0}
!35 = !{!29, !29, i64 0}
!36 = !{!12, !6, i64 120}
!37 = !{!38, !38, i64 0}
!38 = !{!"_ZTSN9NOMAD_4_327SgtelibModelFormulationTypeE", !7, i64 0}
!39 = distinct !{!39, !40}
!40 = !{!"llvm.loop.mustprogress"}
!41 = !{!13, !17, i64 24}
!42 = !{i8 0, i8 2}
!43 = !{}
!44 = !{!45, !45, i64 0}
!45 = !{!"int", !7, i64 0}
!46 = distinct !{!46, !40}
!47 = distinct !{!47, !40}
!48 = distinct !{!48, !40}
!49 = !{!50, !50, i64 0}
!50 = !{!"_ZTSN9NOMAD_4_312BBOutputTypeE", !7, i64 0}
!51 = distinct !{!51, !40}
!52 = distinct !{!52, !40}
!53 = distinct !{!53, !40}
!54 = !{!12, !28, i64 192}
!55 = distinct !{!55, !40}


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

%"class.NOMAD_4_3::EvalPoint" = type { %"class.NOMAD_4_3::Point", [3 x %"class.std::unique_ptr"], i32, i32, i16, %"class.std::shared_ptr.8", %"class.std::vector.11", %"class.std::shared_ptr.16", %"class.NOMAD_4_3::Double", %"class.std::shared_ptr.19" }
%"class.NOMAD_4_3::Point" = type { %"class.NOMAD_4_3::ArrayOfDouble" }
%"class.NOMAD_4_3::ArrayOfDouble" = type { ptr, i64, ptr }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.7" }
%"struct.std::_Head_base.7" = type { ptr }
%"class.std::shared_ptr.8" = type { %"class.std::__shared_ptr.9" }
%"class.std::__shared_ptr.9" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<NOMAD_4_3::StepType, std::allocator<NOMAD_4_3::StepType>>::_Vector_impl" }
%"struct.std::_Vector_base<NOMAD_4_3::StepType, std::allocator<NOMAD_4_3::StepType>>::_Vector_impl" = type { %"struct.std::_Vector_base<NOMAD_4_3::StepType, std::allocator<NOMAD_4_3::StepType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<NOMAD_4_3::StepType, std::allocator<NOMAD_4_3::StepType>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::shared_ptr.16" = type { %"class.std::__shared_ptr.17" }
%"class.std::__shared_ptr.17" = type { ptr, %"class.std::__shared_count" }
%"class.NOMAD_4_3::Double" = type <{ ptr, double, i8, [7 x i8] }>
%"class.std::shared_ptr.19" = type { %"class.std::__shared_ptr.20" }
%"class.std::__shared_ptr.20" = type { ptr, %"class.std::__shared_count" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.SGTELIB::Matrix" = type { ptr, %"class.std::__cxx11::basic_string", i32, i32, ptr }
%"class.std::allocator" = type { i8 }
%"class.NOMAD_4_3::ArrayOfString" = type { ptr, %"class.std::vector.75" }
%"class.std::vector.75" = type { %"struct.std::_Vector_base.76" }
%"struct.std::_Vector_base.76" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::shared_ptr.69" = type { %"class.std::__shared_ptr.70" }
%"class.std::__shared_ptr.70" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.72" = type { %"class.std::__shared_ptr.73" }
%"class.std::__shared_ptr.73" = type { ptr, %"class.std::__shared_count" }

@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE = external hidden constant i32, align 4
@.str.11 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [21 x i8], align 1
@_ZTIN7SGTELIB9ExceptionE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.19 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [12 x i8], align 1
@__FUNCTION__._ZNK9NOMAD_4_321SgtelibModelEvaluator6eval_xERNS_9EvalPointERKNS_6DoubleERb = external hidden unnamed_addr constant [7 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [55 x i8], align 1

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

; Function Attrs: nounwind
declare void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #3

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZNK9NOMAD_4_321SgtelibModelEvaluator6eval_xERNS_9EvalPointERKNS_6DoubleERb(ptr noundef nonnull align 8 dereferenceable(232) %0, ptr noundef nonnull align 8 dereferenceable(160) %1, ptr nocapture noundef nonnull readnone align 8 dereferenceable(17) %2, ptr nocapture noundef nonnull writeonly align 1 dereferenceable(1) %3) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.NOMAD_4_3::EvalPoint", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %11 = alloca %"class.NOMAD_4_3::Double", align 8
  %12 = alloca %"class.SGTELIB::Matrix", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.SGTELIB::Matrix", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.SGTELIB::Matrix", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca %"class.SGTELIB::Matrix", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.NOMAD_4_3::Double", align 8
  %25 = alloca double, align 8
  %26 = alloca %"class.NOMAD_4_3::Double", align 8
  %27 = alloca double, align 8
  %28 = alloca %"class.NOMAD_4_3::Double", align 8
  %29 = alloca double, align 8
  %30 = alloca %"class.NOMAD_4_3::Double", align 8
  %31 = alloca double, align 8
  %32 = alloca %"class.NOMAD_4_3::Double", align 8
  %33 = alloca double, align 8
  %34 = alloca %"class.NOMAD_4_3::Double", align 8
  %35 = alloca double, align 8
  %36 = alloca %"class.NOMAD_4_3::Double", align 8
  %37 = alloca double, align 8
  %38 = alloca %"class.NOMAD_4_3::Double", align 8
  %39 = alloca double, align 8
  %40 = alloca %"class.NOMAD_4_3::Double", align 8
  %41 = alloca double, align 8
  %42 = alloca %"class.NOMAD_4_3::Double", align 8
  %43 = alloca double, align 8
  %44 = alloca %"class.NOMAD_4_3::Double", align 8
  %45 = alloca double, align 8
  %46 = alloca %"class.SGTELIB::Matrix", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca i32, align 4
  %50 = alloca %"class.NOMAD_4_3::ArrayOfString", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.NOMAD_4_3::Double", align 8
  %55 = alloca double, align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::allocator", align 1
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca i32, align 4
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca i32, align 4
  %68 = alloca %"class.SGTELIB::Matrix", align 8
  %69 = alloca %"class.std::shared_ptr.69", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::allocator", align 1
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::allocator", align 1
  %76 = alloca i32, align 4
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::allocator", align 1
  %79 = alloca %"class.std::shared_ptr.72", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::allocator", align 1
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::allocator", align 1
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::allocator", align 1
  %88 = alloca i32, align 4
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca i32, align 4
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca i32, align 4
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::__cxx11::basic_string", align 8
  %121 = alloca %"class.std::__cxx11::basic_string", align 8
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::__cxx11::basic_string", align 8
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::__cxx11::basic_string", align 8
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.NOMAD_4_3::Double", align 8
  %130 = alloca %"class.NOMAD_4_3::Double", align 8
  %131 = alloca double, align 8
  %132 = alloca %"class.NOMAD_4_3::Double", align 8
  %133 = alloca %"class.NOMAD_4_3::Double", align 8
  %134 = alloca %"class.NOMAD_4_3::Double", align 8
  %135 = alloca double, align 8
  %136 = alloca %"class.NOMAD_4_3::Double", align 8
  %137 = alloca double, align 8
  %138 = alloca %"class.NOMAD_4_3::Double", align 8
  %139 = alloca double, align 8
  %140 = alloca %"class.NOMAD_4_3::Double", align 8
  %141 = alloca %"class.NOMAD_4_3::Double", align 8
  %142 = alloca double, align 8
  %143 = alloca %"class.NOMAD_4_3::Double", align 8
  %144 = alloca %"class.NOMAD_4_3::Double", align 8
  %145 = alloca double, align 8
  %146 = alloca i32, align 4
  %147 = alloca %"class.std::__cxx11::basic_string", align 8
  %148 = alloca %"class.std::__cxx11::basic_string", align 8
  %149 = alloca %"class.std::__cxx11::basic_string", align 8
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"class.NOMAD_4_3::Double", align 8
  %153 = alloca %"class.NOMAD_4_3::Double", align 8
  %154 = alloca %"class.NOMAD_4_3::Double", align 8
  %155 = alloca %"class.NOMAD_4_3::Double", align 8
  %156 = alloca %"class.NOMAD_4_3::Double", align 8
  %157 = alloca double, align 8
  %158 = alloca %"class.NOMAD_4_3::Double", align 8
  %159 = alloca %"class.NOMAD_4_3::Double", align 8
  %160 = alloca double, align 8
  %161 = alloca %"class.NOMAD_4_3::Double", align 8
  %162 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %163 = alloca %"class.NOMAD_4_3::Double", align 8
  %164 = alloca double, align 8
  %165 = alloca %"class.NOMAD_4_3::Double", align 8
  %166 = alloca %"class.NOMAD_4_3::Double", align 8
  %167 = alloca %"class.NOMAD_4_3::Double", align 8
  %168 = alloca %"class.NOMAD_4_3::Double", align 8
  %169 = alloca double, align 8
  %170 = alloca %"class.NOMAD_4_3::Double", align 8
  %171 = alloca %"class.NOMAD_4_3::Double", align 8
  %172 = alloca double, align 8
  %173 = alloca %"class.NOMAD_4_3::Double", align 8
  %174 = alloca %"class.NOMAD_4_3::Double", align 8
  %175 = alloca %"class.NOMAD_4_3::Double", align 8
  %176 = alloca %"class.NOMAD_4_3::Double", align 8
  %177 = alloca double, align 8
  %178 = alloca %"class.NOMAD_4_3::Double", align 8
  %179 = alloca %"class.NOMAD_4_3::Double", align 8
  %180 = alloca %"class.NOMAD_4_3::Double", align 8
  %181 = alloca %"class.NOMAD_4_3::Double", align 8
  %182 = alloca %"class.NOMAD_4_3::Double", align 8
  %183 = alloca double, align 8
  %184 = alloca %"class.NOMAD_4_3::Double", align 8
  %185 = alloca %"class.NOMAD_4_3::Double", align 8
  %186 = alloca double, align 8
  %187 = alloca %"class.NOMAD_4_3::Double", align 8
  %188 = alloca %"class.NOMAD_4_3::Double", align 8
  %189 = alloca %"class.NOMAD_4_3::Double", align 8
  %190 = alloca %"class.NOMAD_4_3::Double", align 8
  %191 = alloca %"class.NOMAD_4_3::Double", align 8
  %192 = alloca %"class.NOMAD_4_3::Double", align 8
  %193 = alloca %"class.NOMAD_4_3::Double", align 8
  %194 = alloca %"class.NOMAD_4_3::Double", align 8
  %195 = alloca %"class.NOMAD_4_3::Double", align 8
  %196 = alloca %"class.NOMAD_4_3::Double", align 8
  %197 = alloca %"class.NOMAD_4_3::Double", align 8
  %198 = alloca %"class.NOMAD_4_3::Double", align 8
  %199 = alloca %"class.NOMAD_4_3::Double", align 8
  %200 = alloca %"class.NOMAD_4_3::Double", align 8
  %201 = alloca %"class.NOMAD_4_3::Double", align 8
  %202 = alloca %"class.NOMAD_4_3::Double", align 8
  %203 = alloca i32, align 4
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.std::__cxx11::basic_string", align 8
  %206 = alloca i32, align 4
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca %"class.std::__cxx11::basic_string", align 8
  %209 = alloca %"class.SGTELIB::Matrix", align 8
  %210 = alloca %"class.std::shared_ptr.72", align 8
  %211 = alloca %"class.std::__cxx11::basic_string", align 8
  %212 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %213 = alloca %"class.NOMAD_4_3::Double", align 8
  %214 = alloca %"class.std::__cxx11::basic_string", align 8
  %215 = alloca i32, align 4
  %216 = alloca %"class.std::__cxx11::basic_string", align 8
  %217 = alloca %"class.std::__cxx11::basic_string", align 8
  %218 = alloca %"class.std::shared_ptr.69", align 8
  %219 = alloca %"class.std::__cxx11::basic_string", align 8
  %220 = alloca %"class.std::__cxx11::basic_string", align 8
  %221 = alloca %"class.std::__cxx11::basic_string", align 8
  %222 = alloca %"class.std::__cxx11::basic_string", align 8
  %223 = alloca %"class.std::__cxx11::basic_string", align 8
  %224 = alloca %"class.std::__cxx11::basic_string", align 8
  %225 = alloca %"class.std::__cxx11::basic_string", align 8
  %226 = alloca %"class.std::__cxx11::basic_string", align 8
  %227 = alloca %"class.std::__cxx11::basic_string", align 8
  %228 = alloca %"class.std::__cxx11::basic_string", align 8
  %229 = alloca %"class.std::__cxx11::basic_string", align 8
  %230 = alloca %"class.std::__cxx11::basic_string", align 8
  %231 = alloca %"class.std::__cxx11::basic_string", align 8
  %232 = alloca %"class.std::__cxx11::basic_string", align 8
  %233 = alloca %"class.std::__cxx11::basic_string", align 8
  %234 = alloca %"class.std::__cxx11::basic_string", align 8
  %235 = alloca %"class.std::__cxx11::basic_string", align 8
  %236 = alloca %"class.std::__cxx11::basic_string", align 8
  %237 = alloca %"class.std::allocator", align 1
  %238 = alloca %"class.std::__cxx11::basic_string", align 8
  %239 = alloca %"class.std::allocator", align 1
  %240 = alloca %"class.NOMAD_4_3::EvalPoint", align 8
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %5) #7
  %241 = getelementptr inbounds i8, ptr %0, i64 208
  call void @_ZNK9NOMAD_4_39EvalPoint26makeSubSpacePointFromFixedERKNS_5PointE(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::EvalPoint") align 8 %5, ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(24) %241)
  %242 = invoke noundef nonnull align 8 dereferenceable(160) ptr @_ZN9NOMAD_4_39EvalPointaSERKS0_(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(160) %5)
          to label %243 unwind label %254

243:                                              ; preds = %4
  call void @_ZN9NOMAD_4_39EvalPointD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %5) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %5) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #7
  store i32 7, ptr %7, align 4, !tbaa !5
  %244 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %245 unwind label %256

245:                                              ; preds = %243
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  br i1 %244, label %246, label %271

246:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %11)
          to label %247 unwind label %258

247:                                              ; preds = %246
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %11)
          to label %248 unwind label %260

248:                                              ; preds = %247
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %249 unwind label %262

249:                                              ; preds = %248
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull @.str.10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %250 unwind label %264

250:                                              ; preds = %249
  %251 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %11) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  %252 = getelementptr inbounds i8, ptr %0, i64 200
  %253 = load i32, ptr %252, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %253)
          to label %271 unwind label %269

254:                                              ; preds = %4
  %255 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_39EvalPointD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %5) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %5) #7
  br label %1450

256:                                              ; preds = %243
  %257 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  br label %1449

258:                                              ; preds = %246
  %259 = landingpad { ptr, i32 }
          cleanup
  br label %268

260:                                              ; preds = %247
  %261 = landingpad { ptr, i32 }
          cleanup
  br label %267

262:                                              ; preds = %248
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %266

264:                                              ; preds = %249
  %265 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %266

266:                                              ; preds = %264, %262
  %.pn = phi { ptr, i32 } [ %265, %264 ], [ %263, %262 ]
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  br label %267

267:                                              ; preds = %266, %260
  %.pn.pn = phi { ptr, i32 } [ %.pn, %266 ], [ %261, %260 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %11) #7
  br label %268

268:                                              ; preds = %267, %258
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %267 ], [ %259, %258 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  br label %1449

269:                                              ; preds = %250
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %1449

271:                                              ; preds = %250, %245
  %272 = call noundef i64 @_ZNK9NOMAD_4_313ArrayOfDouble4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1)
  %273 = getelementptr inbounds i8, ptr %0, i64 32
  %274 = invoke noundef i64 @_ZN9NOMAD_4_316getNbConstraintsERKSt6vectorINS_12BBOutputTypeESaIS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %273)
          to label %275 unwind label %308

275:                                              ; preds = %271
  %276 = getelementptr inbounds i8, ptr %0, i64 184
  %277 = load i32, ptr %276, align 8, !tbaa !31
  %278 = invoke noundef i64 @_ZN9NOMAD_4_312SgtelibModel11getNbModelsENS_27SgtelibModelFeasibilityTypeEm(i32 noundef %277, i64 noundef %274)
          to label %279 unwind label %310

279:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %280 unwind label %312

280:                                              ; preds = %279
  %281 = trunc i64 %278 to i32
  invoke void @_ZN7SGTELIB6MatrixC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(56) %12, ptr noundef nonnull align 8 dereferenceable(32) %13, i32 noundef 1, i32 noundef %281)
          to label %282 unwind label %314

282:                                              ; preds = %280
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %283 unwind label %317

283:                                              ; preds = %282
  invoke void @_ZN7SGTELIB6MatrixC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(56) %15, ptr noundef nonnull align 8 dereferenceable(32) %16, i32 noundef 1, i32 noundef %281)
          to label %284 unwind label %319

284:                                              ; preds = %283
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %285 unwind label %322

285:                                              ; preds = %284
  invoke void @_ZN7SGTELIB6MatrixC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(56) %18, ptr noundef nonnull align 8 dereferenceable(32) %19, i32 noundef 1, i32 noundef %281)
          to label %286 unwind label %324

286:                                              ; preds = %285
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %287 unwind label %327

287:                                              ; preds = %286
  invoke void @_ZN7SGTELIB6MatrixC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(56) %21, ptr noundef nonnull align 8 dereferenceable(32) %22, i32 noundef 1, i32 noundef %281)
          to label %288 unwind label %329

288:                                              ; preds = %287
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #7
  store double 1.000000e+00, ptr %25, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %24, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %289 unwind label %332

289:                                              ; preds = %288
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #7
  store double 0.000000e+00, ptr %27, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %26, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %290 unwind label %334

290:                                              ; preds = %289
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #7
  store double 0.000000e+00, ptr %29, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %28, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %291 unwind label %336

291:                                              ; preds = %290
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #7
  store double 0.000000e+00, ptr %31, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %30, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %292 unwind label %338

292:                                              ; preds = %291
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #7
  store double 0.000000e+00, ptr %33, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %32, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %293 unwind label %340

293:                                              ; preds = %292
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #7
  store double 0.000000e+00, ptr %35, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %34, ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %294 unwind label %342

294:                                              ; preds = %293
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #7
  store double 0.000000e+00, ptr %37, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %36, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %295 unwind label %344

295:                                              ; preds = %294
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #7
  store double 0.000000e+00, ptr %39, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %38, ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %296 unwind label %346

296:                                              ; preds = %295
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #7
  store double 0.000000e+00, ptr %41, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %40, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %297 unwind label %348

297:                                              ; preds = %296
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %42) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #7
  store double 0.000000e+00, ptr %43, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %42, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %298 unwind label %350

298:                                              ; preds = %297
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %44) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #7
  store double 0.000000e+00, ptr %45, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %44, ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %299 unwind label %352

299:                                              ; preds = %298
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %46) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %300 unwind label %354

300:                                              ; preds = %299
  %301 = trunc i64 %272 to i32
  invoke void @_ZN7SGTELIB6MatrixC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(56) %46, ptr noundef nonnull align 8 dereferenceable(32) %47, i32 noundef 1, i32 noundef %301)
          to label %302 unwind label %356

302:                                              ; preds = %300
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #7
  %303 = getelementptr inbounds i8, ptr %0, i64 120
  %304 = load ptr, ptr %303, align 8, !tbaa !33
  %305 = invoke noundef i32 @_ZNK9NOMAD_4_312SgtelibModel14getFormulationEv(ptr noundef nonnull align 8 dereferenceable(552) %304)
          to label %306 unwind label %359

306:                                              ; preds = %302
  store i32 %305, ptr %49, align 4, !tbaa !34
  %.not554 = icmp eq i64 %272, 0
  br i1 %.not554, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %367, %306
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #7
  %307 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %273) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %371 unwind label %378

308:                                              ; preds = %271
  %309 = landingpad { ptr, i32 }
          cleanup
  br label %1449

310:                                              ; preds = %275
  %311 = landingpad { ptr, i32 }
          cleanup
  br label %1449

312:                                              ; preds = %279
  %313 = landingpad { ptr, i32 }
          cleanup
  br label %316

314:                                              ; preds = %280
  %315 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %316

316:                                              ; preds = %314, %312
  %.pn273 = phi { ptr, i32 } [ %315, %314 ], [ %313, %312 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  br label %1448

317:                                              ; preds = %282
  %318 = landingpad { ptr, i32 }
          cleanup
  br label %321

319:                                              ; preds = %283
  %320 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %321

321:                                              ; preds = %319, %317
  %.pn275 = phi { ptr, i32 } [ %320, %319 ], [ %318, %317 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %1447

322:                                              ; preds = %284
  %323 = landingpad { ptr, i32 }
          cleanup
  br label %326

324:                                              ; preds = %285
  %325 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %326

326:                                              ; preds = %324, %322
  %.pn277 = phi { ptr, i32 } [ %325, %324 ], [ %323, %322 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %1446

327:                                              ; preds = %286
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %331

329:                                              ; preds = %287
  %330 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %331

331:                                              ; preds = %329, %327
  %.pn279 = phi { ptr, i32 } [ %330, %329 ], [ %328, %327 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  br label %1445

332:                                              ; preds = %288
  %333 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  br label %1444

334:                                              ; preds = %289
  %335 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  br label %1443

336:                                              ; preds = %290
  %337 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  br label %1442

338:                                              ; preds = %291
  %339 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  br label %1441

340:                                              ; preds = %292
  %341 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  br label %1440

342:                                              ; preds = %293
  %343 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  br label %1439

344:                                              ; preds = %294
  %345 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  br label %1438

346:                                              ; preds = %295
  %347 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #7
  br label %1437

348:                                              ; preds = %296
  %349 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #7
  br label %1436

350:                                              ; preds = %297
  %351 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #7
  br label %1435

352:                                              ; preds = %298
  %353 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  br label %1434

354:                                              ; preds = %299
  %355 = landingpad { ptr, i32 }
          cleanup
  br label %358

356:                                              ; preds = %300
  %357 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %358

358:                                              ; preds = %356, %354
  %.pn281 = phi { ptr, i32 } [ %357, %356 ], [ %355, %354 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  br label %1433

359:                                              ; preds = %302
  %360 = landingpad { ptr, i32 }
          cleanup
  br label %1432

.lr.ph:                                           ; preds = %306, %367
  %.095532 = phi i64 [ %368, %367 ], [ 0, %306 ]
  %361 = trunc i64 %.095532 to i32
  %362 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9NOMAD_4_313ArrayOfDoubleixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %.095532)
          to label %363 unwind label %369

363:                                              ; preds = %.lr.ph
  %364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9NOMAD_4_36Double8todoubleEv(ptr noundef nonnull align 8 dereferenceable(17) %362)
          to label %365 unwind label %369

365:                                              ; preds = %363
  %366 = load double, ptr %364, align 8, !tbaa !32
  invoke void @_ZN7SGTELIB6Matrix3setEiid(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef 0, i32 noundef %361, double noundef %366)
          to label %367 unwind label %369

367:                                              ; preds = %365
  %368 = add nuw i64 %.095532, 1
  %exitcond.not = icmp eq i64 %368, %272
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !36

369:                                              ; preds = %365, %363, %.lr.ph
  %370 = landingpad { ptr, i32 }
          cleanup
  br label %1432

371:                                              ; preds = %._crit_edge
  invoke void @_ZN9NOMAD_4_313ArrayOfStringC1EmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %50, i64 noundef %307, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %372 unwind label %380

372:                                              ; preds = %371
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #7
  invoke void @_ZNK9NOMAD_4_313ArrayOfString7displayB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %373 unwind label %383

373:                                              ; preds = %372
  %374 = getelementptr inbounds i8, ptr %0, i64 24
  %375 = load i32, ptr %374, align 8, !tbaa !38
  invoke void @_ZN9NOMAD_4_39EvalPoint6setBBOERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorINS_12BBOutputTypeESaISA_EENS_8EvalTypeEb(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(24) %273, i32 noundef %375, i1 noundef zeroext true)
          to label %376 unwind label %385

376:                                              ; preds = %373
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #7
  %377 = load i32, ptr %49, align 4, !tbaa !34
  switch i32 %377, label %399 [
    i32 0, label %388
    i32 1, label %411
    i32 2, label %411
    i32 3, label %411
    i32 4, label %411
    i32 5, label %411
    i32 6, label %411
    i32 7, label %411
    i32 8, label %398
  ]

378:                                              ; preds = %._crit_edge
  %379 = landingpad { ptr, i32 }
          cleanup
  br label %382

380:                                              ; preds = %371
  %381 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  br label %382

382:                                              ; preds = %380, %378
  %.pn283 = phi { ptr, i32 } [ %381, %380 ], [ %379, %378 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  br label %980

383:                                              ; preds = %372
  %384 = landingpad { ptr, i32 }
          cleanup
  br label %387

385:                                              ; preds = %373
  %386 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %387

387:                                              ; preds = %385, %383
  %.pn285 = phi { ptr, i32 } [ %386, %385 ], [ %384, %383 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #7
  br label %979

388:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %54) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #7
  store double 0.000000e+00, ptr %55, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %54, ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %389 unwind label %393

389:                                              ; preds = %388
  %390 = getelementptr inbounds i8, ptr %0, i64 160
  %391 = invoke noundef zeroext i1 @_ZN9NOMAD_4_3neERKNS_6DoubleES2_(ptr noundef nonnull align 8 dereferenceable(17) %390, ptr noundef nonnull align 8 dereferenceable(17) %54)
          to label %392 unwind label %395

392:                                              ; preds = %389
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %54) #7
  br label %411

393:                                              ; preds = %388
  %394 = landingpad { ptr, i32 }
          cleanup
  br label %397

395:                                              ; preds = %389
  %396 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %54) #7
  br label %397

397:                                              ; preds = %395, %393
  %.pn287 = phi { ptr, i32 } [ %396, %395 ], [ %394, %393 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %54) #7
  br label %979

398:                                              ; preds = %376
  br label %411

399:                                              ; preds = %376
  %400 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %57) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %401 unwind label %.thread

401:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %59) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %402 unwind label %405

402:                                              ; preds = %401
  invoke void @_ZN7SGTELIB9ExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiS8_(ptr noundef nonnull align 8 dereferenceable(112) %400, ptr noundef nonnull align 8 dereferenceable(32) %56, i32 noundef 187, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %403 unwind label %407

403:                                              ; preds = %402
  invoke void @__cxa_throw(ptr nonnull %400, ptr nonnull @_ZTIN7SGTELIB9ExceptionE, ptr nonnull @_ZN7SGTELIB9ExceptionD2Ev) #8
          to label %1451 unwind label %407

.thread:                                          ; preds = %399
  %404 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #7
  br label %410

405:                                              ; preds = %401
  %406 = landingpad { ptr, i32 }
          cleanup
  br label %409

407:                                              ; preds = %403, %402
  %.092 = phi i1 [ false, %403 ], [ true, %402 ]
  %408 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  br label %409

409:                                              ; preds = %405, %407
  %.pn485 = phi { ptr, i32 } [ %408, %407 ], [ %406, %405 ]
  %.193 = phi i1 [ %.092, %407 ], [ true, %405 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #7
  br i1 %.193, label %410, label %979

410:                                              ; preds = %.thread, %409
  %.pn485.pn514 = phi { ptr, i32 } [ %404, %.thread ], [ %.pn485, %409 ]
  call void @__cxa_free_exception(ptr %400) #7
  br label %979

411:                                              ; preds = %376, %376, %376, %376, %376, %376, %376, %398, %392
  %.096 = phi i1 [ false, %398 ], [ %391, %392 ], [ true, %376 ], [ true, %376 ], [ true, %376 ], [ true, %376 ], [ true, %376 ], [ true, %376 ], [ true, %376 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %60) #7
  store i32 7, ptr %60, align 4, !tbaa !5
  %412 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %60)
          to label %413 unwind label %430

413:                                              ; preds = %411
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #7
  br i1 %412, label %414, label %455

414:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #7
  invoke void @_ZN9NOMAD_4_335SgtelibModelFormulationTypeToStringB5cxx11ERKNS_27SgtelibModelFormulationTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %415 unwind label %432

415:                                              ; preds = %414
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull @.str.19, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %416 unwind label %434

416:                                              ; preds = %415
  %417 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #7
  invoke void @_ZN9NOMAD_4_312boolToStringB5cxx11Eb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %64, i1 noundef zeroext %.096)
          to label %418 unwind label %437

418:                                              ; preds = %416
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %419 unwind label %439

419:                                              ; preds = %418
  %420 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %421 unwind label %441

421:                                              ; preds = %419
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #7
  %422 = load ptr, ptr %303, align 8, !tbaa !33
  %423 = call noundef zeroext i1 @_ZNK9NOMAD_4_312SgtelibModel16getFoundFeasibleEv(ptr noundef nonnull align 8 dereferenceable(552) %422)
  invoke void @_ZN9NOMAD_4_312boolToStringB5cxx11Eb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %66, i1 noundef zeroext %423)
          to label %424 unwind label %445

424:                                              ; preds = %421
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull @.str.21, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %425 unwind label %447

425:                                              ; preds = %424
  %426 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %427 unwind label %449

427:                                              ; preds = %425
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #7
  %428 = getelementptr inbounds i8, ptr %0, i64 200
  %429 = load i32, ptr %428, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %429)
          to label %455 unwind label %453

430:                                              ; preds = %411
  %431 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #7
  br label %979

432:                                              ; preds = %414
  %433 = landingpad { ptr, i32 }
          cleanup
  br label %436

434:                                              ; preds = %415
  %435 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  br label %436

436:                                              ; preds = %434, %432
  %.pn289 = phi { ptr, i32 } [ %435, %434 ], [ %433, %432 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #7
  br label %979

437:                                              ; preds = %416
  %438 = landingpad { ptr, i32 }
          cleanup
  br label %444

439:                                              ; preds = %418
  %440 = landingpad { ptr, i32 }
          cleanup
  br label %443

441:                                              ; preds = %419
  %442 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  br label %443

443:                                              ; preds = %441, %439
  %.pn291 = phi { ptr, i32 } [ %442, %441 ], [ %440, %439 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  br label %444

444:                                              ; preds = %443, %437
  %.pn291.pn = phi { ptr, i32 } [ %.pn291, %443 ], [ %438, %437 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #7
  br label %979

445:                                              ; preds = %421
  %446 = landingpad { ptr, i32 }
          cleanup
  br label %452

447:                                              ; preds = %424
  %448 = landingpad { ptr, i32 }
          cleanup
  br label %451

449:                                              ; preds = %425
  %450 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %451

451:                                              ; preds = %449, %447
  %.pn294 = phi { ptr, i32 } [ %450, %449 ], [ %448, %447 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  br label %452

452:                                              ; preds = %451, %445
  %.pn294.pn = phi { ptr, i32 } [ %.pn294, %451 ], [ %446, %445 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #7
  br label %979

453:                                              ; preds = %.invoke569, %.invoke, %.loopexit529.thread, %827, %825, %779, %746, %700, %678, %613, %564, %562, %557, %554, %547, %468, %427
  %454 = landingpad { ptr, i32 }
          cleanup
  br label %979

455:                                              ; preds = %427, %413
  %456 = load i32, ptr %49, align 4, !tbaa !34
  switch i32 %456, label %496 [
    i32 8, label %457
    i32 9, label %484
  ]

457:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %67) #7
  store i32 7, ptr %67, align 4, !tbaa !5
  %458 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %67)
          to label %459 unwind label %472

459:                                              ; preds = %457
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #7
  br i1 %458, label %460, label %547

460:                                              ; preds = %459
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %68) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %69) #7
  %461 = load ptr, ptr %303, align 8, !tbaa !33
  call void @_ZNK9NOMAD_4_312SgtelibModel14getTrainingSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.69") align 8 %69, ptr noundef nonnull align 8 dereferenceable(552) %461)
  %462 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %69) #7
  invoke void @_ZNK7SGTELIB11TrainingSet23get_distance_to_closestERKNS_6MatrixE(ptr dead_on_unwind nonnull writable sret(%"class.SGTELIB::Matrix") align 8 %68, ptr noundef nonnull align 8 dereferenceable(504) %462, ptr noundef nonnull align 8 dereferenceable(56) %46)
          to label %463 unwind label %474

463:                                              ; preds = %460
  %464 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %68, i32 noundef 0, i32 noundef 0)
  %465 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %42, double noundef %464)
          to label %466 unwind label %476

466:                                              ; preds = %463
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %68) #7
  call void @_ZNSt12__shared_ptrIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %69) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %68) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(17) %42, i32 noundef 6, i64 noundef 0)
          to label %467 unwind label %479

467:                                              ; preds = %466
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef nonnull @.str.22, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %468 unwind label %481

468:                                              ; preds = %467
  %469 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #7
  %470 = getelementptr inbounds i8, ptr %0, i64 200
  %471 = load i32, ptr %470, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %471)
          to label %547 unwind label %453

472:                                              ; preds = %457
  %473 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #7
  br label %979

474:                                              ; preds = %460
  %475 = landingpad { ptr, i32 }
          cleanup
  br label %478

476:                                              ; preds = %463
  %477 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %68) #7
  br label %478

478:                                              ; preds = %476, %474
  %.pn308 = phi { ptr, i32 } [ %477, %476 ], [ %475, %474 ]
  call void @_ZNSt12__shared_ptrIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %69) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %68) #7
  br label %979

479:                                              ; preds = %466
  %480 = landingpad { ptr, i32 }
          cleanup
  br label %483

481:                                              ; preds = %467
  %482 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  br label %483

483:                                              ; preds = %481, %479
  %.pn310 = phi { ptr, i32 } [ %482, %481 ], [ %480, %479 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #7
  br label %979

484:                                              ; preds = %455
  %485 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %72) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %73) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %73)
          to label %486 unwind label %.thread515

486:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %75) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %487 unwind label %490

487:                                              ; preds = %486
  invoke void @_ZN7SGTELIB9ExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiS8_(ptr noundef nonnull align 8 dereferenceable(112) %485, ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef 209, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %488 unwind label %492

488:                                              ; preds = %487
  invoke void @__cxa_throw(ptr nonnull %485, ptr nonnull @_ZTIN7SGTELIB9ExceptionE, ptr nonnull @_ZN7SGTELIB9ExceptionD2Ev) #8
          to label %1451 unwind label %492

.thread515:                                       ; preds = %484
  %489 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #7
  br label %495

490:                                              ; preds = %486
  %491 = landingpad { ptr, i32 }
          cleanup
  br label %494

492:                                              ; preds = %488, %487
  %.089 = phi i1 [ false, %488 ], [ true, %487 ]
  %493 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  br label %494

494:                                              ; preds = %490, %492
  %.pn305 = phi { ptr, i32 } [ %493, %492 ], [ %491, %490 ]
  %.190 = phi i1 [ %.089, %492 ], [ true, %490 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #7
  br i1 %.190, label %495, label %979

495:                                              ; preds = %.thread515, %494
  %.pn305.pn518 = phi { ptr, i32 } [ %489, %.thread515 ], [ %.pn305, %494 ]
  call void @__cxa_free_exception(ptr %485) #7
  br label %979

496:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %76) #7
  store i32 7, ptr %76, align 4, !tbaa !5
  %497 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %76)
          to label %498 unwind label %504

498:                                              ; preds = %496
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %76) #7
  br i1 %497, label %499, label %511

499:                                              ; preds = %498
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %78) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %500 unwind label %506

500:                                              ; preds = %499
  %501 = getelementptr inbounds i8, ptr %0, i64 200
  %502 = load i32, ptr %501, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %77, i32 noundef %502)
          to label %503 unwind label %508

503:                                              ; preds = %500
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #7
  br label %511

504:                                              ; preds = %496
  %505 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %76) #7
  br label %979

506:                                              ; preds = %499
  %507 = landingpad { ptr, i32 }
          cleanup
  br label %510

508:                                              ; preds = %500
  %509 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %510

510:                                              ; preds = %508, %506
  %.pn297 = phi { ptr, i32 } [ %509, %508 ], [ %507, %506 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #7
  br label %979

511:                                              ; preds = %503, %498
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %79) #7
  %512 = load ptr, ptr %303, align 8, !tbaa !33
  call void @_ZNK9NOMAD_4_312SgtelibModel8getModelEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.72") align 8 %79, ptr noundef nonnull align 8 dereferenceable(552) %512)
  %513 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %79) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %80) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %81) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %514 unwind label %519

514:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %83) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull @__FUNCTION__._ZNK9NOMAD_4_321SgtelibModelEvaluator6eval_xERNS_9EvalPointERKNS_6DoubleERb, ptr noundef nonnull align 1 dereferenceable(1) %83)
          to label %515 unwind label %521

515:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %84) #7
  store i32 219, ptr %84, align 4, !tbaa !39
  invoke void @_ZNK7SGTELIB9Surrogate11check_readyERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_RKi(ptr noundef nonnull align 8 dereferenceable(985) %513, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 4 dereferenceable(4) %84)
          to label %516 unwind label %523

516:                                              ; preds = %515
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %84) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #7
  %517 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %79) #7
  br i1 %.096, label %518, label %529

518:                                              ; preds = %516
  invoke void @_ZN7SGTELIB9Surrogate7predictERKNS_6MatrixEPS1_S4_S4_S4_(ptr noundef nonnull align 8 dereferenceable(985) %517, ptr noundef nonnull align 8 dereferenceable(56) %46, ptr noundef nonnull %12, ptr noundef nonnull %15, ptr noundef nonnull %21, ptr noundef nonnull %18)
          to label %530 unwind label %527

519:                                              ; preds = %511
  %520 = landingpad { ptr, i32 }
          cleanup
  br label %526

521:                                              ; preds = %514
  %522 = landingpad { ptr, i32 }
          cleanup
  br label %525

523:                                              ; preds = %515
  %524 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %84) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  br label %525

525:                                              ; preds = %523, %521
  %.pn299 = phi { ptr, i32 } [ %524, %523 ], [ %522, %521 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #7
  br label %526

526:                                              ; preds = %525, %519
  %.pn299.pn = phi { ptr, i32 } [ %.pn299, %525 ], [ %520, %519 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #7
  br label %546

527:                                              ; preds = %529, %518
  %528 = landingpad { ptr, i32 }
          cleanup
  br label %546

529:                                              ; preds = %516
  invoke void @_ZN7SGTELIB9Surrogate7predictERKNS_6MatrixEPS1_(ptr noundef nonnull align 8 dereferenceable(985) %517, ptr noundef nonnull align 8 dereferenceable(56) %46, ptr noundef nonnull %12)
          to label %530 unwind label %527

530:                                              ; preds = %529, %518
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %85) #7
  store i32 7, ptr %85, align 4, !tbaa !5
  %531 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %85)
          to label %532 unwind label %538

532:                                              ; preds = %530
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %85) #7
  br i1 %531, label %533, label %545

533:                                              ; preds = %532
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %86) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %87) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %534 unwind label %540

534:                                              ; preds = %533
  %535 = getelementptr inbounds i8, ptr %0, i64 200
  %536 = load i32, ptr %535, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %86, i32 noundef %536)
          to label %537 unwind label %542

537:                                              ; preds = %534
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %87) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #7
  br label %545

538:                                              ; preds = %530
  %539 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %85) #7
  br label %546

540:                                              ; preds = %533
  %541 = landingpad { ptr, i32 }
          cleanup
  br label %544

542:                                              ; preds = %534
  %543 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  br label %544

544:                                              ; preds = %542, %540
  %.pn302 = phi { ptr, i32 } [ %543, %542 ], [ %541, %540 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %87) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #7
  br label %546

545:                                              ; preds = %537, %532
  call void @_ZNSt12__shared_ptrIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %79) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %79) #7
  br label %547

546:                                              ; preds = %544, %538, %527, %526
  %.pn302.pn = phi { ptr, i32 } [ %.pn302, %544 ], [ %539, %538 ], [ %528, %527 ], [ %.pn299.pn, %526 ]
  call void @_ZNSt12__shared_ptrIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %79) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %79) #7
  br label %979

547:                                              ; preds = %459, %468, %545
  %548 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %12, i32 noundef 0, i32 noundef 0)
  %549 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %26, double noundef %548)
          to label %550 unwind label %453

550:                                              ; preds = %547
  br i1 %.096, label %551, label %594

551:                                              ; preds = %550
  %552 = load ptr, ptr %303, align 8, !tbaa !33
  %553 = call noundef zeroext i1 @_ZNK9NOMAD_4_312SgtelibModel16getFoundFeasibleEv(ptr noundef nonnull align 8 dereferenceable(552) %552)
  br i1 %553, label %554, label %562

554:                                              ; preds = %551
  %555 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %15, i32 noundef 0, i32 noundef 0)
  %556 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %28, double noundef %555)
          to label %557 unwind label %453

557:                                              ; preds = %554
  %558 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %18, i32 noundef 0, i32 noundef 0)
  %559 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %30, double noundef %558)
          to label %560 unwind label %453

560:                                              ; preds = %557
  %561 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %21, i32 noundef 0, i32 noundef 0)
  br label %.invoke569

562:                                              ; preds = %551
  %563 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %28, double noundef 1.000000e+00)
          to label %564 unwind label %453

564:                                              ; preds = %562
  %565 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %30, double noundef 1.000000e+00)
          to label %.invoke569 unwind label %453

.invoke569:                                       ; preds = %564, %560
  %566 = phi double [ %561, %560 ], [ 1.000000e+00, %564 ]
  %567 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %32, double noundef %566)
          to label %568 unwind label %453

568:                                              ; preds = %.invoke569
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %88) #7
  store i32 7, ptr %88, align 4, !tbaa !5
  %569 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %88)
          to label %570 unwind label %578

570:                                              ; preds = %568
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %88) #7
  br i1 %569, label %571, label %610

571:                                              ; preds = %570
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %90) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull align 8 dereferenceable(17) %26, i32 noundef 6, i64 noundef 0)
          to label %572 unwind label %580

572:                                              ; preds = %571
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %91, ptr noundef nonnull @.str.26, ptr noundef nonnull align 8 dereferenceable(32) %92)
          to label %573 unwind label %582

573:                                              ; preds = %572
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull @.str.27)
          to label %574 unwind label %584

574:                                              ; preds = %573
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 8 dereferenceable(17) %28, i32 noundef 6, i64 noundef 0)
          to label %575 unwind label %586

575:                                              ; preds = %574
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull align 8 dereferenceable(32) %93)
          to label %576 unwind label %588

576:                                              ; preds = %575
  %577 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %89) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #7
  br label %.invoke

578:                                              ; preds = %568
  %579 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %88) #7
  br label %979

580:                                              ; preds = %571
  %581 = landingpad { ptr, i32 }
          cleanup
  br label %593

582:                                              ; preds = %572
  %583 = landingpad { ptr, i32 }
          cleanup
  br label %592

584:                                              ; preds = %573
  %585 = landingpad { ptr, i32 }
          cleanup
  br label %591

586:                                              ; preds = %574
  %587 = landingpad { ptr, i32 }
          cleanup
  br label %590

588:                                              ; preds = %575
  %589 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %590

590:                                              ; preds = %588, %586
  %.pn314 = phi { ptr, i32 } [ %589, %588 ], [ %587, %586 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #7
  br label %591

591:                                              ; preds = %590, %584
  %.pn314.pn = phi { ptr, i32 } [ %.pn314, %590 ], [ %585, %584 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  br label %592

592:                                              ; preds = %591, %582
  %.pn314.pn.pn = phi { ptr, i32 } [ %.pn314.pn, %591 ], [ %583, %582 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  br label %593

593:                                              ; preds = %592, %580
  %.pn314.pn.pn.pn = phi { ptr, i32 } [ %.pn314.pn.pn, %592 ], [ %581, %580 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #7
  br label %979

594:                                              ; preds = %550
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %94) #7
  store i32 7, ptr %94, align 4, !tbaa !5
  %595 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %94)
          to label %596 unwind label %603

596:                                              ; preds = %594
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %94) #7
  br i1 %595, label %597, label %610

597:                                              ; preds = %596
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %96) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef nonnull align 8 dereferenceable(17) %26, i32 noundef 6, i64 noundef 0)
          to label %598 unwind label %605

598:                                              ; preds = %597
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr noundef nonnull @.str.26, ptr noundef nonnull align 8 dereferenceable(32) %96)
          to label %599 unwind label %607

599:                                              ; preds = %598
  %600 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #7
  br label %.invoke

.invoke:                                          ; preds = %576, %599
  %601 = getelementptr inbounds i8, ptr %0, i64 200
  %602 = load i32, ptr %601, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %602)
          to label %610 unwind label %453

603:                                              ; preds = %594
  %604 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %94) #7
  br label %979

605:                                              ; preds = %597
  %606 = landingpad { ptr, i32 }
          cleanup
  br label %609

607:                                              ; preds = %598
  %608 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  br label %609

609:                                              ; preds = %607, %605
  %.pn312 = phi { ptr, i32 } [ %608, %607 ], [ %606, %605 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #7
  br label %979

610:                                              ; preds = %.invoke, %596, %570
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %97) #7
  store i32 7, ptr %97, align 4, !tbaa !5
  %611 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %97)
          to label %612 unwind label %617

612:                                              ; preds = %610
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %97) #7
  br i1 %611, label %613, label %.loopexit529

613:                                              ; preds = %612
  %614 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.28)
          to label %615 unwind label %453

615:                                              ; preds = %613
  %616 = load i32, ptr %276, align 8, !tbaa !31
  switch i32 %616, label %825 [
    i32 0, label %619
    i32 1, label %700
    i32 2, label %746
    i32 3, label %779
  ]

617:                                              ; preds = %610
  %618 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %97) #7
  br label %979

619:                                              ; preds = %615
  br i1 %.096, label %.preheader528, label %678

.preheader528:                                    ; preds = %619
  %620 = icmp ugt i64 %278, 1
  br i1 %620, label %.lr.ph536, label %.loopexit529.thread

.lr.ph536:                                        ; preds = %.preheader528, %640
  %.088535 = phi i64 [ %641, %640 ], [ 1, %.preheader528 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %98) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %99) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %100) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %101) #7
  invoke void @_ZNSt7__cxx119to_stringEm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %101, i64 noundef %.088535)
          to label %621 unwind label %642

621:                                              ; preds = %.lr.ph536
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %100, ptr noundef nonnull @.str.29, ptr noundef nonnull align 8 dereferenceable(32) %101)
          to label %622 unwind label %644

622:                                              ; preds = %621
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %99, ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull @.str.30)
          to label %623 unwind label %646

623:                                              ; preds = %622
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %102) #7
  %624 = trunc i64 %.088535 to i32
  %625 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %12, i32 noundef 0, i32 noundef %624)
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %102, double noundef %625)
          to label %626 unwind label %648

626:                                              ; preds = %623
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %98, ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %627 unwind label %650

627:                                              ; preds = %626
  %628 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %98)
          to label %629 unwind label %652

629:                                              ; preds = %627
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %103) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %104) #7
  %630 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %15, i32 noundef 0, i32 noundef %624)
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %104, double noundef %630)
          to label %631 unwind label %659

631:                                              ; preds = %629
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %103, ptr noundef nonnull @.str.27, ptr noundef nonnull align 8 dereferenceable(32) %104)
          to label %632 unwind label %661

632:                                              ; preds = %631
  %633 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %634 unwind label %663

634:                                              ; preds = %632
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %106) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #7
  %635 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %18, i32 noundef 0, i32 noundef %624)
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %107, double noundef %635)
          to label %636 unwind label %667

636:                                              ; preds = %634
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %637 unwind label %669

637:                                              ; preds = %636
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %105, ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull @.str.32)
          to label %638 unwind label %671

638:                                              ; preds = %637
  %639 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %640 unwind label %673

640:                                              ; preds = %638
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #7
  %641 = add nuw i64 %.088535, 1
  %exitcond563.not = icmp eq i64 %641, %278
  br i1 %exitcond563.not, label %.loopexit529, label %.lr.ph536, !llvm.loop !41

642:                                              ; preds = %.lr.ph536
  %643 = landingpad { ptr, i32 }
          cleanup
  br label %658

644:                                              ; preds = %621
  %645 = landingpad { ptr, i32 }
          cleanup
  br label %657

646:                                              ; preds = %622
  %647 = landingpad { ptr, i32 }
          cleanup
  br label %656

648:                                              ; preds = %623
  %649 = landingpad { ptr, i32 }
          cleanup
  br label %655

650:                                              ; preds = %626
  %651 = landingpad { ptr, i32 }
          cleanup
  br label %654

652:                                              ; preds = %627
  %653 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #7
  br label %654

654:                                              ; preds = %652, %650
  %.pn351 = phi { ptr, i32 } [ %653, %652 ], [ %651, %650 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  br label %655

655:                                              ; preds = %654, %648
  %.pn351.pn = phi { ptr, i32 } [ %.pn351, %654 ], [ %649, %648 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  br label %656

656:                                              ; preds = %655, %646
  %.pn351.pn.pn = phi { ptr, i32 } [ %.pn351.pn, %655 ], [ %647, %646 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  br label %657

657:                                              ; preds = %656, %644
  %.pn351.pn.pn.pn = phi { ptr, i32 } [ %.pn351.pn.pn, %656 ], [ %645, %644 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  br label %658

658:                                              ; preds = %657, %642
  %.pn351.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn351.pn.pn.pn, %657 ], [ %643, %642 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #7
  br label %979

659:                                              ; preds = %629
  %660 = landingpad { ptr, i32 }
          cleanup
  br label %666

661:                                              ; preds = %631
  %662 = landingpad { ptr, i32 }
          cleanup
  br label %665

663:                                              ; preds = %632
  %664 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  br label %665

665:                                              ; preds = %663, %661
  %.pn357 = phi { ptr, i32 } [ %664, %663 ], [ %662, %661 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #7
  br label %666

666:                                              ; preds = %665, %659
  %.pn357.pn = phi { ptr, i32 } [ %.pn357, %665 ], [ %660, %659 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #7
  br label %979

667:                                              ; preds = %634
  %668 = landingpad { ptr, i32 }
          cleanup
  br label %677

669:                                              ; preds = %636
  %670 = landingpad { ptr, i32 }
          cleanup
  br label %676

671:                                              ; preds = %637
  %672 = landingpad { ptr, i32 }
          cleanup
  br label %675

673:                                              ; preds = %638
  %674 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #7
  br label %675

675:                                              ; preds = %673, %671
  %.pn360 = phi { ptr, i32 } [ %674, %673 ], [ %672, %671 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #7
  br label %676

676:                                              ; preds = %675, %669
  %.pn360.pn = phi { ptr, i32 } [ %.pn360, %675 ], [ %670, %669 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #7
  br label %677

677:                                              ; preds = %676, %667
  %.pn360.pn.pn = phi { ptr, i32 } [ %.pn360.pn, %676 ], [ %668, %667 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #7
  br label %979

678:                                              ; preds = %619
  %679 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.33)
          to label %.preheader530 unwind label %453

.preheader530:                                    ; preds = %678
  %680 = icmp ugt i64 %278, 1
  br i1 %680, label %.lr.ph534, label %.loopexit529.thread565

.lr.ph534:                                        ; preds = %.preheader530, %688
  %.087533 = phi i64 [ %689, %688 ], [ 1, %.preheader530 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %108) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %109) #7
  %681 = trunc i64 %.087533 to i32
  %682 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %12, i32 noundef 0, i32 noundef %681)
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %109, double noundef %682)
          to label %683 unwind label %690

683:                                              ; preds = %.lr.ph534
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %108, ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull @.str.34)
          to label %684 unwind label %692

684:                                              ; preds = %683
  %685 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %108)
          to label %686 unwind label %694

686:                                              ; preds = %684
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #7
  %687 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.35)
          to label %688 unwind label %698

688:                                              ; preds = %686
  %689 = add nuw i64 %.087533, 1
  %exitcond562.not = icmp eq i64 %689, %278
  br i1 %exitcond562.not, label %.loopexit529, label %.lr.ph534, !llvm.loop !42

690:                                              ; preds = %.lr.ph534
  %691 = landingpad { ptr, i32 }
          cleanup
  br label %697

692:                                              ; preds = %683
  %693 = landingpad { ptr, i32 }
          cleanup
  br label %696

694:                                              ; preds = %684
  %695 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %696

696:                                              ; preds = %694, %692
  %.pn346 = phi { ptr, i32 } [ %695, %694 ], [ %693, %692 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  br label %697

697:                                              ; preds = %696, %690
  %.pn346.pn = phi { ptr, i32 } [ %.pn346, %696 ], [ %691, %690 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #7
  br label %979

698:                                              ; preds = %686
  %699 = landingpad { ptr, i32 }
          cleanup
  br label %979

700:                                              ; preds = %615
  %701 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.36)
          to label %702 unwind label %453

702:                                              ; preds = %700
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %110) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %111) #7
  %703 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %12, i32 noundef 0, i32 noundef 1)
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %111, double noundef %703)
          to label %704 unwind label %719

704:                                              ; preds = %702
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %110, ptr noundef nonnull @.str.37, ptr noundef nonnull align 8 dereferenceable(32) %111)
          to label %705 unwind label %721

705:                                              ; preds = %704
  %706 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %707 unwind label %723

707:                                              ; preds = %705
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %112) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %113) #7
  %708 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %15, i32 noundef 0, i32 noundef 1)
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %113, double noundef %708)
          to label %709 unwind label %727

709:                                              ; preds = %707
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %112, ptr noundef nonnull @.str.27, ptr noundef nonnull align 8 dereferenceable(32) %113)
          to label %710 unwind label %729

710:                                              ; preds = %709
  %711 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %112)
          to label %712 unwind label %731

712:                                              ; preds = %710
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %114) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %115) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %116) #7
  %713 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %18, i32 noundef 0, i32 noundef 1)
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %116, double noundef %713)
          to label %714 unwind label %735

714:                                              ; preds = %712
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %115, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(32) %116)
          to label %715 unwind label %737

715:                                              ; preds = %714
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %114, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull @.str.32)
          to label %716 unwind label %739

716:                                              ; preds = %715
  %717 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %114)
          to label %718 unwind label %741

718:                                              ; preds = %716
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #7
  br label %.loopexit529

719:                                              ; preds = %702
  %720 = landingpad { ptr, i32 }
          cleanup
  br label %726

721:                                              ; preds = %704
  %722 = landingpad { ptr, i32 }
          cleanup
  br label %725

723:                                              ; preds = %705
  %724 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  br label %725

725:                                              ; preds = %723, %721
  %.pn336 = phi { ptr, i32 } [ %724, %723 ], [ %722, %721 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #7
  br label %726

726:                                              ; preds = %725, %719
  %.pn336.pn = phi { ptr, i32 } [ %.pn336, %725 ], [ %720, %719 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #7
  br label %979

727:                                              ; preds = %707
  %728 = landingpad { ptr, i32 }
          cleanup
  br label %734

729:                                              ; preds = %709
  %730 = landingpad { ptr, i32 }
          cleanup
  br label %733

731:                                              ; preds = %710
  %732 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #7
  br label %733

733:                                              ; preds = %731, %729
  %.pn339 = phi { ptr, i32 } [ %732, %731 ], [ %730, %729 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #7
  br label %734

734:                                              ; preds = %733, %727
  %.pn339.pn = phi { ptr, i32 } [ %.pn339, %733 ], [ %728, %727 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #7
  br label %979

735:                                              ; preds = %712
  %736 = landingpad { ptr, i32 }
          cleanup
  br label %745

737:                                              ; preds = %714
  %738 = landingpad { ptr, i32 }
          cleanup
  br label %744

739:                                              ; preds = %715
  %740 = landingpad { ptr, i32 }
          cleanup
  br label %743

741:                                              ; preds = %716
  %742 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #7
  br label %743

743:                                              ; preds = %741, %739
  %.pn342 = phi { ptr, i32 } [ %742, %741 ], [ %740, %739 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #7
  br label %744

744:                                              ; preds = %743, %737
  %.pn342.pn = phi { ptr, i32 } [ %.pn342, %743 ], [ %738, %737 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  br label %745

745:                                              ; preds = %744, %735
  %.pn342.pn.pn = phi { ptr, i32 } [ %.pn342.pn, %744 ], [ %736, %735 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #7
  br label %979

746:                                              ; preds = %615
  %747 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.38)
          to label %748 unwind label %453

748:                                              ; preds = %746
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %117) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %118) #7
  %749 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %12, i32 noundef 0, i32 noundef 1)
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %118, double noundef %749)
          to label %750 unwind label %760

750:                                              ; preds = %748
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %117, ptr noundef nonnull @.str.39, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %751 unwind label %762

751:                                              ; preds = %750
  %752 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %117)
          to label %753 unwind label %764

753:                                              ; preds = %751
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %119) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %120) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %121) #7
  %754 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %18, i32 noundef 0, i32 noundef 1)
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %121, double noundef %754)
          to label %755 unwind label %768

755:                                              ; preds = %753
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %120, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(32) %121)
          to label %756 unwind label %770

756:                                              ; preds = %755
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %119, ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull @.str.32)
          to label %757 unwind label %772

757:                                              ; preds = %756
  %758 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %119)
          to label %759 unwind label %774

759:                                              ; preds = %757
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %120) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #7
  br label %.loopexit529

760:                                              ; preds = %748
  %761 = landingpad { ptr, i32 }
          cleanup
  br label %767

762:                                              ; preds = %750
  %763 = landingpad { ptr, i32 }
          cleanup
  br label %766

764:                                              ; preds = %751
  %765 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  br label %766

766:                                              ; preds = %764, %762
  %.pn329 = phi { ptr, i32 } [ %765, %764 ], [ %763, %762 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  br label %767

767:                                              ; preds = %766, %760
  %.pn329.pn = phi { ptr, i32 } [ %.pn329, %766 ], [ %761, %760 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #7
  br label %979

768:                                              ; preds = %753
  %769 = landingpad { ptr, i32 }
          cleanup
  br label %778

770:                                              ; preds = %755
  %771 = landingpad { ptr, i32 }
          cleanup
  br label %777

772:                                              ; preds = %756
  %773 = landingpad { ptr, i32 }
          cleanup
  br label %776

774:                                              ; preds = %757
  %775 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #7
  br label %776

776:                                              ; preds = %774, %772
  %.pn332 = phi { ptr, i32 } [ %775, %774 ], [ %773, %772 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #7
  br label %777

777:                                              ; preds = %776, %770
  %.pn332.pn = phi { ptr, i32 } [ %.pn332, %776 ], [ %771, %770 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #7
  br label %778

778:                                              ; preds = %777, %768
  %.pn332.pn.pn = phi { ptr, i32 } [ %.pn332.pn, %777 ], [ %769, %768 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %120) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #7
  br label %979

779:                                              ; preds = %615
  %780 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.40)
          to label %781 unwind label %453

781:                                              ; preds = %779
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %122) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %123) #7
  %782 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %12, i32 noundef 0, i32 noundef 1)
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %123, double noundef %782)
          to label %783 unwind label %798

783:                                              ; preds = %781
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %122, ptr noundef nonnull @.str.41, ptr noundef nonnull align 8 dereferenceable(32) %123)
          to label %784 unwind label %800

784:                                              ; preds = %783
  %785 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %122)
          to label %786 unwind label %802

786:                                              ; preds = %784
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %124) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %125) #7
  %787 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %15, i32 noundef 0, i32 noundef 1)
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %125, double noundef %787)
          to label %788 unwind label %806

788:                                              ; preds = %786
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %124, ptr noundef nonnull @.str.27, ptr noundef nonnull align 8 dereferenceable(32) %125)
          to label %789 unwind label %808

789:                                              ; preds = %788
  %790 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %124)
          to label %791 unwind label %810

791:                                              ; preds = %789
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %126) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %127) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %128) #7
  %792 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %18, i32 noundef 0, i32 noundef 1)
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %128, double noundef %792)
          to label %793 unwind label %814

793:                                              ; preds = %791
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %127, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(32) %128)
          to label %794 unwind label %816

794:                                              ; preds = %793
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %126, ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull @.str.32)
          to label %795 unwind label %818

795:                                              ; preds = %794
  %796 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %797 unwind label %820

797:                                              ; preds = %795
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #7
  br label %.loopexit529

798:                                              ; preds = %781
  %799 = landingpad { ptr, i32 }
          cleanup
  br label %805

800:                                              ; preds = %783
  %801 = landingpad { ptr, i32 }
          cleanup
  br label %804

802:                                              ; preds = %784
  %803 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #7
  br label %804

804:                                              ; preds = %802, %800
  %.pn319 = phi { ptr, i32 } [ %803, %802 ], [ %801, %800 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #7
  br label %805

805:                                              ; preds = %804, %798
  %.pn319.pn = phi { ptr, i32 } [ %.pn319, %804 ], [ %799, %798 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #7
  br label %979

806:                                              ; preds = %786
  %807 = landingpad { ptr, i32 }
          cleanup
  br label %813

808:                                              ; preds = %788
  %809 = landingpad { ptr, i32 }
          cleanup
  br label %812

810:                                              ; preds = %789
  %811 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  br label %812

812:                                              ; preds = %810, %808
  %.pn322 = phi { ptr, i32 } [ %811, %810 ], [ %809, %808 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  br label %813

813:                                              ; preds = %812, %806
  %.pn322.pn = phi { ptr, i32 } [ %.pn322, %812 ], [ %807, %806 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #7
  br label %979

814:                                              ; preds = %791
  %815 = landingpad { ptr, i32 }
          cleanup
  br label %824

816:                                              ; preds = %793
  %817 = landingpad { ptr, i32 }
          cleanup
  br label %823

818:                                              ; preds = %794
  %819 = landingpad { ptr, i32 }
          cleanup
  br label %822

820:                                              ; preds = %795
  %821 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #7
  br label %822

822:                                              ; preds = %820, %818
  %.pn325 = phi { ptr, i32 } [ %821, %820 ], [ %819, %818 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  br label %823

823:                                              ; preds = %822, %816
  %.pn325.pn = phi { ptr, i32 } [ %.pn325, %822 ], [ %817, %816 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #7
  br label %824

824:                                              ; preds = %823, %814
  %.pn325.pn.pn = phi { ptr, i32 } [ %.pn325.pn, %823 ], [ %815, %814 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #7
  br label %979

825:                                              ; preds = %615
  %826 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.42)
          to label %827 unwind label %453

827:                                              ; preds = %825
  %828 = getelementptr inbounds i8, ptr %0, i64 200
  %829 = load i32, ptr %828, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %829)
          to label %.loopexit529 unwind label %453

.loopexit529:                                     ; preds = %688, %640, %718, %759, %797, %827, %612
  br i1 %.096, label %.loopexit529.thread, label %.loopexit529.thread565

.loopexit529.thread:                              ; preds = %.preheader528, %.loopexit529
  %830 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %24, double noundef 1.000000e+00)
          to label %831 unwind label %453

831:                                              ; preds = %.loopexit529.thread
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %129) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %129)
          to label %832 unwind label %835

832:                                              ; preds = %831
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %130) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %131) #7
  store double 0.000000e+00, ptr %131, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %130, ptr noundef nonnull align 8 dereferenceable(8) %131)
          to label %833 unwind label %837

833:                                              ; preds = %832
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %131) #7
  %.not = icmp ne i64 %274, 0
  %834 = icmp ugt i64 %278, 1
  %or.cond = and i1 %.not, %834
  br i1 %or.cond, label %.lr.ph538, label %.loopexit527

835:                                              ; preds = %831
  %836 = landingpad { ptr, i32 }
          cleanup
  br label %973

837:                                              ; preds = %832
  %838 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %131) #7
  br label %972

.lr.ph538:                                        ; preds = %833, %851
  %.086537 = phi i64 [ %852, %851 ], [ 1, %833 ]
  %839 = trunc i64 %.086537 to i32
  %840 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %18, i32 noundef 0, i32 noundef %839)
  %841 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %129, double noundef %840)
          to label %842 unwind label %853

842:                                              ; preds = %.lr.ph538
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %132) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %133) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %135) #7
  store double 0.000000e+00, ptr %135, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %134, ptr noundef nonnull align 8 dereferenceable(8) %135)
          to label %843 unwind label %855

843:                                              ; preds = %842
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %137) #7
  %844 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %12, i32 noundef 0, i32 noundef %839)
  store double %844, ptr %137, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %136, ptr noundef nonnull align 8 dereferenceable(8) %137)
          to label %845 unwind label %857

845:                                              ; preds = %843
  invoke void @_ZN9NOMAD_4_33maxENS_6DoubleES0_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %133, ptr noundef nonnull %134, ptr noundef nonnull %136)
          to label %846 unwind label %859

846:                                              ; preds = %845
  invoke void @_ZNK9NOMAD_4_36Double4pow2Ev(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %132, ptr noundef nonnull align 8 dereferenceable(17) %133)
          to label %847 unwind label %861

847:                                              ; preds = %846
  %848 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoublepLERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %130, ptr noundef nonnull align 8 dereferenceable(17) %132)
          to label %849 unwind label %863

849:                                              ; preds = %847
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %132) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %133) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %136) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %137) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %134) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %135) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %133) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %132) #7
  %850 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoublemLERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %24, ptr noundef nonnull align 8 dereferenceable(17) %129)
          to label %851 unwind label %853

851:                                              ; preds = %849
  %852 = add nuw i64 %.086537, 1
  %exitcond564.not = icmp eq i64 %852, %278
  br i1 %exitcond564.not, label %.loopexit527, label %.lr.ph538, !llvm.loop !43

853:                                              ; preds = %849, %.lr.ph538
  %854 = landingpad { ptr, i32 }
          cleanup
  br label %971

855:                                              ; preds = %842
  %856 = landingpad { ptr, i32 }
          cleanup
  br label %868

857:                                              ; preds = %843
  %858 = landingpad { ptr, i32 }
          cleanup
  br label %867

859:                                              ; preds = %845
  %860 = landingpad { ptr, i32 }
          cleanup
  br label %866

861:                                              ; preds = %846
  %862 = landingpad { ptr, i32 }
          cleanup
  br label %865

863:                                              ; preds = %847
  %864 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %132) #7
  br label %865

865:                                              ; preds = %863, %861
  %.pn475 = phi { ptr, i32 } [ %864, %863 ], [ %862, %861 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %133) #7
  br label %866

866:                                              ; preds = %865, %859
  %.pn475.pn = phi { ptr, i32 } [ %.pn475, %865 ], [ %860, %859 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %136) #7
  br label %867

867:                                              ; preds = %866, %857
  %.pn475.pn.pn = phi { ptr, i32 } [ %.pn475.pn, %866 ], [ %858, %857 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %137) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %134) #7
  br label %868

868:                                              ; preds = %867, %855
  %.pn475.pn.pn.pn = phi { ptr, i32 } [ %.pn475.pn.pn, %867 ], [ %856, %855 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %135) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %133) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %132) #7
  br label %971

.loopexit527:                                     ; preds = %851, %833
  %869 = load ptr, ptr %303, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %139) #7
  %870 = call noundef zeroext i1 @_ZNK9NOMAD_4_312SgtelibModel16getFoundFeasibleEv(ptr noundef nonnull align 8 dereferenceable(552) %869)
  br i1 %870, label %.thread520, label %871

871:                                              ; preds = %.loopexit527
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %138) #7
  store double 0.000000e+00, ptr %139, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %138, ptr noundef nonnull align 8 dereferenceable(8) %139)
          to label %872 unwind label %895

872:                                              ; preds = %871
  %873 = invoke noundef zeroext i1 @_ZN9NOMAD_4_3eqERKNS_6DoubleES2_(ptr noundef nonnull align 8 dereferenceable(17) %24, ptr noundef nonnull align 8 dereferenceable(17) %138)
          to label %874 unwind label %897

.thread520:                                       ; preds = %.loopexit527
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %139) #7
  br label %930

874:                                              ; preds = %872
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %138) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %139) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %138) #7
  br i1 %873, label %875, label %930

875:                                              ; preds = %874
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %140) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %141) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %142) #7
  store double 1.000000e+00, ptr %142, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %141, ptr noundef nonnull align 8 dereferenceable(8) %142)
          to label %876 unwind label %900

876:                                              ; preds = %875
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %143) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %144) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %145) #7
  store double 1.000000e+00, ptr %145, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %144, ptr noundef nonnull align 8 dereferenceable(8) %145)
          to label %877 unwind label %902

877:                                              ; preds = %876
  invoke void @_ZN9NOMAD_4_3plERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %143, ptr noundef nonnull align 8 dereferenceable(17) %144, ptr noundef nonnull align 8 dereferenceable(17) %130)
          to label %878 unwind label %904

878:                                              ; preds = %877
  invoke void @_ZN9NOMAD_4_3dvERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %140, ptr noundef nonnull align 8 dereferenceable(17) %141, ptr noundef nonnull align 8 dereferenceable(17) %143)
          to label %879 unwind label %906

879:                                              ; preds = %878
  %880 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %24, ptr noundef nonnull align 8 dereferenceable(17) %140)
          to label %881 unwind label %908

881:                                              ; preds = %879
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %140) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %143) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %144) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %145) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %144) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %143) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %141) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %142) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %141) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %140) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %146) #7
  store i32 7, ptr %146, align 4, !tbaa !5
  %882 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %146)
          to label %883 unwind label %914

883:                                              ; preds = %881
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %146) #7
  br i1 %882, label %884, label %930

884:                                              ; preds = %883
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %147) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %148) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %149) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %150) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %150, ptr noundef nonnull align 8 dereferenceable(17) %130, i32 noundef 6, i64 noundef 0)
          to label %885 unwind label %916

885:                                              ; preds = %884
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %149, ptr noundef nonnull @.str.43, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %886 unwind label %918

886:                                              ; preds = %885
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %148, ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull @.str.44)
          to label %887 unwind label %920

887:                                              ; preds = %886
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %151) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %151, ptr noundef nonnull align 8 dereferenceable(17) %24, i32 noundef 6, i64 noundef 0)
          to label %888 unwind label %922

888:                                              ; preds = %887
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %147, ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %889 unwind label %924

889:                                              ; preds = %888
  %890 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %147) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %147) #7
  %891 = getelementptr inbounds i8, ptr %0, i64 200
  %892 = load i32, ptr %891, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %892)
          to label %930 unwind label %893

893:                                              ; preds = %889
  %894 = landingpad { ptr, i32 }
          cleanup
  br label %971

895:                                              ; preds = %871
  %896 = landingpad { ptr, i32 }
          cleanup
  br label %899

897:                                              ; preds = %872
  %898 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %138) #7
  br label %899

899:                                              ; preds = %897, %895
  %.pn365 = phi { ptr, i32 } [ %898, %897 ], [ %896, %895 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %139) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %138) #7
  br label %971

900:                                              ; preds = %875
  %901 = landingpad { ptr, i32 }
          cleanup
  br label %913

902:                                              ; preds = %876
  %903 = landingpad { ptr, i32 }
          cleanup
  br label %912

904:                                              ; preds = %877
  %905 = landingpad { ptr, i32 }
          cleanup
  br label %911

906:                                              ; preds = %878
  %907 = landingpad { ptr, i32 }
          cleanup
  br label %910

908:                                              ; preds = %879
  %909 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %140) #7
  br label %910

910:                                              ; preds = %908, %906
  %.pn367 = phi { ptr, i32 } [ %909, %908 ], [ %907, %906 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %143) #7
  br label %911

911:                                              ; preds = %910, %904
  %.pn367.pn = phi { ptr, i32 } [ %.pn367, %910 ], [ %905, %904 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %144) #7
  br label %912

912:                                              ; preds = %911, %902
  %.pn367.pn.pn = phi { ptr, i32 } [ %.pn367.pn, %911 ], [ %903, %902 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %145) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %144) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %143) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %141) #7
  br label %913

913:                                              ; preds = %912, %900
  %.pn367.pn.pn.pn = phi { ptr, i32 } [ %.pn367.pn.pn, %912 ], [ %901, %900 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %142) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %141) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %140) #7
  br label %971

914:                                              ; preds = %881
  %915 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %146) #7
  br label %971

916:                                              ; preds = %884
  %917 = landingpad { ptr, i32 }
          cleanup
  br label %929

918:                                              ; preds = %885
  %919 = landingpad { ptr, i32 }
          cleanup
  br label %928

920:                                              ; preds = %886
  %921 = landingpad { ptr, i32 }
          cleanup
  br label %927

922:                                              ; preds = %887
  %923 = landingpad { ptr, i32 }
          cleanup
  br label %926

924:                                              ; preds = %888
  %925 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #7
  br label %926

926:                                              ; preds = %924, %922
  %.pn372 = phi { ptr, i32 } [ %925, %924 ], [ %923, %922 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  br label %927

927:                                              ; preds = %926, %920
  %.pn372.pn = phi { ptr, i32 } [ %.pn372, %926 ], [ %921, %920 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #7
  br label %928

928:                                              ; preds = %927, %918
  %.pn372.pn.pn = phi { ptr, i32 } [ %.pn372.pn, %927 ], [ %919, %918 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #7
  br label %929

929:                                              ; preds = %928, %916
  %.pn372.pn.pn.pn = phi { ptr, i32 } [ %.pn372.pn.pn, %928 ], [ %917, %916 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %147) #7
  br label %971

930:                                              ; preds = %.thread520, %883, %889, %874
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %152) #7
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %152, ptr noundef nonnull align 8 dereferenceable(17) %30, ptr noundef nonnull align 8 dereferenceable(17) %24)
          to label %931 unwind label %944

931:                                              ; preds = %930
  %932 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %36, ptr noundef nonnull align 8 dereferenceable(17) %152)
          to label %933 unwind label %946

933:                                              ; preds = %931
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %152) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %152) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %153) #7
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %153, ptr noundef nonnull align 8 dereferenceable(17) %32, ptr noundef nonnull align 8 dereferenceable(17) %24)
          to label %934 unwind label %949

934:                                              ; preds = %933
  %935 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %34, ptr noundef nonnull align 8 dereferenceable(17) %153)
          to label %936 unwind label %951

936:                                              ; preds = %934
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %153) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %153) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %154) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %155) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %156) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %157) #7
  store double 4.000000e+00, ptr %157, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %156, ptr noundef nonnull align 8 dereferenceable(8) %157)
          to label %937 unwind label %954

937:                                              ; preds = %936
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %155, ptr noundef nonnull align 8 dereferenceable(17) %156, ptr noundef nonnull align 8 dereferenceable(17) %24)
          to label %938 unwind label %956

938:                                              ; preds = %937
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %158) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %159) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %160) #7
  store double 1.000000e+00, ptr %160, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %159, ptr noundef nonnull align 8 dereferenceable(8) %160)
          to label %939 unwind label %958

939:                                              ; preds = %938
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %158, ptr noundef nonnull align 8 dereferenceable(17) %159, ptr noundef nonnull align 8 dereferenceable(17) %24)
          to label %940 unwind label %960

940:                                              ; preds = %939
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %154, ptr noundef nonnull align 8 dereferenceable(17) %155, ptr noundef nonnull align 8 dereferenceable(17) %158)
          to label %941 unwind label %962

941:                                              ; preds = %940
  %942 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %38, ptr noundef nonnull align 8 dereferenceable(17) %154)
          to label %943 unwind label %964

943:                                              ; preds = %941
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %154) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %158) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %159) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %160) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %159) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %158) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %155) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %156) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %157) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %156) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %155) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %154) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %130) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %130) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %129) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %129) #7
  br label %.loopexit529.thread565

944:                                              ; preds = %930
  %945 = landingpad { ptr, i32 }
          cleanup
  br label %948

946:                                              ; preds = %931
  %947 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %152) #7
  br label %948

948:                                              ; preds = %946, %944
  %.pn377 = phi { ptr, i32 } [ %947, %946 ], [ %945, %944 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %152) #7
  br label %971

949:                                              ; preds = %933
  %950 = landingpad { ptr, i32 }
          cleanup
  br label %953

951:                                              ; preds = %934
  %952 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %153) #7
  br label %953

953:                                              ; preds = %951, %949
  %.pn379 = phi { ptr, i32 } [ %952, %951 ], [ %950, %949 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %153) #7
  br label %971

954:                                              ; preds = %936
  %955 = landingpad { ptr, i32 }
          cleanup
  br label %970

956:                                              ; preds = %937
  %957 = landingpad { ptr, i32 }
          cleanup
  br label %969

958:                                              ; preds = %938
  %959 = landingpad { ptr, i32 }
          cleanup
  br label %968

960:                                              ; preds = %939
  %961 = landingpad { ptr, i32 }
          cleanup
  br label %967

962:                                              ; preds = %940
  %963 = landingpad { ptr, i32 }
          cleanup
  br label %966

964:                                              ; preds = %941
  %965 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %154) #7
  br label %966

966:                                              ; preds = %964, %962
  %.pn381 = phi { ptr, i32 } [ %965, %964 ], [ %963, %962 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %158) #7
  br label %967

967:                                              ; preds = %966, %960
  %.pn381.pn = phi { ptr, i32 } [ %.pn381, %966 ], [ %961, %960 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %159) #7
  br label %968

968:                                              ; preds = %967, %958
  %.pn381.pn.pn = phi { ptr, i32 } [ %.pn381.pn, %967 ], [ %959, %958 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %160) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %159) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %158) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %155) #7
  br label %969

969:                                              ; preds = %968, %956
  %.pn381.pn.pn.pn = phi { ptr, i32 } [ %.pn381.pn.pn, %968 ], [ %957, %956 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %156) #7
  br label %970

970:                                              ; preds = %969, %954
  %.pn381.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn381.pn.pn.pn, %969 ], [ %955, %954 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %157) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %156) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %155) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %154) #7
  br label %971

971:                                              ; preds = %853, %868, %899, %970, %953, %948, %929, %914, %913, %893
  %.pn480.pn = phi { ptr, i32 } [ %.pn381.pn.pn.pn.pn, %970 ], [ %.pn379, %953 ], [ %.pn377, %948 ], [ %894, %893 ], [ %.pn372.pn.pn.pn, %929 ], [ %915, %914 ], [ %.pn367.pn.pn.pn, %913 ], [ %.pn365, %899 ], [ %854, %853 ], [ %.pn475.pn.pn.pn, %868 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %130) #7
  br label %972

972:                                              ; preds = %971, %837
  %.pn480.pn.pn = phi { ptr, i32 } [ %.pn480.pn, %971 ], [ %838, %837 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %130) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %129) #7
  br label %973

973:                                              ; preds = %972, %835
  %.pn480.pn.pn.pn = phi { ptr, i32 } [ %.pn480.pn.pn, %972 ], [ %836, %835 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %129) #7
  br label %979

.loopexit529.thread565:                           ; preds = %.preheader530, %943, %.loopexit529
  call void @_ZN9NOMAD_4_313ArrayOfStringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %161) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %161)
          to label %974 unwind label %981

974:                                              ; preds = %.loopexit529.thread565
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %162) #7
  %975 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %273) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %163) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %164) #7
  store double -1.000000e+00, ptr %164, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %163, ptr noundef nonnull align 8 dereferenceable(8) %164)
          to label %976 unwind label %983

976:                                              ; preds = %974
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef %975, ptr noundef nonnull align 8 dereferenceable(17) %163)
          to label %977 unwind label %985

977:                                              ; preds = %976
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %163) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %164) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %163) #7
  %978 = load i32, ptr %49, align 4, !tbaa !34
  switch i32 %978, label %1235 [
    i32 0, label %988
    i32 1, label %1035
    i32 2, label %1071
    i32 3, label %1122
    i32 4, label %1131
    i32 5, label %1149
    i32 6, label %1171
    i32 7, label %1201
    i32 8, label %1210
    i32 9, label %1219
  ]

979:                                              ; preds = %697, %698, %658, %666, %677, %494, %495, %409, %410, %973, %824, %813, %805, %778, %767, %745, %734, %726, %617, %609, %603, %593, %578, %546, %510, %504, %483, %478, %472, %453, %452, %444, %436, %430, %397, %387
  %.pn485.pn.pn = phi { ptr, i32 } [ %.pn485.pn514, %410 ], [ %.pn485, %409 ], [ %.pn480.pn.pn.pn, %973 ], [ %454, %453 ], [ %.pn325.pn.pn, %824 ], [ %.pn322.pn, %813 ], [ %.pn319.pn, %805 ], [ %.pn332.pn.pn, %778 ], [ %.pn329.pn, %767 ], [ %.pn342.pn.pn, %745 ], [ %.pn339.pn, %734 ], [ %.pn336.pn, %726 ], [ %618, %617 ], [ %.pn314.pn.pn.pn, %593 ], [ %579, %578 ], [ %.pn312, %609 ], [ %604, %603 ], [ %.pn310, %483 ], [ %.pn308, %478 ], [ %473, %472 ], [ %.pn305.pn518, %495 ], [ %.pn305, %494 ], [ %.pn302.pn, %546 ], [ %.pn297, %510 ], [ %505, %504 ], [ %.pn294.pn, %452 ], [ %.pn291.pn, %444 ], [ %.pn289, %436 ], [ %431, %430 ], [ %.pn287, %397 ], [ %.pn285, %387 ], [ %.pn360.pn.pn, %677 ], [ %.pn357.pn, %666 ], [ %.pn351.pn.pn.pn.pn, %658 ], [ %699, %698 ], [ %.pn346.pn, %697 ]
  call void @_ZN9NOMAD_4_313ArrayOfStringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %980

980:                                              ; preds = %979, %382
  %.pn485.pn.pn.pn = phi { ptr, i32 } [ %.pn485.pn.pn, %979 ], [ %.pn283, %382 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #7
  br label %1432

981:                                              ; preds = %.loopexit529.thread565
  %982 = landingpad { ptr, i32 }
          cleanup
  br label %1431

983:                                              ; preds = %974
  %984 = landingpad { ptr, i32 }
          cleanup
  br label %987

985:                                              ; preds = %976
  %986 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %163) #7
  br label %987

987:                                              ; preds = %985, %983
  %.pn387 = phi { ptr, i32 } [ %986, %985 ], [ %984, %983 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %164) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %163) #7
  br label %1430

988:                                              ; preds = %977
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %165) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %166) #7
  %989 = getelementptr inbounds i8, ptr %0, i64 160
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %166, ptr noundef nonnull align 8 dereferenceable(17) %989, ptr noundef nonnull align 8 dereferenceable(17) %28)
          to label %990 unwind label %995

990:                                              ; preds = %988
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %165, ptr noundef nonnull align 8 dereferenceable(17) %26, ptr noundef nonnull align 8 dereferenceable(17) %166)
          to label %991 unwind label %997

991:                                              ; preds = %990
  %992 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %161, ptr noundef nonnull align 8 dereferenceable(17) %165)
          to label %993 unwind label %999

993:                                              ; preds = %991
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %165) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %166) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %166) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %165) #7
  %994 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %273) #7
  %.not557 = icmp eq i64 %994, 0
  br i1 %.not557, label %.loopexit, label %.lr.ph549

995:                                              ; preds = %988
  %996 = landingpad { ptr, i32 }
          cleanup
  br label %1002

997:                                              ; preds = %990
  %998 = landingpad { ptr, i32 }
          cleanup
  br label %1001

999:                                              ; preds = %991
  %1000 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %165) #7
  br label %1001

1001:                                             ; preds = %999, %997
  %.pn430 = phi { ptr, i32 } [ %1000, %999 ], [ %998, %997 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %166) #7
  br label %1002

1002:                                             ; preds = %1001, %995
  %.pn430.pn = phi { ptr, i32 } [ %.pn430, %1001 ], [ %996, %995 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %166) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %165) #7
  br label %1429

.lr.ph549:                                        ; preds = %993, %1031
  %.080547 = phi i64 [ %1032, %1031 ], [ 0, %993 ]
  %.081546 = phi i32 [ %.182, %1031 ], [ 0, %993 ]
  %1003 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %273, i64 noundef %.080547) #7
  %1004 = load i32, ptr %1003, align 4, !tbaa !44
  %.not433 = icmp eq i32 %1004, 0
  br i1 %.not433, label %1031, label %1005

1005:                                             ; preds = %.lr.ph549
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %167) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %168) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %169) #7
  %1006 = add nsw i32 %.081546, 1
  %1007 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %12, i32 noundef 0, i32 noundef %1006)
  store double %1007, ptr %169, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %168, ptr noundef nonnull align 8 dereferenceable(8) %169)
          to label %1008 unwind label %1017

1008:                                             ; preds = %1005
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %170) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %171) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %172) #7
  %1009 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %15, i32 noundef 0, i32 noundef %1006)
  store double %1009, ptr %172, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %171, ptr noundef nonnull align 8 dereferenceable(8) %172)
          to label %1010 unwind label %1019

1010:                                             ; preds = %1008
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %170, ptr noundef nonnull align 8 dereferenceable(17) %989, ptr noundef nonnull align 8 dereferenceable(17) %171)
          to label %1011 unwind label %1021

1011:                                             ; preds = %1010
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %167, ptr noundef nonnull align 8 dereferenceable(17) %168, ptr noundef nonnull align 8 dereferenceable(17) %170)
          to label %1012 unwind label %1023

1012:                                             ; preds = %1011
  %1013 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9NOMAD_4_313ArrayOfDoubleixEm(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef %.080547)
          to label %1014 unwind label %1025

1014:                                             ; preds = %1012
  %1015 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %1013, ptr noundef nonnull align 8 dereferenceable(17) %167)
          to label %1016 unwind label %1025

1016:                                             ; preds = %1014
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %167) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %170) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %171) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %172) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %171) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %170) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %168) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %169) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %168) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %167) #7
  br label %1031

1017:                                             ; preds = %1005
  %1018 = landingpad { ptr, i32 }
          cleanup
  br label %1030

1019:                                             ; preds = %1008
  %1020 = landingpad { ptr, i32 }
          cleanup
  br label %1029

1021:                                             ; preds = %1010
  %1022 = landingpad { ptr, i32 }
          cleanup
  br label %1028

1023:                                             ; preds = %1011
  %1024 = landingpad { ptr, i32 }
          cleanup
  br label %1027

1025:                                             ; preds = %1014, %1012
  %1026 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %167) #7
  br label %1027

1027:                                             ; preds = %1025, %1023
  %.pn434 = phi { ptr, i32 } [ %1026, %1025 ], [ %1024, %1023 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %170) #7
  br label %1028

1028:                                             ; preds = %1027, %1021
  %.pn434.pn = phi { ptr, i32 } [ %.pn434, %1027 ], [ %1022, %1021 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %171) #7
  br label %1029

1029:                                             ; preds = %1028, %1019
  %.pn434.pn.pn = phi { ptr, i32 } [ %.pn434.pn, %1028 ], [ %1020, %1019 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %172) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %171) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %170) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %168) #7
  br label %1030

1030:                                             ; preds = %1029, %1017
  %.pn434.pn.pn.pn = phi { ptr, i32 } [ %.pn434.pn.pn, %1029 ], [ %1018, %1017 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %169) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %168) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %167) #7
  br label %1429

1031:                                             ; preds = %.lr.ph549, %1016
  %.182 = phi i32 [ %1006, %1016 ], [ %.081546, %.lr.ph549 ]
  %1032 = add nuw i64 %.080547, 1
  %1033 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %273) #7
  %1034 = icmp ult i64 %1032, %1033
  br i1 %1034, label %.lr.ph549, label %.loopexit, !llvm.loop !46

1035:                                             ; preds = %977
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %173) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %174) #7
  %1036 = getelementptr inbounds i8, ptr %0, i64 160
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %174, ptr noundef nonnull align 8 dereferenceable(17) %1036, ptr noundef nonnull align 8 dereferenceable(17) %28)
          to label %1037 unwind label %1042

1037:                                             ; preds = %1035
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %173, ptr noundef nonnull align 8 dereferenceable(17) %26, ptr noundef nonnull align 8 dereferenceable(17) %174)
          to label %1038 unwind label %1044

1038:                                             ; preds = %1037
  %1039 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %161, ptr noundef nonnull align 8 dereferenceable(17) %173)
          to label %1040 unwind label %1046

1040:                                             ; preds = %1038
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %173) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %174) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %174) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %173) #7
  %1041 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %273) #7
  %.not556 = icmp eq i64 %1041, 0
  br i1 %.not556, label %.loopexit, label %.lr.ph545

1042:                                             ; preds = %1035
  %1043 = landingpad { ptr, i32 }
          cleanup
  br label %1049

1044:                                             ; preds = %1037
  %1045 = landingpad { ptr, i32 }
          cleanup
  br label %1048

1046:                                             ; preds = %1038
  %1047 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %173) #7
  br label %1048

1048:                                             ; preds = %1046, %1044
  %.pn423 = phi { ptr, i32 } [ %1047, %1046 ], [ %1045, %1044 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %174) #7
  br label %1049

1049:                                             ; preds = %1048, %1042
  %.pn423.pn = phi { ptr, i32 } [ %.pn423, %1048 ], [ %1043, %1042 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %174) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %173) #7
  br label %1429

.lr.ph545:                                        ; preds = %1040, %1067
  %.079543 = phi i64 [ %1068, %1067 ], [ 0, %1040 ]
  %1050 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %273, i64 noundef %.079543) #7
  %1051 = load i32, ptr %1050, align 4, !tbaa !44
  %.not426 = icmp eq i32 %1051, 0
  br i1 %.not426, label %1067, label %1052

1052:                                             ; preds = %.lr.ph545
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %175) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %176) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %177) #7
  store double 5.000000e-01, ptr %177, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %176, ptr noundef nonnull align 8 dereferenceable(8) %177)
          to label %1053 unwind label %1059

1053:                                             ; preds = %1052
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %175, ptr noundef nonnull align 8 dereferenceable(17) %176, ptr noundef nonnull align 8 dereferenceable(17) %24)
          to label %1054 unwind label %1061

1054:                                             ; preds = %1053
  %1055 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9NOMAD_4_313ArrayOfDoubleixEm(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef %.079543)
          to label %1056 unwind label %1063

1056:                                             ; preds = %1054
  %1057 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %1055, ptr noundef nonnull align 8 dereferenceable(17) %175)
          to label %1058 unwind label %1063

1058:                                             ; preds = %1056
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %175) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %176) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %177) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %176) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %175) #7
  br label %1067

1059:                                             ; preds = %1052
  %1060 = landingpad { ptr, i32 }
          cleanup
  br label %1066

1061:                                             ; preds = %1053
  %1062 = landingpad { ptr, i32 }
          cleanup
  br label %1065

1063:                                             ; preds = %1056, %1054
  %1064 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %175) #7
  br label %1065

1065:                                             ; preds = %1063, %1061
  %.pn427 = phi { ptr, i32 } [ %1064, %1063 ], [ %1062, %1061 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %176) #7
  br label %1066

1066:                                             ; preds = %1065, %1059
  %.pn427.pn = phi { ptr, i32 } [ %.pn427, %1065 ], [ %1060, %1059 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %177) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %176) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %175) #7
  br label %1429

1067:                                             ; preds = %.lr.ph545, %1058
  %1068 = add nuw i64 %.079543, 1
  %1069 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %273) #7
  %1070 = icmp ult i64 %1068, %1069
  br i1 %1070, label %.lr.ph545, label %.loopexit, !llvm.loop !47

1071:                                             ; preds = %977
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %178) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %179) #7
  invoke void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %179, ptr noundef nonnull align 8 dereferenceable(17) %32)
          to label %1072 unwind label %1079

1072:                                             ; preds = %1071
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %180) #7
  %1073 = getelementptr inbounds i8, ptr %0, i64 160
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %180, ptr noundef nonnull align 8 dereferenceable(17) %1073, ptr noundef nonnull align 8 dereferenceable(17) %28)
          to label %1074 unwind label %1081

1074:                                             ; preds = %1072
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %178, ptr noundef nonnull align 8 dereferenceable(17) %179, ptr noundef nonnull align 8 dereferenceable(17) %180)
          to label %1075 unwind label %1083

1075:                                             ; preds = %1074
  %1076 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %161, ptr noundef nonnull align 8 dereferenceable(17) %178)
          to label %1077 unwind label %1085

1077:                                             ; preds = %1075
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %178) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %180) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %180) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %179) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %179) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %178) #7
  %1078 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %273) #7
  %.not555 = icmp eq i64 %1078, 0
  br i1 %.not555, label %.loopexit, label %.lr.ph542

1079:                                             ; preds = %1071
  %1080 = landingpad { ptr, i32 }
          cleanup
  br label %1089

1081:                                             ; preds = %1072
  %1082 = landingpad { ptr, i32 }
          cleanup
  br label %1088

1083:                                             ; preds = %1074
  %1084 = landingpad { ptr, i32 }
          cleanup
  br label %1087

1085:                                             ; preds = %1075
  %1086 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %178) #7
  br label %1087

1087:                                             ; preds = %1085, %1083
  %.pn413 = phi { ptr, i32 } [ %1086, %1085 ], [ %1084, %1083 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %180) #7
  br label %1088

1088:                                             ; preds = %1087, %1081
  %.pn413.pn = phi { ptr, i32 } [ %.pn413, %1087 ], [ %1082, %1081 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %180) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %179) #7
  br label %1089

1089:                                             ; preds = %1088, %1079
  %.pn413.pn.pn = phi { ptr, i32 } [ %.pn413.pn, %1088 ], [ %1080, %1079 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %179) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %178) #7
  br label %1429

.lr.ph542:                                        ; preds = %1077, %1118
  %.078540 = phi i64 [ %1119, %1118 ], [ 0, %1077 ]
  %.283539 = phi i32 [ %.3, %1118 ], [ 0, %1077 ]
  %1090 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %273, i64 noundef %.078540) #7
  %1091 = load i32, ptr %1090, align 4, !tbaa !44
  %.not417 = icmp eq i32 %1091, 0
  br i1 %.not417, label %1118, label %1092

1092:                                             ; preds = %.lr.ph542
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %181) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %182) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %183) #7
  %1093 = add nsw i32 %.283539, 1
  %1094 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %12, i32 noundef 0, i32 noundef %1093)
  store double %1094, ptr %183, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %182, ptr noundef nonnull align 8 dereferenceable(8) %183)
          to label %1095 unwind label %1104

1095:                                             ; preds = %1092
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %184) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %185) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %186) #7
  %1096 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %15, i32 noundef 0, i32 noundef %1093)
  store double %1096, ptr %186, align 8, !tbaa !32
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %185, ptr noundef nonnull align 8 dereferenceable(8) %186)
          to label %1097 unwind label %1106

1097:                                             ; preds = %1095
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %184, ptr noundef nonnull align 8 dereferenceable(17) %1073, ptr noundef nonnull align 8 dereferenceable(17) %185)
          to label %1098 unwind label %1108

1098:                                             ; preds = %1097
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %181, ptr noundef nonnull align 8 dereferenceable(17) %182, ptr noundef nonnull align 8 dereferenceable(17) %184)
          to label %1099 unwind label %1110

1099:                                             ; preds = %1098
  %1100 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9NOMAD_4_313ArrayOfDoubleixEm(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef %.078540)
          to label %1101 unwind label %1112

1101:                                             ; preds = %1099
  %1102 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %1100, ptr noundef nonnull align 8 dereferenceable(17) %181)
          to label %1103 unwind label %1112

1103:                                             ; preds = %1101
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %181) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %184) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %185) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %186) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %185) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %184) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %182) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %183) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %182) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %181) #7
  br label %1118

1104:                                             ; preds = %1092
  %1105 = landingpad { ptr, i32 }
          cleanup
  br label %1117

1106:                                             ; preds = %1095
  %1107 = landingpad { ptr, i32 }
          cleanup
  br label %1116

1108:                                             ; preds = %1097
  %1109 = landingpad { ptr, i32 }
          cleanup
  br label %1115

1110:                                             ; preds = %1098
  %1111 = landingpad { ptr, i32 }
          cleanup
  br label %1114

1112:                                             ; preds = %1101, %1099
  %1113 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %181) #7
  br label %1114

1114:                                             ; preds = %1112, %1110
  %.pn418 = phi { ptr, i32 } [ %1113, %1112 ], [ %1111, %1110 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %184) #7
  br label %1115

1115:                                             ; preds = %1114, %1108
  %.pn418.pn = phi { ptr, i32 } [ %.pn418, %1114 ], [ %1109, %1108 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %185) #7
  br label %1116

1116:                                             ; preds = %1115, %1106
  %.pn418.pn.pn = phi { ptr, i32 } [ %.pn418.pn, %1115 ], [ %1107, %1106 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %186) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %185) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %184) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %182) #7
  br label %1117

1117:                                             ; preds = %1116, %1104
  %.pn418.pn.pn.pn = phi { ptr, i32 } [ %.pn418.pn.pn, %1116 ], [ %1105, %1104 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %183) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %182) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %181) #7
  br label %1429

1118:                                             ; preds = %.lr.ph542, %1103
  %.3 = phi i32 [ %1093, %1103 ], [ %.283539, %.lr.ph542 ]
  %1119 = add nuw i64 %.078540, 1
  %1120 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %273) #7
  %1121 = icmp ult i64 %1119, %1120
  br i1 %1121, label %.lr.ph542, label %.loopexit, !llvm.loop !48

1122:                                             ; preds = %977
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %187) #7
  invoke void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %187, ptr noundef nonnull align 8 dereferenceable(17) %34)
          to label %1123 unwind label %1126

1123:                                             ; preds = %1122
  %1124 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %161, ptr noundef nonnull align 8 dereferenceable(17) %187)
          to label %1125 unwind label %1128

1125:                                             ; preds = %1123
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %187) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %187) #7
  br label %.loopexit

1126:                                             ; preds = %1122
  %1127 = landingpad { ptr, i32 }
          cleanup
  br label %1130

1128:                                             ; preds = %1123
  %1129 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %187) #7
  br label %1130

1130:                                             ; preds = %1128, %1126
  %.pn411 = phi { ptr, i32 } [ %1129, %1128 ], [ %1127, %1126 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %187) #7
  br label %1429

1131:                                             ; preds = %977
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %188) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %189) #7
  invoke void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %189, ptr noundef nonnull align 8 dereferenceable(17) %34)
          to label %1132 unwind label %1138

1132:                                             ; preds = %1131
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %190) #7
  %1133 = getelementptr inbounds i8, ptr %0, i64 160
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %190, ptr noundef nonnull align 8 dereferenceable(17) %1133, ptr noundef nonnull align 8 dereferenceable(17) %28)
          to label %1134 unwind label %1140

1134:                                             ; preds = %1132
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %188, ptr noundef nonnull align 8 dereferenceable(17) %189, ptr noundef nonnull align 8 dereferenceable(17) %190)
          to label %1135 unwind label %1142

1135:                                             ; preds = %1134
  %1136 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %161, ptr noundef nonnull align 8 dereferenceable(17) %188)
          to label %1137 unwind label %1144

1137:                                             ; preds = %1135
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %188) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %190) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %190) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %189) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %189) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %188) #7
  br label %.loopexit

1138:                                             ; preds = %1131
  %1139 = landingpad { ptr, i32 }
          cleanup
  br label %1148

1140:                                             ; preds = %1132
  %1141 = landingpad { ptr, i32 }
          cleanup
  br label %1147

1142:                                             ; preds = %1134
  %1143 = landingpad { ptr, i32 }
          cleanup
  br label %1146

1144:                                             ; preds = %1135
  %1145 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %188) #7
  br label %1146

1146:                                             ; preds = %1144, %1142
  %.pn407 = phi { ptr, i32 } [ %1145, %1144 ], [ %1143, %1142 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %190) #7
  br label %1147

1147:                                             ; preds = %1146, %1140
  %.pn407.pn = phi { ptr, i32 } [ %.pn407, %1146 ], [ %1141, %1140 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %190) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %189) #7
  br label %1148

1148:                                             ; preds = %1147, %1138
  %.pn407.pn.pn = phi { ptr, i32 } [ %.pn407.pn, %1147 ], [ %1139, %1138 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %189) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %188) #7
  br label %1429

1149:                                             ; preds = %977
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %191) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %192) #7
  invoke void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %192, ptr noundef nonnull align 8 dereferenceable(17) %34)
          to label %1150 unwind label %1157

1150:                                             ; preds = %1149
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %193) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %194) #7
  %1151 = getelementptr inbounds i8, ptr %0, i64 160
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %194, ptr noundef nonnull align 8 dereferenceable(17) %1151, ptr noundef nonnull align 8 dereferenceable(17) %28)
          to label %1152 unwind label %1159

1152:                                             ; preds = %1150
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %193, ptr noundef nonnull align 8 dereferenceable(17) %194, ptr noundef nonnull align 8 dereferenceable(17) %38)
          to label %1153 unwind label %1161

1153:                                             ; preds = %1152
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %191, ptr noundef nonnull align 8 dereferenceable(17) %192, ptr noundef nonnull align 8 dereferenceable(17) %193)
          to label %1154 unwind label %1163

1154:                                             ; preds = %1153
  %1155 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %161, ptr noundef nonnull align 8 dereferenceable(17) %191)
          to label %1156 unwind label %1165

1156:                                             ; preds = %1154
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %191) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %193) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %194) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %194) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %193) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %192) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %192) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %191) #7
  br label %.loopexit

1157:                                             ; preds = %1149
  %1158 = landingpad { ptr, i32 }
          cleanup
  br label %1170

1159:                                             ; preds = %1150
  %1160 = landingpad { ptr, i32 }
          cleanup
  br label %1169

1161:                                             ; preds = %1152
  %1162 = landingpad { ptr, i32 }
          cleanup
  br label %1168

1163:                                             ; preds = %1153
  %1164 = landingpad { ptr, i32 }
          cleanup
  br label %1167

1165:                                             ; preds = %1154
  %1166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %191) #7
  br label %1167

1167:                                             ; preds = %1165, %1163
  %.pn402 = phi { ptr, i32 } [ %1166, %1165 ], [ %1164, %1163 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %193) #7
  br label %1168

1168:                                             ; preds = %1167, %1161
  %.pn402.pn = phi { ptr, i32 } [ %.pn402, %1167 ], [ %1162, %1161 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %194) #7
  br label %1169

1169:                                             ; preds = %1168, %1159
  %.pn402.pn.pn = phi { ptr, i32 } [ %.pn402.pn, %1168 ], [ %1160, %1159 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %194) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %193) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %192) #7
  br label %1170

1170:                                             ; preds = %1169, %1157
  %.pn402.pn.pn.pn = phi { ptr, i32 } [ %.pn402.pn.pn, %1169 ], [ %1158, %1157 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %192) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %191) #7
  br label %1429

1171:                                             ; preds = %977
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %195) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %196) #7
  invoke void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %196, ptr noundef nonnull align 8 dereferenceable(17) %34)
          to label %1172 unwind label %1181

1172:                                             ; preds = %1171
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %197) #7
  %1173 = getelementptr inbounds i8, ptr %0, i64 160
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %198) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %199) #7
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %199, ptr noundef nonnull align 8 dereferenceable(17) %32, ptr noundef nonnull align 8 dereferenceable(17) %38)
          to label %1174 unwind label %1183

1174:                                             ; preds = %1172
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %200) #7
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %200, ptr noundef nonnull align 8 dereferenceable(17) %24, ptr noundef nonnull align 8 dereferenceable(17) %28)
          to label %1175 unwind label %1185

1175:                                             ; preds = %1174
  invoke void @_ZN9NOMAD_4_3plERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %198, ptr noundef nonnull align 8 dereferenceable(17) %199, ptr noundef nonnull align 8 dereferenceable(17) %200)
          to label %1176 unwind label %1187

1176:                                             ; preds = %1175
  invoke void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %197, ptr noundef nonnull align 8 dereferenceable(17) %1173, ptr noundef nonnull align 8 dereferenceable(17) %198)
          to label %1177 unwind label %1189

1177:                                             ; preds = %1176
  invoke void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %195, ptr noundef nonnull align 8 dereferenceable(17) %196, ptr noundef nonnull align 8 dereferenceable(17) %197)
          to label %1178 unwind label %1191

1178:                                             ; preds = %1177
  %1179 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %161, ptr noundef nonnull align 8 dereferenceable(17) %195)
          to label %1180 unwind label %1193

1180:                                             ; preds = %1178
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %195) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %197) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %198) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %200) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %200) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %199) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %199) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %198) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %197) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %196) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %196) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %195) #7
  br label %.loopexit

1181:                                             ; preds = %1171
  %1182 = landingpad { ptr, i32 }
          cleanup
  br label %1200

1183:                                             ; preds = %1172
  %1184 = landingpad { ptr, i32 }
          cleanup
  br label %1199

1185:                                             ; preds = %1174
  %1186 = landingpad { ptr, i32 }
          cleanup
  br label %1198

1187:                                             ; preds = %1175
  %1188 = landingpad { ptr, i32 }
          cleanup
  br label %1197

1189:                                             ; preds = %1176
  %1190 = landingpad { ptr, i32 }
          cleanup
  br label %1196

1191:                                             ; preds = %1177
  %1192 = landingpad { ptr, i32 }
          cleanup
  br label %1195

1193:                                             ; preds = %1178
  %1194 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %195) #7
  br label %1195

1195:                                             ; preds = %1193, %1191
  %.pn395 = phi { ptr, i32 } [ %1194, %1193 ], [ %1192, %1191 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %197) #7
  br label %1196

1196:                                             ; preds = %1195, %1189
  %.pn395.pn = phi { ptr, i32 } [ %.pn395, %1195 ], [ %1190, %1189 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %198) #7
  br label %1197

1197:                                             ; preds = %1196, %1187
  %.pn395.pn.pn = phi { ptr, i32 } [ %.pn395.pn, %1196 ], [ %1188, %1187 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %200) #7
  br label %1198

1198:                                             ; preds = %1197, %1185
  %.pn395.pn.pn.pn = phi { ptr, i32 } [ %.pn395.pn.pn, %1197 ], [ %1186, %1185 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %200) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %199) #7
  br label %1199

1199:                                             ; preds = %1198, %1183
  %.pn395.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn395.pn.pn.pn, %1198 ], [ %1184, %1183 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %199) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %198) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %197) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %196) #7
  br label %1200

1200:                                             ; preds = %1199, %1181
  %.pn395.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn395.pn.pn.pn.pn, %1199 ], [ %1182, %1181 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %196) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %195) #7
  br label %1429

1201:                                             ; preds = %977
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %201) #7
  invoke void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %201, ptr noundef nonnull align 8 dereferenceable(17) %36)
          to label %1202 unwind label %1205

1202:                                             ; preds = %1201
  %1203 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %161, ptr noundef nonnull align 8 dereferenceable(17) %201)
          to label %1204 unwind label %1207

1204:                                             ; preds = %1202
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %201) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %201) #7
  br label %.loopexit

1205:                                             ; preds = %1201
  %1206 = landingpad { ptr, i32 }
          cleanup
  br label %1209

1207:                                             ; preds = %1202
  %1208 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %201) #7
  br label %1209

1209:                                             ; preds = %1207, %1205
  %.pn393 = phi { ptr, i32 } [ %1208, %1207 ], [ %1206, %1205 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %201) #7
  br label %1429

1210:                                             ; preds = %977
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %202) #7
  invoke void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::Double") align 8 %202, ptr noundef nonnull align 8 dereferenceable(17) %42)
          to label %1211 unwind label %1214

1211:                                             ; preds = %1210
  %1212 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %161, ptr noundef nonnull align 8 dereferenceable(17) %202)
          to label %1213 unwind label %1216

1213:                                             ; preds = %1211
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %202) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %202) #7
  br label %.loopexit

1214:                                             ; preds = %1210
  %1215 = landingpad { ptr, i32 }
          cleanup
  br label %1218

1216:                                             ; preds = %1211
  %1217 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %202) #7
  br label %1218

1218:                                             ; preds = %1216, %1214
  %.pn391 = phi { ptr, i32 } [ %1217, %1216 ], [ %1215, %1214 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %202) #7
  br label %1429

1219:                                             ; preds = %977
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %203) #7
  store i32 7, ptr %203, align 4, !tbaa !5
  %1220 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %203)
          to label %1221 unwind label %1226

1221:                                             ; preds = %1219
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %203) #7
  br i1 %1220, label %1222, label %.loopexit

1222:                                             ; preds = %1221
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %204) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %205) #7
  invoke void @_ZN9NOMAD_4_335SgtelibModelFormulationTypeToStringB5cxx11ERKNS_27SgtelibModelFormulationTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %205, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %1223 unwind label %1228

1223:                                             ; preds = %1222
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %204, ptr noundef nonnull @.str.45, ptr noundef nonnull align 8 dereferenceable(32) %205)
          to label %1224 unwind label %1230

1224:                                             ; preds = %1223
  %1225 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %204) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %204) #7
  br label %.invoke570

1226:                                             ; preds = %1219
  %1227 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %203) #7
  br label %1429

1228:                                             ; preds = %1222
  %1229 = landingpad { ptr, i32 }
          cleanup
  br label %1232

1230:                                             ; preds = %1223
  %1231 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #7
  br label %1232

1232:                                             ; preds = %1230, %1228
  %.pn389 = phi { ptr, i32 } [ %1231, %1230 ], [ %1229, %1228 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %204) #7
  br label %1429

1233:                                             ; preds = %.invoke570, %1419, %1387, %1380, %1327, %1322, %1317, %1312, %1307, %1302, %1296, %1261
  %1234 = landingpad { ptr, i32 }
          cleanup
  br label %1429

1235:                                             ; preds = %977
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %206) #7
  store i32 7, ptr %206, align 4, !tbaa !5
  %1236 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %206)
          to label %1237 unwind label %1244

1237:                                             ; preds = %1235
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %206) #7
  br i1 %1236, label %1238, label %.loopexit

1238:                                             ; preds = %1237
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %207) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %208) #7
  invoke void @_ZN9NOMAD_4_335SgtelibModelFormulationTypeToStringB5cxx11ERKNS_27SgtelibModelFormulationTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %208, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %1239 unwind label %1246

1239:                                             ; preds = %1238
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %207, ptr noundef nonnull @.str.45, ptr noundef nonnull align 8 dereferenceable(32) %208)
          to label %1240 unwind label %1248

1240:                                             ; preds = %1239
  %1241 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %207) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %208) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %207) #7
  br label %.invoke570

.invoke570:                                       ; preds = %1224, %1240
  %1242 = getelementptr inbounds i8, ptr %0, i64 200
  %1243 = load i32, ptr %1242, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %1243)
          to label %.loopexit unwind label %1233

1244:                                             ; preds = %1235
  %1245 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %206) #7
  br label %1429

1246:                                             ; preds = %1238
  %1247 = landingpad { ptr, i32 }
          cleanup
  br label %1250

1248:                                             ; preds = %1239
  %1249 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #7
  br label %1250

1250:                                             ; preds = %1248, %1246
  %.pn439 = phi { ptr, i32 } [ %1249, %1248 ], [ %1247, %1246 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %208) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %207) #7
  br label %1429

.loopexit:                                        ; preds = %1118, %1067, %1031, %.invoke570, %1077, %1040, %993, %1237, %1221, %1213, %1204, %1180, %1156, %1137, %1125
  %1251 = getelementptr inbounds i8, ptr %0, i64 192
  %1252 = load double, ptr %1251, align 8, !tbaa !49
  %1253 = fcmp ogt double %1252, 0.000000e+00
  br i1 %1253, label %1254, label %1268

1254:                                             ; preds = %.loopexit
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %209) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %210) #7
  %1255 = load ptr, ptr %303, align 8, !tbaa !33
  call void @_ZNK9NOMAD_4_312SgtelibModel8getModelEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.72") align 8 %210, ptr noundef nonnull align 8 dereferenceable(552) %1255)
  %1256 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %210) #7
  %1257 = load double, ptr %1251, align 8, !tbaa !49
  invoke void @_ZNK7SGTELIB9Surrogate26get_exclusion_area_penaltyERKNS_6MatrixEd(ptr dead_on_unwind nonnull writable sret(%"class.SGTELIB::Matrix") align 8 %209, ptr noundef nonnull align 8 dereferenceable(985) %1256, ptr noundef nonnull align 8 dereferenceable(56) %46, double noundef %1257)
          to label %1258 unwind label %1263

1258:                                             ; preds = %1254
  %1259 = call noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56) %209, i32 noundef 0, i32 noundef 0)
  %1260 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17) %40, double noundef %1259)
          to label %1261 unwind label %1265

1261:                                             ; preds = %1258
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %209) #7
  call void @_ZNSt12__shared_ptrIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %210) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %210) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %209) #7
  %1262 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoublepLERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %161, ptr noundef nonnull align 8 dereferenceable(17) %40)
          to label %1268 unwind label %1233

1263:                                             ; preds = %1254
  %1264 = landingpad { ptr, i32 }
          cleanup
  br label %1267

1265:                                             ; preds = %1258
  %1266 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %209) #7
  br label %1267

1267:                                             ; preds = %1265, %1263
  %.pn441 = phi { ptr, i32 } [ %1266, %1265 ], [ %1264, %1263 ]
  call void @_ZNSt12__shared_ptrIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %210) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %210) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %209) #7
  br label %1429

1268:                                             ; preds = %1261, %.loopexit
  %1269 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %273) #7
  %.not558 = icmp eq i64 %1269, 0
  br i1 %.not558, label %._crit_edge553, label %.lr.ph552

._crit_edge553:                                   ; preds = %1279, %1268
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %211) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %212) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %213) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %213)
          to label %1283 unwind label %1330

.lr.ph552:                                        ; preds = %1268, %1279
  %.077550 = phi i64 [ %1280, %1279 ], [ 0, %1268 ]
  %1270 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %273, i64 noundef %.077550) #7
  %1271 = load i32, ptr %1270, align 4, !tbaa !44
  %1272 = icmp eq i32 %1271, 0
  br i1 %1272, label %1273, label %1279

1273:                                             ; preds = %.lr.ph552
  %1274 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9NOMAD_4_313ArrayOfDoubleixEm(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef %.077550)
          to label %1275 unwind label %1277

1275:                                             ; preds = %1273
  %1276 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17) %1274, ptr noundef nonnull align 8 dereferenceable(17) %161)
          to label %1279 unwind label %1277

1277:                                             ; preds = %1275, %1273
  %1278 = landingpad { ptr, i32 }
          cleanup
  br label %1429

1279:                                             ; preds = %.lr.ph552, %1275
  %1280 = add nuw i64 %.077550, 1
  %1281 = call noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %273) #7
  %1282 = icmp ult i64 %1280, %1281
  br i1 %1282, label %.lr.ph552, label %._crit_edge553, !llvm.loop !50

1283:                                             ; preds = %._crit_edge553
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %212, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %213)
          to label %1284 unwind label %1332

1284:                                             ; preds = %1283
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %214) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #7
  invoke void @_ZNK9NOMAD_4_313ArrayOfDouble7displayERKS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %211, ptr noundef nonnull align 8 dereferenceable(24) %162, ptr noundef nonnull align 8 dereferenceable(24) %212, ptr noundef nonnull align 8 dereferenceable(32) %214)
          to label %1285 unwind label %1334

1285:                                             ; preds = %1284
  invoke void @_ZN9NOMAD_4_39EvalPoint6setBBOERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorINS_12BBOutputTypeESaISA_EENS_8EvalTypeEb(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %211, ptr noundef nonnull align 8 dereferenceable(24) %273, i32 noundef 1, i1 noundef zeroext true)
          to label %1286 unwind label %1336

1286:                                             ; preds = %1285
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %214) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %212) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %213) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %213) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %212) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %211) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %215) #7
  store i32 7, ptr %215, align 4, !tbaa !5
  %1287 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %215)
          to label %1288 unwind label %1341

1288:                                             ; preds = %1286
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %215) #7
  br i1 %1287, label %1289, label %1403

1289:                                             ; preds = %1288
  br i1 %.096, label %1290, label %1378

1290:                                             ; preds = %1289
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %216) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %217) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %218) #7
  %1291 = load ptr, ptr %303, align 8, !tbaa !33
  call void @_ZNK9NOMAD_4_312SgtelibModel14getTrainingSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.69") align 8 %218, ptr noundef nonnull align 8 dereferenceable(552) %1291)
  %1292 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %218) #7
  %1293 = invoke noundef double @_ZNK7SGTELIB11TrainingSet9get_f_minEv(ptr noundef nonnull align 8 dereferenceable(504) %1292)
          to label %1294 unwind label %1343

1294:                                             ; preds = %1290
  invoke void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %217, double noundef %1293)
          to label %1295 unwind label %1343

1295:                                             ; preds = %1294
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %216, ptr noundef nonnull @.str.46, ptr noundef nonnull align 8 dereferenceable(32) %217)
          to label %1296 unwind label %1345

1296:                                             ; preds = %1295
  %1297 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %216) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #7
  call void @_ZNSt12__shared_ptrIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %218) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %218) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %217) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #7
  %1298 = getelementptr inbounds i8, ptr %0, i64 200
  %1299 = load i32, ptr %1298, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %1299)
          to label %1300 unwind label %1233

1300:                                             ; preds = %1296
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %219) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %220) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %220, ptr noundef nonnull align 8 dereferenceable(17) %24, i32 noundef 6, i64 noundef 0)
          to label %1301 unwind label %1348

1301:                                             ; preds = %1300
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %219, ptr noundef nonnull @.str.47, ptr noundef nonnull align 8 dereferenceable(32) %220)
          to label %1302 unwind label %1350

1302:                                             ; preds = %1301
  %1303 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %219) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %220) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %219) #7
  %1304 = load i32, ptr %1298, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %1304)
          to label %1305 unwind label %1233

1305:                                             ; preds = %1302
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %221) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %222) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %222, ptr noundef nonnull align 8 dereferenceable(17) %38, i32 noundef 6, i64 noundef 0)
          to label %1306 unwind label %1353

1306:                                             ; preds = %1305
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %221, ptr noundef nonnull @.str.48, ptr noundef nonnull align 8 dereferenceable(32) %222)
          to label %1307 unwind label %1355

1307:                                             ; preds = %1306
  %1308 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %221) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %222) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %221) #7
  %1309 = load i32, ptr %1298, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %1309)
          to label %1310 unwind label %1233

1310:                                             ; preds = %1307
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %223) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %224) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %224, ptr noundef nonnull align 8 dereferenceable(17) %30, i32 noundef 6, i64 noundef 0)
          to label %1311 unwind label %1358

1311:                                             ; preds = %1310
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %223, ptr noundef nonnull @.str.49, ptr noundef nonnull align 8 dereferenceable(32) %224)
          to label %1312 unwind label %1360

1312:                                             ; preds = %1311
  %1313 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %223) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %224) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %223) #7
  %1314 = load i32, ptr %1298, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %1314)
          to label %1315 unwind label %1233

1315:                                             ; preds = %1312
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %225) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %226) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %226, ptr noundef nonnull align 8 dereferenceable(17) %32, i32 noundef 6, i64 noundef 0)
          to label %1316 unwind label %1363

1316:                                             ; preds = %1315
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %225, ptr noundef nonnull @.str.50, ptr noundef nonnull align 8 dereferenceable(32) %226)
          to label %1317 unwind label %1365

1317:                                             ; preds = %1316
  %1318 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %225) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %226) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %225) #7
  %1319 = load i32, ptr %1298, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %1319)
          to label %1320 unwind label %1233

1320:                                             ; preds = %1317
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %227) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %228) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %228, ptr noundef nonnull align 8 dereferenceable(17) %36, i32 noundef 6, i64 noundef 0)
          to label %1321 unwind label %1368

1321:                                             ; preds = %1320
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %227, ptr noundef nonnull @.str.51, ptr noundef nonnull align 8 dereferenceable(32) %228)
          to label %1322 unwind label %1370

1322:                                             ; preds = %1321
  %1323 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %227) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %228) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #7
  %1324 = load i32, ptr %1298, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %1324)
          to label %1325 unwind label %1233

1325:                                             ; preds = %1322
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %229) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %230) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %230, ptr noundef nonnull align 8 dereferenceable(17) %34, i32 noundef 6, i64 noundef 0)
          to label %1326 unwind label %1373

1326:                                             ; preds = %1325
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %229, ptr noundef nonnull @.str.52, ptr noundef nonnull align 8 dereferenceable(32) %230)
          to label %1327 unwind label %1375

1327:                                             ; preds = %1326
  %1328 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %230) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %229) #7
  %1329 = load i32, ptr %1298, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %1329)
          to label %1378 unwind label %1233

1330:                                             ; preds = %._crit_edge553
  %1331 = landingpad { ptr, i32 }
          cleanup
  br label %1340

1332:                                             ; preds = %1283
  %1333 = landingpad { ptr, i32 }
          cleanup
  br label %1339

1334:                                             ; preds = %1284
  %1335 = landingpad { ptr, i32 }
          cleanup
  br label %1338

1336:                                             ; preds = %1285
  %1337 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #7
  br label %1338

1338:                                             ; preds = %1336, %1334
  %.pn443 = phi { ptr, i32 } [ %1337, %1336 ], [ %1335, %1334 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %214) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %212) #7
  br label %1339

1339:                                             ; preds = %1338, %1332
  %.pn443.pn = phi { ptr, i32 } [ %.pn443, %1338 ], [ %1333, %1332 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %213) #7
  br label %1340

1340:                                             ; preds = %1339, %1330
  %.pn443.pn.pn = phi { ptr, i32 } [ %.pn443.pn, %1339 ], [ %1331, %1330 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %213) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %212) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %211) #7
  br label %1429

1341:                                             ; preds = %1286
  %1342 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %215) #7
  br label %1429

1343:                                             ; preds = %1294, %1290
  %1344 = landingpad { ptr, i32 }
          cleanup
  br label %1347

1345:                                             ; preds = %1295
  %1346 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #7
  br label %1347

1347:                                             ; preds = %1345, %1343
  %.pn447 = phi { ptr, i32 } [ %1346, %1345 ], [ %1344, %1343 ]
  call void @_ZNSt12__shared_ptrIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %218) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %218) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %217) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #7
  br label %1429

1348:                                             ; preds = %1300
  %1349 = landingpad { ptr, i32 }
          cleanup
  br label %1352

1350:                                             ; preds = %1301
  %1351 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #7
  br label %1352

1352:                                             ; preds = %1350, %1348
  %.pn449 = phi { ptr, i32 } [ %1351, %1350 ], [ %1349, %1348 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %220) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %219) #7
  br label %1429

1353:                                             ; preds = %1305
  %1354 = landingpad { ptr, i32 }
          cleanup
  br label %1357

1355:                                             ; preds = %1306
  %1356 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #7
  br label %1357

1357:                                             ; preds = %1355, %1353
  %.pn451 = phi { ptr, i32 } [ %1356, %1355 ], [ %1354, %1353 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %222) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %221) #7
  br label %1429

1358:                                             ; preds = %1310
  %1359 = landingpad { ptr, i32 }
          cleanup
  br label %1362

1360:                                             ; preds = %1311
  %1361 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #7
  br label %1362

1362:                                             ; preds = %1360, %1358
  %.pn453 = phi { ptr, i32 } [ %1361, %1360 ], [ %1359, %1358 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %224) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %223) #7
  br label %1429

1363:                                             ; preds = %1315
  %1364 = landingpad { ptr, i32 }
          cleanup
  br label %1367

1365:                                             ; preds = %1316
  %1366 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #7
  br label %1367

1367:                                             ; preds = %1365, %1363
  %.pn455 = phi { ptr, i32 } [ %1366, %1365 ], [ %1364, %1363 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %226) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %225) #7
  br label %1429

1368:                                             ; preds = %1320
  %1369 = landingpad { ptr, i32 }
          cleanup
  br label %1372

1370:                                             ; preds = %1321
  %1371 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #7
  br label %1372

1372:                                             ; preds = %1370, %1368
  %.pn457 = phi { ptr, i32 } [ %1371, %1370 ], [ %1369, %1368 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %228) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #7
  br label %1429

1373:                                             ; preds = %1325
  %1374 = landingpad { ptr, i32 }
          cleanup
  br label %1377

1375:                                             ; preds = %1326
  %1376 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #7
  br label %1377

1377:                                             ; preds = %1375, %1373
  %.pn459 = phi { ptr, i32 } [ %1376, %1375 ], [ %1374, %1373 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %230) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %229) #7
  br label %1429

1378:                                             ; preds = %1327, %1289
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %231) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %232) #7
  invoke void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %232, ptr noundef nonnull align 8 dereferenceable(17) %40, i32 noundef 6, i64 noundef 0)
          to label %1379 unwind label %1390

1379:                                             ; preds = %1378
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %231, ptr noundef nonnull @.str.53, ptr noundef nonnull align 8 dereferenceable(32) %232)
          to label %1380 unwind label %1392

1380:                                             ; preds = %1379
  %1381 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %231) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %232) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %231) #7
  %1382 = getelementptr inbounds i8, ptr %0, i64 200
  %1383 = load i32, ptr %1382, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %1383)
          to label %1384 unwind label %1233

1384:                                             ; preds = %1380
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %233) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %234) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %235) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint6getBBOB5cxx11ENS_8EvalTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %235, ptr noundef nonnull align 8 dereferenceable(160) %1, i32 noundef 1)
          to label %1385 unwind label %1395

1385:                                             ; preds = %1384
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %234, ptr noundef nonnull @.str.54, ptr noundef nonnull align 8 dereferenceable(32) %235)
          to label %1386 unwind label %1397

1386:                                             ; preds = %1385
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %233, ptr noundef nonnull align 8 dereferenceable(32) %234, ptr noundef nonnull @.str.32)
          to label %1387 unwind label %1399

1387:                                             ; preds = %1386
  %1388 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %233) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %235) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %234) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %233) #7
  %1389 = load i32, ptr %1382, align 8, !tbaa !9
  invoke void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef %1389)
          to label %1403 unwind label %1233

1390:                                             ; preds = %1378
  %1391 = landingpad { ptr, i32 }
          cleanup
  br label %1394

1392:                                             ; preds = %1379
  %1393 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #7
  br label %1394

1394:                                             ; preds = %1392, %1390
  %.pn461 = phi { ptr, i32 } [ %1393, %1392 ], [ %1391, %1390 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %232) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %231) #7
  br label %1429

1395:                                             ; preds = %1384
  %1396 = landingpad { ptr, i32 }
          cleanup
  br label %1402

1397:                                             ; preds = %1385
  %1398 = landingpad { ptr, i32 }
          cleanup
  br label %1401

1399:                                             ; preds = %1386
  %1400 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #7
  br label %1401

1401:                                             ; preds = %1399, %1397
  %.pn463 = phi { ptr, i32 } [ %1400, %1399 ], [ %1398, %1397 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #7
  br label %1402

1402:                                             ; preds = %1401, %1395
  %.pn463.pn = phi { ptr, i32 } [ %.pn463, %1401 ], [ %1396, %1395 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %235) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %234) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %233) #7
  br label %1429

1403:                                             ; preds = %1387, %1288
  %1404 = call noundef zeroext i1 @_ZNK9NOMAD_4_36Double9isDefinedEv(ptr noundef nonnull align 8 dereferenceable(17) %24)
  br i1 %1404, label %1405, label %1407

1405:                                             ; preds = %1403
  %1406 = call noundef zeroext i1 @_ZNK9NOMAD_4_36Double9isDefinedEv(ptr noundef nonnull align 8 dereferenceable(17) %30)
  br i1 %1406, label %1419, label %1407

1407:                                             ; preds = %1405, %1403
  %1408 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %236) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %237) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %237) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %236, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %237)
          to label %1409 unwind label %.thread521

1409:                                             ; preds = %1407
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %238) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %239) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %238, ptr noundef nonnull @.str.55, ptr noundef nonnull align 1 dereferenceable(1) %239)
          to label %1410 unwind label %1413

1410:                                             ; preds = %1409
  invoke void @_ZN7SGTELIB9ExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiS8_(ptr noundef nonnull align 8 dereferenceable(112) %1408, ptr noundef nonnull align 8 dereferenceable(32) %236, i32 noundef 493, ptr noundef nonnull align 8 dereferenceable(32) %238)
          to label %1411 unwind label %1415

1411:                                             ; preds = %1410
  invoke void @__cxa_throw(ptr nonnull %1408, ptr nonnull @_ZTIN7SGTELIB9ExceptionE, ptr nonnull @_ZN7SGTELIB9ExceptionD2Ev) #8
          to label %1451 unwind label %1415

.thread521:                                       ; preds = %1407
  %1412 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %237) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %237) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %236) #7
  br label %1418

1413:                                             ; preds = %1409
  %1414 = landingpad { ptr, i32 }
          cleanup
  br label %1417

1415:                                             ; preds = %1411, %1410
  %.0 = phi i1 [ false, %1411 ], [ true, %1410 ]
  %1416 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #7
  br label %1417

1417:                                             ; preds = %1413, %1415
  %.pn466 = phi { ptr, i32 } [ %1416, %1415 ], [ %1414, %1413 ]
  %.1 = phi i1 [ %.0, %1415 ], [ true, %1413 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %239) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %238) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %237) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %237) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %236) #7
  br i1 %.1, label %1418, label %1429

1418:                                             ; preds = %.thread521, %1417
  %.pn466.pn524 = phi { ptr, i32 } [ %1412, %.thread521 ], [ %.pn466, %1417 ]
  call void @__cxa_free_exception(ptr %1408) #7
  br label %1429

1419:                                             ; preds = %1405
  store i8 1, ptr %3, align 1, !tbaa !51
  invoke void @_ZN9NOMAD_4_39EvalPoint13setEvalStatusENS_14EvalStatusTypeENS_8EvalTypeE(ptr noundef nonnull align 8 dereferenceable(160) %1, i32 noundef 4, i32 noundef 1)
          to label %1420 unwind label %1233

1420:                                             ; preds = %1419
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %240) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint27makeFullSpacePointFromFixedERKNS_5PointE(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::EvalPoint") align 8 %240, ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(24) %241)
          to label %1421 unwind label %1424

1421:                                             ; preds = %1420
  %1422 = invoke noundef nonnull align 8 dereferenceable(160) ptr @_ZN9NOMAD_4_39EvalPointaSERKS0_(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(160) %240)
          to label %1423 unwind label %1426

1423:                                             ; preds = %1421
  call void @_ZN9NOMAD_4_39EvalPointD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %240) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %240) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %162) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %162) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %161) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %161) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %46) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %46) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %44) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %42) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %42) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %40) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %38) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %36) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %34) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %32) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %30) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %28) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %24) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %21) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %21) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %18) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %18) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %15) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %15) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %12) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %12) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  ret i1 true

1424:                                             ; preds = %1420
  %1425 = landingpad { ptr, i32 }
          cleanup
  br label %1428

1426:                                             ; preds = %1421
  %1427 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_39EvalPointD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %240) #7
  br label %1428

1428:                                             ; preds = %1426, %1424
  %.pn469 = phi { ptr, i32 } [ %1427, %1426 ], [ %1425, %1424 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %240) #7
  br label %1429

1429:                                             ; preds = %1417, %1418, %1428, %1402, %1394, %1377, %1372, %1367, %1362, %1357, %1352, %1347, %1341, %1340, %1277, %1267, %1250, %1244, %1233, %1232, %1226, %1218, %1209, %1200, %1170, %1148, %1130, %1117, %1089, %1066, %1049, %1030, %1002
  %.pn471 = phi { ptr, i32 } [ %1278, %1277 ], [ %.pn469, %1428 ], [ %1234, %1233 ], [ %.pn466.pn524, %1418 ], [ %.pn466, %1417 ], [ %.pn463.pn, %1402 ], [ %.pn461, %1394 ], [ %.pn459, %1377 ], [ %.pn457, %1372 ], [ %.pn455, %1367 ], [ %.pn453, %1362 ], [ %.pn451, %1357 ], [ %.pn449, %1352 ], [ %.pn447, %1347 ], [ %1342, %1341 ], [ %.pn443.pn.pn, %1340 ], [ %.pn441, %1267 ], [ %.pn439, %1250 ], [ %1245, %1244 ], [ %.pn389, %1232 ], [ %1227, %1226 ], [ %.pn391, %1218 ], [ %.pn393, %1209 ], [ %.pn395.pn.pn.pn.pn.pn, %1200 ], [ %.pn402.pn.pn.pn, %1170 ], [ %.pn407.pn.pn, %1148 ], [ %.pn411, %1130 ], [ %.pn418.pn.pn.pn, %1117 ], [ %.pn413.pn.pn, %1089 ], [ %.pn427.pn, %1066 ], [ %.pn423.pn, %1049 ], [ %.pn434.pn.pn.pn, %1030 ], [ %.pn430.pn, %1002 ]
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %162) #7
  br label %1430

1430:                                             ; preds = %1429, %987
  %.pn471.pn = phi { ptr, i32 } [ %.pn471, %1429 ], [ %.pn387, %987 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %162) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %161) #7
  br label %1431

1431:                                             ; preds = %1430, %981
  %.pn471.pn.pn = phi { ptr, i32 } [ %.pn471.pn, %1430 ], [ %982, %981 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %161) #7
  br label %1432

1432:                                             ; preds = %1431, %980, %369, %359
  %.pn490 = phi { ptr, i32 } [ %370, %369 ], [ %.pn485.pn.pn.pn, %980 ], [ %.pn471.pn.pn, %1431 ], [ %360, %359 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %46) #7
  br label %1433

1433:                                             ; preds = %1432, %358
  %.pn490.pn = phi { ptr, i32 } [ %.pn490, %1432 ], [ %.pn281, %358 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %46) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %44) #7
  br label %1434

1434:                                             ; preds = %1433, %352
  %.pn490.pn.pn = phi { ptr, i32 } [ %.pn490.pn, %1433 ], [ %353, %352 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %42) #7
  br label %1435

1435:                                             ; preds = %1434, %350
  %.pn490.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn, %1434 ], [ %351, %350 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %42) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %40) #7
  br label %1436

1436:                                             ; preds = %1435, %348
  %.pn490.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn.pn, %1435 ], [ %349, %348 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %38) #7
  br label %1437

1437:                                             ; preds = %1436, %346
  %.pn490.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn.pn.pn, %1436 ], [ %347, %346 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %36) #7
  br label %1438

1438:                                             ; preds = %1437, %344
  %.pn490.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn.pn.pn.pn, %1437 ], [ %345, %344 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %34) #7
  br label %1439

1439:                                             ; preds = %1438, %342
  %.pn490.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn.pn.pn.pn.pn, %1438 ], [ %343, %342 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %32) #7
  br label %1440

1440:                                             ; preds = %1439, %340
  %.pn490.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn.pn.pn.pn.pn.pn, %1439 ], [ %341, %340 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %30) #7
  br label %1441

1441:                                             ; preds = %1440, %338
  %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn.pn.pn.pn.pn.pn.pn, %1440 ], [ %339, %338 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %28) #7
  br label %1442

1442:                                             ; preds = %1441, %336
  %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1441 ], [ %337, %336 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %26) #7
  br label %1443

1443:                                             ; preds = %1442, %334
  %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1442 ], [ %335, %334 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %24) #7
  br label %1444

1444:                                             ; preds = %1443, %332
  %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1443 ], [ %333, %332 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %21) #7
  br label %1445

1445:                                             ; preds = %1444, %331
  %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1444 ], [ %.pn279, %331 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %21) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %18) #7
  br label %1446

1446:                                             ; preds = %1445, %326
  %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1445 ], [ %.pn277, %326 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %18) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %15) #7
  br label %1447

1447:                                             ; preds = %1446, %321
  %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1446 ], [ %.pn275, %321 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %15) #7
  call void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %12) #7
  br label %1448

1448:                                             ; preds = %1447, %316
  %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1447 ], [ %.pn273, %316 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %12) #7
  br label %1449

1449:                                             ; preds = %308, %1448, %310, %269, %268, %256
  %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %270, %269 ], [ %.pn.pn.pn, %268 ], [ %257, %256 ], [ %309, %308 ], [ %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1448 ], [ %311, %310 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  br label %1450

1450:                                             ; preds = %1449, %254
  %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1449 ], [ %255, %254 ]
  resume { ptr, i32 } %.pn490.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn

1451:                                             ; preds = %1411, %488, %403
  unreachable
}

declare void @_ZNK9NOMAD_4_39EvalPoint26makeSubSpacePointFromFixedERKNS_5PointE(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::EvalPoint") align 8, ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(160) ptr @_ZN9NOMAD_4_39EvalPointaSERKS0_(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(160)) local_unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZN9NOMAD_4_39EvalPointD1Ev(ptr noundef nonnull align 8 dereferenceable(160)) unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

declare void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4

declare void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #4

declare void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: nounwind
declare void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN9NOMAD_4_311OutputQueue3AddERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK9NOMAD_4_313ArrayOfDouble4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

declare noundef i64 @_ZN9NOMAD_4_316getNbConstraintsERKSt6vectorINS_12BBOutputTypeESaIS1_EE(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

declare noundef i64 @_ZN9NOMAD_4_312SgtelibModel11getNbModelsENS_27SgtelibModelFeasibilityTypeEm(i32 noundef, i64 noundef) local_unnamed_addr #4

declare void @_ZN7SGTELIB6MatrixC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef) unnamed_addr #4

declare void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

declare noundef i32 @_ZNK9NOMAD_4_312SgtelibModel14getFormulationEv(ptr noundef nonnull align 8 dereferenceable(552)) local_unnamed_addr #4

declare void @_ZN7SGTELIB6Matrix3setEiid(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef, double noundef) local_unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9NOMAD_4_313ArrayOfDoubleixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9NOMAD_4_36Double8todoubleEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

declare void @_ZN9NOMAD_4_313ArrayOfStringC1EmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4

declare void @_ZN9NOMAD_4_39EvalPoint6setBBOERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorINS_12BBOutputTypeESaISA_EENS_8EvalTypeEb(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i1 noundef zeroext) local_unnamed_addr #4

declare void @_ZNK9NOMAD_4_313ArrayOfString7displayB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN9NOMAD_4_3neERKNS_6DoubleES2_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #5

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7SGTELIB9ExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiS8_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7SGTELIB9ExceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #1 align 2

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

declare void @__cxa_free_exception(ptr) local_unnamed_addr

declare void @_ZN9NOMAD_4_335SgtelibModelFormulationTypeToStringB5cxx11ERKNS_27SgtelibModelFormulationTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4

declare void @_ZN9NOMAD_4_312boolToStringB5cxx11Eb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, i1 noundef zeroext) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9NOMAD_4_312SgtelibModel16getFoundFeasibleEv(ptr noundef nonnull align 8 dereferenceable(552)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK9NOMAD_4_312SgtelibModel14getTrainingSetEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.69") align 8, ptr noundef nonnull align 8 dereferenceable(552)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #1 align 2

declare void @_ZNK7SGTELIB11TrainingSet23get_distance_to_closestERKNS_6MatrixE(ptr dead_on_unwind writable sret(%"class.SGTELIB::Matrix") align 8, ptr noundef nonnull align 8 dereferenceable(504), ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK7SGTELIB6Matrix3getEii(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef) local_unnamed_addr #6 align 2

declare noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSEd(ptr noundef nonnull align 8 dereferenceable(17), double noundef) local_unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZN7SGTELIB6MatrixD1Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt12__shared_ptrIN7SGTELIB11TrainingSetELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

declare void @_ZNK9NOMAD_4_36Double7displayB5cxx11Eim(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(17), i32 noundef, i64 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK9NOMAD_4_312SgtelibModel8getModelEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.72") align 8, ptr noundef nonnull align 8 dereferenceable(552)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #1 align 2

declare void @_ZNK7SGTELIB9Surrogate11check_readyERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_RKi(ptr noundef nonnull align 8 dereferenceable(985), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4

declare void @_ZN7SGTELIB9Surrogate7predictERKNS_6MatrixEPS1_S4_S4_S4_(ptr noundef nonnull align 8 dereferenceable(985), ptr noundef nonnull align 8 dereferenceable(56), ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

declare void @_ZN7SGTELIB9Surrogate7predictERKNS_6MatrixEPS1_(ptr noundef nonnull align 8 dereferenceable(985), ptr noundef nonnull align 8 dereferenceable(56), ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt12__shared_ptrIN7SGTELIB9SurrogateELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEm(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i64 noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEd(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, double noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN9NOMAD_4_33maxENS_6DoubleES0_(ptr dead_on_unwind noalias writable sret(%"class.NOMAD_4_3::Double") align 8, ptr noundef, ptr noundef) local_unnamed_addr #5

declare void @_ZNK9NOMAD_4_36Double4pow2Ev(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8, ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoublepLERKS0_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoublemLERKS0_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN9NOMAD_4_3eqERKNS_6DoubleES2_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #5

declare void @_ZN9NOMAD_4_3dvERKNS_6DoubleES2_(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::Double") align 8, ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN9NOMAD_4_3plERKNS_6DoubleES2_(ptr dead_on_unwind noalias writable sret(%"class.NOMAD_4_3::Double") align 8, ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #5

declare noundef nonnull align 8 dereferenceable(17) ptr @_ZN9NOMAD_4_36DoubleaSERKS0_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN9NOMAD_4_3mlERKNS_6DoubleES2_(ptr dead_on_unwind noalias writable sret(%"class.NOMAD_4_3::Double") align 8, ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN9NOMAD_4_3miERKNS_6DoubleES2_(ptr dead_on_unwind noalias writable sret(%"class.NOMAD_4_3::Double") align 8, ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #5

; Function Attrs: nounwind
declare void @_ZN9NOMAD_4_313ArrayOfStringD1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN9NOMAD_4_3ngERKNS_6DoubleE(ptr dead_on_unwind noalias writable sret(%"class.NOMAD_4_3::Double") align 8, ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #5

declare void @_ZNK7SGTELIB9Surrogate26get_exclusion_area_penaltyERKNS_6MatrixEd(ptr dead_on_unwind writable sret(%"class.SGTELIB::Matrix") align 8, ptr noundef nonnull align 8 dereferenceable(985), ptr noundef nonnull align 8 dereferenceable(56), double noundef) local_unnamed_addr #4

declare void @_ZNK9NOMAD_4_313ArrayOfDouble7displayERKS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK7SGTELIB11TrainingSet9get_f_minEv(ptr noundef nonnull align 8 dereferenceable(504)) local_unnamed_addr #2 align 2

declare void @_ZNK9NOMAD_4_39EvalPoint6getBBOB5cxx11ENS_8EvalTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(160), i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9NOMAD_4_36Double9isDefinedEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #1 align 2

declare void @_ZN9NOMAD_4_39EvalPoint13setEvalStatusENS_14EvalStatusTypeENS_8EvalTypeE(ptr noundef nonnull align 8 dereferenceable(160), i32 noundef, i32 noundef) local_unnamed_addr #4

declare void @_ZNK9NOMAD_4_39EvalPoint27makeFullSpacePointFromFixedERKNS_5PointE(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::EvalPoint") align 8, ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

!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 = !{!"_ZTSN9NOMAD_4_311OutputLevelE", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 200}
!10 = !{!"_ZTSN9NOMAD_4_321SgtelibModelEvaluatorE", !11, i64 0, !14, i64 120, !22, i64 128, !26, i64 160, !29, i64 184, !27, i64 192, !6, i64 200, !30, i64 208}
!11 = !{!"_ZTSN9NOMAD_4_39EvaluatorE", !12, i64 8, !16, i64 24, !17, i64 32, !21, i64 56, !22, i64 64, !25, i64 96}
!12 = !{!"_ZTSSt10shared_ptrIN9NOMAD_4_314EvalParametersEE", !13, i64 0}
!13 = !{!"_ZTSSt12__shared_ptrIN9NOMAD_4_314EvalParametersELN9__gnu_cxx12_Lock_policyE2EE", !14, i64 0, !15, i64 8}
!14 = !{!"any pointer", !7, i64 0}
!15 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !14, i64 0}
!16 = !{!"_ZTSN9NOMAD_4_38EvalTypeE", !7, i64 0}
!17 = !{!"_ZTSSt6vectorIN9NOMAD_4_312BBOutputTypeESaIS1_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIN9NOMAD_4_312BBOutputTypeESaIS1_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIN9NOMAD_4_312BBOutputTypeESaIS1_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIN9NOMAD_4_312BBOutputTypeESaIS1_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!21 = !{!"_ZTSN9NOMAD_4_312EvalXDefinedE", !7, i64 0}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !23, i64 0, !24, i64 8, !7, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !14, i64 0}
!24 = !{!"long", !7, i64 0}
!25 = !{!"_ZTSN9NOMAD_4_313ArrayOfDoubleE", !24, i64 8, !14, i64 16}
!26 = !{!"_ZTSN9NOMAD_4_36DoubleE", !27, i64 8, !28, i64 16}
!27 = !{!"double", !7, i64 0}
!28 = !{!"bool", !7, i64 0}
!29 = !{!"_ZTSN9NOMAD_4_327SgtelibModelFeasibilityTypeE", !7, i64 0}
!30 = !{!"_ZTSN9NOMAD_4_35PointE", !25, i64 0}
!31 = !{!10, !29, i64 184}
!32 = !{!27, !27, i64 0}
!33 = !{!10, !14, i64 120}
!34 = !{!35, !35, i64 0}
!35 = !{!"_ZTSN9NOMAD_4_327SgtelibModelFormulationTypeE", !7, i64 0}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}
!38 = !{!11, !16, i64 24}
!39 = !{!40, !40, i64 0}
!40 = !{!"int", !7, i64 0}
!41 = distinct !{!41, !37}
!42 = distinct !{!42, !37}
!43 = distinct !{!43, !37}
!44 = !{!45, !45, i64 0}
!45 = !{!"_ZTSN9NOMAD_4_312BBOutputTypeE", !7, i64 0}
!46 = distinct !{!46, !37}
!47 = distinct !{!47, !37}
!48 = distinct !{!48, !37}
!49 = !{!10, !27, i64 192}
!50 = distinct !{!50, !37}
!51 = !{!28, !28, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass