; LLVM IR from buresjan/optim_lbm :: nomad/src/Algos/Mads/MadsUpdate.ll (ZN9NOMAD_4_310MadsUpdate6runImpEv)

; 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.std::shared_ptr.14" = type { %"class.std::__shared_ptr.15" }
%"class.std::__shared_ptr.15" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.40" = type { %"class.std::__shared_ptr.41" }
%"class.std::__shared_ptr.41" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.43" = type { %"class.std::__shared_ptr.44" }
%"class.std::__shared_ptr.44" = 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.std::vector.48" = type { %"struct.std::_Vector_base.49" }
%"struct.std::_Vector_base.49" = 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.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::shared_ptr.58" = type { %"class.std::__shared_ptr.59" }
%"class.std::__shared_ptr.59" = type { ptr, %"class.std::__shared_count" }
%"class.NOMAD_4_3::ComputeSuccessType" = type { %"class.std::function" }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.NOMAD_4_3::Double" = type <{ ptr, double, i8, [7 x i8] }>
%"class.std::allocator" = type { i8 }
%"class.NOMAD_4_3::ArrayOfDouble" = type { ptr, i64, ptr }
%"class.std::shared_ptr.17" = type { %"class.std::__shared_ptr.18" }
%"class.std::__shared_ptr.18" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.74" = type { %"class.std::__shared_ptr.75" }
%"class.std::__shared_ptr.75" = type { ptr, %"class.std::__shared_count" }

@.str.9 = external hidden unnamed_addr constant [88 x i8], align 1
@_ZTIN9NOMAD_4_39ExceptionE = external constant ptr
@.str.11 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZN9NOMAD_4_3L3INFE = external hidden constant double, align 8
@.str.13 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE = external hidden constant i32, align 4
@.str.16 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [20 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: mustprogress uwtable
declare dso_local noundef ptr @_ZNK9NOMAD_4_34Step15getParentOfTypeIPNS_17MadsMegaIterationEEET_b(ptr noundef nonnull align 8 dereferenceable(140), i1 noundef zeroext) #2 align 2

declare ptr @__cxa_allocate_exception(i64)

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

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @__cxa_free_exception(ptr)

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN9NOMAD_4_310MadsUpdate6runImpEv(ptr noundef nonnull align 8 dereferenceable(140) %0) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::shared_ptr.14", align 8
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca %"class.std::shared_ptr.40", align 8
  %10 = alloca %"class.std::shared_ptr.43", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::vector.48", align 8
  %17 = alloca ptr, align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %20 = alloca ptr, align 8
  %21 = alloca %"class.std::shared_ptr.58", align 8
  %22 = alloca %"class.std::shared_ptr.58", align 8
  %23 = alloca %"class.std::shared_ptr.58", align 8
  %24 = alloca %"class.std::shared_ptr.58", align 8
  %25 = alloca %"class.NOMAD_4_3::ComputeSuccessType", align 8
  %26 = alloca %"class.std::shared_ptr.58", align 8
  %27 = alloca i32, align 4
  %28 = alloca %"class.std::shared_ptr.58", align 8
  %29 = alloca %"class.std::shared_ptr.58", align 8
  %30 = alloca %"class.NOMAD_4_3::Double", align 8
  %31 = alloca %"class.std::shared_ptr.58", align 8
  %32 = alloca %"class.std::shared_ptr.58", align 8
  %33 = alloca %"class.std::shared_ptr.58", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca i1, align 1
  %39 = alloca i32, align 4
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %43 = alloca %"class.NOMAD_4_3::Double", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %47 = alloca %"class.NOMAD_4_3::Double", align 8
  %48 = alloca i32, align 4
  %49 = alloca %"class.std::shared_ptr.58", align 8
  %50 = alloca %"class.std::shared_ptr.58", align 8
  %51 = alloca %"class.NOMAD_4_3::Double", align 8
  %52 = alloca %"class.std::shared_ptr.58", align 8
  %53 = alloca %"class.std::shared_ptr.58", align 8
  %54 = alloca %"class.std::shared_ptr.58", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca i1, 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.NOMAD_4_3::ArrayOfDouble", align 8
  %64 = alloca %"class.NOMAD_4_3::Double", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %68 = alloca %"class.NOMAD_4_3::Double", align 8
  %69 = alloca i32, align 4
  %70 = alloca i8, align 1
  %71 = alloca %"class.std::shared_ptr.17", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::allocator", align 1
  %74 = alloca i8, align 1
  %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 %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", 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::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::shared_ptr.74", align 8
  %87 = alloca %"class.std::shared_ptr.74", align 8
  %88 = alloca i32, align 4
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::allocator", align 1
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %93 = alloca %"class.NOMAD_4_3::Double", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca i32, align 4
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::allocator", align 1
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %100 = alloca %"class.NOMAD_4_3::Double", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca i32, align 4
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.std::allocator", align 1
  %105 = alloca %"class.std::shared_ptr.74", align 8
  %106 = alloca i32, align 4
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::allocator", align 1
  %109 = alloca i32, align 4
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::allocator", align 1
  %112 = alloca i32, align 4
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::allocator", align 1
  %115 = alloca i32, align 4
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %119 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %120 = alloca %"class.NOMAD_4_3::Double", 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.NOMAD_4_3::ArrayOfDouble", align 8
  %125 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %126 = alloca %"class.NOMAD_4_3::Double", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %128 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %3) #7
  call void @_ZN9NOMAD_4_312EvcInterface19getEvaluatorControlEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.14") align 8 %3)
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #7
  store i32 0, ptr %4, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #7
  store i32 0, ptr %5, align 4, !tbaa !11
  %129 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_316EvaluatorControlEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %3) #7
  br i1 %129, label %130, label %142

130:                                              ; preds = %1
  %131 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  %132 = invoke noundef i32 @_ZNK9NOMAD_4_316EvaluatorControl18getCurrentEvalTypeEi(ptr noundef nonnull align 8 dereferenceable(352) %131, i32 noundef -1)
          to label %133 unwind label %138

133:                                              ; preds = %130
  store i32 %132, ptr %4, align 4, !tbaa !9
  %134 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  %135 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_316EvaluatorControl14getComputeTypeEi(ptr noundef nonnull align 8 dereferenceable(352) %134, i32 noundef -1)
          to label %136 unwind label %138

136:                                              ; preds = %133
  %137 = load i32, ptr %135, align 4, !tbaa !11
  store i32 %137, ptr %5, align 4, !tbaa !11
  br label %142

138:                                              ; preds = %133, %130
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %6, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %7, align 4
  br label %1137

142:                                              ; preds = %136, %1
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  %143 = invoke noundef ptr @_ZNK9NOMAD_4_34Step15getParentOfTypeIPNS_17MadsMegaIterationEEET_b(ptr noundef nonnull align 8 dereferenceable(140) %128, i1 noundef zeroext true)
          to label %144 unwind label %178

144:                                              ; preds = %142
  store ptr %143, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #7
  %145 = load ptr, ptr %8, align 8, !tbaa !5
  %146 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9NOMAD_4_313MegaIteration10getBarrierEv(ptr noundef nonnull align 8 dereferenceable(172) %145)
          to label %147 unwind label %182

147:                                              ; preds = %144
  call void @_ZNSt10shared_ptrIN9NOMAD_4_311BarrierBaseEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %146) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #7
  %148 = load ptr, ptr %8, align 8, !tbaa !5
  %149 = load ptr, ptr %148, align 8, !tbaa !13
  %150 = getelementptr inbounds ptr, ptr %149, i64 10
  %151 = load ptr, ptr %150, align 8
  invoke void %151(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.43") align 8 %10, ptr noundef nonnull align 8 dereferenceable(200) %148)
          to label %152 unwind label %186

152:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  store i32 9, ptr %12, align 4, !tbaa !15
  %153 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %154 unwind label %190

154:                                              ; preds = %152
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br i1 %153, label %155, label %228

155:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #7
  %156 = load ptr, ptr %128, align 8, !tbaa !13
  %157 = getelementptr inbounds ptr, ptr %156, i64 2
  %158 = load ptr, ptr %157, align 8
  invoke void %158(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(140) %128)
          to label %159 unwind label %194

159:                                              ; preds = %155
  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.11, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %160 unwind label %198

160:                                              ; preds = %159
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.12)
          to label %161 unwind label %202

161:                                              ; preds = %160
  %162 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #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 @llvm.lifetime.end.p0(i64 32, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #7
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %163 unwind label %208

163:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #7
  %164 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %165 = load ptr, ptr %164, align 8, !tbaa !13
  %166 = getelementptr inbounds ptr, ptr %165, i64 9
  %167 = load ptr, ptr %166, align 8
  invoke void %167(ptr dead_on_unwind writable sret(%"class.std::vector.48") align 8 %16, ptr noundef nonnull align 8 dereferenceable(120) %164, i64 noundef 4)
          to label %168 unwind label %212

168:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  store ptr %16, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %169 = load ptr, ptr %17, align 8, !tbaa !5
  %170 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %169) #7
  %171 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %18, i32 0, i32 0
  store ptr %170, ptr %171, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %172 = load ptr, ptr %17, align 8, !tbaa !5
  %173 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %172) #7
  %174 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %19, i32 0, i32 0
  store ptr %173, ptr %174, align 8
  br label %175

175:                                              ; preds = %220, %168
  %176 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  br i1 %176, label %216, label %177

177:                                              ; preds = %175
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %226

178:                                              ; preds = %142
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  store ptr %180, ptr %6, align 8
  %181 = extractvalue { ptr, i32 } %179, 1
  store i32 %181, ptr %7, align 4
  br label %1136

182:                                              ; preds = %144
  %183 = landingpad { ptr, i32 }
          cleanup
  %184 = extractvalue { ptr, i32 } %183, 0
  store ptr %184, ptr %6, align 8
  %185 = extractvalue { ptr, i32 } %183, 1
  store i32 %185, ptr %7, align 4
  br label %1135

186:                                              ; preds = %147
  %187 = landingpad { ptr, i32 }
          cleanup
  %188 = extractvalue { ptr, i32 } %187, 0
  store ptr %188, ptr %6, align 8
  %189 = extractvalue { ptr, i32 } %187, 1
  store i32 %189, ptr %7, align 4
  br label %1134

190:                                              ; preds = %152
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %6, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br label %1133

194:                                              ; preds = %155
  %195 = landingpad { ptr, i32 }
          cleanup
  %196 = extractvalue { ptr, i32 } %195, 0
  store ptr %196, ptr %6, align 8
  %197 = extractvalue { ptr, i32 } %195, 1
  store i32 %197, ptr %7, align 4
  br label %207

198:                                              ; preds = %159
  %199 = landingpad { ptr, i32 }
          cleanup
  %200 = extractvalue { ptr, i32 } %199, 0
  store ptr %200, ptr %6, align 8
  %201 = extractvalue { ptr, i32 } %199, 1
  store i32 %201, ptr %7, align 4
  br label %206

202:                                              ; preds = %160
  %203 = landingpad { ptr, i32 }
          cleanup
  %204 = extractvalue { ptr, i32 } %203, 0
  store ptr %204, ptr %6, align 8
  %205 = extractvalue { ptr, i32 } %203, 1
  store i32 %205, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %206

206:                                              ; preds = %202, %198
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %207

207:                                              ; preds = %206, %194
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #7
  br label %1133

208:                                              ; preds = %161
  %209 = landingpad { ptr, i32 }
          cleanup
  %210 = extractvalue { ptr, i32 } %209, 0
  store ptr %210, ptr %6, align 8
  %211 = extractvalue { ptr, i32 } %209, 1
  store i32 %211, ptr %7, align 4
  br label %1133

212:                                              ; preds = %163
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %6, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %7, align 4
  br label %227

216:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %217 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  store ptr %217, ptr %20, align 8, !tbaa !5
  %218 = load ptr, ptr %20, align 8, !tbaa !5
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %218)
          to label %219 unwind label %222

219:                                              ; preds = %216
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %220

220:                                              ; preds = %219
  %221 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  br label %175

222:                                              ; preds = %216
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %6, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %7, align 4
  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 @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  br label %227

226:                                              ; preds = %177
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #7
  br label %228

227:                                              ; preds = %222, %212
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #7
  br label %1133

228:                                              ; preds = %226, %154
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #7
  %229 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  invoke void @_ZNK9NOMAD_4_311BarrierBase14getRefBestFeasEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.58") align 8 %21, ptr noundef nonnull align 8 dereferenceable(120) %229)
          to label %230 unwind label %275

230:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #7
  %231 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  invoke void @_ZNK9NOMAD_4_311BarrierBase13getRefBestInfEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.58") align 8 %22, ptr noundef nonnull align 8 dereferenceable(120) %231)
          to label %232 unwind label %279

232:                                              ; preds = %230
  %233 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %234 = load ptr, ptr %233, align 8, !tbaa !13
  %235 = getelementptr inbounds ptr, ptr %234, i64 2
  %236 = load ptr, ptr %235, align 8
  invoke void %236(ptr noundef nonnull align 8 dereferenceable(120) %233)
          to label %237 unwind label %283

237:                                              ; preds = %232
  call void @llvm.lifetime.start.p0(i64 16, ptr %23) #7
  %238 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %239 = load ptr, ptr %238, align 8, !tbaa !13
  %240 = getelementptr inbounds ptr, ptr %239, i64 1
  %241 = load ptr, ptr %240, align 8
  invoke void %241(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.58") align 8 %23, ptr noundef nonnull align 8 dereferenceable(120) %238)
          to label %242 unwind label %287

242:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #7
  %243 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %244 = load ptr, ptr %243, align 8, !tbaa !13
  %245 = getelementptr inbounds ptr, ptr %244, i64 4
  %246 = load ptr, ptr %245, align 8
  invoke void %246(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.58") align 8 %24, ptr noundef nonnull align 8 dereferenceable(120) %243)
          to label %247 unwind label %291

247:                                              ; preds = %242
  %248 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  br i1 %248, label %251, label %249

249:                                              ; preds = %247
  %250 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  br i1 %250, label %251, label %1031

251:                                              ; preds = %249, %247
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #7
  %252 = load i32, ptr %4, align 4, !tbaa !9
  %253 = load i32, ptr %5, align 4, !tbaa !11
  invoke void @_ZN9NOMAD_4_318ComputeSuccessTypeC2ENS_8EvalTypeENS_11ComputeTypeE(ptr noundef nonnull align 8 dereferenceable(32) %25, i32 noundef %252, i32 noundef %253)
          to label %254 unwind label %295

254:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %29, ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %30) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %30, ptr noundef nonnull align 8 dereferenceable(8) @_ZN9NOMAD_4_3L3INFE)
          to label %255 unwind label %299

255:                                              ; preds = %254
  %256 = invoke noundef i32 @_ZN9NOMAD_4_318ComputeSuccessTypeclESt10shared_ptrINS_9EvalPointEES3_RKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef %28, ptr noundef %29, ptr noundef nonnull align 8 dereferenceable(17) %30)
          to label %257 unwind label %303

257:                                              ; preds = %255
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %30) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #7
  store i32 %256, ptr %27, align 4, !tbaa !17
  %258 = load i32, ptr %27, align 4, !tbaa !17
  %259 = icmp sge i32 %258, 3
  br i1 %259, label %260, label %425

260:                                              ; preds = %257
  %261 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %31) #7
  %262 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint12getPointFromEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.58") align 8 %31, ptr noundef nonnull align 8 dereferenceable(160) %262)
          to label %263 unwind label %308

263:                                              ; preds = %260
  %264 = call noundef zeroext i1 @_ZSteqIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %31) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #7
  br i1 %264, label %265, label %354

265:                                              ; preds = %263
  %266 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  br i1 %266, label %267, label %316

267:                                              ; preds = %265
  %268 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  %269 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN9NOMAD_4_317SubproblemManager11getInstanceEv()
          to label %270 unwind label %312

270:                                              ; preds = %267
  %271 = call noundef ptr @_ZNKSt10unique_ptrIN9NOMAD_4_317SubproblemManagerESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %269) #7
  %272 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56) %271, ptr noundef %128)
          to label %273 unwind label %312

273:                                              ; preds = %270
  invoke void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160) %268, ptr noundef %32, ptr noundef nonnull align 8 dereferenceable(24) %272)
          to label %274 unwind label %312

274:                                              ; preds = %273
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #7
  br label %353

275:                                              ; preds = %228
  %276 = landingpad { ptr, i32 }
          cleanup
  %277 = extractvalue { ptr, i32 } %276, 0
  store ptr %277, ptr %6, align 8
  %278 = extractvalue { ptr, i32 } %276, 1
  store i32 %278, ptr %7, align 4
  br label %1132

279:                                              ; preds = %230
  %280 = landingpad { ptr, i32 }
          cleanup
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %6, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %7, align 4
  br label %1131

283:                                              ; preds = %232
  %284 = landingpad { ptr, i32 }
          cleanup
  %285 = extractvalue { ptr, i32 } %284, 0
  store ptr %285, ptr %6, align 8
  %286 = extractvalue { ptr, i32 } %284, 1
  store i32 %286, ptr %7, align 4
  br label %1130

287:                                              ; preds = %237
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %6, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %7, align 4
  br label %1129

291:                                              ; preds = %242
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %6, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %7, align 4
  br label %1128

295:                                              ; preds = %251
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %6, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %7, align 4
  br label %1030

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

303:                                              ; preds = %255
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %6, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %7, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %30) #7
  br label %307

307:                                              ; preds = %303, %299
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #7
  br label %1029

308:                                              ; preds = %260
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %6, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #7
  br label %1029

312:                                              ; preds = %273, %270, %267
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %6, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #7
  br label %1029

316:                                              ; preds = %265
  %317 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  br i1 %317, label %318, label %330

318:                                              ; preds = %316
  %319 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  %320 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN9NOMAD_4_317SubproblemManager11getInstanceEv()
          to label %321 unwind label %326

