; LLVM IR from simbody/simbody :: SimTKmath/Optimizers/src/IpOpt (IpRestoMinC_1Nrm)

; 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.SimTKIpopt::SmartPtr.8" = type { ptr }
%"class.SimTKIpopt::SmartPtr.7" = type { ptr }
%"class.SimTKIpopt::SmartPtr.9" = type { ptr }
%"class.SimTKIpopt::SmartPtr.12" = type { ptr }
%"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::allocator.21" = type { i8 }
%"class.SimTKIpopt::SmartPtr.39" = type { ptr }
%"class.SimTKIpopt::SmartPtr.65" = type { ptr }
%"class.SimTKIpopt::SmartPtr.52" = type { ptr }
%"class.SimTKIpopt::SmartPtr.66" = type { ptr }
%"class.SimTKIpopt::SmartPtr.46" = type { ptr }
%"class.SimTKIpopt::MinC_1NrmRestorationPhase" = type { %"class.SimTKIpopt::RestorationPhase.base", %"class.SimTKIpopt::SmartPtr.10", %"class.SimTKIpopt::SmartPtr.11", %"class.SimTKIpopt::SmartPtr.12", double, double, i8, i32 }
%"class.SimTKIpopt::RestorationPhase.base" = type { %"class.SimTKIpopt::AlgorithmStrategyObject.base" }
%"class.SimTKIpopt::AlgorithmStrategyObject.base" = type <{ %"class.SimTKIpopt::ReferencedObject.base", [4 x i8], %"class.SimTKIpopt::SmartPtr.6", %"class.SimTKIpopt::SmartPtr.7", %"class.SimTKIpopt::SmartPtr.8", %"class.SimTKIpopt::SmartPtr.9", i8 }>
%"class.SimTKIpopt::ReferencedObject.base" = type <{ ptr, i32 }>
%"class.SimTKIpopt::SmartPtr.6" = type { ptr }
%"class.SimTKIpopt::SmartPtr.10" = type { ptr }
%"class.SimTKIpopt::SmartPtr.11" = type { ptr }

@.str.10 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [101 x i8], align 1
@_ZTIN10SimTKIpopt39RESTORATION_CONVERGED_TO_FEASIBLE_POINTE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.22 = external hidden unnamed_addr constant [62 x i8], align 1
@_ZTIN10SimTKIpopt18LOCALLY_INFEASIBLEE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.23 = external hidden unnamed_addr constant [60 x i8], align 1
@_ZTIN10SimTKIpopt28RESTORATION_MAXITER_EXCEEDEDE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.24 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [51 x i8], align 1
@_ZTIN10SimTKIpopt18RESTORATION_FAILEDE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.26 = external hidden unnamed_addr constant [45 x i8], align 1
@_ZTIN10SimTKIpopt21RESTORATION_USER_STOPE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.27 = external hidden unnamed_addr constant [27 x i8], align 1
@_ZTIN10SimTKIpopt6VectorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt14CompoundVectorE = external constant ptr
@.str.28 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [87 x i8], align 1
@_ZTIN10SimTKIpopt26FEASIBILITY_PROBLEM_SOLVEDE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.30 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [80 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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #1

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #3 align 2

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN10SimTKIpopt11OptionsList15SetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdbb(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), double noundef, i1 noundef zeroext, i1 noundef zeroext) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt23AlgorithmStrategyObject10InitializeERKNS_10JournalistERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesERKNS_11OptionsListERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(49), ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(864), ptr noundef nonnull align 8 dereferenceable(2025), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49)) #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN10SimTKIpopt25MinC_1NrmRestorationPhase18PerformRestorationEv(ptr noundef nonnull align 8 dereferenceable(104) %0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.SimTKIpopt::SmartPtr.8", align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca %"class.SimTKIpopt::SmartPtr.7", align 8
  %7 = alloca %"class.SimTKIpopt::SmartPtr.9", align 8
  %8 = alloca i8, align 1
  %9 = alloca %"class.SimTKIpopt::SmartPtr.12", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator.21", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator.21", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator.21", align 1
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.21", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator.21", align 1
  %23 = alloca double, align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator.21", align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator.21", align 1
  %28 = alloca i1, align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator.21", align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator.21", align 1
  %33 = alloca i1, align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator.21", align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator.21", align 1
  %38 = alloca i1, align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.21", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator.21", align 1
  %43 = alloca i1, align 1
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator.21", align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator.21", align 1
  %48 = alloca i1, align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator.21", align 1
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator.21", align 1
  %53 = alloca i1, align 1
  %54 = alloca %"class.SimTKIpopt::SmartPtr.65", align 8
  %55 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %56 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %57 = alloca %"class.SimTKIpopt::SmartPtr.66", align 8
  %58 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %59 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %60 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %61 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator.21", align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator.21", align 1
  %66 = alloca i1, align 1
  %67 = alloca %"class.SimTKIpopt::SmartPtr.66", align 8
  %68 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %69 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %70 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %71 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %72 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %73 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %74 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %75 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %76 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %77 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %78 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %79 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %80 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %81 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %82 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %83 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %84 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %85 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %86 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %87 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %88 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %89 = alloca double, align 8
  %90 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %91 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %92 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %93 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %94 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %95 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %96 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %97 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %98 = alloca double, align 8
  %99 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %100 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %101 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %102 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %103 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %104 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %105 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %106 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %107 = alloca %"class.SimTKIpopt::SmartPtr.66", align 8
  %108 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %109 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %110 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %111 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %112 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %113 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %114 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %115 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %116 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %117 = load ptr, ptr %2, align 8
  %118 = getelementptr inbounds %"class.SimTKIpopt::MinC_1NrmRestorationPhase", ptr %117, i32 0, i32 7
  %119 = load i32, ptr %118, align 4, !tbaa !9
  %120 = add nsw i32 %119, 1
  store i32 %120, ptr %118, align 4, !tbaa !9
  %121 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
  %122 = getelementptr inbounds %"class.SimTKIpopt::MinC_1NrmRestorationPhase", ptr %117, i32 0, i32 7
  %123 = load i32, ptr %122, align 4, !tbaa !9
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %121, i32 noundef 5, i32 noundef 2, ptr noundef @.str.11, i32 noundef %123)
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #8
  %124 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 864) #9
  invoke void @_ZN10SimTKIpopt9IpoptDataC1Ev(ptr noundef nonnull align 8 dereferenceable(864) %124)
          to label %125 unwind label %163

125:                                              ; preds = %1
  call void @_ZN10SimTKIpopt8SmartPtrINS_9IpoptDataEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef %124)
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #8
  %126 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 312) #9
          to label %127 unwind label %167

127:                                              ; preds = %125
  %128 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %129 unwind label %171

129:                                              ; preds = %127
  %130 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %131 unwind label %171

131:                                              ; preds = %129
  %132 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %133 unwind label %171

133:                                              ; preds = %131
  invoke void @_ZN10SimTKIpopt13RestoIpoptNLPC1ERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesE(ptr noundef nonnull align 8 dereferenceable(312) %126, ptr noundef nonnull align 8 dereferenceable(24) %128, ptr noundef nonnull align 8 dereferenceable(864) %130, ptr noundef nonnull align 8 dereferenceable(2025) %132)
          to label %134 unwind label %171

134:                                              ; preds = %133
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef %126)
          to label %135 unwind label %167

135:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  %136 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 2032) #9
          to label %137 unwind label %175

137:                                              ; preds = %135
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantitiesC1ERKNS_8SmartPtrINS_8IpoptNLPEEERKNS1_INS_9IpoptDataEEE(ptr noundef nonnull align 8 dereferenceable(2025) %136, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %138 unwind label %179

138:                                              ; preds = %137
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef %136)
          to label %139 unwind label %175

139:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #8
  %140 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %141 unwind label %183

141:                                              ; preds = %139
  %142 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt25IpoptCalculatedQuantities15IsSquareProblemEv(ptr noundef nonnull align 8 dereferenceable(2025) %140)
          to label %143 unwind label %183

143:                                              ; preds = %141
  %144 = zext i1 %142 to i8
  store i8 %144, ptr %8, align 1, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #8
  %145 = getelementptr inbounds %"class.SimTKIpopt::MinC_1NrmRestorationPhase", ptr %117, i32 0, i32 3
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_11OptionsListEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %145)
          to label %146 unwind label %187

146:                                              ; preds = %143
  %147 = load i8, ptr %8, align 1, !tbaa !24, !range !25, !noundef !26
  %148 = trunc i8 %147 to i1
  br i1 %148, label %149, label %208

149:                                              ; preds = %146
  %150 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 112) #9
          to label %151 unwind label %191

151:                                              ; preds = %149
  %152 = getelementptr inbounds %"class.SimTKIpopt::MinC_1NrmRestorationPhase", ptr %117, i32 0, i32 3
  %153 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11OptionsListEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %152)
          to label %154 unwind label %195

154:                                              ; preds = %151
  invoke void @_ZN10SimTKIpopt11OptionsListC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(112) %150, ptr noundef nonnull align 8 dereferenceable(112) %153)
          to label %155 unwind label %195

155:                                              ; preds = %154
  %156 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_11OptionsListEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef %150)
          to label %157 unwind label %191

157:                                              ; preds = %155
  %158 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11OptionsListEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %159 unwind label %191

159:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %160 unwind label %199

160:                                              ; preds = %159
  %161 = invoke noundef zeroext i1 @_ZN10SimTKIpopt11OptionsList15SetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdbb(ptr noundef nonnull align 8 dereferenceable(112) %158, ptr noundef nonnull align 8 dereferenceable(32) %10, double noundef 0.000000e+00, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %162 unwind label %203

162:                                              ; preds = %160
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #8
  br label %251

163:                                              ; preds = %1
  %164 = landingpad { ptr, i32 }
          cleanup
  %165 = extractvalue { ptr, i32 } %164, 0
  store ptr %165, ptr %4, align 8
  %166 = extractvalue { ptr, i32 } %164, 1
  store i32 %166, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %124, i64 noundef 864) #10
  br label %1394

167:                                              ; preds = %134, %125
  %168 = landingpad { ptr, i32 }
          cleanup
  %169 = extractvalue { ptr, i32 } %168, 0
  store ptr %169, ptr %4, align 8
  %170 = extractvalue { ptr, i32 } %168, 1
  store i32 %170, ptr %5, align 4
  br label %1393

171:                                              ; preds = %133, %131, %129, %127
  %172 = landingpad { ptr, i32 }
          cleanup
  %173 = extractvalue { ptr, i32 } %172, 0
  store ptr %173, ptr %4, align 8
  %174 = extractvalue { ptr, i32 } %172, 1
  store i32 %174, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %126, i64 noundef 312) #10
  br label %1393

175:                                              ; preds = %138, %135
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %4, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %5, align 4
  br label %1392

179:                                              ; preds = %137
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %4, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %136, i64 noundef 2032) #10
  br label %1392

183:                                              ; preds = %141, %139
  %184 = landingpad { ptr, i32 }
          cleanup
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %4, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %5, align 4
  br label %1391

187:                                              ; preds = %143
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %4, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %5, align 4
  br label %1390

191:                                              ; preds = %309, %307, %305, %303, %302, %300, %298, %296, %295, %293, %291, %289, %288, %286, %284, %282, %281, %279, %277, %275, %273, %271, %269, %267, %262, %260, %258, %256, %254, %251, %230, %228, %222, %218, %216, %157, %155, %149
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %4, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %5, align 4
  br label %1389

195:                                              ; preds = %154, %151
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %4, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %150, i64 noundef 112) #10
  br label %1389

199:                                              ; preds = %159
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %4, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %5, align 4
  br label %207

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

207:                                              ; preds = %203, %199
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #8
  br label %1389

208:                                              ; preds = %146
  %209 = getelementptr inbounds %"class.SimTKIpopt::MinC_1NrmRestorationPhase", ptr %117, i32 0, i32 6
  %210 = load i8, ptr %209, align 8, !tbaa !27, !range !25, !noundef !26
  %211 = trunc i8 %210 to i1
  br i1 %211, label %212, label %250

212:                                              ; preds = %208
  %213 = getelementptr inbounds %"class.SimTKIpopt::MinC_1NrmRestorationPhase", ptr %117, i32 0, i32 7
  %214 = load i32, ptr %213, align 4, !tbaa !9
  %215 = icmp eq i32 %214, 1
  br i1 %215, label %216, label %250

216:                                              ; preds = %212
  %217 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %218 unwind label %191

218:                                              ; preds = %216
  %219 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025) %217)
          to label %220 unwind label %191

220:                                              ; preds = %218
  %221 = fcmp ogt double %219, 1.000000e-03
  br i1 %221, label %222, label %249

222:                                              ; preds = %220
  %223 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 112) #9
          to label %224 unwind label %191

224:                                              ; preds = %222
  %225 = getelementptr inbounds %"class.SimTKIpopt::MinC_1NrmRestorationPhase", ptr %117, i32 0, i32 3
  %226 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11OptionsListEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %225)
          to label %227 unwind label %236

227:                                              ; preds = %224
  invoke void @_ZN10SimTKIpopt11OptionsListC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(112) %223, ptr noundef nonnull align 8 dereferenceable(112) %226)
          to label %228 unwind label %236

228:                                              ; preds = %227
  %229 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_11OptionsListEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef %223)
          to label %230 unwind label %191

230:                                              ; preds = %228
  %231 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11OptionsListEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %232 unwind label %191

232:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %233 unwind label %240

233:                                              ; preds = %232
  %234 = invoke noundef zeroext i1 @_ZN10SimTKIpopt11OptionsList15SetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdbb(ptr noundef nonnull align 8 dereferenceable(112) %231, ptr noundef nonnull align 8 dereferenceable(32) %12, double noundef 1.000000e-03, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %235 unwind label %244

235:                                              ; preds = %233
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #8
  br label %249

236:                                              ; preds = %227, %224
  %237 = landingpad { ptr, i32 }
          cleanup
  %238 = extractvalue { ptr, i32 } %237, 0
  store ptr %238, ptr %4, align 8
  %239 = extractvalue { ptr, i32 } %237, 1
  store i32 %239, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %223, i64 noundef 112) #10
  br label %1389

240:                                              ; preds = %232
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %4, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %5, align 4
  br label %248

244:                                              ; preds = %233
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %4, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  br label %248

248:                                              ; preds = %244, %240
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #8
  br label %1389

249:                                              ; preds = %235, %220
  br label %250

250:                                              ; preds = %249, %212, %208
  br label %251

251:                                              ; preds = %250, %162
  %252 = getelementptr inbounds %"class.SimTKIpopt::MinC_1NrmRestorationPhase", ptr %117, i32 0, i32 1
  %253 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %252)
          to label %254 unwind label %191

254:                                              ; preds = %251
  %255 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %256 unwind label %191

256:                                              ; preds = %254
  %257 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt8SmartPtrINS_8IpoptNLPEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %258 unwind label %191

258:                                              ; preds = %256
  %259 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %260 unwind label %191

260:                                              ; preds = %258
  %261 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %262 unwind label %191

262:                                              ; preds = %260
  %263 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11OptionsListEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %264 unwind label %191

264:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %265 unwind label %344

265:                                              ; preds = %264
  %266 = invoke noundef zeroext i1 @_ZN10SimTKIpopt23AlgorithmStrategyObject10InitializeERKNS_10JournalistERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesERKNS_11OptionsListERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(49) %253, ptr noundef nonnull align 8 dereferenceable(40) %255, ptr noundef nonnull align 8 dereferenceable(24) %257, ptr noundef nonnull align 8 dereferenceable(864) %259, ptr noundef nonnull align 8 dereferenceable(2025) %261, ptr noundef nonnull align 8 dereferenceable(112) %263, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %267 unwind label %348

267:                                              ; preds = %265
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #8
  %268 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %269 unwind label %191

269:                                              ; preds = %267
  %270 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %271 unwind label %191

271:                                              ; preds = %269
  %272 = invoke noundef i32 @_ZNK10SimTKIpopt9IpoptData10iter_countEv(ptr noundef nonnull align 8 dereferenceable(864) %270)
          to label %273 unwind label %191

273:                                              ; preds = %271
  %274 = add nsw i32 %272, 1
  invoke void @_ZN10SimTKIpopt9IpoptData14Set_iter_countEi(ptr noundef nonnull align 8 dereferenceable(864) %268, i32 noundef %274)
          to label %275 unwind label %191

275:                                              ; preds = %273
  %276 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %277 unwind label %191

277:                                              ; preds = %275
  %278 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %279 unwind label %191

279:                                              ; preds = %277
  %280 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData11info_regu_xEv(ptr noundef nonnull align 8 dereferenceable(864) %278)
          to label %281 unwind label %191

281:                                              ; preds = %279
  invoke void @_ZN10SimTKIpopt9IpoptData15Set_info_regu_xEd(ptr noundef nonnull align 8 dereferenceable(864) %276, double noundef %280)
          to label %282 unwind label %191

282:                                              ; preds = %281
  %283 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %284 unwind label %191

284:                                              ; preds = %282
  %285 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %286 unwind label %191

286:                                              ; preds = %284
  %287 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData17info_alpha_primalEv(ptr noundef nonnull align 8 dereferenceable(864) %285)
          to label %288 unwind label %191

288:                                              ; preds = %286
  invoke void @_ZN10SimTKIpopt9IpoptData21Set_info_alpha_primalEd(ptr noundef nonnull align 8 dereferenceable(864) %283, double noundef %287)
          to label %289 unwind label %191

289:                                              ; preds = %288
  %290 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %291 unwind label %191

291:                                              ; preds = %289
  %292 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %293 unwind label %191

293:                                              ; preds = %291
  %294 = invoke noundef signext i8 @_ZNK10SimTKIpopt9IpoptData22info_alpha_primal_charEv(ptr noundef nonnull align 8 dereferenceable(864) %292)
          to label %295 unwind label %191

295:                                              ; preds = %293
  invoke void @_ZN10SimTKIpopt9IpoptData26Set_info_alpha_primal_charEc(ptr noundef nonnull align 8 dereferenceable(864) %290, i8 noundef signext %294)
          to label %296 unwind label %191

296:                                              ; preds = %295
  %297 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %298 unwind label %191

298:                                              ; preds = %296
  %299 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %300 unwind label %191

300:                                              ; preds = %298
  %301 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData15info_alpha_dualEv(ptr noundef nonnull align 8 dereferenceable(864) %299)
          to label %302 unwind label %191

302:                                              ; preds = %300
  invoke void @_ZN10SimTKIpopt9IpoptData19Set_info_alpha_dualEd(ptr noundef nonnull align 8 dereferenceable(864) %297, double noundef %301)
          to label %303 unwind label %191

303:                                              ; preds = %302
  %304 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %305 unwind label %191

305:                                              ; preds = %303
  %306 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %307 unwind label %191

307:                                              ; preds = %305
  %308 = invoke noundef i32 @_ZNK10SimTKIpopt9IpoptData13info_ls_countEv(ptr noundef nonnull align 8 dereferenceable(864) %306)
          to label %309 unwind label %191

309:                                              ; preds = %307
  invoke void @_ZN10SimTKIpopt9IpoptData17Set_info_ls_countEi(ptr noundef nonnull align 8 dereferenceable(864) %304, i32 noundef %308)
          to label %310 unwind label %191

310:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  %311 = getelementptr inbounds %"class.SimTKIpopt::MinC_1NrmRestorationPhase", ptr %117, i32 0, i32 1
  %312 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %311)
          to label %313 unwind label %353

313:                                              ; preds = %310
  %314 = invoke noundef i32 @_ZN10SimTKIpopt14IpoptAlgorithm8OptimizeEv(ptr noundef nonnull align 8 dereferenceable(152) %312)
          to label %315 unwind label %353

315:                                              ; preds = %313
  store i32 %314, ptr %16, align 4, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  store i32 -1, ptr %17, align 4, !tbaa !30
  %316 = load i32, ptr %16, align 4, !tbaa !28
  %317 = icmp eq i32 %316, 0
  br i1 %317, label %318, label %402

318:                                              ; preds = %315
  %319 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %320 unwind label %357

320:                                              ; preds = %318
  %321 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt10Journalist13ProduceOutputENS_13EJournalLevelENS_16EJournalCategoryE(ptr noundef nonnull align 8 dereferenceable(40) %319, i32 noundef 5, i32 noundef 8)
          to label %322 unwind label %357

322:                                              ; preds = %320
  br i1 %321, label %323, label %361

323:                                              ; preds = %322
  %324 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %325 unwind label %357

325:                                              ; preds = %323
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %324, i32 noundef 5, i32 noundef 8, ptr noundef @.str.14)
          to label %326 unwind label %357

326:                                              ; preds = %325
  %327 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %328 unwind label %357

328:                                              ; preds = %326
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %327, i32 noundef 5, i32 noundef 8, ptr noundef @.str.15)
          to label %329 unwind label %357

329:                                              ; preds = %328
  %330 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %331 unwind label %357

331:                                              ; preds = %329
  %332 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %333 unwind label %357

333:                                              ; preds = %331
  %334 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities6curr_fEv(ptr noundef nonnull align 8 dereferenceable(2025) %332)
          to label %335 unwind label %357

335:                                              ; preds = %333
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %330, i32 noundef 5, i32 noundef 8, ptr noundef @.str.16, double noundef %334)
          to label %336 unwind label %357

336:                                              ; preds = %335
  %337 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %338 unwind label %357

338:                                              ; preds = %336
  %339 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %340 unwind label %357

340:                                              ; preds = %338
  %341 = invoke noundef i32 @_ZNK10SimTKIpopt9IpoptData10iter_countEv(ptr noundef nonnull align 8 dereferenceable(864) %339)
          to label %342 unwind label %357

342:                                              ; preds = %340
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %337, i32 noundef 5, i32 noundef 8, ptr noundef @.str.17, i32 noundef %341)
          to label %343 unwind label %357

343:                                              ; preds = %342
  br label %361

344:                                              ; preds = %264
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %4, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %5, align 4
  br label %352

348:                                              ; preds = %265
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %4, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br label %352

352:                                              ; preds = %348, %344
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #8
  br label %1389

353:                                              ; preds = %313, %310
  %354 = landingpad { ptr, i32 }
          cleanup
  %355 = extractvalue { ptr, i32 } %354, 0
  store ptr %355, ptr %4, align 8
  %356 = extractvalue { ptr, i32 } %354, 1
  store i32 %356, ptr %5, align 4
  br label %1388

357:                                              ; preds = %577, %575, %527, %525, %363, %361, %342, %340, %338, %336, %335, %333, %331, %329, %328, %326, %325, %323, %320, %318
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %4, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %5, align 4
  br label %1387

361:                                              ; preds = %343, %322
  %362 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %363 unwind label %357

363:                                              ; preds = %361
  %364 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt10Journalist13ProduceOutputENS_13EJournalLevelENS_16EJournalCategoryE(ptr noundef nonnull align 8 dereferenceable(40) %362, i32 noundef 7, i32 noundef 8)
          to label %365 unwind label %357

365:                                              ; preds = %363
  br i1 %364, label %366, label %401

366:                                              ; preds = %365
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %367 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %368 unwind label %377

368:                                              ; preds = %366
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %18, ptr noundef nonnull align 8 dereferenceable(864) %367)
          to label %369 unwind label %377

369:                                              ; preds = %368
  %370 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %371 unwind label %381

371:                                              ; preds = %369
  %372 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %373 unwind label %381

373:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %374 unwind label %385

374:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %375 unwind label %389