321:                                              ; preds = %318
  %322 = call noundef ptr @_ZNKSt10unique_ptrIN9NOMAD_4_317SubproblemManagerESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %320) #7
  %323 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56) %322, ptr noundef %128)
          to label %324 unwind label %326

324:                                              ; preds = %321
  invoke void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160) %319, ptr noundef %33, ptr noundef nonnull align 8 dereferenceable(24) %323)
          to label %325 unwind label %326

325:                                              ; preds = %324
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #7
  br label %352

326:                                              ; preds = %324, %321, %318
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %6, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #7
  br label %1029

330:                                              ; preds = %316
  store i1 true, ptr %38, align 1
  %331 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %332 unwind label %335

332:                                              ; preds = %330
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %333 unwind label %339

333:                                              ; preds = %332
  invoke void @_ZN9NOMAD_4_39ExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmS8_(ptr noundef nonnull align 8 dereferenceable(112) %331, ptr noundef nonnull align 8 dereferenceable(32) %34, i64 noundef 139, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %334 unwind label %343

334:                                              ; preds = %333
  store i1 false, ptr %38, align 1
  invoke void @__cxa_throw(ptr %331, ptr @_ZTIN9NOMAD_4_39ExceptionE, ptr @_ZN9NOMAD_4_39ExceptionD2Ev) #8
          to label %1143 unwind label %343

335:                                              ; preds = %330
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %6, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %7, align 4
  br label %348

339:                                              ; preds = %332
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %6, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %7, align 4
  br label %347

343:                                              ; preds = %334, %333
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %6, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %347

347:                                              ; preds = %343, %339
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %348

348:                                              ; preds = %347, %335
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #7
  %349 = load i1, ptr %38, align 1
  br i1 %349, label %350, label %351

350:                                              ; preds = %348
  call void @__cxa_free_exception(ptr %331) #7
  br label %351

351:                                              ; preds = %350, %348
  br label %1029

352:                                              ; preds = %325
  br label %353

353:                                              ; preds = %352, %274
  br label %354

354:                                              ; preds = %353, %263
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  store i32 9, ptr %39, align 4, !tbaa !15
  %355 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %356 unwind label %377

356:                                              ; preds = %354
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br i1 %355, label %357, label %424

357:                                              ; preds = %356
  %358 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  br i1 %358, label %359, label %423

359:                                              ; preds = %357
  %360 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.14)
          to label %361 unwind label %381

361:                                              ; preds = %359
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %362 unwind label %381

362:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #7
  %363 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %43) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %43)
          to label %364 unwind label %385

364:                                              ; preds = %362
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %43)
          to label %365 unwind label %389

365:                                              ; preds = %364
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(160) %363, ptr noundef nonnull align 8 dereferenceable(24) %42, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %366 unwind label %393

366:                                              ; preds = %365
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef @.str.15, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %367 unwind label %397

367:                                              ; preds = %366
  %368 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #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 @llvm.lifetime.end.p0(i64 24, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #7
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %369 unwind label %381

369:                                              ; preds = %367
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #7
  %370 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %46) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %47) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %47)
          to label %371 unwind label %404

371:                                              ; preds = %369
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %47)
          to label %372 unwind label %408

372:                                              ; preds = %371
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(160) %370, ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %373 unwind label %412

373:                                              ; preds = %372
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef @.str.16, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %374 unwind label %416

374:                                              ; preds = %373
  %375 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #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 @llvm.lifetime.end.p0(i64 24, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #7
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %376 unwind label %381

376:                                              ; preds = %374
  br label %423

377:                                              ; preds = %354
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %6, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %1029

381:                                              ; preds = %588, %586, %374, %367, %361, %359
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %6, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %7, align 4
  br label %1029

385:                                              ; preds = %362
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %6, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %7, align 4
  br label %403

389:                                              ; preds = %364
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %6, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %7, align 4
  br label %402

393:                                              ; preds = %365
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %6, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %7, align 4
  br label %401

397:                                              ; preds = %366
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %6, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %401

401:                                              ; preds = %397, %393
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #7
  br label %402

402:                                              ; preds = %401, %389
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %43) #7
  br label %403

403:                                              ; preds = %402, %385
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #7
  br label %1029

404:                                              ; preds = %369
  %405 = landingpad { ptr, i32 }
          cleanup
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %6, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %7, align 4
  br label %422

408:                                              ; preds = %371
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %6, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %7, align 4
  br label %421

412:                                              ; preds = %372
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %6, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %7, align 4
  br label %420

416:                                              ; preds = %373
  %417 = landingpad { ptr, i32 }
          cleanup
  %418 = extractvalue { ptr, i32 } %417, 0
  store ptr %418, ptr %6, align 8
  %419 = extractvalue { ptr, i32 } %417, 1
  store i32 %419, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %420

420:                                              ; preds = %416, %412
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #7
  br label %421

421:                                              ; preds = %420, %408
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %47) #7
  br label %422

422:                                              ; preds = %421, %404
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #7
  br label %1029

423:                                              ; preds = %376, %357
  br label %424

424:                                              ; preds = %423, %356
  br label %580

425:                                              ; preds = %257
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %51) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %51, ptr noundef nonnull align 8 dereferenceable(8) @_ZN9NOMAD_4_3L3INFE)
          to label %426 unwind label %434

426:                                              ; preds = %425
  %427 = invoke noundef i32 @_ZN9NOMAD_4_318ComputeSuccessTypeclESt10shared_ptrINS_9EvalPointEES3_RKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef %49, ptr noundef %50, ptr noundef nonnull align 8 dereferenceable(17) %51)
          to label %428 unwind label %438

428:                                              ; preds = %426
  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 @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #7
  store i32 %427, ptr %48, align 4, !tbaa !17
  %429 = load i32, ptr %48, align 4, !tbaa !17
  %430 = load i32, ptr %27, align 4, !tbaa !17
  %431 = icmp sgt i32 %429, %430
  br i1 %431, label %432, label %443

432:                                              ; preds = %428
  %433 = load i32, ptr %48, align 4, !tbaa !17
  store i32 %433, ptr %27, align 4, !tbaa !17
  br label %443

434:                                              ; preds = %425
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %6, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %7, align 4
  br label %442

438:                                              ; preds = %426
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %6, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %7, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %51) #7
  br label %442

442:                                              ; preds = %438, %434
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #7
  br label %579

443:                                              ; preds = %432, %428
  %444 = load i32, ptr %27, align 4, !tbaa !17
  %445 = icmp sge i32 %444, 3
  br i1 %445, label %446, label %578

446:                                              ; preds = %443
  %447 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %52) #7
  %448 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint12getPointFromEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.58") align 8 %52, ptr noundef nonnull align 8 dereferenceable(160) %448)
          to label %449 unwind label %461

449:                                              ; preds = %446
  %450 = call noundef zeroext i1 @_ZSteqIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %52) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #7
  br i1 %450, label %451, label %507

451:                                              ; preds = %449
  %452 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  br i1 %452, label %453, label %469

453:                                              ; preds = %451
  %454 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  %455 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN9NOMAD_4_317SubproblemManager11getInstanceEv()
          to label %456 unwind label %465

456:                                              ; preds = %453
  %457 = call noundef ptr @_ZNKSt10unique_ptrIN9NOMAD_4_317SubproblemManagerESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %455) #7
  %458 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56) %457, ptr noundef %128)
          to label %459 unwind label %465

459:                                              ; preds = %456
  invoke void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160) %454, ptr noundef %53, ptr noundef nonnull align 8 dereferenceable(24) %458)
          to label %460 unwind label %465

460:                                              ; preds = %459
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #7
  br label %506

461:                                              ; preds = %446
  %462 = landingpad { ptr, i32 }
          cleanup
  %463 = extractvalue { ptr, i32 } %462, 0
  store ptr %463, ptr %6, align 8
  %464 = extractvalue { ptr, i32 } %462, 1
  store i32 %464, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #7
  br label %579

465:                                              ; preds = %459, %456, %453
  %466 = landingpad { ptr, i32 }
          cleanup
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %6, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #7
  br label %579

469:                                              ; preds = %451
  %470 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  br i1 %470, label %471, label %483

471:                                              ; preds = %469
  %472 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  %473 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN9NOMAD_4_317SubproblemManager11getInstanceEv()
          to label %474 unwind label %479

474:                                              ; preds = %471
  %475 = call noundef ptr @_ZNKSt10unique_ptrIN9NOMAD_4_317SubproblemManagerESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %473) #7
  %476 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56) %475, ptr noundef %128)
          to label %477 unwind label %479

477:                                              ; preds = %474
  invoke void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160) %472, ptr noundef %54, ptr noundef nonnull align 8 dereferenceable(24) %476)
          to label %478 unwind label %479

478:                                              ; preds = %477
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #7
  br label %505

479:                                              ; preds = %477, %474, %471
  %480 = landingpad { ptr, i32 }
          cleanup
  %481 = extractvalue { ptr, i32 } %480, 0
  store ptr %481, ptr %6, align 8
  %482 = extractvalue { ptr, i32 } %480, 1
  store i32 %482, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #7
  br label %579

483:                                              ; preds = %469
  store i1 true, ptr %59, align 1
  %484 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %485 unwind label %488

485:                                              ; preds = %483
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %486 unwind label %492

486:                                              ; preds = %485
  invoke void @_ZN9NOMAD_4_39ExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmS8_(ptr noundef nonnull align 8 dereferenceable(112) %484, ptr noundef nonnull align 8 dereferenceable(32) %55, i64 noundef 174, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %487 unwind label %496

487:                                              ; preds = %486
  store i1 false, ptr %59, align 1
  invoke void @__cxa_throw(ptr %484, ptr @_ZTIN9NOMAD_4_39ExceptionE, ptr @_ZN9NOMAD_4_39ExceptionD2Ev) #8
          to label %1143 unwind label %496

488:                                              ; preds = %483
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %6, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %7, align 4
  br label %501

492:                                              ; preds = %485
  %493 = landingpad { ptr, i32 }
          cleanup
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %6, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %7, align 4
  br label %500

496:                                              ; preds = %487, %486
  %497 = landingpad { ptr, i32 }
          cleanup
  %498 = extractvalue { ptr, i32 } %497, 0
  store ptr %498, ptr %6, align 8
  %499 = extractvalue { ptr, i32 } %497, 1
  store i32 %499, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  br label %500

500:                                              ; preds = %496, %492
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  br label %501

501:                                              ; preds = %500, %488
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #7
  %502 = load i1, ptr %59, align 1
  br i1 %502, label %503, label %504

503:                                              ; preds = %501
  call void @__cxa_free_exception(ptr %484) #7
  br label %504

504:                                              ; preds = %503, %501
  br label %579

505:                                              ; preds = %478
  br label %506

506:                                              ; preds = %505, %460
  br label %507

507:                                              ; preds = %506, %449
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #7
  store i32 9, ptr %60, align 4, !tbaa !15
  %508 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %60)
          to label %509 unwind label %530

509:                                              ; preds = %507
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  br i1 %508, label %510, label %577

510:                                              ; preds = %509
  %511 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  br i1 %511, label %512, label %576

512:                                              ; preds = %510
  %513 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.18)
          to label %514 unwind label %534

514:                                              ; preds = %512
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %515 unwind label %534

515:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #7
  %516 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %63) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %64) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %64)
          to label %517 unwind label %538

517:                                              ; preds = %515
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %63, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %64)
          to label %518 unwind label %542

518:                                              ; preds = %517
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(160) %516, ptr noundef nonnull align 8 dereferenceable(24) %63, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %519 unwind label %546

519:                                              ; preds = %518
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef @.str.15, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %520 unwind label %550

520:                                              ; preds = %519
  %521 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, 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 @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %63) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %64) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #7
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %522 unwind label %534

522:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #7
  %523 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %67) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %68) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %68)
          to label %524 unwind label %557

524:                                              ; preds = %522
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %67, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %68)
          to label %525 unwind label %561

525:                                              ; preds = %524
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(160) %523, ptr noundef nonnull align 8 dereferenceable(24) %67, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %526 unwind label %565

526:                                              ; preds = %525
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef @.str.16, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %527 unwind label %569

527:                                              ; preds = %526
  %528 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  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 @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %68) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %529 unwind label %534

529:                                              ; preds = %527
  br label %576

530:                                              ; preds = %507
  %531 = landingpad { ptr, i32 }
          cleanup
  %532 = extractvalue { ptr, i32 } %531, 0
  store ptr %532, ptr %6, align 8
  %533 = extractvalue { ptr, i32 } %531, 1
  store i32 %533, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  br label %579

534:                                              ; preds = %527, %520, %514, %512
  %535 = landingpad { ptr, i32 }
          cleanup
  %536 = extractvalue { ptr, i32 } %535, 0
  store ptr %536, ptr %6, align 8
  %537 = extractvalue { ptr, i32 } %535, 1
  store i32 %537, ptr %7, align 4
  br label %579

538:                                              ; preds = %515
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %6, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %7, align 4
  br label %556

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

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

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

554:                                              ; preds = %550, %546
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %63) #7
  br label %555

555:                                              ; preds = %554, %542
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %64) #7
  br label %556

556:                                              ; preds = %555, %538
  call void @llvm.lifetime.end.p0(i64 24, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #7
  br label %579

557:                                              ; preds = %522
  %558 = landingpad { ptr, i32 }
          cleanup
  %559 = extractvalue { ptr, i32 } %558, 0
  store ptr %559, ptr %6, align 8
  %560 = extractvalue { ptr, i32 } %558, 1
  store i32 %560, ptr %7, align 4
  br label %575

561:                                              ; preds = %524
  %562 = landingpad { ptr, i32 }
          cleanup
  %563 = extractvalue { ptr, i32 } %562, 0
  store ptr %563, ptr %6, align 8
  %564 = extractvalue { ptr, i32 } %562, 1
  store i32 %564, ptr %7, align 4
  br label %574

565:                                              ; preds = %525
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %6, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %7, align 4
  br label %573

569:                                              ; preds = %526
  %570 = landingpad { ptr, i32 }
          cleanup
  %571 = extractvalue { ptr, i32 } %570, 0
  store ptr %571, ptr %6, align 8
  %572 = extractvalue { ptr, i32 } %570, 1
  store i32 %572, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  br label %573

573:                                              ; preds = %569, %565
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #7
  br label %574

574:                                              ; preds = %573, %561
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %68) #7
  br label %575

575:                                              ; preds = %574, %557
  call void @llvm.lifetime.end.p0(i64 24, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  br label %579

576:                                              ; preds = %529, %510
  br label %577

577:                                              ; preds = %576, %509
  br label %578

578:                                              ; preds = %577, %443
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %580

579:                                              ; preds = %575, %556, %534, %530, %504, %479, %465, %461, %442
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %1029

580:                                              ; preds = %578, %424
  %581 = load i32, ptr %27, align 4, !tbaa !17
  %582 = icmp eq i32 %581, 2
  br i1 %582, label %583, label %595

583:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #7
  store i32 9, ptr %69, align 4, !tbaa !15
  %584 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %69)
          to label %585 unwind label %590

585:                                              ; preds = %583
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  br i1 %584, label %586, label %594

586:                                              ; preds = %585
  %587 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.19)
          to label %588 unwind label %381

588:                                              ; preds = %586
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %589 unwind label %381

589:                                              ; preds = %588
  br label %594

590:                                              ; preds = %583
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %6, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  br label %1029

594:                                              ; preds = %589, %585
  br label %595

595:                                              ; preds = %594, %580
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #7
  store i8 1, ptr %70, align 1, !tbaa !19
  %596 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_316EvaluatorControlEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %3) #7
  br i1 %596, label %597, label %621

597:                                              ; preds = %595
  call void @llvm.lifetime.start.p0(i64 16, ptr %71) #7
  %598 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  invoke void @_ZNK9NOMAD_4_316EvaluatorControl31getEvaluatorControlGlobalParamsEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.17") align 8 %71, ptr noundef nonnull align 8 dereferenceable(352) %598)
          to label %599 unwind label %607

599:                                              ; preds = %597
  %600 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_332EvaluatorControlGlobalParametersELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %71) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %73)
          to label %601 unwind label %611

601:                                              ; preds = %599
  %602 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK9NOMAD_4_310Parameters17getAttributeValueIbEERKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(496) %600, ptr noundef nonnull align 8 dereferenceable(32) %72, i1 noundef zeroext false)
          to label %603 unwind label %615

603:                                              ; preds = %601
  %604 = load i8, ptr %602, align 1, !tbaa !19, !range !21, !noundef !22
  %605 = trunc i8 %604 to i1
  %606 = zext i1 %605 to i8
  store i8 %606, ptr %70, align 1, !tbaa !19
  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 %73) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_332EvaluatorControlGlobalParametersELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %71) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #7
  br label %621

607:                                              ; preds = %597
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %6, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %7, align 4
  br label %620

611:                                              ; preds = %599
  %612 = landingpad { ptr, i32 }
          cleanup
  %613 = extractvalue { ptr, i32 } %612, 0
  store ptr %613, ptr %6, align 8
  %614 = extractvalue { ptr, i32 } %612, 1
  store i32 %614, ptr %7, align 4
  br label %619

615:                                              ; preds = %601
  %616 = landingpad { ptr, i32 }
          cleanup
  %617 = extractvalue { ptr, i32 } %616, 0
  store ptr %617, ptr %6, align 8
  %618 = extractvalue { ptr, i32 } %616, 1
  store i32 %618, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #7
  br label %619

619:                                              ; preds = %615, %611
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_332EvaluatorControlGlobalParametersELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %71) #7
  br label %620

620:                                              ; preds = %619, %607
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #7
  br label %1028

621:                                              ; preds = %603, %595
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #7
  %622 = load ptr, ptr %8, align 8, !tbaa !5
  %623 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_34Step14getSuccessTypeEv(ptr noundef nonnull align 8 dereferenceable(140) %622)
          to label %624 unwind label %662

624:                                              ; preds = %621
  %625 = load i32, ptr %623, align 4, !tbaa !17
  %626 = icmp ne i32 0, %625
  %627 = zext i1 %626 to i8
  store i8 %627, ptr %74, align 1, !tbaa !19
  %628 = load i8, ptr %70, align 1, !tbaa !19, !range !21, !noundef !22
  %629 = trunc i8 %628 to i1
  br i1 %629, label %771, label %630

630:                                              ; preds = %624
  %631 = load i8, ptr %74, align 1, !tbaa !19, !range !21, !noundef !22
  %632 = trunc i8 %631 to i1
  br i1 %632, label %633, label %771

633:                                              ; preds = %630
  %634 = load i32, ptr %27, align 4, !tbaa !17
  %635 = load ptr, ptr %8, align 8, !tbaa !5
  %636 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_34Step14getSuccessTypeEv(ptr noundef nonnull align 8 dereferenceable(140) %635)
          to label %637 unwind label %662

637:                                              ; preds = %633
  %638 = load i32, ptr %636, align 4, !tbaa !17
  %639 = icmp ne i32 %634, %638
  br i1 %639, label %640, label %771

640:                                              ; preds = %637
  %641 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.21)
          to label %642 unwind label %662

642:                                              ; preds = %640
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #7
  %643 = load ptr, ptr %8, align 8, !tbaa !5
  %644 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_34Step14getSuccessTypeEv(ptr noundef nonnull align 8 dereferenceable(140) %643)
          to label %645 unwind label %666

645:                                              ; preds = %642
  %646 = load i32, ptr %644, align 4, !tbaa !17
  invoke void @_ZN9NOMAD_4_37enumStrB5cxx11ENS_11SuccessTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %75, i32 noundef %646)
          to label %647 unwind label %666

647:                                              ; preds = %645
  %648 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %649 unwind label %670

649:                                              ; preds = %647
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #7
  %650 = load i32, ptr %27, align 4, !tbaa !17
  invoke void @_ZN9NOMAD_4_37enumStrB5cxx11ENS_11SuccessTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, i32 noundef %650)
          to label %651 unwind label %675

651:                                              ; preds = %649
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef @.str.22, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %652 unwind label %679

652:                                              ; preds = %651
  %653 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %654 unwind label %683

654:                                              ; preds = %652
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #7
  %655 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  br i1 %655, label %656, label %703

656:                                              ; preds = %654
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #7
  %657 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 8 dereferenceable(160) %657, i32 noundef 0)
          to label %658 unwind label %689

658:                                              ; preds = %656
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef @.str.23, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %659 unwind label %693

659:                                              ; preds = %658
  %660 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %661 unwind label %697

661:                                              ; preds = %659
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #7
  br label %703

662:                                              ; preds = %1020, %769, %640, %633, %621
  %663 = landingpad { ptr, i32 }
          cleanup
  %664 = extractvalue { ptr, i32 } %663, 0
  store ptr %664, ptr %6, align 8
  %665 = extractvalue { ptr, i32 } %663, 1
  store i32 %665, ptr %7, align 4
  br label %1027

666:                                              ; preds = %645, %642
  %667 = landingpad { ptr, i32 }
          cleanup
  %668 = extractvalue { ptr, i32 } %667, 0
  store ptr %668, ptr %6, align 8
  %669 = extractvalue { ptr, i32 } %667, 1
  store i32 %669, ptr %7, align 4
  br label %674

670:                                              ; preds = %647
  %671 = landingpad { ptr, i32 }
          cleanup
  %672 = extractvalue { ptr, i32 } %671, 0
  store ptr %672, ptr %6, align 8
  %673 = extractvalue { ptr, i32 } %671, 1
  store i32 %673, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  br label %674

674:                                              ; preds = %670, %666
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #7
  br label %1027

675:                                              ; preds = %649
  %676 = landingpad { ptr, i32 }
          cleanup
  %677 = extractvalue { ptr, i32 } %676, 0
  store ptr %677, ptr %6, align 8
  %678 = extractvalue { ptr, i32 } %676, 1
  store i32 %678, ptr %7, align 4
  br label %688

679:                                              ; preds = %651
  %680 = landingpad { ptr, i32 }
          cleanup
  %681 = extractvalue { ptr, i32 } %680, 0
  store ptr %681, ptr %6, align 8
  %682 = extractvalue { ptr, i32 } %680, 1
  store i32 %682, ptr %7, align 4
  br label %687

683:                                              ; preds = %652
  %684 = landingpad { ptr, i32 }
          cleanup
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %6, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  br label %687

687:                                              ; preds = %683, %679
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %688

688:                                              ; preds = %687, %675
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #7
  br label %1027

689:                                              ; preds = %656
  %690 = landingpad { ptr, i32 }
          cleanup
  %691 = extractvalue { ptr, i32 } %690, 0
  store ptr %691, ptr %6, align 8
  %692 = extractvalue { ptr, i32 } %690, 1
  store i32 %692, ptr %7, align 4
  br label %702

693:                                              ; preds = %658
  %694 = landingpad { ptr, i32 }
          cleanup
  %695 = extractvalue { ptr, i32 } %694, 0
  store ptr %695, ptr %6, align 8
  %696 = extractvalue { ptr, i32 } %694, 1
  store i32 %696, ptr %7, align 4
  br label %701

697:                                              ; preds = %659
  %698 = landingpad { ptr, i32 }
          cleanup
  %699 = extractvalue { ptr, i32 } %698, 0
  store ptr %699, ptr %6, align 8
  %700 = extractvalue { ptr, i32 } %698, 1
  store i32 %700, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  br label %701

701:                                              ; preds = %697, %693
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  br label %702

702:                                              ; preds = %701, %689
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #7
  br label %1027

703:                                              ; preds = %661, %654
  %704 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  br i1 %704, label %705, label %725

705:                                              ; preds = %703
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #7
  %706 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %81, ptr noundef nonnull align 8 dereferenceable(160) %706, i32 noundef 0)
          to label %707 unwind label %711

707:                                              ; preds = %705
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef @.str.24, ptr noundef nonnull align 8 dereferenceable(32) %81)
          to label %708 unwind label %715

708:                                              ; preds = %707
  %709 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %710 unwind label %719

710:                                              ; preds = %708
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #7
  br label %725

711:                                              ; preds = %705
  %712 = landingpad { ptr, i32 }
          cleanup
  %713 = extractvalue { ptr, i32 } %712, 0
  store ptr %713, ptr %6, align 8
  %714 = extractvalue { ptr, i32 } %712, 1
  store i32 %714, ptr %7, align 4
  br label %724

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

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

723:                                              ; preds = %719, %715
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  br label %724

724:                                              ; preds = %723, %711
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #7
  br label %1027

725:                                              ; preds = %710, %703
  %726 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  br i1 %726, label %727, label %747

727:                                              ; preds = %725
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #7
  %728 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %83, ptr noundef nonnull align 8 dereferenceable(160) %728, i32 noundef 0)
          to label %729 unwind label %733

729:                                              ; preds = %727
  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.25, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %730 unwind label %737

730:                                              ; preds = %729
  %731 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %82)
          to label %732 unwind label %741

732:                                              ; preds = %730
  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
  br label %747

733:                                              ; preds = %727
  %734 = landingpad { ptr, i32 }
          cleanup
  %735 = extractvalue { ptr, i32 } %734, 0
  store ptr %735, ptr %6, align 8
  %736 = extractvalue { ptr, i32 } %734, 1
  store i32 %736, ptr %7, align 4
  br label %746

737:                                              ; preds = %729
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %6, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %7, align 4
  br label %745

741:                                              ; preds = %730
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %6, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  br label %745

745:                                              ; preds = %741, %737
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  br label %746

746:                                              ; preds = %745, %733
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #7
  br label %1027

747:                                              ; preds = %732, %725
  %748 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  br i1 %748, label %749, label %769

749:                                              ; preds = %747
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #7
  %750 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef nonnull align 8 dereferenceable(160) %750, i32 noundef 0)
          to label %751 unwind label %755

751:                                              ; preds = %749
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %84, ptr noundef @.str.26, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %752 unwind label %759

752:                                              ; preds = %751
  %753 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %84)
          to label %754 unwind label %763

754:                                              ; preds = %752
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #7
  br label %769

755:                                              ; preds = %749
  %756 = landingpad { ptr, i32 }
          cleanup
  %757 = extractvalue { ptr, i32 } %756, 0
  store ptr %757, ptr %6, align 8
  %758 = extractvalue { ptr, i32 } %756, 1
  store i32 %758, ptr %7, align 4
  br label %768

759:                                              ; preds = %751
  %760 = landingpad { ptr, i32 }
          cleanup
  %761 = extractvalue { ptr, i32 } %760, 0
  store ptr %761, ptr %6, align 8
  %762 = extractvalue { ptr, i32 } %760, 1
  store i32 %762, ptr %7, align 4
  br label %767

763:                                              ; preds = %752
  %764 = landingpad { ptr, i32 }
          cleanup
  %765 = extractvalue { ptr, i32 } %764, 0
  store ptr %765, ptr %6, align 8
  %766 = extractvalue { ptr, i32 } %764, 1
  store i32 %766, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  br label %767

767:                                              ; preds = %763, %759
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %768

768:                                              ; preds = %767, %755
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #7
  br label %1027

769:                                              ; preds = %754, %747
  invoke void @_ZNK9NOMAD_4_34Step16AddOutputWarningERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %770 unwind label %662

770:                                              ; preds = %769
  br label %771

771:                                              ; preds = %770, %637, %630, %624
  %772 = load i32, ptr %4, align 4, !tbaa !9
  %773 = icmp eq i32 0, %772
  br i1 %773, label %774, label %911

774:                                              ; preds = %771
  call void @llvm.lifetime.start.p0(i64 16, ptr %86) #7
  %775 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  br i1 %775, label %776, label %779

776:                                              ; preds = %774
  %777 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint12getDirectionEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.74") align 8 %86, ptr noundef nonnull align 8 dereferenceable(160) %777)
          to label %778 unwind label %803

778:                                              ; preds = %776
  br label %780

779:                                              ; preds = %774
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39DirectionEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %86, ptr null) #7
  br label %780

780:                                              ; preds = %779, %778
  call void @llvm.lifetime.start.p0(i64 16, ptr %87) #7
  %781 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  br i1 %781, label %782, label %785

782:                                              ; preds = %780
  %783 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint12getDirectionEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.74") align 8 %87, ptr noundef nonnull align 8 dereferenceable(160) %783)
          to label %784 unwind label %807

784:                                              ; preds = %782
  br label %786

785:                                              ; preds = %780
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39DirectionEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %87, ptr null) #7
  br label %786

786:                                              ; preds = %785, %784
  %787 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39DirectionEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %86) #7
  br i1 %787, label %788, label %845

788:                                              ; preds = %786
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #7
  store i32 7, ptr %88, align 4, !tbaa !15
  %789 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %88)
          to label %790 unwind label %811

790:                                              ; preds = %788
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #7
  br i1 %789, label %791, label %844

791:                                              ; preds = %790
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %90)
          to label %792 unwind label %815

792:                                              ; preds = %791
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #7
  %793 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %86) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %92) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %93) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %93)
          to label %794 unwind label %819

794:                                              ; preds = %792
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %92, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %93)
          to label %795 unwind label %823

795:                                              ; preds = %794
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  %796 = load ptr, ptr %793, align 8, !tbaa !13
  %797 = getelementptr inbounds ptr, ptr %796, i64 6
  %798 = load ptr, ptr %797, align 8
  invoke void %798(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %91, ptr noundef nonnull align 8 dereferenceable(24) %793, ptr noundef nonnull align 8 dereferenceable(24) %92, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %799 unwind label %827

799:                                              ; preds = %795
  %800 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %801 unwind label %831

801:                                              ; preds = %799
  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) %94) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %92) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %93) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %93) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #7
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %89, i32 noundef 7)
          to label %802 unwind label %838

802:                                              ; preds = %801
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #7
  br label %844

803:                                              ; preds = %776
  %804 = landingpad { ptr, i32 }
          cleanup
  %805 = extractvalue { ptr, i32 } %804, 0
  store ptr %805, ptr %6, align 8
  %806 = extractvalue { ptr, i32 } %804, 1
  store i32 %806, ptr %7, align 4
  br label %910

807:                                              ; preds = %782
  %808 = landingpad { ptr, i32 }
          cleanup
  %809 = extractvalue { ptr, i32 } %808, 0
  store ptr %809, ptr %6, align 8
  %810 = extractvalue { ptr, i32 } %808, 1
  store i32 %810, ptr %7, align 4
  br label %909

811:                                              ; preds = %788
  %812 = landingpad { ptr, i32 }
          cleanup
  %813 = extractvalue { ptr, i32 } %812, 0
  store ptr %813, ptr %6, align 8
  %814 = extractvalue { ptr, i32 } %812, 1
  store i32 %814, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #7
  br label %908

815:                                              ; preds = %791
  %816 = landingpad { ptr, i32 }
          cleanup
  %817 = extractvalue { ptr, i32 } %816, 0
  store ptr %817, ptr %6, align 8
  %818 = extractvalue { ptr, i32 } %816, 1
  store i32 %818, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #7
  br label %843

819:                                              ; preds = %792
  %820 = landingpad { ptr, i32 }
          cleanup
  %821 = extractvalue { ptr, i32 } %820, 0
  store ptr %821, ptr %6, align 8
  %822 = extractvalue { ptr, i32 } %820, 1
  store i32 %822, ptr %7, align 4
  br label %837

823:                                              ; preds = %794
  %824 = landingpad { ptr, i32 }
          cleanup
  %825 = extractvalue { ptr, i32 } %824, 0
  store ptr %825, ptr %6, align 8
  %826 = extractvalue { ptr, i32 } %824, 1
  store i32 %826, ptr %7, align 4
  br label %836

827:                                              ; preds = %795
  %828 = landingpad { ptr, i32 }
          cleanup
  %829 = extractvalue { ptr, i32 } %828, 0
  store ptr %829, ptr %6, align 8
  %830 = extractvalue { ptr, i32 } %828, 1
  store i32 %830, ptr %7, align 4
  br label %835

831:                                              ; preds = %799
  %832 = landingpad { ptr, i32 }
          cleanup
  %833 = extractvalue { ptr, i32 } %832, 0
  store ptr %833, ptr %6, align 8
  %834 = extractvalue { ptr, i32 } %832, 1
  store i32 %834, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  br label %835

835:                                              ; preds = %831, %827
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %92) #7
  br label %836

836:                                              ; preds = %835, %823
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %93) #7
  br label %837

837:                                              ; preds = %836, %819
  call void @llvm.lifetime.end.p0(i64 24, ptr %93) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #7
  br label %842

838:                                              ; preds = %801
  %839 = landingpad { ptr, i32 }
          cleanup
  %840 = extractvalue { ptr, i32 } %839, 0
  store ptr %840, ptr %6, align 8
  %841 = extractvalue { ptr, i32 } %839, 1
  store i32 %841, ptr %7, align 4
  br label %842

842:                                              ; preds = %838, %837
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #7
  br label %843

843:                                              ; preds = %842, %815
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #7
  br label %908

844:                                              ; preds = %802, %790
  br label %845

845:                                              ; preds = %844, %786
  %846 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39DirectionEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %87) #7
  br i1 %846, label %847, label %896

847:                                              ; preds = %845
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #7
  store i32 7, ptr %95, align 4, !tbaa !15
  %848 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %95)
          to label %849 unwind label %862

849:                                              ; preds = %847
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #7
  br i1 %848, label %850, label %895

850:                                              ; preds = %849
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %97)
          to label %851 unwind label %866

851:                                              ; preds = %850
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #7
  %852 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %99) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %100) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %100)
          to label %853 unwind label %870

853:                                              ; preds = %851
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %99, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %100)
          to label %854 unwind label %874

854:                                              ; preds = %853
  call void @llvm.lifetime.start.p0(i64 32, ptr %101) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  %855 = load ptr, ptr %852, align 8, !tbaa !13
  %856 = getelementptr inbounds ptr, ptr %855, i64 6
  %857 = load ptr, ptr %856, align 8
  invoke void %857(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %98, ptr noundef nonnull align 8 dereferenceable(24) %852, ptr noundef nonnull align 8 dereferenceable(24) %99, ptr noundef nonnull align 8 dereferenceable(32) %101)
          to label %858 unwind label %878

858:                                              ; preds = %854
  %859 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(32) %98)
          to label %860 unwind label %882

860:                                              ; preds = %858
  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) %101) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %99) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %100) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %100) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %99) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #7
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %96, i32 noundef 7)
          to label %861 unwind label %889

861:                                              ; preds = %860
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #7
  br label %895

862:                                              ; preds = %847
  %863 = landingpad { ptr, i32 }
          cleanup
  %864 = extractvalue { ptr, i32 } %863, 0
  store ptr %864, ptr %6, align 8
  %865 = extractvalue { ptr, i32 } %863, 1
  store i32 %865, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #7
  br label %908

866:                                              ; preds = %850
  %867 = landingpad { ptr, i32 }
          cleanup
  %868 = extractvalue { ptr, i32 } %867, 0
  store ptr %868, ptr %6, align 8
  %869 = extractvalue { ptr, i32 } %867, 1
  store i32 %869, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #7
  br label %894

870:                                              ; preds = %851
  %871 = landingpad { ptr, i32 }
          cleanup
  %872 = extractvalue { ptr, i32 } %871, 0
  store ptr %872, ptr %6, align 8
  %873 = extractvalue { ptr, i32 } %871, 1
  store i32 %873, ptr %7, align 4
  br label %888