375:                                              ; preds = %374
  invoke void @_ZNK10SimTKIpopt6Vector5PrintERKNS_10JournalistENS_13EJournalLevelENS_16EJournalCategoryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSD_(ptr noundef nonnull align 8 dereferenceable(205) %370, ptr noundef nonnull align 8 dereferenceable(40) %372, i32 noundef 7, i32 noundef 8, ptr noundef nonnull align 8 dereferenceable(32) %19, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %376 unwind label %393

376:                                              ; preds = %375
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  br label %401

377:                                              ; preds = %368, %366
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %4, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %5, align 4
  br label %400

381:                                              ; preds = %371, %369
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %4, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %5, align 4
  br label %399

385:                                              ; preds = %373
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %4, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %5, align 4
  br label %398

389:                                              ; preds = %374
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %4, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %5, align 4
  br label %397

393:                                              ; preds = %375
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %4, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  br label %397

397:                                              ; preds = %393, %389
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %398

398:                                              ; preds = %397, %385
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  br label %399

399:                                              ; preds = %398, %381
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  br label %400

400:                                              ; preds = %399, %377
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  br label %1387

401:                                              ; preds = %376, %365
  store i32 0, ptr %17, align 4, !tbaa !30
  br label %584

402:                                              ; preds = %315
  %403 = load i32, ptr %16, align 4, !tbaa !28
  %404 = icmp eq i32 %403, 2
  br i1 %404, label %408, label %405

405:                                              ; preds = %402
  %406 = load i32, ptr %16, align 4, !tbaa !28
  %407 = icmp eq i32 %406, 3
  br i1 %407, label %408, label %472

408:                                              ; preds = %405, %402
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %409 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %410 unwind label %428

410:                                              ; preds = %408
  %411 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %409, i32 noundef 2)
          to label %412 unwind label %428

412:                                              ; preds = %410
  store double %411, ptr %23, align 8, !tbaa !31
  %413 = load double, ptr %23, align 8, !tbaa !31
  %414 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %415 unwind label %428

415:                                              ; preds = %412
  %416 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %414)
          to label %417 unwind label %428

417:                                              ; preds = %415
  %418 = fmul double 1.000000e+02, %416
  %419 = fcmp ole double %413, %418
  br i1 %419, label %420, label %449

420:                                              ; preds = %417
  %421 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %422 unwind label %428

422:                                              ; preds = %420
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %421, i32 noundef 2, i32 noundef 8, ptr noundef @.str.19)
          to label %423 unwind label %428

423:                                              ; preds = %422
  store i1 true, ptr %28, align 1
  %424 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %425 unwind label %432

425:                                              ; preds = %423
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %426 unwind label %436

426:                                              ; preds = %425
  invoke void @_ZN10SimTKIpopt39RESTORATION_CONVERGED_TO_FEASIBLE_POINTC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %424, ptr noundef %24, ptr noundef %26, i32 noundef 185)
          to label %427 unwind label %440

427:                                              ; preds = %426
  store i1 false, ptr %28, align 1
  invoke void @__cxa_throw(ptr %424, ptr @_ZTIN10SimTKIpopt39RESTORATION_CONVERGED_TO_FEASIBLE_POINTE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #11
          to label %1400 unwind label %440

428:                                              ; preds = %422, %420, %415, %412, %410, %408
  %429 = landingpad { ptr, i32 }
          cleanup
  %430 = extractvalue { ptr, i32 } %429, 0
  store ptr %430, ptr %4, align 8
  %431 = extractvalue { ptr, i32 } %429, 1
  store i32 %431, ptr %5, align 4
  br label %471

432:                                              ; preds = %423
  %433 = landingpad { ptr, i32 }
          cleanup
  %434 = extractvalue { ptr, i32 } %433, 0
  store ptr %434, ptr %4, align 8
  %435 = extractvalue { ptr, i32 } %433, 1
  store i32 %435, ptr %5, align 4
  br label %445

436:                                              ; preds = %425
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %4, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %5, align 4
  br label %444

440:                                              ; preds = %427, %426
  %441 = landingpad { ptr, i32 }
          cleanup
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %4, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %444

444:                                              ; preds = %440, %436
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %445

445:                                              ; preds = %444, %432
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #8
  %446 = load i1, ptr %28, align 1
  br i1 %446, label %447, label %448

447:                                              ; preds = %445
  call void @__cxa_free_exception(ptr %424) #8
  br label %448

448:                                              ; preds = %447, %445
  br label %471

449:                                              ; preds = %417
  store i1 true, ptr %33, align 1
  %450 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %451 unwind label %454

451:                                              ; preds = %449
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %452 unwind label %458

452:                                              ; preds = %451
  invoke void @_ZN10SimTKIpopt18LOCALLY_INFEASIBLEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %450, ptr noundef %29, ptr noundef %31, i32 noundef 189)
          to label %453 unwind label %462

453:                                              ; preds = %452
  store i1 false, ptr %33, align 1
  invoke void @__cxa_throw(ptr %450, ptr @_ZTIN10SimTKIpopt18LOCALLY_INFEASIBLEE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #11
          to label %1400 unwind label %462

454:                                              ; preds = %449
  %455 = landingpad { ptr, i32 }
          cleanup
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %4, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %5, align 4
  br label %467

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

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

466:                                              ; preds = %462, %458
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %467

467:                                              ; preds = %466, %454
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #8
  %468 = load i1, ptr %33, align 1
  br i1 %468, label %469, label %470

469:                                              ; preds = %467
  call void @__cxa_free_exception(ptr %450) #8
  br label %470

470:                                              ; preds = %469, %467
  br label %471

471:                                              ; preds = %470, %448, %428
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  br label %1387

472:                                              ; preds = %405
  %473 = load i32, ptr %16, align 4, !tbaa !28
  %474 = icmp eq i32 %473, 1
  br i1 %474, label %475, label %497

475:                                              ; preds = %472
  store i1 true, ptr %38, align 1
  %476 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %477 unwind label %480

477:                                              ; preds = %475
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %478 unwind label %484

478:                                              ; preds = %477
  invoke void @_ZN10SimTKIpopt28RESTORATION_MAXITER_EXCEEDEDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %476, ptr noundef %34, ptr noundef %36, i32 noundef 194)
          to label %479 unwind label %488

479:                                              ; preds = %478
  store i1 false, ptr %38, align 1
  invoke void @__cxa_throw(ptr %476, ptr @_ZTIN10SimTKIpopt28RESTORATION_MAXITER_EXCEEDEDE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #11
          to label %1400 unwind label %488

480:                                              ; preds = %475
  %481 = landingpad { ptr, i32 }
          cleanup
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %4, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, ptr %5, align 4
  br label %493

484:                                              ; preds = %477
  %485 = landingpad { ptr, i32 }
          cleanup
  %486 = extractvalue { ptr, i32 } %485, 0
  store ptr %486, ptr %4, align 8
  %487 = extractvalue { ptr, i32 } %485, 1
  store i32 %487, ptr %5, align 4
  br label %492

488:                                              ; preds = %479, %478
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %4, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  br label %492

492:                                              ; preds = %488, %484
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  br label %493

493:                                              ; preds = %492, %480
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #8
  %494 = load i1, ptr %38, align 1
  br i1 %494, label %495, label %496

495:                                              ; preds = %493
  call void @__cxa_free_exception(ptr %476) #8
  br label %496

496:                                              ; preds = %495, %493
  br label %1387

497:                                              ; preds = %472
  %498 = load i32, ptr %16, align 4, !tbaa !28
  %499 = icmp eq i32 %498, 4
  br i1 %499, label %500, label %522

500:                                              ; preds = %497
  store i1 true, ptr %43, align 1
  %501 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %502 unwind label %505

502:                                              ; preds = %500
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %503 unwind label %509

503:                                              ; preds = %502
  invoke void @_ZN10SimTKIpopt18LOCALLY_INFEASIBLEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %501, ptr noundef %39, ptr noundef %41, i32 noundef 198)
          to label %504 unwind label %513

504:                                              ; preds = %503
  store i1 false, ptr %43, align 1
  invoke void @__cxa_throw(ptr %501, ptr @_ZTIN10SimTKIpopt18LOCALLY_INFEASIBLEE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #11
          to label %1400 unwind label %513

505:                                              ; preds = %500
  %506 = landingpad { ptr, i32 }
          cleanup
  %507 = extractvalue { ptr, i32 } %506, 0
  store ptr %507, ptr %4, align 8
  %508 = extractvalue { ptr, i32 } %506, 1
  store i32 %508, ptr %5, align 4
  br label %518

509:                                              ; preds = %502
  %510 = landingpad { ptr, i32 }
          cleanup
  %511 = extractvalue { ptr, i32 } %510, 0
  store ptr %511, ptr %4, align 8
  %512 = extractvalue { ptr, i32 } %510, 1
  store i32 %512, ptr %5, align 4
  br label %517

513:                                              ; preds = %504, %503
  %514 = landingpad { ptr, i32 }
          cleanup
  %515 = extractvalue { ptr, i32 } %514, 0
  store ptr %515, ptr %4, align 8
  %516 = extractvalue { ptr, i32 } %514, 1
  store i32 %516, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %517

517:                                              ; preds = %513, %509
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  br label %518

518:                                              ; preds = %517, %505
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #8
  %519 = load i1, ptr %43, align 1
  br i1 %519, label %520, label %521

520:                                              ; preds = %518
  call void @__cxa_free_exception(ptr %501) #8
  br label %521

521:                                              ; preds = %520, %518
  br label %1387

522:                                              ; preds = %497
  %523 = load i32, ptr %16, align 4, !tbaa !28
  %524 = icmp eq i32 %523, 7
  br i1 %524, label %525, label %550

525:                                              ; preds = %522
  %526 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %527 unwind label %357

527:                                              ; preds = %525
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %526, i32 noundef 2, i32 noundef 8, ptr noundef @.str.24)
          to label %528 unwind label %357

528:                                              ; preds = %527
  store i1 true, ptr %48, align 1
  %529 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %530 unwind label %533

530:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %531 unwind label %537

531:                                              ; preds = %530
  invoke void @_ZN10SimTKIpopt18RESTORATION_FAILEDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %529, ptr noundef %44, ptr noundef %46, i32 noundef 203)
          to label %532 unwind label %541

532:                                              ; preds = %531
  store i1 false, ptr %48, align 1
  invoke void @__cxa_throw(ptr %529, ptr @_ZTIN10SimTKIpopt18RESTORATION_FAILEDE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #11
          to label %1400 unwind label %541

533:                                              ; preds = %528
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %4, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %5, align 4
  br label %546

537:                                              ; preds = %530
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %4, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %5, align 4
  br label %545

541:                                              ; preds = %532, %531
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %4, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %545

545:                                              ; preds = %541, %537
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  br label %546

546:                                              ; preds = %545, %533
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #8
  %547 = load i1, ptr %48, align 1
  br i1 %547, label %548, label %549

548:                                              ; preds = %546
  call void @__cxa_free_exception(ptr %529) #8
  br label %549

549:                                              ; preds = %548, %546
  br label %1387

550:                                              ; preds = %522
  %551 = load i32, ptr %16, align 4, !tbaa !28
  %552 = icmp eq i32 %551, 5
  br i1 %552, label %553, label %575

553:                                              ; preds = %550
  store i1 true, ptr %53, align 1
  %554 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %555 unwind label %558

555:                                              ; preds = %553
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %556 unwind label %562

556:                                              ; preds = %555
  invoke void @_ZN10SimTKIpopt21RESTORATION_USER_STOPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %554, ptr noundef %49, ptr noundef %51, i32 noundef 207)
          to label %557 unwind label %566

557:                                              ; preds = %556
  store i1 false, ptr %53, align 1
  invoke void @__cxa_throw(ptr %554, ptr @_ZTIN10SimTKIpopt21RESTORATION_USER_STOPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #11
          to label %1400 unwind label %566

558:                                              ; preds = %553
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %4, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %5, align 4
  br label %571

562:                                              ; preds = %555
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %4, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %5, align 4
  br label %570

566:                                              ; preds = %557, %556
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %4, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %570

570:                                              ; preds = %566, %562
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  br label %571

571:                                              ; preds = %570, %558
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #8
  %572 = load i1, ptr %53, align 1
  br i1 %572, label %573, label %574

573:                                              ; preds = %571
  call void @__cxa_free_exception(ptr %554) #8
  br label %574

574:                                              ; preds = %573, %571
  br label %1387

575:                                              ; preds = %550
  %576 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %577 unwind label %357

577:                                              ; preds = %575
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %576, i32 noundef 1, i32 noundef 2, ptr noundef @.str.27)
          to label %578 unwind label %357

578:                                              ; preds = %577
  store i32 1, ptr %17, align 4, !tbaa !30
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579
  br label %581

581:                                              ; preds = %580
  br label %582

582:                                              ; preds = %581
  br label %583

583:                                              ; preds = %582
  br label %584

584:                                              ; preds = %583, %401
  %585 = load i32, ptr %17, align 4, !tbaa !30
  %586 = icmp eq i32 %585, 0
  br i1 %586, label %587, label %1384

587:                                              ; preds = %584
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #8
  %588 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %589 unwind label %599

589:                                              ; preds = %587
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %56, ptr noundef nonnull align 8 dereferenceable(864) %588)
          to label %590 unwind label %599

590:                                              ; preds = %589
  %591 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %592 unwind label %603

592:                                              ; preds = %590
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %55, ptr noundef nonnull align 8 dereferenceable(280) %591)
          to label %593 unwind label %603

593:                                              ; preds = %592
  %594 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_6VectorEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %595 unwind label %607

595:                                              ; preds = %593
  %596 = icmp eq ptr %594, null
  br i1 %596, label %611, label %597

597:                                              ; preds = %595
  %598 = call ptr @__dynamic_cast(ptr %594, ptr @_ZTIN10SimTKIpopt6VectorE, ptr @_ZTIN10SimTKIpopt14CompoundVectorE, i64 0) #8
  br label %612

599:                                              ; preds = %589, %587
  %600 = landingpad { ptr, i32 }
          cleanup
  %601 = extractvalue { ptr, i32 } %600, 0
  store ptr %601, ptr %4, align 8
  %602 = extractvalue { ptr, i32 } %600, 1
  store i32 %602, ptr %5, align 4
  br label %654

603:                                              ; preds = %592, %590
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %4, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %5, align 4
  br label %653

607:                                              ; preds = %612, %593
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %4, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  br label %653

611:                                              ; preds = %595
  br label %612

612:                                              ; preds = %611, %597
  %613 = phi ptr [ %598, %597 ], [ null, %611 ]
  invoke void @_ZN10SimTKIpopt8SmartPtrIKNS_14CompoundVectorEEC2EPS2_(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef %613)
          to label %614 unwind label %607

614:                                              ; preds = %612
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  %615 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %616 unwind label %655

616:                                              ; preds = %614
  invoke void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %58, ptr noundef nonnull align 8 dereferenceable(864) %615)
          to label %617 unwind label %655

617:                                              ; preds = %616
  %618 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %619 unwind label %659

619:                                              ; preds = %617
  invoke void @_ZNK10SimTKIpopt14IteratesVector16MakeNewContainerEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.66") align 8 %57, ptr noundef nonnull align 8 dereferenceable(280) %618)
          to label %620 unwind label %659

620:                                              ; preds = %619
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  %621 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %622 unwind label %664

622:                                              ; preds = %620
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #8
  %623 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %624 unwind label %668

624:                                              ; preds = %622
  invoke void @_ZNK10SimTKIpopt14CompoundVector7GetCompEi(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %59, ptr noundef nonnull align 8 dereferenceable(265) %623, i32 noundef 0)
          to label %625 unwind label %668

625:                                              ; preds = %624
  %626 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %627 unwind label %672

627:                                              ; preds = %625
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #8
  %628 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %629 unwind label %676

629:                                              ; preds = %627
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %61, ptr noundef nonnull align 8 dereferenceable(864) %628)
          to label %630 unwind label %676

630:                                              ; preds = %629
  %631 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %632 unwind label %680

632:                                              ; preds = %630
  invoke void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %60, ptr noundef nonnull align 8 dereferenceable(280) %631)
          to label %633 unwind label %680

633:                                              ; preds = %632
  %634 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %635 unwind label %684

635:                                              ; preds = %633
  invoke void @_ZN10SimTKIpopt14IteratesVector10Set_primalERKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(280) %621, ptr noundef nonnull align 8 dereferenceable(205) %626, ptr noundef nonnull align 8 dereferenceable(205) %634)
          to label %636 unwind label %684

636:                                              ; preds = %635
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  %637 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %638 unwind label %664

638:                                              ; preds = %636
  invoke void @_ZN10SimTKIpopt9IpoptData9set_trialERNS_8SmartPtrINS_14IteratesVectorEEE(ptr noundef nonnull align 8 dereferenceable(864) %637, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %639 unwind label %664

639:                                              ; preds = %638
  %640 = load i8, ptr %8, align 1, !tbaa !24, !range !25, !noundef !26
  %641 = trunc i8 %640 to i1
  br i1 %641, label %642, label %709

642:                                              ; preds = %639
  %643 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %644 unwind label %664

644:                                              ; preds = %642
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %643, i32 noundef 5, i32 noundef 8, ptr noundef @.str.28)
          to label %645 unwind label %664

645:                                              ; preds = %644
  %646 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %647 unwind label %664

647:                                              ; preds = %645
  invoke void @_ZN10SimTKIpopt9IpoptData16AcceptTrialPointEv(ptr noundef nonnull align 8 dereferenceable(864) %646)
          to label %648 unwind label %664

648:                                              ; preds = %647
  store i1 true, ptr %66, align 1
  %649 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %650 unwind label %692

650:                                              ; preds = %648
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %651 unwind label %696

651:                                              ; preds = %650
  invoke void @_ZN10SimTKIpopt26FEASIBILITY_PROBLEM_SOLVEDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %649, ptr noundef %62, ptr noundef %64, i32 noundef 230)
          to label %652 unwind label %700

652:                                              ; preds = %651
  store i1 false, ptr %66, align 1
  invoke void @__cxa_throw(ptr %649, ptr @_ZTIN10SimTKIpopt26FEASIBILITY_PROBLEM_SOLVEDE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #11
          to label %1400 unwind label %700

653:                                              ; preds = %607, %603
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #8
  br label %654

654:                                              ; preds = %653, %599
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  br label %1383

655:                                              ; preds = %616, %614
  %656 = landingpad { ptr, i32 }
          cleanup
  %657 = extractvalue { ptr, i32 } %656, 0
  store ptr %657, ptr %4, align 8
  %658 = extractvalue { ptr, i32 } %656, 1
  store i32 %658, ptr %5, align 4
  br label %663

659:                                              ; preds = %619, %617
  %660 = landingpad { ptr, i32 }
          cleanup
  %661 = extractvalue { ptr, i32 } %660, 0
  store ptr %661, ptr %4, align 8
  %662 = extractvalue { ptr, i32 } %660, 1
  store i32 %662, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  br label %663

663:                                              ; preds = %659, %655
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  br label %1382

664:                                              ; preds = %647, %645, %644, %642, %638, %636, %620
  %665 = landingpad { ptr, i32 }
          cleanup
  %666 = extractvalue { ptr, i32 } %665, 0
  store ptr %666, ptr %4, align 8
  %667 = extractvalue { ptr, i32 } %665, 1
  store i32 %667, ptr %5, align 4
  br label %1381

668:                                              ; preds = %624, %622
  %669 = landingpad { ptr, i32 }
          cleanup
  %670 = extractvalue { ptr, i32 } %669, 0
  store ptr %670, ptr %4, align 8
  %671 = extractvalue { ptr, i32 } %669, 1
  store i32 %671, ptr %5, align 4
  br label %691

672:                                              ; preds = %625
  %673 = landingpad { ptr, i32 }
          cleanup
  %674 = extractvalue { ptr, i32 } %673, 0
  store ptr %674, ptr %4, align 8
  %675 = extractvalue { ptr, i32 } %673, 1
  store i32 %675, ptr %5, align 4
  br label %690

676:                                              ; preds = %629, %627
  %677 = landingpad { ptr, i32 }
          cleanup
  %678 = extractvalue { ptr, i32 } %677, 0
  store ptr %678, ptr %4, align 8
  %679 = extractvalue { ptr, i32 } %677, 1
  store i32 %679, ptr %5, align 4
  br label %689

680:                                              ; preds = %632, %630
  %681 = landingpad { ptr, i32 }
          cleanup
  %682 = extractvalue { ptr, i32 } %681, 0
  store ptr %682, ptr %4, align 8
  %683 = extractvalue { ptr, i32 } %681, 1
  store i32 %683, ptr %5, align 4
  br label %688

684:                                              ; preds = %635, %633
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %4, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #8
  br label %688

688:                                              ; preds = %684, %680
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #8
  br label %689

689:                                              ; preds = %688, %676
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #8
  br label %690

690:                                              ; preds = %689, %672
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #8
  br label %691

691:                                              ; preds = %690, %668
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  br label %1381

692:                                              ; preds = %648
  %693 = landingpad { ptr, i32 }
          cleanup
  %694 = extractvalue { ptr, i32 } %693, 0
  store ptr %694, ptr %4, align 8
  %695 = extractvalue { ptr, i32 } %693, 1
  store i32 %695, ptr %5, align 4
  br label %705

696:                                              ; preds = %650
  %697 = landingpad { ptr, i32 }
          cleanup
  %698 = extractvalue { ptr, i32 } %697, 0
  store ptr %698, ptr %4, align 8
  %699 = extractvalue { ptr, i32 } %697, 1
  store i32 %699, ptr %5, align 4
  br label %704

700:                                              ; preds = %652, %651
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %4, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  br label %704

704:                                              ; preds = %700, %696
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %705

705:                                              ; preds = %704, %692
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #8
  %706 = load i1, ptr %66, align 1
  br i1 %706, label %707, label %708

707:                                              ; preds = %705
  call void @__cxa_free_exception(ptr %649) #8
  br label %708

708:                                              ; preds = %707, %705
  br label %1381

709:                                              ; preds = %639
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #8
  %710 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %711 unwind label %969

711:                                              ; preds = %709
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %68, ptr noundef nonnull align 8 dereferenceable(864) %710)
          to label %712 unwind label %969

712:                                              ; preds = %711
  %713 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %714 unwind label %973

714:                                              ; preds = %712
  invoke void @_ZNK10SimTKIpopt14IteratesVector21MakeNewIteratesVectorEb(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.66") align 8 %67, ptr noundef nonnull align 8 dereferenceable(280) %713, i1 noundef zeroext true)
          to label %715 unwind label %973

715:                                              ; preds = %714
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  %716 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %717 unwind label %978

717:                                              ; preds = %715
  invoke void @_ZN10SimTKIpopt6Vector3SetEd(ptr noundef nonnull align 8 dereferenceable(205) %716, double noundef 0.000000e+00)
          to label %718 unwind label %978

718:                                              ; preds = %717
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #8
  %719 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %720 unwind label %982

720:                                              ; preds = %718
  invoke void @_ZN10SimTKIpopt14IteratesVector12z_L_NonConstEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %69, ptr noundef nonnull align 8 dereferenceable(280) %719)
          to label %721 unwind label %982

721:                                              ; preds = %720
  %722 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %723 unwind label %986

723:                                              ; preds = %721
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #8
  %724 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %725 unwind label %990

725:                                              ; preds = %723
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %71, ptr noundef nonnull align 8 dereferenceable(864) %724)
          to label %726 unwind label %990

726:                                              ; preds = %725
  %727 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %728 unwind label %994

728:                                              ; preds = %726
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %70, ptr noundef nonnull align 8 dereferenceable(280) %727)
          to label %729 unwind label %994

729:                                              ; preds = %728
  %730 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %731 unwind label %998

731:                                              ; preds = %729
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #8
  %732 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %733 unwind label %1002

733:                                              ; preds = %731
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_x_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %72, ptr noundef nonnull align 8 dereferenceable(2025) %732)
          to label %734 unwind label %1002

734:                                              ; preds = %733
  %735 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %736 unwind label %1006