874:                                              ; preds = %853
  %875 = landingpad { ptr, i32 }
          cleanup
  %876 = extractvalue { ptr, i32 } %875, 0
  store ptr %876, ptr %6, align 8
  %877 = extractvalue { ptr, i32 } %875, 1
  store i32 %877, ptr %7, align 4
  br label %887

878:                                              ; preds = %854
  %879 = landingpad { ptr, i32 }
          cleanup
  %880 = extractvalue { ptr, i32 } %879, 0
  store ptr %880, ptr %6, align 8
  %881 = extractvalue { ptr, i32 } %879, 1
  store i32 %881, ptr %7, align 4
  br label %886

882:                                              ; preds = %858
  %883 = landingpad { ptr, i32 }
          cleanup
  %884 = extractvalue { ptr, i32 } %883, 0
  store ptr %884, ptr %6, align 8
  %885 = extractvalue { ptr, i32 } %883, 1
  store i32 %885, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #7
  br label %886

886:                                              ; preds = %882, %878
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %99) #7
  br label %887

887:                                              ; preds = %886, %874
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %100) #7
  br label %888

888:                                              ; preds = %887, %870
  call void @llvm.lifetime.end.p0(i64 24, ptr %100) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %99) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #7
  br label %893

889:                                              ; preds = %860
  %890 = landingpad { ptr, i32 }
          cleanup
  %891 = extractvalue { ptr, i32 } %890, 0
  store ptr %891, ptr %6, align 8
  %892 = extractvalue { ptr, i32 } %890, 1
  store i32 %892, ptr %7, align 4
  br label %893

893:                                              ; preds = %889, %888
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  br label %894

894:                                              ; preds = %893, %866
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #7
  br label %908

895:                                              ; preds = %861, %849
  br label %896

896:                                              ; preds = %895, %845
  %897 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_316EvaluatorControlEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %3) #7
  br i1 %897, label %898, label %907

898:                                              ; preds = %896
  %899 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  invoke void @_ZN9NOMAD_4_316EvaluatorControl24setLastSuccessfulFeasDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352) %899, ptr noundef nonnull align 8 dereferenceable(16) %86)
          to label %900 unwind label %903

900:                                              ; preds = %898
  %901 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  invoke void @_ZN9NOMAD_4_316EvaluatorControl23setLastSuccessfulInfDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352) %901, ptr noundef nonnull align 8 dereferenceable(16) %87)
          to label %902 unwind label %903

902:                                              ; preds = %900
  br label %907

903:                                              ; preds = %900, %898
  %904 = landingpad { ptr, i32 }
          cleanup
  %905 = extractvalue { ptr, i32 } %904, 0
  store ptr %905, ptr %6, align 8
  %906 = extractvalue { ptr, i32 } %904, 1
  store i32 %906, ptr %7, align 4
  br label %908

907:                                              ; preds = %902, %896
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %87) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %87) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %86) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #7
  br label %911

908:                                              ; preds = %903, %894, %862, %843, %811
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %87) #7
  br label %909

909:                                              ; preds = %908, %807
  call void @llvm.lifetime.end.p0(i64 16, ptr %87) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %86) #7
  br label %910

910:                                              ; preds = %909, %803
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #7
  br label %1027

911:                                              ; preds = %907, %771
  %912 = load i32, ptr %27, align 4, !tbaa !17
  %913 = icmp sge i32 %912, 3
  br i1 %913, label %914, label %1001

914:                                              ; preds = %911
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #7
  store i32 7, ptr %102, align 4, !tbaa !15
  %915 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %102)
          to label %916 unwind label %923

916:                                              ; preds = %914
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #7
  br i1 %915, label %917, label %937

917:                                              ; preds = %916
  %918 = load i32, ptr %27, align 4, !tbaa !17
  %919 = icmp eq i32 %918, 3
  br i1 %919, label %920, label %936

920:                                              ; preds = %917
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %104) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %104)
          to label %921 unwind label %927

921:                                              ; preds = %920
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %103, i32 noundef 7)
          to label %922 unwind label %931

922:                                              ; preds = %921
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #7
  br label %936

923:                                              ; preds = %914
  %924 = landingpad { ptr, i32 }
          cleanup
  %925 = extractvalue { ptr, i32 } %924, 0
  store ptr %925, ptr %6, align 8
  %926 = extractvalue { ptr, i32 } %924, 1
  store i32 %926, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #7
  br label %1027

927:                                              ; preds = %920
  %928 = landingpad { ptr, i32 }
          cleanup
  %929 = extractvalue { ptr, i32 } %928, 0
  store ptr %929, ptr %6, align 8
  %930 = extractvalue { ptr, i32 } %928, 1
  store i32 %930, ptr %7, align 4
  br label %935

931:                                              ; preds = %921
  %932 = landingpad { ptr, i32 }
          cleanup
  %933 = extractvalue { ptr, i32 } %932, 0
  store ptr %933, ptr %6, align 8
  %934 = extractvalue { ptr, i32 } %932, 1
  store i32 %934, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  br label %935

935:                                              ; preds = %931, %927
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #7
  br label %1027

936:                                              ; preds = %922, %917
  br label %937

937:                                              ; preds = %936, %916
  %938 = load i32, ptr %27, align 4, !tbaa !17
  %939 = icmp sge i32 %938, 4
  br i1 %939, label %940, label %1000

940:                                              ; preds = %937
  %941 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %105) #7
  %942 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint12getDirectionEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.74") align 8 %105, ptr noundef nonnull align 8 dereferenceable(160) %942)
          to label %943 unwind label %956

943:                                              ; preds = %940
  %944 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %105) #7
  %945 = load ptr, ptr %941, align 8, !tbaa !13
  %946 = getelementptr inbounds ptr, ptr %945, i64 4
  %947 = load ptr, ptr %946, align 8
  %948 = invoke noundef zeroext i1 %947(ptr noundef nonnull align 8 dereferenceable(257) %941, ptr noundef nonnull align 8 dereferenceable(24) %944)
          to label %949 unwind label %960

949:                                              ; preds = %943
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %105) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #7
  br i1 %948, label %950, label %979

950:                                              ; preds = %949
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #7
  store i32 7, ptr %106, align 4, !tbaa !15
  %951 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %106)
          to label %952 unwind label %965

952:                                              ; preds = %950
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #7
  br i1 %951, label %953, label %978

953:                                              ; preds = %952
  call void @llvm.lifetime.start.p0(i64 32, ptr %107) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %108) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %108)
          to label %954 unwind label %969

954:                                              ; preds = %953
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %107, i32 noundef 7)
          to label %955 unwind label %973

955:                                              ; preds = %954
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #7
  br label %978

956:                                              ; preds = %940
  %957 = landingpad { ptr, i32 }
          cleanup
  %958 = extractvalue { ptr, i32 } %957, 0
  store ptr %958, ptr %6, align 8
  %959 = extractvalue { ptr, i32 } %957, 1
  store i32 %959, ptr %7, align 4
  br label %964

960:                                              ; preds = %943
  %961 = landingpad { ptr, i32 }
          cleanup
  %962 = extractvalue { ptr, i32 } %961, 0
  store ptr %962, ptr %6, align 8
  %963 = extractvalue { ptr, i32 } %961, 1
  store i32 %963, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %105) #7
  br label %964

964:                                              ; preds = %960, %956
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #7
  br label %1027

965:                                              ; preds = %950
  %966 = landingpad { ptr, i32 }
          cleanup
  %967 = extractvalue { ptr, i32 } %966, 0
  store ptr %967, ptr %6, align 8
  %968 = extractvalue { ptr, i32 } %966, 1
  store i32 %968, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #7
  br label %1027

969:                                              ; preds = %953
  %970 = landingpad { ptr, i32 }
          cleanup
  %971 = extractvalue { ptr, i32 } %970, 0
  store ptr %971, ptr %6, align 8
  %972 = extractvalue { ptr, i32 } %970, 1
  store i32 %972, ptr %7, align 4
  br label %977

973:                                              ; preds = %954
  %974 = landingpad { ptr, i32 }
          cleanup
  %975 = extractvalue { ptr, i32 } %974, 0
  store ptr %975, ptr %6, align 8
  %976 = extractvalue { ptr, i32 } %974, 1
  store i32 %976, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #7
  br label %977

977:                                              ; preds = %973, %969
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #7
  br label %1027

978:                                              ; preds = %955, %952
  br label %999

979:                                              ; preds = %949
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #7
  store i32 7, ptr %109, align 4, !tbaa !15
  %980 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %109)
          to label %981 unwind label %985

981:                                              ; preds = %979
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #7
  br i1 %980, label %982, label %998

982:                                              ; preds = %981
  call void @llvm.lifetime.start.p0(i64 32, ptr %110) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %111) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %111)
          to label %983 unwind label %989

983:                                              ; preds = %982
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %110, i32 noundef 7)
          to label %984 unwind label %993

984:                                              ; preds = %983
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  br label %998

985:                                              ; preds = %979
  %986 = landingpad { ptr, i32 }
          cleanup
  %987 = extractvalue { ptr, i32 } %986, 0
  store ptr %987, ptr %6, align 8
  %988 = extractvalue { ptr, i32 } %986, 1
  store i32 %988, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #7
  br label %1027

989:                                              ; preds = %982
  %990 = landingpad { ptr, i32 }
          cleanup
  %991 = extractvalue { ptr, i32 } %990, 0
  store ptr %991, ptr %6, align 8
  %992 = extractvalue { ptr, i32 } %990, 1
  store i32 %992, ptr %7, align 4
  br label %997

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

997:                                              ; preds = %993, %989
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  br label %1027

998:                                              ; preds = %984, %981
  br label %999

999:                                              ; preds = %998, %978
  br label %1000

1000:                                             ; preds = %999, %937
  br label %1026

1001:                                             ; preds = %911
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #7
  store i32 7, ptr %112, align 4, !tbaa !15
  %1002 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %112)
          to label %1003 unwind label %1007

1003:                                             ; preds = %1001
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #7
  br i1 %1002, label %1004, label %1020

1004:                                             ; preds = %1003
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %114) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %114)
          to label %1005 unwind label %1011

1005:                                             ; preds = %1004
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %113, i32 noundef 7)
          to label %1006 unwind label %1015

1006:                                             ; preds = %1005
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #7
  br label %1020

1007:                                             ; preds = %1001
  %1008 = landingpad { ptr, i32 }
          cleanup
  %1009 = extractvalue { ptr, i32 } %1008, 0
  store ptr %1009, ptr %6, align 8
  %1010 = extractvalue { ptr, i32 } %1008, 1
  store i32 %1010, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #7
  br label %1027

1011:                                             ; preds = %1004
  %1012 = landingpad { ptr, i32 }
          cleanup
  %1013 = extractvalue { ptr, i32 } %1012, 0
  store ptr %1013, ptr %6, align 8
  %1014 = extractvalue { ptr, i32 } %1012, 1
  store i32 %1014, ptr %7, align 4
  br label %1019

1015:                                             ; preds = %1005
  %1016 = landingpad { ptr, i32 }
          cleanup
  %1017 = extractvalue { ptr, i32 } %1016, 0
  store ptr %1017, ptr %6, align 8
  %1018 = extractvalue { ptr, i32 } %1016, 1
  store i32 %1018, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #7
  br label %1019

1019:                                             ; preds = %1015, %1011
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #7
  br label %1027

1020:                                             ; preds = %1006, %1003
  %1021 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  %1022 = load ptr, ptr %1021, align 8, !tbaa !13
  %1023 = getelementptr inbounds ptr, ptr %1022, i64 5
  %1024 = load ptr, ptr %1023, align 8
  invoke void %1024(ptr noundef nonnull align 8 dereferenceable(257) %1021)
          to label %1025 unwind label %662

1025:                                             ; preds = %1020
  br label %1026

1026:                                             ; preds = %1025, %1000
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #7
  call void @_ZN9NOMAD_4_318ComputeSuccessTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  br label %1031

1027:                                             ; preds = %1019, %1007, %997, %985, %977, %965, %964, %935, %923, %910, %768, %746, %724, %702, %688, %674, %662
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #7
  br label %1028

1028:                                             ; preds = %1027, %620
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #7
  br label %1029

1029:                                             ; preds = %1028, %590, %579, %422, %403, %381, %377, %351, %326, %312, %308, %307
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #7
  call void @_ZN9NOMAD_4_318ComputeSuccessTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %1030

1030:                                             ; preds = %1029, %295
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  br label %1127

1031:                                             ; preds = %1026, %249
  %1032 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  %1033 = load ptr, ptr %1032, align 8, !tbaa !13
  %1034 = getelementptr inbounds ptr, ptr %1033, i64 3
  %1035 = load ptr, ptr %1034, align 8
  invoke void %1035(ptr noundef nonnull align 8 dereferenceable(257) %1032)
          to label %1036 unwind label %1060

1036:                                             ; preds = %1031
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #7
  store i32 7, ptr %115, align 4, !tbaa !15
  %1037 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %115)
          to label %1038 unwind label %1064

1038:                                             ; preds = %1036
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #7
  br i1 %1037, label %1039, label %1126

1039:                                             ; preds = %1038
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %117) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %118) #7
  %1040 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  %1041 = load ptr, ptr %1040, align 8, !tbaa !13
  %1042 = getelementptr inbounds ptr, ptr %1041, i64 12
  %1043 = load ptr, ptr %1042, align 8
  invoke void %1043(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::ArrayOfDouble") align 8 %118, ptr noundef nonnull align 8 dereferenceable(257) %1040)
          to label %1044 unwind label %1068

1044:                                             ; preds = %1039
  call void @llvm.lifetime.start.p0(i64 24, ptr %119) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %120) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %120)
          to label %1045 unwind label %1072

1045:                                             ; preds = %1044
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %119, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %120)
          to label %1046 unwind label %1076

1046:                                             ; preds = %1045
  call void @llvm.lifetime.start.p0(i64 32, ptr %121) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #7
  invoke void @_ZNK9NOMAD_4_313ArrayOfDouble7displayERKS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %117, ptr noundef nonnull align 8 dereferenceable(24) %118, ptr noundef nonnull align 8 dereferenceable(24) %119, ptr noundef nonnull align 8 dereferenceable(32) %121)
          to label %1047 unwind label %1080

1047:                                             ; preds = %1046
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %116, ptr noundef @.str.33, ptr noundef nonnull align 8 dereferenceable(32) %117)
          to label %1048 unwind label %1084

1048:                                             ; preds = %1047
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %116, i32 noundef 7)
          to label %1049 unwind label %1088

1049:                                             ; preds = %1048
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  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) %121) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %119) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %120) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %120) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %119) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %118) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %122) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %123) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %124) #7
  %1050 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  %1051 = load ptr, ptr %1050, align 8, !tbaa !13
  %1052 = getelementptr inbounds ptr, ptr %1051, i64 14
  %1053 = load ptr, ptr %1052, align 8
  invoke void %1053(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::ArrayOfDouble") align 8 %124, ptr noundef nonnull align 8 dereferenceable(257) %1050)
          to label %1054 unwind label %1097

1054:                                             ; preds = %1049
  call void @llvm.lifetime.start.p0(i64 24, ptr %125) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %126) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %126)
          to label %1055 unwind label %1101

1055:                                             ; preds = %1054
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %125, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %126)
          to label %1056 unwind label %1105

1056:                                             ; preds = %1055
  call void @llvm.lifetime.start.p0(i64 32, ptr %127) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  invoke void @_ZNK9NOMAD_4_313ArrayOfDouble7displayERKS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %123, ptr noundef nonnull align 8 dereferenceable(24) %124, ptr noundef nonnull align 8 dereferenceable(24) %125, ptr noundef nonnull align 8 dereferenceable(32) %127)
          to label %1057 unwind label %1109

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 %122, ptr noundef @.str.34, ptr noundef nonnull align 8 dereferenceable(32) %123)
          to label %1058 unwind label %1113

1058:                                             ; preds = %1057
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %128, ptr noundef nonnull align 8 dereferenceable(32) %122, i32 noundef 7)
          to label %1059 unwind label %1117

1059:                                             ; preds = %1058
  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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %125) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %126) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %126) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %125) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %124) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %124) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #7
  br label %1126

1060:                                             ; preds = %1031
  %1061 = landingpad { ptr, i32 }
          cleanup
  %1062 = extractvalue { ptr, i32 } %1061, 0
  store ptr %1062, ptr %6, align 8
  %1063 = extractvalue { ptr, i32 } %1061, 1
  store i32 %1063, ptr %7, align 4
  br label %1127

1064:                                             ; preds = %1036
  %1065 = landingpad { ptr, i32 }
          cleanup
  %1066 = extractvalue { ptr, i32 } %1065, 0
  store ptr %1066, ptr %6, align 8
  %1067 = extractvalue { ptr, i32 } %1065, 1
  store i32 %1067, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #7
  br label %1127

1068:                                             ; preds = %1039
  %1069 = landingpad { ptr, i32 }
          cleanup
  %1070 = extractvalue { ptr, i32 } %1069, 0
  store ptr %1070, ptr %6, align 8
  %1071 = extractvalue { ptr, i32 } %1069, 1
  store i32 %1071, ptr %7, align 4
  br label %1096

1072:                                             ; preds = %1044
  %1073 = landingpad { ptr, i32 }
          cleanup
  %1074 = extractvalue { ptr, i32 } %1073, 0
  store ptr %1074, ptr %6, align 8
  %1075 = extractvalue { ptr, i32 } %1073, 1
  store i32 %1075, ptr %7, align 4
  br label %1095

1076:                                             ; preds = %1045
  %1077 = landingpad { ptr, i32 }
          cleanup
  %1078 = extractvalue { ptr, i32 } %1077, 0
  store ptr %1078, ptr %6, align 8
  %1079 = extractvalue { ptr, i32 } %1077, 1
  store i32 %1079, ptr %7, align 4
  br label %1094

1080:                                             ; preds = %1046
  %1081 = landingpad { ptr, i32 }
          cleanup
  %1082 = extractvalue { ptr, i32 } %1081, 0
  store ptr %1082, ptr %6, align 8
  %1083 = extractvalue { ptr, i32 } %1081, 1
  store i32 %1083, ptr %7, align 4
  br label %1093

1084:                                             ; preds = %1047
  %1085 = landingpad { ptr, i32 }
          cleanup
  %1086 = extractvalue { ptr, i32 } %1085, 0
  store ptr %1086, ptr %6, align 8
  %1087 = extractvalue { ptr, i32 } %1085, 1
  store i32 %1087, ptr %7, align 4
  br label %1092

1088:                                             ; preds = %1048
  %1089 = landingpad { ptr, i32 }
          cleanup
  %1090 = extractvalue { ptr, i32 } %1089, 0
  store ptr %1090, ptr %6, align 8
  %1091 = extractvalue { ptr, i32 } %1089, 1
  store i32 %1091, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  br label %1092

1092:                                             ; preds = %1088, %1084
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  br label %1093

1093:                                             ; preds = %1092, %1080
  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 @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %119) #7
  br label %1094

1094:                                             ; preds = %1093, %1076
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %120) #7
  br label %1095

1095:                                             ; preds = %1094, %1072
  call void @llvm.lifetime.end.p0(i64 24, ptr %120) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %119) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %118) #7
  br label %1096

1096:                                             ; preds = %1095, %1068
  call void @llvm.lifetime.end.p0(i64 24, ptr %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #7
  br label %1127

1097:                                             ; preds = %1049
  %1098 = landingpad { ptr, i32 }
          cleanup
  %1099 = extractvalue { ptr, i32 } %1098, 0
  store ptr %1099, ptr %6, align 8
  %1100 = extractvalue { ptr, i32 } %1098, 1
  store i32 %1100, ptr %7, align 4
  br label %1125

1101:                                             ; preds = %1054
  %1102 = landingpad { ptr, i32 }
          cleanup
  %1103 = extractvalue { ptr, i32 } %1102, 0
  store ptr %1103, ptr %6, align 8
  %1104 = extractvalue { ptr, i32 } %1102, 1
  store i32 %1104, ptr %7, align 4
  br label %1124

1105:                                             ; preds = %1055
  %1106 = landingpad { ptr, i32 }
          cleanup
  %1107 = extractvalue { ptr, i32 } %1106, 0
  store ptr %1107, ptr %6, align 8
  %1108 = extractvalue { ptr, i32 } %1106, 1
  store i32 %1108, ptr %7, align 4
  br label %1123

1109:                                             ; preds = %1056
  %1110 = landingpad { ptr, i32 }
          cleanup
  %1111 = extractvalue { ptr, i32 } %1110, 0
  store ptr %1111, ptr %6, align 8
  %1112 = extractvalue { ptr, i32 } %1110, 1
  store i32 %1112, ptr %7, align 4
  br label %1122

1113:                                             ; preds = %1057
  %1114 = landingpad { ptr, i32 }
          cleanup
  %1115 = extractvalue { ptr, i32 } %1114, 0
  store ptr %1115, ptr %6, align 8
  %1116 = extractvalue { ptr, i32 } %1114, 1
  store i32 %1116, ptr %7, align 4
  br label %1121

1117:                                             ; preds = %1058
  %1118 = landingpad { ptr, i32 }
          cleanup
  %1119 = extractvalue { ptr, i32 } %1118, 0
  store ptr %1119, ptr %6, align 8
  %1120 = extractvalue { ptr, i32 } %1118, 1
  store i32 %1120, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #7
  br label %1121

1121:                                             ; preds = %1117, %1113
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #7
  br label %1122

1122:                                             ; preds = %1121, %1109
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %125) #7
  br label %1123

1123:                                             ; preds = %1122, %1105
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %126) #7
  br label %1124

1124:                                             ; preds = %1123, %1101
  call void @llvm.lifetime.end.p0(i64 24, ptr %126) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %125) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %124) #7
  br label %1125

1125:                                             ; preds = %1124, %1097
  call void @llvm.lifetime.end.p0(i64 24, ptr %124) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #7
  br label %1127

1126:                                             ; preds = %1059, %1038
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #7
  ret i1 true

1127:                                             ; preds = %1125, %1096, %1064, %1060, %1030
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  br label %1128

1128:                                             ; preds = %1127, %291
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  br label %1129

1129:                                             ; preds = %1128, %287
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #7
  br label %1130

1130:                                             ; preds = %1129, %283
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  br label %1131

1131:                                             ; preds = %1130, %279
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  br label %1132

1132:                                             ; preds = %1131, %275
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #7
  br label %1133

1133:                                             ; preds = %1132, %227, %208, %207, %190
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #7
  br label %1134

1134:                                             ; preds = %1133, %186
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  br label %1135

1135:                                             ; preds = %1134, %182
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #7
  br label %1136

1136:                                             ; preds = %1135, %178
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  br label %1137

1137:                                             ; preds = %1136, %138
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #7
  br label %1138

1138:                                             ; preds = %1137
  %1139 = load ptr, ptr %6, align 8
  %1140 = load i32, ptr %7, align 4
  %1141 = insertvalue { ptr, i32 } poison, ptr %1139, 0
  %1142 = insertvalue { ptr, i32 } %1141, i32 %1140, 1
  resume { ptr, i32 } %1142

1143:                                             ; preds = %487, %334
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN9NOMAD_4_312EvcInterface19getEvaluatorControlEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.14") align 8) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneIN9NOMAD_4_316EvaluatorControlEEbDnRKSt10shared_ptrIT_E(ptr, ptr noundef nonnull align 8 dereferenceable(16)) #3

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

declare noundef i32 @_ZNK9NOMAD_4_316EvaluatorControl18getCurrentEvalTypeEi(ptr noundef nonnull align 8 dereferenceable(352), i32 noundef) #4

declare noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_316EvaluatorControl14getComputeTypeEi(ptr noundef nonnull align 8 dereferenceable(352), i32 noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9NOMAD_4_313MegaIteration10getBarrierEv(ptr noundef nonnull align 8 dereferenceable(172)) #1 align 2

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

; 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_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: 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

; 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

declare void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140), ptr noundef nonnull align 8 dereferenceable(32)) #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK9NOMAD_4_311BarrierBase14getRefBestFeasEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.58") align 8, ptr noundef nonnull align 8 dereferenceable(120)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK9NOMAD_4_311BarrierBase13getRefBestInfEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.58") align 8, ptr noundef nonnull align 8 dereferenceable(120)) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr, ptr noundef nonnull align 8 dereferenceable(16)) #3

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

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

declare noundef i32 @_ZN9NOMAD_4_318ComputeSuccessTypeclESt10shared_ptrINS_9EvalPointEES3_RKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(17)) #4

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

declare void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr, ptr noundef nonnull align 8 dereferenceable(16)) #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK9NOMAD_4_39EvalPoint12getPointFromEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.58") align 8, ptr noundef nonnull align 8 dereferenceable(160)) #1 align 2

declare void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) #4

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

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

declare noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

; 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

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: nounwind
declare void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK9NOMAD_4_316EvaluatorControl31getEvaluatorControlGlobalParamsEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.17") align 8, ptr noundef nonnull align 8 dereferenceable(352)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNK9NOMAD_4_310Parameters17getAttributeValueIbEERKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(496), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext) #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_34Step14getSuccessTypeEv(ptr noundef nonnull align 8 dereferenceable(140)) #1 align 2

declare void @_ZN9NOMAD_4_37enumStrB5cxx11ENS_11SuccessTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) #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

declare void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(160), i32 noundef) #4

declare void @_ZNK9NOMAD_4_34Step16AddOutputWarningERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140), ptr noundef nonnull align 8 dereferenceable(32)) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK9NOMAD_4_39EvalPoint12getDirectionEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.74") align 8, ptr noundef nonnull align 8 dereferenceable(160)) #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneIN9NOMAD_4_39DirectionEEbDnRKSt10shared_ptrIT_E(ptr, ptr noundef nonnull align 8 dereferenceable(16)) #3

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

declare void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #4

declare void @_ZN9NOMAD_4_316EvaluatorControl24setLastSuccessfulFeasDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352), ptr noundef nonnull align 8 dereferenceable(16)) #4

declare void @_ZN9NOMAD_4_316EvaluatorControl23setLastSuccessfulInfDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352), ptr noundef nonnull align 8 dereferenceable(16)) #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1)) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN9NOMAD_4_318ComputeSuccessTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

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 nounwind uwtable
declare dso_local void @_ZNSt12__shared_ptrIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

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

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

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

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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "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 = { 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 #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_38EvalTypeE", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_ZTSN9NOMAD_4_311ComputeTypeE", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"vtable pointer", !8, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"_ZTSN9NOMAD_4_311OutputLevelE", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"_ZTSN9NOMAD_4_311SuccessTypeE", !7, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"bool", !7, i64 0}
!21 = !{i8 0, i8 2}
!22 = !{}


; 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.std::shared_ptr.14" = type { %"class.std::__shared_ptr.15" }
%"class.std::__shared_ptr.15" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.40" = type { %"class.std::__shared_ptr.41" }
%"class.std::__shared_ptr.41" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.43" = type { %"class.std::__shared_ptr.44" }
%"class.std::__shared_ptr.44" = 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.std::vector.48" = type { %"struct.std::_Vector_base.49" }
%"struct.std::_Vector_base.49" = 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.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::shared_ptr.58" = type { %"class.std::__shared_ptr.59" }
%"class.std::__shared_ptr.59" = type { ptr, %"class.std::__shared_count" }
%"class.NOMAD_4_3::ComputeSuccessType" = type { %"class.std::function" }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.NOMAD_4_3::Double" = type <{ ptr, double, i8, [7 x i8] }>
%"class.std::allocator" = type { i8 }
%"class.NOMAD_4_3::ArrayOfDouble" = type { ptr, i64, ptr }
%"class.std::shared_ptr.17" = type { %"class.std::__shared_ptr.18" }
%"class.std::__shared_ptr.18" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.74" = type { %"class.std::__shared_ptr.75" }
%"class.std::__shared_ptr.75" = type { ptr, %"class.std::__shared_count" }

@.str.9 = external hidden unnamed_addr constant [88 x i8], align 1
@_ZTIN9NOMAD_4_39ExceptionE = external constant ptr
@.str.11 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZN9NOMAD_4_3L3INFE = external hidden constant double, align 8
@.str.13 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE = external hidden constant i32, align 4
@.str.16 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [20 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: mustprogress uwtable
declare dso_local noundef ptr @_ZNK9NOMAD_4_34Step15getParentOfTypeIPNS_17MadsMegaIterationEEET_b(ptr noundef nonnull align 8 dereferenceable(140), i1 noundef zeroext) local_unnamed_addr #2 align 2

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

declare void @__cxa_free_exception(ptr) local_unnamed_addr

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN9NOMAD_4_310MadsUpdate6runImpEv(ptr noundef nonnull align 8 dereferenceable(140) %0) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::shared_ptr.14", align 8
  %3 = alloca %"class.std::shared_ptr.40", align 8
  %4 = alloca %"class.std::shared_ptr.43", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca i32, align 4
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::vector.48", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %13 = alloca %"class.std::shared_ptr.58", align 8
  %14 = alloca %"class.std::shared_ptr.58", align 8
  %15 = alloca %"class.std::shared_ptr.58", align 8
  %16 = alloca %"class.std::shared_ptr.58", align 8
  %17 = alloca %"class.NOMAD_4_3::ComputeSuccessType", align 8
  %18 = alloca %"class.std::shared_ptr.58", align 8
  %19 = alloca %"class.std::shared_ptr.58", align 8
  %20 = alloca %"class.std::shared_ptr.58", align 8
  %21 = alloca %"class.NOMAD_4_3::Double", align 8
  %22 = alloca %"class.std::shared_ptr.58", align 8
  %23 = alloca %"class.std::shared_ptr.58", align 8
  %24 = alloca %"class.std::shared_ptr.58", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca i32, align 4
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %33 = alloca %"class.NOMAD_4_3::Double", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %37 = alloca %"class.NOMAD_4_3::Double", align 8
  %38 = alloca %"class.std::shared_ptr.58", align 8
  %39 = alloca %"class.std::shared_ptr.58", align 8
  %40 = alloca %"class.NOMAD_4_3::Double", align 8
  %41 = alloca %"class.std::shared_ptr.58", align 8
  %42 = alloca %"class.std::shared_ptr.58", align 8
  %43 = alloca %"class.std::shared_ptr.58", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca i32, align 4
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %52 = alloca %"class.NOMAD_4_3::Double", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %56 = alloca %"class.NOMAD_4_3::Double", align 8
  %57 = alloca i32, align 4
  %58 = alloca %"class.std::shared_ptr.17", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator", align 1
  %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 %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::shared_ptr.74", align 8
  %73 = alloca %"class.std::shared_ptr.74", align 8
  %74 = alloca i32, align 4
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::allocator", align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %79 = alloca %"class.NOMAD_4_3::Double", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca i32, align 4
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::allocator", align 1
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %86 = alloca %"class.NOMAD_4_3::Double", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca i32, align 4
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::allocator", align 1
  %91 = alloca %"class.std::shared_ptr.74", align 8
  %92 = alloca i32, align 4
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::allocator", align 1
  %95 = alloca i32, align 4
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::allocator", align 1
  %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.NOMAD_4_3::ArrayOfDouble", align 8
  %105 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %106 = alloca %"class.NOMAD_4_3::Double", 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.NOMAD_4_3::ArrayOfDouble", align 8
  %111 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %112 = alloca %"class.NOMAD_4_3::Double", align 8
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #8
  call void @_ZN9NOMAD_4_312EvcInterface19getEvaluatorControlEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.14") align 8 %2)
  %114 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_316EvaluatorControlEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  br i1 %114, label %115, label %125

115:                                              ; preds = %1
  %116 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  %117 = invoke noundef i32 @_ZNK9NOMAD_4_316EvaluatorControl18getCurrentEvalTypeEi(ptr noundef nonnull align 8 dereferenceable(352) %116, i32 noundef -1)
          to label %118 unwind label %123

118:                                              ; preds = %115
  %119 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  %120 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_316EvaluatorControl14getComputeTypeEi(ptr noundef nonnull align 8 dereferenceable(352) %119, i32 noundef -1)
          to label %121 unwind label %123

121:                                              ; preds = %118
  %122 = load i32, ptr %120, align 4, !tbaa !5
  br label %125

123:                                              ; preds = %118, %115
  %124 = landingpad { ptr, i32 }
          cleanup
  br label %762

125:                                              ; preds = %121, %1
  %.031 = phi i32 [ %122, %121 ], [ 0, %1 ]
  %.0 = phi i32 [ %117, %121 ], [ 0, %1 ]
  %126 = invoke noundef ptr @_ZNK9NOMAD_4_34Step15getParentOfTypeIPNS_17MadsMegaIterationEEET_b(ptr noundef nonnull align 8 dereferenceable(140) %0, i1 noundef zeroext true)
          to label %127 unwind label %152

127:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #8
  %128 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9NOMAD_4_313MegaIteration10getBarrierEv(ptr noundef nonnull align 8 dereferenceable(172) %126)
  call void @_ZNSt10shared_ptrIN9NOMAD_4_311BarrierBaseEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %128) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #8
  %129 = load ptr, ptr %126, align 8, !tbaa !9
  %130 = getelementptr inbounds i8, ptr %129, i64 80
  %131 = load ptr, ptr %130, align 8
  invoke void %131(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.43") align 8 %4, ptr noundef nonnull align 8 dereferenceable(200) %126)
          to label %132 unwind label %154

132:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #8
  store i32 9, ptr %6, align 4, !tbaa !11
  %133 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %134 unwind label %156

134:                                              ; preds = %132
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #8
  br i1 %133, label %135, label %177

135:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8
  %136 = load ptr, ptr %0, align 8, !tbaa !9
  %137 = getelementptr inbounds i8, ptr %136, i64 16
  %138 = load ptr, ptr %137, align 8
  invoke void %138(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(140) %0)
          to label %139 unwind label %158

139:                                              ; preds = %135
  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.11, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %140 unwind label %160

140:                                              ; preds = %139
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.12)
          to label %141 unwind label %162

141:                                              ; preds = %140
  %142 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %143 unwind label %166

143:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #8
  %144 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %145 = load ptr, ptr %144, align 8, !tbaa !9
  %146 = getelementptr inbounds i8, ptr %145, i64 72
  %147 = load ptr, ptr %146, align 8
  invoke void %147(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.48") align 8 %10, ptr noundef nonnull align 8 dereferenceable(120) %144, i64 noundef 4)
          to label %148 unwind label %168

148:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #8
  %149 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  store ptr %149, ptr %11, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  %150 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  store ptr %150, ptr %12, align 8
  %151 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  br i1 %151, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %171, %148
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #8
  br label %177

152:                                              ; preds = %125
  %153 = landingpad { ptr, i32 }
          cleanup
  br label %762

154:                                              ; preds = %127
  %155 = landingpad { ptr, i32 }
          cleanup
  br label %761

156:                                              ; preds = %132
  %157 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #8
  br label %760

158:                                              ; preds = %135
  %159 = landingpad { ptr, i32 }
          cleanup
  br label %165

160:                                              ; preds = %139
  %161 = landingpad { ptr, i32 }
          cleanup
  br label %164

162:                                              ; preds = %140
  %163 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  br label %164

164:                                              ; preds = %162, %160
  %.pn = phi { ptr, i32 } [ %163, %162 ], [ %161, %160 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  br label %165

165:                                              ; preds = %164, %158
  %.pn.pn = phi { ptr, i32 } [ %.pn, %164 ], [ %159, %158 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  br label %760

166:                                              ; preds = %141
  %167 = landingpad { ptr, i32 }
          cleanup
  br label %760

168:                                              ; preds = %143
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %176

.lr.ph:                                           ; preds = %148, %171
  %170 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %170)
          to label %171 unwind label %174

171:                                              ; preds = %.lr.ph
  %172 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  %173 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  br i1 %173, label %.lr.ph, label %._crit_edge

174:                                              ; preds = %.lr.ph
  %175 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  br label %176

176:                                              ; preds = %174, %168
  %.pn209 = phi { ptr, i32 } [ %175, %174 ], [ %169, %168 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #8
  br label %760

177:                                              ; preds = %._crit_edge, %134
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #8
  %178 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  call void @_ZNK9NOMAD_4_311BarrierBase14getRefBestFeasEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.58") align 8 %13, ptr noundef nonnull align 8 dereferenceable(120) %178)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #8
  %179 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  call void @_ZNK9NOMAD_4_311BarrierBase13getRefBestInfEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.58") align 8 %14, ptr noundef nonnull align 8 dereferenceable(120) %179)
  %180 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %181 = load ptr, ptr %180, align 8, !tbaa !9
  %182 = getelementptr inbounds i8, ptr %181, i64 16
  %183 = load ptr, ptr %182, align 8
  invoke void %183(ptr noundef nonnull align 8 dereferenceable(120) %180)
          to label %184 unwind label %217

184:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #8
  %185 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %186 = load ptr, ptr %185, align 8, !tbaa !9
  %187 = getelementptr inbounds i8, ptr %186, i64 8
  %188 = load ptr, ptr %187, align 8
  invoke void %188(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.58") align 8 %15, ptr noundef nonnull align 8 dereferenceable(120) %185)
          to label %189 unwind label %219

189:                                              ; preds = %184
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #8
  %190 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %191 = load ptr, ptr %190, align 8, !tbaa !9
  %192 = getelementptr inbounds i8, ptr %191, i64 32
  %193 = load ptr, ptr %192, align 8
  invoke void %193(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.58") align 8 %16, ptr noundef nonnull align 8 dereferenceable(120) %190)
          to label %194 unwind label %221

194:                                              ; preds = %189
  %195 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  br i1 %195, label %198, label %196

196:                                              ; preds = %194
  %197 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  br i1 %197, label %198, label %688

198:                                              ; preds = %196, %194
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #8
  invoke void @_ZN9NOMAD_4_318ComputeSuccessTypeC2ENS_8EvalTypeENS_11ComputeTypeE(ptr noundef nonnull align 8 dereferenceable(32) %17, i32 noundef %.0, i32 noundef %.031)
          to label %199 unwind label %223

199:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #8
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #8
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %21, ptr noundef nonnull align 8 dereferenceable(8) @_ZN9NOMAD_4_3L3INFE)
          to label %200 unwind label %225

200:                                              ; preds = %199
  %201 = invoke noundef i32 @_ZN9NOMAD_4_318ComputeSuccessTypeclESt10shared_ptrINS_9EvalPointEES3_RKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull align 8 dereferenceable(17) %21)
          to label %202 unwind label %227

202:                                              ; preds = %200
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %21) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #8
  %203 = icmp sgt i32 %201, 2
  br i1 %203, label %204, label %303

204:                                              ; preds = %202
  %205 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #8
  %206 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @_ZNK9NOMAD_4_39EvalPoint12getPointFromEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.58") align 8 %22, ptr noundef nonnull align 8 dereferenceable(160) %206)
  %207 = call noundef zeroext i1 @_ZSteqIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %22) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #8
  br i1 %207, label %208, label %255

208:                                              ; preds = %204
  %209 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  br i1 %209, label %210, label %232

210:                                              ; preds = %208
  %211 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  %212 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN9NOMAD_4_317SubproblemManager11getInstanceEv()
          to label %213 unwind label %230

213:                                              ; preds = %210
  %214 = call noundef ptr @_ZNKSt10unique_ptrIN9NOMAD_4_317SubproblemManagerESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %212) #8
  %215 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56) %214, ptr noundef nonnull %0)
          to label %216 unwind label %230

216:                                              ; preds = %213
  invoke void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160) %211, ptr noundef nonnull %23, ptr noundef nonnull align 8 dereferenceable(24) %215)
          to label %.sink.split unwind label %230

217:                                              ; preds = %177
  %218 = landingpad { ptr, i32 }
          cleanup
  br label %759

219:                                              ; preds = %184
  %220 = landingpad { ptr, i32 }
          cleanup
  br label %758

221:                                              ; preds = %189
  %222 = landingpad { ptr, i32 }
          cleanup
  br label %757

223:                                              ; preds = %198
  %224 = landingpad { ptr, i32 }
          cleanup
  br label %687

225:                                              ; preds = %199
  %226 = landingpad { ptr, i32 }
          cleanup
  br label %229

227:                                              ; preds = %200
  %228 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %21) #8
  br label %229

229:                                              ; preds = %227, %225
  %.pn116 = phi { ptr, i32 } [ %228, %227 ], [ %226, %225 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #8
  br label %686

230:                                              ; preds = %216, %213, %210
  %231 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #8
  br label %686

232:                                              ; preds = %208
  %233 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  br i1 %233, label %234, label %243

234:                                              ; preds = %232
  %235 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  %236 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN9NOMAD_4_317SubproblemManager11getInstanceEv()
          to label %237 unwind label %241

237:                                              ; preds = %234
  %238 = call noundef ptr @_ZNKSt10unique_ptrIN9NOMAD_4_317SubproblemManagerESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %236) #8
  %239 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56) %238, ptr noundef nonnull %0)
          to label %240 unwind label %241

240:                                              ; preds = %237
  invoke void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160) %235, ptr noundef nonnull %24, ptr noundef nonnull align 8 dereferenceable(24) %239)
          to label %.sink.split unwind label %241

241:                                              ; preds = %240, %237, %234
  %242 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #8
  br label %686

243:                                              ; preds = %232
  %244 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %245 unwind label %.thread

245:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %246 unwind label %249

246:                                              ; preds = %245
  invoke void @_ZN9NOMAD_4_39ExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmS8_(ptr noundef nonnull align 8 dereferenceable(112) %244, ptr noundef nonnull align 8 dereferenceable(32) %25, i64 noundef 139, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %247 unwind label %251

247:                                              ; preds = %246
  invoke void @__cxa_throw(ptr nonnull %244, ptr nonnull @_ZTIN9NOMAD_4_39ExceptionE, ptr nonnull @_ZN9NOMAD_4_39ExceptionD2Ev) #9
          to label %763 unwind label %251

.thread:                                          ; preds = %243
  %248 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %254

249:                                              ; preds = %245
  %250 = landingpad { ptr, i32 }
          cleanup
  br label %253

251:                                              ; preds = %247, %246
  %.032 = phi i1 [ false, %247 ], [ true, %246 ]
  %252 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %253

253:                                              ; preds = %249, %251
  %.pn133 = phi { ptr, i32 } [ %252, %251 ], [ %250, %249 ]
  %.133 = phi i1 [ %.032, %251 ], [ true, %249 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br i1 %.133, label %254, label %686

254:                                              ; preds = %.thread, %253
  %.pn133.pn218 = phi { ptr, i32 } [ %248, %.thread ], [ %.pn133, %253 ]
  call void @__cxa_free_exception(ptr %244) #8
  br label %686

.sink.split:                                      ; preds = %240, %216
  %.sink = phi ptr [ %23, %216 ], [ %24, %240 ]
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %.sink) #8
  br label %255

255:                                              ; preds = %.sink.split, %204
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #8
  store i32 9, ptr %29, align 4, !tbaa !11
  %256 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %257 unwind label %277

257:                                              ; preds = %255
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #8
  br i1 %256, label %258, label %.thread223

258:                                              ; preds = %257
  %259 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  br i1 %259, label %260, label %.thread223

260:                                              ; preds = %258
  %261 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.14)
          to label %262 unwind label %279

262:                                              ; preds = %260
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %263 unwind label %279

263:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #8
  %264 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %32) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %33) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %265 unwind label %281

265:                                              ; preds = %263
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %266 unwind label %283

266:                                              ; preds = %265
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(160) %264, ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %267 unwind label %285

267:                                              ; preds = %266
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull @.str.15, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %268 unwind label %287

268:                                              ; preds = %267
  %269 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %33) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %270 unwind label %279

270:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #8
  %271 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %36) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %37) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %37)
          to label %272 unwind label %292

272:                                              ; preds = %270
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %37)
          to label %273 unwind label %294

273:                                              ; preds = %272
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(160) %271, ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %274 unwind label %296

274:                                              ; preds = %273
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull @.str.16, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %275 unwind label %298

275:                                              ; preds = %274
  %276 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %37) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %.thread223 unwind label %279

277:                                              ; preds = %255
  %278 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #8
  br label %686

279:                                              ; preds = %406, %404, %275, %268, %262, %260
  %280 = landingpad { ptr, i32 }
          cleanup
  br label %686

281:                                              ; preds = %263
  %282 = landingpad { ptr, i32 }
          cleanup
  br label %291

283:                                              ; preds = %265
  %284 = landingpad { ptr, i32 }
          cleanup
  br label %290

285:                                              ; preds = %266
  %286 = landingpad { ptr, i32 }
          cleanup
  br label %289

287:                                              ; preds = %267
  %288 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %289

289:                                              ; preds = %287, %285
  %.pn136 = phi { ptr, i32 } [ %288, %287 ], [ %286, %285 ]
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #8
  br label %290

290:                                              ; preds = %289, %283
  %.pn136.pn = phi { ptr, i32 } [ %.pn136, %289 ], [ %284, %283 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %33) #8
  br label %291

291:                                              ; preds = %290, %281
  %.pn136.pn.pn = phi { ptr, i32 } [ %.pn136.pn, %290 ], [ %282, %281 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  br label %686

292:                                              ; preds = %270
  %293 = landingpad { ptr, i32 }
          cleanup
  br label %302

294:                                              ; preds = %272
  %295 = landingpad { ptr, i32 }
          cleanup
  br label %301

296:                                              ; preds = %273
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %300

298:                                              ; preds = %274
  %299 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  br label %300

300:                                              ; preds = %298, %296
  %.pn140 = phi { ptr, i32 } [ %299, %298 ], [ %297, %296 ]
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #8
  br label %301

301:                                              ; preds = %300, %294
  %.pn140.pn = phi { ptr, i32 } [ %.pn140, %300 ], [ %295, %294 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %37) #8
  br label %302

302:                                              ; preds = %301, %292
  %.pn140.pn.pn = phi { ptr, i32 } [ %.pn140.pn, %301 ], [ %293, %292 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  br label %686

303:                                              ; preds = %202
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %40) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %40, ptr noundef nonnull align 8 dereferenceable(8) @_ZN9NOMAD_4_3L3INFE)
          to label %304 unwind label %308

304:                                              ; preds = %303
  %305 = invoke noundef i32 @_ZN9NOMAD_4_318ComputeSuccessTypeclESt10shared_ptrINS_9EvalPointEES3_RKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull align 8 dereferenceable(17) %40)
          to label %306 unwind label %310

306:                                              ; preds = %304
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %40) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #8
  %spec.select = call i32 @llvm.smax.i32(i32 %305, i32 %201)
  %307 = icmp sgt i32 %spec.select, 2
  br i1 %307, label %313, label %399

308:                                              ; preds = %303
  %309 = landingpad { ptr, i32 }
          cleanup
  br label %312

310:                                              ; preds = %304
  %311 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %40) #8
  br label %312

312:                                              ; preds = %310, %308
  %.pn118 = phi { ptr, i32 } [ %311, %310 ], [ %309, %308 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #8
  br label %686

313:                                              ; preds = %306
  %314 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #8
  %315 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @_ZNK9NOMAD_4_39EvalPoint12getPointFromEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.58") align 8 %41, ptr noundef nonnull align 8 dereferenceable(160) %315)
  %316 = call noundef zeroext i1 @_ZSteqIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %41) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #8
  br i1 %316, label %317, label %351

317:                                              ; preds = %313
  %318 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  br i1 %318, label %319, label %328

319:                                              ; preds = %317
  %320 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  %321 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN9NOMAD_4_317SubproblemManager11getInstanceEv()
          to label %322 unwind label %326

322:                                              ; preds = %319
  %323 = call noundef ptr @_ZNKSt10unique_ptrIN9NOMAD_4_317SubproblemManagerESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %321) #8
  %324 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56) %323, ptr noundef nonnull %0)
          to label %325 unwind label %326

325:                                              ; preds = %322
  invoke void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160) %320, ptr noundef nonnull %42, ptr noundef nonnull align 8 dereferenceable(24) %324)
          to label %.sink.split227 unwind label %326

326:                                              ; preds = %325, %322, %319
  %327 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #8
  br label %686

328:                                              ; preds = %317
  %329 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  br i1 %329, label %330, label %339

330:                                              ; preds = %328
  %331 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  %332 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN9NOMAD_4_317SubproblemManager11getInstanceEv()
          to label %333 unwind label %337

333:                                              ; preds = %330
  %334 = call noundef ptr @_ZNKSt10unique_ptrIN9NOMAD_4_317SubproblemManagerESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %332) #8
  %335 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56) %334, ptr noundef nonnull %0)
          to label %336 unwind label %337

336:                                              ; preds = %333
  invoke void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160) %331, ptr noundef nonnull %43, ptr noundef nonnull align 8 dereferenceable(24) %335)
          to label %.sink.split227 unwind label %337

337:                                              ; preds = %336, %333, %330
  %338 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #8
  br label %686

339:                                              ; preds = %328
  %340 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %45) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %341 unwind label %.thread219

341:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %342 unwind label %345

342:                                              ; preds = %341
  invoke void @_ZN9NOMAD_4_39ExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmS8_(ptr noundef nonnull align 8 dereferenceable(112) %340, ptr noundef nonnull align 8 dereferenceable(32) %44, i64 noundef 174, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %343 unwind label %347

343:                                              ; preds = %342
  invoke void @__cxa_throw(ptr nonnull %340, ptr nonnull @_ZTIN9NOMAD_4_39ExceptionE, ptr nonnull @_ZN9NOMAD_4_39ExceptionD2Ev) #9
          to label %763 unwind label %347

.thread219:                                       ; preds = %339
  %344 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  br label %350

345:                                              ; preds = %341
  %346 = landingpad { ptr, i32 }
          cleanup
  br label %349

347:                                              ; preds = %343, %342
  %.030 = phi i1 [ false, %343 ], [ true, %342 ]
  %348 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %349

349:                                              ; preds = %345, %347
  %.pn120 = phi { ptr, i32 } [ %348, %347 ], [ %346, %345 ]
  %.1 = phi i1 [ %.030, %347 ], [ true, %345 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  br i1 %.1, label %350, label %686

350:                                              ; preds = %.thread219, %349
  %.pn120.pn222 = phi { ptr, i32 } [ %344, %.thread219 ], [ %.pn120, %349 ]
  call void @__cxa_free_exception(ptr %340) #8
  br label %686

.sink.split227:                                   ; preds = %336, %325
  %.sink228 = phi ptr [ %42, %325 ], [ %43, %336 ]
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %.sink228) #8
  br label %351

351:                                              ; preds = %.sink.split227, %313
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %48) #8
  store i32 9, ptr %48, align 4, !tbaa !11
  %352 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %48)
          to label %353 unwind label %373

353:                                              ; preds = %351
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #8
  br i1 %352, label %354, label %.thread223

354:                                              ; preds = %353
  %355 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  br i1 %355, label %356, label %.thread223

356:                                              ; preds = %354
  %357 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.18)
          to label %358 unwind label %375

358:                                              ; preds = %356
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %359 unwind label %375

359:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #8
  %360 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %51) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %52) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %52)
          to label %361 unwind label %377

361:                                              ; preds = %359
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %51, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %52)
          to label %362 unwind label %379

362:                                              ; preds = %361
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(160) %360, ptr noundef nonnull align 8 dereferenceable(24) %51, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %363 unwind label %381

363:                                              ; preds = %362
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull @.str.15, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %364 unwind label %383

364:                                              ; preds = %363
  %365 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %52) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %366 unwind label %375

366:                                              ; preds = %364
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #8
  %367 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %55) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %56) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %56)
          to label %368 unwind label %388

368:                                              ; preds = %366
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %55, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %56)
          to label %369 unwind label %390

369:                                              ; preds = %368
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(160) %367, ptr noundef nonnull align 8 dereferenceable(24) %55, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %370 unwind label %392

370:                                              ; preds = %369
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull @.str.16, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %371 unwind label %394

371:                                              ; preds = %370
  %372 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %56) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %.thread223 unwind label %375

373:                                              ; preds = %351
  %374 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #8
  br label %686

375:                                              ; preds = %371, %364, %358, %356
  %376 = landingpad { ptr, i32 }
          cleanup
  br label %686

377:                                              ; preds = %359
  %378 = landingpad { ptr, i32 }
          cleanup
  br label %387

379:                                              ; preds = %361
  %380 = landingpad { ptr, i32 }
          cleanup
  br label %386

381:                                              ; preds = %362
  %382 = landingpad { ptr, i32 }
          cleanup
  br label %385

383:                                              ; preds = %363
  %384 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %385

385:                                              ; preds = %383, %381
  %.pn123 = phi { ptr, i32 } [ %384, %383 ], [ %382, %381 ]
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #8
  br label %386

386:                                              ; preds = %385, %379
  %.pn123.pn = phi { ptr, i32 } [ %.pn123, %385 ], [ %380, %379 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %52) #8
  br label %387