736:                                              ; preds = %734
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #8
  %737 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %738 unwind label %1010

738:                                              ; preds = %736
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_x_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %73, ptr noundef nonnull align 8 dereferenceable(2025) %737)
          to label %739 unwind label %1010

739:                                              ; preds = %738
  %740 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %741 unwind label %1014

741:                                              ; preds = %739
  invoke void @_ZN10SimTKIpopt25MinC_1NrmRestorationPhase26ComputeBoundMultiplierStepERNS_6VectorERKS1_S4_S4_(ptr noundef nonnull align 8 dereferenceable(104) %117, ptr noundef nonnull align 8 dereferenceable(205) %722, ptr noundef nonnull align 8 dereferenceable(205) %730, ptr noundef nonnull align 8 dereferenceable(205) %735, ptr noundef nonnull align 8 dereferenceable(205) %740)
          to label %742 unwind label %1014

742:                                              ; preds = %741
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #8
  %743 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %744 unwind label %1026

744:                                              ; preds = %742
  invoke void @_ZN10SimTKIpopt14IteratesVector12z_U_NonConstEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %74, ptr noundef nonnull align 8 dereferenceable(280) %743)
          to label %745 unwind label %1026

745:                                              ; preds = %744
  %746 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %747 unwind label %1030

747:                                              ; preds = %745
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #8
  %748 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %749 unwind label %1034

749:                                              ; preds = %747
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %76, ptr noundef nonnull align 8 dereferenceable(864) %748)
          to label %750 unwind label %1034

750:                                              ; preds = %749
  %751 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %76)
          to label %752 unwind label %1038

752:                                              ; preds = %750
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %75, ptr noundef nonnull align 8 dereferenceable(280) %751)
          to label %753 unwind label %1038

753:                                              ; preds = %752
  %754 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %755 unwind label %1042

755:                                              ; preds = %753
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #8
  %756 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %757 unwind label %1046

757:                                              ; preds = %755
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_x_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %77, ptr noundef nonnull align 8 dereferenceable(2025) %756)
          to label %758 unwind label %1046

758:                                              ; preds = %757
  %759 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %77)
          to label %760 unwind label %1050

760:                                              ; preds = %758
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #8
  %761 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %762 unwind label %1054

762:                                              ; preds = %760
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_x_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %78, ptr noundef nonnull align 8 dereferenceable(2025) %761)
          to label %763 unwind label %1054

763:                                              ; preds = %762
  %764 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %765 unwind label %1058

765:                                              ; preds = %763
  invoke void @_ZN10SimTKIpopt25MinC_1NrmRestorationPhase26ComputeBoundMultiplierStepERNS_6VectorERKS1_S4_S4_(ptr noundef nonnull align 8 dereferenceable(104) %117, ptr noundef nonnull align 8 dereferenceable(205) %746, ptr noundef nonnull align 8 dereferenceable(205) %754, ptr noundef nonnull align 8 dereferenceable(205) %759, ptr noundef nonnull align 8 dereferenceable(205) %764)
          to label %766 unwind label %1058

766:                                              ; preds = %765
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #8
  %767 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %768 unwind label %1070

768:                                              ; preds = %766
  invoke void @_ZN10SimTKIpopt14IteratesVector12v_L_NonConstEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %79, ptr noundef nonnull align 8 dereferenceable(280) %767)
          to label %769 unwind label %1070

769:                                              ; preds = %768
  %770 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %79)
          to label %771 unwind label %1074

771:                                              ; preds = %769
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #8
  %772 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %773 unwind label %1078

773:                                              ; preds = %771
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %81, ptr noundef nonnull align 8 dereferenceable(864) %772)
          to label %774 unwind label %1078

774:                                              ; preds = %773
  %775 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %776 unwind label %1082

776:                                              ; preds = %774
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %80, ptr noundef nonnull align 8 dereferenceable(280) %775)
          to label %777 unwind label %1082

777:                                              ; preds = %776
  %778 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %80)
          to label %779 unwind label %1086

779:                                              ; preds = %777
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #8
  %780 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %781 unwind label %1090

781:                                              ; preds = %779
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_s_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %82, ptr noundef nonnull align 8 dereferenceable(2025) %780)
          to label %782 unwind label %1090

782:                                              ; preds = %781
  %783 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %784 unwind label %1094

784:                                              ; preds = %782
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #8
  %785 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %786 unwind label %1098

786:                                              ; preds = %784
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_s_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %83, ptr noundef nonnull align 8 dereferenceable(2025) %785)
          to label %787 unwind label %1098

787:                                              ; preds = %786
  %788 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %83)
          to label %789 unwind label %1102

789:                                              ; preds = %787
  invoke void @_ZN10SimTKIpopt25MinC_1NrmRestorationPhase26ComputeBoundMultiplierStepERNS_6VectorERKS1_S4_S4_(ptr noundef nonnull align 8 dereferenceable(104) %117, ptr noundef nonnull align 8 dereferenceable(205) %770, ptr noundef nonnull align 8 dereferenceable(205) %778, ptr noundef nonnull align 8 dereferenceable(205) %783, ptr noundef nonnull align 8 dereferenceable(205) %788)
          to label %790 unwind label %1102

790:                                              ; preds = %789
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #8
  %791 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %792 unwind label %1114

792:                                              ; preds = %790
  invoke void @_ZN10SimTKIpopt14IteratesVector12v_U_NonConstEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %84, ptr noundef nonnull align 8 dereferenceable(280) %791)
          to label %793 unwind label %1114

793:                                              ; preds = %792
  %794 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %84)
          to label %795 unwind label %1118

795:                                              ; preds = %793
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #8
  %796 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %797 unwind label %1122

797:                                              ; preds = %795
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %86, ptr noundef nonnull align 8 dereferenceable(864) %796)
          to label %798 unwind label %1122

798:                                              ; preds = %797
  %799 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %86)
          to label %800 unwind label %1126

800:                                              ; preds = %798
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %85, ptr noundef nonnull align 8 dereferenceable(280) %799)
          to label %801 unwind label %1126

801:                                              ; preds = %800
  %802 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %803 unwind label %1130

803:                                              ; preds = %801
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #8
  %804 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %805 unwind label %1134

805:                                              ; preds = %803
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_s_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %87, ptr noundef nonnull align 8 dereferenceable(2025) %804)
          to label %806 unwind label %1134

806:                                              ; preds = %805
  %807 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %87)
          to label %808 unwind label %1138

808:                                              ; preds = %806
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #8
  %809 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %810 unwind label %1142

810:                                              ; preds = %808
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_s_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %88, ptr noundef nonnull align 8 dereferenceable(2025) %809)
          to label %811 unwind label %1142

811:                                              ; preds = %810
  %812 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %88)
          to label %813 unwind label %1146

813:                                              ; preds = %811
  invoke void @_ZN10SimTKIpopt25MinC_1NrmRestorationPhase26ComputeBoundMultiplierStepERNS_6VectorERKS1_S4_S4_(ptr noundef nonnull align 8 dereferenceable(104) %117, ptr noundef nonnull align 8 dereferenceable(205) %794, ptr noundef nonnull align 8 dereferenceable(205) %802, ptr noundef nonnull align 8 dereferenceable(205) %807, ptr noundef nonnull align 8 dereferenceable(205) %812)
          to label %814 unwind label %1146

814:                                              ; preds = %813
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #8
  %815 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %816 unwind label %1158

816:                                              ; preds = %814
  %817 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %818 unwind label %1158

818:                                              ; preds = %816
  %819 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData8curr_tauEv(ptr noundef nonnull align 8 dereferenceable(864) %817)
          to label %820 unwind label %1158

820:                                              ; preds = %818
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #8
  %821 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %822 unwind label %1162

822:                                              ; preds = %820
  invoke void @_ZN10SimTKIpopt14IteratesVector12z_L_NonConstEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %90, ptr noundef nonnull align 8 dereferenceable(280) %821)
          to label %823 unwind label %1162

823:                                              ; preds = %822
  %824 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %90)
          to label %825 unwind label %1166

825:                                              ; preds = %823
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #8
  %826 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %827 unwind label %1170

827:                                              ; preds = %825
  invoke void @_ZN10SimTKIpopt14IteratesVector12z_U_NonConstEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %91, ptr noundef nonnull align 8 dereferenceable(280) %826)
          to label %828 unwind label %1170

828:                                              ; preds = %827
  %829 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %830 unwind label %1174

830:                                              ; preds = %828
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #8
  %831 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %832 unwind label %1178

832:                                              ; preds = %830
  invoke void @_ZN10SimTKIpopt14IteratesVector12v_L_NonConstEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %92, ptr noundef nonnull align 8 dereferenceable(280) %831)
          to label %833 unwind label %1178

833:                                              ; preds = %832
  %834 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %92)
          to label %835 unwind label %1182

835:                                              ; preds = %833
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #8
  %836 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %837 unwind label %1186

837:                                              ; preds = %835
  invoke void @_ZN10SimTKIpopt14IteratesVector12v_U_NonConstEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %93, ptr noundef nonnull align 8 dereferenceable(280) %836)
          to label %838 unwind label %1186

838:                                              ; preds = %837
  %839 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %93)
          to label %840 unwind label %1190

840:                                              ; preds = %838
  %841 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities22dual_frac_to_the_boundEdRKNS_6VectorES3_S3_S3_(ptr noundef nonnull align 8 dereferenceable(2025) %815, double noundef %819, ptr noundef nonnull align 8 dereferenceable(205) %824, ptr noundef nonnull align 8 dereferenceable(205) %829, ptr noundef nonnull align 8 dereferenceable(205) %834, ptr noundef nonnull align 8 dereferenceable(205) %839)
          to label %842 unwind label %1190

842:                                              ; preds = %840
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %90) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #8
  store double %841, ptr %89, align 8, !tbaa !31
  %843 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %844 unwind label %1158

844:                                              ; preds = %842
  %845 = load double, ptr %89, align 8, !tbaa !31
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %843, i32 noundef 5, i32 noundef 8, ptr noundef @.str.30, double noundef %845)
          to label %846 unwind label %1158

846:                                              ; preds = %844
  %847 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %848 unwind label %1158

848:                                              ; preds = %846
  %849 = load double, ptr %89, align 8, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #8
  %850 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %851 unwind label %1201

851:                                              ; preds = %848
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %94, ptr noundef nonnull align 8 dereferenceable(280) %850)
          to label %852 unwind label %1201

852:                                              ; preds = %851
  %853 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %94)
          to label %854 unwind label %1205

854:                                              ; preds = %852
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #8
  %855 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %856 unwind label %1209

856:                                              ; preds = %854
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %95, ptr noundef nonnull align 8 dereferenceable(280) %855)
          to label %857 unwind label %1209

857:                                              ; preds = %856
  %858 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %95)
          to label %859 unwind label %1213

859:                                              ; preds = %857
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #8
  %860 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %861 unwind label %1217

861:                                              ; preds = %859
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %96, ptr noundef nonnull align 8 dereferenceable(280) %860)
          to label %862 unwind label %1217

862:                                              ; preds = %861
  %863 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %96)
          to label %864 unwind label %1221

864:                                              ; preds = %862
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #8
  %865 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %866 unwind label %1225

866:                                              ; preds = %864
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %97, ptr noundef nonnull align 8 dereferenceable(280) %865)
          to label %867 unwind label %1225

867:                                              ; preds = %866
  %868 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %869 unwind label %1229

869:                                              ; preds = %867
  invoke void @_ZN10SimTKIpopt9IpoptData32SetTrialBoundMultipliersFromStepEdRKNS_6VectorES3_S3_S3_(ptr noundef nonnull align 8 dereferenceable(864) %847, double noundef %849, ptr noundef nonnull align 8 dereferenceable(205) %853, ptr noundef nonnull align 8 dereferenceable(205) %858, ptr noundef nonnull align 8 dereferenceable(205) %863, ptr noundef nonnull align 8 dereferenceable(205) %868)
          to label %870 unwind label %1229

870:                                              ; preds = %869
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #8
  %871 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %872 unwind label %1240

872:                                              ; preds = %870
  invoke void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %100, ptr noundef nonnull align 8 dereferenceable(864) %871)
          to label %873 unwind label %1240

873:                                              ; preds = %872
  %874 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %100)
          to label %875 unwind label %1244

875:                                              ; preds = %873
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %99, ptr noundef nonnull align 8 dereferenceable(280) %874)
          to label %876 unwind label %1244

876:                                              ; preds = %875
  %877 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %99)
          to label %878 unwind label %1248

878:                                              ; preds = %876
  %879 = invoke noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205) %877)
          to label %880 unwind label %1248

880:                                              ; preds = %878
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #8
  %881 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %882 unwind label %1252

882:                                              ; preds = %880
  invoke void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %102, ptr noundef nonnull align 8 dereferenceable(864) %881)
          to label %883 unwind label %1252

883:                                              ; preds = %882
  %884 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %885 unwind label %1256

885:                                              ; preds = %883
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %101, ptr noundef nonnull align 8 dereferenceable(280) %884)
          to label %886 unwind label %1256

886:                                              ; preds = %885
  %887 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %101)
          to label %888 unwind label %1260

888:                                              ; preds = %886
  %889 = invoke noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205) %887)
          to label %890 unwind label %1260

890:                                              ; preds = %888
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #8
  %891 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %892 unwind label %1264

892:                                              ; preds = %890
  invoke void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %104, ptr noundef nonnull align 8 dereferenceable(864) %891)
          to label %893 unwind label %1264

893:                                              ; preds = %892
  %894 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %104)
          to label %895 unwind label %1268

895:                                              ; preds = %893
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %103, ptr noundef nonnull align 8 dereferenceable(280) %894)
          to label %896 unwind label %1268

896:                                              ; preds = %895
  %897 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %103)
          to label %898 unwind label %1272

898:                                              ; preds = %896
  %899 = invoke noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205) %897)
          to label %900 unwind label %1272

900:                                              ; preds = %898
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #8
  %901 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %902 unwind label %1276

902:                                              ; preds = %900
  invoke void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %106, ptr noundef nonnull align 8 dereferenceable(864) %901)
          to label %903 unwind label %1276

903:                                              ; preds = %902
  %904 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %106)
          to label %905 unwind label %1280

905:                                              ; preds = %903
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %105, ptr noundef nonnull align 8 dereferenceable(280) %904)
          to label %906 unwind label %1280

906:                                              ; preds = %905
  %907 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %105)
          to label %908 unwind label %1284

908:                                              ; preds = %906
  %909 = invoke noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205) %907)
          to label %910 unwind label %1284

910:                                              ; preds = %908
  %911 = invoke noundef double @_ZN10SimTKIpopt3MaxEdddd(double noundef %879, double noundef %889, double noundef %899, double noundef %909)
          to label %912 unwind label %1284

912:                                              ; preds = %910
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %105) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %106) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #8
  store double %911, ptr %98, align 8, !tbaa !31
  %913 = load double, ptr %98, align 8, !tbaa !31
  %914 = getelementptr inbounds %"class.SimTKIpopt::MinC_1NrmRestorationPhase", ptr %117, i32 0, i32 5
  %915 = load double, ptr %914, align 8, !tbaa !32
  %916 = fcmp ogt double %913, %915
  br i1 %916, label %917, label %1353

917:                                              ; preds = %912
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #8
  %918 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %919 unwind label %1299

919:                                              ; preds = %917
  invoke void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %108, ptr noundef nonnull align 8 dereferenceable(864) %918)
          to label %920 unwind label %1299

920:                                              ; preds = %919
  %921 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %108)
          to label %922 unwind label %1303

922:                                              ; preds = %920
  invoke void @_ZNK10SimTKIpopt14IteratesVector16MakeNewContainerEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.66") align 8 %107, ptr noundef nonnull align 8 dereferenceable(280) %921)
          to label %923 unwind label %1303

923:                                              ; preds = %922
  %924 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull align 8 dereferenceable(8) %107)
          to label %925 unwind label %1307

925:                                              ; preds = %923
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %108) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #8
  %926 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %927 unwind label %1313

927:                                              ; preds = %925
  %928 = load double, ptr %98, align 8, !tbaa !31
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %926, i32 noundef 5, i32 noundef 8, ptr noundef @.str.31, double noundef %928)
          to label %929 unwind label %1313

929:                                              ; preds = %927
  %930 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %931 unwind label %1313

931:                                              ; preds = %929
  invoke void @_ZN10SimTKIpopt14IteratesVector14create_new_z_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %109, ptr noundef nonnull align 8 dereferenceable(280) %930)
          to label %932 unwind label %1313

932:                                              ; preds = %931
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #8
  %933 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %934 unwind label %1313

934:                                              ; preds = %932
  invoke void @_ZN10SimTKIpopt14IteratesVector14create_new_z_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %110, ptr noundef nonnull align 8 dereferenceable(280) %933)
          to label %935 unwind label %1313

935:                                              ; preds = %934
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #8
  %936 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %937 unwind label %1313

937:                                              ; preds = %935
  invoke void @_ZN10SimTKIpopt14IteratesVector14create_new_v_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %111, ptr noundef nonnull align 8 dereferenceable(280) %936)
          to label %938 unwind label %1313

938:                                              ; preds = %937
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #8
  %939 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %940 unwind label %1313

940:                                              ; preds = %938
  invoke void @_ZN10SimTKIpopt14IteratesVector14create_new_v_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %112, ptr noundef nonnull align 8 dereferenceable(280) %939)
          to label %941 unwind label %1313

941:                                              ; preds = %940
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #8
  %942 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %943 unwind label %1317

943:                                              ; preds = %941
  invoke void @_ZN10SimTKIpopt14IteratesVector12z_L_NonConstEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %113, ptr noundef nonnull align 8 dereferenceable(280) %942)
          to label %944 unwind label %1317

944:                                              ; preds = %943
  %945 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %113)
          to label %946 unwind label %1321

946:                                              ; preds = %944
  invoke void @_ZN10SimTKIpopt6Vector3SetEd(ptr noundef nonnull align 8 dereferenceable(205) %945, double noundef 1.000000e+00)
          to label %947 unwind label %1321

947:                                              ; preds = %946
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #8
  %948 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %949 unwind label %1326

949:                                              ; preds = %947
  invoke void @_ZN10SimTKIpopt14IteratesVector12z_U_NonConstEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %114, ptr noundef nonnull align 8 dereferenceable(280) %948)
          to label %950 unwind label %1326

950:                                              ; preds = %949
  %951 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %114)
          to label %952 unwind label %1330

952:                                              ; preds = %950
  invoke void @_ZN10SimTKIpopt6Vector3SetEd(ptr noundef nonnull align 8 dereferenceable(205) %951, double noundef 1.000000e+00)
          to label %953 unwind label %1330

953:                                              ; preds = %952
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #8
  %954 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %955 unwind label %1335

955:                                              ; preds = %953
  invoke void @_ZN10SimTKIpopt14IteratesVector12v_L_NonConstEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %115, ptr noundef nonnull align 8 dereferenceable(280) %954)
          to label %956 unwind label %1335

956:                                              ; preds = %955
  %957 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %115)
          to label %958 unwind label %1339

958:                                              ; preds = %956
  invoke void @_ZN10SimTKIpopt6Vector3SetEd(ptr noundef nonnull align 8 dereferenceable(205) %957, double noundef 1.000000e+00)
          to label %959 unwind label %1339

959:                                              ; preds = %958
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #8
  %960 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %961 unwind label %1344

961:                                              ; preds = %959
  invoke void @_ZN10SimTKIpopt14IteratesVector12v_U_NonConstEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %116, ptr noundef nonnull align 8 dereferenceable(280) %960)
          to label %962 unwind label %1344

962:                                              ; preds = %961
  %963 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %116)
          to label %964 unwind label %1348

964:                                              ; preds = %962
  invoke void @_ZN10SimTKIpopt6Vector3SetEd(ptr noundef nonnull align 8 dereferenceable(205) %963, double noundef 1.000000e+00)
          to label %965 unwind label %1348

965:                                              ; preds = %964
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %116) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #8
  %966 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %967 unwind label %1313

967:                                              ; preds = %965
  invoke void @_ZN10SimTKIpopt9IpoptData9set_trialERNS_8SmartPtrINS_14IteratesVectorEEE(ptr noundef nonnull align 8 dereferenceable(864) %966, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %968 unwind label %1313

968:                                              ; preds = %967
  br label %1353

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

973:                                              ; preds = %714, %712
  %974 = landingpad { ptr, i32 }
          cleanup
  %975 = extractvalue { ptr, i32 } %974, 0
  store ptr %975, ptr %4, align 8
  %976 = extractvalue { ptr, i32 } %974, 1
  store i32 %976, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #8
  br label %977

977:                                              ; preds = %973, %969
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  br label %1380

978:                                              ; preds = %717, %715
  %979 = landingpad { ptr, i32 }
          cleanup
  %980 = extractvalue { ptr, i32 } %979, 0
  store ptr %980, ptr %4, align 8
  %981 = extractvalue { ptr, i32 } %979, 1
  store i32 %981, ptr %5, align 4
  br label %1379

982:                                              ; preds = %720, %718
  %983 = landingpad { ptr, i32 }
          cleanup
  %984 = extractvalue { ptr, i32 } %983, 0
  store ptr %984, ptr %4, align 8
  %985 = extractvalue { ptr, i32 } %983, 1
  store i32 %985, ptr %5, align 4
  br label %1025

986:                                              ; preds = %721
  %987 = landingpad { ptr, i32 }
          cleanup
  %988 = extractvalue { ptr, i32 } %987, 0
  store ptr %988, ptr %4, align 8
  %989 = extractvalue { ptr, i32 } %987, 1
  store i32 %989, ptr %5, align 4
  br label %1024

990:                                              ; preds = %725, %723
  %991 = landingpad { ptr, i32 }
          cleanup
  %992 = extractvalue { ptr, i32 } %991, 0
  store ptr %992, ptr %4, align 8
  %993 = extractvalue { ptr, i32 } %991, 1
  store i32 %993, ptr %5, align 4
  br label %1023

994:                                              ; preds = %728, %726
  %995 = landingpad { ptr, i32 }
          cleanup
  %996 = extractvalue { ptr, i32 } %995, 0
  store ptr %996, ptr %4, align 8
  %997 = extractvalue { ptr, i32 } %995, 1
  store i32 %997, ptr %5, align 4
  br label %1022

998:                                              ; preds = %729
  %999 = landingpad { ptr, i32 }
          cleanup
  %1000 = extractvalue { ptr, i32 } %999, 0
  store ptr %1000, ptr %4, align 8
  %1001 = extractvalue { ptr, i32 } %999, 1
  store i32 %1001, ptr %5, align 4
  br label %1021

1002:                                             ; preds = %733, %731
  %1003 = landingpad { ptr, i32 }
          cleanup
  %1004 = extractvalue { ptr, i32 } %1003, 0
  store ptr %1004, ptr %4, align 8
  %1005 = extractvalue { ptr, i32 } %1003, 1
  store i32 %1005, ptr %5, align 4
  br label %1020

1006:                                             ; preds = %734
  %1007 = landingpad { ptr, i32 }
          cleanup
  %1008 = extractvalue { ptr, i32 } %1007, 0
  store ptr %1008, ptr %4, align 8
  %1009 = extractvalue { ptr, i32 } %1007, 1
  store i32 %1009, ptr %5, align 4
  br label %1019

1010:                                             ; preds = %738, %736
  %1011 = landingpad { ptr, i32 }
          cleanup
  %1012 = extractvalue { ptr, i32 } %1011, 0
  store ptr %1012, ptr %4, align 8
  %1013 = extractvalue { ptr, i32 } %1011, 1
  store i32 %1013, ptr %5, align 4
  br label %1018

1014:                                             ; preds = %741, %739
  %1015 = landingpad { ptr, i32 }
          cleanup
  %1016 = extractvalue { ptr, i32 } %1015, 0
  store ptr %1016, ptr %4, align 8
  %1017 = extractvalue { ptr, i32 } %1015, 1
  store i32 %1017, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #8
  br label %1018

1018:                                             ; preds = %1014, %1010
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  br label %1019

1019:                                             ; preds = %1018, %1006
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #8
  br label %1020

1020:                                             ; preds = %1019, %1002
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  br label %1021

1021:                                             ; preds = %1020, %998
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #8
  br label %1022

1022:                                             ; preds = %1021, %994
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  br label %1023

1023:                                             ; preds = %1022, %990
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  br label %1024

1024:                                             ; preds = %1023, %986
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  br label %1025

1025:                                             ; preds = %1024, %982
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  br label %1379

1026:                                             ; preds = %744, %742
  %1027 = landingpad { ptr, i32 }
          cleanup
  %1028 = extractvalue { ptr, i32 } %1027, 0
  store ptr %1028, ptr %4, align 8
  %1029 = extractvalue { ptr, i32 } %1027, 1
  store i32 %1029, ptr %5, align 4
  br label %1069

1030:                                             ; preds = %745
  %1031 = landingpad { ptr, i32 }
          cleanup
  %1032 = extractvalue { ptr, i32 } %1031, 0
  store ptr %1032, ptr %4, align 8
  %1033 = extractvalue { ptr, i32 } %1031, 1
  store i32 %1033, ptr %5, align 4
  br label %1068

1034:                                             ; preds = %749, %747
  %1035 = landingpad { ptr, i32 }
          cleanup
  %1036 = extractvalue { ptr, i32 } %1035, 0
  store ptr %1036, ptr %4, align 8
  %1037 = extractvalue { ptr, i32 } %1035, 1
  store i32 %1037, ptr %5, align 4
  br label %1067

1038:                                             ; preds = %752, %750
  %1039 = landingpad { ptr, i32 }
          cleanup
  %1040 = extractvalue { ptr, i32 } %1039, 0
  store ptr %1040, ptr %4, align 8
  %1041 = extractvalue { ptr, i32 } %1039, 1
  store i32 %1041, ptr %5, align 4
  br label %1066

1042:                                             ; preds = %753
  %1043 = landingpad { ptr, i32 }
          cleanup
  %1044 = extractvalue { ptr, i32 } %1043, 0
  store ptr %1044, ptr %4, align 8
  %1045 = extractvalue { ptr, i32 } %1043, 1
  store i32 %1045, ptr %5, align 4
  br label %1065

1046:                                             ; preds = %757, %755
  %1047 = landingpad { ptr, i32 }
          cleanup
  %1048 = extractvalue { ptr, i32 } %1047, 0
  store ptr %1048, ptr %4, align 8
  %1049 = extractvalue { ptr, i32 } %1047, 1
  store i32 %1049, ptr %5, align 4
  br label %1064

1050:                                             ; preds = %758
  %1051 = landingpad { ptr, i32 }
          cleanup
  %1052 = extractvalue { ptr, i32 } %1051, 0
  store ptr %1052, ptr %4, align 8
  %1053 = extractvalue { ptr, i32 } %1051, 1
  store i32 %1053, ptr %5, align 4
  br label %1063

1054:                                             ; preds = %762, %760
  %1055 = landingpad { ptr, i32 }
          cleanup
  %1056 = extractvalue { ptr, i32 } %1055, 0
  store ptr %1056, ptr %4, align 8
  %1057 = extractvalue { ptr, i32 } %1055, 1
  store i32 %1057, ptr %5, align 4
  br label %1062

1058:                                             ; preds = %765, %763
  %1059 = landingpad { ptr, i32 }
          cleanup
  %1060 = extractvalue { ptr, i32 } %1059, 0
  store ptr %1060, ptr %4, align 8
  %1061 = extractvalue { ptr, i32 } %1059, 1
  store i32 %1061, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #8
  br label %1062

1062:                                             ; preds = %1058, %1054
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #8
  br label %1063

1063:                                             ; preds = %1062, %1050
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #8
  br label %1064

1064:                                             ; preds = %1063, %1046
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #8
  br label %1065

1065:                                             ; preds = %1064, %1042
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #8
  br label %1066

1066:                                             ; preds = %1065, %1038
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #8
  br label %1067

1067:                                             ; preds = %1066, %1034
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  br label %1068

1068:                                             ; preds = %1067, %1030
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #8
  br label %1069

1069:                                             ; preds = %1068, %1026
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  br label %1379

1070:                                             ; preds = %768, %766
  %1071 = landingpad { ptr, i32 }
          cleanup
  %1072 = extractvalue { ptr, i32 } %1071, 0
  store ptr %1072, ptr %4, align 8
  %1073 = extractvalue { ptr, i32 } %1071, 1
  store i32 %1073, ptr %5, align 4
  br label %1113

1074:                                             ; preds = %769
  %1075 = landingpad { ptr, i32 }
          cleanup
  %1076 = extractvalue { ptr, i32 } %1075, 0
  store ptr %1076, ptr %4, align 8
  %1077 = extractvalue { ptr, i32 } %1075, 1
  store i32 %1077, ptr %5, align 4
  br label %1112

1078:                                             ; preds = %773, %771
  %1079 = landingpad { ptr, i32 }
          cleanup
  %1080 = extractvalue { ptr, i32 } %1079, 0
  store ptr %1080, ptr %4, align 8
  %1081 = extractvalue { ptr, i32 } %1079, 1
  store i32 %1081, ptr %5, align 4
  br label %1111

1082:                                             ; preds = %776, %774
  %1083 = landingpad { ptr, i32 }
          cleanup
  %1084 = extractvalue { ptr, i32 } %1083, 0
  store ptr %1084, ptr %4, align 8
  %1085 = extractvalue { ptr, i32 } %1083, 1
  store i32 %1085, ptr %5, align 4
  br label %1110

1086:                                             ; preds = %777
  %1087 = landingpad { ptr, i32 }
          cleanup
  %1088 = extractvalue { ptr, i32 } %1087, 0
  store ptr %1088, ptr %4, align 8
  %1089 = extractvalue { ptr, i32 } %1087, 1
  store i32 %1089, ptr %5, align 4
  br label %1109

1090:                                             ; preds = %781, %779
  %1091 = landingpad { ptr, i32 }
          cleanup
  %1092 = extractvalue { ptr, i32 } %1091, 0
  store ptr %1092, ptr %4, align 8
  %1093 = extractvalue { ptr, i32 } %1091, 1
  store i32 %1093, ptr %5, align 4
  br label %1108

1094:                                             ; preds = %782
  %1095 = landingpad { ptr, i32 }
          cleanup
  %1096 = extractvalue { ptr, i32 } %1095, 0
  store ptr %1096, ptr %4, align 8
  %1097 = extractvalue { ptr, i32 } %1095, 1
  store i32 %1097, ptr %5, align 4
  br label %1107

1098:                                             ; preds = %786, %784
  %1099 = landingpad { ptr, i32 }
          cleanup
  %1100 = extractvalue { ptr, i32 } %1099, 0
  store ptr %1100, ptr %4, align 8
  %1101 = extractvalue { ptr, i32 } %1099, 1
  store i32 %1101, ptr %5, align 4
  br label %1106

1102:                                             ; preds = %789, %787
  %1103 = landingpad { ptr, i32 }
          cleanup
  %1104 = extractvalue { ptr, i32 } %1103, 0
  store ptr %1104, ptr %4, align 8
  %1105 = extractvalue { ptr, i32 } %1103, 1
  store i32 %1105, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #8
  br label %1106

1106:                                             ; preds = %1102, %1098
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #8
  br label %1107

1107:                                             ; preds = %1106, %1094
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #8
  br label %1108

1108:                                             ; preds = %1107, %1090
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #8
  br label %1109

1109:                                             ; preds = %1108, %1086
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #8
  br label %1110

1110:                                             ; preds = %1109, %1082
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #8
  br label %1111

1111:                                             ; preds = %1110, %1078
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  br label %1112

1112:                                             ; preds = %1111, %1074
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #8
  br label %1113

1113:                                             ; preds = %1112, %1070
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #8
  br label %1379

1114:                                             ; preds = %792, %790
  %1115 = landingpad { ptr, i32 }
          cleanup
  %1116 = extractvalue { ptr, i32 } %1115, 0
  store ptr %1116, ptr %4, align 8
  %1117 = extractvalue { ptr, i32 } %1115, 1
  store i32 %1117, ptr %5, align 4
  br label %1157

1118:                                             ; preds = %793
  %1119 = landingpad { ptr, i32 }
          cleanup
  %1120 = extractvalue { ptr, i32 } %1119, 0
  store ptr %1120, ptr %4, align 8
  %1121 = extractvalue { ptr, i32 } %1119, 1
  store i32 %1121, ptr %5, align 4
  br label %1156

1122:                                             ; preds = %797, %795
  %1123 = landingpad { ptr, i32 }
          cleanup
  %1124 = extractvalue { ptr, i32 } %1123, 0
  store ptr %1124, ptr %4, align 8
  %1125 = extractvalue { ptr, i32 } %1123, 1
  store i32 %1125, ptr %5, align 4
  br label %1155

1126:                                             ; preds = %800, %798
  %1127 = landingpad { ptr, i32 }
          cleanup
  %1128 = extractvalue { ptr, i32 } %1127, 0
  store ptr %1128, ptr %4, align 8
  %1129 = extractvalue { ptr, i32 } %1127, 1
  store i32 %1129, ptr %5, align 4
  br label %1154

1130:                                             ; preds = %801
  %1131 = landingpad { ptr, i32 }
          cleanup
  %1132 = extractvalue { ptr, i32 } %1131, 0
  store ptr %1132, ptr %4, align 8
  %1133 = extractvalue { ptr, i32 } %1131, 1
  store i32 %1133, ptr %5, align 4
  br label %1153

1134:                                             ; preds = %805, %803
  %1135 = landingpad { ptr, i32 }
          cleanup
  %1136 = extractvalue { ptr, i32 } %1135, 0
  store ptr %1136, ptr %4, align 8
  %1137 = extractvalue { ptr, i32 } %1135, 1
  store i32 %1137, ptr %5, align 4
  br label %1152

1138:                                             ; preds = %806
  %1139 = landingpad { ptr, i32 }
          cleanup
  %1140 = extractvalue { ptr, i32 } %1139, 0
  store ptr %1140, ptr %4, align 8
  %1141 = extractvalue { ptr, i32 } %1139, 1
  store i32 %1141, ptr %5, align 4
  br label %1151

1142:                                             ; preds = %810, %808
  %1143 = landingpad { ptr, i32 }
          cleanup
  %1144 = extractvalue { ptr, i32 } %1143, 0
  store ptr %1144, ptr %4, align 8
  %1145 = extractvalue { ptr, i32 } %1143, 1
  store i32 %1145, ptr %5, align 4
  br label %1150

1146:                                             ; preds = %813, %811
  %1147 = landingpad { ptr, i32 }
          cleanup
  %1148 = extractvalue { ptr, i32 } %1147, 0
  store ptr %1148, ptr %4, align 8
  %1149 = extractvalue { ptr, i32 } %1147, 1
  store i32 %1149, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #8
  br label %1150

1150:                                             ; preds = %1146, %1142
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #8
  br label %1151

1151:                                             ; preds = %1150, %1138
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #8
  br label %1152

1152:                                             ; preds = %1151, %1134
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #8
  br label %1153

1153:                                             ; preds = %1152, %1130
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #8
  br label %1154

1154:                                             ; preds = %1153, %1126
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #8
  br label %1155

1155:                                             ; preds = %1154, %1122
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #8
  br label %1156

1156:                                             ; preds = %1155, %1118
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #8
  br label %1157

1157:                                             ; preds = %1156, %1114
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #8
  br label %1379

1158:                                             ; preds = %846, %844, %842, %818, %816, %814
  %1159 = landingpad { ptr, i32 }
          cleanup
  %1160 = extractvalue { ptr, i32 } %1159, 0
  store ptr %1160, ptr %4, align 8
  %1161 = extractvalue { ptr, i32 } %1159, 1
  store i32 %1161, ptr %5, align 4
  br label %1378

1162:                                             ; preds = %822, %820
  %1163 = landingpad { ptr, i32 }
          cleanup
  %1164 = extractvalue { ptr, i32 } %1163, 0
  store ptr %1164, ptr %4, align 8
  %1165 = extractvalue { ptr, i32 } %1163, 1
  store i32 %1165, ptr %5, align 4
  br label %1200

1166:                                             ; preds = %823
  %1167 = landingpad { ptr, i32 }
          cleanup
  %1168 = extractvalue { ptr, i32 } %1167, 0
  store ptr %1168, ptr %4, align 8
  %1169 = extractvalue { ptr, i32 } %1167, 1
  store i32 %1169, ptr %5, align 4
  br label %1199

1170:                                             ; preds = %827, %825
  %1171 = landingpad { ptr, i32 }
          cleanup
  %1172 = extractvalue { ptr, i32 } %1171, 0
  store ptr %1172, ptr %4, align 8
  %1173 = extractvalue { ptr, i32 } %1171, 1
  store i32 %1173, ptr %5, align 4
  br label %1198

1174:                                             ; preds = %828
  %1175 = landingpad { ptr, i32 }
          cleanup
  %1176 = extractvalue { ptr, i32 } %1175, 0
  store ptr %1176, ptr %4, align 8
  %1177 = extractvalue { ptr, i32 } %1175, 1
  store i32 %1177, ptr %5, align 4
  br label %1197

1178:                                             ; preds = %832, %830
  %1179 = landingpad { ptr, i32 }
          cleanup
  %1180 = extractvalue { ptr, i32 } %1179, 0
  store ptr %1180, ptr %4, align 8
  %1181 = extractvalue { ptr, i32 } %1179, 1
  store i32 %1181, ptr %5, align 4
  br label %1196

1182:                                             ; preds = %833
  %1183 = landingpad { ptr, i32 }
          cleanup
  %1184 = extractvalue { ptr, i32 } %1183, 0
  store ptr %1184, ptr %4, align 8
  %1185 = extractvalue { ptr, i32 } %1183, 1
  store i32 %1185, ptr %5, align 4
  br label %1195

1186:                                             ; preds = %837, %835
  %1187 = landingpad { ptr, i32 }
          cleanup
  %1188 = extractvalue { ptr, i32 } %1187, 0
  store ptr %1188, ptr %4, align 8
  %1189 = extractvalue { ptr, i32 } %1187, 1
  store i32 %1189, ptr %5, align 4
  br label %1194

1190:                                             ; preds = %840, %838
  %1191 = landingpad { ptr, i32 }
          cleanup
  %1192 = extractvalue { ptr, i32 } %1191, 0
  store ptr %1192, ptr %4, align 8
  %1193 = extractvalue { ptr, i32 } %1191, 1
  store i32 %1193, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #8
  br label %1194

1194:                                             ; preds = %1190, %1186
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #8
  br label %1195

1195:                                             ; preds = %1194, %1182
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #8
  br label %1196

1196:                                             ; preds = %1195, %1178
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #8
  br label %1197

1197:                                             ; preds = %1196, %1174
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #8
  br label %1198

1198:                                             ; preds = %1197, %1170
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #8
  br label %1199

1199:                                             ; preds = %1198, %1166
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %90) #8
  br label %1200

1200:                                             ; preds = %1199, %1162
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #8
  br label %1378

1201:                                             ; preds = %851, %848
  %1202 = landingpad { ptr, i32 }
          cleanup
  %1203 = extractvalue { ptr, i32 } %1202, 0
  store ptr %1203, ptr %4, align 8
  %1204 = extractvalue { ptr, i32 } %1202, 1
  store i32 %1204, ptr %5, align 4
  br label %1239

1205:                                             ; preds = %852
  %1206 = landingpad { ptr, i32 }
          cleanup
  %1207 = extractvalue { ptr, i32 } %1206, 0
  store ptr %1207, ptr %4, align 8
  %1208 = extractvalue { ptr, i32 } %1206, 1
  store i32 %1208, ptr %5, align 4
  br label %1238

1209:                                             ; preds = %856, %854
  %1210 = landingpad { ptr, i32 }
          cleanup
  %1211 = extractvalue { ptr, i32 } %1210, 0
  store ptr %1211, ptr %4, align 8
  %1212 = extractvalue { ptr, i32 } %1210, 1
  store i32 %1212, ptr %5, align 4
  br label %1237

1213:                                             ; preds = %857
  %1214 = landingpad { ptr, i32 }
          cleanup
  %1215 = extractvalue { ptr, i32 } %1214, 0
  store ptr %1215, ptr %4, align 8
  %1216 = extractvalue { ptr, i32 } %1214, 1
  store i32 %1216, ptr %5, align 4
  br label %1236

1217:                                             ; preds = %861, %859
  %1218 = landingpad { ptr, i32 }
          cleanup
  %1219 = extractvalue { ptr, i32 } %1218, 0
  store ptr %1219, ptr %4, align 8
  %1220 = extractvalue { ptr, i32 } %1218, 1
  store i32 %1220, ptr %5, align 4
  br label %1235

1221:                                             ; preds = %862
  %1222 = landingpad { ptr, i32 }
          cleanup
  %1223 = extractvalue { ptr, i32 } %1222, 0
  store ptr %1223, ptr %4, align 8
  %1224 = extractvalue { ptr, i32 } %1222, 1
  store i32 %1224, ptr %5, align 4
  br label %1234

1225:                                             ; preds = %866, %864
  %1226 = landingpad { ptr, i32 }
          cleanup
  %1227 = extractvalue { ptr, i32 } %1226, 0
  store ptr %1227, ptr %4, align 8
  %1228 = extractvalue { ptr, i32 } %1226, 1
  store i32 %1228, ptr %5, align 4
  br label %1233

1229:                                             ; preds = %869, %867
  %1230 = landingpad { ptr, i32 }
          cleanup
  %1231 = extractvalue { ptr, i32 } %1230, 0
  store ptr %1231, ptr %4, align 8
  %1232 = extractvalue { ptr, i32 } %1230, 1
  store i32 %1232, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #8
  br label %1233

1233:                                             ; preds = %1229, %1225
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #8
  br label %1234

1234:                                             ; preds = %1233, %1221
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #8
  br label %1235

1235:                                             ; preds = %1234, %1217
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  br label %1236

1236:                                             ; preds = %1235, %1213
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #8
  br label %1237

1237:                                             ; preds = %1236, %1209
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  br label %1238

1238:                                             ; preds = %1237, %1205
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #8
  br label %1239

1239:                                             ; preds = %1238, %1201
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  br label %1378

1240:                                             ; preds = %872, %870
  %1241 = landingpad { ptr, i32 }
          cleanup
  %1242 = extractvalue { ptr, i32 } %1241, 0
  store ptr %1242, ptr %4, align 8
  %1243 = extractvalue { ptr, i32 } %1241, 1
  store i32 %1243, ptr %5, align 4
  br label %1298

1244:                                             ; preds = %875, %873
  %1245 = landingpad { ptr, i32 }
          cleanup
  %1246 = extractvalue { ptr, i32 } %1245, 0
  store ptr %1246, ptr %4, align 8
  %1247 = extractvalue { ptr, i32 } %1245, 1
  store i32 %1247, ptr %5, align 4
  br label %1297

1248:                                             ; preds = %878, %876
  %1249 = landingpad { ptr, i32 }
          cleanup
  %1250 = extractvalue { ptr, i32 } %1249, 0
  store ptr %1250, ptr %4, align 8
  %1251 = extractvalue { ptr, i32 } %1249, 1
  store i32 %1251, ptr %5, align 4
  br label %1296

1252:                                             ; preds = %882, %880
  %1253 = landingpad { ptr, i32 }
          cleanup
  %1254 = extractvalue { ptr, i32 } %1253, 0
  store ptr %1254, ptr %4, align 8
  %1255 = extractvalue { ptr, i32 } %1253, 1
  store i32 %1255, ptr %5, align 4
  br label %1295

1256:                                             ; preds = %885, %883
  %1257 = landingpad { ptr, i32 }
          cleanup
  %1258 = extractvalue { ptr, i32 } %1257, 0
  store ptr %1258, ptr %4, align 8
  %1259 = extractvalue { ptr, i32 } %1257, 1
  store i32 %1259, ptr %5, align 4
  br label %1294

1260:                                             ; preds = %888, %886
  %1261 = landingpad { ptr, i32 }
          cleanup
  %1262 = extractvalue { ptr, i32 } %1261, 0
  store ptr %1262, ptr %4, align 8
  %1263 = extractvalue { ptr, i32 } %1261, 1
  store i32 %1263, ptr %5, align 4
  br label %1293

1264:                                             ; preds = %892, %890
  %1265 = landingpad { ptr, i32 }
          cleanup
  %1266 = extractvalue { ptr, i32 } %1265, 0
  store ptr %1266, ptr %4, align 8
  %1267 = extractvalue { ptr, i32 } %1265, 1
  store i32 %1267, ptr %5, align 4
  br label %1292

1268:                                             ; preds = %895, %893
  %1269 = landingpad { ptr, i32 }
          cleanup
  %1270 = extractvalue { ptr, i32 } %1269, 0
  store ptr %1270, ptr %4, align 8
  %1271 = extractvalue { ptr, i32 } %1269, 1
  store i32 %1271, ptr %5, align 4
  br label %1291

1272:                                             ; preds = %898, %896
  %1273 = landingpad { ptr, i32 }
          cleanup
  %1274 = extractvalue { ptr, i32 } %1273, 0
  store ptr %1274, ptr %4, align 8
  %1275 = extractvalue { ptr, i32 } %1273, 1
  store i32 %1275, ptr %5, align 4
  br label %1290

1276:                                             ; preds = %902, %900
  %1277 = landingpad { ptr, i32 }
          cleanup
  %1278 = extractvalue { ptr, i32 } %1277, 0
  store ptr %1278, ptr %4, align 8
  %1279 = extractvalue { ptr, i32 } %1277, 1
  store i32 %1279, ptr %5, align 4
  br label %1289

1280:                                             ; preds = %905, %903
  %1281 = landingpad { ptr, i32 }
          cleanup
  %1282 = extractvalue { ptr, i32 } %1281, 0
  store ptr %1282, ptr %4, align 8
  %1283 = extractvalue { ptr, i32 } %1281, 1
  store i32 %1283, ptr %5, align 4
  br label %1288

1284:                                             ; preds = %910, %908, %906
  %1285 = landingpad { ptr, i32 }
          cleanup
  %1286 = extractvalue { ptr, i32 } %1285, 0
  store ptr %1286, ptr %4, align 8
  %1287 = extractvalue { ptr, i32 } %1285, 1
  store i32 %1287, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %105) #8
  br label %1288

1288:                                             ; preds = %1284, %1280
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %106) #8
  br label %1289

1289:                                             ; preds = %1288, %1276
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #8
  br label %1290

1290:                                             ; preds = %1289, %1272
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #8
  br label %1291

1291:                                             ; preds = %1290, %1268
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #8
  br label %1292

1292:                                             ; preds = %1291, %1264
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #8
  br label %1293

1293:                                             ; preds = %1292, %1260
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #8
  br label %1294

1294:                                             ; preds = %1293, %1256
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #8
  br label %1295

1295:                                             ; preds = %1294, %1252
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #8
  br label %1296

1296:                                             ; preds = %1295, %1248
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #8
  br label %1297

1297:                                             ; preds = %1296, %1244
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #8
  br label %1298

1298:                                             ; preds = %1297, %1240
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #8
  br label %1377

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

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

1307:                                             ; preds = %923
  %1308 = landingpad { ptr, i32 }
          cleanup
  %1309 = extractvalue { ptr, i32 } %1308, 0
  store ptr %1309, ptr %4, align 8
  %1310 = extractvalue { ptr, i32 } %1308, 1
  store i32 %1310, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #8
  br label %1311

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

1312:                                             ; preds = %1311, %1299
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #8
  br label %1377

1313:                                             ; preds = %1375, %1373, %1371, %1369, %1367, %1365, %1361, %1359, %1357, %1355, %1353, %967, %965, %940, %938, %937, %935, %934, %932, %931, %929, %927, %925
  %1314 = landingpad { ptr, i32 }
          cleanup
  %1315 = extractvalue { ptr, i32 } %1314, 0
  store ptr %1315, ptr %4, align 8
  %1316 = extractvalue { ptr, i32 } %1314, 1
  store i32 %1316, ptr %5, align 4
  br label %1377

1317:                                             ; preds = %943, %941
  %1318 = landingpad { ptr, i32 }
          cleanup
  %1319 = extractvalue { ptr, i32 } %1318, 0
  store ptr %1319, ptr %4, align 8
  %1320 = extractvalue { ptr, i32 } %1318, 1
  store i32 %1320, ptr %5, align 4
  br label %1325

1321:                                             ; preds = %946, %944
  %1322 = landingpad { ptr, i32 }
          cleanup
  %1323 = extractvalue { ptr, i32 } %1322, 0
  store ptr %1323, ptr %4, align 8
  %1324 = extractvalue { ptr, i32 } %1322, 1
  store i32 %1324, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #8
  br label %1325

1325:                                             ; preds = %1321, %1317
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #8
  br label %1377

1326:                                             ; preds = %949, %947
  %1327 = landingpad { ptr, i32 }
          cleanup
  %1328 = extractvalue { ptr, i32 } %1327, 0
  store ptr %1328, ptr %4, align 8
  %1329 = extractvalue { ptr, i32 } %1327, 1
  store i32 %1329, ptr %5, align 4
  br label %1334

1330:                                             ; preds = %952, %950
  %1331 = landingpad { ptr, i32 }
          cleanup
  %1332 = extractvalue { ptr, i32 } %1331, 0
  store ptr %1332, ptr %4, align 8
  %1333 = extractvalue { ptr, i32 } %1331, 1
  store i32 %1333, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #8
  br label %1334

1334:                                             ; preds = %1330, %1326
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #8
  br label %1377

1335:                                             ; preds = %955, %953
  %1336 = landingpad { ptr, i32 }
          cleanup
  %1337 = extractvalue { ptr, i32 } %1336, 0
  store ptr %1337, ptr %4, align 8
  %1338 = extractvalue { ptr, i32 } %1336, 1
  store i32 %1338, ptr %5, align 4
  br label %1343

1339:                                             ; preds = %958, %956
  %1340 = landingpad { ptr, i32 }
          cleanup
  %1341 = extractvalue { ptr, i32 } %1340, 0
  store ptr %1341, ptr %4, align 8
  %1342 = extractvalue { ptr, i32 } %1340, 1
  store i32 %1342, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #8
  br label %1343

1343:                                             ; preds = %1339, %1335
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #8
  br label %1377

1344:                                             ; preds = %961, %959
  %1345 = landingpad { ptr, i32 }
          cleanup
  %1346 = extractvalue { ptr, i32 } %1345, 0
  store ptr %1346, ptr %4, align 8
  %1347 = extractvalue { ptr, i32 } %1345, 1
  store i32 %1347, ptr %5, align 4
  br label %1352

1348:                                             ; preds = %964, %962
  %1349 = landingpad { ptr, i32 }
          cleanup
  %1350 = extractvalue { ptr, i32 } %1349, 0
  store ptr %1350, ptr %4, align 8
  %1351 = extractvalue { ptr, i32 } %1349, 1
  store i32 %1351, ptr %5, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %116) #8
  br label %1352

1352:                                             ; preds = %1348, %1344
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #8
  br label %1377

1353:                                             ; preds = %968, %912
  %1354 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %1355 unwind label %1313

1355:                                             ; preds = %1353
  %1356 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %1357 unwind label %1313

1357:                                             ; preds = %1355
  %1358 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %1359 unwind label %1313

1359:                                             ; preds = %1357
  %1360 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %1361 unwind label %1313

1361:                                             ; preds = %1359
  %1362 = getelementptr inbounds %"class.SimTKIpopt::MinC_1NrmRestorationPhase", ptr %117, i32 0, i32 2
  %1363 = getelementptr inbounds %"class.SimTKIpopt::MinC_1NrmRestorationPhase", ptr %117, i32 0, i32 4
  %1364 = load double, ptr %1363, align 8, !tbaa !33
  invoke void @_ZN10SimTKIpopt25DefaultIterateInitializer18least_square_multsERKNS_10JournalistERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEEd(ptr noundef nonnull align 8 dereferenceable(40) %1354, ptr noundef nonnull align 8 dereferenceable(24) %1356, ptr noundef nonnull align 8 dereferenceable(864) %1358, ptr noundef nonnull align 8 dereferenceable(2025) %1360, ptr noundef nonnull align 8 dereferenceable(8) %1362, double noundef %1364)
          to label %1365 unwind label %1313

1365:                                             ; preds = %1361
  %1366 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %1367 unwind label %1313

1367:                                             ; preds = %1365
  %1368 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %1369 unwind label %1313

1369:                                             ; preds = %1367
  %1370 = invoke noundef i32 @_ZNK10SimTKIpopt9IpoptData10iter_countEv(ptr noundef nonnull align 8 dereferenceable(864) %1368)
          to label %1371 unwind label %1313

1371:                                             ; preds = %1369
  %1372 = sub nsw i32 %1370, 1
  invoke void @_ZN10SimTKIpopt9IpoptData14Set_iter_countEi(ptr noundef nonnull align 8 dereferenceable(864) %1366, i32 noundef %1372)
          to label %1373 unwind label %1313

1373:                                             ; preds = %1371
  %1374 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %117)
          to label %1375 unwind label %1313

1375:                                             ; preds = %1373
  invoke void @_ZN10SimTKIpopt9IpoptData20Set_info_skip_outputEb(ptr noundef nonnull align 8 dereferenceable(864) %1374, i1 noundef zeroext true)
          to label %1376 unwind label %1313

1376:                                             ; preds = %1375
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14CompoundVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  br label %1384

1377:                                             ; preds = %1352, %1343, %1334, %1325, %1313, %1312, %1298
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #8
  br label %1378

1378:                                             ; preds = %1377, %1239, %1200, %1158
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #8
  br label %1379

1379:                                             ; preds = %1378, %1157, %1113, %1069, %1025, %978
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #8
  br label %1380

1380:                                             ; preds = %1379, %977
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  br label %1381

1381:                                             ; preds = %1380, %708, %691, %664
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #8
  br label %1382

1382:                                             ; preds = %1381, %663
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14CompoundVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #8
  br label %1383

1383:                                             ; preds = %1382, %654
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  br label %1387

1384:                                             ; preds = %1376, %584
  %1385 = load i32, ptr %17, align 4, !tbaa !30
  %1386 = icmp eq i32 %1385, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_11OptionsListEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_8IpoptNLPEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_9IpoptDataEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #8
  ret i1 %1386

1387:                                             ; preds = %1383, %574, %549, %521, %496, %471, %400, %357
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %1388

1388:                                             ; preds = %1387, %353
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %1389

1389:                                             ; preds = %1388, %352, %248, %236, %207, %195, %191
  call void @_ZN10SimTKIpopt8SmartPtrINS_11OptionsListEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #8
  br label %1390

1390:                                             ; preds = %1389, %187
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  br label %1391

1391:                                             ; preds = %1390, %183
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #8
  br label %1392

1392:                                             ; preds = %1391, %179, %175
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_8IpoptNLPEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #8
  br label %1393

1393:                                             ; preds = %1392, %171, %167
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_9IpoptDataEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #8
  br label %1394

1394:                                             ; preds = %1393, %163
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #8
  br label %1395

1395:                                             ; preds = %1394
  %1396 = load ptr, ptr %4, align 8
  %1397 = load i32, ptr %5, align 4
  %1398 = insertvalue { ptr, i32 } poison, ptr %1396, 0
  %1399 = insertvalue { ptr, i32 } %1398, i32 %1397, 1
  resume { ptr, i32 } %1399

1400:                                             ; preds = %652, %557, %532, %504, %479, %453, %427
  unreachable
}

declare void @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, i32 noundef, ptr noundef, ...) #5

declare void @_ZN10SimTKIpopt9IpoptDataC1Ev(ptr noundef nonnull align 8 dereferenceable(864)) unnamed_addr #5

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

declare void @_ZN10SimTKIpopt13RestoIpoptNLPC1ERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesE(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(864), ptr noundef nonnull align 8 dereferenceable(2025)) unnamed_addr #5

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

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantitiesC1ERKNS_8SmartPtrINS_8IpoptNLPEEERKNS1_INS_9IpoptDataEEE(ptr noundef nonnull align 8 dereferenceable(2025), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5

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

declare noundef zeroext i1 @_ZNK10SimTKIpopt25IpoptCalculatedQuantities15IsSquareProblemEv(ptr noundef nonnull align 8 dereferenceable(2025)) #5

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

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

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025)) #5

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData14Set_iter_countEi(ptr noundef nonnull align 8 dereferenceable(864), i32 noundef) #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData15Set_info_regu_xEd(ptr noundef nonnull align 8 dereferenceable(864), double noundef) #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData21Set_info_alpha_primalEd(ptr noundef nonnull align 8 dereferenceable(864), double noundef) #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData26Set_info_alpha_primal_charEc(ptr noundef nonnull align 8 dereferenceable(864), i8 noundef signext) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef signext i8 @_ZNK10SimTKIpopt9IpoptData22info_alpha_primal_charEv(ptr noundef nonnull align 8 dereferenceable(864)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData19Set_info_alpha_dualEd(ptr noundef nonnull align 8 dereferenceable(864), double noundef) #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData17Set_info_ls_countEi(ptr noundef nonnull align 8 dereferenceable(864), i32 noundef) #2 align 2

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

declare noundef i32 @_ZN10SimTKIpopt14IpoptAlgorithm8OptimizeEv(ptr noundef nonnull align 8 dereferenceable(152)) #5

declare noundef zeroext i1 @_ZNK10SimTKIpopt10Journalist13ProduceOutputENS_13EJournalLevelENS_16EJournalCategoryE(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, i32 noundef) #5

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

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities6curr_fEv(ptr noundef nonnull align 8 dereferenceable(2025)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8, ptr noundef nonnull align 8 dereferenceable(864)) #6 align 2

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

declare void @_ZNK10SimTKIpopt6Vector5PrintERKNS_10JournalistENS_13EJournalLevelENS_16EJournalCategoryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSD_(ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) #5

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

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025), i32 noundef) #5

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

declare ptr @__cxa_allocate_exception(i64)

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

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @__cxa_free_exception(ptr)

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #3 align 2

; Function Attrs: nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) #7

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8, ptr noundef nonnull align 8 dereferenceable(864)) #6 align 2

declare void @_ZNK10SimTKIpopt14IteratesVector16MakeNewContainerEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.66") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector10Set_primalERKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(280), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14CompoundVector7GetCompEi(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(265), i32 noundef) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData9set_trialERNS_8SmartPtrINS_14IteratesVectorEEE(ptr noundef nonnull align 8 dereferenceable(864), ptr noundef nonnull align 8 dereferenceable(8)) #6 align 2

declare void @_ZN10SimTKIpopt9IpoptData16AcceptTrialPointEv(ptr noundef nonnull align 8 dereferenceable(864)) #5

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

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

declare void @_ZNK10SimTKIpopt14IteratesVector21MakeNewIteratesVectorEb(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.66") align 8, ptr noundef nonnull align 8 dereferenceable(280), i1 noundef zeroext) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt6Vector3SetEd(ptr noundef nonnull align 8 dereferenceable(205), double noundef) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt25MinC_1NrmRestorationPhase26ComputeBoundMultiplierStepERNS_6VectorERKS1_S4_S4_(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector12z_L_NonConstEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector3z_LEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #3 align 2

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_x_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) #5

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_x_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector12z_U_NonConstEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector3z_UEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #3 align 2

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_x_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) #5

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_x_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector12v_L_NonConstEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector3v_LEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #3 align 2

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_s_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) #5

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_s_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector12v_U_NonConstEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector3v_UEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #3 align 2

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_s_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) #5

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_s_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) #5

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities22dual_frac_to_the_boundEdRKNS_6VectorES3_S3_S3_(ptr noundef nonnull align 8 dereferenceable(2025), double noundef, ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) #5

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

declare void @_ZN10SimTKIpopt9IpoptData32SetTrialBoundMultipliersFromStepEdRKNS_6VectorES3_S3_S3_(ptr noundef nonnull align 8 dereferenceable(864), double noundef, ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZN10SimTKIpopt3MaxEdddd(double noundef, double noundef, double noundef, double noundef) #6

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205)) #6 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector14create_new_z_LEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector14create_new_z_UEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector14create_new_v_LEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector14create_new_v_UEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #6 align 2

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

declare void @_ZN10SimTKIpopt25DefaultIterateInitializer18least_square_multsERKNS_10JournalistERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEEd(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(864), ptr noundef nonnull align 8 dereferenceable(2025), ptr noundef nonnull align 8 dereferenceable(8), double noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData20Set_info_skip_outputEb(ptr noundef nonnull align 8 dereferenceable(864), i1 noundef zeroext) #2 align 2

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nobuiltin 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 #2 = { 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 #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind willreturn memory(read) }
attributes #8 = { nounwind }
attributes #9 = { builtin allocsize(0) }
attributes #10 = { builtin nounwind }
attributes #11 = { 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, !14, i64 100}
!10 = !{!"_ZTSN10SimTKIpopt25MinC_1NrmRestorationPhaseE", !11, i64 0, !20, i64 56, !21, i64 64, !22, i64 72, !23, i64 80, !23, i64 88, !19, i64 96, !14, i64 100}
!11 = !{!"_ZTSN10SimTKIpopt16RestorationPhaseE", !12, i64 0}
!12 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !13, i64 0, !15, i64 16, !16, i64 24, !17, i64 32, !18, i64 40, !19, i64 48}
!13 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !14, i64 8}
!14 = !{!"int", !7, i64 0}
!15 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !6, i64 0}
!16 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !6, i64 0}
!17 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !6, i64 0}
!18 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !6, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEEE", !6, i64 0}
!21 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_22EqMultiplierCalculatorEEE", !6, i64 0}
!22 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_11OptionsListEEE", !6, i64 0}
!23 = !{!"double", !7, i64 0}
!24 = !{!19, !19, i64 0}
!25 = !{i8 0, i8 2}
!26 = !{}
!27 = !{!10, !19, i64 96}
!28 = !{!29, !29, i64 0}
!29 = !{!"_ZTSN10SimTKIpopt12SolverReturnE", !7, i64 0}
!30 = !{!14, !14, i64 0}
!31 = !{!23, !23, i64 0}
!32 = !{!10, !23, i64 88}
!33 = !{!10, !23, i64 80}


; 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.SimTKIpopt::SmartPtr.8" = type { ptr }
%"class.SimTKIpopt::SmartPtr.7" = type { ptr }
%"class.SimTKIpopt::SmartPtr.9" = type { ptr }
%"class.SimTKIpopt::SmartPtr.12" = type { ptr }
%"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::allocator.21" = type { i8 }
%"class.SimTKIpopt::SmartPtr.39" = type { ptr }
%"class.SimTKIpopt::SmartPtr.65" = type { ptr }
%"class.SimTKIpopt::SmartPtr.52" = type { ptr }
%"class.SimTKIpopt::SmartPtr.66" = type { ptr }
%"class.SimTKIpopt::SmartPtr.46" = type { ptr }

@.str.10 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [101 x i8], align 1
@_ZTIN10SimTKIpopt39RESTORATION_CONVERGED_TO_FEASIBLE_POINTE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.22 = external hidden unnamed_addr constant [62 x i8], align 1
@_ZTIN10SimTKIpopt18LOCALLY_INFEASIBLEE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.23 = external hidden unnamed_addr constant [60 x i8], align 1
@_ZTIN10SimTKIpopt28RESTORATION_MAXITER_EXCEEDEDE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.24 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [51 x i8], align 1
@_ZTIN10SimTKIpopt18RESTORATION_FAILEDE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.26 = external hidden unnamed_addr constant [45 x i8], align 1
@_ZTIN10SimTKIpopt21RESTORATION_USER_STOPE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.27 = external hidden unnamed_addr constant [27 x i8], align 1
@_ZTIN10SimTKIpopt6VectorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt14CompoundVectorE = external constant ptr
@.str.28 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [87 x i8], align 1
@_ZTIN10SimTKIpopt26FEASIBILITY_PROBLEM_SOLVEDE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.30 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [80 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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #3 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_11OptionsListEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3 align 2

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

declare noundef zeroext i1 @_ZN10SimTKIpopt11OptionsList15SetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdbb(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), double noundef, i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt23AlgorithmStrategyObject10InitializeERKNS_10JournalistERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesERKNS_11OptionsListERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(49), ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(864), ptr noundef nonnull align 8 dereferenceable(2025), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN10SimTKIpopt25MinC_1NrmRestorationPhase18PerformRestorationEv(ptr noundef nonnull align 8 dereferenceable(104) %0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.SimTKIpopt::SmartPtr.8", align 8
  %3 = alloca %"class.SimTKIpopt::SmartPtr.7", align 8
  %4 = alloca %"class.SimTKIpopt::SmartPtr.9", align 8
  %5 = alloca %"class.SimTKIpopt::SmartPtr.12", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator.21", align 1
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator.21", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator.21", align 1
  %12 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.21", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.21", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator.21", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.21", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator.21", align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator.21", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.21", align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator.21", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator.21", align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator.21", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator.21", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator.21", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator.21", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.21", align 1
  %41 = alloca %"class.SimTKIpopt::SmartPtr.65", align 8
  %42 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %43 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %44 = alloca %"class.SimTKIpopt::SmartPtr.66", align 8
  %45 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %46 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %47 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %48 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator.21", align 1
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator.21", align 1
  %53 = alloca %"class.SimTKIpopt::SmartPtr.66", align 8
  %54 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %55 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %56 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %57 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %58 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %59 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %60 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %61 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %62 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %63 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %64 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %65 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %66 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %67 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %68 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %69 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %70 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %71 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %72 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %73 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %74 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %75 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %76 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %77 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %78 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %79 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %80 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %81 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %82 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %83 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %84 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %85 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %86 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %87 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %88 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %89 = alloca %"class.SimTKIpopt::SmartPtr.52", align 8
  %90 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %91 = alloca %"class.SimTKIpopt::SmartPtr.66", align 8
  %92 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %93 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %94 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %95 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %96 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %97 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %98 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %99 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %100 = alloca %"class.SimTKIpopt::SmartPtr.46", align 8
  %101 = getelementptr inbounds i8, ptr %0, i64 100
  %102 = load i32, ptr %101, align 4, !tbaa !5
  %103 = add nsw i32 %102, 1
  store i32 %103, ptr %101, align 4, !tbaa !5
  %104 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %105 = load i32, ptr %101, align 4, !tbaa !5
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %104, i32 noundef 5, i32 noundef 2, ptr noundef nonnull @.str.11, i32 noundef %105)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #8
  %106 = tail call noalias noundef nonnull dereferenceable(864) ptr @_Znwm(i64 noundef 864) #9
  invoke void @_ZN10SimTKIpopt9IpoptDataC1Ev(ptr noundef nonnull align 8 dereferenceable(864) %106)
          to label %107 unwind label %139

107:                                              ; preds = %1
  call void @_ZN10SimTKIpopt8SmartPtrINS_9IpoptDataEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull %106)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #8
  %108 = invoke noalias noundef nonnull dereferenceable(312) ptr @_Znwm(i64 noundef 312) #9
          to label %109 unwind label %141

109:                                              ; preds = %107
  %110 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %111 unwind label %143

111:                                              ; preds = %109
  %112 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %113 unwind label %143

113:                                              ; preds = %111
  %114 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %115 unwind label %143

115:                                              ; preds = %113
  invoke void @_ZN10SimTKIpopt13RestoIpoptNLPC1ERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesE(ptr noundef nonnull align 8 dereferenceable(312) %108, ptr noundef nonnull align 8 dereferenceable(24) %110, ptr noundef nonnull align 8 dereferenceable(864) %112, ptr noundef nonnull align 8 dereferenceable(2025) %114)
          to label %116 unwind label %143

116:                                              ; preds = %115
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull %108)
          to label %117 unwind label %141

117:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #8
  %118 = invoke noalias noundef nonnull dereferenceable(2032) ptr @_Znwm(i64 noundef 2032) #9
          to label %119 unwind label %145

119:                                              ; preds = %117
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantitiesC1ERKNS_8SmartPtrINS_8IpoptNLPEEERKNS1_INS_9IpoptDataEEE(ptr noundef nonnull align 8 dereferenceable(2025) %118, ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %2)
          to label %120 unwind label %147

120:                                              ; preds = %119
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull %118)
          to label %121 unwind label %145

121:                                              ; preds = %120
  %122 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %123 unwind label %149

123:                                              ; preds = %121
  %124 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt25IpoptCalculatedQuantities15IsSquareProblemEv(ptr noundef nonnull align 8 dereferenceable(2025) %122)
          to label %125 unwind label %149

125:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #8
  %126 = getelementptr inbounds i8, ptr %0, i64 72
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_11OptionsListEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %126)
          to label %127 unwind label %151

127:                                              ; preds = %125
  br i1 %124, label %128, label %162

128:                                              ; preds = %127
  %129 = invoke noalias noundef nonnull dereferenceable(112) ptr @_Znwm(i64 noundef 112) #9
          to label %130 unwind label %153

130:                                              ; preds = %128
  %131 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11OptionsListEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %126)
  invoke void @_ZN10SimTKIpopt11OptionsListC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(112) %129, ptr noundef nonnull align 8 dereferenceable(112) %131)
          to label %132 unwind label %155

132:                                              ; preds = %130
  %133 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_11OptionsListEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull %129)
          to label %134 unwind label %153

134:                                              ; preds = %132
  %135 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11OptionsListEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %136 unwind label %157

136:                                              ; preds = %134
  %137 = invoke noundef zeroext i1 @_ZN10SimTKIpopt11OptionsList15SetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdbb(ptr noundef nonnull align 8 dereferenceable(112) %135, ptr noundef nonnull align 8 dereferenceable(32) %6, double noundef 0.000000e+00, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %138 unwind label %159

138:                                              ; preds = %136
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  br label %192

139:                                              ; preds = %1
  %140 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %106, i64 noundef 864) #10
  br label %854

141:                                              ; preds = %116, %107
  %142 = landingpad { ptr, i32 }
          cleanup
  br label %853

143:                                              ; preds = %115, %113, %111, %109
  %144 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %108, i64 noundef 312) #10
  br label %853

145:                                              ; preds = %120, %117
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %852

147:                                              ; preds = %119
  %148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %118, i64 noundef 2032) #10
  br label %852

149:                                              ; preds = %123, %121
  %150 = landingpad { ptr, i32 }
          cleanup
  br label %851

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

153:                                              ; preds = %223, %219, %215, %211, %206, %203, %192, %178, %174, %170, %168, %132, %128
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %849

155:                                              ; preds = %130
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %129, i64 noundef 112) #10
  br label %849

157:                                              ; preds = %134
  %158 = landingpad { ptr, i32 }
          cleanup
  br label %161

159:                                              ; preds = %136
  %160 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  br label %161

161:                                              ; preds = %159, %157
  %.pn141 = phi { ptr, i32 } [ %160, %159 ], [ %158, %157 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  br label %849

162:                                              ; preds = %127
  %163 = getelementptr inbounds i8, ptr %0, i64 96
  %164 = load i8, ptr %163, align 8, !tbaa !23, !range !24, !noundef !25
  %165 = trunc nuw i8 %164 to i1
  %166 = load i32, ptr %101, align 4
  %167 = icmp eq i32 %166, 1
  %or.cond257 = select i1 %165, i1 %167, i1 false
  br i1 %or.cond257, label %168, label %192

168:                                              ; preds = %162
  %169 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %170 unwind label %153

170:                                              ; preds = %168
  %171 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025) %169)
          to label %172 unwind label %153

172:                                              ; preds = %170
  %173 = fcmp ogt double %171, 1.000000e-03
  br i1 %173, label %174, label %192

174:                                              ; preds = %172
  %175 = invoke noalias noundef nonnull dereferenceable(112) ptr @_Znwm(i64 noundef 112) #9
          to label %176 unwind label %153

176:                                              ; preds = %174
  %177 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11OptionsListEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %126)
  invoke void @_ZN10SimTKIpopt11OptionsListC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(112) %175, ptr noundef nonnull align 8 dereferenceable(112) %177)
          to label %178 unwind label %185

178:                                              ; preds = %176
  %179 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_11OptionsListEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull %175)
          to label %180 unwind label %153

180:                                              ; preds = %178
  %181 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11OptionsListEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %182 unwind label %187

182:                                              ; preds = %180
  %183 = invoke noundef zeroext i1 @_ZN10SimTKIpopt11OptionsList15SetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdbb(ptr noundef nonnull align 8 dereferenceable(112) %181, ptr noundef nonnull align 8 dereferenceable(32) %8, double noundef 1.000000e-03, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %184 unwind label %189

184:                                              ; preds = %182
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  br label %192

185:                                              ; preds = %176
  %186 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %175, i64 noundef 112) #10
  br label %849

187:                                              ; preds = %180
  %188 = landingpad { ptr, i32 }
          cleanup
  br label %191

189:                                              ; preds = %182
  %190 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  br label %191

191:                                              ; preds = %189, %187
  %.pn = phi { ptr, i32 } [ %190, %189 ], [ %188, %187 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  br label %849

192:                                              ; preds = %162, %184, %172, %138
  %193 = getelementptr inbounds i8, ptr %0, i64 56
  %194 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %193)
  %195 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %196 unwind label %153

196:                                              ; preds = %192
  %197 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt8SmartPtrINS_8IpoptNLPEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  %198 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  %199 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %4)
  %200 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11OptionsListEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %201 unwind label %255

201:                                              ; preds = %196
  %202 = invoke noundef zeroext i1 @_ZN10SimTKIpopt23AlgorithmStrategyObject10InitializeERKNS_10JournalistERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesERKNS_11OptionsListERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(49) %194, ptr noundef nonnull align 8 dereferenceable(40) %195, ptr noundef nonnull align 8 dereferenceable(24) %197, ptr noundef nonnull align 8 dereferenceable(864) %198, ptr noundef nonnull align 8 dereferenceable(2025) %199, ptr noundef nonnull align 8 dereferenceable(112) %200, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %203 unwind label %257

203:                                              ; preds = %201
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  %204 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  %205 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %206 unwind label %153

206:                                              ; preds = %203
  %207 = call noundef i32 @_ZNK10SimTKIpopt9IpoptData10iter_countEv(ptr noundef nonnull align 8 dereferenceable(864) %205)
  %208 = add nsw i32 %207, 1
  call void @_ZN10SimTKIpopt9IpoptData14Set_iter_countEi(ptr noundef nonnull align 8 dereferenceable(864) %204, i32 noundef %208)
  %209 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  %210 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %211 unwind label %153

211:                                              ; preds = %206
  %212 = call noundef double @_ZNK10SimTKIpopt9IpoptData11info_regu_xEv(ptr noundef nonnull align 8 dereferenceable(864) %210)
  call void @_ZN10SimTKIpopt9IpoptData15Set_info_regu_xEd(ptr noundef nonnull align 8 dereferenceable(864) %209, double noundef %212)
  %213 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  %214 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %215 unwind label %153

215:                                              ; preds = %211
  %216 = call noundef double @_ZNK10SimTKIpopt9IpoptData17info_alpha_primalEv(ptr noundef nonnull align 8 dereferenceable(864) %214)
  call void @_ZN10SimTKIpopt9IpoptData21Set_info_alpha_primalEd(ptr noundef nonnull align 8 dereferenceable(864) %213, double noundef %216)
  %217 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  %218 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %219 unwind label %153

219:                                              ; preds = %215
  %220 = call noundef signext i8 @_ZNK10SimTKIpopt9IpoptData22info_alpha_primal_charEv(ptr noundef nonnull align 8 dereferenceable(864) %218)
  call void @_ZN10SimTKIpopt9IpoptData26Set_info_alpha_primal_charEc(ptr noundef nonnull align 8 dereferenceable(864) %217, i8 noundef signext %220)
  %221 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  %222 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %223 unwind label %153

223:                                              ; preds = %219
  %224 = call noundef double @_ZNK10SimTKIpopt9IpoptData15info_alpha_dualEv(ptr noundef nonnull align 8 dereferenceable(864) %222)
  call void @_ZN10SimTKIpopt9IpoptData19Set_info_alpha_dualEd(ptr noundef nonnull align 8 dereferenceable(864) %221, double noundef %224)
  %225 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  %226 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %227 unwind label %153

227:                                              ; preds = %223
  %228 = call noundef i32 @_ZNK10SimTKIpopt9IpoptData13info_ls_countEv(ptr noundef nonnull align 8 dereferenceable(864) %226)
  call void @_ZN10SimTKIpopt9IpoptData17Set_info_ls_countEi(ptr noundef nonnull align 8 dereferenceable(864) %225, i32 noundef %228)
  %229 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %193)
  %230 = invoke noundef i32 @_ZN10SimTKIpopt14IpoptAlgorithm8OptimizeEv(ptr noundef nonnull align 8 dereferenceable(152) %229)
          to label %231 unwind label %260

231:                                              ; preds = %227
  %232 = icmp eq i32 %230, 0
  br i1 %232, label %233, label %292

233:                                              ; preds = %231
  %234 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %235 unwind label %262

235:                                              ; preds = %233
  %236 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt10Journalist13ProduceOutputENS_13EJournalLevelENS_16EJournalCategoryE(ptr noundef nonnull align 8 dereferenceable(40) %234, i32 noundef 5, i32 noundef 8)
          to label %237 unwind label %262

237:                                              ; preds = %235
  br i1 %236, label %238, label %264

238:                                              ; preds = %237
  %239 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %240 unwind label %262

240:                                              ; preds = %238
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %239, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.14)
          to label %241 unwind label %262

241:                                              ; preds = %240
  %242 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %243 unwind label %262

243:                                              ; preds = %241
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.15)
          to label %244 unwind label %262

244:                                              ; preds = %243
  %245 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %246 unwind label %262

246:                                              ; preds = %244
  %247 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4)
  %248 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities6curr_fEv(ptr noundef nonnull align 8 dereferenceable(2025) %247)
          to label %249 unwind label %262

249:                                              ; preds = %246
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %245, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.16, double noundef %248)
          to label %250 unwind label %262

250:                                              ; preds = %249
  %251 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %252 unwind label %262

252:                                              ; preds = %250
  %253 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  %254 = call noundef i32 @_ZNK10SimTKIpopt9IpoptData10iter_countEv(ptr noundef nonnull align 8 dereferenceable(864) %253)
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %251, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.17, i32 noundef %254)
          to label %264 unwind label %262

255:                                              ; preds = %196
  %256 = landingpad { ptr, i32 }
          cleanup
  br label %259

257:                                              ; preds = %201
  %258 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  br label %259

259:                                              ; preds = %257, %255
  %.pn143 = phi { ptr, i32 } [ %258, %257 ], [ %256, %255 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  br label %849

260:                                              ; preds = %227
  %261 = landingpad { ptr, i32 }
          cleanup
  br label %849

262:                                              ; preds = %387, %385, %360, %358, %266, %264, %252, %250, %249, %246, %244, %243, %241, %240, %238, %235, %233
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %849

264:                                              ; preds = %252, %237
  %265 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %266 unwind label %262

266:                                              ; preds = %264
  %267 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt10Journalist13ProduceOutputENS_13EJournalLevelENS_16EJournalCategoryE(ptr noundef nonnull align 8 dereferenceable(40) %265, i32 noundef 7, i32 noundef 8)
          to label %268 unwind label %262

268:                                              ; preds = %266
  br i1 %267, label %269, label %388

269:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  %270 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %12, ptr noundef nonnull align 8 dereferenceable(864) %270)
          to label %271 unwind label %278

271:                                              ; preds = %269
  %272 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %12)
  %273 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %274 unwind label %280

274:                                              ; preds = %271
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %275 unwind label %282

275:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %276 unwind label %284

276:                                              ; preds = %275
  invoke void @_ZNK10SimTKIpopt6Vector5PrintERKNS_10JournalistENS_13EJournalLevelENS_16EJournalCategoryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSD_(ptr noundef nonnull align 8 dereferenceable(205) %272, ptr noundef nonnull align 8 dereferenceable(40) %273, i32 noundef 7, i32 noundef 8, ptr noundef nonnull align 8 dereferenceable(32) %13, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %277 unwind label %286

277:                                              ; preds = %276
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  br label %388

278:                                              ; preds = %269
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %291

280:                                              ; preds = %271
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %290

282:                                              ; preds = %274
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %289

284:                                              ; preds = %275
  %285 = landingpad { ptr, i32 }
          cleanup
  br label %288

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

288:                                              ; preds = %286, %284
  %.pn164 = phi { ptr, i32 } [ %287, %286 ], [ %285, %284 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %289

289:                                              ; preds = %288, %282
  %.pn164.pn = phi { ptr, i32 } [ %.pn164, %288 ], [ %283, %282 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  br label %290

290:                                              ; preds = %289, %280
  %.pn164.pn.pn = phi { ptr, i32 } [ %.pn164.pn, %289 ], [ %281, %280 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  br label %291

291:                                              ; preds = %290, %278
  %.pn164.pn.pn.pn = phi { ptr, i32 } [ %.pn164.pn.pn, %290 ], [ %279, %278 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  br label %849

292:                                              ; preds = %231
  %293 = and i32 %230, -2
  %or.cond = icmp eq i32 %293, 2
  br i1 %or.cond, label %294, label %333

294:                                              ; preds = %292
  %295 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %296 unwind label %312

296:                                              ; preds = %294
  %297 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %295, i32 noundef 2)
          to label %298 unwind label %312

298:                                              ; preds = %296
  %299 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %300 unwind label %312

300:                                              ; preds = %298
  %301 = call noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %299)
  %302 = fmul double %301, 1.000000e+02
  %303 = fcmp ugt double %297, %302
  br i1 %303, label %321, label %304

304:                                              ; preds = %300
  %305 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %306 unwind label %312

306:                                              ; preds = %304
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %305, i32 noundef 2, i32 noundef 8, ptr noundef nonnull @.str.19)
          to label %307 unwind label %312

307:                                              ; preds = %306
  %308 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %309 unwind label %.thread

309:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %310 unwind label %315

310:                                              ; preds = %309
  invoke void @_ZN10SimTKIpopt39RESTORATION_CONVERGED_TO_FEASIBLE_POINTC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %308, ptr noundef nonnull %17, ptr noundef nonnull %19, i32 noundef 185)
          to label %311 unwind label %317

311:                                              ; preds = %310
  invoke void @__cxa_throw(ptr nonnull %308, ptr nonnull @_ZTIN10SimTKIpopt39RESTORATION_CONVERGED_TO_FEASIBLE_POINTE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #11
          to label %855 unwind label %317

312:                                              ; preds = %306, %304, %298, %296, %294
  %313 = landingpad { ptr, i32 }
          cleanup
  br label %849

.thread:                                          ; preds = %307
  %314 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #8
  br label %320

315:                                              ; preds = %309
  %316 = landingpad { ptr, i32 }
          cleanup
  br label %319

317:                                              ; preds = %311, %310
  %.0133 = phi i1 [ false, %311 ], [ true, %310 ]
  %318 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %319

319:                                              ; preds = %315, %317
  %.1134 = phi i1 [ %.0133, %317 ], [ true, %315 ]
  %.pn160 = phi { ptr, i32 } [ %318, %317 ], [ %316, %315 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #8
  br i1 %.1134, label %320, label %849

320:                                              ; preds = %.thread, %319
  %.pn160.pn260 = phi { ptr, i32 } [ %314, %.thread ], [ %.pn160, %319 ]
  call void @__cxa_free_exception(ptr %308) #8
  br label %849

321:                                              ; preds = %300
  %322 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %323 unwind label %.thread261

323:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %324 unwind label %327

324:                                              ; preds = %323
  invoke void @_ZN10SimTKIpopt18LOCALLY_INFEASIBLEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %322, ptr noundef nonnull %21, ptr noundef nonnull %23, i32 noundef 189)
          to label %325 unwind label %329

325:                                              ; preds = %324
  invoke void @__cxa_throw(ptr nonnull %322, ptr nonnull @_ZTIN10SimTKIpopt18LOCALLY_INFEASIBLEE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #11
          to label %855 unwind label %329

.thread261:                                       ; preds = %321
  %326 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #8
  br label %332

327:                                              ; preds = %323
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %331

329:                                              ; preds = %325, %324
  %.0130 = phi i1 [ false, %325 ], [ true, %324 ]
  %330 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  br label %331

331:                                              ; preds = %327, %329
  %.1131 = phi i1 [ %.0130, %329 ], [ true, %327 ]
  %.pn157 = phi { ptr, i32 } [ %330, %329 ], [ %328, %327 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #8
  br i1 %.1131, label %332, label %849

332:                                              ; preds = %.thread261, %331
  %.pn157.pn264 = phi { ptr, i32 } [ %326, %.thread261 ], [ %.pn157, %331 ]
  call void @__cxa_free_exception(ptr %322) #8
  br label %849

333:                                              ; preds = %292
  switch i32 %230, label %385 [
    i32 1, label %334
    i32 4, label %346
    i32 7, label %358
    i32 5, label %373
  ]

334:                                              ; preds = %333
  %335 = call ptr @__cxa_allocate_exception(i64 112) #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.23, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %336 unwind label %.thread265

336:                                              ; preds = %334
  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.21, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %337 unwind label %340

337:                                              ; preds = %336
  invoke void @_ZN10SimTKIpopt28RESTORATION_MAXITER_EXCEEDEDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %335, ptr noundef nonnull %25, ptr noundef nonnull %27, i32 noundef 194)
          to label %338 unwind label %342

338:                                              ; preds = %337
  invoke void @__cxa_throw(ptr nonnull %335, ptr nonnull @_ZTIN10SimTKIpopt28RESTORATION_MAXITER_EXCEEDEDE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #11
          to label %855 unwind label %342

.thread265:                                       ; preds = %334
  %339 = 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
  br label %345

340:                                              ; preds = %336
  %341 = landingpad { ptr, i32 }
          cleanup
  br label %344

342:                                              ; preds = %338, %337
  %.0127 = phi i1 [ false, %338 ], [ true, %337 ]
  %343 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %344

344:                                              ; preds = %340, %342
  %.1128 = phi i1 [ %.0127, %342 ], [ true, %340 ]
  %.pn154 = phi { ptr, i32 } [ %343, %342 ], [ %341, %340 ]
  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 @_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
  br i1 %.1128, label %345, label %849

345:                                              ; preds = %.thread265, %344
  %.pn154.pn268 = phi { ptr, i32 } [ %339, %.thread265 ], [ %.pn154, %344 ]
  call void @__cxa_free_exception(ptr %335) #8
  br label %849

346:                                              ; preds = %333
  %347 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %348 unwind label %.thread269

348:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %349 unwind label %352

349:                                              ; preds = %348
  invoke void @_ZN10SimTKIpopt18LOCALLY_INFEASIBLEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %347, ptr noundef nonnull %29, ptr noundef nonnull %31, i32 noundef 198)
          to label %350 unwind label %354

350:                                              ; preds = %349
  invoke void @__cxa_throw(ptr nonnull %347, ptr nonnull @_ZTIN10SimTKIpopt18LOCALLY_INFEASIBLEE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #11
          to label %855 unwind label %354

.thread269:                                       ; preds = %346
  %351 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #8
  br label %357

352:                                              ; preds = %348
  %353 = landingpad { ptr, i32 }
          cleanup
  br label %356

354:                                              ; preds = %350, %349
  %.0124 = phi i1 [ false, %350 ], [ true, %349 ]
  %355 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %356

356:                                              ; preds = %352, %354
  %.1125 = phi i1 [ %.0124, %354 ], [ true, %352 ]
  %.pn151 = phi { ptr, i32 } [ %355, %354 ], [ %353, %352 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #8
  br i1 %.1125, label %357, label %849

357:                                              ; preds = %.thread269, %356
  %.pn151.pn272 = phi { ptr, i32 } [ %351, %.thread269 ], [ %.pn151, %356 ]
  call void @__cxa_free_exception(ptr %347) #8
  br label %849

358:                                              ; preds = %333
  %359 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %360 unwind label %262

360:                                              ; preds = %358
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %359, i32 noundef 2, i32 noundef 8, ptr noundef nonnull @.str.24)
          to label %361 unwind label %262

361:                                              ; preds = %360
  %362 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %363 unwind label %.thread273

363:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %364 unwind label %367

364:                                              ; preds = %363
  invoke void @_ZN10SimTKIpopt18RESTORATION_FAILEDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %362, ptr noundef nonnull %33, ptr noundef nonnull %35, i32 noundef 203)
          to label %365 unwind label %369

365:                                              ; preds = %364
  invoke void @__cxa_throw(ptr nonnull %362, ptr nonnull @_ZTIN10SimTKIpopt18RESTORATION_FAILEDE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #11
          to label %855 unwind label %369

.thread273:                                       ; preds = %361
  %366 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #8
  br label %372

367:                                              ; preds = %363
  %368 = landingpad { ptr, i32 }
          cleanup
  br label %371

369:                                              ; preds = %365, %364
  %.0121 = phi i1 [ false, %365 ], [ true, %364 ]
  %370 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  br label %371

371:                                              ; preds = %367, %369
  %.1122 = phi i1 [ %.0121, %369 ], [ true, %367 ]
  %.pn148 = phi { ptr, i32 } [ %370, %369 ], [ %368, %367 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #8
  br i1 %.1122, label %372, label %849

372:                                              ; preds = %.thread273, %371
  %.pn148.pn276 = phi { ptr, i32 } [ %366, %.thread273 ], [ %.pn148, %371 ]
  call void @__cxa_free_exception(ptr %362) #8
  br label %849

373:                                              ; preds = %333
  %374 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %375 unwind label %.thread277

375:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %376 unwind label %379

376:                                              ; preds = %375
  invoke void @_ZN10SimTKIpopt21RESTORATION_USER_STOPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %374, ptr noundef nonnull %37, ptr noundef nonnull %39, i32 noundef 207)
          to label %377 unwind label %381

377:                                              ; preds = %376
  invoke void @__cxa_throw(ptr nonnull %374, ptr nonnull @_ZTIN10SimTKIpopt21RESTORATION_USER_STOPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #11
          to label %855 unwind label %381

.thread277:                                       ; preds = %373
  %378 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #8
  br label %384

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

381:                                              ; preds = %377, %376
  %.0118 = phi i1 [ false, %377 ], [ true, %376 ]
  %382 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  br label %383

383:                                              ; preds = %379, %381
  %.1119 = phi i1 [ %.0118, %381 ], [ true, %379 ]
  %.pn145 = phi { ptr, i32 } [ %382, %381 ], [ %380, %379 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #8
  br i1 %.1119, label %384, label %849

384:                                              ; preds = %.thread277, %383
  %.pn145.pn280 = phi { ptr, i32 } [ %378, %.thread277 ], [ %.pn145, %383 ]
  call void @__cxa_free_exception(ptr %374) #8
  br label %849

385:                                              ; preds = %333
  %386 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %387 unwind label %262

387:                                              ; preds = %385
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %386, i32 noundef 1, i32 noundef 2, ptr noundef nonnull @.str.27)
          to label %848 unwind label %262

388:                                              ; preds = %268, %277
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #8
  %389 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %43, ptr noundef nonnull align 8 dereferenceable(864) %389)
          to label %390 unwind label %397

390:                                              ; preds = %388
  %391 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %43)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %42, ptr noundef nonnull align 8 dereferenceable(280) %391)
          to label %392 unwind label %399

392:                                              ; preds = %390
  %393 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_6VectorEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %42)
  %394 = icmp eq ptr %393, null
  br i1 %394, label %403, label %395

395:                                              ; preds = %392
  %396 = call ptr @__dynamic_cast(ptr nonnull %393, ptr nonnull @_ZTIN10SimTKIpopt6VectorE, ptr nonnull @_ZTIN10SimTKIpopt14CompoundVectorE, i64 0) #8
  br label %403

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

399:                                              ; preds = %390
  %400 = landingpad { ptr, i32 }
          cleanup
  br label %435

401:                                              ; preds = %403
  %402 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  br label %435

403:                                              ; preds = %392, %395
  %404 = phi ptr [ %396, %395 ], [ null, %392 ]
  invoke void @_ZN10SimTKIpopt8SmartPtrIKNS_14CompoundVectorEEC2EPS2_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef %404)
          to label %405 unwind label %401

405:                                              ; preds = %403
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #8
  %406 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %407 unwind label %437

407:                                              ; preds = %405
  invoke void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %45, ptr noundef nonnull align 8 dereferenceable(864) %406)
          to label %408 unwind label %437

408:                                              ; preds = %407
  %409 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %45)
  invoke void @_ZNK10SimTKIpopt14IteratesVector16MakeNewContainerEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.66") align 8 %44, ptr noundef nonnull align 8 dereferenceable(280) %409)
          to label %410 unwind label %439

410:                                              ; preds = %408
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #8
  %411 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #8
  %412 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %41)
  invoke void @_ZNK10SimTKIpopt14CompoundVector7GetCompEi(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %46, ptr noundef nonnull align 8 dereferenceable(265) %412, i32 noundef 0)
          to label %413 unwind label %444

413:                                              ; preds = %410
  %414 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #8
  %415 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %48, ptr noundef nonnull align 8 dereferenceable(864) %415)
          to label %416 unwind label %446

416:                                              ; preds = %413
  %417 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %48)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %47, ptr noundef nonnull align 8 dereferenceable(280) %417)
          to label %418 unwind label %448

418:                                              ; preds = %416
  %419 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
  invoke void @_ZN10SimTKIpopt14IteratesVector10Set_primalERKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(280) %411, ptr noundef nonnull align 8 dereferenceable(205) %414, ptr noundef nonnull align 8 dereferenceable(205) %419)
          to label %420 unwind label %450

420:                                              ; preds = %418
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #8
  %421 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %422 unwind label %442

422:                                              ; preds = %420
  invoke void @_ZN10SimTKIpopt9IpoptData9set_trialERNS_8SmartPtrINS_14IteratesVectorEEE(ptr noundef nonnull align 8 dereferenceable(864) %421, ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %423 unwind label %442

423:                                              ; preds = %422
  br i1 %124, label %424, label %462

424:                                              ; preds = %423
  %425 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %426 unwind label %442

426:                                              ; preds = %424
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %425, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.28)
          to label %427 unwind label %442

427:                                              ; preds = %426
  %428 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %429 unwind label %442

429:                                              ; preds = %427
  invoke void @_ZN10SimTKIpopt9IpoptData16AcceptTrialPointEv(ptr noundef nonnull align 8 dereferenceable(864) %428)
          to label %430 unwind label %442

430:                                              ; preds = %429
  %431 = call ptr @__cxa_allocate_exception(i64 112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %432 unwind label %.thread282

432:                                              ; preds = %430
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %433 unwind label %456

433:                                              ; preds = %432
  invoke void @_ZN10SimTKIpopt26FEASIBILITY_PROBLEM_SOLVEDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %431, ptr noundef nonnull %49, ptr noundef nonnull %51, i32 noundef 230)
          to label %434 unwind label %458

434:                                              ; preds = %433
  invoke void @__cxa_throw(ptr nonnull %431, ptr nonnull @_ZTIN10SimTKIpopt26FEASIBILITY_PROBLEM_SOLVEDE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #11
          to label %855 unwind label %458

435:                                              ; preds = %401, %399
  %.pn169 = phi { ptr, i32 } [ %402, %401 ], [ %400, %399 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  br label %436

436:                                              ; preds = %435, %397
  %.pn169.pn = phi { ptr, i32 } [ %.pn169, %435 ], [ %398, %397 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #8
  br label %847

437:                                              ; preds = %407, %405
  %438 = landingpad { ptr, i32 }
          cleanup
  br label %441

439:                                              ; preds = %408
  %440 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  br label %441

441:                                              ; preds = %439, %437
  %.pn172 = phi { ptr, i32 } [ %440, %439 ], [ %438, %437 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #8
  br label %846

442:                                              ; preds = %429, %427, %426, %424, %422, %420
  %443 = landingpad { ptr, i32 }
          cleanup
  br label %845

444:                                              ; preds = %410
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %454

446:                                              ; preds = %413
  %447 = landingpad { ptr, i32 }
          cleanup
  br label %453

448:                                              ; preds = %416
  %449 = landingpad { ptr, i32 }
          cleanup
  br label %452

450:                                              ; preds = %418
  %451 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  br label %452

452:                                              ; preds = %450, %448
  %.pn174 = phi { ptr, i32 } [ %451, %450 ], [ %449, %448 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  br label %453

453:                                              ; preds = %452, %446
  %.pn174.pn = phi { ptr, i32 } [ %.pn174, %452 ], [ %447, %446 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  br label %454

454:                                              ; preds = %453, %444
  %.pn174.pn.pn = phi { ptr, i32 } [ %.pn174.pn, %453 ], [ %445, %444 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #8
  br label %845

.thread282:                                       ; preds = %430
  %455 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #8
  br label %461

456:                                              ; preds = %432
  %457 = landingpad { ptr, i32 }
          cleanup
  br label %460

458:                                              ; preds = %434, %433
  %.0115 = phi i1 [ false, %434 ], [ true, %433 ]
  %459 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %460

460:                                              ; preds = %456, %458
  %.1116 = phi i1 [ %.0115, %458 ], [ true, %456 ]
  %.pn242 = phi { ptr, i32 } [ %459, %458 ], [ %457, %456 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #8
  br i1 %.1116, label %461, label %845

461:                                              ; preds = %.thread282, %460
  %.pn242.pn285 = phi { ptr, i32 } [ %455, %.thread282 ], [ %.pn242, %460 ]
  call void @__cxa_free_exception(ptr %431) #8
  br label %845

462:                                              ; preds = %423
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #8
  %463 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %464 unwind label %653

464:                                              ; preds = %462
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %54, ptr noundef nonnull align 8 dereferenceable(864) %463)
          to label %465 unwind label %653

465:                                              ; preds = %464
  %466 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %54)
  invoke void @_ZNK10SimTKIpopt14IteratesVector21MakeNewIteratesVectorEb(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.66") align 8 %53, ptr noundef nonnull align 8 dereferenceable(280) %466, i1 noundef zeroext true)
          to label %467 unwind label %655

467:                                              ; preds = %465
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #8
  %468 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  invoke void @_ZN10SimTKIpopt6Vector3SetEd(ptr noundef nonnull align 8 dereferenceable(205) %468, double noundef 0.000000e+00)
          to label %469 unwind label %658

469:                                              ; preds = %467
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #8
  %470 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  invoke void @_ZN10SimTKIpopt14IteratesVector12z_L_NonConstEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %55, ptr noundef nonnull align 8 dereferenceable(280) %470)
          to label %471 unwind label %660

471:                                              ; preds = %469
  %472 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #8
  %473 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %474 unwind label %662

474:                                              ; preds = %471
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %57, ptr noundef nonnull align 8 dereferenceable(864) %473)
          to label %475 unwind label %662

475:                                              ; preds = %474
  %476 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %56, ptr noundef nonnull align 8 dereferenceable(280) %476)
          to label %477 unwind label %664

477:                                              ; preds = %475
  %478 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #8
  %479 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %480 unwind label %666

480:                                              ; preds = %477
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_x_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %58, ptr noundef nonnull align 8 dereferenceable(2025) %479)
          to label %481 unwind label %666

481:                                              ; preds = %480
  %482 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %58)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #8
  %483 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %484 unwind label %668

484:                                              ; preds = %481
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_x_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %59, ptr noundef nonnull align 8 dereferenceable(2025) %483)
          to label %485 unwind label %668

485:                                              ; preds = %484
  %486 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %59)
  invoke void @_ZN10SimTKIpopt25MinC_1NrmRestorationPhase26ComputeBoundMultiplierStepERNS_6VectorERKS1_S4_S4_(ptr noundef nonnull align 8 dereferenceable(104) %0, ptr noundef nonnull align 8 dereferenceable(205) %472, ptr noundef nonnull align 8 dereferenceable(205) %478, ptr noundef nonnull align 8 dereferenceable(205) %482, ptr noundef nonnull align 8 dereferenceable(205) %486)
          to label %487 unwind label %670

487:                                              ; preds = %485
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #8
  %488 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  invoke void @_ZN10SimTKIpopt14IteratesVector12z_U_NonConstEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %60, ptr noundef nonnull align 8 dereferenceable(280) %488)
          to label %489 unwind label %677

489:                                              ; preds = %487
  %490 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %60)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #8
  %491 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %492 unwind label %679

492:                                              ; preds = %489
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %62, ptr noundef nonnull align 8 dereferenceable(864) %491)
          to label %493 unwind label %679

493:                                              ; preds = %492
  %494 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %62)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %61, ptr noundef nonnull align 8 dereferenceable(280) %494)
          to label %495 unwind label %681

495:                                              ; preds = %493
  %496 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %61)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #8
  %497 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %498 unwind label %683

498:                                              ; preds = %495
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_x_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %63, ptr noundef nonnull align 8 dereferenceable(2025) %497)
          to label %499 unwind label %683

499:                                              ; preds = %498
  %500 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %63)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #8
  %501 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %502 unwind label %685

502:                                              ; preds = %499
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_x_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %64, ptr noundef nonnull align 8 dereferenceable(2025) %501)
          to label %503 unwind label %685

503:                                              ; preds = %502
  %504 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64)
  invoke void @_ZN10SimTKIpopt25MinC_1NrmRestorationPhase26ComputeBoundMultiplierStepERNS_6VectorERKS1_S4_S4_(ptr noundef nonnull align 8 dereferenceable(104) %0, ptr noundef nonnull align 8 dereferenceable(205) %490, ptr noundef nonnull align 8 dereferenceable(205) %496, ptr noundef nonnull align 8 dereferenceable(205) %500, ptr noundef nonnull align 8 dereferenceable(205) %504)
          to label %505 unwind label %687

505:                                              ; preds = %503
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #8
  %506 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  invoke void @_ZN10SimTKIpopt14IteratesVector12v_L_NonConstEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %65, ptr noundef nonnull align 8 dereferenceable(280) %506)
          to label %507 unwind label %694

507:                                              ; preds = %505
  %508 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %65)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #8
  %509 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %510 unwind label %696

510:                                              ; preds = %507
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %67, ptr noundef nonnull align 8 dereferenceable(864) %509)
          to label %511 unwind label %696

511:                                              ; preds = %510
  %512 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %66, ptr noundef nonnull align 8 dereferenceable(280) %512)
          to label %513 unwind label %698

513:                                              ; preds = %511
  %514 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %66)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #8
  %515 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %516 unwind label %700

516:                                              ; preds = %513
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_s_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %68, ptr noundef nonnull align 8 dereferenceable(2025) %515)
          to label %517 unwind label %700

517:                                              ; preds = %516
  %518 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %68)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #8
  %519 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %520 unwind label %702

520:                                              ; preds = %517
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_s_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %69, ptr noundef nonnull align 8 dereferenceable(2025) %519)
          to label %521 unwind label %702

521:                                              ; preds = %520
  %522 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %69)
  invoke void @_ZN10SimTKIpopt25MinC_1NrmRestorationPhase26ComputeBoundMultiplierStepERNS_6VectorERKS1_S4_S4_(ptr noundef nonnull align 8 dereferenceable(104) %0, ptr noundef nonnull align 8 dereferenceable(205) %508, ptr noundef nonnull align 8 dereferenceable(205) %514, ptr noundef nonnull align 8 dereferenceable(205) %518, ptr noundef nonnull align 8 dereferenceable(205) %522)
          to label %523 unwind label %704

523:                                              ; preds = %521
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %70) #8
  %524 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  invoke void @_ZN10SimTKIpopt14IteratesVector12v_U_NonConstEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %70, ptr noundef nonnull align 8 dereferenceable(280) %524)
          to label %525 unwind label %711

525:                                              ; preds = %523
  %526 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %70)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #8
  %527 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %528 unwind label %713

528:                                              ; preds = %525
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %72, ptr noundef nonnull align 8 dereferenceable(864) %527)
          to label %529 unwind label %713

529:                                              ; preds = %528
  %530 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %72)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %71, ptr noundef nonnull align 8 dereferenceable(280) %530)
          to label %531 unwind label %715

531:                                              ; preds = %529
  %532 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %71)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #8
  %533 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %534 unwind label %717

534:                                              ; preds = %531
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_s_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %73, ptr noundef nonnull align 8 dereferenceable(2025) %533)
          to label %535 unwind label %717

535:                                              ; preds = %534
  %536 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %73)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #8
  %537 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %538 unwind label %719

538:                                              ; preds = %535
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_s_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %74, ptr noundef nonnull align 8 dereferenceable(2025) %537)
          to label %539 unwind label %719

539:                                              ; preds = %538
  %540 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %74)
  invoke void @_ZN10SimTKIpopt25MinC_1NrmRestorationPhase26ComputeBoundMultiplierStepERNS_6VectorERKS1_S4_S4_(ptr noundef nonnull align 8 dereferenceable(104) %0, ptr noundef nonnull align 8 dereferenceable(205) %526, ptr noundef nonnull align 8 dereferenceable(205) %532, ptr noundef nonnull align 8 dereferenceable(205) %536, ptr noundef nonnull align 8 dereferenceable(205) %540)
          to label %541 unwind label %721

541:                                              ; preds = %539
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #8
  %542 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %543 unwind label %728

543:                                              ; preds = %541
  %544 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %545 unwind label %728

545:                                              ; preds = %543
  %546 = call noundef double @_ZNK10SimTKIpopt9IpoptData8curr_tauEv(ptr noundef nonnull align 8 dereferenceable(864) %544)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #8
  %547 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  invoke void @_ZN10SimTKIpopt14IteratesVector12z_L_NonConstEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %75, ptr noundef nonnull align 8 dereferenceable(280) %547)
          to label %548 unwind label %730

548:                                              ; preds = %545
  %549 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %75)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #8
  %550 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  invoke void @_ZN10SimTKIpopt14IteratesVector12z_U_NonConstEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %76, ptr noundef nonnull align 8 dereferenceable(280) %550)
          to label %551 unwind label %732

551:                                              ; preds = %548
  %552 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %76)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %77) #8
  %553 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  invoke void @_ZN10SimTKIpopt14IteratesVector12v_L_NonConstEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %77, ptr noundef nonnull align 8 dereferenceable(280) %553)
          to label %554 unwind label %734

554:                                              ; preds = %551
  %555 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %77)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %78) #8
  %556 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  invoke void @_ZN10SimTKIpopt14IteratesVector12v_U_NonConstEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %78, ptr noundef nonnull align 8 dereferenceable(280) %556)
          to label %557 unwind label %736

557:                                              ; preds = %554
  %558 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %78)
  %559 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities22dual_frac_to_the_boundEdRKNS_6VectorES3_S3_S3_(ptr noundef nonnull align 8 dereferenceable(2025) %542, double noundef %546, ptr noundef nonnull align 8 dereferenceable(205) %549, ptr noundef nonnull align 8 dereferenceable(205) %552, ptr noundef nonnull align 8 dereferenceable(205) %555, ptr noundef nonnull align 8 dereferenceable(205) %558)
          to label %560 unwind label %738

560:                                              ; preds = %557
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #8
  %561 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %562 unwind label %728

562:                                              ; preds = %560
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %561, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.30, double noundef %559)
          to label %563 unwind label %728

563:                                              ; preds = %562
  %564 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %565 unwind label %728

565:                                              ; preds = %563
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #8
  %566 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %79, ptr noundef nonnull align 8 dereferenceable(280) %566)
          to label %567 unwind label %744

567:                                              ; preds = %565
  %568 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %79)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #8
  %569 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %80, ptr noundef nonnull align 8 dereferenceable(280) %569)
          to label %570 unwind label %746

570:                                              ; preds = %567
  %571 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %80)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #8
  %572 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %81, ptr noundef nonnull align 8 dereferenceable(280) %572)
          to label %573 unwind label %748

573:                                              ; preds = %570
  %574 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %81)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #8
  %575 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %82, ptr noundef nonnull align 8 dereferenceable(280) %575)
          to label %576 unwind label %750

576:                                              ; preds = %573
  %577 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %82)
  invoke void @_ZN10SimTKIpopt9IpoptData32SetTrialBoundMultipliersFromStepEdRKNS_6VectorES3_S3_S3_(ptr noundef nonnull align 8 dereferenceable(864) %564, double noundef %559, ptr noundef nonnull align 8 dereferenceable(205) %568, ptr noundef nonnull align 8 dereferenceable(205) %571, ptr noundef nonnull align 8 dereferenceable(205) %574, ptr noundef nonnull align 8 dereferenceable(205) %577)
          to label %578 unwind label %752

578:                                              ; preds = %576
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %83) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %84) #8
  %579 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %580 unwind label %758

580:                                              ; preds = %578
  invoke void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %84, ptr noundef nonnull align 8 dereferenceable(864) %579)
          to label %581 unwind label %758

581:                                              ; preds = %580
  %582 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %84)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %83, ptr noundef nonnull align 8 dereferenceable(280) %582)
          to label %583 unwind label %760

583:                                              ; preds = %581
  %584 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %83)
  %585 = invoke noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205) %584)
          to label %586 unwind label %762

586:                                              ; preds = %583
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %85) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %86) #8
  %587 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %588 unwind label %764

588:                                              ; preds = %586
  invoke void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %86, ptr noundef nonnull align 8 dereferenceable(864) %587)
          to label %589 unwind label %764

589:                                              ; preds = %588
  %590 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %86)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %85, ptr noundef nonnull align 8 dereferenceable(280) %590)
          to label %591 unwind label %766

591:                                              ; preds = %589
  %592 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %85)
  %593 = invoke noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205) %592)
          to label %594 unwind label %768

594:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %87) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %88) #8
  %595 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %596 unwind label %770

596:                                              ; preds = %594
  invoke void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %88, ptr noundef nonnull align 8 dereferenceable(864) %595)
          to label %597 unwind label %770

597:                                              ; preds = %596
  %598 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %88)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %87, ptr noundef nonnull align 8 dereferenceable(280) %598)
          to label %599 unwind label %772

599:                                              ; preds = %597
  %600 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %87)
  %601 = invoke noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205) %600)
          to label %602 unwind label %774

602:                                              ; preds = %599
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %89) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %90) #8
  %603 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %604 unwind label %776

604:                                              ; preds = %602
  invoke void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %90, ptr noundef nonnull align 8 dereferenceable(864) %603)
          to label %605 unwind label %776

605:                                              ; preds = %604
  %606 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %90)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8 %89, ptr noundef nonnull align 8 dereferenceable(280) %606)
          to label %607 unwind label %778

607:                                              ; preds = %605
  %608 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %89)
  %609 = invoke noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205) %608)
          to label %610 unwind label %780

610:                                              ; preds = %607
  %611 = invoke noundef double @_ZN10SimTKIpopt3MaxEdddd(double noundef %585, double noundef %593, double noundef %601, double noundef %609)
          to label %612 unwind label %780

612:                                              ; preds = %610
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %90) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #8
  %613 = getelementptr inbounds i8, ptr %0, i64 88
  %614 = load double, ptr %613, align 8, !tbaa !26
  %615 = fcmp ogt double %611, %614
  br i1 %615, label %616, label %823

616:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %91) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %92) #8
  %617 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %618 unwind label %793

618:                                              ; preds = %616
  invoke void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8 %92, ptr noundef nonnull align 8 dereferenceable(864) %617)
          to label %619 unwind label %793

619:                                              ; preds = %618
  %620 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %92)
  invoke void @_ZNK10SimTKIpopt14IteratesVector16MakeNewContainerEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.66") align 8 %91, ptr noundef nonnull align 8 dereferenceable(280) %620)
          to label %621 unwind label %795

621:                                              ; preds = %619
  %622 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %623 unwind label %797

623:                                              ; preds = %621
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #8
  %624 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %625 unwind label %801

625:                                              ; preds = %623
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %624, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.31, double noundef %611)
          to label %626 unwind label %801

626:                                              ; preds = %625
  %627 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
  invoke void @_ZN10SimTKIpopt14IteratesVector14create_new_z_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %93, ptr noundef nonnull align 8 dereferenceable(280) %627)
          to label %628 unwind label %801

628:                                              ; preds = %626
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #8
  %629 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
  invoke void @_ZN10SimTKIpopt14IteratesVector14create_new_z_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %94, ptr noundef nonnull align 8 dereferenceable(280) %629)
          to label %630 unwind label %801

630:                                              ; preds = %628
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #8
  %631 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
  invoke void @_ZN10SimTKIpopt14IteratesVector14create_new_v_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %95, ptr noundef nonnull align 8 dereferenceable(280) %631)
          to label %632 unwind label %801

632:                                              ; preds = %630
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #8
  %633 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
  invoke void @_ZN10SimTKIpopt14IteratesVector14create_new_v_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %96, ptr noundef nonnull align 8 dereferenceable(280) %633)
          to label %634 unwind label %801

634:                                              ; preds = %632
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %97) #8
  %635 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
  invoke void @_ZN10SimTKIpopt14IteratesVector12z_L_NonConstEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %97, ptr noundef nonnull align 8 dereferenceable(280) %635)
          to label %636 unwind label %803

636:                                              ; preds = %634
  %637 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %97)
  invoke void @_ZN10SimTKIpopt6Vector3SetEd(ptr noundef nonnull align 8 dereferenceable(205) %637, double noundef 1.000000e+00)
          to label %638 unwind label %805

638:                                              ; preds = %636
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %97) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %98) #8
  %639 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
  invoke void @_ZN10SimTKIpopt14IteratesVector12z_U_NonConstEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %98, ptr noundef nonnull align 8 dereferenceable(280) %639)
          to label %640 unwind label %808

640:                                              ; preds = %638
  %641 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %98)
  invoke void @_ZN10SimTKIpopt6Vector3SetEd(ptr noundef nonnull align 8 dereferenceable(205) %641, double noundef 1.000000e+00)
          to label %642 unwind label %810

642:                                              ; preds = %640
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %99) #8
  %643 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
  invoke void @_ZN10SimTKIpopt14IteratesVector12v_L_NonConstEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %99, ptr noundef nonnull align 8 dereferenceable(280) %643)
          to label %644 unwind label %813

644:                                              ; preds = %642
  %645 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %99)
  invoke void @_ZN10SimTKIpopt6Vector3SetEd(ptr noundef nonnull align 8 dereferenceable(205) %645, double noundef 1.000000e+00)
          to label %646 unwind label %815

646:                                              ; preds = %644
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %100) #8
  %647 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
  invoke void @_ZN10SimTKIpopt14IteratesVector12v_U_NonConstEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8 %100, ptr noundef nonnull align 8 dereferenceable(280) %647)
          to label %648 unwind label %818

648:                                              ; preds = %646
  %649 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %100)
  invoke void @_ZN10SimTKIpopt6Vector3SetEd(ptr noundef nonnull align 8 dereferenceable(205) %649, double noundef 1.000000e+00)
          to label %650 unwind label %820

650:                                              ; preds = %648
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #8
  %651 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %652 unwind label %801

652:                                              ; preds = %650
  invoke void @_ZN10SimTKIpopt9IpoptData9set_trialERNS_8SmartPtrINS_14IteratesVectorEEE(ptr noundef nonnull align 8 dereferenceable(864) %651, ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %823 unwind label %801

653:                                              ; preds = %464, %462
  %654 = landingpad { ptr, i32 }
          cleanup
  br label %657

655:                                              ; preds = %465
  %656 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #8
  br label %657

657:                                              ; preds = %655, %653
  %.pn178 = phi { ptr, i32 } [ %656, %655 ], [ %654, %653 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #8
  br label %844

658:                                              ; preds = %467
  %659 = landingpad { ptr, i32 }
          cleanup
  br label %843

660:                                              ; preds = %469
  %661 = landingpad { ptr, i32 }
          cleanup
  br label %676

662:                                              ; preds = %474, %471
  %663 = landingpad { ptr, i32 }
          cleanup
  br label %675

664:                                              ; preds = %475
  %665 = landingpad { ptr, i32 }
          cleanup
  br label %674

666:                                              ; preds = %480, %477
  %667 = landingpad { ptr, i32 }
          cleanup
  br label %673

668:                                              ; preds = %484, %481
  %669 = landingpad { ptr, i32 }
          cleanup
  br label %672

670:                                              ; preds = %485
  %671 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #8
  br label %672

672:                                              ; preds = %670, %668
  %.pn180 = phi { ptr, i32 } [ %671, %670 ], [ %669, %668 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  br label %673

673:                                              ; preds = %672, %666
  %.pn180.pn = phi { ptr, i32 } [ %.pn180, %672 ], [ %667, %666 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #8
  br label %674

674:                                              ; preds = %673, %664
  %.pn180.pn.pn = phi { ptr, i32 } [ %.pn180.pn, %673 ], [ %665, %664 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #8
  br label %675

675:                                              ; preds = %674, %662
  %.pn180.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn, %674 ], [ %663, %662 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  br label %676

676:                                              ; preds = %675, %660
  %.pn180.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn, %675 ], [ %661, %660 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #8
  br label %843

677:                                              ; preds = %487
  %678 = landingpad { ptr, i32 }
          cleanup
  br label %693

679:                                              ; preds = %492, %489
  %680 = landingpad { ptr, i32 }
          cleanup
  br label %692

681:                                              ; preds = %493
  %682 = landingpad { ptr, i32 }
          cleanup
  br label %691

683:                                              ; preds = %498, %495
  %684 = landingpad { ptr, i32 }
          cleanup
  br label %690

685:                                              ; preds = %502, %499
  %686 = landingpad { ptr, i32 }
          cleanup
  br label %689

687:                                              ; preds = %503
  %688 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #8
  br label %689

689:                                              ; preds = %687, %685
  %.pn186 = phi { ptr, i32 } [ %688, %687 ], [ %686, %685 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  br label %690

690:                                              ; preds = %689, %683
  %.pn186.pn = phi { ptr, i32 } [ %.pn186, %689 ], [ %684, %683 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #8
  br label %691

691:                                              ; preds = %690, %681
  %.pn186.pn.pn = phi { ptr, i32 } [ %.pn186.pn, %690 ], [ %682, %681 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #8
  br label %692

692:                                              ; preds = %691, %679
  %.pn186.pn.pn.pn = phi { ptr, i32 } [ %.pn186.pn.pn, %691 ], [ %680, %679 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #8
  br label %693

693:                                              ; preds = %692, %677
  %.pn186.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn186.pn.pn.pn, %692 ], [ %678, %677 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #8
  br label %843

694:                                              ; preds = %505
  %695 = landingpad { ptr, i32 }
          cleanup
  br label %710

696:                                              ; preds = %510, %507
  %697 = landingpad { ptr, i32 }
          cleanup
  br label %709

698:                                              ; preds = %511
  %699 = landingpad { ptr, i32 }
          cleanup
  br label %708

700:                                              ; preds = %516, %513
  %701 = landingpad { ptr, i32 }
          cleanup
  br label %707

702:                                              ; preds = %520, %517
  %703 = landingpad { ptr, i32 }
          cleanup
  br label %706

704:                                              ; preds = %521
  %705 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  br label %706

706:                                              ; preds = %704, %702
  %.pn192 = phi { ptr, i32 } [ %705, %704 ], [ %703, %702 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #8
  br label %707

707:                                              ; preds = %706, %700
  %.pn192.pn = phi { ptr, i32 } [ %.pn192, %706 ], [ %701, %700 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #8
  br label %708

708:                                              ; preds = %707, %698
  %.pn192.pn.pn = phi { ptr, i32 } [ %.pn192.pn, %707 ], [ %699, %698 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #8
  br label %709

709:                                              ; preds = %708, %696
  %.pn192.pn.pn.pn = phi { ptr, i32 } [ %.pn192.pn.pn, %708 ], [ %697, %696 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #8
  br label %710

710:                                              ; preds = %709, %694
  %.pn192.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn192.pn.pn.pn, %709 ], [ %695, %694 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #8
  br label %843

711:                                              ; preds = %523
  %712 = landingpad { ptr, i32 }
          cleanup
  br label %727

713:                                              ; preds = %528, %525
  %714 = landingpad { ptr, i32 }
          cleanup
  br label %726

715:                                              ; preds = %529
  %716 = landingpad { ptr, i32 }
          cleanup
  br label %725

717:                                              ; preds = %534, %531
  %718 = landingpad { ptr, i32 }
          cleanup
  br label %724

719:                                              ; preds = %538, %535
  %720 = landingpad { ptr, i32 }
          cleanup
  br label %723

721:                                              ; preds = %539
  %722 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #8
  br label %723

723:                                              ; preds = %721, %719
  %.pn198 = phi { ptr, i32 } [ %722, %721 ], [ %720, %719 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #8
  br label %724

724:                                              ; preds = %723, %717
  %.pn198.pn = phi { ptr, i32 } [ %.pn198, %723 ], [ %718, %717 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  br label %725

725:                                              ; preds = %724, %715
  %.pn198.pn.pn = phi { ptr, i32 } [ %.pn198.pn, %724 ], [ %716, %715 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #8
  br label %726

726:                                              ; preds = %725, %713
  %.pn198.pn.pn.pn = phi { ptr, i32 } [ %.pn198.pn.pn, %725 ], [ %714, %713 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #8
  br label %727

727:                                              ; preds = %726, %711
  %.pn198.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn198.pn.pn.pn, %726 ], [ %712, %711 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #8
  br label %843

728:                                              ; preds = %563, %562, %560, %543, %541
  %729 = landingpad { ptr, i32 }
          cleanup
  br label %843

730:                                              ; preds = %545
  %731 = landingpad { ptr, i32 }
          cleanup
  br label %743

732:                                              ; preds = %548
  %733 = landingpad { ptr, i32 }
          cleanup
  br label %742

734:                                              ; preds = %551
  %735 = landingpad { ptr, i32 }
          cleanup
  br label %741

736:                                              ; preds = %554
  %737 = landingpad { ptr, i32 }
          cleanup
  br label %740

738:                                              ; preds = %557
  %739 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #8
  br label %740

740:                                              ; preds = %738, %736
  %.pn204 = phi { ptr, i32 } [ %739, %738 ], [ %737, %736 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #8
  br label %741

741:                                              ; preds = %740, %734
  %.pn204.pn = phi { ptr, i32 } [ %.pn204, %740 ], [ %735, %734 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #8
  br label %742

742:                                              ; preds = %741, %732
  %.pn204.pn.pn = phi { ptr, i32 } [ %.pn204.pn, %741 ], [ %733, %732 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #8
  br label %743

743:                                              ; preds = %742, %730
  %.pn204.pn.pn.pn = phi { ptr, i32 } [ %.pn204.pn.pn, %742 ], [ %731, %730 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #8
  br label %843

744:                                              ; preds = %565
  %745 = landingpad { ptr, i32 }
          cleanup
  br label %757

746:                                              ; preds = %567
  %747 = landingpad { ptr, i32 }
          cleanup
  br label %756

748:                                              ; preds = %570
  %749 = landingpad { ptr, i32 }
          cleanup
  br label %755

750:                                              ; preds = %573
  %751 = landingpad { ptr, i32 }
          cleanup
  br label %754

752:                                              ; preds = %576
  %753 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #8
  br label %754

754:                                              ; preds = %752, %750
  %.pn209 = phi { ptr, i32 } [ %753, %752 ], [ %751, %750 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #8
  br label %755

755:                                              ; preds = %754, %748
  %.pn209.pn = phi { ptr, i32 } [ %.pn209, %754 ], [ %749, %748 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #8
  br label %756

756:                                              ; preds = %755, %746
  %.pn209.pn.pn = phi { ptr, i32 } [ %.pn209.pn, %755 ], [ %747, %746 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #8
  br label %757

757:                                              ; preds = %756, %744
  %.pn209.pn.pn.pn = phi { ptr, i32 } [ %.pn209.pn.pn, %756 ], [ %745, %744 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #8
  br label %843

758:                                              ; preds = %580, %578
  %759 = landingpad { ptr, i32 }
          cleanup
  br label %792

760:                                              ; preds = %581
  %761 = landingpad { ptr, i32 }
          cleanup
  br label %791

762:                                              ; preds = %583
  %763 = landingpad { ptr, i32 }
          cleanup
  br label %790

764:                                              ; preds = %588, %586
  %765 = landingpad { ptr, i32 }
          cleanup
  br label %789

766:                                              ; preds = %589
  %767 = landingpad { ptr, i32 }
          cleanup
  br label %788

768:                                              ; preds = %591
  %769 = landingpad { ptr, i32 }
          cleanup
  br label %787

770:                                              ; preds = %596, %594
  %771 = landingpad { ptr, i32 }
          cleanup
  br label %786

772:                                              ; preds = %597
  %773 = landingpad { ptr, i32 }
          cleanup
  br label %785

774:                                              ; preds = %599
  %775 = landingpad { ptr, i32 }
          cleanup
  br label %784

776:                                              ; preds = %604, %602
  %777 = landingpad { ptr, i32 }
          cleanup
  br label %783

778:                                              ; preds = %605
  %779 = landingpad { ptr, i32 }
          cleanup
  br label %782

780:                                              ; preds = %610, %607
  %781 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #8
  br label %782

782:                                              ; preds = %780, %778
  %.pn214 = phi { ptr, i32 } [ %781, %780 ], [ %779, %778 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %90) #8
  br label %783

783:                                              ; preds = %782, %776
  %.pn214.pn = phi { ptr, i32 } [ %.pn214, %782 ], [ %777, %776 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #8
  br label %784

784:                                              ; preds = %783, %774
  %.pn214.pn.pn = phi { ptr, i32 } [ %.pn214.pn, %783 ], [ %775, %774 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #8
  br label %785

785:                                              ; preds = %784, %772
  %.pn214.pn.pn.pn = phi { ptr, i32 } [ %.pn214.pn.pn, %784 ], [ %773, %772 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #8
  br label %786

786:                                              ; preds = %785, %770
  %.pn214.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn214.pn.pn.pn, %785 ], [ %771, %770 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #8
  br label %787

787:                                              ; preds = %786, %768
  %.pn214.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn214.pn.pn.pn.pn, %786 ], [ %769, %768 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #8
  br label %788

788:                                              ; preds = %787, %766
  %.pn214.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn214.pn.pn.pn.pn.pn, %787 ], [ %767, %766 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #8
  br label %789

789:                                              ; preds = %788, %764
  %.pn214.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn214.pn.pn.pn.pn.pn.pn, %788 ], [ %765, %764 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #8
  br label %790

790:                                              ; preds = %789, %762
  %.pn214.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn214.pn.pn.pn.pn.pn.pn.pn, %789 ], [ %763, %762 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #8
  br label %791

791:                                              ; preds = %790, %760
  %.pn214.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn214.pn.pn.pn.pn.pn.pn.pn.pn, %790 ], [ %761, %760 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #8
  br label %792

792:                                              ; preds = %791, %758
  %.pn214.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn214.pn.pn.pn.pn.pn.pn.pn.pn.pn, %791 ], [ %759, %758 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #8
  br label %843

793:                                              ; preds = %618, %616
  %794 = landingpad { ptr, i32 }
          cleanup
  br label %800

795:                                              ; preds = %619
  %796 = landingpad { ptr, i32 }
          cleanup
  br label %799

797:                                              ; preds = %621
  %798 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #8
  br label %799

799:                                              ; preds = %797, %795
  %.pn226 = phi { ptr, i32 } [ %798, %797 ], [ %796, %795 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #8
  br label %800

800:                                              ; preds = %799, %793
  %.pn226.pn = phi { ptr, i32 } [ %.pn226, %799 ], [ %794, %793 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #8
  br label %843

801:                                              ; preds = %837, %835, %831, %829, %827, %825, %823, %652, %650, %632, %630, %628, %626, %625, %623
  %802 = landingpad { ptr, i32 }
          cleanup
  br label %843

803:                                              ; preds = %634
  %804 = landingpad { ptr, i32 }
          cleanup
  br label %807

805:                                              ; preds = %636
  %806 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #8
  br label %807

807:                                              ; preds = %805, %803
  %.pn229 = phi { ptr, i32 } [ %806, %805 ], [ %804, %803 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %97) #8
  br label %843

808:                                              ; preds = %638
  %809 = landingpad { ptr, i32 }
          cleanup
  br label %812

810:                                              ; preds = %640
  %811 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #8
  br label %812

812:                                              ; preds = %810, %808
  %.pn231 = phi { ptr, i32 } [ %811, %810 ], [ %809, %808 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #8
  br label %843

813:                                              ; preds = %642
  %814 = landingpad { ptr, i32 }
          cleanup
  br label %817

815:                                              ; preds = %644
  %816 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #8
  br label %817

817:                                              ; preds = %815, %813
  %.pn233 = phi { ptr, i32 } [ %816, %815 ], [ %814, %813 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #8
  br label %843

818:                                              ; preds = %646
  %819 = landingpad { ptr, i32 }
          cleanup
  br label %822

820:                                              ; preds = %648
  %821 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #8
  br label %822

822:                                              ; preds = %820, %818
  %.pn235 = phi { ptr, i32 } [ %821, %820 ], [ %819, %818 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #8
  br label %843

823:                                              ; preds = %652, %612
  %824 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %825 unwind label %801

825:                                              ; preds = %823
  %826 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %827 unwind label %801

827:                                              ; preds = %825
  %828 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %829 unwind label %801

829:                                              ; preds = %827
  %830 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %831 unwind label %801

831:                                              ; preds = %829
  %832 = getelementptr inbounds i8, ptr %0, i64 64
  %833 = getelementptr inbounds i8, ptr %0, i64 80
  %834 = load double, ptr %833, align 8, !tbaa !27
  invoke void @_ZN10SimTKIpopt25DefaultIterateInitializer18least_square_multsERKNS_10JournalistERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEEd(ptr noundef nonnull align 8 dereferenceable(40) %824, ptr noundef nonnull align 8 dereferenceable(24) %826, ptr noundef nonnull align 8 dereferenceable(864) %828, ptr noundef nonnull align 8 dereferenceable(2025) %830, ptr noundef nonnull align 8 dereferenceable(8) %832, double noundef %834)
          to label %835 unwind label %801

835:                                              ; preds = %831
  %836 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %837 unwind label %801

837:                                              ; preds = %835
  %838 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  %839 = call noundef i32 @_ZNK10SimTKIpopt9IpoptData10iter_countEv(ptr noundef nonnull align 8 dereferenceable(864) %838)
  %840 = add nsw i32 %839, -1
  call void @_ZN10SimTKIpopt9IpoptData14Set_iter_countEi(ptr noundef nonnull align 8 dereferenceable(864) %836, i32 noundef %840)
  %841 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %842 unwind label %801

842:                                              ; preds = %837
  call void @_ZN10SimTKIpopt9IpoptData20Set_info_skip_outputEb(ptr noundef nonnull align 8 dereferenceable(864) %841, i1 noundef zeroext true)
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14CompoundVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #8
  br label %848

843:                                              ; preds = %728, %743, %757, %822, %817, %812, %807, %801, %800, %792, %727, %710, %693, %676, %658
  %.pn237.pn.pn = phi { ptr, i32 } [ %.pn198.pn.pn.pn.pn, %727 ], [ %.pn192.pn.pn.pn.pn, %710 ], [ %.pn186.pn.pn.pn.pn, %693 ], [ %.pn180.pn.pn.pn.pn, %676 ], [ %659, %658 ], [ %.pn209.pn.pn.pn, %757 ], [ %729, %728 ], [ %.pn204.pn.pn.pn, %743 ], [ %802, %801 ], [ %.pn235, %822 ], [ %.pn233, %817 ], [ %.pn231, %812 ], [ %.pn229, %807 ], [ %.pn226.pn, %800 ], [ %.pn214.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %792 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  br label %844

844:                                              ; preds = %843, %657
  %.pn237.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn, %843 ], [ %.pn178, %657 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #8
  br label %845

845:                                              ; preds = %460, %461, %844, %454, %442
  %.pn242.pn.pn = phi { ptr, i32 } [ %.pn242.pn285, %461 ], [ %.pn242, %460 ], [ %443, %442 ], [ %.pn237.pn.pn.pn, %844 ], [ %.pn174.pn.pn, %454 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  br label %846

846:                                              ; preds = %845, %441
  %.pn242.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn, %845 ], [ %.pn172, %441 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14CompoundVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #8
  br label %847

847:                                              ; preds = %846, %436
  %.pn242.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn, %846 ], [ %.pn169.pn, %436 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #8
  br label %849

848:                                              ; preds = %387, %842
  call void @_ZN10SimTKIpopt8SmartPtrINS_11OptionsListEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_8IpoptNLPEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_9IpoptDataEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %2) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #8
  ret i1 %232

849:                                              ; preds = %260, %312, %320, %319, %332, %331, %383, %384, %371, %372, %356, %357, %344, %345, %847, %291, %262, %259, %191, %185, %161, %155, %153
  %.pn242.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %154, %153 ], [ %.pn143, %259 ], [ %.pn141, %161 ], [ %156, %155 ], [ %.pn, %191 ], [ %186, %185 ], [ %261, %260 ], [ %.pn242.pn.pn.pn.pn, %847 ], [ %.pn164.pn.pn.pn, %291 ], [ %263, %262 ], [ %.pn154.pn268, %345 ], [ %.pn154, %344 ], [ %.pn151.pn272, %357 ], [ %.pn151, %356 ], [ %.pn148.pn276, %372 ], [ %.pn148, %371 ], [ %.pn145.pn280, %384 ], [ %.pn145, %383 ], [ %.pn160.pn260, %320 ], [ %.pn160, %319 ], [ %313, %312 ], [ %.pn157.pn264, %332 ], [ %.pn157, %331 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_11OptionsListEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #8
  br label %850

850:                                              ; preds = %849, %151
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn, %849 ], [ %152, %151 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #8
  br label %851

851:                                              ; preds = %850, %149
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn, %850 ], [ %150, %149 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #8
  br label %852

852:                                              ; preds = %851, %147, %145
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn, %851 ], [ %146, %145 ], [ %148, %147 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_8IpoptNLPEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #8
  br label %853

853:                                              ; preds = %852, %143, %141
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %852 ], [ %142, %141 ], [ %144, %143 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_9IpoptDataEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %2) #8
  br label %854

854:                                              ; preds = %853, %139
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %853 ], [ %140, %139 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #8
  resume { ptr, i32 } %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn

855:                                              ; preds = %434, %377, %365, %350, %338, %325, %311
  unreachable
}

declare void @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #5

declare void @_ZN10SimTKIpopt9IpoptDataC1Ev(ptr noundef nonnull align 8 dereferenceable(864)) unnamed_addr #5

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

declare void @_ZN10SimTKIpopt13RestoIpoptNLPC1ERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesE(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(864), ptr noundef nonnull align 8 dereferenceable(2025)) unnamed_addr #5

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

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantitiesC1ERKNS_8SmartPtrINS_8IpoptNLPEEERKNS1_INS_9IpoptDataEEE(ptr noundef nonnull align 8 dereferenceable(2025), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5

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

declare noundef zeroext i1 @_ZNK10SimTKIpopt25IpoptCalculatedQuantities15IsSquareProblemEv(ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #5

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

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

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #5

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK10SimTKIpopt9IpoptData10iter_countEv(ptr noundef nonnull align 8 dereferenceable(864)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData15Set_info_regu_xEd(ptr noundef nonnull align 8 dereferenceable(864), double noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK10SimTKIpopt9IpoptData11info_regu_xEv(ptr noundef nonnull align 8 dereferenceable(864)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData21Set_info_alpha_primalEd(ptr noundef nonnull align 8 dereferenceable(864), double noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK10SimTKIpopt9IpoptData17info_alpha_primalEv(ptr noundef nonnull align 8 dereferenceable(864)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData26Set_info_alpha_primal_charEc(ptr noundef nonnull align 8 dereferenceable(864), i8 noundef signext) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef signext i8 @_ZNK10SimTKIpopt9IpoptData22info_alpha_primal_charEv(ptr noundef nonnull align 8 dereferenceable(864)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData19Set_info_alpha_dualEd(ptr noundef nonnull align 8 dereferenceable(864), double noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK10SimTKIpopt9IpoptData15info_alpha_dualEv(ptr noundef nonnull align 8 dereferenceable(864)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK10SimTKIpopt9IpoptData13info_ls_countEv(ptr noundef nonnull align 8 dereferenceable(864)) local_unnamed_addr #2 align 2

declare noundef i32 @_ZN10SimTKIpopt14IpoptAlgorithm8OptimizeEv(ptr noundef nonnull align 8 dereferenceable(152)) local_unnamed_addr #5

declare noundef zeroext i1 @_ZNK10SimTKIpopt10Journalist13ProduceOutputENS_13EJournalLevelENS_16EJournalCategoryE(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, i32 noundef) local_unnamed_addr #5

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

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities6curr_fEv(ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8, ptr noundef nonnull align 8 dereferenceable(864)) local_unnamed_addr #6 align 2

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

declare void @_ZNK10SimTKIpopt6Vector5PrintERKNS_10JournalistENS_13EJournalLevelENS_16EJournalCategoryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSD_(ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

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

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025), i32 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864)) local_unnamed_addr #2 align 2

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt39RESTORATION_CONVERGED_TO_FEASIBLE_POINTC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef, ptr noundef, i32 noundef) unnamed_addr #3 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
declare dso_local void @_ZN10SimTKIpopt18LOCALLY_INFEASIBLEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef, ptr noundef, i32 noundef) unnamed_addr #3 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) local_unnamed_addr #7

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.39") align 8, ptr noundef nonnull align 8 dereferenceable(864)) local_unnamed_addr #6 align 2

declare void @_ZNK10SimTKIpopt14IteratesVector16MakeNewContainerEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.66") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector10Set_primalERKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(280), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14CompoundVector7GetCompEi(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(265), i32 noundef) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData9set_trialERNS_8SmartPtrINS_14IteratesVectorEEE(ptr noundef nonnull align 8 dereferenceable(864), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

declare void @_ZN10SimTKIpopt9IpoptData16AcceptTrialPointEv(ptr noundef nonnull align 8 dereferenceable(864)) local_unnamed_addr #5

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

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

declare void @_ZNK10SimTKIpopt14IteratesVector21MakeNewIteratesVectorEb(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.66") align 8, ptr noundef nonnull align 8 dereferenceable(280), i1 noundef zeroext) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt6Vector3SetEd(ptr noundef nonnull align 8 dereferenceable(205), double noundef) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt25MinC_1NrmRestorationPhase26ComputeBoundMultiplierStepERNS_6VectorERKS1_S4_S4_(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector12z_L_NonConstEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector3z_LEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #3 align 2

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_x_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #5

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_x_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector12z_U_NonConstEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector3z_UEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #3 align 2

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_x_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #5

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_x_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector12v_L_NonConstEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector3v_LEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #3 align 2

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_s_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #5

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_s_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector12v_U_NonConstEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector3v_UEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #3 align 2

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_slack_s_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #5

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_slack_s_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.52") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #5

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities22dual_frac_to_the_boundEdRKNS_6VectorES3_S3_S3_(ptr noundef nonnull align 8 dereferenceable(2025), double noundef, ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK10SimTKIpopt9IpoptData8curr_tauEv(ptr noundef nonnull align 8 dereferenceable(864)) local_unnamed_addr #2 align 2

declare void @_ZN10SimTKIpopt9IpoptData32SetTrialBoundMultipliersFromStepEdRKNS_6VectorES3_S3_S3_(ptr noundef nonnull align 8 dereferenceable(864), double noundef, ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZN10SimTKIpopt3MaxEdddd(double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #6

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector14create_new_z_LEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector14create_new_z_UEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector14create_new_v_LEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14IteratesVector14create_new_v_UEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.46") align 8, ptr noundef nonnull align 8 dereferenceable(280)) local_unnamed_addr #6 align 2

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

declare void @_ZN10SimTKIpopt25DefaultIterateInitializer18least_square_multsERKNS_10JournalistERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEEd(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(864), ptr noundef nonnull align 8 dereferenceable(2025), ptr noundef nonnull align 8 dereferenceable(8), double noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData20Set_info_skip_outputEb(ptr noundef nonnull align 8 dereferenceable(864), i1 noundef zeroext) local_unnamed_addr #2 align 2

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nobuiltin 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 #2 = { 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 #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nofree nounwind willreturn memory(read) }
attributes #8 = { nounwind }
attributes #9 = { builtin allocsize(0) }
attributes #10 = { builtin nounwind }
attributes #11 = { 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, !10, i64 100}
!6 = !{!"_ZTSN10SimTKIpopt25MinC_1NrmRestorationPhaseE", !7, i64 0, !19, i64 56, !20, i64 64, !21, i64 72, !22, i64 80, !22, i64 88, !18, i64 96, !10, i64 100}
!7 = !{!"_ZTSN10SimTKIpopt16RestorationPhaseE", !8, i64 0}
!8 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !9, i64 0, !13, i64 16, !15, i64 24, !16, i64 32, !17, i64 40, !18, i64 48}
!9 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !10, i64 8}
!10 = !{!"int", !11, i64 0}
!11 = !{!"omnipotent char", !12, i64 0}
!12 = !{!"Simple C++ TBAA"}
!13 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !14, i64 0}
!14 = !{!"any pointer", !11, i64 0}
!15 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !14, i64 0}
!16 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !14, i64 0}
!17 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !14, i64 0}
!18 = !{!"bool", !11, i64 0}
!19 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEEE", !14, i64 0}
!20 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_22EqMultiplierCalculatorEEE", !14, i64 0}
!21 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_11OptionsListEEE", !14, i64 0}
!22 = !{!"double", !11, i64 0}
!23 = !{!6, !18, i64 96}
!24 = !{i8 0, i8 2}
!25 = !{}
!26 = !{!6, !22, i64 88}
!27 = !{!6, !22, i64 80}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,SROAPass,SimplifyCFGPass,TailCallElimPass