387:                                              ; preds = %386, %377
  %.pn123.pn.pn = phi { ptr, i32 } [ %.pn123.pn, %386 ], [ %378, %377 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  br label %686

388:                                              ; preds = %366
  %389 = landingpad { ptr, i32 }
          cleanup
  br label %398

390:                                              ; preds = %368
  %391 = landingpad { ptr, i32 }
          cleanup
  br label %397

392:                                              ; preds = %369
  %393 = landingpad { ptr, i32 }
          cleanup
  br label %396

394:                                              ; preds = %370
  %395 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %396

396:                                              ; preds = %394, %392
  %.pn127 = phi { ptr, i32 } [ %395, %394 ], [ %393, %392 ]
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #8
  br label %397

397:                                              ; preds = %396, %390
  %.pn127.pn = phi { ptr, i32 } [ %.pn127, %396 ], [ %391, %390 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %56) #8
  br label %398

398:                                              ; preds = %397, %388
  %.pn127.pn.pn = phi { ptr, i32 } [ %.pn127.pn, %397 ], [ %389, %388 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  br label %686

399:                                              ; preds = %306
  %400 = icmp eq i32 %spec.select, 2
  br i1 %400, label %401, label %.thread223

401:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %57) #8
  store i32 9, ptr %57, align 4, !tbaa !11
  %402 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %57)
          to label %403 unwind label %407

403:                                              ; preds = %401
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %57) #8
  br i1 %402, label %404, label %.thread223

404:                                              ; preds = %403
  %405 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.19)
          to label %406 unwind label %279

406:                                              ; preds = %404
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %.thread223 unwind label %279

407:                                              ; preds = %401
  %408 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %57) #8
  br label %686

.thread223:                                       ; preds = %354, %371, %353, %257, %258, %275, %403, %406, %399
  %.136225 = phi i32 [ 2, %403 ], [ 2, %406 ], [ %spec.select, %399 ], [ %spec.select, %354 ], [ %spec.select, %371 ], [ %spec.select, %353 ], [ %201, %257 ], [ %201, %258 ], [ %201, %275 ]
  %409 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_316EvaluatorControlEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  br i1 %409, label %410, label %422

410:                                              ; preds = %.thread223
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %58) #8
  %411 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  call void @_ZNK9NOMAD_4_316EvaluatorControl31getEvaluatorControlGlobalParamsEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.17") align 8 %58, ptr noundef nonnull align 8 dereferenceable(352) %411)
  %412 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_332EvaluatorControlGlobalParametersELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %413 unwind label %417

413:                                              ; preds = %410
  %414 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK9NOMAD_4_310Parameters17getAttributeValueIbEERKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(496) %412, ptr noundef nonnull align 8 dereferenceable(32) %59, i1 noundef zeroext false)
          to label %415 unwind label %419

415:                                              ; preds = %413
  %416 = load i8, ptr %414, align 1, !tbaa !13, !range !15, !noundef !16
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_332EvaluatorControlGlobalParametersELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #8
  br label %422

417:                                              ; preds = %410
  %418 = landingpad { ptr, i32 }
          cleanup
  br label %421

419:                                              ; preds = %413
  %420 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  br label %421

421:                                              ; preds = %419, %417
  %.pn144 = phi { ptr, i32 } [ %420, %419 ], [ %418, %417 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_332EvaluatorControlGlobalParametersELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #8
  br label %686

422:                                              ; preds = %415, %.thread223
  %.029 = phi i8 [ %416, %415 ], [ 1, %.thread223 ]
  %423 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_34Step14getSuccessTypeEv(ptr noundef nonnull align 8 dereferenceable(140) %126)
  %424 = trunc nuw i8 %.029 to i1
  %425 = load i32, ptr %423, align 4
  %.not = icmp eq i32 %425, 0
  %or.cond215 = select i1 %424, i1 true, i1 %.not
  br i1 %or.cond215, label %520, label %426

426:                                              ; preds = %422
  %427 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_34Step14getSuccessTypeEv(ptr noundef nonnull align 8 dereferenceable(140) %126)
  %428 = load i32, ptr %427, align 4, !tbaa !17
  %.not146 = icmp eq i32 %.136225, %428
  br i1 %.not146, label %520, label %429

429:                                              ; preds = %426
  %430 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.21)
          to label %431 unwind label %448

431:                                              ; preds = %429
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #8
  %432 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_34Step14getSuccessTypeEv(ptr noundef nonnull align 8 dereferenceable(140) %126)
  %433 = load i32, ptr %432, align 4, !tbaa !17
  invoke void @_ZN9NOMAD_4_37enumStrB5cxx11ENS_11SuccessTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, i32 noundef %433)
          to label %434 unwind label %450

434:                                              ; preds = %431
  %435 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %436 unwind label %452

436:                                              ; preds = %434
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #8
  invoke void @_ZN9NOMAD_4_37enumStrB5cxx11ENS_11SuccessTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %63, i32 noundef %.136225)
          to label %437 unwind label %455

437:                                              ; preds = %436
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull @.str.22, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %438 unwind label %457

438:                                              ; preds = %437
  %439 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %440 unwind label %459

440:                                              ; preds = %438
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #8
  %441 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  br i1 %441, label %442, label %471

442:                                              ; preds = %440
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #8
  %443 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(160) %443, i32 noundef 0)
          to label %444 unwind label %463

444:                                              ; preds = %442
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull @.str.23, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %445 unwind label %465

445:                                              ; preds = %444
  %446 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %447 unwind label %467

447:                                              ; preds = %445
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #8
  br label %471

448:                                              ; preds = %680, %519, %429
  %449 = landingpad { ptr, i32 }
          cleanup
  br label %686

450:                                              ; preds = %431
  %451 = landingpad { ptr, i32 }
          cleanup
  br label %454

452:                                              ; preds = %434
  %453 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  br label %454

454:                                              ; preds = %452, %450
  %.pn147 = phi { ptr, i32 } [ %453, %452 ], [ %451, %450 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #8
  br label %686

455:                                              ; preds = %436
  %456 = landingpad { ptr, i32 }
          cleanup
  br label %462

457:                                              ; preds = %437
  %458 = landingpad { ptr, i32 }
          cleanup
  br label %461

459:                                              ; preds = %438
  %460 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %461

461:                                              ; preds = %459, %457
  %.pn149 = phi { ptr, i32 } [ %460, %459 ], [ %458, %457 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %462

462:                                              ; preds = %461, %455
  %.pn149.pn = phi { ptr, i32 } [ %.pn149, %461 ], [ %456, %455 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #8
  br label %686

463:                                              ; preds = %442
  %464 = landingpad { ptr, i32 }
          cleanup
  br label %470

465:                                              ; preds = %444
  %466 = landingpad { ptr, i32 }
          cleanup
  br label %469

467:                                              ; preds = %445
  %468 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  br label %469

469:                                              ; preds = %467, %465
  %.pn152 = phi { ptr, i32 } [ %468, %467 ], [ %466, %465 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  br label %470

470:                                              ; preds = %469, %463
  %.pn152.pn = phi { ptr, i32 } [ %.pn152, %469 ], [ %464, %463 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #8
  br label %686

471:                                              ; preds = %447, %440
  %472 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  br i1 %472, label %473, label %487

473:                                              ; preds = %471
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #8
  %474 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(160) %474, i32 noundef 0)
          to label %475 unwind label %479

475:                                              ; preds = %473
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull @.str.24, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %476 unwind label %481

476:                                              ; preds = %475
  %477 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %478 unwind label %483

478:                                              ; preds = %476
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  br label %487

479:                                              ; preds = %473
  %480 = landingpad { ptr, i32 }
          cleanup
  br label %486

481:                                              ; preds = %475
  %482 = landingpad { ptr, i32 }
          cleanup
  br label %485

483:                                              ; preds = %476
  %484 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %485

485:                                              ; preds = %483, %481
  %.pn155 = phi { ptr, i32 } [ %484, %483 ], [ %482, %481 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %486

486:                                              ; preds = %485, %479
  %.pn155.pn = phi { ptr, i32 } [ %.pn155, %485 ], [ %480, %479 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  br label %686

487:                                              ; preds = %478, %471
  %488 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  br i1 %488, label %489, label %503

489:                                              ; preds = %487
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #8
  %490 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 8 dereferenceable(160) %490, i32 noundef 0)
          to label %491 unwind label %495

491:                                              ; preds = %489
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull @.str.25, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %492 unwind label %497

492:                                              ; preds = %491
  %493 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %494 unwind label %499

494:                                              ; preds = %492
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #8
  br label %503

495:                                              ; preds = %489
  %496 = landingpad { ptr, i32 }
          cleanup
  br label %502

497:                                              ; preds = %491
  %498 = landingpad { ptr, i32 }
          cleanup
  br label %501

499:                                              ; preds = %492
  %500 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  br label %501

501:                                              ; preds = %499, %497
  %.pn158 = phi { ptr, i32 } [ %500, %499 ], [ %498, %497 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  br label %502

502:                                              ; preds = %501, %495
  %.pn158.pn = phi { ptr, i32 } [ %.pn158, %501 ], [ %496, %495 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #8
  br label %686

503:                                              ; preds = %494, %487
  %504 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  br i1 %504, label %505, label %519

505:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #8
  %506 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(160) %506, i32 noundef 0)
          to label %507 unwind label %511

507:                                              ; preds = %505
  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.26, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %508 unwind label %513

508:                                              ; preds = %507
  %509 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %510 unwind label %515

510:                                              ; preds = %508
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #8
  br label %519

511:                                              ; preds = %505
  %512 = landingpad { ptr, i32 }
          cleanup
  br label %518

513:                                              ; preds = %507
  %514 = landingpad { ptr, i32 }
          cleanup
  br label %517

515:                                              ; preds = %508
  %516 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  br label %517

517:                                              ; preds = %515, %513
  %.pn161 = phi { ptr, i32 } [ %516, %515 ], [ %514, %513 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  br label %518

518:                                              ; preds = %517, %511
  %.pn161.pn = phi { ptr, i32 } [ %.pn161, %517 ], [ %512, %511 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #8
  br label %686

519:                                              ; preds = %510, %503
  invoke void @_ZNK9NOMAD_4_34Step16AddOutputWarningERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %520 unwind label %448

520:                                              ; preds = %519, %426, %422
  %521 = icmp eq i32 %.0, 0
  br i1 %521, label %522, label %614

522:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %72) #8
  %523 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  br i1 %523, label %524, label %526

524:                                              ; preds = %522
  %525 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  call void @_ZNK9NOMAD_4_39EvalPoint12getDirectionEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.74") align 8 %72, ptr noundef nonnull align 8 dereferenceable(160) %525)
  br label %527

526:                                              ; preds = %522
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39DirectionEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %72, ptr null) #8
  br label %527

527:                                              ; preds = %526, %524
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %73) #8
  %528 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  br i1 %528, label %529, label %531

529:                                              ; preds = %527
  %530 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @_ZNK9NOMAD_4_39EvalPoint12getDirectionEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.74") align 8 %73, ptr noundef nonnull align 8 dereferenceable(160) %530)
  br label %532

531:                                              ; preds = %527
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39DirectionEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr null) #8
  br label %532

532:                                              ; preds = %531, %529
  %533 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39DirectionEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %72) #8
  br i1 %533, label %534, label %568

534:                                              ; preds = %532
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %74) #8
  store i32 7, ptr %74, align 4, !tbaa !11
  %535 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %74)
          to label %536 unwind label %549

536:                                              ; preds = %534
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %74) #8
  br i1 %535, label %537, label %568

537:                                              ; preds = %536
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %76) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %538 unwind label %551

538:                                              ; preds = %537
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #8
  %539 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %72) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %78) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %79) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %79)
          to label %540 unwind label %553

540:                                              ; preds = %538
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %79)
          to label %541 unwind label %555

541:                                              ; preds = %540
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %80) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  %542 = load ptr, ptr %539, align 8, !tbaa !9
  %543 = getelementptr inbounds i8, ptr %542, i64 48
  %544 = load ptr, ptr %543, align 8
  invoke void %544(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(24) %539, ptr noundef nonnull align 8 dereferenceable(24) %78, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %545 unwind label %557

545:                                              ; preds = %541
  %546 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %547 unwind label %559

547:                                              ; preds = %545
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %79) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %79) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #8
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %75, i32 noundef 7)
          to label %548 unwind label %564

548:                                              ; preds = %547
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #8
  br label %568

549:                                              ; preds = %534
  %550 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %74) #8
  br label %613

551:                                              ; preds = %537
  %552 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #8
  br label %567

553:                                              ; preds = %538
  %554 = landingpad { ptr, i32 }
          cleanup
  br label %563

555:                                              ; preds = %540
  %556 = landingpad { ptr, i32 }
          cleanup
  br label %562

557:                                              ; preds = %541
  %558 = landingpad { ptr, i32 }
          cleanup
  br label %561

559:                                              ; preds = %545
  %560 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  br label %561

561:                                              ; preds = %559, %557
  %.pn164 = phi { ptr, i32 } [ %560, %559 ], [ %558, %557 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #8
  br label %562

562:                                              ; preds = %561, %555
  %.pn164.pn = phi { ptr, i32 } [ %.pn164, %561 ], [ %556, %555 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %79) #8
  br label %563

563:                                              ; preds = %562, %553
  %.pn164.pn.pn = phi { ptr, i32 } [ %.pn164.pn, %562 ], [ %554, %553 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %79) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #8
  br label %566

564:                                              ; preds = %547
  %565 = landingpad { ptr, i32 }
          cleanup
  br label %566

566:                                              ; preds = %564, %563
  %.pn168 = phi { ptr, i32 } [ %565, %564 ], [ %.pn164.pn.pn, %563 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  br label %567

567:                                              ; preds = %566, %551
  %.pn168.pn = phi { ptr, i32 } [ %.pn168, %566 ], [ %552, %551 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #8
  br label %613

568:                                              ; preds = %536, %548, %532
  %569 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39DirectionEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %73) #8
  br i1 %569, label %570, label %604

570:                                              ; preds = %568
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %81) #8
  store i32 7, ptr %81, align 4, !tbaa !11
  %571 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %81)
          to label %572 unwind label %585

572:                                              ; preds = %570
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %81) #8
  br i1 %571, label %573, label %604

573:                                              ; preds = %572
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %83) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %83)
          to label %574 unwind label %587

574:                                              ; preds = %573
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %83) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %84) #8
  %575 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %73) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %85) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %86) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %86)
          to label %576 unwind label %589

576:                                              ; preds = %574
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %86)
          to label %577 unwind label %591

577:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  %578 = load ptr, ptr %575, align 8, !tbaa !9
  %579 = getelementptr inbounds i8, ptr %578, i64 48
  %580 = load ptr, ptr %579, align 8
  invoke void %580(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %84, ptr noundef nonnull align 8 dereferenceable(24) %575, ptr noundef nonnull align 8 dereferenceable(24) %85, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %581 unwind label %593

581:                                              ; preds = %577
  %582 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(32) %84)
          to label %583 unwind label %595

583:                                              ; preds = %581
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %85) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %86) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %86) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %85) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #8
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %82, i32 noundef 7)
          to label %584 unwind label %600

584:                                              ; preds = %583
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #8
  br label %604

585:                                              ; preds = %570
  %586 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %81) #8
  br label %613

587:                                              ; preds = %573
  %588 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %83) #8
  br label %603

589:                                              ; preds = %574
  %590 = landingpad { ptr, i32 }
          cleanup
  br label %599

591:                                              ; preds = %576
  %592 = landingpad { ptr, i32 }
          cleanup
  br label %598

593:                                              ; preds = %577
  %594 = landingpad { ptr, i32 }
          cleanup
  br label %597

595:                                              ; preds = %581
  %596 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  br label %597

597:                                              ; preds = %595, %593
  %.pn171 = phi { ptr, i32 } [ %596, %595 ], [ %594, %593 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %85) #8
  br label %598

598:                                              ; preds = %597, %591
  %.pn171.pn = phi { ptr, i32 } [ %.pn171, %597 ], [ %592, %591 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %86) #8
  br label %599

599:                                              ; preds = %598, %589
  %.pn171.pn.pn = phi { ptr, i32 } [ %.pn171.pn, %598 ], [ %590, %589 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %86) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %85) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #8
  br label %602

600:                                              ; preds = %583
  %601 = landingpad { ptr, i32 }
          cleanup
  br label %602

602:                                              ; preds = %600, %599
  %.pn175 = phi { ptr, i32 } [ %601, %600 ], [ %.pn171.pn.pn, %599 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  br label %603

603:                                              ; preds = %602, %587
  %.pn175.pn = phi { ptr, i32 } [ %.pn175, %602 ], [ %588, %587 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #8
  br label %613

604:                                              ; preds = %572, %584, %568
  %605 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_316EvaluatorControlEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  br i1 %605, label %606, label %612

606:                                              ; preds = %604
  %607 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  invoke void @_ZN9NOMAD_4_316EvaluatorControl24setLastSuccessfulFeasDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352) %607, ptr noundef nonnull align 8 dereferenceable(16) %72)
          to label %608 unwind label %610

608:                                              ; preds = %606
  %609 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  invoke void @_ZN9NOMAD_4_316EvaluatorControl23setLastSuccessfulInfDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352) %609, ptr noundef nonnull align 8 dereferenceable(16) %73)
          to label %612 unwind label %610

610:                                              ; preds = %608, %606
  %611 = landingpad { ptr, i32 }
          cleanup
  br label %613

612:                                              ; preds = %608, %604
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %73) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %72) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #8
  br label %614

613:                                              ; preds = %610, %603, %585, %567, %549
  %.pn178 = phi { ptr, i32 } [ %611, %610 ], [ %.pn175.pn, %603 ], [ %586, %585 ], [ %.pn168.pn, %567 ], [ %550, %549 ]
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %73) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %72) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #8
  br label %686

614:                                              ; preds = %612, %520
  %615 = icmp sgt i32 %.136225, 2
  br i1 %615, label %616, label %667

616:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %88) #8
  store i32 7, ptr %88, align 4, !tbaa !11
  %617 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %88)
          to label %618 unwind label %622

618:                                              ; preds = %616
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %88) #8
  %619 = icmp eq i32 %.136225, 3
  %or.cond = and i1 %619, %617
  br i1 %or.cond, label %620, label %629

620:                                              ; preds = %618
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %90) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %90)
          to label %621 unwind label %624

621:                                              ; preds = %620
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %89, i32 noundef 7)
          to label %.thread226 unwind label %626

.thread226:                                       ; preds = %621
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %90) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #8
  br label %685

622:                                              ; preds = %616
  %623 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %88) #8
  br label %686

624:                                              ; preds = %620
  %625 = landingpad { ptr, i32 }
          cleanup
  br label %628

626:                                              ; preds = %621
  %627 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  br label %628

628:                                              ; preds = %626, %624
  %.pn182 = phi { ptr, i32 } [ %627, %626 ], [ %625, %624 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %90) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #8
  br label %686

629:                                              ; preds = %618
  br i1 %619, label %685, label %630

630:                                              ; preds = %629
  %631 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %91) #8
  %632 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @_ZNK9NOMAD_4_39EvalPoint12getDirectionEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.74") align 8 %91, ptr noundef nonnull align 8 dereferenceable(160) %632)
  %633 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  %634 = load ptr, ptr %631, align 8, !tbaa !9
  %635 = getelementptr inbounds i8, ptr %634, i64 32
  %636 = load ptr, ptr %635, align 8
  %637 = invoke noundef zeroext i1 %636(ptr noundef nonnull align 8 dereferenceable(257) %631, ptr noundef nonnull align 8 dereferenceable(24) %633)
          to label %638 unwind label %645

638:                                              ; preds = %630
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %91) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %91) #8
  br i1 %637, label %639, label %654

639:                                              ; preds = %638
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %92) #8
  store i32 7, ptr %92, align 4, !tbaa !11
  %640 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %92)
          to label %641 unwind label %647

641:                                              ; preds = %639
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %92) #8
  br i1 %640, label %642, label %685

642:                                              ; preds = %641
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %94) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %94)
          to label %643 unwind label %649

643:                                              ; preds = %642
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %93, i32 noundef 7)
          to label %644 unwind label %651

644:                                              ; preds = %643
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #8
  br label %685

645:                                              ; preds = %630
  %646 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %91) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %91) #8
  br label %686

647:                                              ; preds = %639
  %648 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %92) #8
  br label %686

649:                                              ; preds = %642
  %650 = landingpad { ptr, i32 }
          cleanup
  br label %653

651:                                              ; preds = %643
  %652 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  br label %653

653:                                              ; preds = %651, %649
  %.pn187 = phi { ptr, i32 } [ %652, %651 ], [ %650, %649 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #8
  br label %686

654:                                              ; preds = %638
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %95) #8
  store i32 7, ptr %95, align 4, !tbaa !11
  %655 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %95)
          to label %656 unwind label %660

656:                                              ; preds = %654
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %95) #8
  br i1 %655, label %657, label %685

657:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %96) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %97) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %97)
          to label %658 unwind label %662

658:                                              ; preds = %657
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %96, i32 noundef 7)
          to label %659 unwind label %664

659:                                              ; preds = %658
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %97) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #8
  br label %685

660:                                              ; preds = %654
  %661 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %95) #8
  br label %686

662:                                              ; preds = %657
  %663 = landingpad { ptr, i32 }
          cleanup
  br label %666

664:                                              ; preds = %658
  %665 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #8
  br label %666

666:                                              ; preds = %664, %662
  %.pn185 = phi { ptr, i32 } [ %665, %664 ], [ %663, %662 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %97) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #8
  br label %686

667:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %98) #8
  store i32 7, ptr %98, align 4, !tbaa !11
  %668 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %98)
          to label %669 unwind label %673

669:                                              ; preds = %667
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %98) #8
  br i1 %668, label %670, label %680

670:                                              ; preds = %669
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %99) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %100) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %100)
          to label %671 unwind label %675

671:                                              ; preds = %670
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %99, i32 noundef 7)
          to label %672 unwind label %677

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

673:                                              ; preds = %667
  %674 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %98) #8
  br label %686

675:                                              ; preds = %670
  %676 = landingpad { ptr, i32 }
          cleanup
  br label %679

677:                                              ; preds = %671
  %678 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #8
  br label %679

679:                                              ; preds = %677, %675
  %.pn180 = phi { ptr, i32 } [ %678, %677 ], [ %676, %675 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %100) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #8
  br label %686

680:                                              ; preds = %672, %669
  %681 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %682 = load ptr, ptr %681, align 8, !tbaa !9
  %683 = getelementptr inbounds i8, ptr %682, i64 40
  %684 = load ptr, ptr %683, align 8
  invoke void %684(ptr noundef nonnull align 8 dereferenceable(257) %681)
          to label %685 unwind label %448

685:                                              ; preds = %.thread226, %680, %629, %656, %659, %641, %644
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #8
  call void @_ZN9NOMAD_4_318ComputeSuccessTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  br label %688

686:                                              ; preds = %421, %679, %673, %666, %660, %653, %647, %645, %628, %622, %613, %518, %502, %486, %470, %462, %454, %448, %312, %326, %337, %373, %375, %387, %398, %350, %349, %253, %254, %407, %302, %291, %279, %277, %241, %230, %229
  %.pn187.pn.pn.pn = phi { ptr, i32 } [ %280, %279 ], [ %408, %407 ], [ %.pn140.pn.pn, %302 ], [ %.pn136.pn.pn, %291 ], [ %278, %277 ], [ %231, %230 ], [ %242, %241 ], [ %.pn133.pn218, %254 ], [ %.pn133, %253 ], [ %.pn116, %229 ], [ %376, %375 ], [ %.pn127.pn.pn, %398 ], [ %.pn123.pn.pn, %387 ], [ %374, %373 ], [ %327, %326 ], [ %338, %337 ], [ %.pn120.pn222, %350 ], [ %.pn120, %349 ], [ %.pn118, %312 ], [ %.pn144, %421 ], [ %.pn187, %653 ], [ %648, %647 ], [ %.pn185, %666 ], [ %661, %660 ], [ %646, %645 ], [ %.pn182, %628 ], [ %623, %622 ], [ %449, %448 ], [ %.pn180, %679 ], [ %674, %673 ], [ %.pn178, %613 ], [ %.pn161.pn, %518 ], [ %.pn158.pn, %502 ], [ %.pn155.pn, %486 ], [ %.pn152.pn, %470 ], [ %.pn149.pn, %462 ], [ %.pn147, %454 ]
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #8
  call void @_ZN9NOMAD_4_318ComputeSuccessTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %687

687:                                              ; preds = %686, %223
  %.pn187.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn, %686 ], [ %224, %223 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  br label %756

688:                                              ; preds = %685, %196
  %689 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %690 = load ptr, ptr %689, align 8, !tbaa !9
  %691 = getelementptr inbounds i8, ptr %690, i64 24
  %692 = load ptr, ptr %691, align 8
  invoke void %692(ptr noundef nonnull align 8 dereferenceable(257) %689)
          to label %693 unwind label %717

693:                                              ; preds = %688
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %101) #8
  store i32 7, ptr %101, align 4, !tbaa !11
  %694 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %101)
          to label %695 unwind label %719

695:                                              ; preds = %693
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %101) #8
  br i1 %694, label %696, label %755

696:                                              ; preds = %695
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %102) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %103) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %104) #8
  %697 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %698 = load ptr, ptr %697, align 8, !tbaa !9
  %699 = getelementptr inbounds i8, ptr %698, i64 96
  %700 = load ptr, ptr %699, align 8
  invoke void %700(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::ArrayOfDouble") align 8 %104, ptr noundef nonnull align 8 dereferenceable(257) %697)
          to label %701 unwind label %721

701:                                              ; preds = %696
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %105) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %106) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %106)
          to label %702 unwind label %723

702:                                              ; preds = %701
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %105, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %106)
          to label %703 unwind label %725

703:                                              ; preds = %702
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  invoke void @_ZNK9NOMAD_4_313ArrayOfDouble7displayERKS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %103, ptr noundef nonnull align 8 dereferenceable(24) %104, ptr noundef nonnull align 8 dereferenceable(24) %105, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %704 unwind label %727

704:                                              ; preds = %703
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull @.str.33, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %705 unwind label %729

705:                                              ; preds = %704
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %102, i32 noundef 7)
          to label %706 unwind label %731

706:                                              ; preds = %705
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %105) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %106) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %106) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %105) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %104) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %104) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %108) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %109) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %110) #8
  %707 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %708 = load ptr, ptr %707, align 8, !tbaa !9
  %709 = getelementptr inbounds i8, ptr %708, i64 112
  %710 = load ptr, ptr %709, align 8
  invoke void %710(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::ArrayOfDouble") align 8 %110, ptr noundef nonnull align 8 dereferenceable(257) %707)
          to label %711 unwind label %738

711:                                              ; preds = %706
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %111) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %112) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %112)
          to label %712 unwind label %740

712:                                              ; preds = %711
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %111, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %112)
          to label %713 unwind label %742

713:                                              ; preds = %712
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %113) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  invoke void @_ZNK9NOMAD_4_313ArrayOfDouble7displayERKS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %109, ptr noundef nonnull align 8 dereferenceable(24) %110, ptr noundef nonnull align 8 dereferenceable(24) %111, ptr noundef nonnull align 8 dereferenceable(32) %113)
          to label %714 unwind label %744

714:                                              ; preds = %713
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %108, ptr noundef nonnull @.str.34, ptr noundef nonnull align 8 dereferenceable(32) %109)
          to label %715 unwind label %746

715:                                              ; preds = %714
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %108, i32 noundef 7)
          to label %716 unwind label %748

716:                                              ; preds = %715
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %111) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %112) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %112) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %111) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %110) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %110) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #8
  br label %755

717:                                              ; preds = %688
  %718 = landingpad { ptr, i32 }
          cleanup
  br label %756

719:                                              ; preds = %693
  %720 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %101) #8
  br label %756

721:                                              ; preds = %696
  %722 = landingpad { ptr, i32 }
          cleanup
  br label %737

723:                                              ; preds = %701
  %724 = landingpad { ptr, i32 }
          cleanup
  br label %736

725:                                              ; preds = %702
  %726 = landingpad { ptr, i32 }
          cleanup
  br label %735

727:                                              ; preds = %703
  %728 = landingpad { ptr, i32 }
          cleanup
  br label %734

729:                                              ; preds = %704
  %730 = landingpad { ptr, i32 }
          cleanup
  br label %733

731:                                              ; preds = %705
  %732 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #8
  br label %733

733:                                              ; preds = %731, %729
  %.pn193 = phi { ptr, i32 } [ %732, %731 ], [ %730, %729 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  br label %734

734:                                              ; preds = %733, %727
  %.pn193.pn = phi { ptr, i32 } [ %.pn193, %733 ], [ %728, %727 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %105) #8
  br label %735

735:                                              ; preds = %734, %725
  %.pn193.pn.pn = phi { ptr, i32 } [ %.pn193.pn, %734 ], [ %726, %725 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %106) #8
  br label %736

736:                                              ; preds = %735, %723
  %.pn193.pn.pn.pn = phi { ptr, i32 } [ %.pn193.pn.pn, %735 ], [ %724, %723 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %106) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %105) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %104) #8
  br label %737

737:                                              ; preds = %736, %721
  %.pn193.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn193.pn.pn.pn, %736 ], [ %722, %721 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %104) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #8
  br label %756

738:                                              ; preds = %706
  %739 = landingpad { ptr, i32 }
          cleanup
  br label %754

740:                                              ; preds = %711
  %741 = landingpad { ptr, i32 }
          cleanup
  br label %753

742:                                              ; preds = %712
  %743 = landingpad { ptr, i32 }
          cleanup
  br label %752

744:                                              ; preds = %713
  %745 = landingpad { ptr, i32 }
          cleanup
  br label %751

746:                                              ; preds = %714
  %747 = landingpad { ptr, i32 }
          cleanup
  br label %750

748:                                              ; preds = %715
  %749 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #8
  br label %750

750:                                              ; preds = %748, %746
  %.pn199 = phi { ptr, i32 } [ %749, %748 ], [ %747, %746 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #8
  br label %751

751:                                              ; preds = %750, %744
  %.pn199.pn = phi { ptr, i32 } [ %.pn199, %750 ], [ %745, %744 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %111) #8
  br label %752

752:                                              ; preds = %751, %742
  %.pn199.pn.pn = phi { ptr, i32 } [ %.pn199.pn, %751 ], [ %743, %742 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %112) #8
  br label %753

753:                                              ; preds = %752, %740
  %.pn199.pn.pn.pn = phi { ptr, i32 } [ %.pn199.pn.pn, %752 ], [ %741, %740 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %112) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %111) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %110) #8
  br label %754

754:                                              ; preds = %753, %738
  %.pn199.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn199.pn.pn.pn, %753 ], [ %739, %738 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %110) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #8
  br label %756

755:                                              ; preds = %716, %695
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #8
  ret i1 true

756:                                              ; preds = %754, %737, %719, %717, %687
  %.pn199.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn199.pn.pn.pn.pn, %754 ], [ %.pn193.pn.pn.pn.pn, %737 ], [ %720, %719 ], [ %718, %717 ], [ %.pn187.pn.pn.pn.pn, %687 ]
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  br label %757

757:                                              ; preds = %756, %221
  %.pn199.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn199.pn.pn.pn.pn.pn, %756 ], [ %222, %221 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  br label %758

758:                                              ; preds = %757, %219
  %.pn199.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn199.pn.pn.pn.pn.pn.pn, %757 ], [ %220, %219 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  br label %759

759:                                              ; preds = %758, %217
  %.pn199.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn199.pn.pn.pn.pn.pn.pn.pn, %758 ], [ %218, %217 ]
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #8
  br label %760

760:                                              ; preds = %759, %176, %166, %165, %156
  %.pn209.pn = phi { ptr, i32 } [ %.pn209, %176 ], [ %.pn199.pn.pn.pn.pn.pn.pn.pn.pn, %759 ], [ %167, %166 ], [ %.pn.pn, %165 ], [ %157, %156 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  br label %761

761:                                              ; preds = %760, %154
  %.pn209.pn.pn = phi { ptr, i32 } [ %.pn209.pn, %760 ], [ %155, %154 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #8
  br label %762

762:                                              ; preds = %152, %761, %123
  %.pn209.pn.pn.pn.pn = phi { ptr, i32 } [ %124, %123 ], [ %.pn209.pn.pn, %761 ], [ %153, %152 ]
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #8
  resume { ptr, i32 } %.pn209.pn.pn.pn.pn

763:                                              ; preds = %343, %247
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN9NOMAD_4_312EvcInterface19getEvaluatorControlEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.14") align 8) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneIN9NOMAD_4_316EvaluatorControlEEbDnRKSt10shared_ptrIT_E(ptr, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3

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

declare noundef i32 @_ZNK9NOMAD_4_316EvaluatorControl18getCurrentEvalTypeEi(ptr noundef nonnull align 8 dereferenceable(352), i32 noundef) local_unnamed_addr #4

declare noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_316EvaluatorControl14getComputeTypeEi(ptr noundef nonnull align 8 dereferenceable(352), i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9NOMAD_4_313MegaIteration10getBarrierEv(ptr noundef nonnull align 8 dereferenceable(172)) local_unnamed_addr #1 align 2

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

; 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_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: 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

; 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

declare void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK9NOMAD_4_311BarrierBase14getRefBestFeasEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.58") align 8, ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK9NOMAD_4_311BarrierBase13getRefBestInfEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.58") align 8, ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3

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

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

declare noundef i32 @_ZN9NOMAD_4_318ComputeSuccessTypeclESt10shared_ptrINS_9EvalPointEES3_RKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #4

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

declare void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK9NOMAD_4_39EvalPoint12getPointFromEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.58") align 8, ptr noundef nonnull align 8 dereferenceable(160)) local_unnamed_addr #1 align 2

declare void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt10unique_ptrIN9NOMAD_4_317SubproblemManagerESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

declare noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

; 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

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: nounwind
declare void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK9NOMAD_4_316EvaluatorControl31getEvaluatorControlGlobalParamsEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.17") align 8, ptr noundef nonnull align 8 dereferenceable(352)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNK9NOMAD_4_310Parameters17getAttributeValueIbEERKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(496), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_34Step14getSuccessTypeEv(ptr noundef nonnull align 8 dereferenceable(140)) local_unnamed_addr #1 align 2

declare void @_ZN9NOMAD_4_37enumStrB5cxx11ENS_11SuccessTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) 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

declare void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(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

declare void @_ZNK9NOMAD_4_34Step16AddOutputWarningERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK9NOMAD_4_39EvalPoint12getDirectionEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.74") align 8, ptr noundef nonnull align 8 dereferenceable(160)) local_unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneIN9NOMAD_4_39DirectionEEbDnRKSt10shared_ptrIT_E(ptr, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3

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

declare void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #4

declare void @_ZN9NOMAD_4_316EvaluatorControl24setLastSuccessfulFeasDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4

declare void @_ZN9NOMAD_4_316EvaluatorControl23setLastSuccessfulInfDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN9NOMAD_4_318ComputeSuccessTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

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 nounwind uwtable
declare dso_local void @_ZNSt12__shared_ptrIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

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

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

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

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

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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "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 = { 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 #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { nounwind }
attributes #9 = { 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_311ComputeTypeE", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_ZTSN9NOMAD_4_311OutputLevelE", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{i8 0, i8 2}
!16 = !{}
!17 = !{!18, !18, i64 0}
!18 = !{!"_ZTSN9NOMAD_4_311SuccessTypeE", !7, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass